| 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
 | 
|---|