LRAC4 ;SLC/DCM - PRINT CUMULATIVE REPORT ; 5/16/88  10:49 ;
 ;;5.2;LAB SERVICE;**201**;Sep 27, 1994
BS1 S ^TMP($J,"TY",K,"L")=$P(Z,U,2),^TMP($J,"K",LRSH,LRFDT,0)=LRSH_U_$P(Z,U,1)_U_$P(Z,U,5),LRTT=LRTT+1 S ^TMP($J,"Y2K",K)=$E($P($P($$Y2K^LRX(LRFDT),"."),"/",3),1,4)
 S:LRFDT>LRLFDT LRLFDT=LRFDT D IA,UDT^LRAC3 S ^TMP($J,"TY",K,0)=$P(LRUDT," ",1),^TMP($J,"TY",K,"T")=$P(LRUDT," ",2)
 ;
 ;
 ;
 ;
 F J=1:1:LRSHD I $D(I(J)) S:$D(^LAC(LRXLR,LRDFN,1,LRMH,1,LRSH,1,LRFDT,1,I(J),0)) T1=$P(^(0),U,1,2),T3=$P(^(0),U,3),^TMP($J,"TY",K,J)=T1,^TMP($J,"K",LRSH,LRFDT,LRKL)=T3,LRKL=LRKL+1 D BS3
 K T1,T3 Q
BS3 S:$D(^LAC(LRXLR,LRDFN,1,LRMH,1,LRSH,1,LRFDT,"TX"))&'$D(LRTX(LRTT)) LRTX(LRTT)=LRFDT
 Q
BS2 S X=$S($D(^TMP($J,"TY",J,I)):$P(^(I),U,1),1:""),X1=$S($L(X):$P(^(I),U,2),1:""),LRDP=$S($D(^TMP($J,"TY",I,"D")):^("D"),1:""),LRCL=LRCL+10
 Q
BS4 F J=0:1:(LRTT+1) W:J=0 ^TMP($J,"TY",J,I) W ?LRCL I J>0 D BS2 I $L(X) S LRCW=10 D:J<LRTT C1^LRAC9 W:$L($P(LRG,U,4))&(J<LRTT) @$P(LRG,U,4),X1 W:'$L($P(LRG,U,4))!(J'<LRTT) $J(X,LRCW)
 Q
BS ;from LRAC3
 K I,^TMP($J,"TY") S LRCW=10,LRHI="",LRLO="",LRTT=1,I=0,LRTY=IOM-20\10,LRMU=LRMU+1
 S LRII=0 F  S LRII=$O(^LAB(64.5,1,1,LRMH,1,LRSH,1,LRII)) Q:LRII<1  S Z=^(LRII,0),P3=$P(Z,U,3),P6=$P(Z,U,6),I=I+1,I(I)=LRII,^TMP($J,"TY",0,I)=P3 S:P6 ^TMP($J,"TY",I,"D")=P6
 K P3,P6
 F K=1:1:(LRTY-1) S LRFDT=$O(^LAC(LRXLR,LRDFN,1,LRMH,1,LRSH,1,LRFDT)) Q:LRFDT<1  S Z=^(LRFDT,0) D BS1
 S:LRTT>(LRTY-1)&(LRMULT=1) LRFULL=1 S:LRTT>(LRTY-1)&(LRMU=(LRMULT-1)) LRFULL=1 F I=1:1:LRSHD I $D(I(I)) D LRLO^LRAC9 S:$L(LRLOHI) ^TMP($J,"TY",(LRTT+1),I)=LRLOHI S:$L(P7) ^TMP($J,"TY",LRTT,I)=P7 K P7
 S ^TMP($J,"TY",LRTT,"T")="Units",^TMP($J,"TY",(LRTT+1),"T")="Ranges",^TMP($J,"TY",(LRTT+1),0)=$S($L($P(^LAB(64.5,"A",1,LRMH,LRSH,I(1)),U,11)):"Therapeutic",1:"Reference"),^TMP($J,"TY",LRTT,0)=""
 W ! I $D(IA(0)) W IA(0) F I=1:1:(LRTT+1) W $S($D(IA(I)):$J(IA(I),10),1:$J("",10))
 K IA,IAX,IARNO,IADA
 I $D(LRCALE(LRMH,LRSH)) W !,"Locale " F I=1:1:(LRTT-1) W $J(^TMP($J,"TY",I,"L"),10)
 ;
