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