| 1 | LREPI ;DALOI/SED-EMERGING PATHOGENS SEARCH ;5/1/98
 | 
|---|
| 2 |  ;;5.2;LAB SERVICE;**132,175,260,281**;Sep 27, 1994
 | 
|---|
| 3 |  ; Reference to ^DGPT supported by IA #418
 | 
|---|
| 4 |  ; Reference to ^ICD9 supported by IA #10082
 | 
|---|
| 5 |  ; Reference to ^ORD(101 supported by IA #872
 | 
|---|
| 6 |  ; Reference to PATS^PXRMXX supported by IA #3134
 | 
|---|
| 7 | TEST S LRRPS=3000501,LRRPE=3000531,LRRTYPE=1
 | 
|---|
| 8 |  S LREPI(2)="",LREPI(17)="",LREPI(18)="",LREPI(19)=""
 | 
|---|
| 9 |  ;S D0=0 F  S D0=$O(^LAB(69.5,D0)) Q:+D0'>0  D
 | 
|---|
| 10 |  ;.Q:$P(^LAB(69.5,D0,0),U,2)="1"
 | 
|---|
| 11 |  ;.Q:$P(^LAB(69.5,D0,0),U,7)=""
 | 
|---|
| 12 |  ;.Q:'$D(^ORD(101,$P(^LAB(69.5,D0,0),U,7),0))
 | 
|---|
| 13 |  ;.S LREPI(D0)=""
 | 
|---|
| 14 |  S LRBEG=9999999-(LRRPE+.9),LREND=9999999-LRRPS+.999999
 | 
|---|
| 15 | EN ;
 | 
|---|
| 16 |  ;
 | 
|---|
| 17 | INIT ;Set up search criteria
 | 
|---|
| 18 |  ;Fix start and stop date problem CKA 6/2/2002
 | 
|---|
| 19 |  S LRBEG=(9999999-LRRPE)_".0000001",LREND=9999999-LRRPS+.999999
 | 
|---|
| 20 |  K ^TMP($J),^TMP("HLS",$J)
 | 
|---|
| 21 |  S D0=0 F  S D0=$O(LREPI(D0)) Q:+D0'>0  D
 | 
|---|
| 22 |  .S ^TMP($J,$P(^LAB(69.5,D0,0),U,7))=""
 | 
|---|
| 23 |  .S:$P(^LAB(69.5,D0,0),U,8)=1 ^TMP($J,"LREPI",D0)=""
 | 
|---|
| 24 |  .S LRPROT=$P(^LAB(69.5,D0,0),U,7)
 | 
|---|
| 25 |  .Q:LRPROT=""
 | 
|---|
| 26 |  .S D1=0 F  S D1=$O(^LAB(69.5,D0,1,D1)) Q:+D1'>0  D
 | 
|---|
| 27 |  ..S TST=$P(^LAB(69.5,D0,1,D1,0),U)
 | 
|---|
| 28 |  ..Q:'$D(^LAB(60,TST,0))
 | 
|---|
| 29 |  ..Q:$P(^LAB(60,TST,0),U,4)=""
 | 
|---|
| 30 |  ..I $P(^LAB(60,TST,0),U,4)="CH" D
 | 
|---|
| 31 |  ...Q:$P(^LAB(60,TST,0),U,5)=""
 | 
|---|
| 32 |  ...S ^TMP($J,"T",TST,D0)=""
 | 
|---|
| 33 |  ...S ^TMP($J,"TPROT",TST,LRPROT)=""
 | 
|---|
| 34 |  ...S LRIND=$P(^LAB(69.5,D0,1,D1,0),U,2,3)
 | 
|---|
| 35 |  ...S ^TMP($J,$P(^LAB(60,TST,0),U,4),TST)=$P(^LAB(60,TST,0),U,5)_U_LRIND
 | 
|---|
| 36 |  ..I $P(^LAB(60,TST,0),U,4)="CY" D
 | 
|---|
| 37 |  ...S ^TMP($J,"T",TST,D0)=""
 | 
|---|
| 38 |  ...S ^TMP($J,$P(^LAB(60,TST,0),U,4),TST)=""
 | 
|---|
| 39 |  .S D1=0 F  S D1=$O(^LAB(69.5,D0,2,D1)) Q:+D1'>0  S ^TMP($J,"E",$P(^LAB(69.5,D0,2,D1,0),U),D0)=""
 | 
|---|
| 40 |  .S D1=0 F  S D1=$O(^LAB(69.5,D0,9,D1)) Q:+D1'>0  S ^TMP($J,"SNO",$P(^LAB(69.5,D0,9,D1,0),U),D0)=""
 | 
|---|
| 41 |  .S D1=0 F  S D1=$O(^LAB(69.5,D0,3,D1)) Q:+D1'>0  S ^TMP($J,"ICD",$P(^LAB(69.5,D0,3,D1,0),U),D0)=""
 | 
|---|
| 42 |  K D0,D1,TST,LRIND
 | 
|---|
| 43 |  I $D(^TMP($J,"LREPI")) D SEARCH^LREPI4
 | 
|---|
| 44 |  I $D(^TMP($J,"ICD")) D PTF^LREPI5
 | 
|---|
| 45 | LAB63 ;Search file 63 for lab data
 | 
|---|
| 46 |  K LRIND
 | 
|---|
| 47 |  S LRDFN=0 F  S LRDFN=$O(^LR(LRDFN)) Q:+LRDFN'>0  D
 | 
|---|
| 48 |  .Q:'$D(^LR(LRDFN,0))
 | 
|---|
| 49 |  .Q:$P(^LR(LRDFN,0),U,2)'=2
 | 
|---|
| 50 |  .S LRPAT=$P(^LR(LRDFN,0),U,3)
 | 
|---|
| 51 |  .I $D(^TMP($J,"CH")) D CH
 | 
|---|
| 52 |  .I $D(^TMP($J,"CY")) D CYTST^LREPICY
 | 
|---|
| 53 |  .I $D(^TMP($J,"E")) D MI
 | 
|---|
| 54 |  .;I '$D(^TMP($J,"ICD"))&($D(^TMP($J,"SNO"))) D CY^LREPICY
 | 
|---|
| 55 |  .I $D(^TMP($J,"SNO")) D CY^LREPICY
 | 
|---|
| 56 |  ;Retrieve patient list from Clinical Reminders
 | 
|---|
| 57 |  S LRPROTX=$O(^ORD(101,"B","LREPI",""))
 | 
|---|
| 58 |  I LRPROTX]"" S LRSRXX="",LRSRGO=0 F  S LRSRXX=$O(LREPI(LRSRXX)) Q:'LRSRXX  I $G(^LAB(69.5,LRSRXX,0))["HEPATITIS" D  Q
 | 
