| [613] | 1 | LREPI2 ;DALOI/SED-EMERGING PATHOGENS HL7 BUILD ;5/1/98 | 
|---|
|  | 2 | ;;5.2;LAB SERVICE;**132,157,175,242,260,281,320**;Sep 27, 1994 | 
|---|
|  | 3 | ; | 
|---|
|  | 4 | ;Reference to ^DPT(DFN,0),U,9) supported by IA # 10035 | 
|---|
|  | 5 | START ;START WITH THE PROTOCOL USED | 
|---|
|  | 6 | S LRPROT=0 F  S LRPROT=$O(^TMP($J,LRPROT)) Q:+LRPROT'>0  D | 
|---|
|  | 7 | .D INIT^HLFNC2(LRPROT,.HL) | 
|---|
|  | 8 | .S LRCS=$E(HL("ECH")),LRMSGNM=1,LRMSGSZ=0 | 
|---|
|  | 9 | .S LRMSGDF=$S(+$P($G(^LAB(69.4,LRPROT,0)),U,3)>0:+$P($G(^LAB(69.4,LRPROT,0)),U,3),1:30000) | 
|---|
|  | 10 | .D EN I LRMSGSZ D MOVE,SEND | 
|---|
|  | 11 | .F LRTND="ETI","TST","HEP" D:$D(^TMP($J,LRTND)) TOTAL | 
|---|
|  | 12 | .D SEND,ALERT | 
|---|
|  | 13 | D REPORT^LREPIRP | 
|---|
|  | 14 | K ^TMP("HLS",$J) | 
|---|
|  | 15 | K LRMSGDF,LRMSGNM,LRMSGSZ,%,%X | 
|---|
|  | 16 | Q | 
|---|
|  | 17 | ALERT ;Send a Alert if desired. | 
|---|
|  | 18 | K XQA,XQAMSG,XQAOPT,XQAROU,XQAID,XQADATA,XQAFLAG | 
|---|
|  | 19 | Q:+$G(LRRTYPE)=1 | 
|---|
|  | 20 | S X="NOW",%DT="SRT" D ^%DT,DD^%DT | 
|---|
|  | 21 | S XQAMSG=$P(^LAB(69.4,LRPROT,0),U,5)_" Was processed at "_Y | 
|---|
|  | 22 | ;GET THE DUZ'S FOR ALERTS | 
|---|
|  | 23 | S LRIEN=0 F  S LRIEN=$O(^LAB(69.4,LRPROT,1,LRIEN)) Q:+LRIEN'>0  D | 
|---|
|  | 24 | .S LRDATA=$G(^LAB(69.4,LRPROT,1,LRIEN,0)) | 
|---|
|  | 25 | .I $P(LRDATA,";",2)["VA(200" S XQA($P(LRDATA,";",1))="" | 
|---|
|  | 26 | .I $P(LRDATA,";",2)["XMB(3.8" D | 
|---|
|  | 27 | ..S LRMG=$P(LRDATA,";",1) ;Q:'$D(^XMB(3.8,LRMG)) | 
|---|
|  | 28 | ..S LRMGN=$$GET1^DIQ(69.4,LRMG,1) Q:LRMGN="" | 
|---|
|  | 29 | ..S X=LRMGN,XMDUZ=DUZ D INST^XMA21 | 
|---|
|  | 30 | ..;S LRDUZ=0 F  S LRDUZ=$O(^XMB(3.8,LRMG,1,"B",LRDUZ)) Q:+LRDUZ'>0  S XQA(LRDUZ)="" | 
|---|
|  | 31 | Q:'$D(XQA) | 
|---|
|  | 32 | D SETUP^XQALERT | 
|---|
|  | 33 | Q | 
|---|
|  | 34 | SEND ;SEND THE HL7 MESSAGE | 
|---|
|  | 35 | D HEAD | 
|---|
|  | 36 | N HLP | 
|---|
|  | 37 | S HLP("NAMESPACE")="LR" | 
|---|
|  | 38 | D GENERATE^HLMA(LRPROT,"GM",1,.HLRST,"",.HLP) | 
|---|
|  | 39 | S LRMSGNM=LRMSGNM+1,LRMSGSZ=0 | 
|---|
|  | 40 | K ^TMP("HLS",$J) | 
|---|
|  | 41 | Q | 
|---|
|  | 42 | EN ;ENTRY TO BUILD A MESSAGE | 
|---|
|  | 43 | S (LRCNT,LRPID)=1,DFN=0 | 
|---|
|  | 44 | F  S DFN=$O(^TMP($J,LRPROT,DFN)) Q:+DFN'>0  D | 
|---|
|  | 45 | .I LRMSGSZ>5000 D MOVE,SEND | 
|---|
|  | 46 | .Q:$E($P(^DPT(DFN,0),U,9),1,5)="00000" | 
|---|
|  | 47 | .D PID^LREPI3 | 
|---|
|  | 48 | .S LRPV1=1,LRENDT=0,LRPFG="",LREFG=0,LRPVVV=0 | 
|---|
|  | 49 | .F  S LRENDT=$O(^TMP($J,LRPROT,DFN,LRENDT)) S LRPFG="" Q:+LRENDT'>0!(LREFG)  D | 
|---|
|  | 50 | ..D PV1 | 
|---|
|  | 51 | ..I $D(^TMP("LREPISRCH",$J,DFN)),LRPROT=LRPROTX D RXNT^LREPIPH | 
|---|
|  | 52 | ..S LRPATH=0,LRNTE=1,LRPVVV=1 | 
|---|
|  | 53 | ..F  S LRPATH=$O(^TMP($J,LRPROT,DFN,LRENDT,LRPATH)) Q:+LRPATH'>0!(LREFG)  D | 
|---|
|  | 54 | ...D:LRPFG'=LRPATH NTE^LREPI3 | 
|---|
|  | 55 | ...S LRPFG=LRPATH,LROBR=1,LRINVD=0 | 
|---|
|  | 56 | ...F  S LRINVD=$O(^TMP($J,LRPROT,DFN,LRENDT,LRPATH,LRINVD)) Q:+LRINVD'>0!(LREFG)  D | 
|---|
|  | 57 | ....S LRND="" | 
|---|
|  | 58 | ....F  S LRND=$O(^TMP($J,LRPROT,DFN,LRENDT,LRPATH,LRINVD,LRND)) Q:LRND=""!(LREFG)  D | 
|---|
|  | 59 | .....S LRDFN=$$LRDFN^LR7OR1(DFN) Q:'LRDFN | 
|---|
|  | 60 | .....S LREFG=+$P($G(^LAB(69.5,LRPATH,0)),U,6) | 
|---|
|  | 61 | .....S:LRND'="PTF" LROBR=$$EN^LREPI1(LRDFN,LRND,LRINVD,LROBR)+1 | 
|---|
|  | 62 | .....D:LRND="PTF" DG1^LREPI3 | 
|---|
|  | 63 | .....D MOVE | 
|---|
|  | 64 | Q | 
|---|
|  | 65 | TOTAL ;Report the total counts  ->    "ETI" or "TST" or "HEP" | 
|---|
|  | 66 | ;                                \/ | 
|---|
|  | 67 | S LRITN=0 F  S LRITN=$O(^TMP($J,LRTND,LRITN)) Q:+LRITN'>0  D | 
|---|
|  | 68 | .S (LRNLT,LRTNM)="" | 
|---|
|  | 69 | .I LRTND="TST" D | 
|---|
|  | 70 | ..I '$D(^TMP($J,"TPROT",LRITN,LRPROT)) QUIT | 
|---|
|  | 71 | ..S LRTNM=$P($G(^LAB(60,LRITN,0)),U,1) | 
|---|
|  | 72 | ..S LRNL=$G(^LAB(60,LRITN,64)) Q:+LRNL'>0 | 
|---|
|  | 73 | ..Q:'$D(^LAM(LRNL,0)) | 
|---|
|  | 74 | ..S LRNLT=$P(^LAM(LRNL,0),U,2) | 
|---|
|  | 75 | .I LRTND="ETI" D | 
|---|
|  | 76 | ..I '$D(^TMP($J,"EPROT",LRITN)) QUIT | 
|---|
|  | 77 | ..S LRTNM=$P($G(^LAB(61.2,LRITN,0)),U,1) | 
|---|
|  | 78 | ..S LRNL=$G(^LAB(61.2,LRITN,64)) Q:+LRNL'>0 | 
|---|
|  | 79 | ..Q:'$D(^LAM(LRNL,0)) | 
|---|
|  | 80 | ..S LRNLT=$P(^LAM(LRNL,0),U,2) | 
|---|
|  | 81 | .I LRTND="STOT" D | 
|---|
|  | 82 | ..I '$D(^TMP($J,"SPROT",LRITN,LRPROT)) QUIT | 
|---|
|  | 83 | ..S LRTNM="" | 
|---|
|  | 84 | ..S LRNL=LRITN | 
|---|
|  | 85 | ..S LRNLT="" | 
|---|
|  | 86 | .I LRTND="HEP" D | 
|---|
|  | 87 | ..I '$D(^TMP($J,"HEP",LRITN)) QUIT | 
|---|
|  | 88 | ..S LRNLT="" | 
|---|
|  | 89 | ..I LRITN=1 S LRTNM="1-Declined Assessment for Hepatitis C" | 
|---|
|  | 90 | ..I LRITN=2 S LRTNM="2-No Risk Factors for Hepatitis C" | 
|---|
|  | 91 | ..I LRITN=3 S LRTNM="3-Previously Assessed for Hepatitis C" | 
|---|
|  | 92 | ..I LRITN=4 S LRTNM="4-Risk Factors for Hepatitis C" | 
|---|
|  | 93 | ..I LRITN=5 S LRTNM="5-Positive Test for Hepatitis C antibody" | 
|---|
|  | 94 | ..I LRITN=6 S LRTNM="6-Negative Test for Hepatitis C antibody" | 
|---|
|  | 95 | ..I LRITN=7 S LRTNM="7- Hepatitis C diagnosis (ICD-9 based)" | 
|---|
|  | 96 | .K LRDATA | 
|---|
|  | 97 | .I '$G(LRTNM) D NAME | 
|---|
|  | 98 | .S LRDATA="NTE"_HLFS_HLFS_"T"_LRCS_LRNLT_LRCS_LRTNM_LRCS_+^TMP($J,LRTND,LRITN) | 
|---|
|  | 99 | .S LRCNT=LRCNT+1 | 
|---|
|  | 100 | .S ^TMP("HLS",$J,LRCNT)=$$UP^XLFSTR(LRDATA) | 
|---|
|  | 101 | .S ^TMP("LREPIREP",$J,LRCNT)=$$UP^XLFSTR(LRDATA) | 
|---|
|  | 102 | .K LRDATA | 
|---|
|  | 103 | .S (LRPCNT,LRPTOT)=0 | 
|---|
|  | 104 | .F  S LRPCNT=$O(^TMP($J,LRTND,LRITN,LRPCNT)) Q:+LRPCNT'>0  S LRPTOT=LRPTOT+1 | 
|---|
|  | 105 | .Q:LRPTOT'>0 | 
|---|
|  | 106 | .I '$G(LRTNM) D NAME | 
|---|
|  | 107 | .S LRDATA="NTE"_HLFS_HLFS_"T"_LRCS_LRNLT_LRCS_"PATIENTS WITH "_LRTNM_LRCS_LRPTOT ;+^TMP($J,LRPCNT,LRITN) | 
|---|
|  | 108 | .S LRCNT=LRCNT+1 | 
|---|
|  | 109 | .S ^TMP("HLS",$J,LRCNT)=$$UP^XLFSTR(LRDATA) | 
|---|
|  | 110 | .S ^TMP("LREPIREP",$J,LRCNT)=$$UP^XLFSTR(LRDATA) | 
|---|
|  | 111 | Q | 
|---|
|  | 112 | NAME ; | 
|---|
|  | 113 | Q:LRTND'="TST" | 
|---|
|  | 114 | S LRTNM=$P($G(^LAB(60,LRITN,0)),U,1) | 
|---|
|  | 115 | S LRNL=$G(^LAB(60,LRITN,64)) Q:+LRNL'>0 | 
|---|
|  | 116 | Q:'$D(^LAM(LRNL,0)) | 
|---|
|  | 117 | S LRNLT=$P(^LAM(LRNL,0),U,2) | 
|---|
|  | 118 | ; | 
|---|
|  | 119 | QUIT | 
|---|
|  | 120 | HEAD ;ENTER A NTE FOR REPORT HEADER | 
|---|
|  | 121 | K LRDATA | 
|---|
|  | 122 | S LRDATA="NTE"_HLFS_HLFS_$S(LRRTYPE:"R",1:"")_LRCS | 
|---|
|  | 123 | I $G(LR31799Z)=1 S LRDATA=LRDATA_"*** H E P A T I T I S  C  MARCH 17 1999 ***" | 
|---|
|  | 124 | S LRDATA=LRDATA_"REPORTING DATE FROM "_$$HLDATE^HLFNC(LRRPS) | 
|---|
|  | 125 | S LRDATA=LRDATA_" TO "_$$HLDATE^HLFNC(LRRPE) | 
|---|
|  | 126 | S LRDATA=LRDATA_LRCS_LRMSGNM | 
|---|
|  | 127 | I LRPROTX=LRPROT S LRDATA=LRDATA_LRCS_LRCS_"V3" | 
|---|
|  | 128 | I '$O(^TMP("HLS",$J,1)) S LRDATA=LRDATA_LRCS_"N" | 
|---|
|  | 129 | S ^TMP("HLS",$J,1)=$$UP^XLFSTR(LRDATA),LRMSGSZ=LRMSGSZ+$L(LRDATA) | 
|---|
|  | 130 | S ^TMP("LREPIREP",$J,1)=$$UP^XLFSTR(LRDATA) | 
|---|
|  | 131 | K LRDATA | 
|---|
|  | 132 | Q | 
|---|
|  | 133 | MOVE S LRMOVE=0 | 
|---|
|  | 134 | F  S LRMOVE=$O(^TMP("HL7",$J,LRMOVE)) Q:+LRMOVE'>0  D | 
|---|
|  | 135 | .S LRCNT=LRCNT+1 | 
|---|
|  | 136 | .S ^TMP("HLS",$J,LRCNT)=^TMP("HL7",$J,LRMOVE) | 
|---|
|  | 137 | .S ^TMP("LREPIREP",$J,LRCNT)=^TMP("HL7",$J,LRMOVE) | 
|---|
|  | 138 | .S LRMSGSZ=LRMSGSZ+$L(^TMP("HL7",$J,LRMOVE)) | 
|---|
|  | 139 | K ^TMP("HL7",$J),LRMOVE | 
|---|
|  | 140 | Q | 
|---|
|  | 141 | ; | 
|---|
|  | 142 | PV1 ; | 
|---|
|  | 143 | ;I $O(^TMP($J,LRPROT,DFN,LRENDT,""))!('$D(^TMP("LREPISRCH",$J,DFN)))!($P(LRNDTDA,"^",3))="UPDT" D PV1^LREPI3 S LRPVVV=1 | 
|---|
|  | 144 | I LRPV1>1,$O(^TMP($J,LRPROT,DFN,LRENDT,LRPATH))="",$P($G(^TMP($J,LRPROT,DFN,LRENDT)),"^",3)'="UPDT" Q | 
|---|
|  | 145 | I $P($G(^TMP($J,LRPROT,DFN,LRENDT)),"^",3)="UPDT" D PV1^LREPI3 S LRPVVV=1 Q | 
|---|
|  | 146 | I $O(^TMP($J,LRPROT,DFN,LRENDT,""))]"" D PV1^LREPI3 S LRPVVV=1 Q | 
|---|
|  | 147 | I '$D(^TMP("LREPISRCH",$J,DFN)) D PV1^LREPI3 S LRPVVV=1 Q | 
|---|