Changeset 636 for FOIAVistA/tag/r/CLINICAL_PROCEDURES-MD/MDRPCOP.m
- Timestamp:
- Dec 4, 2009, 8:26:01 PM (14 years ago)
- Location:
- FOIAVistA/tag/r
- Files:
-
- 1 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
FOIAVistA/tag/r/CLINICAL_PROCEDURES-MD/MDRPCOP.m
r628 r636 1 MDRPCOP ; HOIFO/DP - Object RPCs (TMDPatient) ; 3/12/08 09:162 ;;1.0;CLINICAL PROCEDURES;**4 ,6**;Apr 01, 2004;Build 1021 MDRPCOP ; HOIFO/DP - Object RPCs (TMDPatient) ; [01-09-2003 15:21] 2 ;;1.0;CLINICAL PROCEDURES;**4**;Apr 01, 2004;Build 3 3 3 ; Integration Agreements: 4 ; IA# 2263 [Supported] XPAR calls5 4 ; IA# 3027 [Supported] Calls to DGSEC4 6 5 ; IA# 2981 [Subscription] Calls to GUI~GMRCP5 … … 9 8 ; IA# 10061 [Supported] VADPT calls. 10 9 ; IA# 3468 [Subscription] Use GMRCCP APIs. 10 ; IA# 3266 [Subscription] Call to DPTLK1 11 11 ; IA# 10103 [Supported] Call to XLFDT 12 12 ; IA# 10039 [Supported] Ward Location File (#42) Access. 13 13 ; IA# 10035 [Supported] DPT references 14 ; IA# 3267 [Subscription] Call to DPTLK1 15 ; IA# 3593 [Supported] Access to routine DPTLK6 utilities for lookup 14 16 ; IA# 3613 [Private] GETVST^MDRPCOP API call 15 17 ; IA# 10099 [Supported] GMRADPT call 16 18 ; IA# 1096 [Controlled Subscription] ^DGPM("ATID1" x-ref loop 17 ; IA# 358 [Controlled Subscription] FILE 405 references18 19 ; 19 20 ADD(X) ; [Procedure] Add line to @RESULTS@(... … … 50 51 .I +MDHL7=1 S MDFDA(702,MDIENS,.09)=5,MDFDA(702,MDIENS,.08)="" 51 52 .D:$D(MDFDA) FILE^DIE("","MDFDA","MDERR") 52 ; Patch 6 - Renal Check-In53 D:+$G(MDIENS)54 .S X=+$P(^MDD(702,+MDIENS,0),U,4) Q:'X55 .I $P(^MDS(702.01,X,0),U,6)=2 D Q ; Renal Check-In56 ..D CP^MDKUTLR(+MDIENS)57 ..S MDFDA(702,+MDIENS_",",.09)=558 ..D FILE^DIE("","MDFDA","MDERR")59 ; Patch 6 - Renal Check-In60 53 I '$D(MDERR) S @RESULTS@(0)="1^OK" Q 61 54 D ERROR^MDRPCU(RESULTS,.MDERR) … … 68 61 ; 69 62 GETCONS ; [Procedure] Get available consults for patient 70 K ^TMP("MDTMP",$J) N MDCDT,MDDY,X1,X2,X 71 S MDDY=$$GET^XPAR("SYS","MD COMPL PROC DISPLAY DAYS",1) 72 S X1=DT,X2=-$S(MDDY>0:+MDDY,1:365) D C^%DTC S MDCDT=X 63 K ^TMP("MDTMP",$J) 73 64 D CPLIST^GMRCCP(DFN,,$NA(^TMP("MDTMP",$J))) 74 65 S MDX=0 75 66 F S MDX=$O(^TMP("MDTMP",$J,MDX)) Q:'MDX D:"saprc"[$P(^(MDX),U,4) 76 67 .S Y="123;"_$P(^TMP("MDTMP",$J,MDX),U,5) 77 .I $P($G(^TMP("MDTMP",$J,MDX)),U,4)="c" Q:$P($G(^TMP("MDTMP",$J,MDX)),U,1)<MDCDT78 68 .F X=2,3,4,1,6,5 S Y=Y_U_$P(^TMP("MDTMP",$J,MDX),U,X) 79 69 .S Y=Y_U_+$O(^MDD(702,"ACON",+$P(^TMP("MDTMP",$J,MDX),U,5))) … … 124 114 ; 125 115 GETTRAN ; [Procedure] Get a patients transactions 126 K ^TMP("MDTMP",$J),^TMP("MDCONL",$J) N MDCDT,MDCOM,MDMULT,MDNUM,MDREQ,MDREQDT,MDYR,X1,X2,X127 S MDNUM=$$GET^XPAR("SYS","MD DAYS TO RETAIN COM STUDY",1) S MDCOM=0128 I +MDNUM>0 S X1=DT,X2=-MDNUM D C^%DTC S MDCOM=X129 D CPLIST^GMRCCP(DFN,,$NA(^TMP("MDTMP",$J)))130 S X1=DT,X2=-365 D C^%DTC S MDCDT=X131 S MDX=0 F S MDX=$O(^TMP("MDTMP",$J,MDX)) Q:'MDX D:"saprc"[$P(^(MDX),U,4)132 .I $P($G(^TMP("MDTMP",$J,MDX)),U,4)="c" Q:$P($G(^TMP("MDTMP",$J,MDX)),U,1)<MDCDT133 .S ^TMP("MDCONL",$J,$P($G(^TMP("MDTMP",$J,MDX)),U,5))=$P($G(^TMP("MDTMP",$J,MDX)),U,1)134 K ^TMP("MDTMP",$J)135 116 F MDX=0:0 S MDX=$O(^MDD(702,"B",DFN,+MDX))_"," Q:'MDX D 136 .Q:'$$GET1^DIQ(702,MDX,.05,"I") 137 .Q:$G(^TMP("MDCONL",$J,+$$GET1^DIQ(702,MDX,.05,"I")))="" 138 .S MDMULT=+$$GET1^DIQ(702,MDX,".04:.12","I") 139 .S MDYR=$S(MDMULT<1:MDCOM,1:MDCDT) 140 .I MDNUM Q:$$GET1^DIQ(702,MDX,.09,"I")=3&($$GET1^DIQ(702,MDX,.02,"I")<MDYR) 141 .S MDREQDT="" I +$$GET1^DIQ(702,MDX,.05,"I") S MDREQDT=$G(^TMP("MDCONL",$J,+$$GET1^DIQ(702,MDX,.05,"I"))) 142 .I MDREQDT'="" S MDREQDT=$$FMTE^XLFDT(MDREQDT,"1P") 143 .S MDREQ=$$GET1^DIQ(702,MDX,.04)_" "_+MDX_" (Consult #:"_$$GET1^DIQ(702,MDX,.05,"I")_$S(MDREQDT'="":" Requested: "_MDREQDT,1:"")_")" 144 .S Z=$$GET1^DIQ(702,MDX,".04:.02","I")_U_MDREQ_U_$$GET1^DIQ(702,MDX,.02,"I")_U_$$GET1^DIQ(702,MDX,.09)_U_$$GET1^DIQ(702,MDX,.11)_U_$$GET1^DIQ(702,MDX,.991) 117 .S Z=$$GET1^DIQ(702,MDX,".04:.02","I")_U_$$GET1^DIQ(702,MDX,.04)_U_$$GET1^DIQ(702,MDX,.02,"I")_U_$$GET1^DIQ(702,MDX,.09)_U_$$GET1^DIQ(702,MDX,.11)_U_$$GET1^DIQ(702,MDX,.991) 145 118 .S Y=$O(@RESULTS@(""),-1)+1 146 119 .S @RESULTS@(Y)="702;"_+MDX_U_Z 147 120 S @RESULTS@(0)=+$O(@RESULTS@(""),-1) 148 K ^TMP("MDCONL",$J)149 121 Q 150 122 ; 151 123 GETVST ; [Procedure] Return list of visits 152 N BEG,END,VAERR,VASD,BDT,DTM,EDT,LOC,NOW,MDQUERY,MDLST, MDTDF,STI,STS,TODAY,I,J,K,XI,XE,X153 S NOW=$$NOW^XLFDT(),TODAY=$P(NOW,".",1) ,MDTDF=DFN154 S BEG=$$X2FM( $$GETBEG),END=$$X2FM($$GETEND)+0.2359124 N BEG,END,VAERR,VASD,BDT,DTM,EDT,LOC,NOW,MDQUERY,MDLST,STI,STS,TODAY,I,J,K,XI,XE,X 125 S NOW=$$NOW^XLFDT(),TODAY=$P(NOW,".",1) 126 S BEG=$$X2FM("T-200"),END=$$X2FM("T")+0.2359 155 127 S MDLST="",MDSTOP="" 156 128 I END>NOW D ; get future encounters, past cancels/no-shows from VADPT … … 179 151 .D CLOSE^SDQ(.MDQUERY) 180 152 N TIM,MOV,MDX0,Y,MTIM,XTYP,XLOC,XLOCI,HLOC,EARLY,DONE ; admits 181 S EARLY=BEG,DONE=0 S:$G(DFN)="" DFN=MDTDF153 S EARLY=BEG,DONE=0 182 154 S TIM="" F S TIM=$O(^DGPM("ATID1",DFN,TIM)) Q:TIM'>0 D Q:DONE 183 155 .S MOV=0 F S MOV=$O(^DGPM("ATID1",DFN,TIM,MOV)) Q:MOV'>0 D Q:DONE … … 192 164 ..S K=0 F S K=$O(MDLST(I,J,K)) Q:'K D 193 165 ...S @RESULTS@($O(@RESULTS@(""),-1)+1)=MDLST(I,J,K) 194 S:$G(DFN)="" DFN=MDTDF S @RESULTS@(0)=+$O(@RESULTS@(""),-1)_U_($$GET1^DIQ(2,DFN_",",.1)]"") 195 Q 196 ; 197 GETBEG() ; Get Beginning Date Range 198 I $$GET^XPAR("SYS","MD APPOINT START DATE",1)>1 Q "T-"_$$GET^XPAR("SYS","MD APPOINT START DATE",1) 199 Q "T-200" 200 GETEND() ; Get Ending Date Range 201 I $$GET^XPAR("SYS","MD APPOINT END DATE",1)>1 Q "T+"_$$GET^XPAR("SYS","MD APPOINT END DATE",1) 202 Q "T" 166 S @RESULTS@(0)=+$O(@RESULTS@(""),-1)_U_($$GET1^DIQ(2,DFN_",",.1)]"") 167 Q 168 ; 203 169 LOGSEC ; [Procedure] Log Security 204 N RES 205 D NOTICE^DGSEC4(.RES,DFN,DATA,1) 206 S @RESULTS@(0)=$S(+RES:"1^Logged",1:"-1^Unable to log") 170 D NOTICE^DGSEC4(.RESULTS,DFN,DATA,1) 171 S @RESULTS@(0)=$S(RESULTS:"1^Logged",1:"-1^Unable to log") 207 172 Q 208 173 ; … … 216 181 ; 217 182 SELECT ; [Procedure] Select patient 218 ; Moved to continuation routine at MD*1.0*6 due to routine size 219 D SELECT^MDRPCOP1 183 I '$D(^DPT(+$G(DFN),0))#2 S @RESULTS@(0)="-1^No such patient" Q 184 S @RESULTS@(0)="1^Required Identifiers & messages" 185 S IENS=DFN_"," 186 D FILE^DID(2,,"REQUIRED IDENTIFIERS","MDIDS") 187 F MDX=0:0 S MDX=$O(MDIDS("REQUIRED IDENTIFIERS",MDX)) Q:'MDX D 188 .S MDFLD=MDIDS("REQUIRED IDENTIFIERS",MDX,"FIELD") 189 .S MDID="$$PTID^"_$$GET1^DID(2,MDFLD,"","LABEL") 190 .S MDID=MDID_U_$$GET1^DIQ(2,IENS,MDFLD) 191 .D:MDFLD=.03 192 ..S MDID=MDID_" ("_$$GET1^DIQ(2,IENS,.033)_")" 193 ..S MDID=MDID_U_$$DOB^DPTLK1(+IENS) 194 .D:MDFLD=.09 195 ..S X=$P(MDID,U,3),X=$E(X,1,3)_"-"_$E(X,4,5)_"-"_$E(X,6,10) 196 ..S $P(MDID,U,3)=X,$P(MDID,U,4)=$$SSN^DPTLK1(+IENS) 197 .S @RESULTS@($O(@RESULTS@(""),-1)+1)=MDID 198 S MDID="$$PTID^"_$$GET1^DID(2,.1,"","LABEL") 199 S MDID=MDID_U_$$GET1^DIQ(2,IENS,.1) 200 S @RESULTS@($O(@RESULTS@(""),-1)+1)=MDID 201 S MDID="$$PTID^"_$$GET1^DID(2,.101,"","LABEL") 202 S MDID=MDID_U_$$GET1^DIQ(2,IENS,.101) 203 S @RESULTS@($O(@RESULTS@(""),-1)+1)=MDID 204 K MDRET 205 D GUIBS5A^DPTLK6(.MDRET,DFN) D:MDRET(1)=1 206 .D ADD("$$MSGHDR^2^SAME LAST NAME AND LAST 4") 207 .S MDX=1 208 .F S MDX=$O(MDRET(MDX)) Q:'MDX!(+$G(MDRET(MDX))) D 209 ..D ADD($P(MDRET(MDX),U,2)) 210 .D ADD(" ") 211 .S MDX=1 212 .F S MDX=$O(MDRET(MDX)) Q:'MDX D:+MDRET(MDX) 213 ..S MDDFN=+$P(MDRET(MDX),U,2) 214 ..D ADD($$GET1^DIQ(2,MDDFN_",",.01)_" "_$$DOB^DPTLK1(MDDFN)_" "_$$SSN^DPTLK1(MDDFN)) 215 .D ADD(" ") 216 .D ADD("Please review carefully before continuing") 217 .D ADD("$$MSGEND") 218 K MDRET 219 D PTSEC^DGSEC4(.MDRET,DFN) D:MDRET(1)'=0 220 .D:MDRET(1)=3 221 ..D ADD("$$MSGHDR^0^CAN'T ACCESS YOUR OWN RECORD!!") 222 .D:MDRET(1)=-1 223 ..D ADD("$$MSGHDR^0^INCOMPLETE INFORMATION - CAN'T PROCEED") 224 .D:MDRET(1)=1 225 ..D ADD("$$MSGHDR^1^SENSITIVE RECORD ACCESS") 226 .D:MDRET(1)'=-1&(MDRET(1)'=3)&(MDRET(1)'=1) 227 ..D ADD("$$MSGHDR^3^SENSITIVE RECORD ACCESS") 228 .S MDX=1 229 .F S MDX=$O(MDRET(MDX)) Q:'MDX D ADD($TR(MDRET(MDX),"*"," ")) 230 .D ADD("$$MSGEND") 231 D GUIMTD^DPTLK6(.MDRET,DFN) D:MDRET(1)=1 232 .D ADD("$$MSGHDR^1^NOTICE") 233 .F MDX=1:0 S MDX=$O(MDRET(MDX)) Q:'MDX D ADD(MDRET(MDX)) 234 .D ADD("$$MSGEND") 220 235 Q 221 236 ;
Note:
See TracChangeset
for help on using the changeset viewer.