LRULEN ;AVAMC/REG - BYTE COUNT FOR ACCESSIONS ;5/9/91  18:19 ;
 ;;5.2;LAB SERVICE;;Sep 27, 1994
 W !!?20,"Byte count for accessions"
 S DIC=68,DIC(0)="AEMOQZ",DIC("S")="I ""SPCYEM""[$P(^(0),U,2)&($P(^(0),U,2)]"""")" D ^DIC K DIC G:Y<1 END S LRAA(1)=$P(Y,U,2),LRAA=+Y,LRSS=$P(Y(0),U,2) D XR^LRU
 D B^LRU G:Y<0 END
 S ZTRTN="QUE^LRULEN" D BEG^LRUTL G:POP!($D(ZTSK)) END
QUE U IO S (C,S)=0,LRSDT=LRSDT-.0001,LRLDT=LRLDT+.9
 F LRSDT=LRSDT:0 S LRSDT=$O(^LR(LRXR,LRSDT)) Q:'LRSDT!(LRSDT>LRLDT)  F LRDFN=0:0 S LRDFN=$O(^LR(LRXR,LRSDT,LRDFN)) Q:'LRDFN  F A=0:0 S A=$O(^LR(LRXR,LRSDT,LRDFN,A)) Q:'A  D A
 W !!,"ACCESSIONS: ",S," BYTES: ",C,"  AVERAGE BYTES/ACCESSION: ",$S(C:C\S,1:0),!,"From ",LRSTR," to ",LRLST
 D END^LRUTL,END Q
A S S=S+1,C=C+$L(^LR(LRDFN,LRSS,A,0))
 I $D(^LR(LRDFN,LRSS,A,2,0)) S C=C+$L(^(0)) F T=0:0 S T=$O(^LR(LRDFN,LRSS,A,2,T)) Q:'T  S C=C+$L(^(T,0)) D M
 Q
M I $D(^LR(LRDFN,LRSS,A,2,T,2,0)) S C=C+$L(^(0)) F M=0:0 S M=$O(^LR(LRDFN,LRSS,A,2,T,2,M)) Q:'M  S C=C+$L(^(M,0)) D E
 F B=1,3,4 I $D(^LR(LRDFN,LRSS,A,2,T,B,0)) S C=C+$L(^(0)) F M=0:0 S M=$O(^LR(LRDFN,LRSS,A,2,T,B,M)) Q:'M  S C=C+$L(^(M,0))
 I $D(^LR(LRDFN,LRSS,A,2,T,5,0)) S C=C+$L(^(0)) F M=0:0 S M=$O(^LR(LRDFN,LRSS,A,2,T,5,M)) Q:'M  S C=C+$L(^(M,0)) I $D(^LR(LRDFN,LRSS,A,2,T,5,M,1,0)) S C=C+$L(^(0)) D N
 Q
E I $D(^LR(LRDFN,LRSS,A,2,T,2,M,1,0)) S C=C+$L(^(0)) F E=0:0 S E=$O(^LR(LRDFN,LRSS,A,2,T,2,M,1,E)) Q:'E  S C=C+$L(^(E,0))
 Q
N F N=0:0 S N=$O(^LR(LRDFN,LRSS,A,2,T,5,M,1,N)) Q:'N  S C=C+$L(^(0))
 Q
 ;
END D V^LRU Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRULEN   1522     printed  Sep 23, 2025@19:57:17                                                                                                                                                                                                      Page 2
LRULEN    ;AVAMC/REG - BYTE COUNT FOR ACCESSIONS ;5/9/91  18:19 ;
 +1       ;;5.2;LAB SERVICE;;Sep 27, 1994
 +2        WRITE !!?20,"Byte count for accessions"
 +3        SET DIC=68
           SET DIC(0)="AEMOQZ"
           SET DIC("S")="I ""SPCYEM""[$P(^(0),U,2)&($P(^(0),U,2)]"""")"
           DO ^DIC
           KILL DIC
           if Y<1
               GOTO END
           SET LRAA(1)=$PIECE(Y,U,2)
           SET LRAA=+Y
           SET LRSS=$PIECE(Y(0),U,2)
           DO XR^LRU
 +4        DO B^LRU
           if Y<0
               GOTO END
 +5        SET ZTRTN="QUE^LRULEN"
           DO BEG^LRUTL
           if POP!($DATA(ZTSK))
               GOTO END
