LRWRKS ;SLC/RWF - WORK SHEET ACCESSION LIST ;2/19/91  11:48 ;
 ;;5.2;LAB SERVICE;**153,358**;Sep 27, 1994
 K DIC S DIC="^LRO(68,",DIC(0)="AEMOQ",LREND=0 D ^DIC S LRAA=+Y,LRNAME=$P(Y,U,2) G END:LRAA<1
 K LRSTAR,DIC D STAR^LRWU3:$P(^LRO(68,LRAA,0),U,3)="Y",PHD:'$D(LRSTAR) G END:LREND
W G END:'$D(^LRO(68,LRAA,1,LRAD,1,0))&'$D(LRSTAR)
 S LRUNC=0,LRTSE=-1
 K DIC W !,"Do you want a specific test?" S %=2 D YN^DICN IF %=1 S DIC="^LAB(60,",DIC(0)="AEMOQ" D ^DIC S LRTSE=+Y
 W !,"Do you want only incomplete entries?" S %=1 D YN^DICN S:%=2 LRUNC=1
 W !,"Do you want a long list?" S %=2 D YN^DICN S LRSHORT=(%=2)
 S %ZIS="Q" D ^%ZIS G END:POP
 I $D(IO("Q")) K IO("Q") S ZTRTN="DQ^LRWRKS" S ZTSAVE("LR*")="",ZTSAVE("LAST")="" D ^%ZTLOAD G END
 D ENT G END
ENT U IO D URG^LRX S Y=DT D DD^LRX S LRDT0=Y,LRDC=1,LRLINE="---------------------------------------"
 I '$D(LRSTAR) S LRAN=LRFAN-1 F LRIX=0:0 S LRAN=$O(^LRO(68,LRAA,1,LRAD,1,LRAN)),LREND=0 Q:LRAN>LRLAN!(LRAN<1)  D ACC
 I $D(LRSTAR) F A=0:0 S LRAD=$O(^LRO(68,LRAA,1,LRAD)) Q:LRAD<1!(LRAD>LRWDTL)  D AC
 Q
ACC D TD IF 'LREND,K1 D:LRUNC!'LRVER ENT^LRWRKS2
 Q
TD S:'$D(^LRO(68,LRAA,1,LRAD,1,LRAN,0)) LREND=1 Q:LREND  S LRSN=+$P(^(0),U,5),LRDAT=+$P(^(0),U,4)
 S LRVER=1,K1=0,I=0 F  S I=$O(^LRO(68,LRAA,1,LRAD,1,LRAN,4,I)) Q:I<.5  S LRVER=(LRVER&$P(^(I,0),U,5)) I 'K1,LRTSE>0,+^(0)=LRTSE S K1=I
 S K1=$S(LRTSE<0:1,1:K1) Q
 Q
PHD Q:LREND  S LREND=0,U="^" D ADATE^LRWU Q:LREND  D LRAN^LRWU3 Q
 Q
AC S LRTK=LRSTAR-.00001 F B=0:0 S LRTK=$O(^LRO(68,LRAA,1,LRAD,1,"E",LRTK)) Q:LRTK<1!(LAST>1&(LRTK\1>LAST))  D AC1
 Q
AC1 S LRAN=0 F  S LRAN=$O(^LRO(68,LRAA,1,LRAD,1,"E",LRTK,LRAN)) Q:LRAN<1  I $D(^LRO(68,LRAA,1,LRAD,1,LRAN,0)) D ACC
 Q
