LRUPACA ;AVAMC/REG - LAB ACC COUNTS BY LOC ;2/18/93  13:09 ;
 ;;5.2;LAB SERVICE;**503**;Sep 27, 1994;Build 11
 ;
 ;LR*5.2*503 - add variables for "inclusive dates"
 ;LRINCA = first date with data
 ;LRINCB = last date with data
 ;
 N LRINCA,LRINCB
 S (LRINCA,LRINCB)=""
 ;
 D END S DIC=68,DIC(0)="AEQMZ",DIC("S")="I ""AUCYEMSP""'[$P(^(0),U,2)&($P(^(0),U,2)]"""")" D ^DIC K DIC G:Y=-1 END S LRAA=+Y,LRAA(1)=$P(Y,U,2),LRSS=$P(Y(0),U,2)
 K T S (Z(4),T(2))=0
 W !!?20,LRAA(1)," ACCESSION COUNTS" D B^LRU G:Y<0 END
 S LRLDT=LRLDT+.99
 ;LR*5.2*503 - add handling of monthly accession areas
 S T(3)=$S($P(^LRO(68,LRAA,0),U,3)="Y":$E(LRSDT,1,3)_"0000",$P(^LRO(68,LRAA,0),U,3)="M":$E(LRSDT,1,5)_"00",1:LRSDT)
 S T(4)=$S($P(^LRO(68,LRAA,0),U,3)="Y":$E(LRLDT,1,3)_"0000",$P(^LRO(68,LRAA,0),U,3)="M":$E(LRLDT,1,5)_"00",1:LRLDT)
DEV S ZTRTN="QUE^LRUPACA" D BEG^LRUTL G:POP!($D(ZTSK)) END
 ;LR*5.2*503 change "0000" to "00" for monthly accession area as well as yearly
QUE U IO K ^TMP($J) D:IOST?1"C".E WAIT^LRU D L^LRU,S^LRU,@($S(T(3)["00":"ACY",1:"ACD"))
 S Y=$S($D(^TMP($J,"S")):^("S"),1:"") D D^LRU S LRB=Y,Y=$S($D(^TMP($J,"E")):^("E"),1:"") D D^LRU S LRE=Y
 D H1 S LR("F")=1,Q(2)=0,S=-1 F A=0:1 S S=$O(^TMP($J,"B",S)) Q:S=""!(LR("Q"))  D:$Y>(IOSL-6) H1 Q:LR("Q")  W !,S,?30,$J(^TMP($J,"B",S),5) S Q(2)=Q(2)+^(S) D T
 G:LR("Q") OUT W !?30,"-----",!,"Total Accessions: ",?30,$J(Q(2),5),?41,"Total tests: ",?70,$J(T(2),9) D H3 Q:LR("Q")
 F T=0:0 S T=$O(^TMP($J,T)) Q:'T!(LR("Q"))  D:$Y>(IOSL-6) H3 Q:LR("Q")  W !,$S($D(^LAB(60,T,0)):$P(^(0),"^"),1:T) D B Q:LR("Q")
OUT D END^LRUTL,END Q
T F T=0:0 S T=$O(^TMP($J,"B",S,T)) Q:'T!(LR("Q"))  D:$Y>(IOSL-6) H1 Q:LR("Q")  S T(1)=^TMP($J,"B",S,T) W !?41,$S($D(^LAB(60,T,0)):$P(^(0),"^"),1:T),?70,$J(T(1),9) S T(2)=T(2)+T(1)
 Q
B S V=0,S=0 F A=0:1 S S=$O(^TMP($J,T,S)) Q:S=""!(LR("Q"))  D:$Y>(IOSL-6) H3 Q:LR("Q")  S Z=^TMP($J,T,S) W !?30,S,?55,$J(Z,9) S V=V+Z W ?70,$J(V,9)
 Q
ACY S T(3)=T(3)-1,LRB=$O(^LRO(68,LRAA,1,T(3))) F I=T(3):0 S I=$O(^LRO(68,LRAA,1,I)) Q:'I!(I>T(4))  S LRSA=LRSDT-.01,^TMP($J,"S")=$O(^LRO(68,LRAA,1,I,1,"E",LRSA)) D ACY1
 Q
ACY1 S LRE="" F B=LRSA:0 S B=$O(^LRO(68,LRAA,1,I,1,"E",B)) Q:'B!(B>LRLDT)  D
 . S LRINCA=$S(LRINCA]"":LRINCA,1:B)
 . S LRINCB=B
 . S LRE=B F LRAN=0:0 S LRAN=$O(^LRO(68,LRAA,1,I,1,"E",B,LRAN)) Q:'LRAN  D AC1
 . S ^TMP($J,"E")=LRE
 Q
AC1 Q:'$D(^LRO(68,LRAA,1,I,1,LRAN,0))  Q:I'=$P(^(0),U,3)  S X=^(0),LRLLOC=$S($L($P(X,U,7)):$P(X,U,7),$P(X,U,2)=62.3:"QC--"_$P(^LAB(62.3,$P(^LR($P(X,"^"),0),U,3),0),"^"),1:"???")
 S:'$D(^TMP($J,"B",LRLLOC)) ^(LRLLOC)=0 S ^(LRLLOC)=^(LRLLOC)+1
 F T=0:0 S T=$O(^LRO(68,LRAA,1,I,1,LRAN,4,T)) Q:'T  S:'$D(^TMP($J,"B",LRLLOC,T)) ^(T)=0 S ^(T)=^(T)+1 S:'$D(^TMP($J,T,LRLLOC)) ^(LRLLOC)=0 S ^(LRLLOC)=^(LRLLOC)+1
 Q
ACD S LRE="",T(3)=T(3)-1,^TMP($J,"S")=$O(^LRO(68,LRAA,1,T(3))) F I=T(3):0 S I=$O(^LRO(68,LRAA,1,I)) Q:'I!(I>T(4))  S LRE=I F LRAN=0:0 S LRAN=$O(^LRO(68,LRAA,1,I,1,LRAN)) Q:'LRAN  D AC1
 S ^TMP($J,"E")=LRE Q
H I $D(LR("F")),IOST?1"C".E D M^LRU Q:LR("Q")
 S Y=LRINCA D D^LRU S LRINCA=Y
 S Y=LRINCB D D^LRU S LRINCB=Y
 D F^LRU W !,"LABORATORY SERVICE ",LRAA(1)," COUNTS (",LRSTR,"-",LRLST,")",!,"INCLUSIVE DATES/TIMES WITH DATA: ",LRINCA W:LRINCB]"" " TO ",LRINCB Q
H1 D H Q:LR("Q")  W !,"Location",?26,"# Accessions",?69,"Test count",!,LR("%") Q
H2 D H Q:LR("Q")  W !,S Q
H3 D H Q:LR("Q")  W !,"Test",?35,"Location",?55,"Test count",?70,"Cum count",!,LR("%") Q
 ;
END D V^LRU Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRUPACA   3447     printed  Sep 23, 2025@19:57:33                                                                                                                                                                                                     Page 2
LRUPACA   ;AVAMC/REG - LAB ACC COUNTS BY LOC ;2/18/93  13:09 ;
 +1       ;;5.2;LAB SERVICE;**503**;Sep 27, 1994;Build 11
 +2       ;
 +3       ;LR*5.2*503 - add variables for "inclusive dates"
 +4       ;LRINCA = first date with data
 +5       ;LRINCB = last date with data
 +6       ;
 +7        NEW LRINCA,LRINCB
 +8        SET (LRINCA,LRINCB)=""
 +9       ;
 +10       DO END
           SET DIC=68
           SET DIC(0)="AEQMZ"
           SET DIC("S")="I ""AUCYEMSP""'[$P(^(0),U,2)&($P(^(0),U,2)]"""")"
           DO ^DIC
           KILL DIC
           if Y=-1
               GOTO END
           SET LRAA=+Y
           SET LRAA(1)=$PIECE(Y,U,2)
           SET LRSS=$PIECE(Y(0),U,2)
 +11       KILL T
           SET (Z(4),T(2))=0
 +12       WRITE !!?20,LRAA(1)," ACCESSION COUNTS"
           DO B^LRU
           if Y<0
               GOTO END
 +13       SET LRLDT=LRLDT+.99
 +14      ;LR*5.2*503 - add handling of monthly accession areas
 +15       SET T(3)=$SELECT($PIECE(^LRO(68,LRAA,0),U,3)="Y":$EXTRACT(LRSDT,1,3)_"0000",$PIECE(^LRO(68,LRAA,0),U,3)="M":$EXTRACT(LRSDT,1,5)_"00",1:LRSDT)
 +16       SET T(4)=$SELECT($PIECE(^LRO(68,LRAA,0),U,3)="Y":$EXTRACT(LRLDT,1,3)_"0000",$PIECE(^LRO(68,LRAA,0),U,3)="M":$EXTRACT(LRLDT,1,5)_"00",1:LRLDT)
