BGP8DNDB ;IHS/CMI/LAB - NATIONAL EXPORT;
;;18.1;IHS CLINICAL REPORTING;;MAY 25, 2018;Build 66
;
;
W:$D(IOF) @IOF
INTRO ;
D XIT
W !
S Y=$O(^BGPCTRL("B",2018,0))
S X=0 F S X=$O(^BGPCTRL(Y,88,X)) Q:X'=+X W !,^BGPCTRL(Y,88,X,0)
W !
;K DIR S DIR(0)="E",DIR("A")="Press enter to continue" D ^DIR K DIR
;
;
D TAXCHK^BGP8XTCN
S X=$$DEMOCHK^BGP8UTL2()
I 'X W !!,"Exiting Report....." D PAUSE^BGP8DU,XIT Q
TP ;get time period
D XIT
PROV ;RUN FOR FACILITY OR ONE PROVIDER
S BGPRPF=""
S DIR(0)="S^F:Entire Facility;P:Designated Provider(s)",DIR("A")="Run report for",DIR("B")="F" KILL DA D ^DIR KILL DIR
I $D(DIRUT) D XIT Q
S BGPRPF=Y
I BGPRPF="F" G NEXT
PNST ;
K BGPDESPG
W !!,"You can enter individual provider names or a TAXONOMY of providers."
K DIR
S DIR(0)="S^P:Provider's Names;T:Taxonomy of Providers",DIR("A")="Do you want to enter",DIR("B")="P" KILL DA D ^DIR KILL DIR
I $D(DIRUT) W !!,"No providers selected. Exiting report..." D PAUSE^BGP8DU,XIT Q
S BGPXX=Y
I BGPXX="T" D I '$O(BGPDESGP(0)) W !!,"No providers selected. Exiting report..." D PAUSE^BGP8DU,XIT Q
.S DIC("S")="I $P(^(0),U,15)=200" S DIC="^ATXAX(",DIC("A")="Enter Provider TAXONOMY name: ",DIC(0)="AEMQ" D ^DIC K DIC,DA,DR,DICR
.I Y=-1 Q
.W !!,"TAXONOMY contains:",!
.S X=0 F S X=$O(^ATXAX(+Y,21,"B",X)) Q:X'=+X S BGPDESGP(X)="" W ?5,$P(^VA(200,X,0),U),!
.Q
I BGPXX="P" D I '$O(BGPDESGP(0)) W !!,"No providers selected. Exiting report..." D PAUSE^BGP8DU,XIT Q
P .K DIC S DIC="^VA(200,",DIC("A")="Enter "_$S($O(BGPDESGP(0)):"another ",1:"")_"Provider's name: ",DIC(0)="AEMQ" D ^DIC K DIC,DA,DR,DICR
.I Y=-1 Q
.S BGPDESGP(+Y)="" ;W ?5,$P(^VA(200,X,0),U),!
.G P
NEXT ;
S BGPRTYPE=1,BGPYRPTH="",BGPDASH=1
S X=$O(^BGPCTRL("B",2018,0))
S Y=^BGPCTRL(X,0)
S BGPBD=$P(Y,U,8),BGPED=$P(Y,U,9)
S BGPPBD=$P(Y,U,10),BGPPED=$P(Y,U,11)
S BGPBBD=$P(Y,U,12),BGPBED=$P(Y,U,13)
S (BGPPER,BGPDASHY)=$P(Y,U,14),BGPDASHP=$E(BGPPED,1,3)_"0000"
;BEGIN TEST STUFF
G NT ;comment out when testing in TEHR
S (BGPBD,BGPED,BGPTP)=""
S DIR(0)="S^1:January 1 - December 31;2:April 1 - March 31;3:July 1 - June 30;4:October 1 - September 30;5:User-Defined Report Period",DIR("A")="Enter the date range for your report" KILL DA D ^DIR KILL DIR
I $D(DIRUT) D XIT Q
S BGPQTR=Y
I BGPQTR=5 D ENDDATE^BGP8DGPU
I BGPQTR'=5 D F
I BGPPER="" W !,"Year not entered.",! G TP
I BGPQTR=1 S BGPBD=$E(BGPPER,1,3)_"0101",BGPED=$E(BGPPER,1,3)_"1231"
I BGPQTR=2 S BGPBD=($E(BGPPER,1,3)-1)_"0401",BGPED=$E(BGPPER,1,3)_"0331"
I BGPQTR=3 S BGPBD=($E(BGPPER,1,3)-1)_"0701",BGPED=$E(BGPPER,1,3)_"0630"
I BGPQTR=4 S BGPBD=($E(BGPPER,1,3)-1)_"1001",BGPED=$E(BGPPER,1,3)_"0930"
I BGPQTR=5 D
.S D=$$FMADD^XLFDT(BGPPER,1)
.I $E(BGPPER,4,7)'=1231 S BGPBD=($E(BGPPER,1,3)-1)_$E(D,4,7),BGPED=BGPPER,BGPPER=$E(BGPED,1,3)_"0000"
.I $E(BGPPER,4,7)=1231 S BGPBD=$E(BGPPER,1,3)_$E(D,4,7),BGPED=BGPPER,BGPPER=$E(BGPED,1,3)_"0000"
S BGPPBD=($E(BGPBD,1,3)-1)_$E(BGPBD,4,7),BGPPED=($E(BGPED,1,3)-1)_$E(BGPED,4,7)
S (BGPDASHY)=BGPPER,BGPDASHP=$E(BGPPED,1,3)_"0000"
I BGPED>DT D G:BGPDO=1 TP
.W !!,"You have selected Current Report period ",$$FMTE^XLFDT(BGPBD)," through ",$$FMTE^XLFDT(BGPED),"."
.W !,"The end date of this report is in the future; your data will not be",!,"complete.",!
.K DIR S BGPDO=0 S DIR(0)="Y",DIR("A")="Do you want to change your Current Report Dates",DIR("B")="N" KILL DA D ^DIR KILL DIR
.I $D(DIRUT) S BGPDO=1 Q
.I Y S BGPDO=1 Q
.Q
NT ;END TEST STUFF
W !!,"The date ranges for this report are:"
W !?5,"Report Period: ",?31,$$FMTE^XLFDT(BGPBD)," to ",?31,$$FMTE^XLFDT(BGPED)
W !?5,"Previous Year Period: ",?31,$$FMTE^XLFDT(BGPPBD)," to ",?31,$$FMTE^XLFDT(BGPPED)
COMM ;
W !!,"Specify the community taxonomy to determine which patients will be",!,"included in the report. You should have created this taxonomy using QMAN.",!
K BGPTAX
S BGPTAXI=""
D ^XBFMK
S DIC("S")="I $P(^(0),U,15)=9999999.05",DIC="^ATXAX(",DIC(0)="AEMQ",DIC("A")="Enter the Name of the Community Taxonomy: "
S B=$P($G(^BGPSITE(DUZ(2),0)),U,5) I B S DIC("B")=$P(^ATXAX(B,0),U)
D ^DIC K DIC
I Y=-1 D XIT Q
S BGPTAXI=+Y
COM1 ;
S X=0
F S X=$O(^ATXAX(BGPTAXI,21,X)) Q:'X D
.S BGPTAX($P(^ATXAX(BGPTAXI,21,X,0),U))=""
.Q
I '$D(BGPTAX) W !!,"There are no communities in that taxonomy." G COMM
S X=0,G=0
F S X=$O(^ATXAX(BGPTAXI,21,X)) Q:'X D
.S C=$P(^ATXAX(BGPTAXI,21,X,0),U)
.I '$D(^AUTTCOM("B",C)) W !!,"*** Warning: Community ",C," is in the taxonomy but was not",!,"found in the standard community table." S G=1
.Q
I G D I BGPQUIT D XIT Q
.W !!,"These communities may have been renamed or there may be patients"
.W !,"who have been reassigned from this community to a new community and this"
.W !,"could reduce your patient population."
.S BGPQUIT=0
.S DIR(0)="Y",DIR("A")="Do you want to cancel the report and review the communities" KILL DA D ^DIR KILL DIR
.I $D(DIRUT) S BGPQUIT=1
.I Y S BGPQUIT=1
.Q
K BGPQUIT
BEN ;
S BGPBEN=1
HOME ;
S BGPHOME=$P($G(^BGPSITE(DUZ(2),0)),U,2)
AI ;gather all gpra measures
;F X=1:100 I $D(^BGPINDR("GPRA",1,X)) S BGPIND(X)=""
S X=0 F S X=$O(^BGPINDR("GPRA",1,X)) Q:X'=+X S BGPIND(X)=""
S BGPINDG="G"
EXPORT ;export to area or not?
S BGPEXPT=""
;S DIR(0)="Y",DIR("A")="Do you wish to export this data to Area" KILL DA D ^DIR KILL DIR
;I $D(DIRUT) G COMM
EISSEX ;
S BGPEXCEL=""
S BGPUF=$$GETDIR^BGP8UTL2()
I BGPUF="" W !!!,"Cannot find export or pub directory. Notify your IT staff." D XIT Q
;
SUM ;display summary of this report
W:$D(IOF) @IOF
W !,$$CTR("SUMMARY OF NATIONAL GPRA/GPRAMA DASHBOARD REPORT TO BE GENERATED")
W !!,"The date ranges for this report are:"
W !?5,"Report Period: ",?31,$$FMTE^XLFDT(BGPBD)," to ",?31,$$FMTE^XLFDT(BGPED)
W !?5,"Previous Year Period: ",?31,$$FMTE^XLFDT(BGPPBD)," to ",?31,$$FMTE^XLFDT(BGPPED)
;W !?5,"Baseline Period: ",?31,$$FMTE^XLFDT(BGPBBD)," to ",?31,$$FMTE^XLFDT(BGPBED)
W !!,"The COMMUNITY Taxonomy to be used is: ",$P(^ATXAX(BGPTAXI,0),U)
D PT^BGP8DSL
I BGPRPF="P",BGPROT="D"!(BGPROT="B"),BGPDELT="F" D
.W !!,"Please NOTE: Your filenames will be:"
.S X=0,Y=BGPDELF F S X=$O(BGPDESGP(X)) Q:X'=+X D
..S J=BGPDELF_"_"_$E($P($P(^VA(200,X,0),U),","),1,9)_X
..W !?5,J
..S $P(BGPDESGP(X),U,2)=J
I BGPROT="" G COMM
ZIS ;call to XBDBQUE
I BGPRPF="P" S BGPXX=0 F S BGPXX=$O(BGPDESGP(BGPXX)) Q:BGPXX'=+BGPXX D
.D REPORT^BGP8UTL
.S $P(BGPDESGP(BGPXX),U,1)=BGPRPT
I BGPRPF="F" D REPORT^BGP8UTL
I $G(BGPQUIT) D XIT Q
I BGPRPT="" D XIT Q
K IOP,%ZIS I BGPROT="D",BGPDELT="F" D NODEV,XIT Q
K IOP,%ZIS W !! S %ZIS=$S(BGPDELT'="S":"PQM",1:"PM") D ^%ZIS
I POP,BGPRPF="F" D D XIT Q
.W !,"Report Aborted." S DA=BGPRPT,DIK="^BGPGPDCR(" D ^DIK K DIK
.S DA=BGPRPT,DIK="^BGPGPDPR(" D ^DIK K DIK
.S DA=BGPRPT,DIK="^BGPGPDBR(" D ^DIK K DIK
I POP,BGPRPF="P" D D XIT Q
.W !,"Report Aborted."
.S BGPXX=0 F S BGPXX=$O(BGPDESGP(BGPXX)) Q:BGPXX'=+BGPXX S BGPRPT=BGPDESGP(BGPXX) D
..S DA=BGPRPT,DIK="^BGPGPDCR(" D ^DIK K DIK
..S DA=BGPRPT,DIK="^BGPGPDPR(" D ^DIK K DIK
..S DA=BGPRPT,DIK="^BGPGPDBR(" D ^DIK K DIK
I $D(IO("Q")) G TSKMN
DRIVER ;
I $D(ZTQUEUED) S ZTREQ="@"
D ^BGP8D1
U IO
D ^BGP8DP
D ^%ZISC
Q
;
NODEV ;
S XBRP="",XBRC="NODEV1^BGP8DNDB",XBRX="XIT^BGP8DNDB",XBNS="BGP"
D ^XBDBQUE
Q
;
NODEV1 ;
D ^BGP8D1
D ^BGP8DP
D ^%ZISC
D XIT
Q
TSKMN ;EP ENTRY POINT FROM TASKMAN
S ZTIO=$S($D(ION):ION,1:IO) I $D(IOST)#2,IOST]"" S ZTIO=ZTIO_";"_IOST
I $G(IO("DOC"))]"" S ZTIO=ZTIO_";"_$G(IO("DOC"))
I $D(IOM)#2,IOM S ZTIO=ZTIO_";"_IOM I $D(IOSL)#2,IOSL S ZTIO=ZTIO_";"_IOSL
K ZTSAVE S ZTSAVE("BGP*")=""
S ZTCPU=$G(IOCPU),ZTRTN="DRIVER^BGP8DNDB",ZTDTH="",ZTDESC="NATIONAL GPRA REPORT 11" D ^%ZTLOAD D XIT Q
Q
;
XIT ;
D ^%ZISC
D EN^XBVK("BGP") I $D(ZTQUEUED) S ZTREQ="@"
K DIRUT,DUOUT,DIR,DOD
K DIADD,DLAYGO
D KILL^AUPNPAT
K X,X1,X2,X3,X4,X5,X6
K A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,V,W,X,Y,Z
K N,N1,N2,N3,N4,N5,N6
K BD,ED
D KILL^AUPNPAT
D ^XBFMK
Q
;
CTR(X,Y) ;EP - Center X in a field Y wide.
Q $J("",$S($D(Y):Y,1:IOM)-$L(X)\2)_X
;----------
EOP ;EP - End of page.
Q:$E(IOST)'="C"
Q:$D(ZTQUEUED)!'(IOT="TRM")!$D(IO("S"))
NEW DIR
K DIR,DIRUT,DFOUT,DLOUT,DTOUT,DUOUT
S DIR(0)="E" D ^DIR KILL DIR
Q
;----------
USR() ;EP - Return name of current user from ^VA(200.
Q $S($G(DUZ):$S($D(^VA(200,DUZ,0)):$P(^(0),U),1:"UNKNOWN"),1:"DUZ UNDEFINED OR 0")
;----------
LOC() ;EP - Return location name from file 4 based on DUZ(2).
Q $S($G(DUZ(2)):$S($D(^DIC(4,DUZ(2),0)):$P(^(0),U),1:"UNKNOWN"),1:"DUZ(2) UNDEFINED OR 0")
;----------
;
CHKY ;
W !!,"The baseline year and the previous year time periods are the same.",!!
S DIR(0)="Y",DIR("A")="Do you want to change the baseline year",DIR("B")="N" KILL DA D ^DIR KILL DIR
I $D(DIRUT) S Y="" Q
Q
F ;fiscal year
S (BGPPER,BGPVDT)=""
W !!,"Enter the year for the report. Use a 4 digit ",!,"year, e.g. 2018"
S DIR(0)="D^::EP"
S DIR("A")="Enter year"
S DIR("?")="This report is compiled for a period. Enter a valid date."
D ^DIR KILL DIR
I $D(DIRUT) Q
I $D(DUOUT) S DIRUT=1 Q
S BGPVDT=Y
I $E(Y,4,7)'="0000" W !!,"Please enter a year only!",! G F
S BGPPER=BGPVDT
Q
B ;fiscal year
S (BGPBPER,BGPVDT)=""
W !!,"Enter the BASELINE year for the report. Use a 4 digit ",!,"year, e.g. 2010"
S DIR(0)="D^::EP"
S DIR("A")="Enter BASELINE year"
S DIR("?")="This report is compiled for a period. Enter a valid date."
D ^DIR KILL DIR
I $D(DIRUT) Q
I $D(DUOUT) S DIRUT=1 Q
S BGPVDT=Y
I $E(Y,4,7)'="0000" W !!,"Please enter a year only!",! G F
S BGPBPER=BGPVDT
Q
FY ;calendar year
S (BGPPER,BGPVDT,BGPNGR09)=""
S DIR(0)="D^::EP"
S DIR("A")="Run report for GPRA year 2018 or 2019"
S DIR("?")="This report is compiled for a period. Enter a valid date."
D ^DIR KILL DIR
I $D(DIRUT) Q
I $D(DUOUT) S DIRUT=1 Q
;I Y'=3170000,Y'=3180000 W !,"Must be 2018 or 2019" G FY ;LORI
S BGPVDT=Y
I $E(Y,4,7)'="0000" W !!,"Please enter a year only!",! G FY
S BGPPER=BGPVDT
I BGPPER="3180000" S BGPNGR09=1
Q
BGP8DNDB ;IHS/CMI/LAB - NATIONAL EXPORT;
+1 ;;18.1;IHS CLINICAL REPORTING;;MAY 25, 2018;Build 66
+2 ;
+3 ;
+4 IF $DATA(IOF)
WRITE @IOF
INTRO ;
+1 DO XIT
+2 WRITE !
+3 SET Y=$ORDER(^BGPCTRL("B",2018,0))
+4 SET X=0
FOR
SET X=$ORDER(^BGPCTRL(Y,88,X))
IF X'=+X
QUIT
WRITE !,^BGPCTRL(Y,88,X,0)
+5 WRITE !
+6 ;K DIR S DIR(0)="E",DIR("A")="Press enter to continue" D ^DIR K DIR
+7 ;
+8 ;
+9 DO TAXCHK^BGP8XTCN
+10 SET X=$$DEMOCHK^BGP8UTL2()
+11 IF 'X
WRITE !!,"Exiting Report....."
DO PAUSE^BGP8DU
DO XIT
QUIT
TP ;get time period
+1 DO XIT
PROV ;RUN FOR FACILITY OR ONE PROVIDER
+1 SET BGPRPF=""
+2 SET DIR(0)="S^F:Entire Facility;P:Designated Provider(s)"
SET DIR("A")="Run report for"
SET DIR("B")="F"
KILL DA
DO ^DIR
KILL DIR
+3 IF $DATA(DIRUT)
DO XIT
QUIT
+4 SET BGPRPF=Y
+5 IF BGPRPF="F"
GOTO NEXT
PNST ;
+1 KILL BGPDESPG
+2 WRITE !!,"You can enter individual provider names or a TAXONOMY of providers."
+3 KILL DIR
+4 SET DIR(0)="S^P:Provider's Names;T:Taxonomy of Providers"
SET DIR("A")="Do you want to enter"
SET DIR("B")="P"
KILL DA
DO ^DIR
KILL DIR
+5 IF $DATA(DIRUT)
WRITE !!,"No providers selected. Exiting report..."
DO PAUSE^BGP8DU
DO XIT
QUIT
+6 SET BGPXX=Y
+7 IF BGPXX="T"
Begin DoDot:1
+8 SET DIC("S")="I $P(^(0),U,15)=200"
SET DIC="^ATXAX("
SET DIC("A")="Enter Provider TAXONOMY name: "
SET DIC(0)="AEMQ"
DO ^DIC
KILL DIC,DA,DR,DICR
+9 IF Y=-1
QUIT
+10 WRITE !!,"TAXONOMY contains:",!
+11 SET X=0
FOR
SET X=$ORDER(^ATXAX(+Y,21,"B",X))
IF X'=+X
QUIT
SET BGPDESGP(X)=""
WRITE ?5,$PIECE(^VA(200,X,0),U),!
+12 QUIT
End DoDot:1
IF '$ORDER(BGPDESGP(0))
WRITE !!,"No providers selected. Exiting report..."
DO PAUSE^BGP8DU
DO XIT
QUIT
+13 IF BGPXX="P"
Begin DoDot:1
P KILL DIC
SET DIC="^VA(200,"
SET DIC("A")="Enter "_$SELECT($ORDER(BGPDESGP(0)):"another ",1:"")_"Provider's name: "
SET DIC(0)="AEMQ"
DO ^DIC
KILL DIC,DA,DR,DICR
+1 IF Y=-1
QUIT
+2 ;W ?5,$P(^VA(200,X,0),U),!
SET BGPDESGP(+Y)=""
+3 GOTO P
End DoDot:1
IF '$ORDER(BGPDESGP(0))
WRITE !!,"No providers selected. Exiting report..."
DO PAUSE^BGP8DU
DO XIT
QUIT
NEXT ;
+1 SET BGPRTYPE=1
SET BGPYRPTH=""
SET BGPDASH=1
+2 SET X=$ORDER(^BGPCTRL("B",2018,0))
+3 SET Y=^BGPCTRL(X,0)
+4 SET BGPBD=$PIECE(Y,U,8)
SET BGPED=$PIECE(Y,U,9)
+5 SET BGPPBD=$PIECE(Y,U,10)
SET BGPPED=$PIECE(Y,U,11)
+6 SET BGPBBD=$PIECE(Y,U,12)
SET BGPBED=$PIECE(Y,U,13)
+7 SET (BGPPER,BGPDASHY)=$PIECE(Y,U,14)
SET BGPDASHP=$EXTRACT(BGPPED,1,3)_"0000"
+8 ;BEGIN TEST STUFF
+9 ;comment out when testing in TEHR
GOTO NT
+10 SET (BGPBD,BGPED,BGPTP)=""
+11 SET DIR(0)="S^1:January 1 - December 31;2:April 1 - March 31;3:July 1 - June 30;4:October 1 - September 30;5:User-Defined Report Period"
SET DIR("A")="Enter the date range for your report"
KILL DA
DO ^DIR
KILL DIR
+12 IF $DATA(DIRUT)
DO XIT
QUIT
+13 SET BGPQTR=Y
+14 IF BGPQTR=5
DO ENDDATE^BGP8DGPU
+15 IF BGPQTR'=5
DO F
+16 IF BGPPER=""
WRITE !,"Year not entered.",!
GOTO TP
+17 IF BGPQTR=1
SET BGPBD=$EXTRACT(BGPPER,1,3)_"0101"
SET BGPED=$EXTRACT(BGPPER,1,3)_"1231"
+18 IF BGPQTR=2
SET BGPBD=($EXTRACT(BGPPER,1,3)-1)_"0401"
SET BGPED=$EXTRACT(BGPPER,1,3)_"0331"
+19 IF BGPQTR=3
SET BGPBD=($EXTRACT(BGPPER,1,3)-1)_"0701"
SET BGPED=$EXTRACT(BGPPER,1,3)_"0630"
+20 IF BGPQTR=4
SET BGPBD=($EXTRACT(BGPPER,1,3)-1)_"1001"
SET BGPED=$EXTRACT(BGPPER,1,3)_"0930"
+21 IF BGPQTR=5
Begin DoDot:1
+22 SET D=$$FMADD^XLFDT(BGPPER,1)
+23 IF $EXTRACT(BGPPER,4,7)'=1231
SET BGPBD=($EXTRACT(BGPPER,1,3)-1)_$EXTRACT(D,4,7)
SET BGPED=BGPPER
SET BGPPER=$EXTRACT(BGPED,1,3)_"0000"
+24 IF $EXTRACT(BGPPER,4,7)=1231
SET BGPBD=$EXTRACT(BGPPER,1,3)_$EXTRACT(D,4,7)
SET BGPED=BGPPER
SET BGPPER=$EXTRACT(BGPED,1,3)_"0000"
End DoDot:1
+25 SET BGPPBD=($EXTRACT(BGPBD,1,3)-1)_$EXTRACT(BGPBD,4,7)
SET BGPPED=($EXTRACT(BGPED,1,3)-1)_$EXTRACT(BGPED,4,7)
+26 SET (BGPDASHY)=BGPPER
SET BGPDASHP=$EXTRACT(BGPPED,1,3)_"0000"
+27 IF BGPED>DT
Begin DoDot:1
+28 WRITE !!,"You have selected Current Report period ",$$FMTE^XLFDT(BGPBD)," through ",$$FMTE^XLFDT(BGPED),"."
+29 WRITE !,"The end date of this report is in the future; your data will not be",!,"complete.",!
+30 KILL DIR
SET BGPDO=0
SET DIR(0)="Y"
SET DIR("A")="Do you want to change your Current Report Dates"
SET DIR("B")="N"
KILL DA
DO ^DIR
KILL DIR
+31 IF $DATA(DIRUT)
SET BGPDO=1
QUIT
+32 IF Y
SET BGPDO=1
QUIT
+33 QUIT
End DoDot:1
IF BGPDO=1
GOTO TP
NT ;END TEST STUFF
+1 WRITE !!,"The date ranges for this report are:"
+2 WRITE !?5,"Report Period: ",?31,$$FMTE^XLFDT(BGPBD)," to ",?31,$$FMTE^XLFDT(BGPED)
+3 WRITE !?5,"Previous Year Period: ",?31,$$FMTE^XLFDT(BGPPBD)," to ",?31,$$FMTE^XLFDT(BGPPED)
COMM ;
+1 WRITE !!,"Specify the community taxonomy to determine which patients will be",!,"included in the report. You should have created this taxonomy using QMAN.",!
+2 KILL BGPTAX
+3 SET BGPTAXI=""
+4 DO ^XBFMK
+5 SET DIC("S")="I $P(^(0),U,15)=9999999.05"
SET DIC="^ATXAX("
SET DIC(0)="AEMQ"
SET DIC("A")="Enter the Name of the Community Taxonomy: "
+6 SET B=$PIECE($GET(^BGPSITE(DUZ(2),0)),U,5)
IF B
SET DIC("B")=$PIECE(^ATXAX(B,0),U)
+7 DO ^DIC
KILL DIC
+8 IF Y=-1
DO XIT
QUIT
+9 SET BGPTAXI=+Y
COM1 ;
+1 SET X=0
+2 FOR
SET X=$ORDER(^ATXAX(BGPTAXI,21,X))
IF 'X
QUIT
Begin DoDot:1
+3 SET BGPTAX($PIECE(^ATXAX(BGPTAXI,21,X,0),U))=""
+4 QUIT
End DoDot:1
+5 IF '$DATA(BGPTAX)
WRITE !!,"There are no communities in that taxonomy."
GOTO COMM
+6 SET X=0
SET G=0
+7 FOR
SET X=$ORDER(^ATXAX(BGPTAXI,21,X))
IF 'X
QUIT
Begin DoDot:1
+8 SET C=$PIECE(^ATXAX(BGPTAXI,21,X,0),U)
+9 IF '$DATA(^AUTTCOM("B",C))
WRITE !!,"*** Warning: Community ",C," is in the taxonomy but was not",!,"found in the standard community table."
SET G=1
+10 QUIT
End DoDot:1
+11 IF G
Begin DoDot:1
+12 WRITE !!,"These communities may have been renamed or there may be patients"
+13 WRITE !,"who have been reassigned from this community to a new community and this"
+14 WRITE !,"could reduce your patient population."
+15 SET BGPQUIT=0
+16 SET DIR(0)="Y"
SET DIR("A")="Do you want to cancel the report and review the communities"
KILL DA
DO ^DIR
KILL DIR
+17 IF $DATA(DIRUT)
SET BGPQUIT=1
+18 IF Y
SET BGPQUIT=1
+19 QUIT
End DoDot:1
IF BGPQUIT
DO XIT
QUIT
+20 KILL BGPQUIT
BEN ;
+1 SET BGPBEN=1
HOME ;
+1 SET BGPHOME=$PIECE($GET(^BGPSITE(DUZ(2),0)),U,2)
AI ;gather all gpra measures
+1 ;F X=1:100 I $D(^BGPINDR("GPRA",1,X)) S BGPIND(X)=""
+2 SET X=0
FOR
SET X=$ORDER(^BGPINDR("GPRA",1,X))
IF X'=+X
QUIT
SET BGPIND(X)=""
+3 SET BGPINDG="G"
EXPORT ;export to area or not?
+1 SET BGPEXPT=""
+2 ;S DIR(0)="Y",DIR("A")="Do you wish to export this data to Area" KILL DA D ^DIR KILL DIR
+3 ;I $D(DIRUT) G COMM
EISSEX ;
+1 SET BGPEXCEL=""
+2 SET BGPUF=$$GETDIR^BGP8UTL2()
+3 IF BGPUF=""
WRITE !!!,"Cannot find export or pub directory. Notify your IT staff."
DO XIT
QUIT
+4 ;
SUM ;display summary of this report
+1 IF $DATA(IOF)
WRITE @IOF
+2 WRITE !,$$CTR("SUMMARY OF NATIONAL GPRA/GPRAMA DASHBOARD REPORT TO BE GENERATED")
+3 WRITE !!,"The date ranges for this report are:"
+4 WRITE !?5,"Report Period: ",?31,$$FMTE^XLFDT(BGPBD)," to ",?31,$$FMTE^XLFDT(BGPED)
+5 WRITE !?5,"Previous Year Period: ",?31,$$FMTE^XLFDT(BGPPBD)," to ",?31,$$FMTE^XLFDT(BGPPED)
+6 ;W !?5,"Baseline Period: ",?31,$$FMTE^XLFDT(BGPBBD)," to ",?31,$$FMTE^XLFDT(BGPBED)
+7 WRITE !!,"The COMMUNITY Taxonomy to be used is: ",$PIECE(^ATXAX(BGPTAXI,0),U)
+8 DO PT^BGP8DSL
+9 IF BGPRPF="P"
IF BGPROT="D"!(BGPROT="B")
IF BGPDELT="F"
Begin DoDot:1
+10 WRITE !!,"Please NOTE: Your filenames will be:"
+11 SET X=0
SET Y=BGPDELF
FOR
SET X=$ORDER(BGPDESGP(X))
IF X'=+X
QUIT
Begin DoDot:2
+12 SET J=BGPDELF_"_"_$EXTRACT($PIECE($PIECE(^VA(200,X,0),U),","),1,9)_X
+13 WRITE !?5,J
+14 SET $PIECE(BGPDESGP(X),U,2)=J
End DoDot:2
End DoDot:1
+15 IF BGPROT=""
GOTO COMM
ZIS ;call to XBDBQUE
+1 IF BGPRPF="P"
SET BGPXX=0
FOR
SET BGPXX=$ORDER(BGPDESGP(BGPXX))
IF BGPXX'=+BGPXX
QUIT
Begin DoDot:1
+2 DO REPORT^BGP8UTL
+3 SET $PIECE(BGPDESGP(BGPXX),U,1)=BGPRPT
End DoDot:1
+4 IF BGPRPF="F"
DO REPORT^BGP8UTL
+5 IF $GET(BGPQUIT)
DO XIT
QUIT
+6 IF BGPRPT=""
DO XIT
QUIT
+7 KILL IOP,%ZIS
IF BGPROT="D"
IF BGPDELT="F"
DO NODEV
DO XIT
QUIT
+8 KILL IOP,%ZIS
WRITE !!
SET %ZIS=$SELECT(BGPDELT'="S":"PQM",1:"PM")
DO ^%ZIS
+9 IF POP
IF BGPRPF="F"
Begin DoDot:1
+10 WRITE !,"Report Aborted."
SET DA=BGPRPT
SET DIK="^BGPGPDCR("
DO ^DIK
KILL DIK
+11 SET DA=BGPRPT
SET DIK="^BGPGPDPR("
DO ^DIK
KILL DIK
+12 SET DA=BGPRPT
SET DIK="^BGPGPDBR("
DO ^DIK
KILL DIK
End DoDot:1
DO XIT
QUIT
+13 IF POP
IF BGPRPF="P"
Begin DoDot:1
+14 WRITE !,"Report Aborted."
+15 SET BGPXX=0
FOR
SET BGPXX=$ORDER(BGPDESGP(BGPXX))
IF BGPXX'=+BGPXX
QUIT
SET BGPRPT=BGPDESGP(BGPXX)
Begin DoDot:2
+16 SET DA=BGPRPT
SET DIK="^BGPGPDCR("
DO ^DIK
KILL DIK
+17 SET DA=BGPRPT
SET DIK="^BGPGPDPR("
DO ^DIK
KILL DIK
+18 SET DA=BGPRPT
SET DIK="^BGPGPDBR("
DO ^DIK
KILL DIK
End DoDot:2
End DoDot:1
DO XIT
QUIT
+19 IF $DATA(IO("Q"))
GOTO TSKMN
DRIVER ;
+1 IF $DATA(ZTQUEUED)
SET ZTREQ="@"
+2 DO ^BGP8D1
+3 USE IO
+4 DO ^BGP8DP
+5 DO ^%ZISC
+6 QUIT
+7 ;
NODEV ;
+1 SET XBRP=""
SET XBRC="NODEV1^BGP8DNDB"
SET XBRX="XIT^BGP8DNDB"
SET XBNS="BGP"
+2 DO ^XBDBQUE
+3 QUIT
+4 ;
NODEV1 ;
+1 DO ^BGP8D1
+2 DO ^BGP8DP
+3 DO ^%ZISC
+4 DO XIT
+5 QUIT
TSKMN ;EP ENTRY POINT FROM TASKMAN
+1 SET ZTIO=$SELECT($DATA(ION):ION,1:IO)
IF $DATA(IOST)#2
IF IOST]""
SET ZTIO=ZTIO_";"_IOST
+2 IF $GET(IO("DOC"))]""
SET ZTIO=ZTIO_";"_$GET(IO("DOC"))
+3 IF $DATA(IOM)#2
IF IOM
SET ZTIO=ZTIO_";"_IOM
IF $DATA(IOSL)#2
IF IOSL
SET ZTIO=ZTIO_";"_IOSL
+4 KILL ZTSAVE
SET ZTSAVE("BGP*")=""
+5 SET ZTCPU=$GET(IOCPU)
SET ZTRTN="DRIVER^BGP8DNDB"
SET ZTDTH=""
SET ZTDESC="NATIONAL GPRA REPORT 11"
DO ^%ZTLOAD
DO XIT
QUIT
+6 QUIT
+7 ;
XIT ;
+1 DO ^%ZISC
+2 DO EN^XBVK("BGP")
IF $DATA(ZTQUEUED)
SET ZTREQ="@"
+3 KILL DIRUT,DUOUT,DIR,DOD
+4 KILL DIADD,DLAYGO
+5 DO KILL^AUPNPAT
+6 KILL X,X1,X2,X3,X4,X5,X6
+7 KILL A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,V,W,X,Y,Z
+8 KILL N,N1,N2,N3,N4,N5,N6
+9 KILL BD,ED
+10 DO KILL^AUPNPAT
+11 DO ^XBFMK
+12 QUIT
+13 ;
CTR(X,Y) ;EP - Center X in a field Y wide.
+1 QUIT $JUSTIFY("",$SELECT($DATA(Y):Y,1:IOM)-$LENGTH(X)\2)_X
+2 ;----------
EOP ;EP - End of page.
+1 IF $EXTRACT(IOST)'="C"
QUIT
+2 IF $DATA(ZTQUEUED)!'(IOT="TRM")!$DATA(IO("S"))
QUIT
+3 NEW DIR
+4 KILL DIR,DIRUT,DFOUT,DLOUT,DTOUT,DUOUT
+5 SET DIR(0)="E"
DO ^DIR
KILL DIR
+6 QUIT
+7 ;----------
USR() ;EP - Return name of current user from ^VA(200.
+1 QUIT $SELECT($GET(DUZ):$SELECT($DATA(^VA(200,DUZ,0)):$PIECE(^(0),U),1:"UNKNOWN"),1:"DUZ UNDEFINED OR 0")
+2 ;----------
LOC() ;EP - Return location name from file 4 based on DUZ(2).
+1 QUIT $SELECT($GET(DUZ(2)):$SELECT($DATA(^DIC(4,DUZ(2),0)):$PIECE(^(0),U),1:"UNKNOWN"),1:"DUZ(2) UNDEFINED OR 0")
+2 ;----------
+3 ;
CHKY ;
+1 WRITE !!,"The baseline year and the previous year time periods are the same.",!!
+2 SET DIR(0)="Y"
SET DIR("A")="Do you want to change the baseline year"
SET DIR("B")="N"
KILL DA
DO ^DIR
KILL DIR
+3 IF $DATA(DIRUT)
SET Y=""
QUIT
+4 QUIT
F ;fiscal year
+1 SET (BGPPER,BGPVDT)=""
+2 WRITE !!,"Enter the year for the report. Use a 4 digit ",!,"year, e.g. 2018"
+3 SET DIR(0)="D^::EP"
+4 SET DIR("A")="Enter year"
+5 SET DIR("?")="This report is compiled for a period. Enter a valid date."
+6 DO ^DIR
KILL DIR
+7 IF $DATA(DIRUT)
QUIT
+8 IF $DATA(DUOUT)
SET DIRUT=1
QUIT
+9 SET BGPVDT=Y
+10 IF $EXTRACT(Y,4,7)'="0000"
WRITE !!,"Please enter a year only!",!
GOTO F
+11 SET BGPPER=BGPVDT
+12 QUIT
B ;fiscal year
+1 SET (BGPBPER,BGPVDT)=""
+2 WRITE !!,"Enter the BASELINE year for the report. Use a 4 digit ",!,"year, e.g. 2010"
+3 SET DIR(0)="D^::EP"
+4 SET DIR("A")="Enter BASELINE year"
+5 SET DIR("?")="This report is compiled for a period. Enter a valid date."
+6 DO ^DIR
KILL DIR
+7 IF $DATA(DIRUT)
QUIT
+8 IF $DATA(DUOUT)
SET DIRUT=1
QUIT
+9 SET BGPVDT=Y
+10 IF $EXTRACT(Y,4,7)'="0000"
WRITE !!,"Please enter a year only!",!
GOTO F
+11 SET BGPBPER=BGPVDT
+12 QUIT
FY ;calendar year
+1 SET (BGPPER,BGPVDT,BGPNGR09)=""
+2 SET DIR(0)="D^::EP"
+3 SET DIR("A")="Run report for GPRA year 2018 or 2019"
+4 SET DIR("?")="This report is compiled for a period. Enter a valid date."
+5 DO ^DIR
KILL DIR
+6 IF $DATA(DIRUT)
QUIT
+7 IF $DATA(DUOUT)
SET DIRUT=1
QUIT
+8 ;I Y'=3170000,Y'=3180000 W !,"Must be 2018 or 2019" G FY ;LORI
+9 SET BGPVDT=Y
+10 IF $EXTRACT(Y,4,7)'="0000"
WRITE !!,"Please enter a year only!",!
GOTO FY
+11 SET BGPPER=BGPVDT
+12 IF BGPPER="3180000"
SET BGPNGR09=1
+13 QUIT