| 1 | LAMIVTLD ;SLC/RWF/DAL/DRH-VITEK BUILD DOWNLOAD FILE ;7/18/89  11:51 | 
|---|
| 2 | ;;5.2;AUTOMATED LAB INSTRUMENTS;**12,33,42,48**;Sep 27, 1994 | 
|---|
| 3 | ;Call with LRLL = load list to build | 
|---|
| 4 | ;Call with LRINST = Auto Instrument pointer | 
|---|
| 5 | A ; | 
|---|
| 6 | ; | 
|---|
| 7 | S:$D(ZTQUEUED) ZTREQ="@" | 
|---|
| 8 | S:'$D(T) T=LRINST | 
|---|
| 9 | D:'$D(^LA(LRINST,"O")) SETO^LAB S LREND="" | 
|---|
| 10 | Q:'$D(^LRO(68.2,LRLL,1,LRTRAY1)) | 
|---|
| 11 | S:'$D(^LA(T,"P3")) ^("P3")=0 S ^("P3")=^("P3")+1 | 
|---|
| 12 | ; | 
|---|
| 13 | S SZ=$P(^LAB(69.9,1,1),U,7) ;---Download full data | 
|---|
| 14 | ; | 
|---|
| 15 | F LRTRAY=LRTRAY1:0 Q:+LRTRAY'>0  D:$D(^LRO(68.2,LRLL,1,LRTRAY)) TRAY D | 
|---|
| 16 | .  S LRTRAY=$O(^LRO(68.2,LRLL,1,LRTRAY)) Q:LRTRAY'>0 | 
|---|
| 17 | ; | 
|---|
| 18 | S LRECORD=$C(4) | 
|---|
| 19 | D SEN | 
|---|
| 20 | TIK ; | 
|---|
| 21 | I $D(^LA("TP")) L +^LA("TP"):10 S C=1+^LA("TP",0),^(0)=C,^LA("TP",C)=T_"^Sent:~E" L -^LA("TP"):10 | 
|---|
| 22 | ; | 
|---|
| 23 | L +^LA("Q"):10 S Q=^LA("Q")+1,^("Q")=Q,^("Q",Q)=T L -^LA("Q"):10 | 
|---|
| 24 | D NEW^LASET | 
|---|
| 25 | ; | 
|---|
| 26 | K C,CNT,DOB,I,J,LRAA,LRAD,LRADAT,LRADIA,LRAN,LRCOM,LRCTY,LRCUP,LRDC,LRDPF,LRECORD,LRNDA,LRPMD,PRPNM,LRPRE,LRRD,LRRT,LRS,LRSERV,LRSI,LRSP,LRSPEC,LRSSN,LRSUM,LRTC,LRWARD,LRWRD,PNM,Q,SEX,SSN,SZ,T Q | 
|---|
| 27 | ;----------------------------------------------------------------------- | 
|---|
| 28 | TRAY ; | 
|---|
| 29 | F LRCUP=0:0 S LRCUP=$O(^LRO(68.2,LRLL,1,LRTRAY,1,LRCUP)) Q:+LRCUP'>0  D | 
|---|
| 30 | .  S LRECORD=$C(5) D SEN,BLD S LRECORD=$C(4) D SEN | 
|---|
| 31 | Q | 
|---|
| 32 | BLD ; | 
|---|
| 33 | S LRECORD=$C(2) | 
|---|
| 34 | D SEN | 
|---|
| 35 | S LRSUM=0,LRECORD=$C(30)_"mtmpr|" | 
|---|
| 36 | D SAMPLE S LRECORD=$C(3) D SEN | 
|---|
| 37 | QUIT | 
|---|
| 38 | ; | 
|---|
| 39 | ;----------------------------------------------------------------------- | 
|---|
| 40 | SAMPLE ; | 
|---|
| 41 | S (LRSSN,DOB,LRWRD,LRS,LRDIA,LRADAT,LRWARD,LRSERV,LRDC,LRRT,LRRD,LRCOM,LREND)="" | 
|---|
| 42 | S LRL=^LRO(68.2,LRLL,1,LRTRAY,1,LRCUP,0) | 
|---|
| 43 | S LRAA=+LRL | 
|---|
| 44 | S LRAD=$P(LRL,U,2) | 
|---|
| 45 | S LRAN=$P(LRL,U,3) | 
|---|
| 46 | D PNM | 
|---|
| 47 | I LRSSN']"" S LRECORD=LRECORD_"|pi"_LRAN D SUM G M | 
|---|
| 48 | I 'SZ S LRECORD=LRECORD_"|pi"_LRSSN D SUM G M | 
|---|
| 49 | S LRECORD=LRECORD_"pn"_$G(PNM)_"|pi"_$G(LRSSN)_"|" | 
|---|
| 50 | S:DOB]"" LRECORD=LRECORD_"pb"_DOB_"|" | 
|---|
| 51 | S:SEX]"" LRECORD=LRECORD_"ps"_SEX_"|" | 
|---|
| 52 | ; | 
|---|
| 53 | ; | 
|---|
| 54 | I LRWRD]"" D | 
|---|
| 55 | . S LRWRD=$S($L($P(LRWRD," ",1)_" "_$P(LRWRD," ",2))<7:$P(LRWRD," ",1)_" "_$P(LRWRD," ",2),1:$P(LRWRD," ",1)),LRWRD=$E(LRWRD,1,6) | 
|---|
| 56 | . S LRECORD=LRECORD_"pl"_$E(LRWRD,1,6)_"|" | 
|---|
| 57 | ; | 
|---|
| 58 | ;---------put in chk for setup wild cards----------- | 
|---|
| 59 | D ^LAMIVTL6 | 
|---|
| 60 | ;S:LRWRD]"" LRECORD=LRECORD_"|w1"_LRWRD_"|" | 
|---|
| 61 | D:$L(LRECORD)>1 SUM | 
|---|
| 62 | ;----------------------End Patient section------------------------------ | 
|---|
| 63 | ; | 
|---|
| 64 | S LRECORD=$C(30) | 
|---|
| 65 | S:LRS]"" LRECORD=LRECORD_"px"_$G(LRS)_"|" | 
|---|
| 66 | S:LRADIA]"" LRECORD=LRECORD_"po"_LRADIA_"|" | 
|---|
| 67 | S:LRADAT]"" LRECORD=LRECORD_"pa"_LRADAT_"|" D:$L(LRECORD)>1 SUM | 
|---|
| 68 | S X=^LRO(68,LRAA,1,LRAD,1,LRAN,0),LRWARD=$P(X,"^",7) S:LRWARD="" LRWARD="UNK" S LRSERV=$P(X,"^",9) | 
|---|
| 69 | ; | 
|---|
| 70 | S LRSERV=$G(VAIN(3)) | 
|---|
| 71 | S LRDOC=$P(X,"^",8) | 
|---|
| 72 | S:LRDOC]"" LRDOC=$P($G(^VA(200,+LRDOC,0)),U) | 
|---|
| 73 | S:LRDOC="" LRDOC="UNKNOWN" | 
|---|
| 74 | S X=^LRO(68,LRAA,1,LRAD,1,LRAN,3),LRDC=$P(X,"^",1) | 
|---|
| 75 | S LRTC=$P(LRDC,".",2) | 
|---|
| 76 | S LRTC=$E(LRTC_"0000",1,2)_":"_$E(LRTC_"0000",3,4) | 
|---|
| 77 | S LRDC=$$Y2K^LRX(LRDC) | 
|---|
| 78 | S LRRD=$P(X,"^",3) | 
|---|
| 79 | S LRRT=$P(LRRD,".",2) | 
|---|
| 80 | S LRRT=$E(LRRT_"0000",1,2)_":"_$E(LRRT_"0000",3,4) | 
|---|
| 81 | S LRRD=$$Y2K^LRX(LRRD) | 
|---|
| 82 | S LRCOM=$P(X,"^",6),X="" | 
|---|
| 83 | M F LRSPEC=0:0 S LRSPEC=$O(^LRO(68,LRAA,1,LRAD,1,LRAN,5,LRSPEC)) Q:LRSPEC'>0  D T2 | 
|---|
| 84 | ; | 
|---|
| 85 | Q | 
|---|
| 86 | PNM ;Get patient name and SSN from an accession. | 
|---|
| 87 | S X=^LRO(68,LRAA,1,LRAD,1,LRAN,0) | 
|---|
| 88 | S X=^LR(+X,0) | 
|---|
| 89 | S LRPNM="" S LRDPF=$P(X,U,2),DFN=$P(X,"^",3) D PT^LRX | 
|---|
| 90 | D ^VADPT D INP^VADPT | 
|---|
| 91 | S:$D(SSN) LRSSN=$E(SSN,1,3)_$E(SSN,5,6)_$E(SSN,8,11) | 
|---|
| 92 | ;----fileman can do this---------------------------------- | 
|---|
| 93 | S DOB=$$Y2K^LRX(DOB) | 
|---|
| 94 | S (LRS,LRADIA,LRPMD,LRADAT)="" | 
|---|
| 95 | QUIT | 
|---|
| 96 | ;-------------------End patient Look-up-------------------------------- | 
|---|
| 97 | ; | 
|---|
| 98 | T2 ; | 
|---|
| 99 | ;-----\/------------------Bashfull ref. must go! | 
|---|
| 100 | ; | 
|---|
| 101 | S X=$G(^LRO(68,LRAA,1,LRAD,1,LRAN,5,LRSPEC,0)) | 
|---|
| 102 | S LRSP=$P(^LAB(62,$P(X,U,2),0),"^",1) | 
|---|
| 103 | S LRSI=$P(^LAB(61,+X,0),"^",2) | 
|---|
| 104 | ; | 
|---|
| 105 | ; | 
|---|
| 106 | S LRECORD=$C(30)_"si|ss"_$E(LRSP,1,6)_"|st"_$E(LRSI,1,6)_"|" | 
|---|
| 107 | S:SZ LRECORD=LRECORD_"sl"_LRWARD_"|sx"_$G(LRSERV)_"|" | 
|---|
| 108 | ; | 
|---|
| 109 | D:$L(LRECORD)>1 SUM | 
|---|
| 110 | I SZ S LRECORD=$C(30)_"s1"_$P($G(LRDC),"@")_"|s2"_LRTC_"|s3"_$P($G(LRRD),"@")_"|s4"_LRRT_"|sc"_LRCOM_"|" D:$L(LRECORD)>1 SUM | 
|---|
| 111 | ; | 
|---|
| 112 | S I=0 | 
|---|
| 113 | F  S I=$O(^LRO(68,LRAA,1,LRAD,1,LRAN,4,I)) Q:+I'>0  D | 
|---|
| 114 | .  S LRCTY=$P(^LAB(60,I,0),U,1),LRPRE=$P(^(0),U,21) | 
|---|
| 115 | .  I LRPRE]"" S LRECORD=$C(30)_"ci"_(LRPRE*100000+LRAN)_"|ct"_$E(LRCTY,1,6)_"|" D SUM | 
|---|
| 116 | ; | 
|---|
| 117 | S LRECORD=$C(29) D SUM S LRECORD="" | 
|---|
| 118 | QUIT | 
|---|
| 119 | ; | 
|---|
| 120 | SUM ; | 
|---|
| 121 | I $A($E(LRECORD,1))=30 S LRSUM=LRSUM+13 D | 
|---|
| 122 | .  F J=1:1:$L(LRECORD) S LRSUM=LRSUM+$A($E(LRECORD,J)) | 
|---|
| 123 | S:$A($E(LRECORD,1))=29 LRSUM=LRSUM+29,LRSUM=LRSUM#256,LRSUM=$E("0123456789abcdef",(LRSUM\16+1))_$E("0123456789abcdef",(LRSUM#16+1)),LRECORD=LRECORD_LRSUM,LRSUM=0 | 
|---|
| 124 | SEN S CNT=^LA(LRINST,"O")+1,^("O")=CNT,^("O",CNT)=LRECORD Q | 
|---|