| 1 | LA7VHLU5 ;DALOI/JMC - HL7 segment builder utility ; 11-1-2000 | 
|---|
| 2 | ;;5.2;AUTOMATED LAB INSTRUMENTS;**46,64**;Sep 27, 1994 | 
|---|
| 3 | ; | 
|---|
| 4 | ; | 
|---|
| 5 | DEFCODE(LRSS,LRSB,LA7CODE,LA761) ; Determine default codes when data is not mapped | 
|---|
| 6 | ; | 
|---|
| 7 | ; Call with  LRSS = file #63 subscript | 
|---|
| 8 | ;            LRSB = file #63 dataname/location | 
|---|
| 9 | ;         LA7CODE = current codes stored with data (order nlt!result nlt!loinc code!method suffix) | 
|---|
| 10 | ;           LA761 = specimen, pointer to file #61 | 
|---|
| 11 | ; | 
|---|
| 12 | N I,LA7DFCDE,LA7MISS | 
|---|
| 13 | ; | 
|---|
| 14 | I LA7CODE="" S LA7CODE="!!!" | 
|---|
| 15 | ; | 
|---|
| 16 | ; Replace any missing codes with defaults | 
|---|
| 17 | ; If no missing codes then return codes passed in. | 
|---|
| 18 | S LA7MISS="" | 
|---|
| 19 | F I=1:1:3 I $P(LA7CODE,"!",I)="" S $P(LA7MISS,"^",I)=I | 
|---|
| 20 | ; | 
|---|
| 21 | I LA7MISS'="" D | 
|---|
| 22 | . I LRSS="CH" D CHSUB Q | 
|---|
| 23 | . I LRSS="MI" D MISUB Q | 
|---|
| 24 | . I LRSS="SP" D SPSUB Q | 
|---|
| 25 | . I LRSS="CY" D CYSUB Q | 
|---|
| 26 | . I LRSS="EM" D EMSUB Q | 
|---|
| 27 | ; | 
|---|
| 28 | Q LA7CODE | 
|---|
| 29 | ; | 
|---|
| 30 | ; | 
|---|
| 31 | CHSUB ; Determine codes for CH subscript. | 
|---|
| 32 | ; | 
|---|
| 33 | N LA760,LA7NLT,LA7X,LA7Y | 
|---|
| 34 | ; | 
|---|
| 35 | ; Find a file #60 test which uses this dataname. Since there can be | 
|---|
| 36 | ; multiple tests check each until an order and result NLT code is found. | 
|---|
| 37 | S LA760=0 | 
|---|
| 38 | F  S LA760=$O(^LAB(60,"C",LRSS_";"_LRSB_";1",LA760)) Q:'LA760  D | 
|---|
| 39 | . ; Default order NLT | 
|---|
| 40 | . I $P(LA7MISS,"^") D | 
|---|
| 41 | . . S LA7X=$$NLT^LRVER1(LA760) | 
|---|
| 42 | . . I LA7X'="" S $P(LA7CODE,"!")=LA7X,$P(LA7MISS,"^")="" | 
|---|
| 43 | . ; Default result NLT | 
|---|
| 44 | . I $P(LA7MISS,"^",2) D | 
|---|
| 45 | . . S LA7X=+$P($G(^LAB(60,LA760,64)),"^",2),LA7Y="" | 
|---|
| 46 | . . I LA7X S LA7Y=$$GET1^DIQ(64,LA7X_",",1) | 
|---|
| 47 | . . I LA7Y'="" S $P(LA7CODE,"!",2)=LA7Y,$P(LA7MISS,"^",2)="" | 
|---|
| 48 | ; | 
|---|
| 49 | ; If no result NLT code then use order NLT as default | 
|---|
| 50 | I $P(LA7CODE,"!",2)="" S $P(LA7CODE,"!",2)=$P(LA7CODE,"!") | 
|---|
| 51 | ; | 
|---|
| 52 | ; If no order NLT code found on file #60 entries then use this default | 
|---|
| 53 | I $P(LA7CODE,"!")="" S $P(LA7CODE,"!")="81323.0000" | 
|---|
| 54 | ; | 
|---|
| 55 | ; Default result LOINC code based on result NLT code | 
|---|
| 56 | ; If none on NLT result code then try order NLT code | 
|---|
| 57 | I $P(LA7MISS,"^",3) D | 
|---|
| 58 | . S LA7NLT=$P(LA7CODE,"!",2),LA7X="" | 
|---|
| 59 | . I LA7NLT'="" S LA7X=$$LNC^LRVER1(LA7NLT,$P(LA7CODE,"!",4),LA761) | 
|---|
| 60 | . I LA7X S $P(LA7CODE,"!",3)=LA7X Q | 
|---|
| 61 | . S LA7NLT=$P(LA7CODE,"!"),LA7X="" | 
|---|
| 62 | . I LA7NLT'="" S LA7X=$$LNC^LRVER1(LA7NLT,$P(LA7CODE,"!",4),LA761) | 
|---|
| 63 | . I LA7X S $P(LA7CODE,"!",3)=LA7X | 
|---|
| 64 | ; | 
|---|
| 65 | Q | 
|---|
| 66 | ; | 
|---|
| 67 | ; | 
|---|
| 68 | MISUB ; Determine codes for MI subscript | 
|---|
| 69 | ; | 
|---|
| 70 | ; Bacteriology report | 
|---|
| 71 | I LRSB=11 S LA7DFCDE="87993.0000^^" D DEFAULT Q | 
|---|
| 72 | ; | 
|---|
| 73 | ; Gram stain | 
|---|
| 74 | I LRSB=11.6 S LA7DFCDE="87993.0000^87754.0000^664" D DEFAULT Q | 
|---|
| 75 | ; | 
|---|
| 76 | ; Bacteriology organism | 
|---|
| 77 | I LRSB=12 S LA7DFCDE="87993.0000^87570.0000^11475" D DEFAULT Q | 
|---|
| 78 | ; | 
|---|
| 79 | ; Bacteria colony count | 
|---|
| 80 | I +LRSB=12,$P(LRSB,",",2)=1 S LA7DFCDE="^87719.0000^564" D DEFAULT Q | 
|---|
| 81 | ; | 
|---|
| 82 | ; Parasite report | 
|---|
| 83 | I LRSB=14 S LA7DFCDE="87505.0000^^" D DEFAULT Q | 
|---|
| 84 | ; | 
|---|
| 85 | ; Parasite organism | 
|---|
| 86 | I LRSB=16 S LA7DFCDE="87505.0000^87576.0000^17784" D DEFAULT Q | 
|---|
| 87 | ; | 
|---|
| 88 | ; Mycology report | 
|---|
| 89 | I LRSB=18 S LA7DFCDE="87994.0000^^" D DEFAULT Q | 
|---|
| 90 | ; | 
|---|
| 91 | ; Fungal organism | 
|---|
| 92 | I LRSB=20 S LA7DFCDE="87994.0000^87578.0000^580" D DEFAULT Q | 
|---|
| 93 | ; | 
|---|
| 94 | ; Fungal colony count | 
|---|
| 95 | I +LRSB=20,$P(LRSB,",",2)=1 S LA7DFCDE="87994.0000^87723.0000^19101" D DEFAULT Q | 
|---|
| 96 | ; | 
|---|
| 97 | ; Mycobacterium report | 
|---|
| 98 | I LRSB=22 S LA7DFCDE="87995.0000^^" D DEFAULT Q | 
|---|
| 99 | ; | 
|---|
| 100 | ; Acid Fast stain | 
|---|
| 101 | I LRSB=24 S LA7DFCDE="87995.0000^87756.0000^11545" D DEFAULT Q | 
|---|
| 102 | ; | 
|---|
| 103 | ; Acid Fast stain quantity | 
|---|
| 104 | I LRSB=25 S LA7DFCDE="87995.0000^87583.0000^11545" D DEFAULT Q | 
|---|
| 105 | ; | 
|---|
| 106 | ; Mycobacterium organism | 
|---|
| 107 | I +LRSB=26,'$P(LRSB,",",2) S LA7DFCDE="87995.0000^87589.0000^543" D DEFAULT Q | 
|---|
| 108 | ; | 
|---|
| 109 | ; Bact or TB organism's susceptibilities | 
|---|
| 110 | I $P(LRSB,",",2)>2,$P(LRSB,",",2)<2.999 D  Q | 
|---|
| 111 | . I +LRSB'=12,+LRSB'=26 Q | 
|---|
| 112 | . S LA7X=$O(^LAB(62.06,"AD",$P(LRSB,",",2),0)) Q:'LA7X | 
|---|
| 113 | . I $P(LA7MISS,"^",2) S $P(LA7CODE,"!",2)=$$GET1^DIQ(62.06,LA7X_",","64:1") | 
|---|
| 114 | . I $P(LA7MISS,"^",3) S $P(LA7CODE,"!",3)=$$GET1^DIQ(62.06,LA7X_",","64:25") | 
|---|
| 115 | ; | 
|---|
| 116 | ; Virology report | 
|---|
| 117 | I LRSB=33 S LA7DFCDE="87996.0000^^" D DEFAULT Q | 
|---|
| 118 | ; | 
|---|
| 119 | ; Viral agent | 
|---|
| 120 | I $P(LRSB,",")=36 S LA7DFCDE="87996.0000^87590.0000^6584" D DEFAULT Q | 
|---|
| 121 | ; | 
|---|
| 122 | Q | 
|---|
| 123 | ; | 
|---|
| 124 | ; | 
|---|
| 125 | SPSUB ; Determine codes for SP subscript | 
|---|
| 126 | ; | 
|---|
| 127 | ; specimens | 
|---|
| 128 | I LRSB=.012!(LRSB=10) S LA7DFCDE="88515.0000^88539.0000^22633" D DEFAULT Q | 
|---|
| 129 | ; | 
|---|
| 130 | ; brief clinical history | 
|---|
| 131 | I LRSB=.013 S LA7DFCDE="88515.0000^88542.0000^22636" D DEFAULT Q | 
|---|
| 132 | ; | 
|---|
| 133 | ; preoperative diagnosis | 
|---|
| 134 | I LRSB=.014 S LA7DFCDE="88515.0000^88544.0000^10219" D DEFAULT Q | 
|---|
| 135 | ; | 
|---|
| 136 | ; operative findings | 
|---|
| 137 | I LRSB=.015 S LA7DFCDE="88515.0000^88546.0000^10215" D DEFAULT Q | 
|---|
| 138 | ; | 
|---|
| 139 | ; postoperative diagnosis | 
|---|
| 140 | I LRSB=.016 S LA7DFCDE="88515.0000^88547.0000^10218" D DEFAULT Q | 
|---|
| 141 | ; | 
|---|
| 142 | ; gross description | 
|---|
| 143 | I LRSB=1 S LA7DFCDE="88515.0000^88549.0000^22634" D DEFAULT Q | 
|---|
| 144 | ; | 
|---|
| 145 | ; microscopic description | 
|---|
| 146 | I LRSB=1.1 S LA7DFCDE="88515.0000^88563.0000^22635" D DEFAULT Q | 
|---|
| 147 | ; | 
|---|
| 148 | ; frozen section | 
|---|
| 149 | I LRSB=1.3 S LA7DFCDE="88515.0000^88569.0000^322635" D DEFAULT Q | 
|---|
| 150 | ; | 
|---|
| 151 | ; surgical path diagnosis | 
|---|
| 152 | I LRSB=1.4 S LA7DFCDE="88515.0000^88571.0000^22637" D DEFAULT Q | 
|---|
| 153 | ; | 
|---|
| 154 | ; supplementary report | 
|---|
| 155 | I LRSB=1.2!(LRSB="10,5") S LA7DFCDE="88515.0000^88589.0000^22639" D DEFAULT Q | 
|---|
| 156 | ; | 
|---|
| 157 | ; specimen weight | 
|---|
| 158 | I LRSB="10,2" S LA7DFCDE="88515.0000^81233.0000^3154" D DEFAULT Q | 
|---|
| 159 | ; | 
|---|
| 160 | Q | 
|---|
| 161 | ; | 
|---|
| 162 | ; | 
|---|
| 163 | CYSUB ;  Determine codes for CY subscript | 
|---|
| 164 | ; | 
|---|
| 165 | ; specimens | 
|---|
| 166 | I LRSB=.012 S LA7DFCDE="88593.0000^88539.0000^22633" D DEFAULT Q | 
|---|
| 167 | ; | 
|---|
| 168 | ; brief clinical history | 
|---|
| 169 | I LRSB=.013 S LA7DFCDE="88593.0000^88542.0000^22636" D DEFAULT Q | 
|---|
| 170 | ; | 
|---|
| 171 | ; preoperative diagnosis | 
|---|
| 172 | I LRSB=.014 S LA7DFCDE="88593.0000^88544.0000^10219" D DEFAULT Q | 
|---|
| 173 | ; | 
|---|
| 174 | ; operative findings | 
|---|
| 175 | I LRSB=.015 S LA7DFCDE="88593.0000^88542.0000^10215" D DEFAULT Q | 
|---|
| 176 | ; | 
|---|
| 177 | ; postoperative diagnosis | 
|---|
| 178 | I LRSB=.016 S LA7DFCDE="88593.0000^88547.0000^10218" D DEFAULT Q | 
|---|
| 179 | ; | 
|---|
| 180 | ; gross description | 
|---|
| 181 | I LRSB=1!(LRSB=20) S LA7DFCDE="88593.0000^88549.0000^22634" D DEFAULT Q | 
|---|
| 182 | ; | 
|---|
| 183 | ; microscopic examination | 
|---|
| 184 | I LRSB=1.1 S LA7DFCDE="88593.0000^88563.0000^22635" D DEFAULT Q | 
|---|
| 185 | ; | 
|---|
| 186 | ; supplementary report | 
|---|
| 187 | I LRSB=1.2 S LA7DFCDE="88593.0000^88589.0000^22639" D DEFAULT Q | 
|---|
| 188 | ; | 
|---|
| 189 | ; cytopatholgy diagnosis | 
|---|
| 190 | I LRSB=1.4 S LA7DFCDE="88593.0000^88571.0000^22637" D DEFAULT Q | 
|---|
| 191 | ; | 
|---|
| 192 | Q | 
|---|
| 193 | ; | 
|---|
| 194 | ; | 
|---|
| 195 | EMSUB ;  Determine codes for EM subscript | 
|---|
| 196 | ; | 
|---|
| 197 | ; specimens | 
|---|
| 198 | I LRSB=.012 S LA7DFCDE="88597.0000^88057.0000^22633" D DEFAULT Q | 
|---|
| 199 | ; | 
|---|
| 200 | ; brief clinical history | 
|---|
| 201 | I LRSB=.013 S LA7DFCDE="88597.0000^88542.0000^22636" D DEFAULT Q | 
|---|
| 202 | ; | 
|---|
| 203 | ; preoperative diagnosis | 
|---|
| 204 | I LRSB=.014 S LA7DFCDE="88597.0000^88544.0000^10219" D DEFAULT Q | 
|---|
| 205 | ; | 
|---|
| 206 | ; operative findings | 
|---|
| 207 | I LRSB=.015 S LA7DFCDE="88597.0000^88542.0000^10215" D DEFAULT Q | 
|---|
| 208 | ; | 
|---|
| 209 | ; postoperative diagnosis | 
|---|
| 210 | I LRSB=.016 S LA7DFCDE="88597.0000^88547.0000^10218" D DEFAULT Q | 
|---|
| 211 | ; | 
|---|
| 212 | ; gross description | 
|---|
| 213 | I LRSB=1!(LRSB=20) S LA7DFCDE="88597.0000^88549.0000^22634" D DEFAULT Q | 
|---|
| 214 | ; | 
|---|
| 215 | ; microscopic examination | 
|---|
| 216 | I LRSB=1.1 S LA7DFCDE="88597.0000^88563.0000^22635" D DEFAULT Q | 
|---|
| 217 | ; | 
|---|
| 218 | ; supplementary report | 
|---|
| 219 | I LRSB=1.2 S LA7DFCDE="88597.0000^88589.0000^22639" D DEFAULT Q | 
|---|
| 220 | ; | 
|---|
| 221 | ; em diagnosis | 
|---|
| 222 | I LRSB=1.4 S LA7DFCDE="88597.0000^88571.0000^22637" D DEFAULT Q | 
|---|
| 223 | ; | 
|---|
| 224 | Q | 
|---|
| 225 | ; | 
|---|
| 226 | ; | 
|---|
| 227 | DEFAULT ; Resolve codes and set defaults as needed | 
|---|
| 228 | ; | 
|---|
| 229 | ; Expects LA7DFCDE=default order NLT^default result NLT^default LOINC code | 
|---|
| 230 | ; | 
|---|
| 231 | I $P(LA7MISS,"^") S $P(LA7CODE,"!")=$P(LA7DFCDE,"^") | 
|---|
| 232 | I $P(LA7MISS,"^",2) S $P(LA7CODE,"!",2)=$P(LA7DFCDE,"^",2) | 
|---|
| 233 | I $P(LA7MISS,"^",3) D | 
|---|
| 234 | . S $P(LA7CODE,"!",3)=$$LNC^LRVER1($P(LA7CODE,"!",2),$P(LA7CODE,"!",4),LA761) | 
|---|
| 235 | . I '$P(LA7CODE,"!",3) S $P(LA7CODE,"!",3)=$P(LA7DFCDE,"^",3) | 
|---|
| 236 | Q | 
|---|