Y2K ;
 W !,$E(LRTOPP,1,7),?6 F I=1:1:(LRTT+1) W $J(^TMP($J,"TY",I,0),10)
YEAR ;
 W !?5 F I=1:1:(LRTT-1) W $J(^TMP($J,"Y2K",I),10)
 W !?6 F I=1:1:(LRTT+1) W $J(^TMP($J,"TY",I,"T"),10)
 ;W !,$E(LRTOPP,1,7),?7 F I=1:1:(LRTT+1) W $J(^TMP($J,"TY",I,0),6)," "
 ;W !,$E(LRTOPP,1,7),?7 F I=1:1:(LRTT+1) W ^TMP($J,"TY",I,0)_" "
 ;
 ;W !?6 F I=1:1:(LRTT+1) W $J(^TMP($J,"TY",I,"T"),10) F LRC19=1:1:I W " "
 ;W !?11 F I=1:1:(LRTT+1) W ^TMP($J,"TY",I,"T")_"     "
 D DASH^LRX
 F I=1:1:LRSHD I $D(I(I)) S LRCL=8,LRG=^LAB(64.5,1,1,LRMH,1,LRSH,1,I(I),0) W ! D BS4
 I $D(LRTX) S LRTX="" W !,"Comments: " F I=1:1 S LRTX=$O(LRTX(LRTX)) Q:LRTX=""  W ?(10*LRTX-6),$C(96+I)
 D TXT1^LRAC9 S LROFDT=LRFDT I $D(LRTX) S LRTX="" F I=1:1 S LRTX=$O(LRTX(LRTX)) Q:LRTX=""  S LRFDT=LRTX(LRTX) D:$Y>(IOSL-8) OVFL^LRAC7 W !,$C(96+I),". " D TXT^LRAC9
 S LRFDT=LROFDT K LRTY,LRTX,^TMP($J,"TY") I 'LRFDT D HEAD1^LRAC6 G LRSH^LRAC3
 I $O(^LAC(LRXLR,LRDFN,1,LRMH,1,LRSH,1,LRFDT))<1 D HEAD1^LRAC6 G LRSH^LRAC3
 S LRFDT=LRLFDT I LRFULL D HEAD1^LRAC6,HEAD^LRAC6,LRNP^LRAC3 S LRFULL=0,LRMU=0
 G BS
