1 | PXRMGECP ;SLC/JVS -GEC-Prompts ;7/14/05 10:43
|
---|
2 | ;;2.0;CLINICAL REMINDERS;**2,4**;Feb 04, 2005;Build 21
|
---|
3 | Q
|
---|
4 | EN ;Entry Point
|
---|
5 | ;^DISV( = DBIA #510
|
---|
6 | N POP,DIROUT,DIRUT,DUOUT,LOCNP,MENU,PROV,Y
|
---|
7 | N DETAIL,FORMAT,INC
|
---|
8 | ;D INIT^PXRMGECW
|
---|
9 | S X="IOUON;IOUOFF;IORVOFF;IORVON" D ENDR^%ZISS
|
---|
10 | W IOUOFF,IORVOFF
|
---|
11 | W @IOF
|
---|
12 | W !,"All Reports will print on 80 Columns"
|
---|
13 | K DIR
|
---|
14 | S DIR("A")="Select Option or ^ to Exit"
|
---|
15 | I $D(^DISV(DUZ,"PXRMGEC","EN")) S DIR("B")=$G(^DISV(DUZ,"PXRMGEC","EN"))
|
---|
16 | S DIR(0)="S^1:Category;2:Patient;3:Provider by Patient;4:Referral Date;5:Location;6:Referral Count Totals;7:Category-Referred Service;8:Summary (Score);9:'Home Help' Eligibility;10:Restore or Merge Referrals"
|
---|
17 | D ^DIR
|
---|
18 | K DIR("A"),DIR("B"),DIR(0)
|
---|
19 | Q:$D(DIRUT)!($D(DIROUT))
|
---|
20 | ;DBIA #510
|
---|
21 | S MENU=Y,^DISV(DUZ,"PXRMGEC","EN")=MENU
|
---|
22 | I MENU=1 D CAT
|
---|
23 | I MENU=2 D PATIENT
|
---|
24 | I MENU=3 D PRO
|
---|
25 | I MENU=4 D DR
|
---|
26 | I MENU=5 D LOCDIR^PXRMGECO
|
---|
27 | I MENU=6 D CT^PXRMGECO
|
---|
28 | I MENU=7 D RS^PXRMGECO
|
---|
29 | I MENU=8 D SUM^PXRMGECO
|
---|
30 | I MENU=9 D HOME^PXRMG2R2
|
---|
31 | I MENU=10 D EN^PXRMGECJ
|
---|
32 | D KILL^%ZISS
|
---|
33 | Q
|
---|
34 | ;==========================================================
|
---|
35 | ;
|
---|
36 | CAT ;#1 Start List and array of GEC Categories
|
---|
37 | ;
|
---|
38 | N CAT,CATNA,CNT,STAY,NUM,CATIEN,CATARY,BDT,EDT,CATDA,SYN
|
---|
39 | W @IOF
|
---|
40 | W "GEC Referral Categories"
|
---|
41 | S CNT=0
|
---|
42 | S SYN="" F S SYN=$O(^AUTTHF("D",SYN)) Q:SYN="" D
|
---|
43 | .I $E(SYN,1,3)="GEC",$E(SYN,5)="C" D
|
---|
44 | ..S CAT=0 F S CAT=$O(^AUTTHF("D",SYN,CAT)) Q:CAT="" D
|
---|
45 | ...Q:$P($G(^AUTTHF(CAT,0)),"^",11)=1
|
---|
46 | ...S CATNA=$P($G(^AUTTHF(CAT,0)),"^",1)
|
---|
47 | ...S CATNA=$P(CATNA," ",3,7)
|
---|
48 | ...S CATARY(CATNA,CAT)=""
|
---|
49 | S CATNA="" F S CATNA=$O(CATARY(CATNA)) Q:CATNA="" D
|
---|
50 | .S CAT=$O(CATARY(CATNA,0))
|
---|
51 | .S CNT=CNT+1
|
---|
52 | .S CATDA(CNT,CAT)=""
|
---|
53 | .W:CNT#2=1 !,CNT,?4,CATNA
|
---|
54 | .W:CNT#2=0 ?35,CNT,?39,CATNA
|
---|
55 | SC ;=====Select Categories
|
---|
56 | W !
|
---|
57 | S DIR("A",1)="Select Categories from the list above using"
|
---|
58 | S DIR("A",2)="Commas and/or Dashes for ranges of numbers."
|
---|
59 | S DIR("A")="Select Categories or ^ to exit"
|
---|
60 | I $D(^DISV(DUZ,"PXRMGEC","SC")) S DIR("B")=$G(^DISV(DUZ,"PXRMGEC","SC"))
|
---|
61 | S DIR(0)="L^1:"_CNT
|
---|
62 | D ^DIR
|
---|
63 | K DIR("A"),DIR("B"),DIR(0)
|
---|
64 | Q:$D(DIROUT)
|
---|
65 | Q:$D(DIRUT)
|
---|
66 | S ^DISV(DUZ,"PXRMGEC","SC")=X
|
---|
67 | N LEN,IME,MEY
|
---|
68 | S LEN=$L(Y,",")
|
---|
69 | S MEY=0 F IME=1:1:LEN-1 S MEY=$P(Y,",",IME) D
|
---|
70 | .S CATMEY(MEY)=""
|
---|
71 | S STAY=0 F S STAY=$O(CATDA(STAY)) Q:STAY="" D
|
---|
72 | .I '$D(CATMEY(STAY)) K CATDA(STAY)
|
---|
73 | S NUM=0 F S NUM=$O(CATDA(NUM)) Q:NUM="" D
|
---|
74 | .S CATIEN($O(CATDA(NUM,0)))=""
|
---|
75 | K CATDA,CATMEY
|
---|
76 | CATBDT D BDT Q:$D(DIROUT)!$D(DIRUT)
|
---|
77 | CATEDT D EDT Q:$D(DIROUT) I $D(DIRUT) K DIRUT G CATBDT
|
---|
78 | CATPAT D PAT Q:$D(DIROUT) I $D(DIRUT) K DIRUT G CATEDT
|
---|
79 | CATFOR D FOR Q:$D(DIROUT) I $D(DIRUT) K DIRUT G CATPAT
|
---|
80 | CATIOO D CATIO Q:$D(DIROUT)
|
---|
81 | Q
|
---|
82 | BDT ;=====Select Beginning Date
|
---|
83 | ;--Return BDT as DATE
|
---|
84 | W !
|
---|
85 | S DIR("A",1)="Select a Beginning Historical Date."
|
---|
86 | S DIR("A")="BEGINNING date or ^ to exit"
|
---|
87 | I $D(^DISV(DUZ,"PXRMGEC","BDT")) S DIR("B")=$G(^DISV(DUZ,"PXRMGEC","BDT"))
|
---|
88 | S DIR(0)="D^2880101:"_DT_":EX"
|
---|
89 | D ^DIR
|
---|
90 | K DIR("A"),DIR("B"),DIR(0)
|
---|
91 | Q:$D(DIROUT)!($D(DIRUT))
|
---|
92 | S ^DISV(DUZ,"PXRMGEC","BDT")=X
|
---|
93 | S BDT=Y
|
---|
94 | Q
|
---|
95 | ;
|
---|
96 | EDT ;=====Select Ending Date
|
---|
97 | ;--Return EDT as DATE
|
---|
98 | W !
|
---|
99 | S DIR("A",1)="Select Ending Date."
|
---|
100 | S DIR("A")="ENDING date or ^ to exit"
|
---|
101 | I $D(^DISV(DUZ,"PXRMGEC","EDT")) S DIR("B")=$G(^DISV(DUZ,"PXRMGEC","EDT"))
|
---|
102 | S DIR(0)="D^"_BDT_":"_DT_":EX"
|
---|
103 | D ^DIR
|
---|
104 | K DIR("A"),DIR("B"),DIR(0)
|
---|
105 | Q:$D(DIROUT)!($D(DIRUT))
|
---|
106 | S ^DISV(DUZ,"PXRMGEC","EDT")=X
|
---|
107 | S EDT=Y
|
---|
108 | Q
|
---|
109 | ;=====Select Patients
|
---|
110 | PAT ;--Return DFNONLY as Patient DFN
|
---|
111 | W @IOF
|
---|
112 | K DIR,DIR("A")
|
---|
113 | K DFNONLY
|
---|
114 | S DIR("A")="Select Patients or ^ to exit"
|
---|
115 | I $D(^DISV(DUZ,"PXRMGEC","PAT")) S DIR("B")=$G(^DISV(DUZ,"PXRMGEC","PAT"))
|
---|
116 | S DIR(0)="S^A:All Patients;M:Multiple Patients"
|
---|
117 | D ^DIR
|
---|
118 | K DIR("A"),DIR("B"),DIR(0)
|
---|
119 | Q:$D(DIROUT)!($D(DIRUT))
|
---|
120 | S ^DISV(DUZ,"PXRMGEC","PAT")=X
|
---|
121 | I Y="A" S DFNONLY=0
|
---|
122 | I Y="M" D PATLU
|
---|
123 | Q
|
---|
124 | ;
|
---|
125 | FOR ;=====Formatted or Delimited Report
|
---|
126 | ;--Return FORMAT equal to Y
|
---|
127 | S DIR("A")="Select Report Format or ^ to exit"
|
---|
128 | I $D(^DISV(DUZ,"PXRMGEC","FOR")) S DIR("B")=$G(^DISV(DUZ,"PXRMGEC","FOR"))
|
---|
129 | S DIR(0)="S^F:Formatted;D:Delimited"
|
---|
130 | D ^DIR
|
---|
131 | K DIR("A"),DIR("B"),DIR(0)
|
---|
132 | Q:$D(DIRUT)!($D(DIROUT))
|
---|
133 | S ^DISV(DUZ,"PXRMGEC","FOR")=X
|
---|
134 | S FORMAT=Y
|
---|
135 | Q
|
---|
136 | ;
|
---|
137 | CATIO ;=====Select IO device
|
---|
138 | Q:'$D(BDT)!('$D(EDT))!('$D(DFNONLY))!'$D(FORMAT)
|
---|
139 | N %ZIS
|
---|
140 | S %ZIS="QM" D ^%ZIS
|
---|
141 | I POP Q
|
---|
142 | I $D(IO("Q")) D
|
---|
143 | .S ZTRTN="HFCD^PXRMGECQ"
|
---|
144 | .S ZTDESC="Gec Report Printing"
|
---|
145 | .S ZTSAVE("*")=""
|
---|
146 | .D ^%ZTLOAD K IO("Q") Q
|
---|
147 | ;=====Call Report
|
---|
148 | E D HFCD^PXRMGECR
|
---|
149 | D HOME^%ZIS
|
---|
150 | D ^%ZISC
|
---|
151 | S:'$D(DIRUT)&('$D(DUOUT))&('$D(DIROUT)) DIR(0)="E" D ^DIR K DIR(0),Y
|
---|
152 | Q
|
---|
153 | ;
|
---|
154 | ;================SUB ROUTINES==============================
|
---|
155 | PROV ;Select Provider
|
---|
156 | W @IOF
|
---|
157 | N DIC,Y
|
---|
158 | S PROV=0
|
---|
159 | K PROVARY
|
---|
160 | S DIC="^VA(200,"
|
---|
161 | S DIC(0)="QAMEZ"
|
---|
162 | PROVR D ^DIC
|
---|
163 | I Y=-1 K DIC,DIC(0),Y Q
|
---|
164 | I +Y>0 S PROVARY(+Y)=""
|
---|
165 | S PROV=+Y
|
---|
166 | G PROVR
|
---|
167 | Q
|
---|
168 | ;
|
---|
169 | PATLU ;Patient Look up
|
---|
170 | N Y,DIC
|
---|
171 | S DFNONLY=0
|
---|
172 | K DFNARY
|
---|
173 | S DIC="^DPT("
|
---|
174 | S DIC(0)="QAMEZ"
|
---|
175 | PATLUR D ^DIC
|
---|
176 | I Y=-1 K DIC,DIC(0),Y Q
|
---|
177 | I +Y>0 S DFNONLY=+Y,DFNARY(+Y)=""
|
---|
178 | G PATLUR
|
---|
179 | Q
|
---|
180 | ;
|
---|
181 | ;================================================================
|
---|
182 | PRO ; #3 Start of Provider by Patient Report
|
---|
183 | N BDT,EDT,DFNONLY
|
---|
184 | W @IOF
|
---|
185 | K DIR
|
---|
186 | I $D(^DISV(DUZ,"PXRMGEC","PRO")) S DIR("B")=$G(^DISV(DUZ,"PXRMGEC","PRO"))
|
---|
187 | S DIR(0)="S^A:All Providers;M:Multiple Providers"
|
---|
188 | D ^DIR
|
---|
189 | K DIR("A"),DIR("B"),DIR(0)
|
---|
190 | Q:$D(DIRUT)!($D(DUOUT))
|
---|
191 | Q:$D(DIROUT)
|
---|
192 | S ^DISV(DUZ,"PXRMGEC","PRO")=X
|
---|
193 | I Y="A" S PROV=0
|
---|
194 | I Y="M" D PROV Q:'$D(PROVARY)
|
---|
195 | Q:$D(DIRUT)!($D(DIROUT))
|
---|
196 | PROBDT D BDT Q:$D(DIRUT)!($D(DIRUT))
|
---|
197 | PROEDT D EDT Q:$D(DIROUT) I $D(DIRUT) K DIRUT G PROBDT
|
---|
198 | PROFOR D FOR Q:$D(DIROUT) I $D(DIRUT) K DIRUT G PROEDT
|
---|
199 | PROIOO D PROIO Q:$D(DIROUT)
|
---|
200 | Q
|
---|
201 | ;
|
---|
202 | PROIO ;=====Select IO device
|
---|
203 | N %ZIS
|
---|
204 | S %ZIS="QM" D ^%ZIS
|
---|
205 | I POP Q
|
---|
206 | I $D(IO("Q")) D
|
---|
207 | .S ZTRTN="DFN2^PXRMGECQ"
|
---|
208 | .S ZTDESC="GEC PROVIDER REPORT"
|
---|
209 | .S ZTSAVE("*")=""
|
---|
210 | .D ^%ZTLOAD K IO("Q") Q
|
---|
211 | ;=====Call Report
|
---|
212 | E D DFN2^PXRMGECS
|
---|
213 | D HOME^%ZIS
|
---|
214 | D ^%ZISC
|
---|
215 | S:'$D(DIRUT)&('$D(DUOUT))&('$D(DIROUT)) DIR(0)="E" D ^DIR K DIR(0),Y
|
---|
216 | Q
|
---|
217 | ;=================================================================
|
---|
218 | DR ; #4 Referral Date
|
---|
219 | ;
|
---|
220 | DRPAT D PAT Q:$D(DIROUT)!($D(DIRUT))
|
---|
221 | DRBDT D BDT Q:$D(DIROUT) I $D(DIRUT) K DIRUT G DRPAT
|
---|
222 | DREDT D EDT Q:$D(DIROUT) I $D(DIRUT) K DIRUT G DRBDT
|
---|
223 | DRALL D ALL Q:$D(DIROUT) I $D(DIRUT) K DIRUT G DREDT
|
---|
224 | DRFOR D FOR Q:$D(DIROUT) I $D(DIRUT) K DIRUT G DRALL
|
---|
225 | DRIOO D DRIO Q:$D(DIROUT)
|
---|
226 | Q
|
---|
227 | ;
|
---|
228 | ALL ;=====Select All Referrals or
|
---|
229 | ;--Return INC equal to Y
|
---|
230 | I $D(^DISV(DUZ,"PXRMGEC","ALL")) S DIR("B")=$G(^DISV(DUZ,"PXRMGEC","ALL"))
|
---|
231 | S DIR(0)="S^I:Incomplete Referrals Only;C:Complete Referrals Only;B:Both Complete and Incomplete"
|
---|
232 | D ^DIR
|
---|
233 | K DIR("A"),DIR("B"),DIR(0)
|
---|
234 | Q:$D(DIRUT)!($D(DUOUT))
|
---|
235 | S ^DISV(DUZ,"PXRMGEC","ALL")=X
|
---|
236 | I Y="I" S INC=0
|
---|
237 | I Y="C" S INC=1
|
---|
238 | I Y="B" S INC=2
|
---|
239 | Q
|
---|
240 | ;
|
---|
241 | DRIO ;=====Select IO device
|
---|
242 | N %ZIS
|
---|
243 | S %ZIS="QM" D ^%ZIS
|
---|
244 | I POP Q
|
---|
245 | I $D(IO("Q")) D
|
---|
246 | .S ZTRTN="DR^PXRMGECQ"
|
---|
247 | .S ZTDESC="GEC REPORT"
|
---|
248 | .S ZTSAVE("*")=""
|
---|
249 | .D ^%ZTLOAD K IO("Q") Q
|
---|
250 | ;=====Call Report
|
---|
251 | E D DR^PXRMGECR
|
---|
252 | D HOME^%ZIS
|
---|
253 | D ^%ZISC
|
---|
254 | S:'$D(DIRUT)&('$D(DUOUT))&('$D(DIROUT)) DIR(0)="E" D ^DIR K DIR(0),Y
|
---|
255 | Q
|
---|
256 | ;
|
---|
257 | ;==================================================================
|
---|
258 | PATIENT ; #2 Start of Patient Report
|
---|
259 | ;
|
---|
260 | PATPAT D PAT Q:$D(DIROUT)!($D(DIRUT))
|
---|
261 | PATBDT D BDT Q:$D(DIROUT) I $D(DIRUT) K DIRUT G PATPAT
|
---|
262 | PATEDT D EDT Q:$D(DIROUT) I $D(DIRUT) K DIRUT G PATBDT
|
---|
263 | PATFOR D FOR Q:$D(DIROUT) I $D(DIRUT) K DIRUT G PATEDT
|
---|
264 | PATIOO D PATIO Q:$D(DIROUT)
|
---|
265 | Q
|
---|
266 | ;
|
---|
267 | PATIO ;=====Select IO device for Patient Report
|
---|
268 | N %ZIS
|
---|
269 | S %ZIS="QM" D ^%ZIS
|
---|
270 | I POP Q
|
---|
271 | I $D(IO("Q")) D
|
---|
272 | .S ZTRTN="HS1^PXRMGECQ"
|
---|
273 | .S ZTDESC="GEC PATIENT REPORT"
|
---|
274 | .S ZTSAVE("*")=""
|
---|
275 | .S ZTSAVE("FORMAT")=""
|
---|
276 | .S ZTSAVE("EDT")=""
|
---|
277 | .S ZTSAVE("BDT")=""
|
---|
278 | .S ZTSAVE("DFNONLY")=""
|
---|
279 | .I $D(DFNARY) S ZTSAVE("DFNARY(")=""
|
---|
280 | .D ^%ZTLOAD K IO("Q") Q
|
---|
281 | ;=====Call Report
|
---|
282 | E D HS1^PXRMGECR
|
---|
283 | D HOME^%ZIS
|
---|
284 | D ^%ZISC
|
---|
285 | S:'$D(DIRUT)&('$D(DUOUT))&('$D(DIROUT)) DIR(0)="E" D ^DIR K DIR(0),Y
|
---|
286 | Q
|
---|
287 | ;=========================================================
|
---|