- BNIRP3 ; IHS/CMI/LAB - sht report ;
- ;;1.0;BNI CPHD ACTIVITY DATASYSTEM;;DEC 20, 2006
- ;
- START ;
- D INFORM
- GETDATES ;
- BD ;get beginning date
- W !
- S BNIGBD=""
- S DIR(0)="FO^6:7",DIR("A")="Enter Beginning Month (e.g. 01/2006)",DIR("?")="Enter a month and 4 digit year in the following format: 1/1999, 01/2000. The slash is required between the month and year. Date must be in the past."
- KILL DA D ^DIR KILL DIR
- Q:$D(DIRUT)
- Q:X=""
- I Y'?1.2N1"/"4N W !,"Enter the month/4 digit year in the format 03/2005. Slash is required and ",!,"4 digit year is required.",! G BD
- K %DT S X=Y,%DT="EP" D ^%DT
- I Y=-1 W !!,"Enter a month and 4 digit year. Date must be in the past. E.g. 04/2005 or 01/2000." G BD
- I Y>DT W !!,"No future dates allowed!",! G BD
- S BNIGBD=Y
- ED ;get ending date
- W !
- S BNIGED=""
- S DIR(0)="FO^6:7",DIR("A")="Enter Ending Month (e.g. 01/2006)",DIR("?")="Enter a month and 4 digit year in the following format: 1/1999, 01/2000. The slash is required between the month and year. Date must be in the past."
- KILL DA D ^DIR KILL DIR
- Q:$D(DIRUT)
- Q:X=""
- I Y'?1.2N1"/"4N W !,"Enter the month/4 digit year in the format 03/2005. Slash is required and ",!,"4 digit year is required.",! G ED
- K %DT S X=Y,%DT="EP" D ^%DT
- I Y=-1 W !!,"Enter a month and 4 digit year. Date must be in the past. E.g. 04/2005 or 01/2000." G ED
- I Y>DT W !!,"No future dates allowed!",! G ED
- S BNIGED=Y
- S BNIGBDD=$$FMTE^XLFDT(BNIGBD),BNIGEDD=$$FMTE^XLFDT(BNIGED)
- S X1=BNIGBD,X2=-1 D C^%DTC S BNIGSD=X
- ;
- LIST ;
- K BNILIST
- K DIR S DIR(0)="Y",DIR("A")="Do you want a list of the records",DIR("B")="N" KILL DA D ^DIR K DIR
- I $D(DIRUT) G GETDATES
- S BNILIST=Y
- ZIS ;call to XBDBQUE
- S XBRP="PRINT^BNIRP3",XBRC="PROCESS^BNIRP3",XBRX="XIT^BNIRP3",XBNS="BNIG"
- D ^XBDBQUE
- D XIT
- Q
- PROCESS ;EP - called from xbdbque
- S BNIJ=$J,BNIH=$H,BNIGTOTR=0,BNIGTOTT=0
- K BNIGDATA
- S ^XTMP("BNIRP3",0)=$$FMADD^XLFDT(DT,14)_"^"_DT_"^BNI CPHAD ACTIVITY REPORT"
- S BNIGSD=BNIGSD_".9999"
- F S BNIGSD=$O(^BNIREC("B",BNIGSD)) Q:BNIGSD=""!($E(BNIGSD,1,5)>$E(BNIGED,1,5)) D
- .S BNIR=0 F S BNIR=$O(^BNIREC("B",BNIGSD,BNIR)) Q:BNIR'=+BNIR D PROC1
- .Q
- Q
- PROC1 ;
- S BNIREC=$G(^BNIREC(BNIR,0))
- Q:BNIREC=""
- D SET
- Q
- SET ;
- I BNILIST S ^XTMP("BNIRP3",BNIJ,BNIH,"RECORDS",$P(BNIREC,U),BNIR)=""
- S BNIGTOTR=BNIGTOTR+1
- S BNIGTOTT=BNIGTOTT+$P(BNIREC,U,9)
- S BNIPRV=$$VAL^XBDIQ1(90510,BNIR,.12)
- I BNIPRV="" S BNIPRV="UNKNOWN/BLANK"
- I '$D(BNIGDATA(BNIPRV)) S BNIGDATA(BNIPRV)=""
- S $P(BNIGDATA(BNIPRV),U,1)=$P(BNIGDATA(BNIPRV),U,1)+1
- S $P(BNIGDATA(BNIPRV),U,2)=$P(BNIGDATA(BNIPRV),U,2)+$P(BNIREC,U,9)
- Q
- PRINT ;EP - called from xbdbque
- S BNIGPG=0,BNIGQUIT=""
- D HEADER
- S BNIPRV="" F S BNIPRV=$O(BNIGDATA(BNIPRV)) Q:BNIPRV=""!(BNIGQUIT) D
- .I $Y>(IOSL-2) D HEADER Q:BNIGQUIT
- .W !,$E(BNIPRV,1,50)
- .W ?55,$$C($P(BNIGDATA(BNIPRV),U,1),0,8),?68,$$C($P(BNIGDATA(BNIPRV),U,2),2,12)
- I $Y>(IOSL-4) D HEADER Q:BNIGQUIT
- W !!!,"GRAND TOTALS:",?55,$$C(BNIGTOTR,0,8),?68,$$C(BNIGTOTT,2,12)
- I BNILIST D LISTP
- W ! D EOP
- Q
- LISTP ;
- D LHDR
- S BNID=0 F S BNID=$O(^XTMP("BNIRP3",BNIJ,BNIH,"RECORDS",BNID)) Q:BNID'=+BNID!(BNIGQUIT) D
- .S BNIR=0 F S BNIR=$O(^XTMP("BNIRP3",BNIJ,BNIH,"RECORDS",BNID,BNIR)) Q:BNIR'=+BNIR!(BNIGQUIT) D
- ..I $Y>(IOSL-4) D LHDR Q:BNIGQUIT
- ..W !,$$D($P(^BNIREC(BNIR,0),U)),?13,$E($$VAL^XBDIQ1(90510,BNIR,.08),1,15),?30,$P(^BNIREC(BNIR,0),U,9)
- ..W ?37,$E($$VAL^XBDIQ1(90510,BNIR,.15),1,20),?59,$E($$VAL^XBDIQ1(90510,BNIR,.13),1,15),?75,$$GPRA(BNIR)
- ..W !?3,$$VAL^XBDIQ1(90510,BNIR,.11)
- ..W !?3,$$VAL^XBDIQ1(90510,BNIR,.12)
- ..Q:'$O(^BNIREC(BNIR,14,0))
- ..S BNIX=0 F S BNIX=$O(^BNIREC(BNIR,14,BNIX)) Q:BNIX'=+BNIX!(BNIGQUIT) D
- ...I $Y>(IOSL-4) D LHDR Q:BNIGQUIT
- ...W !?1,^BNIREC(BNIR,14,BNIX,0)
- ...Q
- ..Q
- .Q
- K ^XTMP("BNIRP3",BNIJ,BNIH)
- Q
- GPRA(R) ;
- S X=$$VALI^XBDIQ1(90510,BNIR,.12)
- I X="" Q ""
- I $P(^BNISHT(X,0),U,4) Q "GPRA"
- Q ""
- DATE(D) ;EP
- I D="" Q ""
- ;Q $E(D,4,5)_"/"_$E(D,6,7)_"/"_(1700+$E(D,1,3))
- Q $$FMTE^XLFDT(D)
- ;
- D(D) ;EP
- I D="" Q ""
- Q $$FMTE^XLFDT(D)
- ;
- ;
- C(X,X2,X3) ;
- D COMMA^%DTC
- Q X
- LHDR ;
- I 'BNIGPG G LHDR1
- I $E(IOST)="C",IO=IO(0) W ! S DIR(0)="EO" D ^DIR K DIR I Y=0!(Y="^")!($D(DTOUT)) S BNIGQUIT=1 Q
- LHDR1 ;
- W:$D(IOF) @IOF S BNIGPG=BNIGPG+1
- I $G(BNIGUI) W "ZZZZZZZ",! ;maw
- W !?3,$P(^VA(200,DUZ,0),U,2),?35,$$FMTE^XLFDT(DT),?70,"Page ",BNIGPG,!
- W !,$$CTR("*** Computerized Public Health Actvity Datasystem ***",80)
- W !,$$CTR("*** Activity Time by Specific Health Topic ***",80)
- W !,$$CTR("*** Record Listing ***",80)
- W !,$$CTR($P(^DIC(4,DUZ(2),0),U),80)
- S X="Activity Dates: "_$$FMTE^XLFDT(BNIGBD)_" to "_$$FMTE^XLFDT(BNIGED) W !,$$CTR(X,80)
- W !!,"DATE",?10,"PROVIDER",?30,"Hrs",?37,"SETTING",?59,"ACTIVITY",?75,"GPRA"
- W !,$$REPEAT^XLFSTR("-",80)
- W !
- Q
- I 'BNIGPG G HEAD1
- I $E(IOST)="C",IO=IO(0) W ! S DIR(0)="EO" D ^DIR K DIR I Y=0!(Y="^")!($D(DTOUT)) S BNIGQUIT=1 Q
- HEAD1 ;
- W:$D(IOF) @IOF S BNIGPG=BNIGPG+1
- ;I $G(BNIGUI) W "ZZZZZZZ",! ;maw
- W !?3,$P(^VA(200,DUZ,0),U,2),?35,$$FMTE^XLFDT(DT),?70,"Page ",BNIGPG,!
- W !,$$CTR("*** Computerized Public Health Actvity Datasystem ***",80)
- W !,$$CTR("*** Activity Time by Specific Health Topic ***",80)
- W !,$$CTR($P(^DIC(4,DUZ(2),0),U),80)
- S X="Activity Dates: "_$$FMTE^XLFDT(BNIGBD)_" to "_$$FMTE^XLFDT(BNIGED) W !,$$CTR(X,80)
- W !,$$REPEAT^XLFSTR("-",80)
- W !,?1,"SPECIFIC HEALTH TOPIC",?55,"# RECORDS",?73,"Hrs"
- W !?55,"---------",?73,"---"
- W !
- Q
- ;
- XIT ;
- D EN^XBVK("BNI")
- K X,X1,X2,IO("Q"),%,Y,POP,DIRUT,ZTSK,ZTQUEUED,H,S,TS,M
- Q
- INFORM ;
- W:$D(IOF) @IOF
- W !!,$$CTR($$LOC)
- W !!,$$CTR("TIME SPENT BY SPECIFIC HEALTH TOPIC")
- W !
- 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)!$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")
- ;----------
- ;
- BNIG(BNIERR,BNIJOB,BNIBTH,BNIGBD,BNIGED,BNILIST,BNIRDT) ;PEP - gui call
- I $G(BNIJOB)="" S BNIIEN=-1 Q
- I $G(BNIBTH)="" S BNIIEN=-1 Q
- I $G(BNIBG)="" S BNIIEN=-1 Q
- I $G(BNIED)="" S BNIIEN=-1 Q
- I $G(BNILIST)="" S BNIIEN=-1 Q
- S BNIGBDD=$$FMTE^XLFDT(BNIGBD),BNIGEDD=$$FMTE^XLFDT(BNIGED)
- S X1=BNIBG,X2=-1 D C^%DTC S BNIGSD=X
- ;create entry in fileman file to hold output
- N BNIOPT ;maw
- S BNIOPT="Specific Health Topic"
- D NOW^%DTC
- S BNINOW=$G(%)
- K DD,D0,DIC
- S X=BNIJOB_"."_BNIBTH
- S DIC("DR")=".02////"_DUZ_";.03////"_BNINOW_";.05////"_$G(BNIOPT)_";.06///R;.07///R"
- S DIC="^BNIGUI(",DIC(0)="L",DIADD=1,DLAYGO=90512.08
- D FILE^DICN
- K DIADD,DLAYGO,DIC,DA
- I Y=-1 S BNIIEN=-1 Q
- S BNIIEN=+Y
- S BNIGIEN=BNIIEN ;cmi/maw added
- D ^XBFMK
- K ZTSAVE S ZTSAVE("*")=""
- ;D GUIEP ;for interactive testing
- S ZTIO="",ZTDTH=$$NOW^XLFDT,ZTRTN="GUIEP^BNIRP3",ZTDESC=BNIOPT D ^%ZTLOAD
- D XIT
- Q
- GUIEP ;EP - called from taskman
- D PROCESS
- K ^TMP($J,"BNIRP3")
- S IOM=80 ;cmi/maw added
- D GUIR^XBLM("PRINT^BNIRP2","^TMP($J,""BNIRP3"",")
- S X=0,C=0 F S X=$O(^TMP($J,"BNIRP3",X)) Q:X'=+X D
- . S C=C+1
- . N BNIDATA
- . S BNIDATA=$G(^TMP($J,"BNIRP3",X))
- . I BNIDATA="ZZZZZZZ" S BNIDATA=$C(12)
- . S ^BNIGUI(BNIIEN,11,C,0)=BNIDATA
- S ^BNIGUI(BNIIEN,11,0)="^^"_C_"^"_C_"^"_DT_"^"
- S DA=BNIIEN,DIK="^BNIGUI(" D IX1^DIK
- D ENDLOG
- S ZTREQ="@"
- Q
- ;
- ENDLOG ;-- write the end of the log
- D NOW^%DTC
- S BNINOW=$G(%)
- S DIE="^BNIGUI(",DA=BNIIEN,DR=".04////"_BNINOW_";.06///C"
- D ^DIE
- K DIE,DR,DA
- Q
- ;
- BNIRP3 ; IHS/CMI/LAB - sht report ;
- +1 ;;1.0;BNI CPHD ACTIVITY DATASYSTEM;;DEC 20, 2006
- +2 ;
- START ;
- +1 DO INFORM
- GETDATES ;
- BD ;get beginning date
- +1 WRITE !
- +2 SET BNIGBD=""
- +3 SET DIR(0)="FO^6:7"
- SET DIR("A")="Enter Beginning Month (e.g. 01/2006)"
- SET DIR("?")="Enter a month and 4 digit year in the following format: 1/1999, 01/2000. The slash is required between the month and year. Date must be in the past."
- +4 KILL DA
- DO ^DIR
- KILL DIR
- +5 IF $DATA(DIRUT)
- QUIT
- +6 IF X=""
- QUIT
- +7 IF Y'?1.2N1"/"4N
- WRITE !,"Enter the month/4 digit year in the format 03/2005. Slash is required and ",!,"4 digit year is required.",!
- GOTO BD
- +8 KILL %DT
- SET X=Y
- SET %DT="EP"
- DO ^%DT
- +9 IF Y=-1
- WRITE !!,"Enter a month and 4 digit year. Date must be in the past. E.g. 04/2005 or 01/2000."
- GOTO BD
- +10 IF Y>DT
- WRITE !!,"No future dates allowed!",!
- GOTO BD
- +11 SET BNIGBD=Y
- ED ;get ending date
- +1 WRITE !
- +2 SET BNIGED=""
- +3 SET DIR(0)="FO^6:7"
- SET DIR("A")="Enter Ending Month (e.g. 01/2006)"
- SET DIR("?")="Enter a month and 4 digit year in the following format: 1/1999, 01/2000. The slash is required between the month and year. Date must be in the past."
- +4 KILL DA
- DO ^DIR
- KILL DIR
- +5 IF $DATA(DIRUT)
- QUIT
- +6 IF X=""
- QUIT
- +7 IF Y'?1.2N1"/"4N
- WRITE !,"Enter the month/4 digit year in the format 03/2005. Slash is required and ",!,"4 digit year is required.",!
- GOTO ED
- +8 KILL %DT
- SET X=Y
- SET %DT="EP"
- DO ^%DT
- +9 IF Y=-1
- WRITE !!,"Enter a month and 4 digit year. Date must be in the past. E.g. 04/2005 or 01/2000."
- GOTO ED
- +10 IF Y>DT
- WRITE !!,"No future dates allowed!",!
- GOTO ED
- +11 SET BNIGED=Y
- +12 SET BNIGBDD=$$FMTE^XLFDT(BNIGBD)
- SET BNIGEDD=$$FMTE^XLFDT(BNIGED)
- +13 SET X1=BNIGBD
- SET X2=-1
- DO C^%DTC
- SET BNIGSD=X
- +14 ;
- LIST ;
- +1 KILL BNILIST
- +2 KILL DIR
- SET DIR(0)="Y"
- SET DIR("A")="Do you want a list of the records"
- SET DIR("B")="N"
- KILL DA
- DO ^DIR
- KILL DIR
- +3 IF $DATA(DIRUT)
- GOTO GETDATES
- +4 SET BNILIST=Y
- ZIS ;call to XBDBQUE
- +1 SET XBRP="PRINT^BNIRP3"
- SET XBRC="PROCESS^BNIRP3"
- SET XBRX="XIT^BNIRP3"
- SET XBNS="BNIG"
- +2 DO ^XBDBQUE
- +3 DO XIT
- +4 QUIT
- PROCESS ;EP - called from xbdbque
- +1 SET BNIJ=$JOB
- SET BNIH=$HOROLOG
- SET BNIGTOTR=0
- SET BNIGTOTT=0
- +2 KILL BNIGDATA
- +3 SET ^XTMP("BNIRP3",0)=$$FMADD^XLFDT(DT,14)_"^"_DT_"^BNI CPHAD ACTIVITY REPORT"
- +4 SET BNIGSD=BNIGSD_".9999"
- +5 FOR
- SET BNIGSD=$ORDER(^BNIREC("B",BNIGSD))
- IF BNIGSD=""!($EXTRACT(BNIGSD,1,5)>$EXTRACT(BNIGED,1,5))
- QUIT
- Begin DoDot:1
- +6 SET BNIR=0
- FOR
- SET BNIR=$ORDER(^BNIREC("B",BNIGSD,BNIR))
- IF BNIR'=+BNIR
- QUIT
- DO PROC1
- +7 QUIT
- End DoDot:1
- +8 QUIT
- PROC1 ;
- +1 SET BNIREC=$GET(^BNIREC(BNIR,0))
- +2 IF BNIREC=""
- QUIT
- +3 DO SET
- +4 QUIT
- SET ;
- +1 IF BNILIST
- SET ^XTMP("BNIRP3",BNIJ,BNIH,"RECORDS",$PIECE(BNIREC,U),BNIR)=""
- +2 SET BNIGTOTR=BNIGTOTR+1
- +3 SET BNIGTOTT=BNIGTOTT+$PIECE(BNIREC,U,9)
- +4 SET BNIPRV=$$VAL^XBDIQ1(90510,BNIR,.12)
- +5 IF BNIPRV=""
- SET BNIPRV="UNKNOWN/BLANK"
- +6 IF '$DATA(BNIGDATA(BNIPRV))
- SET BNIGDATA(BNIPRV)=""
- +7 SET $PIECE(BNIGDATA(BNIPRV),U,1)=$PIECE(BNIGDATA(BNIPRV),U,1)+1
- +8 SET $PIECE(BNIGDATA(BNIPRV),U,2)=$PIECE(BNIGDATA(BNIPRV),U,2)+$PIECE(BNIREC,U,9)
- +9 QUIT
- PRINT ;EP - called from xbdbque
- +1 SET BNIGPG=0
- SET BNIGQUIT=""
- +2 DO HEADER
- +3 SET BNIPRV=""
- FOR
- SET BNIPRV=$ORDER(BNIGDATA(BNIPRV))
- IF BNIPRV=""!(BNIGQUIT)
- QUIT
- Begin DoDot:1
- +4 IF $Y>(IOSL-2)
- DO HEADER
- IF BNIGQUIT
- QUIT
- +5 WRITE !,$EXTRACT(BNIPRV,1,50)
- +6 WRITE ?55,$$C($PIECE(BNIGDATA(BNIPRV),U,1),0,8),?68,$$C($PIECE(BNIGDATA(BNIPRV),U,2),2,12)
- End DoDot:1
- +7 IF $Y>(IOSL-4)
- DO HEADER
- IF BNIGQUIT
- QUIT
- +8 WRITE !!!,"GRAND TOTALS:",?55,$$C(BNIGTOTR,0,8),?68,$$C(BNIGTOTT,2,12)
- +9 IF BNILIST
- DO LISTP
- +10 WRITE !
- DO EOP
- +11 QUIT
- LISTP ;
- +1 DO LHDR
- +2 SET BNID=0
- FOR
- SET BNID=$ORDER(^XTMP("BNIRP3",BNIJ,BNIH,"RECORDS",BNID))
- IF BNID'=+BNID!(BNIGQUIT)
- QUIT
- Begin DoDot:1
- +3 SET BNIR=0
- FOR
- SET BNIR=$ORDER(^XTMP("BNIRP3",BNIJ,BNIH,"RECORDS",BNID,BNIR))
- IF BNIR'=+BNIR!(BNIGQUIT)
- QUIT
- Begin DoDot:2
- +4 IF $Y>(IOSL-4)
- DO LHDR
- IF BNIGQUIT
- QUIT
- +5 WRITE !,$$D($PIECE(^BNIREC(BNIR,0),U)),?13,$EXTRACT($$VAL^XBDIQ1(90510,BNIR,.08),1,15),?30,$PIECE(^BNIREC(BNIR,0),U,9)
- +6 WRITE ?37,$EXTRACT($$VAL^XBDIQ1(90510,BNIR,.15),1,20),?59,$EXTRACT($$VAL^XBDIQ1(90510,BNIR,.13),1,15),?75,$$GPRA(BNIR)
- +7 WRITE !?3,$$VAL^XBDIQ1(90510,BNIR,.11)
- +8 WRITE !?3,$$VAL^XBDIQ1(90510,BNIR,.12)
- +9 IF '$ORDER(^BNIREC(BNIR,14,0))
- QUIT
- +10 SET BNIX=0
- FOR
- SET BNIX=$ORDER(^BNIREC(BNIR,14,BNIX))
- IF BNIX'=+BNIX!(BNIGQUIT)
- QUIT
- Begin DoDot:3
- +11 IF $Y>(IOSL-4)
- DO LHDR
- IF BNIGQUIT
- QUIT
- +12 WRITE !?1,^BNIREC(BNIR,14,BNIX,0)
- +13 QUIT
- End DoDot:3
- +14 QUIT
- End DoDot:2
- +15 QUIT
- End DoDot:1
- +16 KILL ^XTMP("BNIRP3",BNIJ,BNIH)
- +17 QUIT
- GPRA(R) ;
- +1 SET X=$$VALI^XBDIQ1(90510,BNIR,.12)
- +2 IF X=""
- QUIT ""
- +3 IF $PIECE(^BNISHT(X,0),U,4)
- QUIT "GPRA"
- +4 QUIT ""
- DATE(D) ;EP
- +1 IF D=""
- QUIT ""
- +2 ;Q $E(D,4,5)_"/"_$E(D,6,7)_"/"_(1700+$E(D,1,3))
- +3 QUIT $$FMTE^XLFDT(D)
- +4 ;
- D(D) ;EP
- +1 IF D=""
- QUIT ""
- +2 QUIT $$FMTE^XLFDT(D)
- +3 ;
- +4 ;
- C(X,X2,X3) ;
- +1 DO COMMA^%DTC
- +2 QUIT X
- LHDR ;
- +1 IF 'BNIGPG
- GOTO LHDR1
- +2 IF $EXTRACT(IOST)="C"
- IF IO=IO(0)
- WRITE !
- SET DIR(0)="EO"
- DO ^DIR
- KILL DIR
- IF Y=0!(Y="^")!($DATA(DTOUT))
- SET BNIGQUIT=1
- QUIT
- LHDR1 ;
- +1 IF $DATA(IOF)
- WRITE @IOF
- SET BNIGPG=BNIGPG+1
- +2 ;maw
- IF $GET(BNIGUI)
- WRITE "ZZZZZZZ",!
- +3 WRITE !?3,$PIECE(^VA(200,DUZ,0),U,2),?35,$$FMTE^XLFDT(DT),?70,"Page ",BNIGPG,!
- +4 WRITE !,$$CTR("*** Computerized Public Health Actvity Datasystem ***",80)
- +5 WRITE !,$$CTR("*** Activity Time by Specific Health Topic ***",80)
- +6 WRITE !,$$CTR("*** Record Listing ***",80)
- +7 WRITE !,$$CTR($PIECE(^DIC(4,DUZ(2),0),U),80)
- +8 SET X="Activity Dates: "_$$FMTE^XLFDT(BNIGBD)_" to "_$$FMTE^XLFDT(BNIGED)
- WRITE !,$$CTR(X,80)
- +9 WRITE !!,"DATE",?10,"PROVIDER",?30,"Hrs",?37,"SETTING",?59,"ACTIVITY",?75,"GPRA"
- +10 WRITE !,$$REPEAT^XLFSTR("-",80)
- +11 WRITE !
- +12 QUIT
- +1 IF 'BNIGPG
- GOTO HEAD1
- +2 IF $EXTRACT(IOST)="C"
- IF IO=IO(0)
- WRITE !
- SET DIR(0)="EO"
- DO ^DIR
- KILL DIR
- IF Y=0!(Y="^")!($DATA(DTOUT))
- SET BNIGQUIT=1
- QUIT
- HEAD1 ;
- +1 IF $DATA(IOF)
- WRITE @IOF
- SET BNIGPG=BNIGPG+1
- +2 ;I $G(BNIGUI) W "ZZZZZZZ",! ;maw
- +3 WRITE !?3,$PIECE(^VA(200,DUZ,0),U,2),?35,$$FMTE^XLFDT(DT),?70,"Page ",BNIGPG,!
- +4 WRITE !,$$CTR("*** Computerized Public Health Actvity Datasystem ***",80)
- +5 WRITE !,$$CTR("*** Activity Time by Specific Health Topic ***",80)
- +6 WRITE !,$$CTR($PIECE(^DIC(4,DUZ(2),0),U),80)
- +7 SET X="Activity Dates: "_$$FMTE^XLFDT(BNIGBD)_" to "_$$FMTE^XLFDT(BNIGED)
- WRITE !,$$CTR(X,80)
- +8 WRITE !,$$REPEAT^XLFSTR("-",80)
- +9 WRITE !,?1,"SPECIFIC HEALTH TOPIC",?55,"# RECORDS",?73,"Hrs"
- +10 WRITE !?55,"---------",?73,"---"
- +11 WRITE !
- +12 QUIT
- +13 ;
- XIT ;
- +1 DO EN^XBVK("BNI")
- +2 KILL X,X1,X2,IO("Q"),%,Y,POP,DIRUT,ZTSK,ZTQUEUED,H,S,TS,M
- +3 QUIT
- INFORM ;
- +1 IF $DATA(IOF)
- WRITE @IOF
- +2 WRITE !!,$$CTR($$LOC)
- +3 WRITE !!,$$CTR("TIME SPENT BY SPECIFIC HEALTH TOPIC")
- +4 WRITE !
- +5 QUIT
- +6 ;
- 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)!$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 ;
- BNIG(BNIERR,BNIJOB,BNIBTH,BNIGBD,BNIGED,BNILIST,BNIRDT) ;PEP - gui call
- +1 IF $GET(BNIJOB)=""
- SET BNIIEN=-1
- QUIT
- +2 IF $GET(BNIBTH)=""
- SET BNIIEN=-1
- QUIT
- +3 IF $GET(BNIBG)=""
- SET BNIIEN=-1
- QUIT
- +4 IF $GET(BNIED)=""
- SET BNIIEN=-1
- QUIT
- +5 IF $GET(BNILIST)=""
- SET BNIIEN=-1
- QUIT
- +6 SET BNIGBDD=$$FMTE^XLFDT(BNIGBD)
- SET BNIGEDD=$$FMTE^XLFDT(BNIGED)
- +7 SET X1=BNIBG
- SET X2=-1
- DO C^%DTC
- SET BNIGSD=X
- +8 ;create entry in fileman file to hold output
- +9 ;maw
- NEW BNIOPT
- +10 SET BNIOPT="Specific Health Topic"
- +11 DO NOW^%DTC
- +12 SET BNINOW=$GET(%)
- +13 KILL DD,D0,DIC
- +14 SET X=BNIJOB_"."_BNIBTH
- +15 SET DIC("DR")=".02////"_DUZ_";.03////"_BNINOW_";.05////"_$GET(BNIOPT)_";.06///R;.07///R"
- +16 SET DIC="^BNIGUI("
- SET DIC(0)="L"
- SET DIADD=1
- SET DLAYGO=90512.08
- +17 DO FILE^DICN
- +18 KILL DIADD,DLAYGO,DIC,DA
- +19 IF Y=-1
- SET BNIIEN=-1
- QUIT
- +20 SET BNIIEN=+Y
- +21 ;cmi/maw added
- SET BNIGIEN=BNIIEN
- +22 DO ^XBFMK
- +23 KILL ZTSAVE
- SET ZTSAVE("*")=""
- +24 ;D GUIEP ;for interactive testing
- +25 SET ZTIO=""
- SET ZTDTH=$$NOW^XLFDT
- SET ZTRTN="GUIEP^BNIRP3"
- SET ZTDESC=BNIOPT
- DO ^%ZTLOAD
- +26 DO XIT
- +27 QUIT
- GUIEP ;EP - called from taskman
- +1 DO PROCESS
- +2 KILL ^TMP($JOB,"BNIRP3")
- +3 ;cmi/maw added
- SET IOM=80
- +4 DO GUIR^XBLM("PRINT^BNIRP2","^TMP($J,""BNIRP3"",")
- +5 SET X=0
- SET C=0
- FOR
- SET X=$ORDER(^TMP($JOB,"BNIRP3",X))
- IF X'=+X
- QUIT
- Begin DoDot:1
- +6 SET C=C+1
- +7 NEW BNIDATA
- +8 SET BNIDATA=$GET(^TMP($JOB,"BNIRP3",X))
- +9 IF BNIDATA="ZZZZZZZ"
- SET BNIDATA=$CHAR(12)
- +10 SET ^BNIGUI(BNIIEN,11,C,0)=BNIDATA
- End DoDot:1
- +11 SET ^BNIGUI(BNIIEN,11,0)="^^"_C_"^"_C_"^"_DT_"^"
- +12 SET DA=BNIIEN
- SET DIK="^BNIGUI("
- DO IX1^DIK
- +13 DO ENDLOG
- +14 SET ZTREQ="@"
- +15 QUIT
- +16 ;
- ENDLOG ;-- write the end of the log
- +1 DO NOW^%DTC
- +2 SET BNINOW=$GET(%)
- +3 SET DIE="^BNIGUI("
- SET DA=BNIIEN
- SET DR=".04////"_BNINOW_";.06///C"
- +4 DO ^DIE
- +5 KILL DIE,DR,DA
- +6 QUIT
- +7 ;