[613] | 1 | ANRVOA ; HOIFO/CED - User, Patient and Parameter specifics for Patient Review. ; [01-07-2003 12:19]
|
---|
| 2 | ;;4.0;VISUAL IMPAIRMENT SERVICE TEAM;**5**;AUG 21, 2003
|
---|
| 3 | ADD(X) ; [Procedure] Adds to RESULTS
|
---|
| 4 | S @RESULTS@(+$O(@RESULTS@(""),-1)+1)=X
|
---|
| 5 | Q
|
---|
| 6 | ;
|
---|
| 7 | DELLST ; [Procedure] Delete list of parameters
|
---|
| 8 | D NDEL^XPAR(ENT,PAR,.ERR)
|
---|
| 9 | S:'$G(ERR) @RESULTS@(0)="1^All Instances Removed"
|
---|
| 10 | Q
|
---|
| 11 | ;
|
---|
| 12 | DELPAR ; [Procedure] Delete single parameter value
|
---|
| 13 | D DEL^XPAR(ENT,PAR,INST,.ERR)
|
---|
| 14 | S:'$G(ERR) @RESULTS@(0)="1^Instance Deleted"
|
---|
| 15 | Q
|
---|
| 16 | ;
|
---|
| 17 | ELECSIG ; [Procedure] Check Electronic Signature
|
---|
| 18 | N X
|
---|
| 19 | S X=DATA
|
---|
| 20 | S X1=$S($D(DUZ)[0:"",$D(^VA(200,DUZ,20))[0:"",1:$P(^(20),U,4))
|
---|
| 21 | I X1="" S @RESULTS@(0)="-1^Electronic Signature Not Found." Q
|
---|
| 22 | D HASH^XUSHSHP
|
---|
| 23 | I X1'=X S @RESULTS@(0)="0^Electronic Signature Incorrect." Q
|
---|
| 24 | S @RESULTS@(0)="1^Electronic Signature Verified."
|
---|
| 25 | Q
|
---|
| 26 | ;
|
---|
| 27 | ENTVAL ; [Procedure] Return value of the entity
|
---|
| 28 | I ENT="SYS" S ENT=$$KSP^XUPARAM("WHERE")
|
---|
| 29 | E I ENT="DIV" S ENT=$$GET1^DIQ(4,DUZ(2)_",",.01)
|
---|
| 30 | E I ENT="USR" S ENT=$$GET1^DIQ(200,DUZ_",",.01)
|
---|
| 31 | E S ENT=$$GET1^DIQ(+$P(ENT,"(",2),+ENT_",",.01)
|
---|
| 32 | S @RESULTS@(0)=ENT
|
---|
| 33 | Q
|
---|
| 34 | ;
|
---|
| 35 | FULLSSN(LST,ID) ; [Procedure] Return a list of patients matching Full SSN entered
|
---|
| 36 | N I,IEN
|
---|
| 37 | S (I,IEN)=0
|
---|
| 38 | F S IEN=$O(^DPT("SSN",ID,IEN)) Q:'IEN D
|
---|
| 39 | . S I=I+1,LST(I)=IEN_U_$P(^DPT(IEN,0),U)_U_$$DOB^DPTLK1(IEN,2)_U_$$SSN^DPTLK1(IEN) ; DG249
|
---|
| 40 | Q
|
---|
| 41 | ;
|
---|
| 42 | GETHDR ; [Procedure] Returns common header format
|
---|
| 43 | S X=$$FIND1^DIC(8989.51,,"QX",PAR)
|
---|
| 44 | I X S @RESULTS@(0)=X_";8989.51^"_PAR
|
---|
| 45 | E S @RESULTS@(0)="-1^No such parameter ["_PAR_"]"
|
---|
| 46 | Q
|
---|
| 47 | ;
|
---|
| 48 | GETLST ; [Procedure] Return all instances of a parameter
|
---|
| 49 | D GETLST^XPAR(.RET,ENT,PAR,"E",.ERR)
|
---|
| 50 | Q:$G(ERR,0)
|
---|
| 51 | S TMP="RET"
|
---|
| 52 | F S TMP=$Q(@TMP) Q:TMP="" D
|
---|
| 53 | .S @RESULTS@($O(@RESULTS@(""),-1)+1)=@TMP
|
---|
| 54 | S @RESULTS@(0)=$O(@RESULTS@(""),-1)
|
---|
| 55 | Q
|
---|
| 56 | ;
|
---|
| 57 | GETPAR ; [Procedure] Returns external value for a parameter
|
---|
| 58 | S @RESULTS@(0)=$$GET^XPAR(ENT,PAR,INST,"E")
|
---|
| 59 | Q
|
---|
| 60 | ;
|
---|
| 61 | GETWP ; [Procedure] Returns WP text for a parameter
|
---|
| 62 | D GETWP^XPAR(.RET,ENT,PAR,INST,.ERR)
|
---|
| 63 | Q:$G(ERR,0)
|
---|
| 64 | S TMP="RET"
|
---|
| 65 | F S TMP=$Q(@TMP) Q:TMP="" D
|
---|
| 66 | .S @RESULTS@($O(@RESULTS@(""),-1)+1)=@TMP
|
---|
| 67 | S @RESULTS@(0)=$O(@RESULTS@(""),-1)_U_INST
|
---|
| 68 | Q
|
---|
| 69 | ;
|
---|
| 70 | LAST5(RESULTS,PTID) ; [Procedure] Get patients using last 5
|
---|
| 71 | N I,IEN,XREF
|
---|
| 72 | S (I,IEN)=0,XREF=$S($L(PTID)=5:"BS5",1:"BS")
|
---|
| 73 | F S IEN=$O(^DPT(XREF,PTID,IEN)) Q:'IEN D
|
---|
| 74 | .S I=I+1,RESULTS(I)=IEN_U_$P(^DPT(IEN,0),U)_U_$$DOB^DPTLK1(IEN,2)_U_$$SSN^DPTLK1(IEN) ; DG249
|
---|
| 75 | Q
|
---|
| 76 | ;
|
---|
| 77 | LISTALL(RESULTS,FROM,DIR) ; [Procedure] Pt List
|
---|
| 78 | N I,IEN,CNT S CNT=44,I=0
|
---|
| 79 | F S FROM=$O(^DPT("B",FROM),DIR) Q:FROM="" D Q:I=CNT
|
---|
| 80 | .S IEN=0 F S IEN=$O(^DPT("B",FROM,IEN)) Q:'IEN D Q:I=CNT
|
---|
| 81 | ..S I=I+1 S RESULTS(I)=IEN_"^"_FROM
|
---|
| 82 | Q
|
---|
| 83 | ;
|
---|
| 84 | LOGSEC ; [Procedure] Logs secure and restricted record access
|
---|
| 85 | D NOTICE^DGSEC4(.ANRVRET,DFN,DATA,1)
|
---|
| 86 | S @RESULTS@(0)=$S(ANRVRET:"1^Logged",1:"-1^Unable to log")
|
---|
| 87 | Q
|
---|
| 88 | ;
|
---|
| 89 | PINF(RESULTS,PTDFN) ; [Procedure] Patient Information for verification
|
---|
| 90 | N Y,GX,GE,NC,Z,X,I
|
---|
| 91 | D GETS^DIQ(2,+PTDFN,".03;391;1901;.01;.02;.09;.301;.14;","","GX","GE")
|
---|
| 92 | I $D(GE("DIERR",1)) S RESULTS="0^"_GE("DIERR",1,"TEXT",1) Q
|
---|
| 93 | S NC=+PTDFN_",",Z="1^"
|
---|
| 94 | F I=.03,391,1901,.01,.02,.09,.301,.14 D
|
---|
| 95 | .S X=GX(2,NC,I) S Z=Z_X_"^"
|
---|
| 96 | S RESULTS=Z
|
---|
| 97 | Q
|
---|
| 98 | ;
|
---|
| 99 | RPC(RESULTS,OPTION,DFN,DATA) ; [Procedure] Main RPC Call Tag
|
---|
| 100 | S RESULTS=$NA(^TMP($J)) K @RESULTS
|
---|
| 101 | D:$T(@OPTION)]"" @OPTION
|
---|
| 102 | D:'$D(@RESULTS)
|
---|
| 103 | .S @RESULTS@(0)="-1^No results returned"
|
---|
| 104 | D CLEAN^DILF
|
---|
| 105 | Q
|
---|
| 106 | ;
|
---|
| 107 | RPCA(RESULTS,OPTION,ENT,PAR,INST,VAL) ; [Procedure] Main RPC entry
|
---|
| 108 | N ERR,TMP,RET,TXT,IEN,IENS,ROOT
|
---|
| 109 | S INST=$G(INST,1)
|
---|
| 110 | S PAR=$G(PAR,"ANRV")
|
---|
| 111 | S RESULTS=$NA(^TMP($J)) K @RESULTS
|
---|
| 112 | I PAR'?1"ANRV".E S ^TMP($J,0)="-1^Non VIST Outcomes Parameter" Q
|
---|
| 113 | D:$T(@OPTION)]"" @OPTION
|
---|
| 114 | I +$G(ERR) K @RESULTS S @RESULTS@(0)="-1^Error: "_(+ERR)_" "_$P(ERR,U,2)
|
---|
| 115 | I '$D(^TMP($J)) S @RESULTS@(0)="-1^No data returned"
|
---|
| 116 | D CLEAN^DILF
|
---|
| 117 | Q
|
---|
| 118 | ;
|
---|
| 119 | SELECT ; [Procedure] Select Patient
|
---|
| 120 | NEW IENS,ANRVDFN,ANRVFLD,ANRVID,ANRVRET,ANRVX
|
---|
| 121 | I '$D(^DPT(+$G(DFN),0))#2 S @RESULTS@(0)="-1^No such patient" Q
|
---|
| 122 | S @RESULTS@(0)="1^Required Identifiers & messages"
|
---|
| 123 | S IENS=DFN_","
|
---|
| 124 | D FILE^DID(2,,"REQUIRED IDENTIFIERS","ANRVIDS")
|
---|
| 125 | F ANRVX=0:0 S ANRVX=$O(ANRVIDS("REQUIRED IDENTIFIERS",ANRVX)) Q:'ANRVX D
|
---|
| 126 | .S ANRVFLD=ANRVIDS("REQUIRED IDENTIFIERS",ANRVX,"FIELD")
|
---|
| 127 | .S ANRVID="$$PTID^"_$$GET1^DID(2,ANRVFLD,"","LABEL")
|
---|
| 128 | .S ANRVID=ANRVID_U_$$GET1^DIQ(2,IENS,ANRVFLD)
|
---|
| 129 | .D:ANRVFLD=.03
|
---|
| 130 | ..S ANRVID=ANRVID_" ("_$$GET1^DIQ(2,IENS,.033)_")"
|
---|
| 131 | ..S ANRVID=ANRVID_U_$$DOB^DPTLK1(+IENS)
|
---|
| 132 | .D:ANRVFLD=.09
|
---|
| 133 | ..S X=$P(ANRVID,U,3),X=$E(X,1,3)_"-"_$E(X,4,5)_"-"_$E(X,6,10)
|
---|
| 134 | ..S $P(ANRVID,U,3)=X,$P(ANRVID,U,4)=$$SSN^DPTLK1(+IENS)
|
---|
| 135 | .S @RESULTS@($O(@RESULTS@(""),-1)+1)=ANRVID
|
---|
| 136 | K ANRVRET
|
---|
| 137 | D GUIBS5A^DPTLK6(.ANRVRET,DFN) D:ANRVRET(1)=1
|
---|
| 138 | .D ADD("$$MSGHDR^2^SAME LAST NAME AND LAST 4")
|
---|
| 139 | .S ANRVX=1
|
---|
| 140 | .F S ANRVX=$O(ANRVRET(ANRVX)) Q:'ANRVX!(+$G(ANRVRET(ANRVX))) D
|
---|
| 141 | ..D ADD($P(ANRVRET(ANRVX),U,2))
|
---|
| 142 | .D ADD(" ")
|
---|
| 143 | .S ANRVX=1
|
---|
| 144 | .F S ANRVX=$O(ANRVRET(ANRVX)) Q:'ANRVX D:+ANRVRET(ANRVX)
|
---|
| 145 | ..S ANRVDFN=+$P(ANRVRET(ANRVX),U,2)
|
---|
| 146 | ..D ADD($$GET1^DIQ(2,ANRVDFN_",",.01)_" "_$$DOB^DPTLK1(ANRVDFN)_" "_$$SSN^DPTLK1(ANRVDFN))
|
---|
| 147 | .D ADD(" ")
|
---|
| 148 | .D ADD("Please review carefully before continuing")
|
---|
| 149 | .D ADD("$$MSGEND")
|
---|
| 150 | K ANRVRET
|
---|
| 151 | D PTSEC^DGSEC4(.ANRVRET,DFN) D:ANRVRET(1)'=0
|
---|
| 152 | .D:ANRVRET(1)=3
|
---|
| 153 | ..D ADD("$$MSGHDR^0^CAN'T ACCESS YOUR OWN RECORD!!")
|
---|
| 154 | .D:ANRVRET(1)=-1
|
---|
| 155 | ..D ADD("$$MSGHDR^0^INCOMPLETE INFORMATION - CAN'T PROCEED")
|
---|
| 156 | .D:ANRVRET(1)=1
|
---|
| 157 | ..D ADD("$$MSGHDR^1^SENSITIVE RECORD ACCESS")
|
---|
| 158 | .D:ANRVRET(1)'=-1&(ANRVRET(1)'=3)&(ANRVRET(1)'=1)
|
---|
| 159 | ..D ADD("$$MSGHDR^3^SENSITIVE RECORD ACCESS")
|
---|
| 160 | .S ANRVX=1
|
---|
| 161 | .F S ANRVX=$O(ANRVRET(ANRVX)) Q:'ANRVX D ADD($TR(ANRVRET(ANRVX),"*"," "))
|
---|
| 162 | .D ADD("$$MSGEND")
|
---|
| 163 | D GUIMTD^DPTLK6(.ANRVRET,DFN) D:ANRVRET(1)=1
|
---|
| 164 | .D ADD("$$MSGHDR^1^NOTICE")
|
---|
| 165 | .F ANRVX=1:0 S ANRVX=$O(ANRVRET(ANRVX)) Q:'ANRVX D ADD(ANRVRET(ANRVX))
|
---|
| 166 | .D ADD("$$MSGEND")
|
---|
| 167 | Q
|
---|
| 168 | ;
|
---|
| 169 | SETLST ; [Procedure] Set single value into a parameter
|
---|
| 170 | N ANRVINS ; Instance Counter
|
---|
| 171 | D DELLST(ENT,PAR)
|
---|
| 172 | S ANRVINS=""
|
---|
| 173 | F S ANRVINS=$O(VAL(ANRVINS)) Q:ANRVINS="" D
|
---|
| 174 | .D EN^XPAR(ENT,PAR,ANRVINS,VAL(ANRVINS),.ERR)
|
---|
| 175 | S:'$G(ERR) @RESULTS@(0)="1^List "_PAR_" rebuilt"
|
---|
| 176 | Q
|
---|
| 177 | ;
|
---|
| 178 | SETPAR ; [Procedure] Set single value into a parameter
|
---|
| 179 | D EN^XPAR(ENT,PAR,INST,VAL,.ERR)
|
---|
| 180 | S:'$G(ERR) @RESULTS@(0)="1^Parameter updated"
|
---|
| 181 | Q
|
---|
| 182 | ;
|
---|
| 183 | SETWP ; [Procedure] Set WP text into a parameter
|
---|
| 184 | S TXT=INST,TMP=""
|
---|
| 185 | F S TMP=$O(VAL(TMP)) Q:TMP="" D
|
---|
| 186 | .S TXT($O(TXT(""),-1)+1,0)=VAL(TMP)
|
---|
| 187 | D EN^XPAR(ENT,PAR,INST,.TXT,.ERR)
|
---|
| 188 | S:'$G(ERR) @RESULTS@(0)="1^WP Text Saved"
|
---|
| 189 | Q
|
---|
| 190 | ;
|
---|
| 191 | SIGNON ; [Procedure] Return signon information for user.
|
---|
| 192 | S @RESULTS@(0)=DUZ
|
---|
| 193 | S @RESULTS@(1)=$$GET1^DIQ(200,DUZ_",",.01) ; Name
|
---|
| 194 | S @RESULTS@(2)=+$$FIND1^DIC(4.2,"","QX",$$KSP^XUPARAM("WHERE")) ;Domain
|
---|
| 195 | S @RESULTS@(3)=$$KSP^XUPARAM("WHERE") ; Domain Name
|
---|
| 196 | S @RESULTS@(4)=+$G(DUZ(2)) ; Division IEN
|
---|
| 197 | S @RESULTS@(5)=$S(+$G(DUZ(2)):$$GET1^DIQ(4,DUZ(2)_",",.01),1:"UNKNOWN")
|
---|
| 198 | S @RESULTS@(6)=$$GET1^DIQ(200,DUZ_",",8)
|
---|
| 199 | S @RESULTS@(7)=""
|
---|
| 200 | S @RESULTS@(8)=$G(DTIME,300)
|
---|
| 201 | Q
|
---|
| 202 | ;
|
---|