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.CodeableConcept40_50; 005import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Identifier40_50; 006import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Boolean40_50; 007import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Decimal40_50; 008import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Integer40_50; 009import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.String40_50; 010import org.hl7.fhir.exceptions.FHIRException; 011 012import java.util.stream.Collectors; 013 014/* 015 Copyright (c) 2011+, HL7, Inc. 016 All rights reserved. 017 018 Redistribution and use in source and binary forms, with or without modification, 019 are permitted provided that the following conditions are met: 020 021 * Redistributions of source code must retain the above copyright notice, this 022 list of conditions and the following disclaimer. 023 * Redistributions in binary form must reproduce the above copyright notice, 024 this list of conditions and the following disclaimer in the documentation 025 and/or other materials provided with the distribution. 026 * Neither the name of HL7 nor the names of its contributors may be used to 027 endorse or promote products derived from this software without specific 028 prior written permission. 029 030 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 031 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 032 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 033 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 034 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 035 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 036 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 037 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 038 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 039 POSSIBILITY OF SUCH DAMAGE. 040 041*/ 042// Generated on Sun, Feb 24, 2019 11:37+1100 for FHIR v4.0.0 043public class ObservationDefinition40_50 { 044 045 public static org.hl7.fhir.r5.model.ObservationDefinition convertObservationDefinition(org.hl7.fhir.r4.model.ObservationDefinition src) throws FHIRException { 046 if (src == null) 047 return null; 048 org.hl7.fhir.r5.model.ObservationDefinition tgt = new org.hl7.fhir.r5.model.ObservationDefinition(); 049 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt); 050 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getCategory()) 051 tgt.addCategory(CodeableConcept40_50.convertCodeableConcept(t)); 052 if (src.hasCode()) 053 tgt.setCode(CodeableConcept40_50.convertCodeableConcept(src.getCode())); 054 for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier()) 055 tgt.setIdentifier(Identifier40_50.convertIdentifier(t)); 056 tgt.setPermittedDataType(src.getPermittedDataType().stream() 057 .map(ObservationDefinition40_50::convertObservationDataType) 058 .collect(Collectors.toList())); 059 if (src.hasMultipleResultsAllowed()) 060 tgt.setMultipleResultsAllowedElement(Boolean40_50.convertBoolean(src.getMultipleResultsAllowedElement())); 061 if (src.hasMethod()) 062 tgt.setMethod(CodeableConcept40_50.convertCodeableConcept(src.getMethod())); 063 if (src.hasPreferredReportName()) 064 tgt.setPreferredReportNameElement(String40_50.convertString(src.getPreferredReportNameElement())); 065 if (src.hasQuantitativeDetails()) 066 tgt.setQuantitativeDetails(convertObservationDefinitionQuantitativeDetailsComponent(src.getQuantitativeDetails())); 067// for (org.hl7.fhir.r4.model.ObservationDefinition.ObservationDefinitionQualifiedIntervalComponent t : src.getQualifiedInterval()) tgt.addQualifiedInterval(convertObservationDefinitionQualifiedIntervalComponent(t)); 068// if (src.hasValidCodedValueSet()) 069// tgt.setValidCodedValueSet(convertReference(src.getValidCodedValueSet())); 070// if (src.hasNormalCodedValueSet()) 071// tgt.setNormalCodedValueSet(convertReference(src.getNormalCodedValueSet())); 072// if (src.hasAbnormalCodedValueSet()) 073// tgt.setAbnormalCodedValueSet(convertReference(src.getAbnormalCodedValueSet())); 074// if (src.hasCriticalCodedValueSet()) 075// tgt.setCriticalCodedValueSet(convertReference(src.getCriticalCodedValueSet())); 076 return tgt; 077 } 078 079 public static org.hl7.fhir.r4.model.ObservationDefinition convertObservationDefinition(org.hl7.fhir.r5.model.ObservationDefinition src) throws FHIRException { 080 if (src == null) 081 return null; 082 org.hl7.fhir.r4.model.ObservationDefinition tgt = new org.hl7.fhir.r4.model.ObservationDefinition(); 083 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt); 084 for (org.hl7.fhir.r5.model.CodeableConcept t : src.getCategory()) 085 tgt.addCategory(CodeableConcept40_50.convertCodeableConcept(t)); 086 if (src.hasCode()) 087 tgt.setCode(CodeableConcept40_50.convertCodeableConcept(src.getCode())); 088 if (src.hasIdentifier()) 089 tgt.addIdentifier(Identifier40_50.convertIdentifier(src.getIdentifier())); 090 tgt.setPermittedDataType(src.getPermittedDataType().stream() 091 .map(ObservationDefinition40_50::convertObservationDataType) 092 .collect(Collectors.toList())); 093 if (src.hasMultipleResultsAllowed()) 094 tgt.setMultipleResultsAllowedElement(Boolean40_50.convertBoolean(src.getMultipleResultsAllowedElement())); 095 if (src.hasMethod()) 096 tgt.setMethod(CodeableConcept40_50.convertCodeableConcept(src.getMethod())); 097 if (src.hasPreferredReportName()) 098 tgt.setPreferredReportNameElement(String40_50.convertString(src.getPreferredReportNameElement())); 099 if (src.hasQuantitativeDetails()) 100 tgt.setQuantitativeDetails(convertObservationDefinitionQuantitativeDetailsComponent(src.getQuantitativeDetails())); 101// for (org.hl7.fhir.r5.model.ObservationDefinition.ObservationDefinitionQualifiedIntervalComponent t : src.getQualifiedInterval()) tgt.addQualifiedInterval(convertObservationDefinitionQualifiedIntervalComponent(t)); 102// if (src.hasValidCodedValueSet()) 103// tgt.setValidCodedValueSet(convertReference(src.getValidCodedValueSet())); 104// if (src.hasNormalCodedValueSet()) 105// tgt.setNormalCodedValueSet(convertReference(src.getNormalCodedValueSet())); 106// if (src.hasAbnormalCodedValueSet()) 107// tgt.setAbnormalCodedValueSet(convertReference(src.getAbnormalCodedValueSet())); 108// if (src.hasCriticalCodedValueSet()) 109// tgt.setCriticalCodedValueSet(convertReference(src.getCriticalCodedValueSet())); 110 return tgt; 111 } 112 113 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ObservationDefinition.ObservationDataType> convertObservationDataType(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ObservationDefinition.ObservationDataType> src) throws FHIRException { 114 if (src == null || src.isEmpty()) 115 return null; 116 org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ObservationDefinition.ObservationDataType> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.ObservationDefinition.ObservationDataTypeEnumFactory()); 117 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 118 switch (src.getValue()) { 119 case QUANTITY: 120 tgt.setValue(org.hl7.fhir.r5.model.ObservationDefinition.ObservationDataType.QUANTITY); 121 break; 122 case CODEABLECONCEPT: 123 tgt.setValue(org.hl7.fhir.r5.model.ObservationDefinition.ObservationDataType.CODEABLECONCEPT); 124 break; 125 case STRING: 126 tgt.setValue(org.hl7.fhir.r5.model.ObservationDefinition.ObservationDataType.STRING); 127 break; 128 case BOOLEAN: 129 tgt.setValue(org.hl7.fhir.r5.model.ObservationDefinition.ObservationDataType.BOOLEAN); 130 break; 131 case INTEGER: 132 tgt.setValue(org.hl7.fhir.r5.model.ObservationDefinition.ObservationDataType.INTEGER); 133 break; 134 case RANGE: 135 tgt.setValue(org.hl7.fhir.r5.model.ObservationDefinition.ObservationDataType.RANGE); 136 break; 137 case RATIO: 138 tgt.setValue(org.hl7.fhir.r5.model.ObservationDefinition.ObservationDataType.RATIO); 139 break; 140 case SAMPLEDDATA: 141 tgt.setValue(org.hl7.fhir.r5.model.ObservationDefinition.ObservationDataType.SAMPLEDDATA); 142 break; 143 case TIME: 144 tgt.setValue(org.hl7.fhir.r5.model.ObservationDefinition.ObservationDataType.TIME); 145 break; 146 case DATETIME: 147 tgt.setValue(org.hl7.fhir.r5.model.ObservationDefinition.ObservationDataType.DATETIME); 148 break; 149 case PERIOD: 150 tgt.setValue(org.hl7.fhir.r5.model.ObservationDefinition.ObservationDataType.PERIOD); 151 break; 152 default: 153 tgt.setValue(org.hl7.fhir.r5.model.ObservationDefinition.ObservationDataType.NULL); 154 break; 155 } 156 return tgt; 157 } 158 159 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ObservationDefinition.ObservationDataType> convertObservationDataType(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ObservationDefinition.ObservationDataType> src) throws FHIRException { 160 if (src == null || src.isEmpty()) 161 return null; 162 org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ObservationDefinition.ObservationDataType> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.ObservationDefinition.ObservationDataTypeEnumFactory()); 163 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 164 switch (src.getValue()) { 165 case QUANTITY: 166 tgt.setValue(org.hl7.fhir.r4.model.ObservationDefinition.ObservationDataType.QUANTITY); 167 break; 168 case CODEABLECONCEPT: 169 tgt.setValue(org.hl7.fhir.r4.model.ObservationDefinition.ObservationDataType.CODEABLECONCEPT); 170 break; 171 case STRING: 172 tgt.setValue(org.hl7.fhir.r4.model.ObservationDefinition.ObservationDataType.STRING); 173 break; 174 case BOOLEAN: 175 tgt.setValue(org.hl7.fhir.r4.model.ObservationDefinition.ObservationDataType.BOOLEAN); 176 break; 177 case INTEGER: 178 tgt.setValue(org.hl7.fhir.r4.model.ObservationDefinition.ObservationDataType.INTEGER); 179 break; 180 case RANGE: 181 tgt.setValue(org.hl7.fhir.r4.model.ObservationDefinition.ObservationDataType.RANGE); 182 break; 183 case RATIO: 184 tgt.setValue(org.hl7.fhir.r4.model.ObservationDefinition.ObservationDataType.RATIO); 185 break; 186 case SAMPLEDDATA: 187 tgt.setValue(org.hl7.fhir.r4.model.ObservationDefinition.ObservationDataType.SAMPLEDDATA); 188 break; 189 case TIME: 190 tgt.setValue(org.hl7.fhir.r4.model.ObservationDefinition.ObservationDataType.TIME); 191 break; 192 case DATETIME: 193 tgt.setValue(org.hl7.fhir.r4.model.ObservationDefinition.ObservationDataType.DATETIME); 194 break; 195 case PERIOD: 196 tgt.setValue(org.hl7.fhir.r4.model.ObservationDefinition.ObservationDataType.PERIOD); 197 break; 198 default: 199 tgt.setValue(org.hl7.fhir.r4.model.ObservationDefinition.ObservationDataType.NULL); 200 break; 201 } 202 return tgt; 203 } 204 205 public static org.hl7.fhir.r5.model.ObservationDefinition.ObservationDefinitionQuantitativeDetailsComponent convertObservationDefinitionQuantitativeDetailsComponent(org.hl7.fhir.r4.model.ObservationDefinition.ObservationDefinitionQuantitativeDetailsComponent src) throws FHIRException { 206 if (src == null) 207 return null; 208 org.hl7.fhir.r5.model.ObservationDefinition.ObservationDefinitionQuantitativeDetailsComponent tgt = new org.hl7.fhir.r5.model.ObservationDefinition.ObservationDefinitionQuantitativeDetailsComponent(); 209 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 210 if (src.hasCustomaryUnit()) 211 tgt.setCustomaryUnit(CodeableConcept40_50.convertCodeableConcept(src.getCustomaryUnit())); 212 if (src.hasUnit()) 213 tgt.setUnit(CodeableConcept40_50.convertCodeableConcept(src.getUnit())); 214 if (src.hasConversionFactor()) 215 tgt.setConversionFactorElement(Decimal40_50.convertDecimal(src.getConversionFactorElement())); 216 if (src.hasDecimalPrecision()) 217 tgt.setDecimalPrecisionElement(Integer40_50.convertInteger(src.getDecimalPrecisionElement())); 218 return tgt; 219 } 220 221 public static org.hl7.fhir.r4.model.ObservationDefinition.ObservationDefinitionQuantitativeDetailsComponent convertObservationDefinitionQuantitativeDetailsComponent(org.hl7.fhir.r5.model.ObservationDefinition.ObservationDefinitionQuantitativeDetailsComponent src) throws FHIRException { 222 if (src == null) 223 return null; 224 org.hl7.fhir.r4.model.ObservationDefinition.ObservationDefinitionQuantitativeDetailsComponent tgt = new org.hl7.fhir.r4.model.ObservationDefinition.ObservationDefinitionQuantitativeDetailsComponent(); 225 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 226 if (src.hasCustomaryUnit()) 227 tgt.setCustomaryUnit(CodeableConcept40_50.convertCodeableConcept(src.getCustomaryUnit())); 228 if (src.hasUnit()) 229 tgt.setUnit(CodeableConcept40_50.convertCodeableConcept(src.getUnit())); 230 if (src.hasConversionFactor()) 231 tgt.setConversionFactorElement(Decimal40_50.convertDecimal(src.getConversionFactorElement())); 232 if (src.hasDecimalPrecision()) 233 tgt.setDecimalPrecisionElement(Integer40_50.convertInteger(src.getDecimalPrecisionElement())); 234 return tgt; 235 } 236 237// public static org.hl7.fhir.r5.model.ObservationDefinition.ObservationDefinitionQualifiedIntervalComponent convertObservationDefinitionQualifiedIntervalComponent(org.hl7.fhir.r4.model.ObservationDefinition.ObservationDefinitionQualifiedIntervalComponent src) throws FHIRException { 238// if (src == null) 239// return null; 240// org.hl7.fhir.r5.model.ObservationDefinition.ObservationDefinitionQualifiedIntervalComponent tgt = new org.hl7.fhir.r5.model.ObservationDefinition.ObservationDefinitionQualifiedIntervalComponent(); 241// copyElement(src, tgt); 242// if (src.hasCategory()) 243// tgt.setCategoryElement(convertObservationRangeCategory(src.getCategoryElement())); 244// if (src.hasRange()) 245// tgt.setRange(convertRange(src.getRange())); 246// if (src.hasContext()) 247// tgt.setContext(convertCodeableConcept(src.getContext())); 248// for (org.hl7.fhir.r4.model.CodeableConcept t : src.getAppliesTo()) tgt.addAppliesTo(convertCodeableConcept(t)); 249// if (src.hasGender()) 250// tgt.setGenderElement(Enumerations40_50.convertAdministrativeGender(src.getGenderElement())); 251// if (src.hasAge()) 252// tgt.setAge(convertRange(src.getAge())); 253// if (src.hasGestationalAge()) 254// tgt.setGestationalAge(convertRange(src.getGestationalAge())); 255// if (src.hasCondition()) 256// tgt.setConditionElement(convertString(src.getConditionElement())); 257// return tgt; 258// } 259// 260// public static org.hl7.fhir.r4.model.ObservationDefinition.ObservationDefinitionQualifiedIntervalComponent convertObservationDefinitionQualifiedIntervalComponent(org.hl7.fhir.r5.model.ObservationDefinition.ObservationDefinitionQualifiedIntervalComponent src) throws FHIRException { 261// if (src == null) 262// return null; 263// org.hl7.fhir.r4.model.ObservationDefinition.ObservationDefinitionQualifiedIntervalComponent tgt = new org.hl7.fhir.r4.model.ObservationDefinition.ObservationDefinitionQualifiedIntervalComponent(); 264// copyElement(src, tgt); 265// if (src.hasCategory()) 266// tgt.setCategoryElement(convertObservationRangeCategory(src.getCategoryElement())); 267// if (src.hasRange()) 268// tgt.setRange(convertRange(src.getRange())); 269// if (src.hasContext()) 270// tgt.setContext(convertCodeableConcept(src.getContext())); 271// for (org.hl7.fhir.r5.model.CodeableConcept t : src.getAppliesTo()) tgt.addAppliesTo(convertCodeableConcept(t)); 272// if (src.hasGender()) 273// tgt.setGenderElement(Enumerations40_50.convertAdministrativeGender(src.getGenderElement())); 274// if (src.hasAge()) 275// tgt.setAge(convertRange(src.getAge())); 276// if (src.hasGestationalAge()) 277// tgt.setGestationalAge(convertRange(src.getGestationalAge())); 278// if (src.hasCondition()) 279// tgt.setConditionElement(convertString(src.getConditionElement())); 280// return tgt; 281// } 282 283 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ObservationDefinition.ObservationRangeCategory> convertObservationRangeCategory(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ObservationDefinition.ObservationRangeCategory> src) throws FHIRException { 284 if (src == null || src.isEmpty()) 285 return null; 286 org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ObservationDefinition.ObservationRangeCategory> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.ObservationDefinition.ObservationRangeCategoryEnumFactory()); 287 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 288 switch (src.getValue()) { 289 case REFERENCE: 290 tgt.setValue(org.hl7.fhir.r5.model.ObservationDefinition.ObservationRangeCategory.REFERENCE); 291 break; 292 case CRITICAL: 293 tgt.setValue(org.hl7.fhir.r5.model.ObservationDefinition.ObservationRangeCategory.CRITICAL); 294 break; 295 case ABSOLUTE: 296 tgt.setValue(org.hl7.fhir.r5.model.ObservationDefinition.ObservationRangeCategory.ABSOLUTE); 297 break; 298 default: 299 tgt.setValue(org.hl7.fhir.r5.model.ObservationDefinition.ObservationRangeCategory.NULL); 300 break; 301 } 302 return tgt; 303 } 304 305 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ObservationDefinition.ObservationRangeCategory> convertObservationRangeCategory(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ObservationDefinition.ObservationRangeCategory> src) throws FHIRException { 306 if (src == null || src.isEmpty()) 307 return null; 308 org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ObservationDefinition.ObservationRangeCategory> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.ObservationDefinition.ObservationRangeCategoryEnumFactory()); 309 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 310 switch (src.getValue()) { 311 case REFERENCE: 312 tgt.setValue(org.hl7.fhir.r4.model.ObservationDefinition.ObservationRangeCategory.REFERENCE); 313 break; 314 case CRITICAL: 315 tgt.setValue(org.hl7.fhir.r4.model.ObservationDefinition.ObservationRangeCategory.CRITICAL); 316 break; 317 case ABSOLUTE: 318 tgt.setValue(org.hl7.fhir.r4.model.ObservationDefinition.ObservationRangeCategory.ABSOLUTE); 319 break; 320 default: 321 tgt.setValue(org.hl7.fhir.r4.model.ObservationDefinition.ObservationRangeCategory.NULL); 322 break; 323 } 324 return tgt; 325 } 326}