1 | MDRPCOT1 ; HOIFO/NCA/DP - Object RPCs (TMDTransaction) - Continued ; [08-02-2002 12:55]
|
---|
2 | ;;1.0;CLINICAL PROCEDURES;**5**;Apr 01, 2004;Build 1
|
---|
3 | ; Integration Agreements:
|
---|
4 | ; IA# 3468 [Subscription] GMRCCP API.
|
---|
5 | ; IA# 3567 [Subscription] MAGGSIUI API
|
---|
6 | ; IA# 10040 [Supported] Hospital Location File Access
|
---|
7 | ; IA# 10061 [Supported] Calls to VADPT
|
---|
8 | ; IA# 10103 [Supported] Calls to XLFDT.
|
---|
9 | ;
|
---|
10 | DELERR(MDTIEN) ; [Procedure] Delete Imaging Error Messages
|
---|
11 | S MDLP=0 F S MDLP=$O(^MDD(702,MDTIEN,.091,MDLP)) Q:'MDLP D
|
---|
12 | .K DA,DIK
|
---|
13 | .S DA=+MDLP,DA(1)=+MDTIEN,DIK="^MDD(702,"_DA(1)_",.091," D ^DIK
|
---|
14 | .Q
|
---|
15 | Q
|
---|
16 | ;
|
---|
17 | IMGSTAT(STUDY,MDSTAT) ; [Procedure] Update the Image Status.
|
---|
18 | N MDL
|
---|
19 | S MDL=0 F S MDL=$O(^MDD(702,STUDY,.1,MDL)) Q:MDL<1 S $P(^(MDL,0),"^",9)=MDSTAT
|
---|
20 | Q
|
---|
21 | ;
|
---|
22 | GETVSTR(DFN,MDSSTR,MDPR,MDTR) ; [Function] Check the Visit String
|
---|
23 | N MDCLOC,MDLOC,MDINPT,VAIP
|
---|
24 | I '$G(MDTR) Q 0
|
---|
25 | I '$G(MDPR) Q 0
|
---|
26 | I $G(MDSSTR)="" Q 0
|
---|
27 | S VAIP("D")=MDTR ; DT of Transaction Created
|
---|
28 | D IN5^VADPT S MDINPT=$S(+VAIP(13):1,1:0)
|
---|
29 | S MDCLOC=$$GET1^DIQ(702.01,+MDPR_",",.05,"I")
|
---|
30 | I 'MDCLOC S MDCLOC=+$P(MDSSTR,";",3) I 'MDCLOC Q 0
|
---|
31 | S Y=MDCLOC_";"_$P(MDSSTR,";",2)_";"_$P(MDSSTR,";")
|
---|
32 | I $P(Y,";",3)="A" Q Y
|
---|
33 | S:$P(Y,";",3)="" $P(Y,";",3)="A"
|
---|
34 | S:+MDINPT $P(Y,";",3)="A"
|
---|
35 | Q Y
|
---|
36 | ;
|
---|
37 | PDT(STUDY) ; [Function] Loop through the attachments for Date/Time Performed.
|
---|
38 | N MDL,MDDT
|
---|
39 | S MDL=0,MDDT=""
|
---|
40 | F S MDL=$O(^MDD(702,STUDY,.1,MDL)) Q:'MDL D Q:MDDT
|
---|
41 | .S MDDT=$P($G(^MDD(702,STUDY,.1,MDL,0)),"^",3)
|
---|
42 | I MDDT S MDDT=$P($G(^MDD(703.1,+MDDT,0)),"^",3) ; Get Date/Time Performed
|
---|
43 | Q MDDT
|
---|
44 | ;
|
---|
45 | SUBMIT(STUDY) ; [Function] Submit all non-pending/uncomplete images in transaction to Imaging
|
---|
46 | N DATA,MDACQ,MDC,MDCRES,MDCTR,MDLOC,MDAR,MDARR,MDDT,MDFDA,MDDEL,MDIEN,MDIENS,MDIMG,MDL,MDMAG,MDR,MDST,MDX,MDY,MDZ
|
---|
47 | S MDIEN=+STUDY,MDIENS=MDIEN_","
|
---|
48 | S MDST=$$GET1^DIQ(702,MDIEN,.09,"I") I "13"[MDST Q "-1^Study not in proper status"
|
---|
49 | D DELERR(+MDIEN)
|
---|
50 | I $$GET1^DIQ(702,MDIEN,.01)="" Q "-1^No Entry in file (#702)."
|
---|
51 | D NOW^%DTC S MDDT=%
|
---|
52 | S MDMAG("IDFN")=+$$GET1^DIQ(702,MDIEN,.01,"I")
|
---|
53 | I 'MDMAG("IDFN") Q "-1^No Patient DFN."
|
---|
54 | S MDMAG("PXPKG")=8925
|
---|
55 | S MDMAG("PXIEN")=+$$GET1^DIQ(702,MDIEN,.06,"I")
|
---|
56 | I 'MDMAG("PXIEN") Q "-1^No TIU IEN"
|
---|
57 | I '$O(^MDD(702,MDIEN,.1,0)) D Q $S(+MDR<0:MDR,1:"3^Transaction Complete")
|
---|
58 | .S MDC=$$GET1^DIQ(702,MDIEN,.05,"I")
|
---|
59 | .S MDR=$$UPDCONS(MDC,MDMAG("PXIEN"))
|
---|
60 | S MDMAG("STSCB")="ISTAT^MDAPI"
|
---|
61 | S MDMAG("TRKID")="CP;"_MDIEN_"-"_MDDT
|
---|
62 | S MDLOC=$$GET1^DIQ(702,MDIEN,.07,"I"),MDLOC=$P(MDLOC,";",3)
|
---|
63 | I 'MDLOC Q "-1^No Hospital Location."
|
---|
64 | S MDMAG("ACQS")=$S(+$$GET1^DIQ(44,MDLOC_",",3,"I"):+$$GET1^DIQ(44,MDLOC_",",3,"I"),1:+$G(DUZ(2)))
|
---|
65 | S MDMAG("ACQL")=MDLOC
|
---|
66 | S MDX=$$GET1^DIQ(702,MDIEN,.04,"I")
|
---|
67 | S MDZ=$P(^MDS(702.01,+MDX,0),"^",1)
|
---|
68 | S (MDACQ,MDX,MDDEL)="",MDCTR=0
|
---|
69 | N MDTOT S MDTOT=$$GET1^DIQ(702,MDIENS,.991)
|
---|
70 | S MDL=0 F S MDL=$O(^MDD(702,MDIEN,.1,MDL)) Q:MDL<1 S MDX=$G(^(MDL,0)) D
|
---|
71 | .S:'MDDEL MDDEL=$P(MDX,"^",3)
|
---|
72 | .S MDY=$G(^MDD(702,MDIEN,.1,MDL,.1)) Q:MDY=""
|
---|
73 | .S:MDACQ="" MDACQ=$P($P(MDY,"\\",2),"\")
|
---|
74 | .S:"12"[$P(MDX,"^",9) $P(MDX,"^",9)=""
|
---|
75 | .I $P(MDX,"^",9)="" S MDCTR=MDCTR+1,MDARR(MDCTR)=MDY_"^"_MDZ_" image "_MDCTR_" out of "_MDTOT
|
---|
76 | .Q
|
---|
77 | I '$O(MDARR(0)) Q "-1^No UNC."
|
---|
78 | S MDMAG("GDESC")=MDZ_" Result"
|
---|
79 | I MDDEL S MDY=$P($G(^MDD(703.1,+MDDEL,0)),"^",3,4),MDMAG("PXDT")=$P(MDY,"^",1),MDY=+$P(MDY,"^",2),MDMAG("ACQD")=$P($G(^MDS(702.09,+MDY,0)),"^"),MDMAG("DFLG")=+$P($G(^MDS(702.09,+MDY,0)),"^",5)
|
---|
80 | S:$G(MDMAG("ACQD"))="" MDMAG("ACQD")=MDACQ
|
---|
81 | S:'$G(MDMAG("PXDT")) MDMAG("PXDT")=MDDT ; If no date, use NOW in MDDT
|
---|
82 | S MDMAG("TRTYPE")="NEW"
|
---|
83 | D IMPORT^MAGGSIUI(.MDIMG,.MDARR,.MDMAG)
|
---|
84 | I '(+$G(MDIMG(0))) D Q "-1^"_$P(MDIMG(0),"^",2)
|
---|
85 | .D IMGSTAT(+MDIENS,1)
|
---|
86 | .F MDAR=0:0 S MDAR=$O(MDIMG(MDAR)) Q:'MDAR I $G(MDIMG(MDAR))'="" D
|
---|
87 | ..S DATA("MESSAGE")=$$TRANS^MDAPI(MDIMG(MDAR)) D ADDMSG^MDRPCOT
|
---|
88 | D IMGSTAT(+MDIENS,0)
|
---|
89 | Q "1^Images Submitted"
|
---|
90 | ;
|
---|
91 | UPDCONS(MDC,MDDOC) ; [Function] Update Consults Procedure Status
|
---|
92 | N MDCRES
|
---|
93 | S MDCRES=$$CPDOC^GMRCCP(MDC,MDDOC,2)
|
---|
94 | I '(+MDCRES) Q "-1^"_$P(MDCRES,"^",2)
|
---|
95 | Q 1
|
---|
96 | ;
|
---|
97 | GETIORD(MDIEN) ; [Function] Return the Instrument order number for this study
|
---|
98 | ; Called from instrument interface routines
|
---|
99 | Q:'$D(^MDD(702,MDIEN,0))#2 -1 ; No such study
|
---|
100 | Q:'$P(^MDD(702,MDIEN,0),U,12) $$NEWIORD(MDIEN) ; Create a new one
|
---|
101 | Q $P(^MDD(702,MDIEN,0),U,12) ; Return the existing one
|
---|
102 | ;
|
---|
103 | NEWIORD(MDIEN) ; [Function] Generate & return new unique instrument order number
|
---|
104 | ; Notice: will overwrite existing order number if it exists
|
---|
105 | N MDFDA
|
---|
106 | Q:'$D(^MDD(702,MDIEN,0))#2 -1 ; No such study
|
---|
107 | L +^MDD(702,"AION"):15 E Q -1 ; Unable to lock and guarantee uniqueness
|
---|
108 | F D Q:'$D(^MDD(702,"AION",X)) H 1 ; Loop until unique
|
---|
109 | . S X=$$NOW^XLFDT() ; Current DateTime
|
---|
110 | . S X=$TR($J(X,14,6),".","") ; Pad with 0's and strip the decimal
|
---|
111 | . Q
|
---|
112 | I $E($G(^MDS(702.09,DEVIEN,0)),1,4)="Muse" D
|
---|
113 | . ; Due to current limitation to the Muse can only except 9
|
---|
114 | . S X=$E($TR($H,",",""),2,10) ; Using $E($H) only for the MUSE
|
---|
115 | . I '$D(^MDD(702,"AION",X)) Q ; It is unique and quit
|
---|
116 | . N I,FLG ; Not unique
|
---|
117 | . S FLG=0
|
---|
118 | . F I=1:1 D Q:FLG
|
---|
119 | . . S X=X+1
|
---|
120 | . . I '$D(^MDD(702,"AION",X)) S FLG=1
|
---|
121 | . . Q
|
---|
122 | . Q
|
---|
123 | S MDFDA(702,MDIEN_",",.12)=X ; Build FDA
|
---|
124 | D FILE^DIE("","MDFDA") ; File it
|
---|
125 | L -(^MDD(702,"AION")) ; Unlock it
|
---|
126 | Q $P(^MDD(702,MDIEN,0),U,12) ; Return it from the file
|
---|
127 | ;
|
---|
128 | GETSTDY(MDION) ; [Function] Return study from instrument order number
|
---|
129 | ; Called from instrument interface routines
|
---|
130 | Q:'$D(^MDD(702,"AION",MDION)) -1 ; No such order number
|
---|
131 | Q $O(^MDD(702,"AION",MDION,"")) ; Return the 702 ien
|
---|
132 | ;
|
---|