IA I $D(DUZ("AG")),$L(DUZ("AG")),"ARMYAFN"[DUZ("AG"),LRDPF=2 S IADA=$P(^LR(LRDFN,0),U,3) I IADA'="",$D(^DPT(IADA,0)) S IAX=LRFDT D ^LRAIRNUM I IARNO'="" S:'$D(IA(0)) IA(0)="INPAT #" S IA(K)=IARNO
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRAC4   3286     printed  Sep 23, 2025@19:41:48                                                                                                                                                                                                       Page 2
LRAC4     ;SLC/DCM - PRINT CUMULATIVE REPORT ; 5/16/88  10:49 ;
 +1       ;;5.2;LAB SERVICE;**201**;Sep 27, 1994
BS1        SET ^TMP($JOB,"TY",K,"L")=$PIECE(Z,U,2)
           SET ^TMP($JOB,"K",LRSH,LRFDT,0)=LRSH_U_$PIECE(Z,U,1)_U_$PIECE(Z,U,5)
           SET LRTT=LRTT+1
           SET ^TMP($JOB,"Y2K",K)=$EXTRACT($PIECE($PIECE($$Y2K^LRX(LRFDT),"."),"/",3),1,4)
 +1        if LRFDT>LRLFDT
               SET LRLFDT=LRFDT
           DO IA
           DO UDT^LRAC3
           SET ^TMP($JOB,"TY",K,0)=$PIECE(LRUDT," ",1)
           SET ^TMP($JOB,"TY",K,"T")=$PIECE(LRUDT," ",2)
 +2       ;
 +3       ;
 +4       ;
 +5       ;
 +6        FOR J=1:1:LRSHD
               IF $DATA(I(J))
                   if $DATA(^LAC(LRXLR,LRDFN,1,LRMH,1,LRSH,1,LRFDT,1,I(J),0))
                       SET T1=$PIECE(^(0),U,1,2)
                       SET T3=$PIECE(^(0),U,3)
                       SET ^TMP($JOB,"TY",K,J)=T1
                       SET ^TMP($JOB,"K",LRSH,LRFDT,LRKL)=T3
                       SET LRKL=LRKL+1
                   DO BS3
 +7        KILL T1,T3
           QUIT 
BS3        if $DATA(^LAC(LRXLR,LRDFN,1,LRMH,1,LRSH,1,LRFDT,"TX"))&'$DATA(LRTX(LRTT))
               SET LRTX(LRTT)=LRFDT
 +1        QUIT 
BS2        SET X=$SELECT($DATA(^TMP($JOB,"TY",J,I)):$PIECE(^(I),U,1),1:"")
           SET X1=$SELECT($LENGTH(X):$PIECE(^(I),U,2),1:"")
           SET LRDP=$SELECT($DATA(^TMP($JOB,"TY",I,"D")):^("D"),1:"")
           SET LRCL=LRCL+10
 +1        QUIT 
BS4        FOR J=0:1:(LRTT+1)
               if J=0
                   WRITE ^TMP($JOB,"TY",J,I)
               WRITE ?LRCL
               IF J>0
                   DO BS2
                   IF $LENGTH(X)
                       SET LRCW=10
                       if J<LRTT
                           DO C1^LRAC9
                       if $LENGTH($PIECE(LRG,U,4))&(J<LRTT)
                           WRITE @$PIECE(LRG,U,4),X1
                       if '$LENGTH($PIECE(LRG,U,4))!(J'<LRTT)
                           WRITE $JUSTIFY(X,LRCW)
 +1        QUIT 
BS        ;from LRAC3
 +1        KILL I,^TMP($JOB,"TY")
           SET LRCW=10
           SET LRHI=""
           SET LRLO=""
           SET LRTT=1
           SET I=0
           SET LRTY=IOM-20\10
           SET LRMU=LRMU+1
 +2        SET LRII=0
           FOR 
               SET LRII=$ORDER(^LAB(64.5,1,1,LRMH,1,LRSH,1,LRII))
               if LRII<1
                   QUIT 
               SET Z=^(LRII,0)
               SET P3=$PIECE(Z,U,3)
               SET P6=$PIECE(Z,U,6)
               SET I=I+1
               SET I(I)=LRII
               SET ^TMP($JOB,"TY",0,I)=P3
               if P6
                   SET ^TMP($JOB,"TY",I,"D")=P6
 +3        KILL P3,P6
 +4        FOR K=1:1:(LRTY-1)
               SET LRFDT=$ORDER(^LAC(LRXLR,LRDFN,1,LRMH,1,LRSH,1,LRFDT))
               if LRFDT<1
                   QUIT 
               SET Z=^(LRFDT,0)
               DO BS1
 +5        if LRTT>(LRTY-1)&(LRMULT=1)
               SET LRFULL=1
           if LRTT>(LRTY-1)&(LRMU=(LRMULT-1))
               SET LRFULL=1
           FOR I=1:1:LRSHD
               IF $DATA(I(I))
                   DO LRLO^LRAC9
                   if $LENGTH(LRLOHI)
                       SET ^TMP($JOB,"TY",(LRTT+1),I)=LRLOHI
                   if $LENGTH(P7)
                       SET ^TMP($JOB,"TY",LRTT,I)=P7
                   KILL P7
 +6        SET ^TMP($JOB,"TY",LRTT,"T")="Units"
           SET ^TMP($JOB,"TY",(LRTT+1),"T")="Ranges"
           SET ^TMP($JOB,"TY",(LRTT+1),0)=$SELECT($LENGTH($PIECE(^LAB(64.5,"A",1,LRMH,LRSH,I(1)),U,11)):"Therapeutic",1:"Reference")
           SET ^TMP($JOB,"TY",LRTT,0)=""
 +7        WRITE !
           IF $DATA(IA(0))
               WRITE IA(0)
               FOR I=1:1:(LRTT+1)
                   WRITE $SELECT($DATA(IA(I)):$JUSTIFY(IA(I),10),1:$JUSTIFY("",10))
 +8        KILL IA,IAX,IARNO,IADA
 +9        IF $DATA(LRCALE(LRMH,LRSH))
               WRITE !,"Locale "
               FOR I=1:1:(LRTT-1)
                   WRITE $JUSTIFY(^TMP($JOB,"TY",I,"L"),10)
 +10      ;
