[613] | 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
|
---|