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