LRBLSET ; IHS/DIR/FJE - SET DD(65.091,.03 12:39 ; [ 7/23/92 ]
;;5.2;LR;;NOV 01, 1997
;
;;5.2;LAB SERVICE;;Sep 27, 1994
; If entries in MODIFIED/TO FROM FIELD then
; If disposition not modified or no disposition put a 1 in the
; ^DD(65.091,.03 field
; If unit is whole blood put a 2 in the 3rd piece of the zero subscript
; If divided unit put a 2 for each divided unit in 0;3
; Should be run during the post init process
; It does not do any harm to run this routine more than once.
EN ;
Q
Q:'$D(LRVR)!($G(^DD(65,0,"VR"))>5.14)
D V^LRU F A=0:0 S A=$O(^LRD(65,A)) Q:'A I $O(^LRD(65,A,9,0)) S B=$S($D(^LRD(65,A,4)):$P(^(4),"^"),1:1) D A
D V^LRU Q
A I B'="MO" S P=1 D C Q
I $S('$P($G(^LRD(65,A,0)),"^",4):1,'$D(^LAB(66,$P(^LRD(65,A,0),"^",4),0)):1,1:0) W !,"^LRD(65,",A,",entry corrupted or no entry in 4th piece of 0th subscript",!,"or no component entry in file 66 for unit" Q
I $P(^LAB(66,$P(^LRD(65,A,0),"^",4),0),"^",26)=1 S P=2 D C Q
K C S (E,G)=0 F C=0:0 S C=$O(^LRD(65,A,9,C)) Q:'C S F=$P(^(C,0),"^",2),E=E+1,C(C)="" I "ABCDE"[$E(F,$L(F)) S C(C)=2
S F=0 F C=0:0 S C=$O(C(C)) Q:'C S F=F+1 D S
S:G $P(^LRD(65,A,4),"^",4)="("_G_")" Q
S I F=E S $P(^LRD(65,A,9,C,0),"^",3)=2 Q
I C(C) S $P(^LRD(65,A,9,C,0),"^",3)=2 Q
S $P(^LRD(65,A,9,C,0),"^",3)=1,G=G+1 Q
;
Q
C F C=0:0 S C=$O(^LRD(65,A,9,C)) Q:'C S $P(^(C,0),"^",3)=P
Q
LRBLSET ; IHS/DIR/FJE - SET DD(65.091,.03 12:39 ; [ 7/23/92 ]
+1 ;;5.2;LR;;NOV 01, 1997
+2 ;
+3 ;;5.2;LAB SERVICE;;Sep 27, 1994
+4 ; If entries in MODIFIED/TO FROM FIELD then
+5 ; If disposition not modified or no disposition put a 1 in the
+6 ; ^DD(65.091,.03 field
+7 ; If unit is whole blood put a 2 in the 3rd piece of the zero subscript
+8 ; If divided unit put a 2 for each divided unit in 0;3
+9 ; Should be run during the post init process
+10 ; It does not do any harm to run this routine more than once.
EN ;
+1 QUIT
+2 IF '$DATA(LRVR)!($GET(^DD(65,0,"VR"))>5.14)
QUIT
+3 DO V^LRU
FOR A=0:0
SET A=$ORDER(^LRD(65,A))
IF 'A
QUIT
IF $ORDER(^LRD(65,A,9,0))
SET B=$SELECT($DATA(^LRD(65,A,4)):$PIECE(^(4),"^"),1:1)
DO A
+4 DO V^LRU
QUIT
A IF B'="MO"
SET P=1
DO C
QUIT
+1 IF $SELECT('$PIECE($GET(^LRD(65,A,0)),"^",4):1,'$DATA(^LAB(66,$PIECE(^LRD(65,A,0),"^",4),0)):1,1:0)
WRITE !,"^LRD(65,",A,",entry corrupted or no entry in 4th piece of 0th subscript",!,"or no component entry in file 66 for unit"
QUIT
+2 IF $PIECE(^LAB(66,$PIECE(^LRD(65,A,0),"^",4),0),"^",26)=1
SET P=2
DO C
QUIT
+3 KILL C
SET (E,G)=0
FOR C=0:0
SET C=$ORDER(^LRD(65,A,9,C))
IF 'C
QUIT
SET F=$PIECE(^(C,0),"^",2)
SET E=E+1
SET C(C)=""
IF "ABCDE"[$EXTRACT(F,$LENGTH(F))
SET C(C)=2
+4 SET F=0
FOR C=0:0
SET C=$ORDER(C(C))
IF 'C
QUIT
SET F=F+1
DO S
+5 IF G
SET $PIECE(^LRD(65,A,4),"^",4)="("_G_")"
QUIT
S IF F=E
SET $PIECE(^LRD(65,A,9,C,0),"^",3)=2
QUIT
+1 IF C(C)
SET $PIECE(^LRD(65,A,9,C,0),"^",3)=2
QUIT
+2 SET $PIECE(^LRD(65,A,9,C,0),"^",3)=1
SET G=G+1
QUIT
+3 ;
+4 QUIT
C FOR C=0:0
SET C=$ORDER(^LRD(65,A,9,C))
IF 'C
QUIT
SET $PIECE(^(C,0),"^",3)=P
+1 QUIT