LRBLDX ;AVAMC/REG - DONOR ABO/RH TESTING ;3/25/92  22:42 ;
 ;;5.2;LAB SERVICE;**247,408**;Sep 27, 1994;Build 8
 ;Per VHA Directive 97-033 this routine should not be modified.  Medical Device # BK970021
 Q  D END S X="BLOOD BANK" D ^LRUTL G:Y=-1 END
 I LRCAPA S X="DONOR ABO/RH TESTING" D X^LRUWK G:'$D(X) END S Y="DX" D S^LRBLWD D EN^LRBLW G:%<1 END I $D(LRK("LRK")) D DT^LRBLU S LRK("LRK")=LRK
 S LRB="",LRC=1 W !!,"Enter TEST COMMENT(s) " S %=2 D YN^LRU G:%<1 END K:%=1 LRC
DNR W ! K DA,LR,LRR S DIC="^LRE(",DIC(0)="AFQM",D="C^B",DIC("B")=LRB,DIC("A")="Select DONOR ID: " D MIX^DIC1 K DIC G:X=""!(X[U) END
 I Y<1 W $C(7),!!,"Complete DONOR ID must be entered (ex. If ID=H12345 then H123 unacceptable)." G DNR
 I X[","!($L(X)=5) D ASK G:Y<1 DNR D CKRL,REST G DNR
 S LRQ=+Y,LRI=$O(^LRE("C",X,LRQ,0)) G:'LRI DNR S LRQ(1)=$P(^LRE(LRQ,5,LRI,0),"^",4) D CKRL,REST G DNR
 ;
REST S X(1)=$E(X,3,$L(X)),X(2)=X(1)+1,X(3)=$L(X(1))-$L(X(2)) I X(3) S X(2)=$E("00000",1,X(3))_X(2)
 S LRB=$E(X,1,2)_X(2),LRB=$S($D(^LRE("C",LRB)):LRB,1:"")
 S X=^LRE(LRQ,0),W(5)=$P(X,U,5),W(6)=$P(X,U,6)
 S Y=+^LRE(LRQ,5,LRI,0) D D^LRU W !!,"UNIT#:",LRQ(1),"  Donation date:",Y I LRQ(1)="" W $C(7),!?35,"Must have UNIT # to proceed." Q
 W ! S DR="[LRBLDABRH]",DIE="^LRE(",DA=LRQ D ^DIE K DIE,DR
 I $D(LRR) F A=0:0 S A=$O(LRA(A)) Q:'A  I $D(^LRE(LRQ,5,LRI,A)),$P(^(A),"^") S LR=1
 I $D(LRR),'$D(^XUSEC("LRBLSUPER",DUZ)) W !,"One or more components were released.  You may not edit existing test results."
 S Y="DX" D:LRCAPA SET^LRBLWD Q
S ;from LRBLDX input template only supervisor can edit data after release of components
 I $D(LRR),$P(LRM,U,4)]"",'$D(^XUSEC("LRBLSUPER",DUZ)) S Y=Z
 Q
ASK S LRQ=+Y,DIC="^LRE(LRQ,5,",DIC(0)="FAEQM",DIC("A")="Select DONATION DATE: " D ^DIC K DIC Q:Y<1
 S LRI=+Y,LRQ(1)=$P(^LRE(LRQ,5,LRI,0),U,4) Q
 ;
CKRL F A=0:0 S A=$O(^LRE(LRQ,5,LRI,66,A)) Q:'A  I $P(^(A,0),"^",8)=0 S LRR=1 Q
 Q
END D V^LRU Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRBLDX   1927     printed  Sep 23, 2025@19:46:39                                                                                                                                                                                                      Page 2
LRBLDX    ;AVAMC/REG - DONOR ABO/RH TESTING ;3/25/92  22:42 ;
 +1       ;;5.2;LAB SERVICE;**247,408**;Sep 27, 1994;Build 8
 +2       ;Per VHA Directive 97-033 this routine should not be modified.  Medical Device # BK970021
 +3        QUIT 
           DO END
           SET X="BLOOD BANK"
           DO ^LRUTL
           if Y=-1
               GOTO END
 +4        IF LRCAPA
               SET X="DONOR ABO/RH TESTING"
               DO X^LRUWK
               if '$DATA(X)
                   GOTO END
               SET Y="DX"
               DO S^LRBLWD
               DO EN^LRBLW
               if %<1
                   GOTO END
               IF $DATA(LRK("LRK"))
                   DO DT^LRBLU
                   SET LRK("LRK")=LRK
 +5        SET LRB=""
           SET LRC=1
           WRITE !!,"Enter TEST COMMENT(s) "
           SET %=2
           DO YN^LRU
           if %<1
               GOTO END
           if %=1
               KILL LRC
DNR        WRITE !
           KILL DA,LR,LRR
           SET DIC="^LRE("
           SET DIC(0)="AFQM"
           SET D="C^B"
           SET DIC("B")=LRB
           SET DIC("A")="Select DONOR ID: "
           DO MIX^DIC1
           KILL DIC
           if X=""!(X[U)
               GOTO END
 +1        IF Y<1
               WRITE $CHAR(7),!!,"Complete DONOR ID must be entered (ex. If ID=H12345 then H123 unacceptable)."
               GOTO DNR
 +2        IF X[","!($LENGTH(X)=5)
               DO ASK
               if Y<1
                   GOTO DNR
               DO CKRL
               DO REST
               GOTO DNR
 +3        SET LRQ=+Y
           SET LRI=$ORDER(^LRE("C",X,LRQ,0))
           if 'LRI
               GOTO DNR
           SET LRQ(1)=$PIECE(^LRE(LRQ,5,LRI,0),"^",4)
           DO CKRL
           DO REST
           GOTO DNR
 +4       ;
REST       SET X(1)=$EXTRACT(X,3,$LENGTH(X))
           SET X(2)=X(1)+1
           SET X(3)=$LENGTH(X(1))-$LENGTH(X(2))
           IF X(3)
               SET X(2)=$EXTRACT("00000",1,X(3))_X(2)
 +1        SET LRB=$EXTRACT(X,1,2)_X(2)
           SET LRB=$SELECT($DATA(^LRE("C",LRB)):LRB,1:"")
 +2        SET X=^LRE(LRQ,0)
           SET W(5)=$PIECE(X,U,5)
           SET W(6)=$PIECE(X,U,6)
 +3        SET Y=+^LRE(LRQ,5,LRI,0)
           DO D^LRU
           WRITE !!,"UNIT#:",LRQ(1),"  Donation date:",Y
           IF LRQ(1)=""
               WRITE $CHAR(7),!?35,"Must have UNIT # to proceed."
               QUIT 
 +4        WRITE !
           SET DR="[LRBLDABRH]"
           SET DIE="^LRE("
           SET DA=LRQ
           DO ^DIE
           KILL DIE,DR
 +5        IF $DATA(LRR)
               FOR A=0:0
                   SET A=$ORDER(LRA(A))
                   if 'A
                       QUIT 
                   IF $DATA(^LRE(LRQ,5,LRI,A))
                       IF $PIECE(^(A),"^")
                           SET LR=1
 +6        IF $DATA(LRR)
               IF '$DATA(^XUSEC("LRBLSUPER",DUZ))
                   WRITE !,"One or more components were released.  You may not edit existing test results."
 +7        SET Y="DX"
           if LRCAPA
               DO SET^LRBLWD
           QUIT 
S         ;from LRBLDX input template only supervisor can edit data after release of components
 +1        IF $DATA(LRR)
               IF $PIECE(LRM,U,4)]""
                   IF '$DATA(^XUSEC("LRBLSUPER",DUZ))
                       SET Y=Z
 +2        QUIT 
ASK        SET LRQ=+Y
           SET DIC="^LRE(LRQ,5,"
           SET DIC(0)="FAEQM"
           SET DIC("A")="Select DONATION DATE: "
           DO ^DIC
           KILL DIC
           if Y<1
               QUIT 
 +1        SET LRI=+Y
           SET LRQ(1)=$PIECE(^LRE(LRQ,5,LRI,0),U,4)
           QUIT 
 +2       ;
CKRL       FOR A=0:0
               SET A=$ORDER(^LRE(LRQ,5,LRI,66,A))
               if 'A
                   QUIT 
               IF $PIECE(^(A,0),"^",8)=0
                   SET LRR=1
                   QUIT 
 +1        QUIT 
END        DO V^LRU
           QUIT