LRCAPA12 ;SLC/RJS/FHS - LAB WORKLOAD DIVISION REPORT;8/23/91 1039;
;;5.2;LAB SERVICE;**201**;Sep 27, 1994
EN ;
;
K ^TMP($J),ZTSK
ASK1 ;
S %DT="E" W !!,"Beginning Date: " R X:$S($D(DTIME):DTIME,1:999) E G EXIT
G:(X["^") EXIT D ^%DT G:(Y<0) ASK1 S LRDT1=+Y
ASK2 ;
S %DT="E" W !!,"Ending Date: " R X:$S($D(DTIME):DTIME,1:999) E G EXIT
G:(X["^") EXIT D ^%DT G:(Y<0) ASK2 S LRDT2=+Y I LRDT1>LRDT2 S Y=LRDT1,LRDT1=LRDT2,LRDT2=Y
W !! S %ZIS="NQ" D ^%ZIS G:'$L(IO) EXIT
G:IO'=IO(0)!($D(IO("Q"))) QUEUE
DQ ;
I $D(ZTQUEUED) S ZTREQ="@"
U IO S LRPG=0 D LOOP W:TOT !!,?35,"Total for the Report: ",$J(TOT,10,2)
I '$D(^TMP($J)) W !!?10,"No Data for " S X=LRDT1P D DD W " - " S X=LRDT2P D DD W !!
W:IOST["P-" @IOF
EXIT ;
D ^%ZISC
K LRPG,TOT,LRDT,LRDT1,LRDT2,LRDV1,LRDV2,LRLN,^TMP($J),LRTXT,ZTSK,%DT,%ZIS,ZTRTN,ZTDESC,ZTIO,ZTSAVE,LRDT1P,LRDT2P,IO("Q")
Q
QUEUE ;
S ZTRTN="DQ^LRCAPA12",ZTSAVE("LRDT*")="",ZTDESC="Lab Workload Division Report",ZTIO=ION
K ZTDTH,ZTCPU,ZTUCI
D ^%ZTLOAD
G EXIT
Q
LOOP ;
S (LRLN,LRDV1,LRDV2,TOT)=0,LRDT1P=LRDT1,LRDT2P=LRDT2,LRDT1=LRDT1-.0001,LRDT2=LRDT2+.00001 D DT^LRX
W !! D WAIT^DICD W:IOST["P-" @IOF
F S LRLN=$O(^TMP("WL",LRLN)) Q:'LRLN S LRTXT=^(LRLN) D LOOP1
D HEADER
S LRDV1=0 F S LRDV1=$O(^TMP($J,LRDV1)) Q:'LRDV1 D LOOP2
Q
LOOP1 ;
I ($E(LRTXT,1,2)="$$") S LRDV2=+$E(LRTXT,3,99),LRDT=$E(LRTXT,10,16) Q
I ($E(LRTXT,1)="$") S LRDV1=+$E(LRTXT,2,99) Q
Q:'LRDV1!('LRDV2)
I LRDT>LRDT1,LRDT<LRDT2 D DATES S ^TMP($J,LRDV1,LRDV2,"TOT WRK")=^TMP($J,LRDV1,LRDV2,"TOT WRK")+(+$E(LRTXT,28,99)*(+$E(LRTXT,34,99)))
Q
LOOP2 ;
S LRDV2=0 F S LRDV2=$O(^TMP($J,LRDV1,LRDV2)) Q:'LRDV2 D LOOP3
Q
LOOP3 ;
I IOST["P-"&($Y>(IOSL-6)) D HEADER
W !,"Division: ",LRDV2
S X=^TMP($J,LRDV1,LRDV2,"LO DT") W ?20,"From: " D DD S X=^("HI DT") W ?35,"To: " D DD
W ?50,"Total: ",$J(^("TOT WRK"),10,2) S TOT=TOT+^("TOT WRK")
Q
DATES ;
D:'$D(^TMP($J,LRDV1,LRDV2,"HI DT"))#2 NEW
S:'(LRDT<^TMP($J,LRDV1,LRDV2,"HI DT")) ^TMP($J,LRDV1,LRDV2,"HI DT")=LRDT
S:'(LRDT>^TMP($J,LRDV1,LRDV2,"LO DT")) ^TMP($J,LRDV1,LRDV2,"LO DT")=LRDT
Q
NEW ;
S ^TMP($J,LRDV1,LRDV2,"HI DT")=0
S ^TMP($J,LRDV1,LRDV2,"LO DT")=9999999
S ^TMP($J,LRDV1,LRDV2,"TOT WRK")=0
Q
S LRPG=LRPG+1 W:IOST["P-"&($Y>(IOSL-6)) @IOF W !!," Lab Workload Division Report for Site: ",LRDV1," Printed: ",LRDT0,!!,?60,"Pg: ",LRPG,!
Q
DD ;
W $$FMTE^XLFDT(X,"1D") Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRCAPA12 2429 printed Oct 16, 2024@18:13:18 Page 2
LRCAPA12 ;SLC/RJS/FHS - LAB WORKLOAD DIVISION REPORT;8/23/91 1039;
+1 ;;5.2;LAB SERVICE;**201**;Sep 27, 1994
EN ;
+1 ;
+2 KILL ^TMP($JOB),ZTSK
ASK1 ;
+1 SET %DT="E"
WRITE !!,"Beginning Date: "
READ X:$SELECT($DATA(DTIME):DTIME,1:999)
IF '$TEST
GOTO EXIT
+2 if (X["^")
GOTO EXIT
DO ^%DT
if (Y<0)
GOTO ASK1
SET LRDT1=+Y
ASK2 ;
+1 SET %DT="E"
WRITE !!,"Ending Date: "
READ X:$SELECT($DATA(DTIME):DTIME,1:999)
IF '$TEST
GOTO EXIT
+2 if (X["^")
GOTO EXIT
DO ^%DT
if (Y<0)
GOTO ASK2
SET LRDT2=+Y
IF LRDT1>LRDT2
SET Y=LRDT1
SET LRDT1=LRDT2
SET LRDT2=Y
+3 WRITE !!
SET %ZIS="NQ"
DO ^%ZIS
if '$LENGTH(IO)
GOTO EXIT
+4 if IO'=IO(0)!($DATA(IO("Q")))
GOTO QUEUE
DQ ;
+1 IF $DATA(ZTQUEUED)
SET ZTREQ="@"
+2 USE IO
SET LRPG=0
DO LOOP
if TOT
WRITE !!,?35,"Total for the Report: ",$JUSTIFY(TOT,10,2)
+3 IF '$DATA(^TMP($JOB))
WRITE !!?10,"No Data for "
SET X=LRDT1P
DO DD
WRITE " - "
SET X=LRDT2P
DO DD
WRITE !!
+4 if IOST["P-"
WRITE @IOF
EXIT ;
+1 DO ^%ZISC
+2 KILL LRPG,TOT,LRDT,LRDT1,LRDT2,LRDV1,LRDV2,LRLN,^TMP($JOB),LRTXT,ZTSK,%DT,%ZIS,ZTRTN,ZTDESC,ZTIO,ZTSAVE,LRDT1P,LRDT2P,IO("Q")
+3 QUIT
QUEUE ;
+1 SET ZTRTN="DQ^LRCAPA12"
SET ZTSAVE("LRDT*")=""
SET ZTDESC="Lab Workload Division Report"
SET ZTIO=ION
+2 KILL ZTDTH,ZTCPU,ZTUCI
+3 DO ^%ZTLOAD
+4 GOTO EXIT
+5 QUIT
LOOP ;
+1 SET (LRLN,LRDV1,LRDV2,TOT)=0
SET LRDT1P=LRDT1
SET LRDT2P=LRDT2
SET LRDT1=LRDT1-.0001
SET LRDT2=LRDT2+.00001
DO DT^LRX
+2 WRITE !!
DO WAIT^DICD
if IOST["P-"
WRITE @IOF
+3 FOR
SET LRLN=$ORDER(^TMP("WL",LRLN))
if 'LRLN
QUIT
SET LRTXT=^(LRLN)
DO LOOP1
+4 DO HEADER
+5 SET LRDV1=0
FOR
SET LRDV1=$ORDER(^TMP($JOB,LRDV1))
if 'LRDV1
QUIT
DO LOOP2
+6 QUIT
LOOP1 ;
+1 IF ($EXTRACT(LRTXT,1,2)="$$")
SET LRDV2=+$EXTRACT(LRTXT,3,99)
SET LRDT=$EXTRACT(LRTXT,10,16)
QUIT
+2 IF ($EXTRACT(LRTXT,1)="$")
SET LRDV1=+$EXTRACT(LRTXT,2,99)
QUIT
+3 if 'LRDV1!('LRDV2)
QUIT
+4 IF LRDT>LRDT1
IF LRDT<LRDT2
DO DATES
SET ^TMP($JOB,LRDV1,LRDV2,"TOT WRK")=^TMP($JOB,LRDV1,LRDV2,"TOT WRK")+(+$EXTRACT(LRTXT,28,99)*(+$EXTRACT(LRTXT,34,99)))
+5 QUIT
LOOP2 ;
+1 SET LRDV2=0
FOR
SET LRDV2=$ORDER(^TMP($JOB,LRDV1,LRDV2))
if 'LRDV2
QUIT
DO LOOP3
+2 QUIT
LOOP3 ;
+1 IF IOST["P-"&($Y>(IOSL-6))
DO HEADER
+2 WRITE !,"Division: ",LRDV2
+3 SET X=^TMP($JOB,LRDV1,LRDV2,"LO DT")
WRITE ?20,"From: "
DO DD
SET X=^("HI DT")
WRITE ?35,"To: "
DO DD
+4 WRITE ?50,"Total: ",$JUSTIFY(^("TOT WRK"),10,2)
SET TOT=TOT+^("TOT WRK")
+5 QUIT
DATES ;
+1 if '$DATA(^TMP($JOB,LRDV1,LRDV2,"HI DT"))#2
DO NEW
+2 if '(LRDT<^TMP($JOB,LRDV1,LRDV2,"HI DT"))
SET ^TMP($JOB,LRDV1,LRDV2,"HI DT")=LRDT
+3 if '(LRDT>^TMP($JOB,LRDV1,LRDV2,"LO DT"))
SET ^TMP($JOB,LRDV1,LRDV2,"LO DT")=LRDT
+4 QUIT
NEW ;
+1 SET ^TMP($JOB,LRDV1,LRDV2,"HI DT")=0
+2 SET ^TMP($JOB,LRDV1,LRDV2,"LO DT")=9999999
+3 SET ^TMP($JOB,LRDV1,LRDV2,"TOT WRK")=0
+4 QUIT
+1 SET LRPG=LRPG+1
if IOST["P-"&($Y>(IOSL-6))
WRITE @IOF
WRITE !!," Lab Workload Division Report for Site: ",LRDV1," Printed: ",LRDT0,!!,?60,"Pg: ",LRPG,!
+2 QUIT
DD ;
+1 WRITE $$FMTE^XLFDT(X,"1D")
QUIT