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