QUE        USE IO
           SET (C,S)=0
           SET LRSDT=LRSDT-.0001
           SET LRLDT=LRLDT+.9
 +1        FOR LRSDT=LRSDT:0
               SET LRSDT=$ORDER(^LR(LRXR,LRSDT))
               if 'LRSDT!(LRSDT>LRLDT)
                   QUIT 
               FOR LRDFN=0:0
                   SET LRDFN=$ORDER(^LR(LRXR,LRSDT,LRDFN))
                   if 'LRDFN
                       QUIT 
                   FOR A=0:0
                       SET A=$ORDER(^LR(LRXR,LRSDT,LRDFN,A))
                       if 'A
                           QUIT 
                       DO A
 +2        WRITE !!,"ACCESSIONS: ",S," BYTES: ",C,"  AVERAGE BYTES/ACCESSION: ",$SELECT(C:C\S,1:0),!,"From ",LRSTR," to ",LRLST
 +3        DO END^LRUTL
           DO END
           QUIT 
A          SET S=S+1
           SET C=C+$LENGTH(^LR(LRDFN,LRSS,A,0))
 +1        IF $DATA(^LR(LRDFN,LRSS,A,2,0))
               SET C=C+$LENGTH(^(0))
               FOR T=0:0
                   SET T=$ORDER(^LR(LRDFN,LRSS,A,2,T))
                   if 'T
                       QUIT 
                   SET C=C+$LENGTH(^(T,0))
                   DO M
 +2        QUIT 
M          IF $DATA(^LR(LRDFN,LRSS,A,2,T,2,0))
               SET C=C+$LENGTH(^(0))
               FOR M=0:0
                   SET M=$ORDER(^LR(LRDFN,LRSS,A,2,T,2,M))
                   if 'M
                       QUIT 
                   SET C=C+$LENGTH(^(M,0))
                   DO E
 +1        FOR B=1,3,4
               IF $DATA(^LR(LRDFN,LRSS,A,2,T,B,0))
                   SET C=C+$LENGTH(^(0))
                   FOR M=0:0
                       SET M=$ORDER(^LR(LRDFN,LRSS,A,2,T,B,M))
                       if 'M
                           QUIT 
                       SET C=C+$LENGTH(^(M,0))
 +2        IF $DATA(^LR(LRDFN,LRSS,A,2,T,5,0))
               SET C=C+$LENGTH(^(0))
               FOR M=0:0
                   SET M=$ORDER(^LR(LRDFN,LRSS,A,2,T,5,M))
                   if 'M
                       QUIT 
                   SET C=C+$LENGTH(^(M,0))
                   IF $DATA(^LR(LRDFN,LRSS,A,2,T,5,M,1,0))
                       SET C=C+$LENGTH(^(0))
                       DO N
 +3        QUIT 
E          IF $DATA(^LR(LRDFN,LRSS,A,2,T,2,M,1,0))
               SET C=C+$LENGTH(^(0))
               FOR E=0:0
                   SET E=$ORDER(^LR(LRDFN,LRSS,A,2,T,2,M,1,E))
                   if 'E
                       QUIT 
                   SET C=C+$LENGTH(^(E,0))
 +1        QUIT 
N          FOR N=0:0
               SET N=$ORDER(^LR(LRDFN,LRSS,A,2,T,5,M,1,N))
               if 'N
                   QUIT 
               SET C=C+$LENGTH(^(0))
 +1        QUIT 
 +2       ;
END        DO V^LRU
           QUIT