Ignore:
Timestamp:
Dec 4, 2009, 8:26:01 PM (14 years ago)
Author:
George Lilly
Message:

WorldVistAEHR overlayed on FOIAVistA

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:16
    2  ;;1.0;CLINICAL PROCEDURES;**4,6**;Apr 01, 2004;Build 102
     1MDRPCOP ; HOIFO/DP - Object RPCs (TMDPatient) ; [01-09-2003 15:21]
     2 ;;1.0;CLINICAL PROCEDURES;**4**;Apr 01, 2004;Build 3
    33 ; Integration Agreements:
    4  ; IA# 2263 [Supported] XPAR calls
    54 ; IA# 3027 [Supported] Calls to DGSEC4
    65 ; IA# 2981 [Subscription] Calls to GUI~GMRCP5
     
    98 ; IA# 10061 [Supported] VADPT calls.
    109 ; IA# 3468 [Subscription] Use GMRCCP APIs.
     10 ; IA# 3266 [Subscription] Call to DPTLK1
    1111 ; IA# 10103 [Supported] Call to XLFDT
    1212 ; IA# 10039 [Supported] Ward Location File (#42) Access.
    1313 ; IA# 10035 [Supported] DPT references
     14 ; IA# 3267 [Subscription] Call to DPTLK1
     15 ; IA# 3593 [Supported] Access to routine DPTLK6 utilities for lookup
    1416 ; IA# 3613 [Private] GETVST^MDRPCOP API call
    1517 ; IA# 10099 [Supported] GMRADPT call
    1618 ; IA# 1096 [Controlled Subscription] ^DGPM("ATID1" x-ref loop
    17  ; IA# 358 [Controlled Subscription] FILE 405 references
    1819 ;
    1920ADD(X) ; [Procedure] Add line to @RESULTS@(...
     
    5051 .I +MDHL7=1 S MDFDA(702,MDIENS,.09)=5,MDFDA(702,MDIENS,.08)=""
    5152 .D:$D(MDFDA) FILE^DIE("","MDFDA","MDERR")
    52  ; Patch 6 - Renal Check-In
    53  D:+$G(MDIENS)
    54  .S X=+$P(^MDD(702,+MDIENS,0),U,4) Q:'X
    55  .I $P(^MDS(702.01,X,0),U,6)=2 D  Q  ; Renal Check-In
    56  ..D CP^MDKUTLR(+MDIENS)
    57  ..S MDFDA(702,+MDIENS_",",.09)=5
    58  ..D FILE^DIE("","MDFDA","MDERR")
    59  ; Patch 6 - Renal Check-In
    6053 I '$D(MDERR) S @RESULTS@(0)="1^OK" Q
    6154 D ERROR^MDRPCU(RESULTS,.MDERR)
     
    6861 ;
    6962GETCONS ; [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)
    7364 D CPLIST^GMRCCP(DFN,,$NA(^TMP("MDTMP",$J)))
    7465 S MDX=0
    7566 F  S MDX=$O(^TMP("MDTMP",$J,MDX)) Q:'MDX  D:"saprc"[$P(^(MDX),U,4)
    7667 .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)<MDCDT
    7868 .F X=2,3,4,1,6,5 S Y=Y_U_$P(^TMP("MDTMP",$J,MDX),U,X)
    7969 .S Y=Y_U_+$O(^MDD(702,"ACON",+$P(^TMP("MDTMP",$J,MDX),U,5)))
     
    124114 ;
    125115GETTRAN ; [Procedure] Get a patients transactions
    126  K ^TMP("MDTMP",$J),^TMP("MDCONL",$J) N MDCDT,MDCOM,MDMULT,MDNUM,MDREQ,MDREQDT,MDYR,X1,X2,X
    127  S MDNUM=$$GET^XPAR("SYS","MD DAYS TO RETAIN COM STUDY",1) S MDCOM=0
    128  I +MDNUM>0 S X1=DT,X2=-MDNUM D C^%DTC S MDCOM=X
    129  D CPLIST^GMRCCP(DFN,,$NA(^TMP("MDTMP",$J)))
    130  S X1=DT,X2=-365 D C^%DTC S MDCDT=X
    131  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)<MDCDT
    133  .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)
    135116 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)
    145118 .S Y=$O(@RESULTS@(""),-1)+1
    146119 .S @RESULTS@(Y)="702;"_+MDX_U_Z
    147120 S @RESULTS@(0)=+$O(@RESULTS@(""),-1)
    148  K ^TMP("MDCONL",$J)
    149121 Q
    150122 ;
    151123GETVST ; [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,X
    153  S NOW=$$NOW^XLFDT(),TODAY=$P(NOW,".",1),MDTDF=DFN
    154  S BEG=$$X2FM($$GETBEG),END=$$X2FM($$GETEND)+0.2359
     124 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
    155127 S MDLST="",MDSTOP=""
    156128 I END>NOW D   ; get future encounters, past cancels/no-shows from VADPT
     
    179151 .D CLOSE^SDQ(.MDQUERY)
    180152 N TIM,MOV,MDX0,Y,MTIM,XTYP,XLOC,XLOCI,HLOC,EARLY,DONE ; admits
    181  S EARLY=BEG,DONE=0 S:$G(DFN)="" DFN=MDTDF
     153 S EARLY=BEG,DONE=0
    182154 S TIM="" F  S TIM=$O(^DGPM("ATID1",DFN,TIM)) Q:TIM'>0  D  Q:DONE
    183155 .S MOV=0  F  S MOV=$O(^DGPM("ATID1",DFN,TIM,MOV)) Q:MOV'>0  D  Q:DONE
     
    192164 ..S K=0 F  S K=$O(MDLST(I,J,K)) Q:'K  D
    193165 ...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 ;
    203169LOGSEC ; [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")
    207172 Q
    208173 ;
     
    216181 ;
    217182SELECT ; [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")
    220235 Q
    221236 ;
Note: See TracChangeset for help on using the changeset viewer.