% R %:DTIME Q:%=""!(%["N")!(%["Y")  W !,"Answer 'Y' or 'N': " G %
END W !! W:$E(IOST)="P" @IOF D ^%ZISC K ZTRTN,ZTIO,ZTDESC,ZTSAVE,%H,%ZIS,DFN,J,LRDFN,LRDOC,LREDT,LRSDT,LRCDT,LRUID
 K %,A,B,I,K,K1,L,LRACC,LRSPEC,LRURG,SEX,SSN,X,Y,DIC,LRUNC,LRDAT,LRAA,LRAD,LRAN,LRDPF,LRSN,LRSTAR,LRSHORT,LAST,PNM,ZTSK,LRDC,LRIDT,LRLLOC,LRODNUM,LRTK,LRV,LRWDTL,POP,T
 K LRTSTS,LRLAN,LREND,LRLINE,LRFAN,LRFI,LRIX,LRNAME,LRTSE,LRVER,VA("BID"),VA("PID")
 Q
EN ;
DQ U IO S U="^" D ENT S:$D(ZTQUEUED) ZTREQ="@" G END
ALLUNC W !,"LIST ALL UNVERIFIED TEST's for one day",! D ADATE^LRWU3 G END:LREND S %ZIS="Q" D ^%ZIS G END:POP
 I $D(IO("Q")) K IO("Q") S ZTRTN="ALL^LRWRKS",ZTSAVE("LRAD")="" D ^%ZTLOAD G END
ALL S U="^",LRUNC=0,LRTSE=-1,LRFAN=1,LRLAN=999999,LRSHORT=1
 F LRAA=0:0 S LRAA=$O(^LRO(68,LRAA)) Q:LRAA'>0  S LRAD(1)=LRAD,LRDC=1 D AL2
 S:$D(ZTQUEUED) ZTREQ="@" G END
AL2 K LRSTAR S LAST=LRAD+.99 S LRNAME=$P(^LRO(68,LRAA,0),U,1) I $P(^(0),U,3)="Y" S LRSTAR=LRAD,LRWDTL=$E(LRAD,1,3)_"0000",LRAD=LRWDTL-10000
 D ENT S LRAD=LRAD(1) Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRWRKS   2730     printed  Sep 23, 2025@19:58:52                                                                                                                                                                                                      Page 2
LRWRKS    ;SLC/RWF - WORK SHEET ACCESSION LIST ;2/19/91  11:48 ;
 +1       ;;5.2;LAB SERVICE;**153,358**;Sep 27, 1994
 +2        KILL DIC
           SET DIC="^LRO(68,"
           SET DIC(0)="AEMOQ"
           SET LREND=0
           DO ^DIC
           SET LRAA=+Y
           SET LRNAME=$PIECE(Y,U,2)
           if LRAA<1
               GOTO END
 +3        KILL LRSTAR,DIC
           if $PIECE(^LRO(68,LRAA,0),U,3)="Y"
               DO STAR^LRWU3
           if '$DATA(LRSTAR)
               DO PHD
           if LREND
               GOTO END
W          if '$DATA(^LRO(68,LRAA,1,LRAD,1,0))&'$DATA(LRSTAR)
               GOTO END
 +1        SET LRUNC=0
           SET LRTSE=-1
 +2        KILL DIC
           WRITE !,"Do you want a specific test?"
           SET %=2
           DO YN^DICN
           IF %=1
               SET DIC="^LAB(60,"
               SET DIC(0)="AEMOQ"
               DO ^DIC
               SET LRTSE=+Y
 +3        WRITE !,"Do you want only incomplete entries?"
           SET %=1
           DO YN^DICN
           if %=2
               SET LRUNC=1
 +4        WRITE !,"Do you want a long list?"
           SET %=2
           DO YN^DICN
           SET LRSHORT=(%=2)
 +5        SET %ZIS="Q"
           DO ^%ZIS
           if POP
               GOTO END
 +6        IF $DATA(IO("Q"))
               KILL IO("Q")
               SET ZTRTN="DQ^LRWRKS"
               SET ZTSAVE("LR*")=""
               SET ZTSAVE("LAST")=""
               DO ^%ZTLOAD
               GOTO END
 +7        DO ENT
           GOTO END
ENT        USE IO
           DO URG^LRX
           SET Y=DT
           DO DD^LRX
           SET LRDT0=Y
           SET LRDC=1
           SET LRLINE="---------------------------------------"
 +1        IF '$DATA(LRSTAR)
               SET LRAN=LRFAN-1
               FOR LRIX=0:0
                   SET LRAN=$ORDER(^LRO(68,LRAA,1,LRAD,1,LRAN))
                   SET LREND=0
                   if LRAN>LRLAN!(LRAN<1)
                       QUIT 
                   DO ACC
 +2        IF $DATA(LRSTAR)
               FOR A=0:0
                   SET LRAD=$ORDER(^LRO(68,LRAA,1,LRAD))
                   if LRAD<1!(LRAD>LRWDTL)
                       QUIT 
                   DO AC
 +3        QUIT 
ACC        DO TD
           IF 'LREND
               IF K1
                   if LRUNC!'LRVER
                       DO ENT^LRWRKS2
 +1        QUIT 
TD         if '$DATA(^LRO(68,LRAA,1,LRAD,1,LRAN,0))
               SET LREND=1
           if LREND
               QUIT 
           SET LRSN=+$PIECE(^(0),U,5)
           SET LRDAT=+$PIECE(^(0),U,4)
 +1        SET LRVER=1
           SET K1=0
           SET I=0
           FOR 
               SET I=$ORDER(^LRO(68,LRAA,1,LRAD,1,LRAN,4,I))
               if I<.5
                   QUIT 
               SET LRVER=(LRVER&$PIECE(^(I,0),U,5))
               IF 'K1
                   IF LRTSE>0
                       IF +^(0)=LRTSE
                           SET K1=I
 +2        SET K1=$SELECT(LRTSE<0:1,1:K1)
           QUIT 
 +3        QUIT 
PHD        if LREND
               QUIT 
           SET LREND=0
           SET U="^"
           DO ADATE^LRWU
           if LREND
               QUIT 
           DO LRAN^LRWU3
           QUIT 
 +1        QUIT 
AC         SET LRTK=LRSTAR-.00001
           FOR B=0:0
               SET LRTK=$ORDER(^LRO(68,LRAA,1,LRAD,1,"E",LRTK))
               if LRTK<1!(LAST>1&(LRTK\1>LAST))
                   QUIT 
               DO AC1
 +1        QUIT 
AC1        SET LRAN=0
           FOR 
               SET LRAN=$ORDER(^LRO(68,LRAA,1,LRAD,1,"E",LRTK,LRAN))
               if LRAN<1
                   QUIT 
               IF $DATA(^LRO(68,LRAA,1,LRAD,1,LRAN,0))
                   DO ACC
 +1        QUIT 
%          READ %:DTIME
           if %=""!(%["N")!(%["Y")
               QUIT 
           WRITE !,"Answer 'Y' or 'N': "
           GOTO %
END        WRITE !!
           if $EXTRACT(IOST)="P"
               WRITE @IOF
           DO ^%ZISC
           KILL ZTRTN,ZTIO,ZTDESC,ZTSAVE,%H,%ZIS,DFN,J,LRDFN,LRDOC,LREDT,LRSDT,LRCDT,LRUID
 +1        KILL %,A,B,I,K,K1,L,LRACC,LRSPEC,LRURG,SEX,SSN,X,Y,DIC,LRUNC,LRDAT,LRAA,LRAD,LRAN,LRDPF,LRSN,LRSTAR,LRSHORT,LAST,PNM,ZTSK,LRDC,LRIDT,LRLLOC,LRODNUM,LRTK,LRV,LRWDTL,POP,T
 +2        KILL LRTSTS,LRLAN,LREND,LRLINE,LRFAN,LRFI,LRIX,LRNAME,LRTSE,LRVER,VA("BID"),VA("PID")
 +3        QUIT 
EN        ;
DQ         USE IO
           SET U="^"
           DO ENT
           if $DATA(ZTQUEUED)
               SET ZTREQ="@"
           GOTO END
ALLUNC     WRITE !,"LIST ALL UNVERIFIED TEST's for one day",!
           DO ADATE^LRWU3
           if LREND
               GOTO END
           SET %ZIS="Q"
           DO ^%ZIS
           if POP
               GOTO END
 +1        IF $DATA(IO("Q"))
               KILL IO("Q")
               SET ZTRTN="ALL^LRWRKS"
               SET ZTSAVE("LRAD")=""
               DO ^%ZTLOAD
               GOTO END
ALL        SET U="^"
           SET LRUNC=0
           SET LRTSE=-1
           SET LRFAN=1
           SET LRLAN=999999
           SET LRSHORT=1
 +1        FOR LRAA=0:0
               SET LRAA=$ORDER(^LRO(68,LRAA))
               if LRAA'>0
                   QUIT 
               SET LRAD(1)=LRAD
               SET LRDC=1
               DO AL2
 +2        if $DATA(ZTQUEUED)
               SET ZTREQ="@"
           GOTO END
AL2        KILL LRSTAR
           SET LAST=LRAD+.99
           SET LRNAME=$PIECE(^LRO(68,LRAA,0),U,1)
           IF $PIECE(^(0),U,3)="Y"
               SET LRSTAR=LRAD
               SET LRWDTL=$EXTRACT(LRAD,1,3)_"0000"
               SET LRAD=LRWDTL-10000
 +1        DO ENT
           SET LRAD=LRAD(1)
           QUIT