LRBLTX ;AVAMC/REG - TESTS FOR TX RELATED DISORDERS ; 2/17/88 20:59 ;
;;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 OUT S X="BLOOD BANK" D ^LRUTL G:Y=-1 OUT
I '$D(^LRO(69.2,LRAA,0)) L +^LRO(69.2) S ^LRO(69.2,LRAA,0)=LRAA_"^"_LRAA(2),X=^LRO(69.2,0),^(0)=$P(X,"^",1,2)_"^"_LRAA_"^"_($P(X,"^",4)+1),^LRO(69.2,"B",LRAA,LRAA)="",^LRO(69.2,"C",LRAA(2),LRAA)="" L -^LRO(69.2)
I '$D(^LRO(69.2,LRAA,60,0)) S ^(0)="^69.33A^^"
D F G:'C T D Z
ASK W !,"(E)nter/edit a test (D)elete a test list (R)emove all test lists",! R "Enter E, D, R or <CR> to accept lists: ",X:DTIME Q:X=""!(X[U)
G R:$A(X)=82,D:$A(X)=68,E:$A(X)=69 W $C(7) G ASK
;
L W !?6,"Test order#:",?21,1,?29,2,?37,3,?45,4,?53,5,?61,6,?69,7 D Z Q
;
Z W !,"-----------------|-------|-------|-------|-------|-------|-------|-------|" Q
;
R W !!,"SURE YOU WANT TO DELETE ALL THE LISTS " S %=2 D YN^LRU Q:%'=1 K ^LRO(69.2,LRAA,60) S ^(60,0)="^69.33A^0^0" Q
;
D R !,"Select list number to delete: ",X:DTIME G:X=""!(X[U) LRBLTX I '$D(N(X)) W $C(7),!,"Enter the test list number",! G D
K ^LRO(69.2,LRAA,60,X) S X(1)=$O(^LRO(69.2,LRAA,60,0)) S:'X(1) X(1)=0 S X=^LRO(69.2,LRAA,60,0),^(0)=$P(X,"^",1,2)_"^"_X(1)_"^"_$S(X(1)=0:0,1:($P(X,"^",4)-1)) G LRBLTX
;
E D A Q:X=""!(X[U) I $D(N(L,O)) S LRT(2)=$P(^LAB(61,$P(L(L,O),"^",2),0),"^"),LRT(3)=$P(L(L,O),"^",3) W " Specimen: ",LRT(2)," Value: ",LRT(3),!,$P(L(L,O),"^",4),"// " R X:DTIME G:X[U E S:X="" X=$P(L(L,O),"^",4) D C G E
S DIC(0)="AEQM" D H Q:X<1 S T=X D G,K^LRU,F,Z G E
;
C I X="@" W !?3,"SURE YOU WANT TO DELETE ? " S %=0 D RX^LRU G:%=1 K W " <NOTHING DELETED>" Q
S DIC(0)="EQM" D H Q:X<1 S T=X D G,K^LRU,F,Z Q
;
T S DIC(0)="AEQM" D H G:X<1 END S T=X D B G T
B D A Q:X=""!(X[U)
G I '$D(^LRO(69.2,LRAA,60,L,0)) S ^(0)=L,Z=^LRO(69.2,LRAA,60,0),^(0)=$P(Z,"^",1,2)_"^"_L_"^"_($P(Z,"^",4)+1)
I $D(^LRO(69.2,LRAA,60,L,1,O,0)) S ^(0)=T G SET
S:'$D(^LRO(69.2,LRAA,60,L,1,0)) ^(0)="^69.34PA^0^0" S Z=^(0),^(0)=$P(Z,"^",1,2)_"^"_O_"^"_($P(Z,"^",4)+1),^LRO(69.2,LRAA,60,L,1,O,0)=T
SET S DA=O,DA(2)=LRAA,DA(1)=L,DIE="^LRO(69.2,LRAA,60,L,1,",DR=".02//^S X=LRT(2);.03//^S X=LRT(3)" D ^DIE S (LRT(2),LRT(3))=""
I $D(Y) W $C(7),!!,"Must answer ALL prompts. <ENTRY DELETED>" K ^LRO(69.2,LRAA,60,L,1,DA,0) S X(1)=$O(^LRO(69.2,LRAA,60,L,1,0)) S:'X(1) X(1)=0 S X=^(0),^(0)=$P(X,"^",1,2)_"^"_X(1)_"^"_$S(X(1)=0:0,1:($P(X,"^",4)-1))
K DIC,DIE,DA,DR,X,Y Q
;
H S:'$D(LRT(2)) LRT(2)="" S:'$D(LRT(3)) LRT(3)="" W ! S DIC=60,DIC("S")="I $P(^(0),U,5)[""CH""" D ^DIC K DIC Q:X=""!(X[U) S X=+Y Q
A R !,"Enter list#,order# : ",X:DTIME Q:X=""!(X[U) S L=+X,O=+$P(X,",",2) I L>99!(L<1)!(O>7)!(O<1) D W G A
Q
W W !!?3,"Enter test list number (1-99) then a ',' then test order number (1-7)",!,"[Entering 2,3 would put the test selected in test list 2 and test order 3]",! Q
END S Z=0 F X=0:0 S X=$O(^LRO(69.2,LRAA,60,X)) Q:'X!(Z=1) F Y=0:0 S Y=$O(^LRO(69.2,LRAA,60,X,1,Y)) Q:'Y S Z=1 Q
G LRBLTX:Z,OUT
K K ^LRO(69.2,LRAA,60,L,1,O) S X(1)=$O(^LRO(69.2,LRAA,60,L,1,0)) S:'X(1) X(1)=0 S X=^LRO(69.2,LRAA,60,L,1,0),^(0)=$P(X,"^",1,2)_"^"_X(1)_"^"_$S(X(1)=0:0,1:($P(X,"^",4)-1)) D K^LRU,F,Z Q
F W @IOF
F A=0:0 S A=$O(^LRO(69.2,LRAA,60,A)) Q:'A F B=0:0 S B=$O(^LRO(69.2,LRAA,60,A,1,B)) Q:'B S C=^(B,0),N(A,B)=$P(^LAB(60,+C,.1),"^"),L(A,B)=$P($P(^(0),U,5),";",2)_"^"_$P(C,"^",2,3)_"^"_$P(^(0),"^")
S A=0 F C=0:1 S A=$O(N(A)) Q:'A D:'C L D:C Z W !,"Test list#: ",$J(A,2),?17,"|" F B=0:0 S B=$O(N(A,B)) Q:'B W ?10+(B*8),N(A,B),$E(" ",1,7-$L(N(A,B))),"|"
Q
OUT D V^LRU Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HLRBLTX 3614 printed Nov 22, 2024@17:22:27 Page 2
LRBLTX ;AVAMC/REG - TESTS FOR TX RELATED DISORDERS ; 2/17/88 20:59 ;
+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 OUT
SET X="BLOOD BANK"
DO ^LRUTL
if Y=-1
GOTO OUT
+4 IF '$DATA(^LRO(69.2,LRAA,0))
LOCK +^LRO(69.2)
SET ^LRO(69.2,LRAA,0)=LRAA_"^"_LRAA(2)
SET X=^LRO(69.2,0)
SET ^(0)=$PIECE(X,"^",1,2)_"^"_LRAA_"^"_($PIECE(X,"^",4)+1)
SET ^LRO(69.2,"B",LRAA,LRAA)=""
SET ^LRO(69.2,"C",LRAA(2),LRAA)=""
LOCK -^LRO(69.2)
+5 IF '$DATA(^LRO(69.2,LRAA,60,0))
SET ^(0)="^69.33A^^"
+6 DO F
if 'C
GOTO T
DO Z
ASK WRITE !,"(E)nter/edit a test (D)elete a test list (R)emove all test lists",!
READ "Enter E, D, R or <CR> to accept lists: ",X:DTIME
if X=""!(X[U)
QUIT
+1 if $ASCII(X)=82
GOTO R
if $ASCII(X)=68
GOTO D
if $ASCII(X)=69
GOTO E
WRITE $CHAR(7)
GOTO ASK
+2 ;
L WRITE !?6,"Test order#:",?21,1,?29,2,?37,3,?45,4,?53,5,?61,6,?69,7
DO Z
QUIT
+1 ;
Z WRITE !,"-----------------|-------|-------|-------|-------|-------|-------|-------|"
QUIT
+1 ;
R WRITE !!,"SURE YOU WANT TO DELETE ALL THE LISTS "
SET %=2
DO YN^LRU
if %'=1
QUIT
KILL ^LRO(69.2,LRAA,60)
SET ^(60,0)="^69.33A^0^0"
QUIT
+1 ;
D READ !,"Select list number to delete: ",X:DTIME
if X=""!(X[U)
GOTO LRBLTX
IF '$DATA(N(X))
WRITE $CHAR(7),!,"Enter the test list number",!
GOTO D
+1 KILL ^LRO(69.2,LRAA,60,X)
SET X(1)=$ORDER(^LRO(69.2,LRAA,60,0))
if 'X(1)
SET X(1)=0
SET X=^LRO(69.2,LRAA,60,0)
SET ^(0)=$PIECE(X,"^",1,2)_"^"_X(1)_"^"_$SELECT(X(1)=0:0,1:($PIECE(X,"^",4)-1))
GOTO LRBLTX
+2 ;
E DO A
if X=""!(X[U)
QUIT
IF $DATA(N(L,O))
SET LRT(2)=$PIECE(^LAB(61,$PIECE(L(L,O),"^",2),0),"^")
SET LRT(3)=$PIECE(L(L,O),"^",3)
WRITE " Specimen: ",LRT(2)," Value: ",LRT(3),!,$PIECE(L(L,O),"^",4),"// "
READ X:DTIME
if X[U
GOTO E
if X=""
SET X=$PIECE(L(L,O),"^",4)
DO C
GOTO E
+1 SET DIC(0)="AEQM"
DO H
if X<1
QUIT
SET T=X
DO G
DO K^LRU
DO F
DO Z
GOTO E
+2 ;
C IF X="@"
WRITE !?3,"SURE YOU WANT TO DELETE ? "
SET %=0
DO RX^LRU
if %=1
GOTO K
WRITE " <NOTHING DELETED>"
QUIT
+1 SET DIC(0)="EQM"
DO H
if X<1
QUIT
SET T=X
DO G
DO K^LRU
DO F
DO Z
QUIT
+2 ;
T SET DIC(0)="AEQM"
DO H
if X<1
GOTO END
SET T=X
DO B
GOTO T
B DO A
if X=""!(X[U)
QUIT
G IF '$DATA(^LRO(69.2,LRAA,60,L,0))
SET ^(0)=L
SET Z=^LRO(69.2,LRAA,60,0)
SET ^(0)=$PIECE(Z,"^",1,2)_"^"_L_"^"_($PIECE(Z,"^",4)+1)
+1 IF $DATA(^LRO(69.2,LRAA,60,L,1,O,0))
SET ^(0)=T
GOTO SET
+2 if '$DATA(^LRO(69.2,LRAA,60,L,1,0))
SET ^(0)="^69.34PA^0^0"
SET Z=^(0)
SET ^(0)=$PIECE(Z,"^",1,2)_"^"_O_"^"_($PIECE(Z,"^",4)+1)
SET ^LRO(69.2,LRAA,60,L,1,O,0)=T
SET SET DA=O
SET DA(2)=LRAA
SET DA(1)=L
SET DIE="^LRO(69.2,LRAA,60,L,1,"
SET DR=".02//^S X=LRT(2);.03//^S X=LRT(3)"
DO ^DIE
SET (LRT(2),LRT(3))=""
+1 IF $DATA(Y)
WRITE $CHAR(7),!!,"Must answer ALL prompts. <ENTRY DELETED>"
KILL ^LRO(69.2,LRAA,60,L,1,DA,0)
SET X(1)=$ORDER(^LRO(69.2,LRAA,60,L,1,0))
if 'X(1)
SET X(1)=0
SET X=^(0)
SET ^(0)=$PIECE(X,"^",1,2)_"^"_X(1)_"^"_$SELECT(X(1)=0:0,1:($PIECE(X,"^",4)-1))
+2 KILL DIC,DIE,DA,DR,X,Y
QUIT
+3 ;
H if '$DATA(LRT(2))
SET LRT(2)=""
if '$DATA(LRT(3))
SET LRT(3)=""
WRITE !
SET DIC=60
SET DIC("S")="I $P(^(0),U,5)[""CH"""
DO ^DIC
KILL DIC
if X=""!(X[U)
QUIT
SET X=+Y
QUIT
A READ !,"Enter list#,order# : ",X:DTIME
if X=""!(X[U)
QUIT
SET L=+X
SET O=+$PIECE(X,",",2)
IF L>99!(L<1)!(O>7)!(O<1)
DO W
GOTO A
+1 QUIT
W WRITE !!?3,"Enter test list number (1-99) then a ',' then test order number (1-7)",!,"[Entering 2,3 would put the test selected in test list 2 and test order 3]",!
QUIT
END SET Z=0
FOR X=0:0
SET X=$ORDER(^LRO(69.2,LRAA,60,X))
if 'X!(Z=1)
QUIT
FOR Y=0:0
SET Y=$ORDER(^LRO(69.2,LRAA,60,X,1,Y))
if 'Y
QUIT
SET Z=1
QUIT
+1 if Z
GOTO LRBLTX
GOTO OUT
K KILL ^LRO(69.2,LRAA,60,L,1,O)
SET X(1)=$ORDER(^LRO(69.2,LRAA,60,L,1,0))
if 'X(1)
SET X(1)=0
SET X=^LRO(69.2,LRAA,60,L,1,0)
SET ^(0)=$PIECE(X,"^",1,2)_"^"_X(1)_"^"_$SELECT(X(1)=0:0,1:($PIECE(X,"^",4)-1))
DO K^LRU
DO F
DO Z
QUIT
F WRITE @IOF
+1 FOR A=0:0
SET A=$ORDER(^LRO(69.2,LRAA,60,A))
if 'A
QUIT
FOR B=0:0
SET B=$ORDER(^LRO(69.2,LRAA,60,A,1,B))
if 'B
QUIT
SET C=^(B,0)
SET N(A,B)=$PIECE(^LAB(60,+C,.1),"^")
SET L(A,B)=$PIECE($PIECE(^(0),U,5),";",2)_"^"_$PIECE(C,"^",2,3)_"^"_$PIECE(^(0),"^")
+2 SET A=0
FOR C=0:1
SET A=$ORDER(N(A))
if 'A
QUIT
if 'C
DO L
if C
DO Z
WRITE !,"Test list#: ",$JUSTIFY(A,2),?17,"|"
FOR B=0:0
SET B=$ORDER(N(A,B))
if 'B
QUIT
WRITE ?10+(B*8),N(A,B),$EXTRACT(" ",1,7-$LENGTH(N(A,B))),"|"
+3 QUIT
OUT DO V^LRU
QUIT