
001package org.hl7.fhir.convertors.conv40_50.resources40_50; 002 003import org.hl7.fhir.convertors.context.ConversionContext40_50; 004import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Annotation40_50; 005import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.CodeableConcept40_50; 006import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Identifier40_50; 007import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Range40_50; 008import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.SimpleQuantity40_50; 009import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Instant40_50; 010import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.String40_50; 011import org.hl7.fhir.convertors.conv40_50.datatypes40_50.special40_50.Reference40_50; 012import org.hl7.fhir.exceptions.FHIRException; 013import org.hl7.fhir.r4.model.Observation; 014import org.hl7.fhir.r5.model.Enumeration; 015import org.hl7.fhir.r5.model.Enumerations; 016 017/* 018 Copyright (c) 2011+, HL7, Inc. 019 All rights reserved. 020 021 Redistribution and use in source and binary forms, with or without modification, 022 are permitted provided that the following conditions are met: 023 024 * Redistributions of source code must retain the above copyright notice, this 025 list of conditions and the following disclaimer. 026 * Redistributions in binary form must reproduce the above copyright notice, 027 this list of conditions and the following disclaimer in the documentation 028 and/or other materials provided with the distribution. 029 * Neither the name of HL7 nor the names of its contributors may be used to 030 endorse or promote products derived from this software without specific 031 prior written permission. 032 033 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 034 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 035 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 036 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 037 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 038 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 039 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 040 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 041 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 042 POSSIBILITY OF SUCH DAMAGE. 043 044*/ 045// Generated on Sun, Feb 24, 2019 11:37+1100 for FHIR v4.0.0 046public class Observation40_50 { 047 048 public static org.hl7.fhir.r5.model.Observation convertObservation(org.hl7.fhir.r4.model.Observation src) throws FHIRException { 049 if (src == null) 050 return null; 051 org.hl7.fhir.r5.model.Observation tgt = new org.hl7.fhir.r5.model.Observation(); 052 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt); 053 for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier()) 054 tgt.addIdentifier(Identifier40_50.convertIdentifier(t)); 055 for (org.hl7.fhir.r4.model.Reference t : src.getBasedOn()) tgt.addBasedOn(Reference40_50.convertReference(t)); 056 for (org.hl7.fhir.r4.model.Reference t : src.getPartOf()) tgt.addPartOf(Reference40_50.convertReference(t)); 057 if (src.hasStatus()) 058 tgt.setStatusElement(convertObservationStatus(src.getStatusElement())); 059 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getCategory()) 060 tgt.addCategory(CodeableConcept40_50.convertCodeableConcept(t)); 061 if (src.hasCode()) 062 tgt.setCode(CodeableConcept40_50.convertCodeableConcept(src.getCode())); 063 if (src.hasSubject()) 064 tgt.setSubject(Reference40_50.convertReference(src.getSubject())); 065 for (org.hl7.fhir.r4.model.Reference t : src.getFocus()) tgt.addFocus(Reference40_50.convertReference(t)); 066 if (src.hasEncounter()) 067 tgt.setEncounter(Reference40_50.convertReference(src.getEncounter())); 068 if (src.hasEffective()) 069 tgt.setEffective(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getEffective())); 070 if (src.hasIssued()) 071 tgt.setIssuedElement(Instant40_50.convertInstant(src.getIssuedElement())); 072 for (org.hl7.fhir.r4.model.Reference t : src.getPerformer()) tgt.addPerformer(Reference40_50.convertReference(t)); 073 if (src.hasValue()) { 074 tgt.setValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getValue())); 075 } 076 077 if (src.hasDataAbsentReason()) 078 tgt.setDataAbsentReason(CodeableConcept40_50.convertCodeableConcept(src.getDataAbsentReason())); 079 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getInterpretation()) 080 tgt.addInterpretation(CodeableConcept40_50.convertCodeableConcept(t)); 081 for (org.hl7.fhir.r4.model.Annotation t : src.getNote()) tgt.addNote(Annotation40_50.convertAnnotation(t)); 082 if (src.hasBodySite()) 083 tgt.setBodySite(CodeableConcept40_50.convertCodeableConcept(src.getBodySite())); 084 if (src.hasMethod()) 085 tgt.setMethod(CodeableConcept40_50.convertCodeableConcept(src.getMethod())); 086 if (src.hasSpecimen()) 087 tgt.setSpecimen(Reference40_50.convertReference(src.getSpecimen())); 088 if (src.hasDevice()) 089 tgt.setDevice(Reference40_50.convertReference(src.getDevice())); 090 for (org.hl7.fhir.r4.model.Observation.ObservationReferenceRangeComponent t : src.getReferenceRange()) 091 tgt.addReferenceRange(convertObservationReferenceRangeComponent(t)); 092 for (org.hl7.fhir.r4.model.Reference t : src.getHasMember()) tgt.addHasMember(Reference40_50.convertReference(t)); 093 for (org.hl7.fhir.r4.model.Reference t : src.getDerivedFrom()) 094 tgt.addDerivedFrom(Reference40_50.convertReference(t)); 095 for (org.hl7.fhir.r4.model.Observation.ObservationComponentComponent t : src.getComponent()) 096 tgt.addComponent(convertObservationComponentComponent(t)); 097 return tgt; 098 } 099 100 public static org.hl7.fhir.r4.model.Observation convertObservation(org.hl7.fhir.r5.model.Observation src) throws FHIRException { 101 if (src == null) 102 return null; 103 org.hl7.fhir.r4.model.Observation tgt = new org.hl7.fhir.r4.model.Observation(); 104 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt); 105 for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier()) 106 tgt.addIdentifier(Identifier40_50.convertIdentifier(t)); 107 for (org.hl7.fhir.r5.model.Reference t : src.getBasedOn()) tgt.addBasedOn(Reference40_50.convertReference(t)); 108 for (org.hl7.fhir.r5.model.Reference t : src.getPartOf()) tgt.addPartOf(Reference40_50.convertReference(t)); 109 if (src.hasStatus()) 110 tgt.setStatusElement(convertObservationStatus(src.getStatusElement())); 111 for (org.hl7.fhir.r5.model.CodeableConcept t : src.getCategory()) 112 tgt.addCategory(CodeableConcept40_50.convertCodeableConcept(t)); 113 if (src.hasCode()) 114 tgt.setCode(CodeableConcept40_50.convertCodeableConcept(src.getCode())); 115 if (src.hasSubject()) 116 tgt.setSubject(Reference40_50.convertReference(src.getSubject())); 117 for (org.hl7.fhir.r5.model.Reference t : src.getFocus()) tgt.addFocus(Reference40_50.convertReference(t)); 118 if (src.hasEncounter()) 119 tgt.setEncounter(Reference40_50.convertReference(src.getEncounter())); 120 if (src.hasEffective()) 121 tgt.setEffective(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getEffective())); 122 if (src.hasIssued()) 123 tgt.setIssuedElement(Instant40_50.convertInstant(src.getIssuedElement())); 124 for (org.hl7.fhir.r5.model.Reference t : src.getPerformer()) tgt.addPerformer(Reference40_50.convertReference(t)); 125 if (src.hasValue()) { 126 tgt.setValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getValue())); 127 } 128 if (src.hasDataAbsentReason()) 129 tgt.setDataAbsentReason(CodeableConcept40_50.convertCodeableConcept(src.getDataAbsentReason())); 130 for (org.hl7.fhir.r5.model.CodeableConcept t : src.getInterpretation()) 131 tgt.addInterpretation(CodeableConcept40_50.convertCodeableConcept(t)); 132 for (org.hl7.fhir.r5.model.Annotation t : src.getNote()) tgt.addNote(Annotation40_50.convertAnnotation(t)); 133 if (src.hasBodySite()) 134 tgt.setBodySite(CodeableConcept40_50.convertCodeableConcept(src.getBodySite())); 135 if (src.hasMethod()) 136 tgt.setMethod(CodeableConcept40_50.convertCodeableConcept(src.getMethod())); 137 if (src.hasSpecimen()) 138 tgt.setSpecimen(Reference40_50.convertReference(src.getSpecimen())); 139 if (src.hasDevice()) 140 tgt.setDevice(Reference40_50.convertReference(src.getDevice())); 141 for (org.hl7.fhir.r5.model.Observation.ObservationReferenceRangeComponent t : src.getReferenceRange()) 142 tgt.addReferenceRange(convertObservationReferenceRangeComponent(t)); 143 for (org.hl7.fhir.r5.model.Reference t : src.getHasMember()) tgt.addHasMember(Reference40_50.convertReference(t)); 144 for (org.hl7.fhir.r5.model.Reference t : src.getDerivedFrom()) 145 tgt.addDerivedFrom(Reference40_50.convertReference(t)); 146 for (org.hl7.fhir.r5.model.Observation.ObservationComponentComponent t : src.getComponent()) 147 tgt.addComponent(convertObservationComponentComponent(t)); 148 return tgt; 149 } 150 151 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ObservationStatus> convertObservationStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Observation.ObservationStatus> src) throws FHIRException { 152 if (src == null || src.isEmpty()) 153 return null; 154 Enumeration<Enumerations.ObservationStatus> tgt = new Enumeration<>(new Enumerations.ObservationStatusEnumFactory()); 155 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 156 if (src.getValue() == null) { 157 tgt.setValue(null); 158 } else { 159 switch (src.getValue()) { 160 case REGISTERED: 161 tgt.setValue(Enumerations.ObservationStatus.REGISTERED); 162 break; 163 case PRELIMINARY: 164 tgt.setValue(Enumerations.ObservationStatus.PRELIMINARY); 165 break; 166 case FINAL: 167 tgt.setValue(Enumerations.ObservationStatus.FINAL); 168 break; 169 case AMENDED: 170 tgt.setValue(Enumerations.ObservationStatus.AMENDED); 171 break; 172 case CORRECTED: 173 tgt.setValue(Enumerations.ObservationStatus.CORRECTED); 174 break; 175 case CANCELLED: 176 tgt.setValue(Enumerations.ObservationStatus.CANCELLED); 177 break; 178 case ENTEREDINERROR: 179 tgt.setValue(Enumerations.ObservationStatus.ENTEREDINERROR); 180 break; 181 case UNKNOWN: 182 tgt.setValue(Enumerations.ObservationStatus.UNKNOWN); 183 break; 184 default: 185 tgt.setValue(Enumerations.ObservationStatus.NULL); 186 break; 187 } 188 } 189 return tgt; 190 } 191 192 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Observation.ObservationStatus> convertObservationStatus(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.ObservationStatus> src) throws FHIRException { 193 if (src == null || src.isEmpty()) 194 return null; 195 org.hl7.fhir.r4.model.Enumeration<Observation.ObservationStatus> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new Observation.ObservationStatusEnumFactory()); 196 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 197 if (src.getValue() == null) { 198 tgt.setValue(null); 199 } else { 200 switch (src.getValue()) { 201 case REGISTERED: 202 tgt.setValue(Observation.ObservationStatus.REGISTERED); 203 break; 204 case PRELIMINARY: 205 tgt.setValue(Observation.ObservationStatus.PRELIMINARY); 206 break; 207 case FINAL: 208 tgt.setValue(Observation.ObservationStatus.FINAL); 209 break; 210 case AMENDED: 211 tgt.setValue(Observation.ObservationStatus.AMENDED); 212 break; 213 case CORRECTED: 214 tgt.setValue(Observation.ObservationStatus.CORRECTED); 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 public static org.hl7.fhir.r5.model.Observation.ObservationReferenceRangeComponent convertObservationReferenceRangeComponent(org.hl7.fhir.r4.model.Observation.ObservationReferenceRangeComponent src) throws FHIRException { 234 if (src == null) 235 return null; 236 org.hl7.fhir.r5.model.Observation.ObservationReferenceRangeComponent tgt = new org.hl7.fhir.r5.model.Observation.ObservationReferenceRangeComponent(); 237 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt); 238 if (src.hasLow()) 239 tgt.setLow(SimpleQuantity40_50.convertSimpleQuantity(src.getLow())); 240 if (src.hasHigh()) 241 tgt.setHigh(SimpleQuantity40_50.convertSimpleQuantity(src.getHigh())); 242 if (src.hasType()) 243 tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType())); 244 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getAppliesTo()) 245 tgt.addAppliesTo(CodeableConcept40_50.convertCodeableConcept(t)); 246 if (src.hasAge()) 247 tgt.setAge(Range40_50.convertRange(src.getAge())); 248 if (src.hasText()) 249 tgt.setTextElement(String40_50.convertStringToMarkdown(src.getTextElement())); 250 return tgt; 251 } 252 253 public static org.hl7.fhir.r4.model.Observation.ObservationReferenceRangeComponent convertObservationReferenceRangeComponent(org.hl7.fhir.r5.model.Observation.ObservationReferenceRangeComponent src) throws FHIRException { 254 if (src == null) 255 return null; 256 org.hl7.fhir.r4.model.Observation.ObservationReferenceRangeComponent tgt = new org.hl7.fhir.r4.model.Observation.ObservationReferenceRangeComponent(); 257 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt); 258 if (src.hasLow()) 259 tgt.setLow(SimpleQuantity40_50.convertSimpleQuantity(src.getLow())); 260 if (src.hasHigh()) 261 tgt.setHigh(SimpleQuantity40_50.convertSimpleQuantity(src.getHigh())); 262 if (src.hasType()) 263 tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType())); 264 for (org.hl7.fhir.r5.model.CodeableConcept t : src.getAppliesTo()) 265 tgt.addAppliesTo(CodeableConcept40_50.convertCodeableConcept(t)); 266 if (src.hasAge()) 267 tgt.setAge(Range40_50.convertRange(src.getAge())); 268 if (src.hasText()) 269 tgt.setTextElement(String40_50.convertString(src.getTextElement())); 270 return tgt; 271 } 272 273 public static org.hl7.fhir.r5.model.Observation.ObservationComponentComponent convertObservationComponentComponent(org.hl7.fhir.r4.model.Observation.ObservationComponentComponent src) throws FHIRException { 274 if (src == null) 275 return null; 276 org.hl7.fhir.r5.model.Observation.ObservationComponentComponent tgt = new org.hl7.fhir.r5.model.Observation.ObservationComponentComponent(); 277 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt); 278 if (src.hasCode()) 279 tgt.setCode(CodeableConcept40_50.convertCodeableConcept(src.getCode())); 280 if (src.hasValue()) { 281 tgt.setValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getValue())); 282 } 283 if (src.hasDataAbsentReason()) 284 tgt.setDataAbsentReason(CodeableConcept40_50.convertCodeableConcept(src.getDataAbsentReason())); 285 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getInterpretation()) 286 tgt.addInterpretation(CodeableConcept40_50.convertCodeableConcept(t)); 287 for (org.hl7.fhir.r4.model.Observation.ObservationReferenceRangeComponent t : src.getReferenceRange()) 288 tgt.addReferenceRange(convertObservationReferenceRangeComponent(t)); 289 return tgt; 290 } 291 292 public static org.hl7.fhir.r4.model.Observation.ObservationComponentComponent convertObservationComponentComponent(org.hl7.fhir.r5.model.Observation.ObservationComponentComponent src) throws FHIRException { 293 if (src == null) 294 return null; 295 org.hl7.fhir.r4.model.Observation.ObservationComponentComponent tgt = new org.hl7.fhir.r4.model.Observation.ObservationComponentComponent(); 296 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt); 297 if (src.hasCode()) 298 tgt.setCode(CodeableConcept40_50.convertCodeableConcept(src.getCode())); 299 if (src.hasValue()) { 300 tgt.setValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getValue())); 301 } 302 if (src.hasDataAbsentReason()) 303 tgt.setDataAbsentReason(CodeableConcept40_50.convertCodeableConcept(src.getDataAbsentReason())); 304 for (org.hl7.fhir.r5.model.CodeableConcept t : src.getInterpretation()) 305 tgt.addInterpretation(CodeableConcept40_50.convertCodeableConcept(t)); 306 for (org.hl7.fhir.r5.model.Observation.ObservationReferenceRangeComponent t : src.getReferenceRange()) 307 tgt.addReferenceRange(convertObservationReferenceRangeComponent(t)); 308 return tgt; 309 } 310}