| 1 | LREPIRS3 ;DALOI/CKA-EMERGING PATHOGENS LOCAL REPORT-GENERATE SPSHT ;9/9/03 | 
|---|
| 2 | ;;5.2;LAB SERVICE;**281**;Sep 27, 1994 | 
|---|
| 3 | ; Reference to ^DIC(21 supported by IA #913 | 
|---|
| 4 | Q | 
|---|
| 5 | SPSHT ; | 
|---|
| 6 | S X1=DT,X2=180 D C^%DTC | 
|---|
| 7 | S ^XTMP("LREPILOCALSPSHT"_LRLRDT,0)=X_"^"_DT_"^EPI Local Report generation^"_$S($D(DUZ):DUZ,1:"UNKNOWN") | 
|---|
| 8 | HDG1 ; | 
|---|
| 9 | S LRHDG="",LRLC=1,LRX=0 | 
|---|
| 10 | I $D(LRSEG("PID")) S LRX("PID")=LRX,LRHDG="|"_LRX("PID")_"| |" | 
|---|
| 11 | I $D(LRSEG("PID",1)) S LRHDG=LRHDG_"PID|" | 
|---|
| 12 | I $D(LRSEG("PID",2)) S LRHDG=LRHDG_"SSN|" | 
|---|
| 13 | I $D(LRSEG("PID",3)) S LRHDG=LRHDG_"MPI|" | 
|---|
| 14 | I $D(LRSEG("PID",4)) S LRHDG=LRHDG_"Patient Name|" | 
|---|
| 15 | I $D(LRSEG("PID",5)) S LRHDG=LRHDG_"Date of Birth|" | 
|---|
| 16 | I $D(LRSEG("PID",6)) S LRHDG=LRHDG_"Sex|" | 
|---|
| 17 | I $D(LRSEG("PID",7)) S LRHDG=LRHDG_"Race|" | 
|---|
| 18 | I $D(LRSEG("PID",8)) S LRHDG=LRHDG_"Homeless|" | 
|---|
| 19 | I $D(LRSEG("PID",9)) S LRHDG=LRHDG_"State|" | 
|---|
| 20 | I $D(LRSEG("PID",10)) S LRHDG=LRHDG_"Zip|" | 
|---|
| 21 | I $D(LRSEG("PID",11)) S LRHDG=LRHDG_"County|" | 
|---|
| 22 | I $D(LRSEG("PID",12)) S LRHDG=LRHDG_"Ethnicity|" | 
|---|
| 23 | I $D(LRSEG("PID",13)) S LRHDG=LRHDG_"POS|" | 
|---|
| 24 | I LRHDG]"" S ^XTMP("LREPILOCALSPSHT"_LRLRDT,LRLC)=LRHDG S LRHDG="" S LRLC=LRLC+1 | 
|---|
| 25 | I $D(LRSEG("PV1")) S LRX=LRX+1,LRX("PV1")=LRX,LRHDG="|"_LRX_"| |" | 
|---|
| 26 | I $D(LRSEG("PV1",1)) S LRHDG=LRHDG_"PV1|" | 
|---|
| 27 | I $D(LRSEG("PV1",2)) S LRHDG=LRHDG_"Patient Class|" | 
|---|
| 28 | I $D(LRSEG("PV1",3)) S LRHDG=LRHDG_"Hospital Location|" | 
|---|
| 29 | I $D(LRSEG("PV1",4)) S LRHDG=LRHDG_"Discharge Disposition|" | 
|---|
| 30 | I $D(LRSEG("PV1",5)) S LRHDG=LRHDG_"Facility|" | 
|---|
| 31 | I $D(LRSEG("PV1",6)) S LRHDG=LRHDG_"Admit Date/Time|" | 
|---|
| 32 | I $D(LRSEG("PV1",7)) S LRHDG=LRHDG_"Discharge Date/Time|" | 
|---|
| 33 | I LRHDG]"" S ^XTMP("LREPILOCALSPSHT"_LRLRDT,LRLC)=LRHDG S LRHDG="" S LRLC=LRLC+1 | 
|---|
| 34 | I $D(LRSEG("DG1")) S LRX=LRX+1,LRX("DG1")=LRX,LRHDG="|"_LRX_"| |" | 
|---|
| 35 | I $D(LRSEG("DG1",1)) S LRHDG=LRHDG_"DG1|" | 
|---|
| 36 | I $D(LRSEG("DG1",2)) S LRHDG=LRHDG_"Diagnosis Code|" | 
|---|
| 37 | I $D(LRSEG("DG1",3)) S LRHDG=LRHDG_"Diagnosis|" | 
|---|
| 38 | I $D(LRSEG("DG1",4)) S LRHDG=LRHDG_"Admission Date|" | 
|---|
| 39 | I LRHDG]"" S ^XTMP("LREPILOCALSPSHT"_LRLRDT,LRLC)=LRHDG S LRHDG="" S LRLC=LRLC+1 | 
|---|
| 40 | I $D(LRSEG("NTE")) S LRX=LRX+1,LRX("NTE")=LRX,LRHDG="|"_LRX_"| |" | 
|---|
| 41 | I $D(LRSEG("NTE",1)) S LRHDG=LRHDG_"NTE|" | 
|---|
| 42 | I $D(LRSEG("NTE",2)) S LRHDG=LRHDG_"Comment|" | 
|---|
| 43 | I LRHDG]"" S ^XTMP("LREPILOCALSPSHT"_LRLRDT,LRLC)=LRHDG S LRHDG="" S LRLC=LRLC+1 | 
|---|
| 44 | I $D(LRSEG("OBR")) S LRX=LRX+1,LRX("OBR")=LRX,LRHDG="|"_LRX_"| |" | 
|---|
| 45 | I $D(LRSEG("OBR",1)) S LRHDG=LRHDG_"OBR|" | 
|---|
| 46 | I $D(LRSEG("OBR",2)) S LRHDG=LRHDG_"Test Name|" | 
|---|
| 47 | I $D(LRSEG("OBR",3)) S LRHDG=LRHDG_"Accession Date/Time|" | 
|---|
| 48 | I $D(LRSEG("OBR",4)) S LRHDG=LRHDG_"Specimen|" | 
|---|
| 49 | I $D(LRSEG("OBR",5)) S LRHDG=LRHDG_"Accession Number|" | 
|---|
| 50 | I LRHDG'="" S LRHDG=LRHDG_"OBR SUBID" | 
|---|
| 51 | I LRHDG]"" S ^XTMP("LREPILOCALSPSHT"_LRLRDT,LRLC)=LRHDG S LRHDG="" S LRLC=LRLC+1 | 
|---|
| 52 | I $D(LRSEG("OBX")) S LRX=LRX+1,LRX("OBX")=LRX,LRHDG="|"_LRX_"| |" | 
|---|
| 53 | I $D(LRSEG("OBX",1)) S LRHDG=LRHDG_"OBX|" | 
|---|
| 54 | I $D(LRSEG("OBX",2)) S LRHDG=LRHDG_"Value Type|" | 
|---|
| 55 | I $D(LRSEG("OBX",3)) S LRHDG=LRHDG_"Test Name|" | 
|---|
| 56 | I $D(LRSEG("OBX",4)) S LRHDG=LRHDG_"LOINC Code|" | 
|---|
| 57 | I $D(LRSEG("OBX",5)) S LRHDG=LRHDG_"LOINC Name|" | 
|---|
| 58 | I $D(LRSEG("OBX",6)) S LRHDG=LRHDG_"Test Result|" | 
|---|
| 59 | I $D(LRSEG("OBX",7)) S LRHDG=LRHDG_"Units|" | 
|---|
| 60 | I $D(LRSEG("OBX",8)) S LRHDG=LRHDG_"Flags or Interp|" | 
|---|
| 61 | I $D(LRSEG("OBX",9)) S LRHDG=LRHDG_"Verified Date/Time|" | 
|---|
| 62 | I LRHDG'="" S LRHDG=LRHDG_"OBX SUBID" | 
|---|
| 63 | I LRHDG]"" S ^XTMP("LREPILOCALSPSHT"_LRLRDT,LRLC)=LRHDG S LRHDG="" S LRLC=LRLC+1 | 
|---|
| 64 | S MSG=0,LRSPSHT="",LRPID="",LROBR="" | 
|---|
| 65 | F  S MSG=$O(^TMP("HLS",$J,MSG)) Q:'MSG  S LRMSGLIN=^(MSG) D | 
|---|
| 66 | .S LRSPSHT="" | 
|---|
| 67 | .Q:$P(LRMSGLIN,"|")="" | 
|---|
| 68 | .Q:'$D(LRSEG($P(LRMSGLIN,"|"))) | 
|---|
| 69 | .I $P(LRMSGLIN,"|")="PID" D | 
|---|
| 70 | ..S ^XTMP("LREPILOCALSPSHT"_LRLRDT,LRLC)=LRSPSHT,LRLC=LRLC+1 | 
|---|
| 71 | .I $P(LRMSGLIN,"|")="PID" D | 
|---|
| 72 | ..S LRSPSHT="********************************************************************************" | 
|---|
| 73 | ..I $D(LRSEG("PID")) S LRPID=$P(LRMSGLIN,HLFS,2),LRSPSHT=LRPID_"|"_LRX("PID")_"| | |" | 
|---|
| 74 | ..I $D(LRSEG("PID",2)) S LRSPSHT=LRSPSHT_$P(LRMSGLIN,HLFS,20)_"|" | 
|---|
| 75 | ..I $D(LRSEG("PID",3)) S LRSPSHT=LRSPSHT_$P($P(LRMSGLIN,HLFS,4),LRCS,4)_"|" | 
|---|
| 76 | ..I $D(LRSEG("PID",4)) S LRSPSHT=LRSPSHT_$P(LRMSGLIN,HLFS,6)_"|" | 
|---|
| 77 | ..I $D(LRSEG("PID",5)) S LRSPSHT=LRSPSHT_$$CDT^LREPIRP($P(LRMSGLIN,HLFS,8))_"|" | 
|---|
| 78 | ..I $D(LRSEG("PID",6)) S LRSPSHT=LRSPSHT_$P(LRMSGLIN,HLFS,9)_"|" | 
|---|
| 79 | ..I $D(LRSEG("PID",7)) D  K LRZ,LRY | 
|---|
| 80 | ...S LRZ=0,DFN=$P($P(LRMSGLIN,HLFS,4),LRCS) F LRY=1:1 S LRZ=$O(^DPT(DFN,.02,LRZ)) Q:'LRZ | 
|---|
| 81 | ...I LRY>2 S LRSPSHT=LRSPSHT_"MULTIPLE|" | 
|---|
| 82 | ...E  S LRSPSHT=LRSPSHT_$P($P(LRMSGLIN,HLFS,11),LRCS,2)_"|" | 
|---|
| 83 | ..I $D(LRSEG("PID",8)) S LRSPSHT=LRSPSHT_$P($P(LRMSGLIN,HLFS,12),LRCS,1)_"|" | 
|---|
| 84 | ..I $D(LRSEG("PID",9)) S LRSPSHT=LRSPSHT_$P($P($P(LRMSGLIN,HLFS,12),LRCS,4),U,2)_"|" | 
|---|
| 85 | ..I $D(LRSEG("PID",10)) S LRSPSHT=LRSPSHT_$P($P(LRMSGLIN,HLFS,12),LRCS,5)_"|" | 
|---|
| 86 | ..I $D(LRSEG("PID",11)) S LRSPSHT=LRSPSHT_$P($P($P(LRMSGLIN,HLFS,12),LRCS,9),U,2)_"|" | 
|---|
| 87 | ..I $D(LRSEG("PID",12)) S LRSPSHT=LRSPSHT_$P($P(LRMSGLIN,HLFS,23),LRCS,2)_"|" | 
|---|
| 88 | ..I $D(LRSEG("PID",13)) D  I LRPOS="" S LRSPSHT=LRSPSHT_"||" | 
|---|
| 89 | ...S LRPOS=$P(LRMSGLIN,HLFS,28) | 
|---|
| 90 | ...Q:LRPOS="" | 
|---|
| 91 | ...S LRPOSN=0 | 
|---|
| 92 | ...F  S LRPOSN=$O(^DIC(21,LRPOSN)) Q:LRPOSN'>0  I $P($G(^DIC(21,LRPOSN,0)),U,3)=LRPOS S LRPOSNAM=$P(^(0),U) Q | 
|---|
| 93 | ...S LRSPSHT=LRSPSHT_LRPOSNAM_"|" | 
|---|
| 94 | .K LRPOS,LRPOSN,LRPOSNAM | 
|---|
| 95 | .I $P(LRMSGLIN,"|")="PV1" D | 
|---|
| 96 | ..I $D(LRSEG("PV1")) S LRSPSHT=LRPID_"|"_LRX("PV1")_"|"_$P(LRMSGLIN,HLFS,2)_"| |" | 
|---|
| 97 | ..I $D(LRSEG("PV1",2)) D | 
|---|
| 98 | ...S TYPE=$P(LRMSGLIN,HLFS,3) | 
|---|
| 99 | ...S LRSPSHT=LRSPSHT_$S(TYPE="U":"Update",TYPE="I":"Inpatient",1:"Outpatient")_"|" | 
|---|
| 100 | ...K TYPE | 
|---|
| 101 | ..I $D(LRSEG("PV1",3)) S LRSPSHT=LRSPSHT_$P(LRMSGLIN,HLFS,4)_"|" | 
|---|
| 102 | ..I $D(LRSEG("PV1",4)) S LRSPSHT=LRSPSHT_$P($P(LRMSGLIN,HLFS,37),LRCS,2)_"|" | 
|---|
| 103 | ..I $D(LRSEG("PV1",5)) S LRSPSHT=LRSPSHT_$P(LRMSGLIN,HLFS,40)_"|" | 
|---|
| 104 | ..I $D(LRSEG("PV1",6)) S LRSPSHT=LRSPSHT_$$CDT^LREPIRP($P(LRMSGLIN,HLFS,45))_"|" | 
|---|
| 105 | ..I $D(LRSEG("PV1",7)) S LRSPSHT=LRSPSHT_$$CDT^LREPIRP($P(LRMSGLIN,HLFS,46))_"|" | 
|---|
| 106 | .I $P(LRMSGLIN,"|")="NTE" D | 
|---|
| 107 | ..I $D(LRSEG("NTE")) S LRSPSHT=LRPID_"|"_LRX("NTE")_"|"_$P(LRMSGLIN,HLFS,2)_"| |" | 
|---|
| 108 | ..I $D(LRSEG("NTE",2)) S LRSPSHT=LRSPSHT_$P(LRMSGLIN,HLFS,3)_"|" | 
|---|
| 109 | .I $P(LRMSGLIN,"|")="OBR" D | 
|---|
| 110 | ..I $D(LRSEG("OBR")) S LROBR=$P(LRMSGLIN,HLFS,2),LRSPSHT=LRPID_"|"_LRX("OBR")_"|"_LROBR_"| |" | 
|---|
| 111 | ..I $D(LRSEG("OBR",2)) S LRSPSHT=LRSPSHT_$P($P(LRMSGLIN,HLFS,5),LRCS,2)_"|" | 
|---|
| 112 | ..I $D(LRSEG("OBR",3)) S LRSPSHT=LRSPSHT_$$CDT^LREPIRP($P(LRMSGLIN,HLFS,8))_"|" | 
|---|
| 113 | ..I $D(LRSEG("OBR",4)) S LRSPSHT=LRSPSHT_$P($P(LRMSGLIN,HLFS,16),LRCS,3)_"|" | 
|---|
| 114 | ..I $D(LRSEG("OBR",5)) S LRSPSHT=LRSPSHT_$P(LRMSGLIN,HLFS,19)_"|" | 
|---|
| 115 | ..S LRSPSHT=LRSPSHT_$P($P(LRMSGLIN,HLFS,27),LRCS,2) | 
|---|
| 116 | .I $P(LRMSGLIN,"|")="OBX" D | 
|---|
| 117 | ..I $D(LRSEG("OBX")) S LRSPSHT=LRPID_"|"_LRX("OBX")_"|"_LROBR_"|"_$P(LRMSGLIN,HLFS,2)_"|" | 
|---|
| 118 | ..I $P(LRMSGLIN,HLFS,3)="ST" D | 
|---|
| 119 | ...S TSTNM=$P($P(LRMSGLIN,HLFS,4),LRCS,2) | 
|---|
| 120 | ...S OV=$P(LRMSGLIN,HLFS,6) | 
|---|
| 121 | ..I $P(LRMSGLIN,HLFS,3)="CE" D | 
|---|
| 122 | ...S TSTNM="" | 
|---|
| 123 | ...S OV=$P($P(LRMSGLIN,HLFS,6),LRCS,2) | 
|---|
| 124 | ..S FD=$$CDT^LREPIRP($P(LRMSGLIN,HLFS,15)),RR=$P(LRMSGLIN,HLFS,9) | 
|---|
| 125 | ..S UN=$P(LRMSGLIN,HLFS,7) | 
|---|
| 126 | ..I $P($P(LRMSGLIN,HLFS,4),LRCS,9)="LOINC" D | 
|---|
| 127 | ...S LOINC=$P($P(LRMSGLIN,HLFS,4),LRCS,7),LOINCN=$P($P(LRMSGLIN,HLFS,4),LRCS,8) | 
|---|
| 128 | ..I $D(LRSEG("OBX",2)) S LRSPSHT=LRSPSHT_$P(LRMSGLIN,HLFS,3)_"|" | 
|---|
| 129 | ..I $D(LRSEG("OBX",3)) S LRSPSHT=LRSPSHT_TSTNM_"|" | 
|---|
| 130 | ..I $D(LRSEG("OBX",4)) S LRSPSHT=LRSPSHT_$G(LOINC)_"|" | 
|---|
| 131 | ..I $D(LRSEG("OBX",5)) S LRSPSHT=LRSPSHT_$G(LOINCN)_"|" | 
|---|
| 132 | ..I $D(LRSEG("OBX",6)) S LRSPSHT=LRSPSHT_OV_"|" | 
|---|
| 133 | ..I $D(LRSEG("OBX",7)) S LRSPSHT=LRSPSHT_UN_"|" | 
|---|
| 134 | ..I $D(LRSEG("OBX",8)) S LRSPSHT=LRSPSHT_RR_"|" | 
|---|
| 135 | ..I $D(LRSEG("OBX",9)) S LRSPSHT=LRSPSHT_FD_"|" | 
|---|
| 136 | ..S LRSPSHT=LRSPSHT_$P(LRMSGLIN,HLFS,5) | 
|---|
| 137 | ..K TST,TSTNM,LOINC,LOINCN,ENTRY,UN,RR,FD,OV | 
|---|
| 138 | .I $P(LRMSGLIN,"|")="DG1" D | 
|---|
| 139 | ..I $D(LRSEG("DG1")) S LRSPSHT=LRPID_"|"_LRX("DG1")_"|"_$P(LRMSGLIN,HLFS,2)_"| |" | 
|---|
| 140 | ..I $D(LRSEG("DG1",2)) S LRSPSHT=LRSPSHT_$P($P(LRMSGLIN,HLFS,4),LRCS,1)_"|" | 
|---|
| 141 | ..I $D(LRSEG("DG1",3)) S LRSPSHT=LRSPSHT_$P($P(LRMSGLIN,HLFS,4),LRCS,2)_"|" | 
|---|
| 142 | ..I $D(LRSEG("DG1",4)) S LRSPSHT=LRSPSHT_$$CDT^LREPIRP($P($P(LRMSGLIN,HLFS,5),LRCS))_"|" | 
|---|
| 143 | .S ^XTMP("LREPILOCALSPSHT"_LRLRDT,LRLC)=LRSPSHT,LRLC=LRLC+1 | 
|---|
| 144 | K MSGLIN,LRSEG,LRZ | 
|---|
| 145 | Q | 
|---|