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