
001package org.hl7.fhir.convertors.conv30_50.resources30_50; 002 003import org.hl7.fhir.convertors.context.ConversionContext30_50; 004import org.hl7.fhir.convertors.conv30_50.datatypes30_50.Reference30_50; 005import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.CodeableConcept30_50; 006import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Identifier30_50; 007import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Range30_50; 008import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.SimpleQuantity30_50; 009import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Instant30_50; 010import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.String30_50; 011import org.hl7.fhir.dstu3.model.Observation; 012import org.hl7.fhir.exceptions.FHIRException; 013import org.hl7.fhir.r5.model.Enumeration; 014import org.hl7.fhir.r5.model.Enumerations; 015 016public class Observation30_50 { 017 018 public static org.hl7.fhir.dstu3.model.Observation convertObservation(org.hl7.fhir.r5.model.Observation src) throws FHIRException { 019 if (src == null) 020 return null; 021 org.hl7.fhir.dstu3.model.Observation tgt = new org.hl7.fhir.dstu3.model.Observation(); 022 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt); 023 for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier()) 024 tgt.addIdentifier(Identifier30_50.convertIdentifier(t)); 025 for (org.hl7.fhir.r5.model.Reference t : src.getBasedOn()) tgt.addBasedOn(Reference30_50.convertReference(t)); 026 if (src.hasStatus()) 027 tgt.setStatusElement(convertObservationStatus(src.getStatusElement())); 028 for (org.hl7.fhir.r5.model.CodeableConcept t : src.getCategory()) 029 tgt.addCategory(CodeableConcept30_50.convertCodeableConcept(t)); 030 if (src.hasCode()) 031 tgt.setCode(CodeableConcept30_50.convertCodeableConcept(src.getCode())); 032 if (src.hasSubject()) 033 tgt.setSubject(Reference30_50.convertReference(src.getSubject())); 034 if (src.hasEncounter()) 035 tgt.setContext(Reference30_50.convertReference(src.getEncounter())); 036 if (src.hasEffective()) 037 tgt.setEffective(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getEffective())); 038 if (src.hasIssued()) 039 tgt.setIssuedElement(Instant30_50.convertInstant(src.getIssuedElement())); 040 for (org.hl7.fhir.r5.model.Reference t : src.getPerformer()) tgt.addPerformer(Reference30_50.convertReference(t)); 041 042 if (src.hasValue()) { 043 tgt.setValue(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getValue())); 044 } 045 046 if (src.hasDataAbsentReason()) 047 tgt.setDataAbsentReason(CodeableConcept30_50.convertCodeableConcept(src.getDataAbsentReason())); 048 if (src.hasInterpretation()) 049 tgt.setInterpretation(CodeableConcept30_50.convertCodeableConcept(src.getInterpretationFirstRep())); 050 if (src.hasNote()) 051 tgt.setComment(src.getNoteFirstRep().getText()); 052 if (src.hasBodySite()) 053 tgt.setBodySite(CodeableConcept30_50.convertCodeableConcept(src.getBodySite())); 054 if (src.hasMethod()) 055 tgt.setMethod(CodeableConcept30_50.convertCodeableConcept(src.getMethod())); 056 if (src.hasSpecimen()) 057 tgt.setSpecimen(Reference30_50.convertReference(src.getSpecimen())); 058 if (src.hasDevice()) 059 tgt.setDevice(Reference30_50.convertReference(src.getDevice())); 060 for (org.hl7.fhir.r5.model.Observation.ObservationReferenceRangeComponent t : src.getReferenceRange()) 061 tgt.addReferenceRange(convertObservationReferenceRangeComponent(t)); 062 for (org.hl7.fhir.r5.model.Reference t : src.getHasMember()) 063 tgt.addRelated(convertObservationRelatedComponent(t, org.hl7.fhir.dstu3.model.Observation.ObservationRelationshipType.HASMEMBER)); 064 for (org.hl7.fhir.r5.model.Reference t : src.getDerivedFrom()) 065 tgt.addRelated(convertObservationRelatedComponent(t, org.hl7.fhir.dstu3.model.Observation.ObservationRelationshipType.DERIVEDFROM)); 066 for (org.hl7.fhir.r5.model.Observation.ObservationComponentComponent t : src.getComponent()) 067 tgt.addComponent(convertObservationComponentComponent(t)); 068 return tgt; 069 } 070 071 public static org.hl7.fhir.r5.model.Observation convertObservation(org.hl7.fhir.dstu3.model.Observation src) throws FHIRException { 072 if (src == null) 073 return null; 074 org.hl7.fhir.r5.model.Observation tgt = new org.hl7.fhir.r5.model.Observation(); 075 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt); 076 for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier()) 077 tgt.addIdentifier(Identifier30_50.convertIdentifier(t)); 078 for (org.hl7.fhir.dstu3.model.Reference t : src.getBasedOn()) tgt.addBasedOn(Reference30_50.convertReference(t)); 079 if (src.hasStatus()) 080 tgt.setStatusElement(convertObservationStatus(src.getStatusElement())); 081 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getCategory()) 082 tgt.addCategory(CodeableConcept30_50.convertCodeableConcept(t)); 083 if (src.hasCode()) 084 tgt.setCode(CodeableConcept30_50.convertCodeableConcept(src.getCode())); 085 if (src.hasSubject()) 086 tgt.setSubject(Reference30_50.convertReference(src.getSubject())); 087 if (src.hasContext()) 088 tgt.setEncounter(Reference30_50.convertReference(src.getContext())); 089 if (src.hasEffective()) 090 tgt.setEffective(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getEffective())); 091 if (src.hasIssued()) 092 tgt.setIssuedElement(Instant30_50.convertInstant(src.getIssuedElement())); 093 for (org.hl7.fhir.dstu3.model.Reference t : src.getPerformer()) 094 tgt.addPerformer(Reference30_50.convertReference(t)); 095 096 if (src.hasValue()) { 097 tgt.setValue(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getValue())); 098 } 099 100 101 if (src.hasDataAbsentReason()) 102 tgt.setDataAbsentReason(CodeableConcept30_50.convertCodeableConcept(src.getDataAbsentReason())); 103 if (src.hasInterpretation()) 104 tgt.addInterpretation(CodeableConcept30_50.convertCodeableConcept(src.getInterpretation())); 105 if (src.hasComment()) 106 tgt.addNote().setText(src.getComment()); 107 if (src.hasBodySite()) 108 tgt.setBodySite(CodeableConcept30_50.convertCodeableConcept(src.getBodySite())); 109 if (src.hasMethod()) 110 tgt.setMethod(CodeableConcept30_50.convertCodeableConcept(src.getMethod())); 111 if (src.hasSpecimen()) 112 tgt.setSpecimen(Reference30_50.convertReference(src.getSpecimen())); 113 if (src.hasDevice()) 114 tgt.setDevice(Reference30_50.convertReference(src.getDevice())); 115 for (org.hl7.fhir.dstu3.model.Observation.ObservationReferenceRangeComponent t : src.getReferenceRange()) 116 tgt.addReferenceRange(convertObservationReferenceRangeComponent(t)); 117 for (org.hl7.fhir.dstu3.model.Observation.ObservationRelatedComponent t : src.getRelated()) 118 if (t.getType() == org.hl7.fhir.dstu3.model.Observation.ObservationRelationshipType.HASMEMBER) 119 tgt.addHasMember(Reference30_50.convertReference(t.getTarget())); 120 else if (t.getType() == org.hl7.fhir.dstu3.model.Observation.ObservationRelationshipType.DERIVEDFROM) 121 tgt.addDerivedFrom(Reference30_50.convertReference(t.getTarget())); 122 for (org.hl7.fhir.dstu3.model.Observation.ObservationComponentComponent t : src.getComponent()) 123 tgt.addComponent(convertObservationComponentComponent(t)); 124 return tgt; 125 } 126 127 public static org.hl7.fhir.r5.model.Observation.ObservationComponentComponent convertObservationComponentComponent(org.hl7.fhir.dstu3.model.Observation.ObservationComponentComponent src) throws FHIRException { 128 if (src == null) 129 return null; 130 org.hl7.fhir.r5.model.Observation.ObservationComponentComponent tgt = new org.hl7.fhir.r5.model.Observation.ObservationComponentComponent(); 131 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt); 132 if (src.hasCode()) 133 tgt.setCode(CodeableConcept30_50.convertCodeableConcept(src.getCode())); 134 if (src.hasValue()) 135 tgt.setValue(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getValue())); 136 if (src.hasDataAbsentReason()) 137 tgt.setDataAbsentReason(CodeableConcept30_50.convertCodeableConcept(src.getDataAbsentReason())); 138 if (src.hasInterpretation()) 139 tgt.addInterpretation(CodeableConcept30_50.convertCodeableConcept(src.getInterpretation())); 140 for (org.hl7.fhir.dstu3.model.Observation.ObservationReferenceRangeComponent t : src.getReferenceRange()) 141 tgt.addReferenceRange(convertObservationReferenceRangeComponent(t)); 142 return tgt; 143 } 144 145 public static org.hl7.fhir.dstu3.model.Observation.ObservationComponentComponent convertObservationComponentComponent(org.hl7.fhir.r5.model.Observation.ObservationComponentComponent src) throws FHIRException { 146 if (src == null) 147 return null; 148 org.hl7.fhir.dstu3.model.Observation.ObservationComponentComponent tgt = new org.hl7.fhir.dstu3.model.Observation.ObservationComponentComponent(); 149 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt); 150 if (src.hasCode()) 151 tgt.setCode(CodeableConcept30_50.convertCodeableConcept(src.getCode())); 152 if (src.hasValue()) 153 tgt.setValue(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getValue())); 154 if (src.hasDataAbsentReason()) 155 tgt.setDataAbsentReason(CodeableConcept30_50.convertCodeableConcept(src.getDataAbsentReason())); 156 if (src.hasInterpretation()) 157 tgt.setInterpretation(CodeableConcept30_50.convertCodeableConcept(src.getInterpretationFirstRep())); 158 for (org.hl7.fhir.r5.model.Observation.ObservationReferenceRangeComponent t : src.getReferenceRange()) 159 tgt.addReferenceRange(convertObservationReferenceRangeComponent(t)); 160 return tgt; 161 } 162 163 public static org.hl7.fhir.r5.model.Observation.ObservationReferenceRangeComponent convertObservationReferenceRangeComponent(org.hl7.fhir.dstu3.model.Observation.ObservationReferenceRangeComponent src) throws FHIRException { 164 if (src == null) 165 return null; 166 org.hl7.fhir.r5.model.Observation.ObservationReferenceRangeComponent tgt = new org.hl7.fhir.r5.model.Observation.ObservationReferenceRangeComponent(); 167 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt); 168 if (src.hasLow()) 169 tgt.setLow(SimpleQuantity30_50.convertSimpleQuantity(src.getLow())); 170 if (src.hasHigh()) 171 tgt.setHigh(SimpleQuantity30_50.convertSimpleQuantity(src.getHigh())); 172 if (src.hasType()) 173 tgt.setType(CodeableConcept30_50.convertCodeableConcept(src.getType())); 174 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getAppliesTo()) 175 tgt.addAppliesTo(CodeableConcept30_50.convertCodeableConcept(t)); 176 if (src.hasAge()) 177 tgt.setAge(Range30_50.convertRange(src.getAge())); 178 if (src.hasText()) 179 tgt.setTextElement(String30_50.convertStringToMarkdown(src.getTextElement())); 180 return tgt; 181 } 182 183 public static org.hl7.fhir.dstu3.model.Observation.ObservationReferenceRangeComponent convertObservationReferenceRangeComponent(org.hl7.fhir.r5.model.Observation.ObservationReferenceRangeComponent src) throws FHIRException { 184 if (src == null) 185 return null; 186 org.hl7.fhir.dstu3.model.Observation.ObservationReferenceRangeComponent tgt = new org.hl7.fhir.dstu3.model.Observation.ObservationReferenceRangeComponent(); 187 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt); 188 if (src.hasLow()) 189 tgt.setLow(SimpleQuantity30_50.convertSimpleQuantity(src.getLow())); 190 if (src.hasHigh()) 191 tgt.setHigh(SimpleQuantity30_50.convertSimpleQuantity(src.getHigh())); 192 if (src.hasType()) 193 tgt.setType(CodeableConcept30_50.convertCodeableConcept(src.getType())); 194 for (org.hl7.fhir.r5.model.CodeableConcept t : src.getAppliesTo()) 195 tgt.addAppliesTo(CodeableConcept30_50.convertCodeableConcept(t)); 196 if (src.hasAge()) 197 tgt.setAge(Range30_50.convertRange(src.getAge())); 198 if (src.hasText()) 199 tgt.setTextElement(String30_50.convertString(src.getTextElement())); 200 return tgt; 201 } 202 203 public static org.hl7.fhir.dstu3.model.Observation.ObservationRelatedComponent convertObservationRelatedComponent(org.hl7.fhir.r5.model.Reference src, org.hl7.fhir.dstu3.model.Observation.ObservationRelationshipType type) throws FHIRException { 204 if (src == null) 205 return null; 206 org.hl7.fhir.dstu3.model.Observation.ObservationRelatedComponent tgt = new org.hl7.fhir.dstu3.model.Observation.ObservationRelatedComponent(); 207 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 208 tgt.setType(type); 209 tgt.setTarget(Reference30_50.convertReference(src)); 210 return tgt; 211 } 212 213 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ObservationStatus> convertObservationStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Observation.ObservationStatus> src) throws FHIRException { 214 if (src == null || src.isEmpty()) 215 return null; 216 Enumeration<Enumerations.ObservationStatus> tgt = new Enumeration<>(new Enumerations.ObservationStatusEnumFactory()); 217 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 218 if (src.getValue() == null) { 219 tgt.setValue(null); 220 } else { 221 switch (src.getValue()) { 222 case REGISTERED: 223 tgt.setValue(Enumerations.ObservationStatus.REGISTERED); 224 break; 225 case PRELIMINARY: 226 tgt.setValue(Enumerations.ObservationStatus.PRELIMINARY); 227 break; 228 case FINAL: 229 tgt.setValue(Enumerations.ObservationStatus.FINAL); 230 break; 231 case AMENDED: 232 tgt.setValue(Enumerations.ObservationStatus.AMENDED); 233 break; 234 case CORRECTED: 235 tgt.setValue(Enumerations.ObservationStatus.CORRECTED); 236 break; 237 case CANCELLED: 238 tgt.setValue(Enumerations.ObservationStatus.CANCELLED); 239 break; 240 case ENTEREDINERROR: 241 tgt.setValue(Enumerations.ObservationStatus.ENTEREDINERROR); 242 break; 243 case UNKNOWN: 244 tgt.setValue(Enumerations.ObservationStatus.UNKNOWN); 245 break; 246 default: 247 tgt.setValue(Enumerations.ObservationStatus.NULL); 248 break; 249 } 250 } 251 return tgt; 252 } 253 254 static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Observation.ObservationStatus> convertObservationStatus(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ObservationStatus> src) throws FHIRException { 255 if (src == null || src.isEmpty()) 256 return null; 257 org.hl7.fhir.dstu3.model.Enumeration<Observation.ObservationStatus> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new Observation.ObservationStatusEnumFactory()); 258 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 259 if (src.getValue() == null) { 260 tgt.setValue(null); 261 } else { 262 switch (src.getValue()) { 263 case REGISTERED: 264 tgt.setValue(Observation.ObservationStatus.REGISTERED); 265 break; 266 case PRELIMINARY: 267 tgt.setValue(Observation.ObservationStatus.PRELIMINARY); 268 break; 269 case FINAL: 270 tgt.setValue(Observation.ObservationStatus.FINAL); 271 break; 272 case AMENDED: 273 tgt.setValue(Observation.ObservationStatus.AMENDED); 274 break; 275 case CORRECTED: 276 tgt.setValue(Observation.ObservationStatus.CORRECTED); 277 break; 278 case CANCELLED: 279 tgt.setValue(Observation.ObservationStatus.CANCELLED); 280 break; 281 case ENTEREDINERROR: 282 tgt.setValue(Observation.ObservationStatus.ENTEREDINERROR); 283 break; 284 case UNKNOWN: 285 tgt.setValue(Observation.ObservationStatus.UNKNOWN); 286 break; 287 default: 288 tgt.setValue(Observation.ObservationStatus.NULL); 289 break; 290 } 291 } 292 return tgt; 293 } 294}