- PXRMGECO ;SLC/JVS GEC-Prompts Cont'd ;6/19/03 20:56
- ;;2.0;CLINICAL REMINDERS;;Feb 04, 2005
- Q
- ;^DISV( = DBIA #510
- N POP,DIROUT,DIRUT,DUOUT,LOCNP,MENU,PROV,Y
- N DETAIL,FORMAT
- ;
- SUM ;#8 Start of Summary (Scoring) report
- ;
- SUMBDT D BDT^PXRMGECP Q:$D(DIROUT)!($D(DIRUT))
- SUMEDT D EDT^PXRMGECP Q:$D(DIROUT) I $D(DIRUT) K DIRUT G SUMBDT
- SUMPAT D PAT^PXRMGECP Q:$D(DIROUT) I $D(DIRUT) K DIRUT G SUMEDT
- SUMFOR D FOR^PXRMGECP Q:$D(DIROUT) I $D(DIRUT) K DIRUT G SUMPAT
- SUMIOO D SUMIO Q:$D(DIROUT)
- Q
- SUMIO ;=====Select IO device
- N %ZIS
- S %ZIS="QM" D ^%ZIS
- I POP Q
- I $D(IO("Q")) D
- .S ZTRTN="SUM^PXRMGECM"
- .S ZTDESC="GEC SUMMARY(SCORING) REPORT"
- .S ZTSAVE("*")=""
- .D ^%ZTLOAD
- ;=====Call Report
- E D SUM^PXRMGECN
- D HOME^%ZIS
- D ^%ZISC
- S:'$D(DIRUT)&('$D(DUOUT))&('$D(DIROUT)) DIR(0)="E" D ^DIR K DIR(0),Y
- Q
- ;
- RS ;#7 Start List and array of GEC Categories
- ;
- N CAT,CATNA,CNT,STAY,NUM,CATIEN,CATARY,BDT,EDT,CATDA
- N SYN,IEN,RPT7
- W @IOF
- W "GEC Referral Service Categories"
- S CNT=0
- S SYN="GECFC" F S SYN=$O(^AUTTHF("D",SYN)) Q:SYN'["GECFC" D
- .S IEN=0 F S IEN=$O(^AUTTHF("D",SYN,IEN)) Q:IEN="" D
- ..Q:$P($G(^AUTTHF(IEN,0)),"^",11)=1
- ..;
- ..S CATNA=$P($P($G(^AUTTHF(IEN,0)),"^",1)," ",3,7)
- ..S CATARY(CATNA,IEN)=""
- S CATNA="" F S CATNA=$O(CATARY(CATNA)) Q:CATNA="" D
- .S CAT=$O(CATARY(CATNA,0))
- .S CNT=CNT+1
- .S CATDA(CNT,CAT)=""
- .W:CNT#2=1 !,CNT,?4,CATNA
- .W:CNT#2=0 ?35,CNT,?39,CATNA
- ;
- W !
- S DIR("A",1)="Select Categories from the list above using"
- S DIR("A",2)="Commas and/or Dashes for ranges of numbers."
- S DIR("A")="Select Categories or ^ to exit"
- I $D(^DISV(DUZ,"PXRMGEC","RSSC")) S DIR("B")=$G(^DISV(DUZ,"PXRMGEC","RSSC"))
- S DIR(0)="L^1:"_CNT
- D ^DIR
- K DIR("A"),DIR("B"),DIR(0)
- Q:$D(DIROUT)
- Q:$D(DIRUT)
- S ^DISV(DUZ,"PXRMGEC","RSSC")=X
- N LEN,IME,MEY
- S LEN=$L(Y,",")
- S MEY=0 F IME=1:1:LEN-1 S MEY=$P(Y,",",IME) D
- .S CATMEY(MEY)=""
- S STAY=0 F S STAY=$O(CATDA(STAY)) Q:STAY="" D
- .I '$D(CATMEY(STAY)) K CATDA(STAY)
- S NUM=0 F S NUM=$O(CATDA(NUM)) Q:NUM="" D
- .S CATIEN($O(CATDA(NUM,0)))=""
- K CATDA,CATMEY
- RSBDT D BDT^PXRMGECP Q:$D(DIROUT)!$D(DIRUT)
- RSEDT D EDT^PXRMGECP Q:$D(DIROUT) I $D(DIRUT) K DIRUT G RSBDT
- RSPAT D PAT^PXRMGECP Q:$D(DIROUT) I $D(DIRUT) K DIRUT G RSEDT
- RSFOR D FOR^PXRMGECP Q:$D(DIROUT) I $D(DIRUT) K DIRUT G RSPAT
- RSIOO S RPT7=1 D CATIO^PXRMGECP Q:$D(DIROUT)
- Q
- ;
- ;================================================================
- LOC ;By Location in the Hospital
- LOCDIC ;====Select Location
- ;DBIA #10040 Supported
- N Y,DIC
- S DIC="^SC("
- S DIC(0)="QAMEZ"
- D ^DIC
- I Y>0 S LOCNP=$P(Y(0),"^",1)
- K DIC,DIC(0),Y
- Q
- ;
- LOCDIR ; #5 Start of Location Report
- ;--Returns LOCNP equal to Location Name
- N BDT,EDT
- W @IOF
- K DIR
- I $D(^DISV(DUZ,"PXRMGEC","LOCDIR")) S DIR("B")=$G(^DISV(DUZ,"PXRMGEC","LOCDIR"))
- S DIR(0)="S^A:All Locations;S:Single Location"
- D ^DIR
- K DIR("A"),DIR("B"),DIR(0)
- Q:$D(DIRUT)!($D(DUOUT))
- Q:$D(DIROUT)
- S ^DISV(DUZ,"PXRMGEC","LOCDIR")=X
- I Y="A" S LOCNP=1
- I Y="S" D LOCDIC
- ;
- LOCBDT D BDT^PXRMGECP Q:$D(DIROUT)!($D(DIRUT))
- LOCEDT D EDT^PXRMGECP Q:$D(DIROUT) I $D(DIRUT) K DIRUT G LOCBDT
- LOCFOR D FOR^PXRMGECP Q:$D(DIROUT) I $D(DIRUT) K DIRUT G LOCEDT
- LOCIOO D LOCIO Q:$D(DIROUT)
- Q
- LOCIO ;=====Select IO device
- N %ZIS
- S %ZIS="QM" D ^%ZIS
- I POP Q
- I $D(IO("Q")) D
- .S ZTRTN="LOC^PXRMGECQ"
- .S ZTDESC="GEC LOCATION REPORT"
- .S ZTSAVE("*")=""
- .D ^%ZTLOAD
- ;=====Call Report
- E D LOC^PXRMGECR
- D HOME^%ZIS
- D ^%ZISC
- S:'$D(DIRUT)&('$D(DUOUT))&('$D(DIROUT)) DIR(0)="E" D ^DIR K DIR(0),Y
- Q
- ;
- CT ; #6 Start Referral Count Totals
- ; makes 4 different reports
- ;
- N SOR
- CTSOR D SOR Q:$D(DIROUT)!($D(DIRUT))
- CTBDT D BDT^PXRMGECP Q:$D(DIROUT) I $D(DIRUT) K DIRUT G CTSOR
- CTEDT D EDT^PXRMGECP Q:$D(DIROUT) I $D(DIRUT) K DIRUT G CTBDT
- CTFOR D FOR^PXRMGECP Q:$D(DIROUT) I $D(DIRUT) K DIRUT G CTEDT
- CTIOO D CTIO Q:$D(DIROUT)
- Q
- ;
- SOR ;======Sort Type
- ;--Return SOR as Type of report
- S DIR("A")="Select Sort Type or ^ to exit"
- I $D(^DISV(DUZ,"PXRMGEC","SOR")) S DIR("B")=$G(^DISV(DUZ,"PXRMGEC","SOR"))
- S DIR(0)="S^PA:Patient;PR:Provider;L:Location;D:Date"
- D ^DIR
- K DIR("A"),DIR("B"),DIR(0)
- Q:$D(DIRUT)!($D(DIROUT))
- S ^DISV(DUZ,"PXRMGEC","SOR")=X
- S SOR=Y
- Q
- ;
- CTIO ;=====Select IO device
- N %ZIS
- S %ZIS="QM" D ^%ZIS
- I POP Q
- ;=====Call Report
- I SOR="PA" D
- .I $D(IO("Q")) D
- ..S ZTRTN="CTP^PXRMGECT"
- ..S ZTDESC="GEC COUNT TOTALS REPORTS"
- ..S ZTSAVE("*")=""
- ..D ^%ZTLOAD
- .E D CTP^PXRMGECS
- I SOR="PR" D
- .I $D(IO("Q")) D
- ..S ZTRTN="CTDR^PXRMGECT"
- ..S ZTDESC="GEC COUNT TOTALS REPORTS"
- ..S ZTSAVE("*")=""
- ..D ^%ZTLOAD
- .E D CTDR^PXRMGECS
- I SOR="L" D
- .I $D(IO("Q")) D
- ..S ZTRTN="CTL^PXRMGECT"
- ..S ZTDESC="GEC COUNT TOTALS REPORTS"
- ..S ZTSAVE("*")=""
- ..D ^%ZTLOAD
- .E D CTL^PXRMGECS
- I SOR="D" D
- .I $D(IO("Q")) D
- ..S ZTRTN="CTD^PXRMGECT"
- ..S ZTDESC="GEC COUNT TOTALS REPORTS"
- ..S ZTSAVE("*")=""
- ..D ^%ZTLOAD
- .E D CTD^PXRMGECS
- D ^%ZISC
- S:'$D(DIRUT)&('$D(DUOUT))&('$D(DIROUT)) DIR(0)="E" D ^DIR K DIR(0),Y
- Q
- ;
- PXRMGECO ;SLC/JVS GEC-Prompts Cont'd ;6/19/03 20:56
- +1 ;;2.0;CLINICAL REMINDERS;;Feb 04, 2005
- +2 QUIT
- +3 ;^DISV( = DBIA #510
- +4 NEW POP,DIROUT,DIRUT,DUOUT,LOCNP,MENU,PROV,Y
- +5 NEW DETAIL,FORMAT
- +6 ;
- SUM ;#8 Start of Summary (Scoring) report
- +1 ;
- SUMBDT DO BDT^PXRMGECP
- IF $DATA(DIROUT)!($DATA(DIRUT))
- QUIT
- SUMEDT DO EDT^PXRMGECP
- IF $DATA(DIROUT)
- QUIT
- IF $DATA(DIRUT)
- KILL DIRUT
- GOTO SUMBDT
- SUMPAT DO PAT^PXRMGECP
- IF $DATA(DIROUT)
- QUIT
- IF $DATA(DIRUT)
- KILL DIRUT
- GOTO SUMEDT
- SUMFOR DO FOR^PXRMGECP
- IF $DATA(DIROUT)
- QUIT
- IF $DATA(DIRUT)
- KILL DIRUT
- GOTO SUMPAT
- SUMIOO DO SUMIO
- IF $DATA(DIROUT)
- QUIT
- +1 QUIT
- SUMIO ;=====Select IO device
- +1 NEW %ZIS
- +2 SET %ZIS="QM"
- DO ^%ZIS
- +3 IF POP
- QUIT
- +4 IF $DATA(IO("Q"))
- Begin DoDot:1
- +5 SET ZTRTN="SUM^PXRMGECM"
- +6 SET ZTDESC="GEC SUMMARY(SCORING) REPORT"
- +7 SET ZTSAVE("*")=""
- +8 DO ^%ZTLOAD
- End DoDot:1
- +9 ;=====Call Report
- +10 IF '$TEST
- DO SUM^PXRMGECN
- +11 DO HOME^%ZIS
- +12 DO ^%ZISC
- +13 IF '$DATA(DIRUT)&('$DATA(DUOUT))&('$DATA(DIROUT))
- SET DIR(0)="E"
- DO ^DIR
- KILL DIR(0),Y
- +14 QUIT
- +15 ;
- RS ;#7 Start List and array of GEC Categories
- +1 ;
- +2 NEW CAT,CATNA,CNT,STAY,NUM,CATIEN,CATARY,BDT,EDT,CATDA
- +3 NEW SYN,IEN,RPT7
- +4 WRITE @IOF
- +5 WRITE "GEC Referral Service Categories"
- +6 SET CNT=0
- +7 SET SYN="GECFC"
- FOR
- SET SYN=$ORDER(^AUTTHF("D",SYN))
- IF SYN'["GECFC"
- QUIT
- Begin DoDot:1
- +8 SET IEN=0
- FOR
- SET IEN=$ORDER(^AUTTHF("D",SYN,IEN))
- IF IEN=""
- QUIT
- Begin DoDot:2
- +9 IF $PIECE($GET(^AUTTHF(IEN,0)),"^",11)=1
- QUIT
- +10 ;
- +11 SET CATNA=$PIECE($PIECE($GET(^AUTTHF(IEN,0)),"^",1)," ",3,7)
- +12 SET CATARY(CATNA,IEN)=""
- End DoDot:2
- End DoDot:1
- +13 SET CATNA=""
- FOR
- SET CATNA=$ORDER(CATARY(CATNA))
- IF CATNA=""
- QUIT
- Begin DoDot:1
- +14 SET CAT=$ORDER(CATARY(CATNA,0))
- +15 SET CNT=CNT+1
- +16 SET CATDA(CNT,CAT)=""
- +17 IF CNT#2=1
- WRITE !,CNT,?4,CATNA
- +18 IF CNT#2=0
- WRITE ?35,CNT,?39,CATNA
- End DoDot:1
- +19 ;
- +1 WRITE !
- +2 SET DIR("A",1)="Select Categories from the list above using"
- +3 SET DIR("A",2)="Commas and/or Dashes for ranges of numbers."
- +4 SET DIR("A")="Select Categories or ^ to exit"
- +5 IF $DATA(^DISV(DUZ,"PXRMGEC","RSSC"))
- SET DIR("B")=$GET(^DISV(DUZ,"PXRMGEC","RSSC"))
- +6 SET DIR(0)="L^1:"_CNT
- +7 DO ^DIR
- +8 KILL DIR("A"),DIR("B"),DIR(0)
- +9 IF $DATA(DIROUT)
- QUIT
- +10 IF $DATA(DIRUT)
- QUIT
- +11 SET ^DISV(DUZ,"PXRMGEC","RSSC")=X
- +12 NEW LEN,IME,MEY
- +13 SET LEN=$LENGTH(Y,",")
- +14 SET MEY=0
- FOR IME=1:1:LEN-1
- SET MEY=$PIECE(Y,",",IME)
- Begin DoDot:1
- +15 SET CATMEY(MEY)=""
- End DoDot:1
- +16 SET STAY=0
- FOR
- SET STAY=$ORDER(CATDA(STAY))
- IF STAY=""
- QUIT
- Begin DoDot:1
- +17 IF '$DATA(CATMEY(STAY))
- KILL CATDA(STAY)
- End DoDot:1
- +18 SET NUM=0
- FOR
- SET NUM=$ORDER(CATDA(NUM))
- IF NUM=""
- QUIT
- Begin DoDot:1
- +19 SET CATIEN($ORDER(CATDA(NUM,0)))=""
- End DoDot:1
- +20 KILL CATDA,CATMEY
- RSBDT DO BDT^PXRMGECP
- IF $DATA(DIROUT)!$DATA(DIRUT)
- QUIT
- RSEDT DO EDT^PXRMGECP
- IF $DATA(DIROUT)
- QUIT
- IF $DATA(DIRUT)
- KILL DIRUT
- GOTO RSBDT
- RSPAT DO PAT^PXRMGECP
- IF $DATA(DIROUT)
- QUIT
- IF $DATA(DIRUT)
- KILL DIRUT
- GOTO RSEDT
- RSFOR DO FOR^PXRMGECP
- IF $DATA(DIROUT)
- QUIT
- IF $DATA(DIRUT)
- KILL DIRUT
- GOTO RSPAT
- RSIOO SET RPT7=1
- DO CATIO^PXRMGECP
- IF $DATA(DIROUT)
- QUIT
- +1 QUIT
- +2 ;
- +3 ;================================================================
- LOC ;By Location in the Hospital
- LOCDIC ;====Select Location
- +1 ;DBIA #10040 Supported
- +2 NEW Y,DIC
- +3 SET DIC="^SC("
- +4 SET DIC(0)="QAMEZ"
- +5 DO ^DIC
- +6 IF Y>0
- SET LOCNP=$PIECE(Y(0),"^",1)
- +7 KILL DIC,DIC(0),Y
- +8 QUIT
- +9 ;
- LOCDIR ; #5 Start of Location Report
- +1 ;--Returns LOCNP equal to Location Name
- +2 NEW BDT,EDT
- +3 WRITE @IOF
- +4 KILL DIR
- +5 IF $DATA(^DISV(DUZ,"PXRMGEC","LOCDIR"))
- SET DIR("B")=$GET(^DISV(DUZ,"PXRMGEC","LOCDIR"))
- +6 SET DIR(0)="S^A:All Locations;S:Single Location"
- +7 DO ^DIR
- +8 KILL DIR("A"),DIR("B"),DIR(0)
- +9 IF $DATA(DIRUT)!($DATA(DUOUT))
- QUIT
- +10 IF $DATA(DIROUT)
- QUIT
- +11 SET ^DISV(DUZ,"PXRMGEC","LOCDIR")=X
- +12 IF Y="A"
- SET LOCNP=1
- +13 IF Y="S"
- DO LOCDIC
- +14 ;
- LOCBDT DO BDT^PXRMGECP
- IF $DATA(DIROUT)!($DATA(DIRUT))
- QUIT
- LOCEDT DO EDT^PXRMGECP
- IF $DATA(DIROUT)
- QUIT
- IF $DATA(DIRUT)
- KILL DIRUT
- GOTO LOCBDT
- LOCFOR DO FOR^PXRMGECP
- IF $DATA(DIROUT)
- QUIT
- IF $DATA(DIRUT)
- KILL DIRUT
- GOTO LOCEDT
- LOCIOO DO LOCIO
- IF $DATA(DIROUT)
- QUIT
- +1 QUIT
- LOCIO ;=====Select IO device
- +1 NEW %ZIS
- +2 SET %ZIS="QM"
- DO ^%ZIS
- +3 IF POP
- QUIT
- +4 IF $DATA(IO("Q"))
- Begin DoDot:1
- +5 SET ZTRTN="LOC^PXRMGECQ"
- +6 SET ZTDESC="GEC LOCATION REPORT"
- +7 SET ZTSAVE("*")=""
- +8 DO ^%ZTLOAD
- End DoDot:1
- +9 ;=====Call Report
- +10 IF '$TEST
- DO LOC^PXRMGECR
- +11 DO HOME^%ZIS
- +12 DO ^%ZISC
- +13 IF '$DATA(DIRUT)&('$DATA(DUOUT))&('$DATA(DIROUT))
- SET DIR(0)="E"
- DO ^DIR
- KILL DIR(0),Y
- +14 QUIT
- +15 ;
- CT ; #6 Start Referral Count Totals
- +1 ; makes 4 different reports
- +2 ;
- +3 NEW SOR
- CTSOR DO SOR
- IF $DATA(DIROUT)!($DATA(DIRUT))
- QUIT
- CTBDT DO BDT^PXRMGECP
- IF $DATA(DIROUT)
- QUIT
- IF $DATA(DIRUT)
- KILL DIRUT
- GOTO CTSOR
- CTEDT DO EDT^PXRMGECP
- IF $DATA(DIROUT)
- QUIT
- IF $DATA(DIRUT)
- KILL DIRUT
- GOTO CTBDT
- CTFOR DO FOR^PXRMGECP
- IF $DATA(DIROUT)
- QUIT
- IF $DATA(DIRUT)
- KILL DIRUT
- GOTO CTEDT
- CTIOO DO CTIO
- IF $DATA(DIROUT)
- QUIT
- +1 QUIT
- +2 ;
- SOR ;======Sort Type
- +1 ;--Return SOR as Type of report
- +2 SET DIR("A")="Select Sort Type or ^ to exit"
- +3 IF $DATA(^DISV(DUZ,"PXRMGEC","SOR"))
- SET DIR("B")=$GET(^DISV(DUZ,"PXRMGEC","SOR"))
- +4 SET DIR(0)="S^PA:Patient;PR:Provider;L:Location;D:Date"
- +5 DO ^DIR
- +6 KILL DIR("A"),DIR("B"),DIR(0)
- +7 IF $DATA(DIRUT)!($DATA(DIROUT))
- QUIT
- +8 SET ^DISV(DUZ,"PXRMGEC","SOR")=X
- +9 SET SOR=Y
- +10 QUIT
- +11 ;
- CTIO ;=====Select IO device
- +1 NEW %ZIS
- +2 SET %ZIS="QM"
- DO ^%ZIS
- +3 IF POP
- QUIT
- +4 ;=====Call Report
- +5 IF SOR="PA"
- Begin DoDot:1
- +6 IF $DATA(IO("Q"))
- Begin DoDot:2
- +7 SET ZTRTN="CTP^PXRMGECT"
- +8 SET ZTDESC="GEC COUNT TOTALS REPORTS"
- +9 SET ZTSAVE("*")=""
- +10 DO ^%ZTLOAD
- End DoDot:2
- +11 IF '$TEST
- DO CTP^PXRMGECS
- End DoDot:1
- +12 IF SOR="PR"
- Begin DoDot:1
- +13 IF $DATA(IO("Q"))
- Begin DoDot:2
- +14 SET ZTRTN="CTDR^PXRMGECT"
- +15 SET ZTDESC="GEC COUNT TOTALS REPORTS"
- +16 SET ZTSAVE("*")=""
- +17 DO ^%ZTLOAD
- End DoDot:2
- +18 IF '$TEST
- DO CTDR^PXRMGECS
- End DoDot:1
- +19 IF SOR="L"
- Begin DoDot:1
- +20 IF $DATA(IO("Q"))
- Begin DoDot:2
- +21 SET ZTRTN="CTL^PXRMGECT"
- +22 SET ZTDESC="GEC COUNT TOTALS REPORTS"
- +23 SET ZTSAVE("*")=""
- +24 DO ^%ZTLOAD
- End DoDot:2
- +25 IF '$TEST
- DO CTL^PXRMGECS
- End DoDot:1
- +26 IF SOR="D"
- Begin DoDot:1
- +27 IF $DATA(IO("Q"))
- Begin DoDot:2
- +28 SET ZTRTN="CTD^PXRMGECT"
- +29 SET ZTDESC="GEC COUNT TOTALS REPORTS"
- +30 SET ZTSAVE("*")=""
- +31 DO ^%ZTLOAD
- End DoDot:2
- +32 IF '$TEST
- DO CTD^PXRMGECS
- End DoDot:1
- +33 DO ^%ZISC
- +34 IF '$DATA(DIRUT)&('$DATA(DUOUT))&('$DATA(DIROUT))
- SET DIR(0)="E"
- DO ^DIR
- KILL DIR(0),Y
- +35 QUIT
- +36 ;