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