1 | LAMIVTLC ;DALISC/DRH - MICRO VITEK LITERAL DATA MANAGER ; 1/8/96
|
---|
2 | ;;5.2;AUTOMATED LAB INSTRUMENTS;**12,30,37**;Sep 27,1994
|
---|
3 | EN ;
|
---|
4 | ;
|
---|
5 | D ^LAMIVTLW
|
---|
6 | ;
|
---|
7 | S LRCMNT=$G(LART("o5",1))
|
---|
8 | S LRBACT=$G(LART("t4",1))
|
---|
9 | N LACCN,LASSN ;,J,JJ,JJJ,LADATA
|
---|
10 | S DBATA=""
|
---|
11 | I $G(CI)="" Q
|
---|
12 | I $G(LACI(CI))="" Q
|
---|
13 | I $G(LAPD(PI))="" Q
|
---|
14 | Q:'$D(LART(LABGNODE))
|
---|
15 | ;Q:'$D(LART(LANTIB))
|
---|
16 | S LACCN=LACI(CI) ;,ISQN=LACCN
|
---|
17 | S LASSN=LAPD(PI)
|
---|
18 | S LADATA="",(J,JJ,JJJ)=0
|
---|
19 | F S J=$O(LART(LABGNODE,J)) Q:'J D
|
---|
20 | . F S JJ=$O(LART(RT,JJ)) Q:'JJ D
|
---|
21 | .. I '$D(LART(LANTIB)) S LADATA(LART("t1",J)_LART(LABGNODE,J),LART(RT,JJ))="" QUIT
|
---|
22 | .. F S JJJ=$O(LART(LANTIB,JJJ)) Q:'JJJ D
|
---|
23 | ... S LADATA(LART("t1",J)_LART(LABGNODE,J),LART(RT,JJ),LART(LANTIB,JJJ))=$S($G(LART(LAMIC,JJJ))'="":LART(LAMIC,JJJ),1:" ")_U_$S(LART(A4,JJJ)'="":LART(A4,JJJ),1:"NA")
|
---|
24 | D SETMIC(LAPD(PI)_U_LACI(CI)) K LADATA
|
---|
25 | D NA^LAMIVTLW
|
---|
26 | Q
|
---|
27 | ;;5.2;AUTOMATED LAB INSTRUMENTS;**12,30**;Sep 27,1994
|
---|
28 | ; VLIST:
|
---|
29 | ;----------------------------------------------------------
|
---|
30 | ;LRA1=Antibody, LRVAB=Drug Node, LRORGNSM=ORGANISM, LRA3=MIC
|
---|
31 | ;LRID=SSN^ACCN
|
---|
32 | ;-----------------------------------------------------------
|
---|
33 | SETMIC(LRIDX) ;This function resolves the vitek fields
|
---|
34 | ; resolved fields go to Alternative Interpretation (AI) written by FHS
|
---|
35 | ; DATA is the array..DATA(ORG,AB)=MIC
|
---|
36 | ; ID is ssn^accn (two pieces)
|
---|
37 | ;S TSK=3 D LA1+3^LASET ;--> left in for debugging
|
---|
38 | LA3 ;X LAGEN ;set auto inst variables ;--> left in for debugging
|
---|
39 | ;----------------------------------------------------------------------
|
---|
40 | ; This block grabs the accn area, accn date and specimen
|
---|
41 | ; LRAA=ACCN AREA, LRAD=ACCN DATE, ID=SSN^ACCN NUMBER(comming from vitek)
|
---|
42 | ; LRSP=SPECIMEN --> TAKEN FROM PREVIOUS ENCODED VITEK RTNS.
|
---|
43 | ID S SSN=+LRIDX
|
---|
44 | ;D NA^LAMIVTLW
|
---|
45 | S LRID=$P(LRIDX,U,2)
|
---|
46 | S LRA=$P(^LAH(LWL,1,ISQN,0),U,3,5)
|
---|
47 | S LRAA=+LRA ;Accn area
|
---|
48 | S LRAD=$P(LRA,U,2) ;Accn date
|
---|
49 | K LRSP
|
---|
50 | S LRAN=ID
|
---|
51 | ;
|
---|
52 | Q:'$G(LRAN)!('$G(LRAD))!('$G(LRAA))
|
---|
53 | Q:'$D(^LRO(68,LRAA,1,LRAD,1,LRAN,0))
|
---|
54 | ;
|
---|
55 | S LRSNORK=0
|
---|
56 | F S LRSNORK=$O(^LRO(68,LRAA,1,LRAD,1,LRAN,5,LRSNORK)) Q:LRSNORK="" D
|
---|
57 | . Q:$D(^LRO(68,LRA,1,LRAD,1,LRAN,5,LRSNORK))
|
---|
58 | . I LRAA,LRAD,LRSNORK S LRSP=+^LRO(68,LRAA,1,LRAD,1,LRAN,5,LRSNORK,0)
|
---|
59 | . E S LRSP=$O(^LAB(61,"B","UNKNOWN",0))
|
---|
60 | ;_________________________________________________________________
|
---|
61 | UNPACK ; Here is where we unpack the bug,drug and min inhib conc (MIC)
|
---|
62 | ; LRORGNSM,CARD,LRA1 and LRA3
|
---|
63 | ; Multiple drugs and MIC vales per data set.
|
---|
64 | S LRTIC=0
|
---|
65 | S LRORGNZM=""
|
---|
66 | K LRISOFLG
|
---|
67 | F S LRORGNZM=$O(LADATA(LRORGNZM)) Q:LRORGNZM="" D
|
---|
68 | . S CARD=""
|
---|
69 | . F S CARD=$O(LADATA(LRORGNZM,CARD)) Q:CARD="" D
|
---|
70 | .. I '$D(LART(LANTIB)) D ALTSET QUIT
|
---|
71 | .. S LRA1=""
|
---|
72 | .. F S LRA1=$O(LADATA(LRORGNZM,CARD,LRA1)) Q:LRA1="" D
|
---|
73 | ... S LRA3=LADATA(LRORGNZM,CARD,LRA1)
|
---|
74 | ... D CALL
|
---|
75 | Q
|
---|
76 | ALTSET ;
|
---|
77 | S ISOLATE=+LRORGNZM,LRORGNSM=$P(LRORGNZM,ISOLATE,2)
|
---|
78 | ;If an isolate is not marked on vitek it = zero
|
---|
79 | ;So ^LAH does not get set with a "0" the following is used
|
---|
80 | ;---------------------------------------------------------
|
---|
81 | I ISOLATE=0 SET LRISOFLG=1
|
---|
82 | I $G(LRISOFLG) S ISOLATE=ISOLATE+1
|
---|
83 | ;----------------------------------------------------------
|
---|
84 | S ISOL=$O(^LAB(61.39,1,1,"B",LRORGNSM,0))
|
---|
85 | S ISOL=^LAB(61.39,1,1,ISOL,1) ; IEN ETIOLOGY FIELD
|
---|
86 | S LRORGNSM=ISOL
|
---|
87 | S ^LAH(LWL,1,ISQN,2,2)="CARD^"_CARD
|
---|
88 | S ^LAH(LWL,1,ISQN,3,ISOLATE,0)=ISOL_"^^"_CARD
|
---|
89 | Q
|
---|
90 | CALL ;
|
---|
91 | ;This is where we call the LIC file containing the translation
|
---|
92 | ; for drugs and bugs comming from the instrument.
|
---|
93 | ;I '$D(LRORGNSM) W !!!!,"NO ORG XMITTED"
|
---|
94 | ;_________________________________________________________________
|
---|
95 | ;Q:'$Q(^LAB(61.39,1,2,"B",LRA1))
|
---|
96 | S TMPAB=LRA1
|
---|
97 | S ISOLATE=+LRORGNZM,LRORGNSM=$P(LRORGNZM,ISOLATE,2)
|
---|
98 | ;If an isolate is not marked on vitek it = zero
|
---|
99 | ;So ^LAH does not get set with a "0" the following is used
|
---|
100 | ;---------------------------------------------------------
|
---|
101 | ;I ISOLATE=0 SET LRISOFLG=1
|
---|
102 | ;I $G(LRISOFLG) S ISOLATE=ISOLATE+1
|
---|
103 | ;S ISOLATE=ISOLATE+1
|
---|
104 | ;----------------------------------------------------------
|
---|
105 | S ISOL=$O(^LAB(61.39,1,1,"B",LRORGNSM,0))
|
---|
106 | S ISOL=^LAB(61.39,1,1,ISOL,1) ; IEN ETIOLOGY FIELD
|
---|
107 | S LRORGNSM=ISOL
|
---|
108 | ;S ISOL=$P(^LAB(61.2,ISOL,0),U) ; Pull out name from etiology
|
---|
109 | S LAVAB2=$O(^LAB(61.39,1,2,"B",LRA1,""))
|
---|
110 | S LAVAB1=^LAB(61.39,1,2,LAVAB2,1) ; IEN ANTIMICROBIAL SUSCEP
|
---|
111 | S LAVAB=$P(^LAB(62.06,LAVAB1,0),U,2) ; Pull out drug node (n.xxxx)
|
---|
112 | Q:'$G(LAVAB)
|
---|
113 | ;-----------------------------------------------------------------
|
---|
114 | S K1=LRA3
|
---|
115 | S MIC(ISOL,LAVAB)=LRA3
|
---|
116 | S ORG(ISOL)=ISOL
|
---|
117 | ;S ^LAH(LWL,1,ISQN,3,ISOL,0)=ISOL
|
---|
118 | S ^LAH(LWL,1,ISQN,2,2)="CARD^"_CARD
|
---|
119 | S ^LAH(LWL,"ISO",LACCN,ISOLATE)=ISQN
|
---|
120 | S ^LAH(LWL,1,ISQN,3,ISOLATE,1,0)=LRCMNT_U_LRBACT
|
---|
121 | S ^LAH(LWL,1,ISQN,3,ISOLATE,0)=ORG(ISOL)_"^^"_CARD
|
---|
122 | ;S ^TMPDRH(LACCN,LRORGNSM,CARD,TMPAB)=LRA3
|
---|
123 | LA4 ;This is where I call FHS interp. program
|
---|
124 | ;------------------------------------------------------------------
|
---|
125 | S J=0
|
---|
126 | F S J=$O(MIC(ISOL,J)) Q:J<1 D
|
---|
127 | . S K=MIC(ISOL,J)_"^"
|
---|
128 | . D INTRP^LAMIVTE6 D QUIT
|
---|
129 | .. ;S ^LAH(LWL,1,ISQN,3,ISOLATE,J)=K_$G(S) ; looking for AI
|
---|
130 | .. ;K ^LAH(LWL,1,ISQN,3,ISOL)
|
---|
131 | .. S ^LAH(LWL,1,ISQN,3,ISOLATE,J)=MIC(ISOL,J)_"^"_$P($G(S),U,2)
|
---|
132 | END ;
|
---|
133 | ;K LRORGNSM,LRA1
|
---|
134 | K MIC,LRVAB,LRA3,LRID ; <--- COMMENT OUT FOR TESTING
|
---|
135 | Q
|
---|
136 | ;___________________________________________________________________
|
---|
137 | ; For debugging purposes only
|
---|
138 | DEBUG ;
|
---|
139 | K ZLACI,ZLART,ZLAPD,ZLASI
|
---|
140 | S LACOUNT=LACOUNT+1
|
---|
141 | S %X="LACI(",%Y="ZLACI(" D %XY^%RCR
|
---|
142 | S %Y="^TMP(""LA"",LACOUNT,""LACI""," D %XY^%RCR
|
---|
143 | S %X="LART(",%Y="ZLART(" D %XY^%RCR
|
---|
144 | S %Y="^TMP(""LA"",LACOUNT,""LART""," D %XY^%RCR
|
---|
145 | S %X="LAPD(",%Y="ZLAPD(" D %XY^%RCR
|
---|
146 | S %Y="^TMP(""LA"",LACOUNT,""LAPD""," D %XY^%RCR
|
---|
147 | S %X="LASI(",%Y="ZLASI(" D %XY^%RCR
|
---|
148 | S %Y="^TMP(""LA"",LACOUNT,""LASI""," D %XY^%RCR
|
---|
149 | Q
|
---|