| 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 | ;========================================================= | 
|---|