|---|
| 59 |   . D PATS^PXRMXX(LRRPS,LRRPE,"LREPISRCH")
 | 
|---|
| 60 |   . S EPISRCH=0 F  S EPISRCH=$O(^TMP("LREPISRCH",$J,EPISRCH)) Q:'EPISRCH  D
 | 
|---|
| 61 |   . . S LRENCDT=$P(^TMP("LREPISRCH",$J,EPISRCH),"^") Q:'LRENCDT
 | 
|---|
| 62 |   . . Q:$D(^TMP($J,LRPROTX,EPISRCH,LRENCDT))  ;Encounter date already exists, don't update
 | 
|---|
| 63 |   . . S ^TMP($J,LRPROTX,EPISRCH,LRENCDT)=$P(^TMP("LREPISRCH",$J,EPISRCH),"^",2)
 | 
|---|
| 64 |  I $G(LRREP) D ^LREPI2A
 | 
|---|
| 65 |  I '$G(LRREP) D ^LREPI2
 | 
|---|
| 66 | EXIT ;EXIT
 | 
|---|
| 67 |  S D0=0
 | 
|---|
| 68 |  I $G(LRRTYPE)=0 F  S D0=$O(LREPI(D0)) Q:+D0'>0  D
 | 
|---|
| 69 |  .S $P(^LAB(69.5,D0,0),U,4)=DT
 | 
|---|
| 70 |  K LREPI,DFN,CNT,DA,DIE,DR,DQ,HL,ENTRY,ENDT,ENC,FD,HLECH,HLFS,HLN,HLQ
 | 
|---|
| 71 |  K DDER,D0,HLRST,HLSAN,LRBEG,LRCNT,LRCS,LRDATE,LRDFN,LREFG,LRENCDT
 | 
|---|
| 72 |  K LREND,LRETND,LRHL7,LRINV,LRINVD,LRITN,LRND,LRNL,LRNLT,LRNTE,LROBR
 | 
|---|
| 73 |  K LRPAT,LRPFG,LRPID,LRPROT,LRPV1,LRRPE,LRRPS,LRRTYPE,LRTND,LRTNM,MSG
 | 
|---|
| 74 |  K MSGCNT,PTF,RR,SEG,SP,STDT,TST,UN,TSTNM,VAERR,X,XCNP,XMDUZ,XMZ,ZTSK
 | 
|---|
| 75 |  K AF,D,DI,LRENT,LRIND,LRPATH,OV,LRENDT,ADMDT,EPISITE,EPISRCH
 | 
