LRBLJPP ;AVAMC/REG - PLATLET TX ;2/18/93  09:28 ;
 ;;5.2;LAB SERVICE;**247**;Sep 27, 1994
 ;Per VHA Directive 97-033 this routine should not be modified.  Medical Device # BK970021
 W !!,"Platelet transfusions from one date received to another."
 D END S X="BLOOD BANK" D ^LRUTL G:Y=-1 END S LRS=$O(^LAB(61,"B","BLOOD",0)) I 'LRS W $C(7),!,"BLOOD must be an entry in TOPOGRAPHY file (#61)",! G END
 I '$O(^LRO(69.2,LRAA,61,LRS,2,0)) W $C(7),!!,"Must have tests to print entered in the",!,"'Tests for inclusion in transfusion report option' in",!,"Blood bank supervisor menu",! G END
 S DIC="^LRO(69.2,LRAA,61,LRS,2,",DIC(0)="AEQMZ" F LRA=1:1 D ^DIC Q:Y<1  S W=$P(Y(0),"^",2),Y=+Y(0) D S
 I LRA=1 W $C(7),!,"No tests selected." G END
 S LRT(0)=LRA-1 D B^LRU G:Y<0 END S LRE=LRLDT+.99,LRB=LRSDT-.0001,ZTRTN="QUE^LRBLJPP" D BEG^LRUTL G:$D(ZTSK)!(POP) END
