LRACS ;SLC/DCM - DAILY LAB SUMMARY REPORTS ;2/19/91  10:18 ;
 ;;5.2;LAB SERVICE;**201**;Sep 27, 1994
 K X2 D:$D(ZTQUEUED) DQ U IO W @IOF
 S LRDT=$P(^LAB(64.5,1,0),U,3) Q:LRDT=""  S LRLDT=$S('$L($P(^LAB(64.5,1,0),U,7)):LRDT,1:$P(^LAB(64.5,1,0),U,7))
 S LRFUL=0 F  S LRFUL=$O(^LAB(64.5,1,2,LRFUL)) Q:LRFUL<1  K ^TMP($J) S LRFULL=LRFUL D LRFULL
END D:$D(ZTQUEUED) DQ S LRDT=$P(^LAB(64.5,1,0),U,3) Q:LRDT=""  S LRLDT=$S('$L($P(^LAB(64.5,1,0),U,7)):LRDT,1:$P(^LAB(64.5,1,0),U,7)) D ^LRACS3
 D KILL,^%ZISC
 K LRFULL,LRFUL,^TMP($J) Q
MANUAL K X2,IO("Q") S %ZIS="QM" D ^%ZIS Q:POP  U IO(0) K LRALL
M1 W !,"Print ALL Supervisor Reports" S %=2 D YN^DICN G M1:%=0 Q:%<0  S:%=1 LRALL=1
 I '$D(LRALL) S DIC="^LAB(64.5,1,2,",DIC(0)="AEMQ" D ^DIC S LRFULL=+Y I Y<1 D PREEND Q:%<0
 S ZTRTN=$S($D(LRALL):"^LRACS",$D(LRMISC):"END^LRACS",1:"LRFULL^LRACS")
 I $D(IO("Q")) K IO("Q") S ZTDESC="Lab supervisors summary" F I="LR*","U","DT" S ZTSAVE(I)=""
 I  D ^%ZTLOAD K ZTRTN,ZTIO,ZTDESC,ZTSAVE,ZTSK Q
 U IO
 D @ZTRTN
 D ^%ZISC K ^TMP($J) Q
LRFULL D:$D(ZTQUEUED) DQ Q:LRFULL<1  S LRLTR=$P(^LAB(64.5,1,2,LRFULL,0),U,1) D ^LRLTR
 S LRDT=$P(^LAB(64.5,1,0),U,3) Q:LRDT=""  S LRLDT=$S('$L($P(^LAB(64.5,1,0),U,7)):LRDT,1:$P(^LAB(64.5,1,0),U,7))
 S LRCLUS="" S LRNEX=0 F  S LRNEX=$O(^LAB(64.5,1,2,LRFULL,1,LRNEX)) Q:LRNEX<1  S LRCLUS=LRCLUS_U_^(LRNEX,0)
CL2 ;
QUE ;
 S U="^",LRBOT=$P(^LAB(64.5,1,0),U,2),LRTD=$P(^(1,0),U,3)
 W @IOF W "Reporting Period: " S Y=LRLDT S Y=$$Y2K^LRX(Y) W Y,"  to  " S Y=LRDT S Y=$$Y2K^LRX(Y) W Y,!
 S LRIDT=0,LRRE=0,LRLLOC="",LRAG=0 D DT^LRX S LRCDT=LRDT0
ENT K LRMIC S LRXLR="LRAC",LRLLOC=-1,LRSORT=$S($D(^LAB(64.5,1,4)):$P(^(4),U,1),1:"") I '$D(^TMP($J,LRDT,"NOKILL")) K ^TMP($J) S ^TMP($J,LRDT,"NOKILL")="" DO LRLLOC
 D:LRSORT SORT^LRACS2 W @IOF D KILL Q
LRLLOC F LRIM=0:0 S LRLLOC=$O(^LRO(69,LRDT,1,"AR",LRLLOC)) Q:LRLLOC=""  S LRNM=-1,LRSTART=0 D:'LRSORT EQUALS^LRX W:'LRSORT !,?15,"*** "_LRLLOC_" ***" D LRNM
 Q
LRNM F J=0:0 S LRNM=$O(^LRO(69,LRDT,1,"AR",LRLLOC,LRNM)) Q:LRNM=""  D LRDFN
 Q
LRDFN S LRIDT=0,LRDFN=0 F  S LRDFN=$O(^LRO(69,LRDT,1,"AR",LRLLOC,LRNM,LRDFN)) Q:LRDFN<1  Q:$D(^LR(LRDFN,0))[0  S LRIL=0,LRNAME=0,LRPG=1,LRAG=0,LRYESCOM=0 S:LRSORT ^TMP($J,LRNM,LRDFN)=LRLLOC D:'LRSORT LRMH^LRACS1
 Q
PREEND K LRMISC W !!,"DO YOU WANT TO PRINT THE MISCELLANEOUS REPORT" S %=2 D YN^DICN G PREEND:%=0 Q:%<0  I %=1 S LRMISC=1 Q
 Q
DQ S:$D(ZTQUEUED) ZTREQ="@" Q
KILL K I,J,K,LRACT,LRAG,LRALL,LRBOT,LRCDT,LRCLUS,LRCTR,LRCW,LRDP,LRF,LRFALT,LRFDT,LRFFDT,LRFMT,LRHOLD,LRII,LRIM,LRIP,LRIQ,LRIT,LRJS,LRFDT,LRLFDT,LRMH,LRMHN,LRMOM,LRNEX,LRNP,LROSH,LRPL,LRRE,LRSH,LRSHD,LRSHN,LRSTART,LRTD,LRTLOC,LRTOM,LRTOPP
 K LRTOT,LRTS,LRAG,LRCL,LRDFN,LRDT,LRFULL,LRIDT,LRIL,LRLDT,LRLLOC,LRNAME,LRNM,LRPG,LRSORT,LRVDT,LRYESCOM,ZTRTN,AGE,LRHI,LRLO,LRLTR,LRMIT,LRSPE,LRSPEM,LRTEST,LRTIM,LRUDT,LRUNT,X3,ZTDESC,ZTIO
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRACS   2840     printed  Sep 23, 2025@19:42:11                                                                                                                                                                                                       Page 2
LRACS     ;SLC/DCM - DAILY LAB SUMMARY REPORTS ;2/19/91  10:18 ;
 +1       ;;5.2;LAB SERVICE;**201**;Sep 27, 1994
 +2        KILL X2
           if $DATA(ZTQUEUED)
               DO DQ
           USE IO
           WRITE @IOF
 +3        SET LRDT=$PIECE(^LAB(64.5,1,0),U,3)
           if LRDT=""
               QUIT 
           SET LRLDT=$SELECT('$LENGTH($PIECE(^LAB(64.5,1,0),U,7)):LRDT,1:$PIECE(^LAB(64.5,1,0),U,7))
 +4        SET LRFUL=0
           FOR 
               SET LRFUL=$ORDER(^LAB(64.5,1,2,LRFUL))
               if LRFUL<1
                   QUIT 
               KILL ^TMP($JOB)
               SET LRFULL=LRFUL
               DO LRFULL
END        if $DATA(ZTQUEUED)
               DO DQ
           SET LRDT=$PIECE(^LAB(64.5,1,0),U,3)
           if LRDT=""
               QUIT 
           SET LRLDT=$SELECT('$LENGTH($PIECE(^LAB(64.5,1,0),U,7)):LRDT,1:$PIECE(^LAB(64.5,1,0),U,7))
           DO ^LRACS3
 +1        DO KILL
           DO ^%ZISC
 +2        KILL LRFULL,LRFUL,^TMP($JOB)
           QUIT 
MANUAL     KILL X2,IO("Q")
           SET %ZIS="QM"
           DO ^%ZIS
           if POP
               QUIT 
           USE IO(0)
           KILL LRALL
M1         WRITE !,"Print ALL Supervisor Reports"
           SET %=2
           DO YN^DICN
           if %=0
               GOTO M1
           if %<0
               QUIT 
           if %=1
               SET LRALL=1
 +1        IF '$DATA(LRALL)
               SET DIC="^LAB(64.5,1,2,"
               SET DIC(0)="AEMQ"
               DO ^DIC
               SET LRFULL=+Y
               IF Y<1
                   DO PREEND
                   if %<0
                       QUIT 
 +2        SET ZTRTN=$SELECT($DATA(LRALL):"^LRACS",$DATA(LRMISC):"END^LRACS",1:"LRFULL^LRACS")
 +3        IF $DATA(IO("Q"))
               KILL IO("Q")
               SET ZTDESC="Lab supervisors summary"
               FOR I="LR*","U","DT"
                   SET ZTSAVE(I)=""
 +4       IF $TEST
               DO ^%ZTLOAD
               KILL ZTRTN,ZTIO,ZTDESC,ZTSAVE,ZTSK
               QUIT 
 +5        USE IO
 +6        DO @ZTRTN
 +7        DO ^%ZISC
           KILL ^TMP($JOB)
           QUIT 
LRFULL     if $DATA(ZTQUEUED)
               DO DQ
           if LRFULL<1
               QUIT 
           SET LRLTR=$PIECE(^LAB(64.5,1,2,LRFULL,0),U,1)
           DO ^LRLTR
 +1        SET LRDT=$PIECE(^LAB(64.5,1,0),U,3)
           if LRDT=""
               QUIT 
           SET LRLDT=$SELECT('$LENGTH($PIECE(^LAB(64.5,1,0),U,7)):LRDT,1:$PIECE(^LAB(64.5,1,0),U,7))
 +2        SET LRCLUS=""
           SET LRNEX=0
           FOR 
               SET LRNEX=$ORDER(^LAB(64.5,1,2,LRFULL,1,LRNEX))
               if LRNEX<1
                   QUIT 
               SET LRCLUS=LRCLUS_U_^(LRNEX,0)
CL2       ;
QUE       ;
 +1        SET U="^"
           SET LRBOT=$PIECE(^LAB(64.5,1,0),U,2)
           SET LRTD=$PIECE(^(1,0),U,3)
 +2        WRITE @IOF
           WRITE "Reporting Period: "
           SET Y=LRLDT
           SET Y=$$Y2K^LRX(Y)
           WRITE Y,"  to  "
           SET Y=LRDT
           SET Y=$$Y2K^LRX(Y)
           WRITE Y,!
 +3        SET LRIDT=0
           SET LRRE=0
           SET LRLLOC=""
           SET LRAG=0
           DO DT^LRX
           SET LRCDT=LRDT0
ENT        KILL LRMIC
           SET LRXLR="LRAC"
           SET LRLLOC=-1
           SET LRSORT=$SELECT($DATA(^LAB(64.5,1,4)):$PIECE(^(4),U,1),1:"")
           IF '$DATA(^TMP($JOB,LRDT,"NOKILL"))
               KILL ^TMP($JOB)
               SET ^TMP($JOB,LRDT,"NOKILL")=""
               DO LRLLOC
 +1        if LRSORT
               DO SORT^LRACS2
           WRITE @IOF
           DO KILL
           QUIT 
LRLLOC     FOR LRIM=0:0
               SET LRLLOC=$ORDER(^LRO(69,LRDT,1,"AR",LRLLOC))
               if LRLLOC=""
                   QUIT 
               SET LRNM=-1
               SET LRSTART=0
               if 'LRSORT
                   DO EQUALS^LRX
               if 'LRSORT
                   WRITE !,?15,"*** "_LRLLOC_" ***"
               DO LRNM
 +1        QUIT 
LRNM       FOR J=0:0
               SET LRNM=$ORDER(^LRO(69,LRDT,1,"AR",LRLLOC,LRNM))
               if LRNM=""
                   QUIT 
               DO LRDFN
 +1        QUIT 
LRDFN      SET LRIDT=0
           SET LRDFN=0
           FOR 
               SET LRDFN=$ORDER(^LRO(69,LRDT,1,"AR",LRLLOC,LRNM,LRDFN))
               if LRDFN<1
                   QUIT 
               if $DATA(^LR(LRDFN,0))[0
                   QUIT 
               SET LRIL=0
               SET LRNAME=0
               SET LRPG=1
               SET LRAG=0
               SET LRYESCOM=0
               if LRSORT
                   SET ^TMP($JOB,LRNM,LRDFN)=LRLLOC
               if 'LRSORT
                   DO LRMH^LRACS1
 +1        QUIT 
PREEND     KILL LRMISC
           WRITE !!,"DO YOU WANT TO PRINT THE MISCELLANEOUS REPORT"
           SET %=2
           DO YN^DICN
           if %=0
               GOTO PREEND
           if %<0
               QUIT 
           IF %=1
               SET LRMISC=1
               QUIT 
 +1        QUIT 
DQ         if $DATA(ZTQUEUED)
               SET ZTREQ="@"
           QUIT 
KILL       KILL I,J,K,LRACT,LRAG,LRALL,LRBOT,LRCDT,LRCLUS,LRCTR,LRCW,LRDP,LRF,LRFALT,LRFDT,LRFFDT,LRFMT,LRHOLD,LRII,LRIM,LRIP,LRIQ,LRIT,LRJS,LRFDT,LRLFDT,LRMH,LRMHN,LRMOM,LRNEX,LRNP,LROSH,LRPL,LRRE,LRSH,LRSHD,LRSHN,LRSTART,LRTD,LRTLOC,LRTOM,LRTOPP
 +1        KILL LRTOT,LRTS,LRAG,LRCL,LRDFN,LRDT,LRFULL,LRIDT,LRIL,LRLDT,LRLLOC,LRNAME,LRNM,LRPG,LRSORT,LRVDT,LRYESCOM,ZTRTN,AGE,LRHI,LRLO,LRLTR,LRMIT,LRSPE,LRSPEM,LRTEST,LRTIM,LRUDT,LRUNT,X3,ZTDESC,ZTIO
 +2        QUIT