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