
001package org.hl7.fhir.convertors.conv40_50.resources40_50; 002 003import org.hl7.fhir.convertors.VersionConvertorConstants; 004import org.hl7.fhir.convertors.context.ConversionContext40_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.metadata40_50.ContactDetail40_50; 008import org.hl7.fhir.convertors.conv40_50.datatypes40_50.metadata40_50.UsageContext40_50; 009import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Boolean40_50; 010import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Canonical40_50; 011import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Code40_50; 012import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.DateTime40_50; 013import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.MarkDown40_50; 014import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.String40_50; 015import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Uri40_50; 016import org.hl7.fhir.exceptions.FHIRException; 017import org.hl7.fhir.r4.model.Enumerations.ConceptMapEquivalence; 018import org.hl7.fhir.r5.extensions.ExtensionDefinitions; 019import org.hl7.fhir.r5.extensions.ExtensionUtilities; 020import org.hl7.fhir.r5.model.*; 021import org.hl7.fhir.r5.model.Enumerations.ConceptMapRelationship; 022import org.hl7.fhir.utilities.CanonicalPair; 023 024/* 025 Copyright (c) 2011+, HL7, Inc. 026 All rights reserved. 027 028 Redistribution and use in source and binary forms, with or without modification, 029 are permitted provided that the following conditions are met: 030 031 * Redistributions of source code must retain the above copyright notice, this 032 list of conditions and the following disclaimer. 033 * Redistributions in binary form must reproduce the above copyright notice, 034 this list of conditions and the following disclaimer in the documentation 035 and/or other materials provided with the distribution. 036 * Neither the name of HL7 nor the names of its contributors may be used to 037 endorse or promote products derived from this software without specific 038 prior written permission. 039 040 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 041 ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 042 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 043 IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 044 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 045 NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 046 PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 047 WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 048 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 049 POSSIBILITY OF SUCH DAMAGE. 050 051*/ 052// Generated on Sun, Feb 24, 2019 11:37+1100 for FHIR v4.0.0 053public class ConceptMap40_50 { 054 055 public static org.hl7.fhir.r5.model.ConceptMap convertConceptMap(org.hl7.fhir.r4.model.ConceptMap src) throws FHIRException { 056 if (src == null) 057 return null; 058 org.hl7.fhir.r5.model.ConceptMap tgt = new org.hl7.fhir.r5.model.ConceptMap(); 059 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt); 060 if (src.hasUrl()) 061 tgt.setUrlElement(Uri40_50.convertUri(src.getUrlElement())); 062 if (src.hasIdentifier()) 063 tgt.addIdentifier(Identifier40_50.convertIdentifier(src.getIdentifier())); 064 if (src.hasVersion()) 065 tgt.setVersionElement(String40_50.convertString(src.getVersionElement())); 066 if (src.hasName()) 067 tgt.setNameElement(String40_50.convertString(src.getNameElement())); 068 if (src.hasTitle()) 069 tgt.setTitleElement(String40_50.convertString(src.getTitleElement())); 070 if (src.hasStatus()) 071 tgt.setStatusElement(Enumerations40_50.convertPublicationStatus(src.getStatusElement())); 072 if (src.hasExperimental()) 073 tgt.setExperimentalElement(Boolean40_50.convertBoolean(src.getExperimentalElement())); 074 if (src.hasDate()) 075 tgt.setDateElement(DateTime40_50.convertDateTime(src.getDateElement())); 076 if (src.hasPublisher()) 077 tgt.setPublisherElement(String40_50.convertString(src.getPublisherElement())); 078 for (org.hl7.fhir.r4.model.ContactDetail t : src.getContact()) 079 tgt.addContact(ContactDetail40_50.convertContactDetail(t)); 080 if (src.hasDescription()) 081 tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement())); 082 for (org.hl7.fhir.r4.model.UsageContext t : src.getUseContext()) 083 tgt.addUseContext(UsageContext40_50.convertUsageContext(t)); 084 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getJurisdiction()) 085 tgt.addJurisdiction(CodeableConcept40_50.convertCodeableConcept(t)); 086 if (src.hasPurpose()) 087 tgt.setPurposeElement(MarkDown40_50.convertMarkdown(src.getPurposeElement())); 088 if (src.hasCopyright()) 089 tgt.setCopyrightElement(MarkDown40_50.convertMarkdown(src.getCopyrightElement())); 090 if (src.hasSource()) 091 tgt.setSourceScope(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getSource())); 092 if (src.hasTarget()) 093 tgt.setTargetScope(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getTarget())); 094 for (org.hl7.fhir.r4.model.ConceptMap.ConceptMapGroupComponent t : src.getGroup()) 095 tgt.addGroup(convertConceptMapGroupComponent(t, tgt)); 096 return tgt; 097 } 098 099 public static org.hl7.fhir.r4.model.ConceptMap convertConceptMap(org.hl7.fhir.r5.model.ConceptMap src) throws FHIRException { 100 if (src == null) 101 return null; 102 org.hl7.fhir.r4.model.ConceptMap tgt = new org.hl7.fhir.r4.model.ConceptMap(); 103 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt); 104 if (src.hasUrl()) 105 tgt.setUrlElement(Uri40_50.convertUri(src.getUrlElement())); 106 if (src.hasIdentifier()) 107 tgt.setIdentifier(Identifier40_50.convertIdentifier(src.getIdentifierFirstRep())); 108 if (src.hasVersion()) 109 tgt.setVersionElement(String40_50.convertString(src.getVersionElement())); 110 if (src.hasName()) 111 tgt.setNameElement(String40_50.convertString(src.getNameElement())); 112 if (src.hasTitle()) 113 tgt.setTitleElement(String40_50.convertString(src.getTitleElement())); 114 if (src.hasStatus()) 115 tgt.setStatusElement(Enumerations40_50.convertPublicationStatus(src.getStatusElement())); 116 if (src.hasExperimental()) 117 tgt.setExperimentalElement(Boolean40_50.convertBoolean(src.getExperimentalElement())); 118 if (src.hasDate()) 119 tgt.setDateElement(DateTime40_50.convertDateTime(src.getDateElement())); 120 if (src.hasPublisher()) 121 tgt.setPublisherElement(String40_50.convertString(src.getPublisherElement())); 122 for (org.hl7.fhir.r5.model.ContactDetail t : src.getContact()) 123 tgt.addContact(ContactDetail40_50.convertContactDetail(t)); 124 if (src.hasDescription()) 125 tgt.setDescriptionElement(MarkDown40_50.convertMarkdown(src.getDescriptionElement())); 126 for (org.hl7.fhir.r5.model.UsageContext t : src.getUseContext()) 127 tgt.addUseContext(UsageContext40_50.convertUsageContext(t)); 128 for (org.hl7.fhir.r5.model.CodeableConcept t : src.getJurisdiction()) 129 tgt.addJurisdiction(CodeableConcept40_50.convertCodeableConcept(t)); 130 if (src.hasPurpose()) 131 tgt.setPurposeElement(MarkDown40_50.convertMarkdown(src.getPurposeElement())); 132 if (src.hasCopyright()) 133 tgt.setCopyrightElement(MarkDown40_50.convertMarkdown(src.getCopyrightElement())); 134 if (src.hasSourceScope()) 135 tgt.setSource(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getSourceScope())); 136 if (src.hasTargetScope()) 137 tgt.setTarget(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getTargetScope())); 138 for (org.hl7.fhir.r5.model.ConceptMap.ConceptMapGroupComponent t : src.getGroup()) 139 tgt.addGroup(convertConceptMapGroupComponent(t, src)); 140 return tgt; 141 } 142 143 public static org.hl7.fhir.r5.model.ConceptMap.ConceptMapGroupComponent convertConceptMapGroupComponent(org.hl7.fhir.r4.model.ConceptMap.ConceptMapGroupComponent src, org.hl7.fhir.r5.model.ConceptMap tgtMap) throws FHIRException { 144 if (src == null) 145 return null; 146 org.hl7.fhir.r5.model.ConceptMap.ConceptMapGroupComponent tgt = new org.hl7.fhir.r5.model.ConceptMap.ConceptMapGroupComponent(); 147 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt); 148 if (src.hasSource() || src.hasSourceVersion()) 149 tgt.setSourceElement(convertUriAndVersionToCanonical(src.getSourceElement(), src.getSourceVersionElement())); 150 if (src.hasTarget() || src.hasTargetVersion()) 151 tgt.setTargetElement(convertUriAndVersionToCanonical(src.getTargetElement(), src.getTargetVersionElement())); 152 for (org.hl7.fhir.r4.model.ConceptMap.SourceElementComponent t : src.getElement()) 153 tgt.addElement(convertSourceElementComponent(t, tgtMap)); 154 if (src.hasUnmapped()) 155 tgt.setUnmapped(convertConceptMapGroupUnmappedComponent(src.getUnmapped())); 156 return tgt; 157 } 158 159 private static CanonicalType convertUriAndVersionToCanonical(org.hl7.fhir.r4.model.UriType srcUri, org.hl7.fhir.r4.model.StringType srcVersion) { 160 if (srcUri == null && srcVersion == null) 161 return null; 162 org.hl7.fhir.r5.model.CanonicalType tgt = new org.hl7.fhir.r5.model.CanonicalType(); 163 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(srcUri == null ? srcVersion : srcUri, tgt); 164 if (srcUri.hasValue()) { 165 if (srcVersion.hasValue()) { 166 tgt.setValue(srcUri.getValue() + "|" + srcVersion.getValue()); 167 } else { 168 tgt.setValue(srcUri.getValue()); 169 } 170 } 171 return tgt; 172 } 173 174 public static org.hl7.fhir.r4.model.ConceptMap.ConceptMapGroupComponent convertConceptMapGroupComponent(org.hl7.fhir.r5.model.ConceptMap.ConceptMapGroupComponent src, org.hl7.fhir.r5.model.ConceptMap srcMap) throws FHIRException { 175 if (src == null) 176 return null; 177 org.hl7.fhir.r4.model.ConceptMap.ConceptMapGroupComponent tgt = new org.hl7.fhir.r4.model.ConceptMap.ConceptMapGroupComponent(); 178 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt); 179 if (src.hasSource()) { 180 CanonicalPair cp = new CanonicalPair(src.getSource()); 181 tgt.setSource(cp.getUrl()); 182 tgt.setSourceVersion(cp.getVersion()); 183 } 184 if (src.hasTarget()) { 185 CanonicalPair cp = new CanonicalPair(src.getTarget()); 186 tgt.setTarget(cp.getUrl()); 187 tgt.setTargetVersion(cp.getVersion()); 188 } 189 for (org.hl7.fhir.r5.model.ConceptMap.SourceElementComponent t : src.getElement()) 190 tgt.addElement(convertSourceElementComponent(t, srcMap)); 191 if (src.hasUnmapped()) 192 tgt.setUnmapped(convertConceptMapGroupUnmappedComponent(src.getUnmapped())); 193 return tgt; 194 } 195 196 public static org.hl7.fhir.r5.model.ConceptMap.SourceElementComponent convertSourceElementComponent(org.hl7.fhir.r4.model.ConceptMap.SourceElementComponent src, org.hl7.fhir.r5.model.ConceptMap tgtMap) throws FHIRException { 197 if (src == null) 198 return null; 199 org.hl7.fhir.r5.model.ConceptMap.SourceElementComponent tgt = new org.hl7.fhir.r5.model.ConceptMap.SourceElementComponent(); 200 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt); 201 if (src.hasCode()) 202 tgt.setCodeElement(Code40_50.convertCode(src.getCodeElement())); 203 if (src.hasDisplay()) 204 tgt.setDisplayElement(String40_50.convertString(src.getDisplayElement())); 205 for (org.hl7.fhir.r4.model.ConceptMap.TargetElementComponent t : src.getTarget()) { 206 if (t.getEquivalence() == org.hl7.fhir.r4.model.Enumerations.ConceptMapEquivalence.UNMATCHED) { 207 tgt.setNoMap(true); 208 if (t.hasComment()) { 209 if (tgt.hasExtension(ExtensionDefinitions.EXT_CM_NOMAP_COMMENT)) { 210 throw new FHIRException("A source can only have one 'unmatched' relationship. Consider using 'disjoint' "); 211 } 212 tgt.addExtension(ExtensionDefinitions.EXT_CM_NOMAP_COMMENT, ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(t.getCommentElement())); 213 } 214 } else { 215 tgt.addTarget(convertTargetElementComponent(t, tgtMap)); 216 } 217 } 218 return tgt; 219 } 220 221 public static org.hl7.fhir.r4.model.ConceptMap.SourceElementComponent convertSourceElementComponent(org.hl7.fhir.r5.model.ConceptMap.SourceElementComponent src, org.hl7.fhir.r5.model.ConceptMap srcMap) throws FHIRException { 222 if (src == null) 223 return null; 224 org.hl7.fhir.r4.model.ConceptMap.SourceElementComponent tgt = new org.hl7.fhir.r4.model.ConceptMap.SourceElementComponent(); 225 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt, ExtensionDefinitions.EXT_CM_NOMAP_COMMENT); 226 if (src.hasCode()) 227 tgt.setCodeElement(Code40_50.convertCode(src.getCodeElement())); 228 if (src.hasDisplay()) 229 tgt.setDisplayElement(String40_50.convertString(src.getDisplayElement())); 230 if (src.hasNoMap() && src.getNoMap() == true) { 231 org.hl7.fhir.r4.model.ConceptMap.TargetElementComponent t = new org.hl7.fhir.r4.model.ConceptMap.TargetElementComponent(); 232 t.setEquivalence(org.hl7.fhir.r4.model.Enumerations.ConceptMapEquivalence.UNMATCHED); 233 if (src.hasExtension(ExtensionDefinitions.EXT_CM_NOMAP_COMMENT)) { 234 t.setCommentElement((org.hl7.fhir.r4.model.StringType) ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getExtensionByUrl(ExtensionDefinitions.EXT_CM_NOMAP_COMMENT).getValue())); 235 } 236 tgt.addTarget(t); 237 } else { 238 for (org.hl7.fhir.r5.model.ConceptMap.TargetElementComponent t : src.getTarget()) 239 tgt.addTarget(convertTargetElementComponent(t, srcMap)); 240 } 241 return tgt; 242 } 243 244 public static org.hl7.fhir.r5.model.ConceptMap.TargetElementComponent convertTargetElementComponent(org.hl7.fhir.r4.model.ConceptMap.TargetElementComponent src, org.hl7.fhir.r5.model.ConceptMap tgtMap) throws FHIRException { 245 if (src == null) 246 return null; 247 org.hl7.fhir.r5.model.ConceptMap.TargetElementComponent tgt = new org.hl7.fhir.r5.model.ConceptMap.TargetElementComponent(); 248 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt); 249 if (src.hasCode()) 250 tgt.setCodeElement(Code40_50.convertCode(src.getCodeElement())); 251 if (src.hasDisplay()) 252 tgt.setDisplayElement(String40_50.convertString(src.getDisplayElement())); 253 if (src.hasEquivalence()) 254 tgt.setRelationshipElement(convertConceptMapRelationship(src.getEquivalenceElement(), tgt)); 255 if (src.hasComment()) 256 tgt.setCommentElement(String40_50.convertString(src.getCommentElement())); 257 for (org.hl7.fhir.r4.model.ConceptMap.OtherElementComponent t : src.getDependsOn()) 258 tgt.addDependsOn(convertOtherElementComponent(t, tgtMap)); 259 for (org.hl7.fhir.r4.model.ConceptMap.OtherElementComponent t : src.getProduct()) 260 tgt.addProduct(convertOtherElementComponent(t, tgtMap)); 261 return tgt; 262 } 263 264 public static org.hl7.fhir.r4.model.ConceptMap.TargetElementComponent convertTargetElementComponent(org.hl7.fhir.r5.model.ConceptMap.TargetElementComponent src, org.hl7.fhir.r5.model.ConceptMap srcMap) throws FHIRException { 265 if (src == null) 266 return null; 267 org.hl7.fhir.r4.model.ConceptMap.TargetElementComponent tgt = new org.hl7.fhir.r4.model.ConceptMap.TargetElementComponent(); 268 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt, VersionConvertorConstants.EXT_OLD_CONCEPTMAP_EQUIVALENCE); 269 if (src.hasCode()) 270 tgt.setCodeElement(Code40_50.convertCode(src.getCodeElement())); 271 if (src.hasDisplay()) 272 tgt.setDisplayElement(String40_50.convertString(src.getDisplayElement())); 273 if (src.hasRelationship()) 274 tgt.setEquivalenceElement(convertConceptMapEquivalence(src.getRelationshipElement(), src)); 275 else 276 tgt.setEquivalence(ConceptMapEquivalence.RELATEDTO); 277 if (src.hasComment()) 278 tgt.setCommentElement(String40_50.convertString(src.getCommentElement())); 279 for (org.hl7.fhir.r5.model.ConceptMap.OtherElementComponent t : src.getDependsOn()) 280 tgt.addDependsOn(convertOtherElementComponent(t, srcMap)); 281 for (org.hl7.fhir.r5.model.ConceptMap.OtherElementComponent t : src.getProduct()) 282 tgt.addProduct(convertOtherElementComponent(t, srcMap)); 283 return tgt; 284 } 285 286 public static org.hl7.fhir.r4.model.Enumeration<ConceptMapEquivalence> convertConceptMapEquivalence(Enumeration<ConceptMapRelationship> src, org.hl7.fhir.r5.model.ConceptMap.TargetElementComponent ccm) throws FHIRException { 287 if (src == null || src.isEmpty()) 288 return null; 289 org.hl7.fhir.r4.model.Enumeration<ConceptMapEquivalence> tgt = new org.hl7.fhir.r4.model.Enumeration<ConceptMapEquivalence>(new org.hl7.fhir.r4.model.Enumerations.ConceptMapEquivalenceEnumFactory()); 290 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 291 if (ccm.hasExtension(VersionConvertorConstants.EXT_OLD_CONCEPTMAP_EQUIVALENCE)) { 292 tgt.setValueAsString(ccm.getExtensionString(VersionConvertorConstants.EXT_OLD_CONCEPTMAP_EQUIVALENCE)); 293 } else { 294 if (src.getValue() == null) { 295 tgt.setValue(null); 296 } else { 297 switch (src.getValue()) { 298 case RELATEDTO: 299 tgt.setValue(ConceptMapEquivalence.RELATEDTO); 300 break; 301 case EQUIVALENT: 302 tgt.setValue(ConceptMapEquivalence.EQUIVALENT); 303 break; 304 case SOURCEISNARROWERTHANTARGET: 305 tgt.setValue(ConceptMapEquivalence.WIDER); 306 break; 307 case SOURCEISBROADERTHANTARGET: 308 tgt.setValue(ConceptMapEquivalence.NARROWER); 309 break; 310 case NOTRELATEDTO: 311 tgt.setValue(ConceptMapEquivalence.DISJOINT); 312 break; 313 default: 314 tgt.setValue(ConceptMapEquivalence.NULL); 315 break; 316 } 317 } 318 } 319 return tgt; 320 } 321 322 public static Enumeration<ConceptMapRelationship> convertConceptMapRelationship(org.hl7.fhir.r4.model.Enumeration<ConceptMapEquivalence> src, org.hl7.fhir.r5.model.ConceptMap.TargetElementComponent tgtCtxt) throws FHIRException { 323 if (src == null || src.isEmpty()) 324 return null; 325 Enumeration<ConceptMapRelationship> tgt = new Enumeration<ConceptMapRelationship>(new Enumerations.ConceptMapRelationshipEnumFactory()); 326 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 327 ExtensionUtilities.setCodeExtensionMod(tgtCtxt, VersionConvertorConstants.EXT_OLD_CONCEPTMAP_EQUIVALENCE, src.getValueAsString()); 328 if (src.getValue() == null) { 329 tgt.setValue(null); 330 } else { 331 switch (src.getValue()) { 332 case EQUIVALENT: 333 tgt.setValue(ConceptMapRelationship.EQUIVALENT); 334 break; 335 case EQUAL: 336 tgt.setValue(ConceptMapRelationship.EQUIVALENT); 337 break; 338 case WIDER: 339 tgt.setValue(ConceptMapRelationship.SOURCEISNARROWERTHANTARGET); 340 break; 341 case SUBSUMES: 342 tgt.setValue(ConceptMapRelationship.SOURCEISNARROWERTHANTARGET); 343 break; 344 case NARROWER: 345 tgt.setValue(ConceptMapRelationship.SOURCEISBROADERTHANTARGET); 346 break; 347 case SPECIALIZES: 348 tgt.setValue(ConceptMapRelationship.SOURCEISBROADERTHANTARGET); 349 break; 350 case RELATEDTO: 351 tgt.setValue(ConceptMapRelationship.RELATEDTO); 352 break; 353 case INEXACT: 354 tgt.setValue(ConceptMapRelationship.RELATEDTO); 355 break; 356 case UNMATCHED: 357 tgt.setValue(ConceptMapRelationship.NULL); 358 break; 359 case DISJOINT: 360 tgt.setValue(ConceptMapRelationship.NOTRELATEDTO); 361 break; 362 default: 363 tgt.setValue(ConceptMapRelationship.NULL); 364 break; 365 } 366 } 367 return tgt; 368 } 369 370 public static org.hl7.fhir.r5.model.ConceptMap.OtherElementComponent convertOtherElementComponent(org.hl7.fhir.r4.model.ConceptMap.OtherElementComponent src, org.hl7.fhir.r5.model.ConceptMap tgtMap) throws FHIRException { 371 if (src == null) 372 return null; 373 org.hl7.fhir.r5.model.ConceptMap.OtherElementComponent tgt = new org.hl7.fhir.r5.model.ConceptMap.OtherElementComponent(); 374 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt); 375 if (src.hasProperty()) 376 tgt.setAttribute(tgtMap.registerAttribute(src.getProperty())); 377 if (src.hasSystem()) { 378 tgt.setValue(new Coding().setSystem(src.getSystem()).setCode(src.getValue()).setDisplay(src.getDisplay())); 379 } else if (src.hasValueElement()) { 380 tgt.setValue(String40_50.convertString(src.getValueElement())); 381 } 382 return tgt; 383 } 384 385 public static org.hl7.fhir.r4.model.ConceptMap.OtherElementComponent convertOtherElementComponent(org.hl7.fhir.r5.model.ConceptMap.OtherElementComponent src, org.hl7.fhir.r5.model.ConceptMap srcMap) throws FHIRException { 386 if (src == null) 387 return null; 388 org.hl7.fhir.r4.model.ConceptMap.OtherElementComponent tgt = new org.hl7.fhir.r4.model.ConceptMap.OtherElementComponent(); 389 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt); 390 if (src.hasAttribute()) 391 tgt.setProperty(srcMap.getAttributeUri(src.getAttribute())); 392 393 if (src.hasValueCoding()) { 394 tgt.setSystem(src.getValueCoding().getSystem()); 395 tgt.setValue(src.getValueCoding().getCode()); 396 tgt.setDisplay(src.getValueCoding().getDisplay()); 397 } else if (src.hasValue()) { 398 tgt.setValue(src.getValue().primitiveValue()); 399 } 400 401 return tgt; 402 } 403 404 public static org.hl7.fhir.r5.model.ConceptMap.ConceptMapGroupUnmappedComponent convertConceptMapGroupUnmappedComponent(org.hl7.fhir.r4.model.ConceptMap.ConceptMapGroupUnmappedComponent src) throws FHIRException { 405 if (src == null) 406 return null; 407 org.hl7.fhir.r5.model.ConceptMap.ConceptMapGroupUnmappedComponent tgt = new org.hl7.fhir.r5.model.ConceptMap.ConceptMapGroupUnmappedComponent(); 408 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt); 409 if (src.hasMode()) 410 tgt.setModeElement(convertConceptMapGroupUnmappedMode(src.getModeElement())); 411 if (src.hasCode()) 412 tgt.setCodeElement(Code40_50.convertCode(src.getCodeElement())); 413 if (src.hasDisplay()) 414 tgt.setDisplayElement(String40_50.convertString(src.getDisplayElement())); 415 if (src.hasUrl()) 416 tgt.setOtherMapElement(Canonical40_50.convertCanonical(src.getUrlElement())); 417 return tgt; 418 } 419 420 public static org.hl7.fhir.r4.model.ConceptMap.ConceptMapGroupUnmappedComponent convertConceptMapGroupUnmappedComponent(org.hl7.fhir.r5.model.ConceptMap.ConceptMapGroupUnmappedComponent src) throws FHIRException { 421 if (src == null) 422 return null; 423 org.hl7.fhir.r4.model.ConceptMap.ConceptMapGroupUnmappedComponent tgt = new org.hl7.fhir.r4.model.ConceptMap.ConceptMapGroupUnmappedComponent(); 424 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyBackboneElement(src, tgt); 425 if (src.hasMode()) 426 tgt.setModeElement(convertConceptMapGroupUnmappedMode(src.getModeElement())); 427 if (src.hasCode()) 428 tgt.setCodeElement(Code40_50.convertCode(src.getCodeElement())); 429 if (src.hasDisplay()) 430 tgt.setDisplayElement(String40_50.convertString(src.getDisplayElement())); 431 if (src.hasOtherMap()) 432 tgt.setUrlElement(Canonical40_50.convertCanonical(src.getOtherMapElement())); 433 return tgt; 434 } 435 436 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ConceptMap.ConceptMapGroupUnmappedMode> convertConceptMapGroupUnmappedMode(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ConceptMap.ConceptMapGroupUnmappedMode> src) throws FHIRException { 437 if (src == null || src.isEmpty()) 438 return null; 439 Enumeration<ConceptMap.ConceptMapGroupUnmappedMode> tgt = new Enumeration<>(new ConceptMap.ConceptMapGroupUnmappedModeEnumFactory()); 440 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 441 if (src.getValue() == null) { 442 tgt.setValue(null); 443 } else { 444 switch (src.getValue()) { 445 case PROVIDED: 446 tgt.setValue(ConceptMap.ConceptMapGroupUnmappedMode.USESOURCECODE); 447 break; 448 case FIXED: 449 tgt.setValue(ConceptMap.ConceptMapGroupUnmappedMode.FIXED); 450 break; 451 case OTHERMAP: 452 tgt.setValue(ConceptMap.ConceptMapGroupUnmappedMode.OTHERMAP); 453 break; 454 default: 455 tgt.setValue(ConceptMap.ConceptMapGroupUnmappedMode.NULL); 456 break; 457 } 458 } 459 return tgt; 460 } 461 462 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ConceptMap.ConceptMapGroupUnmappedMode> convertConceptMapGroupUnmappedMode(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.ConceptMap.ConceptMapGroupUnmappedMode> src) throws FHIRException { 463 if (src == null || src.isEmpty()) 464 return null; 465 org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.ConceptMap.ConceptMapGroupUnmappedMode> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.ConceptMap.ConceptMapGroupUnmappedModeEnumFactory()); 466 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 467 if (src.getValue() == null) { 468 tgt.setValue(null); 469 } else { 470 switch (src.getValue()) { 471 case USESOURCECODE: 472 tgt.setValue(org.hl7.fhir.r4.model.ConceptMap.ConceptMapGroupUnmappedMode.PROVIDED); 473 break; 474 case FIXED: 475 tgt.setValue(org.hl7.fhir.r4.model.ConceptMap.ConceptMapGroupUnmappedMode.FIXED); 476 break; 477 case OTHERMAP: 478 tgt.setValue(org.hl7.fhir.r4.model.ConceptMap.ConceptMapGroupUnmappedMode.OTHERMAP); 479 break; 480 default: 481 tgt.setValue(org.hl7.fhir.r4.model.ConceptMap.ConceptMapGroupUnmappedMode.NULL); 482 break; 483 } 484 } 485 return tgt; 486 } 487}