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