|---|
| 76 |  K LR31799Z,LRANTI,LRCHK,LRIC,LRIEN,LRIPT,LRMG,LRMGN,LRNX,LRO,LROK
 | 
|---|
| 77 |  K LROVR,LRPCNT,LRPTOT,LRSI,LRSITE,LRCYSP,LRDIS,LRDISI,LRIC,LRICD
 | 
|---|
| 78 |  K LRICDI,LRIEN,LRIPT,LRMG,LRMGN,LRMOR,LRMORI,LRMSG,PXRMITEM
 | 
|---|
| 79 |  K LRSNM,LRSNO,LRSTOP,LRSUB,LRTOP,LRTOPP,LRWKI,LRPRO,LRPROI
 | 
|---|
| 80 |  K LRNDC,LRNTE1,LRFIND,LRDRUG,LRCODE,LRDRSEQ,HLHDR,HLMTIEN,HLMTIENS
 | 
|---|
| 81 |  K HLNEXT,HLNODE,HLQUIT,HLRESLT,HLRESLTA,LRANS,LRDRSQ1,LRPROTX,LRPTY
 | 
|---|
| 82 |  K LRPVVV,LRSRGO,LRSRXX,LRTOLD,LRTRM,LRPREV,LRPRECYC,X1,X2,X3
 | 
|---|
| 83 |  K LRANTIND,LRANTINV,LRREP,LRPV1NUM
 | 
|---|
| 84 |  Q
 | 
|---|
| 85 | ENCT ;SET THE ENCOUNTER FOR PV1
 | 
|---|
| 86 |  S LRPROT=$P(^LAB(69.5,LRPATH,0),U,7)
 | 
|---|
| 87 |  S LRCHK=0 D ADDCHK^LREPI5 Q:LRCHK
 | 
|---|
| 88 |  S LRDATE=9999999-LRINV
 | 
|---|
| 89 |  K VAIN,DFN,VAINDT S DFN=LRPAT,VAINDT=LRDATE D INP^VADPT
 | 
|---|
| 90 |  S LRENCDT=$S(VAIN(7)'="":$P(VAIN(7),U),1:LRDATE)
 | 
|---|
| 91 |  I $P(^LAB(69.5,LRPATH,0),U,8)=1 D CHECK^LREPI4
 | 
|---|
| 92 |  S:'$D(^TMP($J,LRPROT,LRPAT,LRENCDT)) ^TMP($J,LRPROT,LRPAT,LRENCDT)=$S(VAIN(7)'="":"I",1:"O")_U_$G(VAIN(10))
 | 
|---|
| 93 |  S:$P(^TMP($J,LRPROT,LRPAT,LRENCDT),U)="O" ^(LRENCDT)="O"_U_$S($D(LRPATLOC):LRPATLOC,1:"")
 | 
|---|
| 94 |  S:'$D(^TMP($J,LRPROT,LRPAT,LRENCDT,LRPATH,LRINV,ND)) ^TMP($J,LRPROT,LRPAT,LRENCDT,LRPATH,LRINV,ND)=""
 | 
|---|
| 95 |  I $G(LRANTIND)="",$G(LRANTINV)="" Q
 | 
|---|
| 96 |  S:'$D(^TMP($J,LRPROT,LRPATH,LRENCDT,LRPAT,LRINV,ND,LRANTIND,LRANTINV)) ^TMP($J,LRPROT,LRPAT,LRENCDT,LRPATH,LRINV,ND,LRANTIND,LRANTINV)=""
 | 
|---|
| 97 |  Q
 | 
|---|
| 98 | CH ;Check the 'CH' node
 | 
|---|
| 99 |  S LRINV=LRBEG
 | 
|---|
| 100 |  F  S LRINV=$O(^LR(LRDFN,"CH",LRINV)) Q:+LRINV'>0!(LRINV>LREND)  D
 | 
|---|
| 101 |  .Q:$P(^LR(LRDFN,"CH",LRINV,0),U,3)=""
 | 
|---|
| 102 |  .S LRCNT=1,LRTST=0 F  S LRTST=$O(^TMP($J,"CH",LRTST)) Q:+LRTST'>0  D
 | 
|---|
| 103 |  ..S LRND=$P($P(^TMP($J,"CH",LRTST),";",2),U,1) Q:+LRND'>0
 | 
|---|
| 104 |  ..S LRPC=$P($P(^TMP($J,"CH",LRTST),";",3),U,1) Q:+LRPC'>0
 | 
|---|
| 105 |  ..S LRRES=$P($G(^LR(LRDFN,"CH",LRINV,LRND)),U,LRPC) Q:LRRES=""
 | 
