[613] | 1 | LRBLU ;AVAMC/REG/CYM - BB UTIL ;1/22/97 15:32 ;
|
---|
| 2 | ;;5.2;LAB SERVICE;**97,90,247**;Sep 27, 1994
|
---|
| 3 | ;Per VHA Directive 97-033 this routine should not be modified. Medical Device # BK970021
|
---|
| 4 | ;
|
---|
| 5 | K:$L(X)<6!($L(X)>11)!(X'?.UN) X ;input trans ^DD(65.54,4,
|
---|
| 6 | I $D(X),$D(^LRE("C",X)) S W=X(1)+50000 F Y=0:0 Q:'$D(X) S Y=$O(^LRE("C",X,Y)) Q:'Y K:'$D(^LRE(Y,0)) ^LRE("C",X,Y) I $D(^LRE("C",X,Y)) D I
|
---|
| 7 | Q:'$D(X) I $D(^LRD(65,"B",X))!($D(^LRD(65,"C",X))) W $C(7),!?15,"INVENTORY FILE HAS AN ENTRY WITH SAME ID ! " D O
|
---|
| 8 | Q
|
---|
| 9 | I F Z=0:0 S Z=$O(^LRE("C",X,Y,Z)) Q:'Z I Z<W W !,$C(7),X," assigned to ",$P(^LRE(Y,0),U) K X Q
|
---|
| 10 | Q
|
---|
| 11 | ;
|
---|
| 12 | F Q:X="" S X=$P($P(B,X_":",2),";") Q
|
---|
| 13 | S ;sets C-xref in FILE 65
|
---|
| 14 | S Y=^LRD(65,DA,0),S=$P(Y,U,2),C=$P(Y,U,4),A=$P(Y,U) I C,S]"" S Y=$O(^LAB(66,C,"SU","B",S,0)) S:Y Y=$L($P(^LAB(66,C,"SU",Y,0),U,10)) S:Y ^LRD(65,"C",$E(A,Y+1,$L(A)),DA)=""
|
---|
| 15 | Q
|
---|
| 16 | K ;Kill C-xref in FILE 65
|
---|
| 17 | S LR("DEAD")=0
|
---|
| 18 | S A="" F S A=$O(^LRD(65,"C",A)) Q:A=""!(LR("DEAD")) I $D(^LRD(65,"C",A,DA)) K ^LRD(65,"C",A,DA) S LR("DEAD")=1
|
---|
| 19 | K LR("DEAD")
|
---|
| 20 | Q
|
---|
| 21 | KK S Y=^LRD(65,DA,0),S=$P(Y,U,2),C=$P(Y,U,4),A=LR(65,.01)
|
---|
| 22 | I C,S]"" D
|
---|
| 23 | . S Y=$O(^LAB(66,C,"SU","B",S,0))
|
---|
| 24 | . S:Y Y=$L($P(^LAB(66,C,"SU",Y,0),U,10))
|
---|
| 25 | I Y K ^LRD(65,"C",$E(A,Y+1,$L(A)),DA) Q
|
---|
| 26 | Q
|
---|
| 27 | S1 I 1
|
---|
| 28 | Q
|
---|
| 29 | K1 ;Kill AG x-ref DD(65,4.1,1,
|
---|
| 30 | S A=^LRD(65,DA,6),Z=$P(A,U,4),A=+A
|
---|
| 31 | I A,Z D
|
---|
| 32 | . S B=+$P($G(^LR(A,1.6,Z,0)),U,11)
|
---|
| 33 | . K ^LRD(65,"AB",$E(X,1,30),DA)
|
---|
| 34 | . K ^LRD(65,DA,4),^(5),^(6),^(7),^LR(A,1.6,Z),^LR("AB",A,B,Z)
|
---|
| 35 | . I $D(^LR(A,1.6,0)) S A=^(0),Z=$O(^(0)),^(0)=$P(A,U,1,2)_U_Z_U_$S('Z:Z,1:($P(A,U,4)-1))
|
---|
| 36 | Q
|
---|
| 37 | A ;Makes change to ^LRD(65,"AP" & date unit assigned if necessary
|
---|
| 38 | I X'="C",X'="IG" K ^LRD(65,"AP",DA(1),DA(2)) S $P(^LRD(65,DA(2),2,DA(1),0),U,2)="" Q
|
---|
| 39 | S ^LRD(65,"AP",DA(1),DA(2))="",X(1)=$P(^LRD(65,DA(2),2,DA(1),0),U,2) I 'X(1) S LR=X,X="N",%DT="T" D ^%DT S X=LR,$P(^LRD(65,DA(2),2,DA(1),0),U,2)=Y
|
---|
| 40 | Q
|
---|
| 41 | EN ;
|
---|
| 42 | F A=0:0 S A=$O(^LRD(65,"B",X,A)) Q:'A I $D(LR)#2,$D(^LRD(65,A,0)),$P(^(0),U,4)=LR W $C(7),!,"UNIT IN INVENTORY - EDIT TRANSFUSION DATA THERE !" K X Q
|
---|
| 43 | Q ;input transform ^DD(63.017,.03,0)
|
---|
| 44 | EN1 ;
|
---|
| 45 | S (DIC,DIE)="^LAB(61.3,"
|
---|
| 46 | S X=0 F X(1)=0:0 S X=$O(^LAB(61.3,"B","D",X)) Q:'X I X,^(X)="" Q
|
---|
| 47 | I X S (LRB,DA)=X,DR="2///50710" D ^DIE G END
|
---|
| 48 | S X="D",DIC(0)="ML",DLAYGO=61 D ^DIC K DIC
|
---|
| 49 | S DA=+Y,DR="2///50710" D ^DIE S LRB=$O(^LAB(61.3,"C",50710,0))
|
---|
| 50 | K DLAYGO
|
---|
| 51 | ;
|
---|
| 52 | EN2 ;called by TRANSFUSION entry in EXECUTE CODE file
|
---|
| 53 | S X="N",%DT="T" D ^%DT S X1=Y,X2=-3 D C^%DTC S X=9999999-X
|
---|
| 54 | S A=0 F B=1:1 S A=$O(^LR(LRDFN,"BB",A)) Q:'A!(A>X) W:B=1 $C(7),!,"Specimen(s) received within past 72 hrs:" S Z=^(A,0),Y=+Z D DT^LRU W !,Y,?18,$P(Z,U,6)
|
---|
| 55 | Q
|
---|
| 56 | EN3 ;delete user print list for transfusion & hematology data
|
---|
| 57 | D OUT
|
---|
| 58 | S X="BLOOD BANK" D ^LRUTL
|
---|
| 59 | G:'LRAA OUT
|
---|
| 60 | I '$D(^LRO(69.2,LRAA,7,0)) W $C(7),!!,"There are no user lists." G OUT
|
---|
| 61 | S (DIC,DIE)="^LRO(69.2,LRAA,7,",DIC(0)="AEQM" D ^DIC K DIC G:Y<1 OUT
|
---|
| 62 | S DA=+Y,DA(1)=LRAA,DR=.01 D ^DIE G EN3
|
---|
| 63 | D S X=$O(^LAB(69.9,1,8,"B","DONOR",0)) I 'X W $C(7),"Must define blood bank site parameters using option:",!?3,"Edit blood bank site parameters [LRBLSSP] under the Supervisor menu" K X Q
|
---|
| 64 | S X=^LAB(69.9,1,8,X,0),LRH(2)=$P(X,U,3),LRH(3)=$P(X,U,4) I LRH(2)=""!(LRH(3)="") W $C(7),!!,"Must enter second and third defaults for DONOR using:",!?3,"Edit blood bank site parameters [LRBLSSP] under the Supervisor menu" K X Q
|
---|
| 65 | S LRH(17)=+$P(X,U,6),LRH(20)=+$P(X,U,7) Q
|
---|
| 66 | OUT D V^LRU Q
|
---|
| 67 | O ;enter old donor unit (CAUTION: This unit is in inventory)
|
---|
| 68 | I '$D(LRD("U")) K X Q
|
---|
| 69 | W !!,"Do you still want to enter this unit in the donor file " S %=2 D YN^LRU I %=1 W !,"Ok, done." Q
|
---|
| 70 | K X Q
|
---|
| 71 | P ;from DD(63.01, input transforms for fields 6.1 to 6.4
|
---|
| 72 | Q:'$D(^LR(LRDFN,"BB",LRI,A,X))&('$D(^LR(LRDFN,B,X)))
|
---|
| 73 | W !!,$P(^LAB(61.3,X,0),U)," antigen cannot be present & absent.",! K ^LR(LRDFN,"BB",LRI,C,X) S X=^LR(LRDFN,"BB",LRI,C,0),X(1)=$O(^(0)),^(0)=$P(X,U,1,2)_U_X(1)_U_$S('X(1):"",1:($P(X,U,4)-1)) K X Q
|
---|
| 74 | B ;
|
---|
| 75 | S X="T",%DT="" D ^%DT,D^LRU S LRH=Y
|
---|
| 76 | S %DT="AETX",%DT(0)="-N",%DT("A")="Start with Date TODAY// " D ^%DT K %DT I X="" S Y=DT W LRH
|
---|
| 77 | Q:Y<1 S LRSDT=Y
|
---|
| 78 | S %DT="AETX",%DT("A")="Go to Date TODAY// " D ^%DT K %DT I X="" S Y=DT W LRH
|
---|
| 79 | Q:Y<1 S LRLDT=Y I LRSDT>LRLDT S X=LRSDT,LRSDT=LRLDT,LRLDT=X
|
---|
| 80 | S Y=LRSDT D D^LRU S LRSTR=Y,Y=LRLDT D D^LRU S LRLST=Y K LRH Q
|
---|
| 81 | DT W ! S %DT("A")="Date/time work completed: NOW// ",%DT="AEQTX",%DT(0)="-N" D ^%DT K %DT I X[U!(Y>1&(Y'[".")) W $C(7),!?35,"Not allowed, enter date and time.",!?35,"Future times not allowed." G DT
|
---|
| 82 | I Y<1 S X="N",%DT="EQTX" D ^%DT K %DT
|
---|
| 83 | S LRK=Y W ! Q
|
---|
| 84 | ;
|
---|
| 85 | END K DIC,DIE,DR,DA Q
|
---|