ANRVOB ; HOIFO/CED - Supports VIST GUI OUTCOMES ; [01-07-2003 12:20]
 ;;4.0;VISUAL IMPAIRMENT SERVICE TEAM;**5**;JUN 03, 2002
ADDTXT(RESULTS,SUBREC,TOPREC,STATUS,OTCTXT) ; [Procedure] Uploads section text
 ; Input parameters
 ;  1. RESULTS [Literal/Required] No description
 ;  2. SUBREC [Literal/Required] No description
 ;  3. TOPREC [Literal/Required] No description
 ;  4. STATUS [Literal/Required] No description
 ;  5. OTCTXT [Literal/Required] No description
 ;
 
UPSTAT
 
^TMP("OTC",$J)
 
^TMP("OTC",$J,"OTCTXT")=OTCTXT
 
WP^DIE(2048.01,SUBREC_","_TOPREC_",",1,"K",$NA(^TMP("OTC",$J,"OTCTXT")))
 
^ANRV(2048,TOPREC,1,SUBREC,0)=SUBREC_U_STATUS ; update status
 
I $DATA(DIERRRESULTS(0)="-1^"_DIERR
 
E  S RESULTS(0)="1^Section Updated"
 
^TMP("OTC",$J)
 
Q
 
;
GETREC(RESULTS,PTDFN) ; [Procedure] Get top record and sub records
 ; Input parameters
 ;  1. RESULTS [Literal/Required] No description
 ;  2. PTDFN [Literal/Required] No description
 ;
 
X,Y,IEN,IDATE,DATE,TIME,STATUS,TYPE,S1,S1STAT,S2,S2STAT,S3,S3STAT,S4,S4STAT,S5,S5STAT,S6,S6STAT
 
^TMP($J)
 
'$D(^ANRV(2048,"B",PTDFN)) RESULTS(0)="^0^No Outcome's On Record" Q
 F 
IEN=0:0 IEN=$O(^ANRV(2048,"B",PTDFN,IEN)) Q:'IEN  D
 
.IDATE=$P($G(^ANRV(2048,IEN,0)),U,2,2) ;internal date
 
.STATUS=$P($G(^ANRV(2048,IEN,0)),U,3,3) ;status(incomplete,complete,partial)
 
.TYPE=$P($G(^ANRV(2048,IEN,0)),U,4,4) ;type(Pre or Post)
 
.TIME=$E(IDATE,9,10)_":"_$E(IDATE,11,12) ;time top record created
 
.S:TIME=":" TIME="00:00" ;put it in readable format for user
 
.Y=IDATE ^DD("DD"DATE=;convertinator
 
.S1=$P($G(^ANRV(2048,IEN,1,1,0)),U,1) ;section 1
 
.S1STAT=$P($G(^ANRV(2048,IEN,1,1,0)),U,2) ;section 1 status
 
.S2=$P($G(^ANRV(2048,IEN,1,2,0)),U,1) ;section 2
 
.S2STAT=$P($G(^ANRV(2048,IEN,1,2,0)),U,2) ;section 2 status
 
.S3=$P($G(^ANRV(2048,IEN,1,3,0)),U,1) ;section 3
 
.S3STAT=$P($G(^ANRV(2048,IEN,1,3,0)),U,2) ;section 3 status
 
.S4=$P($G(^ANRV(2048,IEN,1,4,0)),U,1) ;section 4
 
.S4STAT=$P($G(^ANRV(2048,IEN,1,4,0)),U,2) ;section 4 status
 
.S5=$P($G(^ANRV(2048,IEN,1,5,0)),U,1) ;section 5
 
.S5STAT=$P($G(^ANRV(2048,IEN,1,5,0)),U,2) ;section 5 status
 
.S6=$P($G(^ANRV(2048,IEN,1,6,0)),U,1) ;section 6
 
.S6STAT=$P($G(^ANRV(2048,IEN,1,6,0)),U,2) ;section 6 status
 
.RESULTS(IEN)=1_U_IEN_U_IDATE_U_DATE_U_STATUS_U_TYPE_U_S1_U_S1STAT_U_S2_U_S2STAT_U_S3_U_S3STAT_U_S4_U_S4STAT_U_S5_U_S5STAT_U_S6_U_S6STAT
 
I $DATA(DIERR@RESULTS@(0)="-1^"_DIERR
 
Q
 
;
GETSEC(RESULTS,RECORD) ; [Procedure] Get Outcome Section
 ; Input parameters
 ;  1. RESULTS [Literal/Required] No description
 ;  2. RECORD [Literal/Required] No description
 ;
 
GETS^DIQ(2048,+RECORD,".01;.02","","RESULTS","DIERR")
 
I $DATA(DIERR@RESULTS@(0)="-1^["_DIERR_"]"
 
Q
 
;
GETTXT(RESULTS,SUBREC,TOPREC) ; [Procedure] Gets the Outcome Text
 ; Input parameters
 ;  1. RESULTS [Literal/Required] No description
 ;  2. SUBREC [Literal/Required] No description
 ;  3. TOPREC [Literal/Required] No description
 ;
 
RESULTS=$$GET1^DIQ(2048.01,SUBREC_","_TOPREC_",",1,"","RESULTS")
 
Q
 
;
MKREC(RESULTS,PTDFN,STATUS,TYPE) ; [Procedure] Creates Outcome record
 ; Input parameters
 ;  1. RESULTS [Literal/Required] No description
 ;  2. PTDFN [Literal/Required] No description
 ;  3. STATUS [Literal/Required] No description
 ;  4. TYPE [Literal/Required] No description
 ;
 
^TMP($J)
 
X,Y,I,NEWREC,NOW,NEWIEN,ERR
 
NOW^%DTC NOW=%
 
NEWREC(2048,"+1,",.01)=PTDFN ; patient ien
 
NEWREC(2048,"+1,",.02)=NOW ; date and time
 
NEWREC(2048,"+1,",.03)=STATUS ; I=inpatient, O=outpatient, Z=other
 
NEWREC(2048,"+1,",.04)=TYPE ; R=Pre or O=Post Outcome
 
UPDATE^DIE("","NEWREC","NEWIEN")
 
^ANRV(2048,NEWIEN(1),1,0)="^2048.01,.01P^^"
 
X=0:0 X=$O(^ANRV(2048.1,X)) Q:'X  D
 
.^ANRV(2048,NEWIEN(1),1,X,0)=X
 
.^ANRV(2048,NEWIEN(1),1,"B",X,X)=""
 
RESULTS(0)="1"_U_NEWIEN(1)
 
I $DATA(DIERRRESULTS(0)="-1^"_U_DIERR
 
Q
 
;
RPC(RESULTS,OPTION,DATA) ; [Procedure] Main RPC Entry.
 ; Input parameters
 ;  1. RESULTS [Literal/Required] No description
 ;  2. OPTION [Literal/Required] No description
 ;  3. DATA [Literal/Required] No description
 ;
 
RESULTS=$NA(^TMP("ANRVUSER",$J)) @RESULTS
 
D:$T(@OPTION)]"" @OPTION
 
S:'$D(@RESULTS) @RESULTS@(0)="-1^No results returned"
 
CLEAN^DILF
 
Q
 
;
SNDTXT(RESULTS,ANRVCMD,DATA) ; [Procedure] Send completed Outcome
 ; Input parameters
 ;  1. RESULTS [Literal/Required] No description
 ;  2. ANRVCMD [Literal/Required] No description
 ;  3. DATA [Literal/Required] No description
 ;
 
RESULTS=$NA(^TMP($J)),^TMP($J,0)="-1^Unknown Error"
 
D:ANRVCMD="CREATE"
 
.^TMP("ANRVMAIL",$J)
 .
^TMP($J,0)="1^Message '"_$J_"' created."
 
D:ANRVCMD="APPEND"
 
.D:$G(DATA)]""
 
..Y=$O(^TMP("ANRVMAIL",$J,"TEXT",""),-1)+1
 ..
^TMP("ANRVMAIL",$J,"TEXT",Y,0)=DATA
 
.X="DATA"
 
.F  S X=$Q(@XQ:X=""  D
 
..Y=$O(^TMP("ANRVMAIL",$J,"TEXT",""),-1)+1
 ..
^TMP("ANRVMAIL",$J,"TEXT",Y,0)=@X
 
.Y=+$O(^TMP("ANRVMAIL",$J,"TEXT",""),-1)
 .
^TMP("ANRVMAIL",$J,"TEXT",0)="^^"_Y
 
.^TMP($J,0)="1^Text appended."
 
D:ANRVCMD="SUBJECT"
 
.^TMP("ANRVMAIL",$J,"SUBJECT")=DATA
 
.^TMP($J,0)="1^Message subject set to '"_DATA_"'"
 
D:ANRVCMD="SENDTO"
 
.D:$G(DATA)]""
 
..Y=$O(^TMP("ANRVMAIL",$J,"SENDTO",""),-1)+1
 ..
^TMP("ANRVMAIL",$J,"SENDTO",Y)=DATA
 
.X="DATA"
 
.F  S X=$Q(@XQ:X=""  D
 
..Y=$O(^TMP("ANRVMAIL",$J,"SENDTO",""),-1)+1
 ..
^TMP("ANRVMAIL",$J,"SENDTO",Y)=@X
 
.^TMP($J,0)="1^Recipients Added."
 
D:ANRVCMD="EXECUTE"
 
.XMSUB=$G(^TMP("ANRVMAIL",$J,"SUBJECT"),"No subject")
 .
XMTEXT="^TMP(""ANRVMAIL"",$J,""TEXT"","
 
.X=0:0 X=$O(^TMP("ANRVMAIL",$J,"SENDTO",X)) Q:'X  D
 
..XMY(^(X))=""
 
.^XMD
 .
^TMP($J,0)="1^Message Sent.  ID:  "_+$G(XMZ)
 
Q
 
;
UPREC(RESULTS,TOPREC,STATUS) ; [Procedure] Update Top Record Status
 ; Input parameters
 ;  1. RESULTS [Literal/Required] No description
 ;  2. TOPREC [Literal/Required] No description
 ;  3. STATUS [Literal/Required] No description
 ;
 
MYFDA
 
MYFDA(2048,TOPREC_",",.03)=STATUS
 
FILE^DIE("","MYFDA")
 
I $DATA(DIERRRESULTS="-1^"_DIERR
 
E  S RESULTS="1^SECTION UPDATED"
 
Q
 
;
ADD(X) ; [Function] Adds data to @Results@
 ; Input parameters
 ;  1. X [Literal/Required] No description
 ;
 
@RESULTS@(+$O(@RESULTS@(""),-1)+1)=X
 
Q
 
;