DEV        SET ZTRTN="QUE^LRUPACA"
           DO BEG^LRUTL
           if POP!($DATA(ZTSK))
               GOTO END
 +1       ;LR*5.2*503 change "0000" to "00" for monthly accession area as well as yearly
QUE        USE IO
           KILL ^TMP($JOB)
           if IOST?1"C".E
               DO WAIT^LRU
           DO L^LRU
           DO S^LRU
           DO @($SELECT(T(3)["00":"ACY",1:"ACD"))
 +1        SET Y=$SELECT($DATA(^TMP($JOB,"S")):^("S"),1:"")
           DO D^LRU
           SET LRB=Y
           SET Y=$SELECT($DATA(^TMP($JOB,"E")):^("E"),1:"")
           DO D^LRU
           SET LRE=Y
 +2        DO H1
           SET LR("F")=1
           SET Q(2)=0
           SET S=-1
           FOR A=0:1
               SET S=$ORDER(^TMP($JOB,"B",S))
               if S=""!(LR("Q"))
                   QUIT 
               if $Y>(IOSL-6)
                   DO H1
               if LR("Q")
                   QUIT 
               WRITE !,S,?30,$JUSTIFY(^TMP($JOB,"B",S),5)
               SET Q(2)=Q(2)+^(S)
               DO T
 +3        if LR("Q")
               GOTO OUT
           WRITE !?30,"-----",!,"Total Accessions: ",?30,$JUSTIFY(Q(2),5),?41,"Total tests: ",?70,$JUSTIFY(T(2),9)
           DO H3
           if LR("Q")
               QUIT 
 +4        FOR T=0:0
               SET T=$ORDER(^TMP($JOB,T))
               if 'T!(LR("Q"))
                   QUIT 
               if $Y>(IOSL-6)
                   DO H3
               if LR("Q")
                   QUIT 
               WRITE !,$SELECT($DATA(^LAB(60,T,0)):$PIECE(^(0),"^"),1:T)
               DO B
               if LR("Q")
                   QUIT 
OUT        DO END^LRUTL
           DO END
           QUIT 
T          FOR T=0:0
               SET T=$ORDER(^TMP($JOB,"B",S,T))
               if 'T!(LR("Q"))
                   QUIT 
               if $Y>(IOSL-6)
                   DO H1
               if LR("Q")
                   QUIT 
               SET T(1)=^TMP($JOB,"B",S,T)
               WRITE !?41,$SELECT($DATA(^LAB(60,T,0)):$PIECE(^(0),"^"),1:T),?70,$JUSTIFY(T(1),9)
               SET T(2)=T(2)+T(1)
 +1        QUIT 
B          SET V=0
           SET S=0
           FOR A=0:1
               SET S=$ORDER(^TMP($JOB,T,S))
               if S=""!(LR("Q"))
                   QUIT 
               if $Y>(IOSL-6)
                   DO H3
               if LR("Q")
                   QUIT 
               SET Z=^TMP($JOB,T,S)
               WRITE !?30,S,?55,$JUSTIFY(Z,9)
               SET V=V+Z
               WRITE ?70,$JUSTIFY(V,9)
 +1        QUIT 
ACY        SET T(3)=T(3)-1
           SET LRB=$ORDER(^LRO(68,LRAA,1,T(3)))
           FOR I=T(3):0
               SET I=$ORDER(^LRO(68,LRAA,1,I))
               if 'I!(I>T(4))
                   QUIT 
               SET LRSA=LRSDT-.01
               SET ^TMP($JOB,"S")=$ORDER(^LRO(68,LRAA,1,I,1,"E",LRSA))
               DO ACY1
 +1        QUIT 
ACY1       SET LRE=""
           FOR B=LRSA:0
               SET B=$ORDER(^LRO(68,LRAA,1,I,1,"E",B))
               if 'B!(B>LRLDT)
                   QUIT 
               Begin DoDot:1
 +1                SET LRINCA=$SELECT(LRINCA]"":LRINCA,1:B)
 +2                SET LRINCB=B
 +3                SET LRE=B
                   FOR LRAN=0:0
                       SET LRAN=$ORDER(^LRO(68,LRAA,1,I,1,"E",B,LRAN))
                       if 'LRAN
                           QUIT 
                       DO AC1
 +4                SET ^TMP($JOB,"E")=LRE
               End DoDot:1
 +5        QUIT 
