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