QUE U IO K ^TMP($J) D:IOST?1"C".E WAIT^LRU D L^LRU,S^LRU,H S LR("F")=1
 F B=0:0 S LRB=$O(^LRD(65,"A",LRB)) Q:'LRB!(LRB>LRE)  F LRI=0:0 S LRI=$O(^LRD(65,"A",LRB,LRI)) Q:'LRI  I $D(^LRD(65,LRI,4)),$P(^(4),"^")="T",$D(^(0)) S Y=$P(^(0),"^",4) I Y,$D(^LAB(66,Y,0)) S Y=$P(^(0),"^") D:Y["PLAT"!(Y["PLT") A
 S X1=LRLDT,X2=5 D C^%DTC S LRLDT=9999998-X S X1=LRSDT,X2=-5 D C^%DTC S LRSDT=9999999-X
 F LRDFN=0:0 S LRDFN=$O(^TMP($J,LRDFN)) Q:'LRDFN  D B
 D WRT W:IO'=IO(0) @IOF D END^LRUTL,END Q
A S X=^LRD(65,LRI,6),Y=$P(X,"^",4),LRDFN=+X,X=^LR(LRDFN,1.6,Y,0),^TMP($J,LRDFN)="",^(LRDFN,Y,0)=+X,^(.1)=$P(X,"^",2,99) Q
B F A=LRLDT:0 S A=$O(^LR(LRDFN,"CH",A)) Q:'A!(A>LRSDT)  S X=^(A,0) F B=1:1:LRT(0) S Z=$S($D(^LR(LRDFN,"CH",A,LRV(B))):$P(^(LRV(B)),"^"),1:"") I Z]"",$P(X,"^",5)=LRS(B) S ^TMP($J,LRDFN,A,0)=+X,^(B)=Z
 Q
WRT F A=0:0 S A=$O(^TMP($J,A)) Q:'A  S X=^LR(A,0),Y=$P(X,"^",3),X=$P(X,"^",2),X=^DIC(X,0,"GL"),X=@(X_Y_",0)"),^TMP($J,"B",$P(X,"^"),A)=$P(X,"^",2,99)
 S LRP=0 F LRA=0:0 S LRP=$O(^TMP($J,"B",LRP)) Q:LRP=""!(LR("Q"))  F LRDFN=0:0 S LRDFN=$O(^TMP($J,"B",LRP,LRDFN)) Q:'LRDFN!(LR("Q"))  S LRX=^(LRDFN),SSN=$P(LRX,"^",8),Y=$P(LRX,"^",2),LRDPF=$P(^LR(LRDFN,0),U,2) D D^LRU,SSN^LRU S DOB=Y D W
 Q
W D:$Y>(IOSL-6) H Q:LR("Q")  W !!,LRP,?31,SSN,?45,"DOB: ",DOB F A=0:0 S A=$O(^TMP($J,LRDFN,A)) Q:'A!(LR("Q"))  S T=+^(A,0) D T,P
 S X=^LR(LRDFN,0) I $P(X,"^",2)=2 S DFN=$P(X,"^",3) D ^LRBLJPP1
 Q
P D:$Y>(IOSL-6) H1 Q:LR("Q")  W !,T S Q=$S($D(^TMP($J,LRDFN,A,.1)):^(.1),1:"") W:Q ?15,$E($P(^LAB(66,+Q,0),"^"),1,25),$S($P(Q,"^",6):"("_$P(Q,"^",6)_")",1:"")
 Q:'$O(^TMP($J,LRDFN,A,.1))
 D:$Y>(IOSL-6) H1 Q:LR("Q")  S X(1)=0 F B=1:1:LRT(0) S X(1)=X(1)+1 S:$X>(IOM-9) X(1)=1 W:$X>(IOM-9) !?32 W ?32+(8*X(1)) I $D(^TMP($J,LRDFN,A,B)) W $J(^(B),5)
 Q
S S X=^LAB(60,Y,0),X(1)=$S($D(^(.1)):$P(^(.1),"^"),1:"??"),Z=$S($D(^(1,W,0)):$P(^(0),"^",7),1:"")
 S LRT(LRA)=$P($P(X,"^",5),";",2,3)_"^"_W_"^"_$P(X,"^")_"^"_Z_"^"_$P(^LAB(61,W,0),"^")_"^"_Y_"^"_X(1),LRV(LRA)=+LRT(LRA),LRS(LRA)=W Q
T S T=T_"000",T=$E(T,4,5)_"/"_$E(T,6,7)_"/"_$E(T,2,3)_$S(T[".":" "_$E(T,9,10)_":"_$E(T,11,12),1:"") Q
 ;
H I $D(LR("F")),IOST?1"C".E D M^LRU Q:LR("Q")
 D F^LRU W !,"Mo/Da TIME",?12,"Blood component"
 S X(1)=0 F X=1:1:LRT(0) S X(1)=X(1)+1 S:$X>(IOM-8) X(1)=1 W:$X>(IOM-8) !?32 W ?32+(8*X(1)),$P(LRT(X),"^",7)
 W !,LR("%") Q
H1 D H Q:LR("Q")  W !!,LRP,?31,SSN,?45,"DOB: ",DOB Q
 ;
END D V^LRU Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRBLJPP   3258     printed  Sep 23, 2025@19:47:03                                                                                                                                                                                                     Page 2
LRBLJPP   ;AVAMC/REG - PLATLET TX ;2/18/93  09:28 ;
 +1       ;;5.2;LAB SERVICE;**247**;Sep 27, 1994
 +2       ;Per VHA Directive 97-033 this routine should not be modified.  Medical Device # BK970021
 +3        WRITE !!,"Platelet transfusions from one date received to another."
 +4        DO END
           SET X="BLOOD BANK"
           DO ^LRUTL
           if Y=-1
               GOTO END
           SET LRS=$ORDER(^LAB(61,"B","BLOOD",0))
           IF 'LRS
               WRITE $CHAR(7),!,"BLOOD must be an entry in TOPOGRAPHY file (#61)",!
               GOTO END
 +5        IF '$ORDER(^LRO(69.2,LRAA,61,LRS,2,0))
               WRITE $CHAR(7),!!,"Must have tests to print entered in the",!,"'Tests for inclusion in transfusion report option' in",!,"Blood bank supervisor menu",!
               GOTO END
 +6        SET DIC="^LRO(69.2,LRAA,61,LRS,2,"
           SET DIC(0)="AEQMZ"
           FOR LRA=1:1
               DO ^DIC
               if Y<1
                   QUIT 
               SET W=$PIECE(Y(0),"^",2)
               SET Y=+Y(0)
               DO S
 +7        IF LRA=1
               WRITE $CHAR(7),!,"No tests selected."
               GOTO END
 +8        SET LRT(0)=LRA-1
           DO B^LRU
           if Y<0
               GOTO END
           SET LRE=LRLDT+.99
           SET LRB=LRSDT-.0001
           SET ZTRTN="QUE^LRBLJPP"
           DO BEG^LRUTL
           if $DATA(ZTSK)!(POP)
               GOTO END
QUE        USE IO
           KILL ^TMP($JOB)
           if IOST?1"C".E
               DO WAIT^LRU
           DO L^LRU
           DO S^LRU
           DO H
           SET LR("F")=1
 +1        FOR B=0:0
               SET LRB=$ORDER(^LRD(65,"A",LRB))
               if 'LRB!(LRB>LRE)
                   QUIT 
               FOR LRI=0:0
                   SET LRI=$ORDER(^LRD(65,"A",LRB,LRI))
                   if 'LRI
                       QUIT 
                   IF $DATA(^LRD(65,LRI,4))
                       IF $PIECE(^(4),"^")="T"
                           IF $DATA(^(0))
                               SET Y=$PIECE(^(0),"^",4)
                               IF Y
                                   IF $DATA(^LAB(66,Y,0))
                                       SET Y=$PIECE(^(0),"^")
                                       if Y["PLAT"!(Y["PLT")
                                           DO A
 +2        SET X1=LRLDT
           SET X2=5
           DO C^%DTC
           SET LRLDT=9999998-X
           SET X1=LRSDT
           SET X2=-5
           DO C^%DTC
           SET LRSDT=9999999-X
 +3        FOR LRDFN=0:0
               SET LRDFN=$ORDER(^TMP($JOB,LRDFN))
               if 'LRDFN
                   QUIT 
               DO B
 +4        DO WRT
           if IO'=IO(0)
               WRITE @IOF
           DO END^LRUTL
           DO END
           QUIT 
A          SET X=^LRD(65,LRI,6)
           SET Y=$PIECE(X,"^",4)
           SET LRDFN=+X
           SET X=^LR(LRDFN,1.6,Y,0)
           SET ^TMP($JOB,LRDFN)=""
           SET ^(LRDFN,Y,0)=+X
           SET ^(.1)=$PIECE(X,"^",2,99)
           QUIT 
B          FOR A=LRLDT:0
               SET A=$ORDER(^LR(LRDFN,"CH",A))
               if 'A!(A>LRSDT)
                   QUIT 
               SET X=^(A,0)
               FOR B=1:1:LRT(0)
                   SET Z=$SELECT($DATA(^LR(LRDFN,"CH",A,LRV(B))):$PIECE(^(LRV(B)),"^"),1:"")
                   IF Z]""
                       IF $PIECE(X,"^",5)=LRS(B)
                           SET ^TMP($JOB,LRDFN,A,0)=+X
                           SET ^(B)=Z
 +1        QUIT 
WRT        FOR A=0:0
               SET A=$ORDER(^TMP($JOB,A))
               if 'A
                   QUIT 
               SET X=^LR(A,0)
               SET Y=$PIECE(X,"^",3)
               SET X=$PIECE(X,"^",2)
               SET X=^DIC(X,0,"GL")
               SET X=@(X_Y_",0)")
               SET ^TMP($JOB,"B",$PIECE(X,"^"),A)=$PIECE(X,"^",2,99)
 +1        SET LRP=0
           FOR LRA=0:0
               SET LRP=$ORDER(^TMP($JOB,"B",LRP))
               if LRP=""!(LR("Q"))
                   QUIT 
               FOR LRDFN=0:0
                   SET LRDFN=$ORDER(^TMP($JOB,"B",LRP,LRDFN))
                   if 'LRDFN!(LR("Q"))
                       QUIT 
                   SET LRX=^(LRDFN)
                   SET SSN=$PIECE(LRX,"^",8)
                   SET Y=$PIECE(LRX,"^",2)
                   SET LRDPF=$PIECE(^LR(LRDFN,0),U,2)
                   DO D^LRU
                   DO SSN^LRU
                   SET DOB=Y
                   DO W
 +2        QUIT 
W          if $Y>(IOSL-6)
               DO H
           if LR("Q")
               QUIT 
           WRITE !!,LRP,?31,SSN,?45,"DOB: ",DOB
           FOR A=0:0
               SET A=$ORDER(^TMP($JOB,LRDFN,A))
               if 'A!(LR("Q"))
                   QUIT 
               SET T=+^(A,0)
               DO T
               DO P
 +1        SET X=^LR(LRDFN,0)
           IF $PIECE(X,"^",2)=2
               SET DFN=$PIECE(X,"^",3)
               DO ^LRBLJPP1
 +2        QUIT 
P          if $Y>(IOSL-6)
               DO H1
           if LR("Q")
               QUIT 
           WRITE !,T
           SET Q=$SELECT($DATA(^TMP($JOB,LRDFN,A,.1)):^(.1),1:"")
           if Q
               WRITE ?15,$EXTRACT($PIECE(^LAB(66,+Q,0),"^"),1,25),$SELECT($PIECE(Q,"^",6):"("_$PIECE(Q,"^",6)_")",1:"")
 +1        if '$ORDER(^TMP($JOB,LRDFN,A,.1))
               QUIT 
 +2        if $Y>(IOSL-6)
               DO H1
           if LR("Q")
               QUIT 
           SET X(1)=0
           FOR B=1:1:LRT(0)
               SET X(1)=X(1)+1
               if $X>(IOM-9)
                   SET X(1)=1
               if $X>(IOM-9)
                   WRITE !?32
               WRITE ?32+(8*X(1))
               IF $DATA(^TMP($JOB,LRDFN,A,B))
                   WRITE $JUSTIFY(^(B),5)
 +3        QUIT 
S          SET X=^LAB(60,Y,0)
           SET X(1)=$SELECT($DATA(^(.1)):$PIECE(^(.1),"^"),1:"??")
           SET Z=$SELECT($DATA(^(1,W,0)):$PIECE(^(0),"^",7),1:"")
 +1        SET LRT(LRA)=$PIECE($PIECE(X,"^",5),";",2,3)_"^"_W_"^"_$PIECE(X,"^")_"^"_Z_"^"_$PIECE(^LAB(61,W,0),"^")_"^"_Y_"^"_X(1)
           SET LRV(LRA)=+LRT(LRA)
           SET LRS(LRA)=W
           QUIT 
T          SET T=T_"000"
           SET T=$EXTRACT(T,4,5)_"/"_$EXTRACT(T,6,7)_"/"_$EXTRACT(T,2,3)_$SELECT(T[".":" "_$EXTRACT(T,9,10)_":"_$EXTRACT(T,11,12),1:"")
           QUIT 
 +1       ;
H          IF $DATA(LR("F"))
               IF IOST?1"C".E
                   DO M^LRU
                   if LR("Q")
                       QUIT 
 +1        DO F^LRU
           WRITE !,"Mo/Da TIME",?12,"Blood component"
 +2        SET X(1)=0
           FOR X=1:1:LRT(0)
               SET X(1)=X(1)+1
               if $X>(IOM-8)
                   SET X(1)=1
               if $X>(IOM-8)
                   WRITE !?32
               WRITE ?32+(8*X(1)),$PIECE(LRT(X),"^",7)
 +3        WRITE !,LR("%")
           QUIT 
H1         DO H
           if LR("Q")
               QUIT 
           WRITE !!,LRP,?31,SSN,?45,"DOB: ",DOB
           QUIT 
 +1       ;
END        DO V^LRU
           QUIT