|---|
| 106 |  ..S LRPATLOC=$P(^LR(LRDFN,"CH",LRINV,0),U,13)
 | 
|---|
| 107 |  ..S ^TMP($J,"TST",LRTST)=+$G(^TMP($J,"TST",LRTST))+1
 | 
|---|
| 108 |  ..S ^TMP($J,"TST",LRTST,LRDFN)=""
 | 
|---|
| 109 |  ..S LRPATH=0 F  S LRPATH=$O(^TMP($J,"T",LRTST,LRPATH)) Q:+LRPATH'>0  D CHKIND
 | 
|---|
| 110 |  K LRTST,LRND,LRPC,LRRES,LRNO
 | 
|---|
| 111 |  Q
 | 
|---|
| 112 | CHKIND ;Check the results
 | 
|---|
| 113 |  I '$D(^LAB(69.5,LRPATH,1,"B",LRTST)) Q
 | 
|---|
| 114 |  S LRITST=0,ND="CH",LRNO=0
 | 
|---|
| 115 |  F  S LRITST=$O(^LAB(69.5,LRPATH,1,"B",LRTST,LRITST)) Q:+LRITST'>0  D  D:'LRNO ENCT
 | 
|---|
| 116 |  .S LRNO=0
 | 
|---|
| 117 |  .S LRIND=$P(^LAB(69.5,LRPATH,1,LRITST,0),U,2,3)
 | 
|---|
| 118 |  .Q:$P(LRIND,U,1)=""
 | 
|---|
| 119 |  .I $P(LRIND,U,1)=1 D  Q
 | 
|---|
| 120 |  ..Q:'LRRES#2
 | 
|---|
| 121 |  ..S LRSPEC=$P($G(^LR(LRDFN,"CH",LRINV,0)),U,5) Q:LRSPEC=""
 | 
|---|
| 122 |  ..Q:'$D(^LAB(60,LRTST,1,LRSPEC,0))
 | 
|---|
| 123 |  ..S LRLOW=$P(^LAB(60,LRTST,1,LRSPEC,0),U,2),LRHIG=$P(^(0),U,3)
 | 
|---|
| 124 |  ..Q:'LRLOW#2!('LRHIG#2)
 | 
|---|
| 125 |  ..I LRRES<LRLOW!(LRRES>LRHIG) Q
 | 
|---|
| 126 |  ..S LRNO=1
 | 
|---|
| 127 |  .I $P(LRIND,U,2)="" Q
 | 
|---|
| 128 |  .S LRRES=$$UP^XLFSTR(LRRES),LRIND=$$UP^XLFSTR(LRIND)
 | 
