1 | PXRMGECU ;SLC/AGP,JVS - CLINICAL REMINDERS ;7/14/05 10:45
|
---|
2 | ;;2.0;CLINICAL REMINDERS;**4**;Feb 04, 2005;Build 21
|
---|
3 | Q
|
---|
4 | FINISHED(DFN,ANS) ;Delete 801.5 entries if finished
|
---|
5 | ;ANS=Answer to YES/NO button should be 1 or will quit
|
---|
6 | Q:DFN=""
|
---|
7 | Q:ANS=0
|
---|
8 | S PATDA="" F S PATDA=$O(^PXRMD(801.5,"B",DFN,PATDA)) Q:PATDA="" D
|
---|
9 | .S DA=PATDA,DIK="^PXRMD(801.5," D ^DIK
|
---|
10 | K DA,DIK,PATDA
|
---|
11 | Q
|
---|
12 | ;
|
---|
13 | CON(IEN,DFN) ;CHECK TO see if 2 DIA ARE DONE to display consult
|
---|
14 | N OK
|
---|
15 | ;
|
---|
16 | S OK=0
|
---|
17 | S GEC1DA=$O(^PXRMD(801.41,"AC","GEC1",0))
|
---|
18 | S GEC2DA=$O(^PXRMD(801.41,"AC","GEC2",0))
|
---|
19 | S GEC3DA=$O(^PXRMD(801.41,"AC","GEC3",0))
|
---|
20 | S GECFDA=$O(^PXRMD(801.41,"AC","GECF",0))
|
---|
21 | Q:IEN'=GEC1DA!(IEN'=GEC2DA)!(IEN'=GEC3DA) OK
|
---|
22 | ;
|
---|
23 | S CNT=0
|
---|
24 | I $D(^PXRMD(801.5,"AD",DFN,"GEC1")) S CNT=CNT+1
|
---|
25 | I $D(^PXRMD(801.5,"AD",DFN,"GEC2")) S CNT=CNT+1
|
---|
26 | I $D(^PXRMD(801.5,"AD",DFN,"GEC3")) S CNT=CNT+1
|
---|
27 | ;
|
---|
28 | I CNT>1 S OK=1
|
---|
29 | Q OK
|
---|
30 | ;
|
---|
31 | DEL(NOTEIEN) ;Delete HF and 801.5 Called from DELETE^TIUEDI1
|
---|
32 | N DFN,TIUNODE,FILEIEN,GEC,ENCDT,GECNODE,GECT,GECDA,HFDA
|
---|
33 | N HFARY
|
---|
34 | Q:'$D(^PXRMD(801.5,"ACOPY",NOTEIEN))
|
---|
35 | S DFN=$O(^PXRMD(801.5,"ACOPY",NOTEIEN,0))
|
---|
36 | S ENCDT=$O(^PXRMD(801.5,"ACOPY",NOTEIEN,DFN,0))
|
---|
37 | I $D(^PXRMD(801.5,"ANOTE",NOTEIEN)) D
|
---|
38 | .S GEC="" F S GEC=$O(^PXRMD(801.5,"ANOTE",NOTEIEN,GEC)) Q:GEC="" D
|
---|
39 | ..S FILEIEN=0 F S FILEIEN=$O(^PXRMD(801.5,"ANOTE",NOTEIEN,GEC,FILEIEN)) Q:FILEIEN="" D
|
---|
40 | ...S GECNODE=$G(^PXRMD(801.5,FILEIEN,0))
|
---|
41 | ...S GECT=$P(GECNODE,"^",3),GECDA=$O(^PX(839.7,"B",GECT,0))
|
---|
42 | ...S HFDA=0 F S HFDA=$O(^AUPNVHF("AED",ENCDT,DFN,GECDA,HFDA)) Q:HFDA="" D
|
---|
43 | ....S HFARY(HFDA)=""
|
---|
44 | ...S DA=FILEIEN S DIK="^PXRMD(801.5," D ^DIK
|
---|
45 | E I $D(^PXRMD(801.5,"ACOPY",NOTEIEN)) D
|
---|
46 | .S GECT="" F S GECT=$O(^PXRMD(801.5,"ACOPY",NOTEIEN,DFN,ENCDT,GECT)) Q:GECT="" D
|
---|
47 | ..S GECDA=$O(^PX(839.7,"B",GECT,0))
|
---|
48 | ..S HFDA=0 F S HFDA=$O(^AUPNVHF("AED",ENCDT,DFN,GECDA,HFDA)) Q:HFDA="" D
|
---|
49 | ...S HFARY(HFDA)=""
|
---|
50 | I $D(HFARY) D
|
---|
51 | .;
|
---|
52 | .N ZTIO,ZTRTN,ZTDTH,ZTSAVE,ZTDESC,ZTSK,GECIEN,GET
|
---|
53 | .;
|
---|
54 | .S ZTIO="ORW/PXAPI RESOURCE"
|
---|
55 | .S ZTRTN="REMOVE^PXRMGECK"
|
---|
56 | .S ZTDTH=$H
|
---|
57 | .S ZTSAVE("GECT")=""
|
---|
58 | .S ZTSAVE("HFARY(")=""
|
---|
59 | .S ZTDESC="PXRM remove Health Factors for GEC"
|
---|
60 | .D ^%ZTLOAD
|
---|
61 | ;Clean up ACOPY nodes
|
---|
62 | D ACOPYDEL^PXRMGECK
|
---|
63 | Q
|
---|
64 | ;
|
---|
65 | API(RESULT,IEN,DFN,VISIT,WHERE,NOTEIEN) ;
|
---|
66 | I '$D(NOTEIEN) S NOTEIEN=1
|
---|
67 | N GEC,DFNDT
|
---|
68 | S GEC=$$CHECKGEC(IEN)
|
---|
69 | I $G(GEC)="" S RESULT=0_U_"" Q
|
---|
70 | S RESULT=1_U_$$GECDT(DFN,GEC,VISIT,NOTEIEN)_";"_GEC_U_$$EVAL(DFN,GEC,WHERE)
|
---|
71 | ;
|
---|
72 | Q
|
---|
73 | ;
|
---|
74 | CHECKGEC(IEN) ;
|
---|
75 | N RIEN,DIEN
|
---|
76 | I IEN["R" D
|
---|
77 | . S RIEN=$E(IEN,2,$L(IEN)) S DIEN=$G(^PXD(811.9,RIEN,51))
|
---|
78 | . I $G(DIEN)'="" S GEC=$P($G(^PXRMD(801.41,DIEN,0)),U,16)
|
---|
79 | E S GEC=$P($G(^PXRMD(801.41,IEN,0)),U,16)
|
---|
80 | Q $G(GEC)
|
---|
81 | ;
|
---|
82 | GECDT(DFN,GEC,VISIT,NOTEIEN) ;Get Date/Time from file
|
---|
83 | N STOP
|
---|
84 | S STOP=0
|
---|
85 | I $D(^PXRMD(801.5,"B",DFN)) D CURADD
|
---|
86 | I '$D(^PXRMD(801.5,"B",DFN)) D NEWADD
|
---|
87 | S DFNDT=$O(^PXRMD(801.5,"AC",DFN,0))
|
---|
88 | Q DFNDT
|
---|
89 | ;
|
---|
90 | NEWADD ;-Set Data into File 801.5 and 801.55 (history)
|
---|
91 | Q:STOP=1
|
---|
92 | D
|
---|
93 | .Q:$D(^PXRMD(801.5,"AD",DFN,GEC))
|
---|
94 | .S GEX(1,801.5,"+1,",.01)=DFN
|
---|
95 | .S GEX(1,801.5,"+1,",.02)=$$NOW^XLFDT
|
---|
96 | .S GEX(1,801.5,"+1,",.03)=GEC
|
---|
97 | .S GEX(1,801.5,"+1,",.04)=+$G(NOTEIEN)
|
---|
98 | .S GEX(1,801.5,"+1,",.05)=DUZ
|
---|
99 | .S GEX(1,801.5,"+1,",.06)=DT
|
---|
100 | .S ^PXRMD(801.5,"ACOPY",+$G(NOTEIEN),DFN,$G(GEX(1,801.5,"+1,",.02)),GEC,DT)=""
|
---|
101 | .D UPDATE^DIE("","GEX(1)")
|
---|
102 | ;--HISTORY FILE
|
---|
103 | S GEX(2,801.55,"+1,",.01)=DFN
|
---|
104 | S GEX(2,801.55,"+1,",.02)=$$NOW^XLFDT
|
---|
105 | S GEX(2,801.55,"+1,",.03)=GEC
|
---|
106 | S GEX(2,801.55,"+1,",.04)=+$G(NOTEIEN)
|
---|
107 | S GEX(2,801.55,"+1,",.05)=DUZ
|
---|
108 | S GEX(2,801.55,"+1,",.06)=DT
|
---|
109 | D UPDATE^DIE("","GEX(2)")
|
---|
110 | K GEX
|
---|
111 | S STOP=1
|
---|
112 | Q
|
---|
113 | CURADD ;-Set Data into File 801.5 and 801.55 (history)
|
---|
114 | Q:STOP=1
|
---|
115 | D
|
---|
116 | .Q:$D(^PXRMD(801.5,"AD",DFN,GEC))
|
---|
117 | .S GEX(1,801.5,"+1,",.01)=DFN
|
---|
118 | .S GEX(1,801.5,"+1,",.02)=$O(^PXRMD(801.5,"AC",DFN,0))
|
---|
119 | .S GEX(1,801.5,"+1,",.03)=GEC
|
---|
120 | .S GEX(1,801.5,"+1,",.04)=+$G(NOTEIEN)
|
---|
121 | .S GEX(1,801.5,"+1,",.05)=DUZ
|
---|
122 | .S GEX(1,801.5,"+1,",.06)=DT
|
---|
123 | .S ^PXRMD(801.5,"ACOPY",+$G(NOTEIEN),DFN,$G(GEX(1,801.5,"+1,",.02)),GEC,DT)=""
|
---|
124 | .D UPDATE^DIE("","GEX(1)")
|
---|
125 | ;--HISTORY FILE
|
---|
126 | S GEX(2,801.55,"+1,",.01)=DFN
|
---|
127 | S GEX(2,801.55,"+1,",.02)=$O(^PXRMD(801.5,"AC",DFN,0))
|
---|
128 | S GEX(2,801.55,"+1,",.03)=GEC
|
---|
129 | S GEX(2,801.55,"+1,",.04)=+$G(NOTEIEN)
|
---|
130 | S GEX(2,801.55,"+1,",.05)=DUZ
|
---|
131 | S GEX(2,801.55,"+1,",.06)=DT
|
---|
132 | D UPDATE^DIE("","GEX(2)")
|
---|
133 | K GEX
|
---|
134 | S STOP=1
|
---|
135 | Q
|
---|
136 | ;
|
---|
137 | STATUS(DFN) ;Evaluate The status of the Referral
|
---|
138 | ;
|
---|
139 | N STOP,ZTSK
|
---|
140 | S STOP=0
|
---|
141 | I $D(^PXRMD(801.5,"ATASK",DFN)) S ZTSK=$O(^PXRMD(801.5,"ATASK",DFN,0)) D
|
---|
142 | .D STAT^%ZTLOAD
|
---|
143 | .I ZTSK(0)=1 D
|
---|
144 | ..I 12[ZTSK(1) D
|
---|
145 | ...S MESSAGE="Data is Changing!! Please Check Status Again^GEC Referral NO Status Available^0"
|
---|
146 | ...S STOP=1
|
---|
147 | Q:STOP=1 MESSAGE
|
---|
148 | ;
|
---|
149 | ;Returned
|
---|
150 | ;sentence ~ sentence ~ sentence ^ OK or YES/NO BOX
|
---|
151 | ;
|
---|
152 | N MISSING,MESSAGE,HFDA,STOP,BOX
|
---|
153 | S BOX=1
|
---|
154 | D ACOPYDEL^PXRMGECK
|
---|
155 | ;
|
---|
156 | ;GET IEN FOR DATA SOURCES FOR GEC
|
---|
157 | I $D(^PX(839.7,"B","GEC1")) S GEC1=$O(^PX(839.7,"B","GEC1",""))
|
---|
158 | I $D(^PX(839.7,"B","GEC2")) S GEC2=$O(^PX(839.7,"B","GEC2",""))
|
---|
159 | I $D(^PX(839.7,"B","GEC3")) S GEC3=$O(^PX(839.7,"B","GEC3",""))
|
---|
160 | I $D(^PX(839.7,"B","GECF")) S GECF=$O(^PX(839.7,"B","GECF",""))
|
---|
161 | ;
|
---|
162 | S STOP=0
|
---|
163 | S MESSAGE=" No GEC Referral in progress.^GEC Referral Status"
|
---|
164 | S HFDA="" F S HFDA=$O(^AUPNVHF("C",DFN,HFDA)) Q:HFDA="" Q:STOP=1 D
|
---|
165 | .I $D(^AUPNVHF(HFDA,12)) D
|
---|
166 | ..I $P($G(^AUPNVHF(HFDA,12)),"^",1)>0 D
|
---|
167 | ...S SOURCE=$P($G(^AUPNVHF(HFDA,812)),"^",3)
|
---|
168 | ...Q:SOURCE=""
|
---|
169 | ...I (SOURCE=$G(GEC1))!(SOURCE=$G(GEC2))!(SOURCE=$G(GEC3))!(SOURCE=$G(GECF)) D
|
---|
170 | ....S STOP=1
|
---|
171 | ;
|
---|
172 | S (MISSING)=""
|
---|
173 | I '$D(^PXRMD(801.5,"B",DFN))&(STOP=0) D
|
---|
174 | .S MESSAGE=" No GEC Referral on record.^Current GEC Referral Status"
|
---|
175 | Q:'$D(^PXRMD(801.5,"B",DFN)) MESSAGE
|
---|
176 | S MESSAGE=""
|
---|
177 | ;
|
---|
178 | ;
|
---|
179 | ; A. look for missing dialog
|
---|
180 | S:'$D(^PXRMD(801.5,"AD",DFN,"GEC1")) MISSING=MISSING_1_"^"
|
---|
181 | S:'$D(^PXRMD(801.5,"AD",DFN,"GEC2")) MISSING=MISSING_2_"^"
|
---|
182 | S:'$D(^PXRMD(801.5,"AD",DFN,"GEC3")) MISSING=MISSING_3_"^"
|
---|
183 | S:'$D(^PXRMD(801.5,"AD",DFN,"GECF")) MISSING=MISSING_4
|
---|
184 | ; a. if none missing then set message
|
---|
185 | ;I MISSING="" D
|
---|
186 | ; b. if missing then create message
|
---|
187 | I MISSING'=""!(MISSING="") D
|
---|
188 | .S MESSAGE="The following Dialogs are Complete:~"
|
---|
189 | .S:MISSING'[1 MESSAGE=MESSAGE_$P($T(T+7),";",3) D
|
---|
190 | ..I +$$TIUSTAT^PXRMGECK(DFN,"GEC1") D
|
---|
191 | ...S MESSAGE=MESSAGE_"~"_" Note is "_$P($$TIUSTAT^PXRMGECK(DFN,"GEC1"),":",2)_" "_$P($$TIUSTAT^PXRMGECK(DFN,"GEC1"),":",4)_"~"
|
---|
192 | .S:MISSING'[2 MESSAGE=MESSAGE_$P($T(T+8),";",3) D
|
---|
193 | ..I +$$TIUSTAT^PXRMGECK(DFN,"GEC2") D
|
---|
194 | ...S MESSAGE=MESSAGE_"~"_" Note is "_$P($$TIUSTAT^PXRMGECK(DFN,"GEC2"),":",2)_" "_$P($$TIUSTAT^PXRMGECK(DFN,"GEC2"),":",4)_"~"
|
---|
195 | .S:MISSING'[3 MESSAGE=MESSAGE_$P($T(T+9),";",3) D
|
---|
196 | ..I +$$TIUSTAT^PXRMGECK(DFN,"GEC3") D
|
---|
197 | ...S MESSAGE=MESSAGE_"~"_" Note is "_$P($$TIUSTAT^PXRMGECK(DFN,"GEC3"),":",2)_" "_$P($$TIUSTAT^PXRMGECK(DFN,"GEC3"),":",4)_"~"
|
---|
198 | .S:MISSING'[4 MESSAGE=MESSAGE_$P($T(T+10),";",3) D
|
---|
199 | ..I +$$TIUSTAT^PXRMGECK(DFN,"GECF") D
|
---|
200 | ...S MESSAGE=MESSAGE_"~"_" Note is "_$P($$TIUSTAT^PXRMGECK(DFN,"GECF"),":",2)_" "_$P($$TIUSTAT^PXRMGECK(DFN,"GECF"),":",4)_"~"
|
---|
201 | .I $E(MESSAGE,$L(MESSAGE))'="~" S MESSAGE=MESSAGE_"~"
|
---|
202 | .I MISSING'="" S MESSAGE=MESSAGE_$P($T(T+11),";",3)
|
---|
203 | .S:MISSING[1 MESSAGE=MESSAGE_$P($T(T+7),";",3)
|
---|
204 | .S:MISSING[2 MESSAGE=MESSAGE_$P($T(T+8),";",3)
|
---|
205 | .S:MISSING[3 MESSAGE=MESSAGE_$P($T(T+9),";",3)
|
---|
206 | .S:MISSING[4 MESSAGE=MESSAGE_$P($T(T+10),";",3)
|
---|
207 | ;
|
---|
208 | I MISSING="" S MESSAGE=MESSAGE_"~"_$P($T(T+5),";",3)
|
---|
209 | S MESSAGE=MESSAGE_$P($T(T+6),";",3)
|
---|
210 | S MESSAGE=MESSAGE_"^Current GEC Referral Status"_"^"_BOX
|
---|
211 | ;
|
---|
212 | Q MESSAGE
|
---|
213 | ;
|
---|
214 | EVAL(DFN,GEC,WHERE) ;Evaluate for missing dialogs
|
---|
215 | ;DFN=PATIENT DFN
|
---|
216 | ;GEC=Identify for Dialog
|
---|
217 | ;WHERE=What part of the dialog this call is comming from
|
---|
218 | ; 0=Object at the start
|
---|
219 | ; 1=Finished button
|
---|
220 | ;
|
---|
221 | ;Returned
|
---|
222 | ;Box Header ^ Message ^ Box display Flag
|
---|
223 | ;
|
---|
224 | ;Clean up ACOPY node
|
---|
225 | D ACOPYDEL^PXRMGECK
|
---|
226 | ;
|
---|
227 | N MISSING,MESSAGE,DIANAME,FORTH,BOX
|
---|
228 | ;
|
---|
229 | ;Getting the Names fo the dialogs
|
---|
230 | I GEC="GEC1" S DIANAME=$P($T(T+1),";",3)
|
---|
231 | I GEC="GEC2" S DIANAME=$P($T(T+2),";",3)
|
---|
232 | I GEC="GEC3" S DIANAME=$P($T(T+3),";",3)
|
---|
233 | I GEC="GECF" S DIANAME=$P($T(T+4),";",3)
|
---|
234 | ;
|
---|
235 | ;Check to see if 4th is done;add 1 or 0 to end of message
|
---|
236 | ;if 1 the GUI should bring up a modal box asking if finished
|
---|
237 | S FORTH=0
|
---|
238 | S:$D(^PXRMD(801.5,"AD",DFN,"GECF"))!(GEC["GECF") FORTH=1
|
---|
239 | I 'WHERE S FORTH=0
|
---|
240 | ;
|
---|
241 | ;
|
---|
242 | S (MISSING,MESSAGE)=""
|
---|
243 | Q:'$D(^PXRMD(801.5,"B",DFN)) MESSAGE
|
---|
244 | I WHERE Q:FORTH=0 MESSAGE
|
---|
245 | ;
|
---|
246 | ;
|
---|
247 | ; A. look for missing dialog
|
---|
248 | S:'$D(^PXRMD(801.5,"AD",DFN,"GEC1"))&(GEC'["GEC1") MISSING=MISSING_1_"^"
|
---|
249 | S:'$D(^PXRMD(801.5,"AD",DFN,"GEC2"))&(GEC'["GEC2") MISSING=MISSING_2_"^"
|
---|
250 | S:'$D(^PXRMD(801.5,"AD",DFN,"GEC3"))&(GEC'["GEC3") MISSING=MISSING_3_"^"
|
---|
251 | S:'$D(^PXRMD(801.5,"AD",DFN,"GECF"))&(GEC'["GECF") MISSING=MISSING_4
|
---|
252 | ; a. if none missing then set message
|
---|
253 | I MISSING="" D
|
---|
254 | .I WHERE S MESSAGE=$P($T(T+5),";",3)_$P($T(T+6),";",3)
|
---|
255 | .I 'WHERE S MESSAGE=$P($T(T+5),";",3)
|
---|
256 | ; b. if missing then create message
|
---|
257 | I MISSING'="" D
|
---|
258 | .S MESSAGE="The Following Dialogs are Missing:~"
|
---|
259 | .S:MISSING[1 MESSAGE=MESSAGE_$P($T(T+7),";",3)
|
---|
260 | .S:MISSING[2 MESSAGE=MESSAGE_$P($T(T+8),";",3)
|
---|
261 | .S:MISSING[3 MESSAGE=MESSAGE_$P($T(T+9),";",3)
|
---|
262 | .S:MISSING[4 MESSAGE=MESSAGE_$P($T(T+10),";",3)
|
---|
263 | .Q:'WHERE
|
---|
264 | .S MESSAGE=MESSAGE_$P($T(T+6),";",3)_$P($T(T+12),";",3)_$P($T(T+13),";",3)
|
---|
265 | ;
|
---|
266 | S BOX="GEC Referral Completion Status"
|
---|
267 | S MESSAGE=BOX_"^"_MESSAGE_"^"_FORTH
|
---|
268 | Q MESSAGE
|
---|
269 | ;
|
---|
270 | T ;TEXT
|
---|
271 | ;; Social Services,
|
---|
272 | ;; Nursing Assessment,
|
---|
273 | ;; Care Recommendations,
|
---|
274 | ;; Care Coordination
|
---|
275 | ;; All Dialogs are Finished.
|
---|
276 | ;; ~~Is this Referral Complete?
|
---|
277 | ;; ~ Social Services
|
---|
278 | ;; ~ Nursing Assessment
|
---|
279 | ;; ~ Care Recommendations
|
---|
280 | ;; ~ Care Coordination
|
---|
281 | ;; ~The Following Dialogs are Missing:~
|
---|
282 | ;; ~~(If you select Yes, the current REFERRAL ~will be completed and the information ~from the missing dialogs cannot be added.
|
---|
283 | ;; ~~If you select No, the current REFERRAL ~remains open.)
|
---|
284 | Q
|
---|