AC1        if '$DATA(^LRO(68,LRAA,1,I,1,LRAN,0))
               QUIT 
           if I'=$PIECE(^(0),U,3)
               QUIT 
           SET X=^(0)
           SET LRLLOC=$SELECT($LENGTH($PIECE(X,U,7)):$PIECE(X,U,7),$PIECE(X,U,2)=62.3:"QC--"_$PIECE(^LAB(62.3,$PIECE(^LR($PIECE(X,"^"),0),U,3),0),"^"),1:"???")
 +1        if '$DATA(^TMP($JOB,"B",LRLLOC))
               SET ^(LRLLOC)=0
           SET ^(LRLLOC)=^(LRLLOC)+1
 +2        FOR T=0:0
               SET T=$ORDER(^LRO(68,LRAA,1,I,1,LRAN,4,T))
               if 'T
                   QUIT 
               if '$DATA(^TMP($JOB,"B",LRLLOC,T))
                   SET ^(T)=0
               SET ^(T)=^(T)+1
               if '$DATA(^TMP($JOB,T,LRLLOC))
                   SET ^(LRLLOC)=0
               SET ^(LRLLOC)=^(LRLLOC)+1
 +3        QUIT 
ACD        SET LRE=""
           SET T(3)=T(3)-1
           SET ^TMP($JOB,"S")=$ORDER(^LRO(68,LRAA,1,T(3)))
           FOR I=T(3):0
               SET I=$ORDER(^LRO(68,LRAA,1,I))
               if 'I!(I>T(4))
                   QUIT 
               SET LRE=I
               FOR LRAN=0:0
                   SET LRAN=$ORDER(^LRO(68,LRAA,1,I,1,LRAN))
                   if 'LRAN
                       QUIT 
                   DO AC1
 +1        SET ^TMP($JOB,"E")=LRE
           QUIT 
H          IF $DATA(LR("F"))
               IF IOST?1"C".E
                   DO M^LRU
                   if LR("Q")
                       QUIT 
 +1        SET Y=LRINCA
           DO D^LRU
           SET LRINCA=Y
 +2        SET Y=LRINCB
           DO D^LRU
           SET LRINCB=Y
 +3        DO F^LRU
           WRITE !,"LABORATORY SERVICE ",LRAA(1)," COUNTS (",LRSTR,"-",LRLST,")",!,"INCLUSIVE DATES/TIMES WITH DATA: ",LRINCA
           if LRINCB]""
               WRITE " TO ",LRINCB
           QUIT 
H1         DO H
           if LR("Q")
               QUIT 
           WRITE !,"Location",?26,"# Accessions",?69,"Test count",!,LR("%")
           QUIT 
H2         DO H
           if LR("Q")
               QUIT 
           WRITE !,S
           QUIT 
H3         DO H
           if LR("Q")
               QUIT 
           WRITE !,"Test",?35,"Location",?55,"Test count",?70,"Cum count",!,LR("%")
           QUIT 
 +1       ;
END        DO V^LRU
           QUIT