|---|
| 129 |  .I $P(LRIND,U,1)=2,(LRRES[$P(LRIND,U,2)) Q
 | 
|---|
| 130 |  .I $P(LRIND,U,1)=3,(LRRES>$P(LRIND,U,2)) Q
 | 
|---|
| 131 |  .I $P(LRIND,U,1)=4,(LRRES<$P(LRIND,U,2)) Q
 | 
|---|
| 132 |  .I $P(LRIND,U,1)=5,(LRRES=$P(LRIND,U,2)) Q
 | 
|---|
| 133 |  .S LRNO=1
 | 
|---|
| 134 |  K LRITST,LRLOW,LRHIG,LRSPEC
 | 
|---|
| 135 |  Q
 | 
|---|
| 136 | MI ;Check the 'MI' node
 | 
|---|
| 137 |  S LRINV=LRBEG
 | 
|---|
| 138 |  F  S LRINV=$O(^LR(LRDFN,"MI",LRINV)) Q:+LRINV'>0!(LRINV>LREND)  D
 | 
|---|
| 139 |  .S LRCNT=1
 | 
|---|
| 140 |  .F LRMIND=3,6,9,12,17 S LRETND=0 F  S LRETND=$O(^LR(LRDFN,"MI",LRINV,LRMIND,LRETND)) Q:+LRETND'>0  D
 | 
|---|
| 141 |  ..I LRMIND=3,$P($G(^LR(LRDFN,"MI",LRINV,1)),U,2)'="F" Q
 | 
|---|
| 142 |  ..I LRMIND'=3,$P($G(^LR(LRDFN,"MI",LRINV,(LRMIND-1))),U,2)'="F" Q
 | 
|---|
| 143 |  ..S LRETI=$P($G(^LR(LRDFN,"MI",LRINV,LRMIND,LRETND,0)),U)
 | 
|---|
| 144 |  ..Q:+LRETI'>0
 | 
|---|
| 145 |  ..Q:'$D(^TMP($J,"E",LRETI))
 | 
|---|
| 146 |  ..S ^TMP($J,"EPROT",LRETI)=""
 | 
|---|
| 147 |  ..S ^TMP($J,"ETI",LRETI)=+$G(^TMP($J,"ETI",LRETI))+1
 | 
|---|
| 148 |  ..S ^TMP($J,"ETI",LRETI,LRDFN)=""
 | 
|---|
| 149 |  ..S LRPATH=0 F  S LRPATH=$O(^TMP($J,"E",LRETI,LRPATH)) Q:+LRPATH'>0  D
 | 
|---|
| 150 |  ...S ND="MI"
 | 
|---|
| 151 |  ...D TOP Q:LRTOP
 | 
|---|
| 152 |  ...I LRMIND=3 D ANTI Q
 | 
|---|
| 153 |  ...D ENCT
 | 
|---|
| 154 |  K LRMIND,LRETI
 | 
|---|
| 155 |  Q
 | 
|---|
| 156 | TOP ;CHECK TO SEE IF SCREEN ON SITE
 | 
|---|
| 157 |  S LRTOP=0
 | 
|---|
| 158 |  S LRSITE=$P($G(^LR(LRDFN,"MI",LRINV,0)),U,5) Q:+LRSITE'>0
 | 
|---|
| 159 |  I ($O(^LAB(69.5,LRPATH,5,0))="")&($O(^LAB(69.5,LRPATH,6,0))="") Q
 | 
|---|
| 160 |  I ($O(^LAB(69.5,LRPATH,5,0))'="")&($O(^LAB(69.5,LRPATH,6,0))'="") Q
 | 
|---|
| 161 |  I ($O(^LAB(69.5,LRPATH,5,0))'="")&($D(^LAB(69.5,LRPATH,5,"B",LRSITE))) Q
 | 
|---|
| 162 |  I ($O(^LAB(69.5,LRPATH,6,0))'="")&('$D(^LAB(69.5,LRPATH,6,"B",LRSITE))) Q
 | 
|---|
| 163 |  S LRTOP=1
 | 
|---|
| 164 |  Q
 | 
|---|
| 165 | ANTI ;LOOK FOR THE ANTIMICROBIAL SUS FOR ORGANISMS
 | 
|---|
| 166 |  I $O(^LAB(69.5,LRPATH,4,0))="" D ENCT Q
 | 
|---|
| 167 |  S LRANTI=0 F  S LRANTI=$O(^LAB(69.5,LRPATH,4,LRANTI)) Q:+LRANTI'>0  D
 | 
|---|
| 168 |  .S LRANT=$G(^LAB(69.5,LRPATH,4,LRANTI,0),U),LRANTIND=$P(^(0),U,2),LRANTINV=$P(^(0),U,3) Q:+LRANT'>0
 | 
|---|
| 169 |  .S LRAND=$P($G(^LAB(62.06,LRANT,0)),U,2) Q:LRAND=""
 | 
|---|
| 170 |  .Q:'$D(^LR(LRDFN,"MI",LRINV,LRMIND,LRETND,LRAND))
 | 
|---|
| 171 |  .Q:$P(^LR(LRDFN,"MI",LRINV,LRMIND,LRETND,LRAND),U,2)=""
 | 
|---|
| 172 |  .Q:$$UP^XLFSTR($E($P($G(^LR(LRDFN,"MI",LRINV,LRMIND,LRETND,LRAND)),U,2),1,1))="S"
 | 
|---|
| 173 |  .D ENCT
 | 
|---|
| 174 |  .;CHECK MIC VALUES
 | 
|---|
| 175 |  .I LRANTIND=""!(LRANTINV="") Q
 | 
|---|
| 176 |  .S LRRES=$$UP^XLFSTR($E($P($G(^LR(LRDFN,"MI",LRINV,LRMIND,LRETND,LRAND)),U,2),1,1)),LRANTINV=$$UP^XLFSTR(LRANTINV),LRANTIND=$$UP^XLFSTR(LRANTIND)
 | 
|---|
| 177 |  .I LRANTIND=1,(LRRES[LRANTINV) D ENCT Q
 | 
|---|
| 178 |  .I LRANTIND=2,(LRRES>LRANTINV) D ENCT Q
 | 
|---|
| 179 |  .I LRANTIND=3,(LRRES<LRANTINV) D ENCT Q
 | 
|---|
| 180 |  .I LRANTIND=4,(LRRES=LRANTINV) D ENCT Q
 | 
|---|
| 181 |  Q
 | 
|---|
| 182 |  ;
 | 
|---|