Y2K       ;
 +1        WRITE !,$EXTRACT(LRTOPP,1,7),?6
           FOR I=1:1:(LRTT+1)
               WRITE $JUSTIFY(^TMP($JOB,"TY",I,0),10)
YEAR      ;
 +1        WRITE !?5
           FOR I=1:1:(LRTT-1)
               WRITE $JUSTIFY(^TMP($JOB,"Y2K",I),10)
 +2        WRITE !?6
           FOR I=1:1:(LRTT+1)
               WRITE $JUSTIFY(^TMP($JOB,"TY",I,"T"),10)
 +3       ;W !,$E(LRTOPP,1,7),?7 F I=1:1:(LRTT+1) W $J(^TMP($J,"TY",I,0),6)," "
 +4       ;W !,$E(LRTOPP,1,7),?7 F I=1:1:(LRTT+1) W ^TMP($J,"TY",I,0)_" "
 +5       ;
 +6       ;W !?6 F I=1:1:(LRTT+1) W $J(^TMP($J,"TY",I,"T"),10) F LRC19=1:1:I W " "
 +7       ;W !?11 F I=1:1:(LRTT+1) W ^TMP($J,"TY",I,"T")_"     "
 +8        DO DASH^LRX
 +9        FOR I=1:1:LRSHD
               IF $DATA(I(I))
                   SET LRCL=8
                   SET LRG=^LAB(64.5,1,1,LRMH,1,LRSH,1,I(I),0)
                   WRITE !
                   DO BS4
 +10       IF $DATA(LRTX)
               SET LRTX=""
               WRITE !,"Comments: "
               FOR I=1:1
                   SET LRTX=$ORDER(LRTX(LRTX))
                   if LRTX=""
                       QUIT 
                   WRITE ?(10*LRTX-6),$CHAR(96+I)
 +11       DO TXT1^LRAC9
           SET LROFDT=LRFDT
           IF $DATA(LRTX)
               SET LRTX=""
               FOR I=1:1
                   SET LRTX=$ORDER(LRTX(LRTX))
                   if LRTX=""
                       QUIT 
                   SET LRFDT=LRTX(LRTX)
                   if $Y>(IOSL-8)
                       DO OVFL^LRAC7
                   WRITE !,$CHAR(96+I),". "
                   DO TXT^LRAC9
 +12       SET LRFDT=LROFDT
           KILL LRTY,LRTX,^TMP($JOB,"TY")
           IF 'LRFDT
               DO HEAD1^LRAC6
               GOTO LRSH^LRAC3
 +13       IF $ORDER(^LAC(LRXLR,LRDFN,1,LRMH,1,LRSH,1,LRFDT))<1
               DO HEAD1^LRAC6
               GOTO LRSH^LRAC3
 +14       SET LRFDT=LRLFDT
           IF LRFULL
               DO HEAD1^LRAC6
               DO HEAD^LRAC6
               DO LRNP^LRAC3
               SET LRFULL=0
               SET LRMU=0
 +15       GOTO BS
IA         IF $DATA(DUZ("AG"))
               IF $LENGTH(DUZ("AG"))
                   IF "ARMYAFN"[DUZ("AG")
                       IF LRDPF=2
                           SET IADA=$PIECE(^LR(LRDFN,0),U,3)
                           IF IADA'=""
                               IF $DATA(^DPT(IADA,0))
                                   SET IAX=LRFDT
                                   DO ^LRAIRNUM
                                   IF IARNO'=""
                                       if '$DATA(IA(0))
                                           SET IA(0)="INPAT #"
                                       SET IA(K)=IARNO
 +1        QUIT