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.CodeableConcept43_50;
005import org.hl7.fhir.convertors.conv43_50.datatypes43_50.metadata43_50.ContactDetail43_50;
006import org.hl7.fhir.convertors.conv43_50.datatypes43_50.metadata43_50.UsageContext43_50;
007import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.Boolean43_50;
008import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.Canonical43_50;
009import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.Code43_50;
010import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.DateTime43_50;
011import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.MarkDown43_50;
012import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.String43_50;
013import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.Uri43_50;
014import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.Url43_50;
015import org.hl7.fhir.exceptions.FHIRException;
016import org.hl7.fhir.r4b.model.CodeType;
017import org.hl7.fhir.r5.model.Enumeration;
018import org.hl7.fhir.r5.model.Enumerations;
019import org.hl7.fhir.r5.model.Enumerations.CommonLanguages;
020import org.hl7.fhir.r5.model.Enumerations.CommonLanguagesEnumFactory;
021import org.hl7.fhir.r5.model.TerminologyCapabilities;
022
023/*
024  Copyright (c) 2011+, HL7, Inc.
025  All rights reserved.
026  
027  Redistribution and use in source and binary forms, with or without modification, 
028  are permitted provided that the following conditions are met:
029  
030   * Redistributions of source code must retain the above copyright notice, this 
031     list of conditions and the following disclaimer.
032   * Redistributions in binary form must reproduce the above copyright notice, 
033     this list of conditions and the following disclaimer in the documentation 
034     and/or other materials provided with the distribution.
035   * Neither the name of HL7 nor the names of its contributors may be used to 
036     endorse or promote products derived from this software without specific 
037     prior written permission.
038  
039  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
040  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
041  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
042  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
043  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
044  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
045  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
046  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
047  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
048  POSSIBILITY OF SUCH DAMAGE.
049  
050*/
051// Generated on Sun, Feb 24, 2019 11:37+1100 for FHIR v4.0.0
052public class TerminologyCapabilities43_50 {
053
054  public static org.hl7.fhir.r5.model.TerminologyCapabilities convertTerminologyCapabilities(org.hl7.fhir.r4b.model.TerminologyCapabilities src) throws FHIRException {
055    if (src == null)
056      return null;
057    org.hl7.fhir.r5.model.TerminologyCapabilities tgt = new org.hl7.fhir.r5.model.TerminologyCapabilities();
058    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyDomainResource(src, tgt);
059    if (src.hasUrl())
060      tgt.setUrlElement(Uri43_50.convertUri(src.getUrlElement()));
061    if (src.hasVersion())
062      tgt.setVersionElement(String43_50.convertString(src.getVersionElement()));
063    if (src.hasName())
064      tgt.setNameElement(String43_50.convertString(src.getNameElement()));
065    if (src.hasTitle())
066      tgt.setTitleElement(String43_50.convertString(src.getTitleElement()));
067    if (src.hasStatus())
068      tgt.setStatusElement(Enumerations43_50.convertPublicationStatus(src.getStatusElement()));
069    if (src.hasExperimental())
070      tgt.setExperimentalElement(Boolean43_50.convertBoolean(src.getExperimentalElement()));
071    if (src.hasDate())
072      tgt.setDateElement(DateTime43_50.convertDateTime(src.getDateElement()));
073    if (src.hasPublisher())
074      tgt.setPublisherElement(String43_50.convertString(src.getPublisherElement()));
075    for (org.hl7.fhir.r4b.model.ContactDetail t : src.getContact())
076      tgt.addContact(ContactDetail43_50.convertContactDetail(t));
077    if (src.hasDescription())
078      tgt.setDescriptionElement(MarkDown43_50.convertMarkdown(src.getDescriptionElement()));
079    for (org.hl7.fhir.r4b.model.UsageContext t : src.getUseContext())
080      tgt.addUseContext(UsageContext43_50.convertUsageContext(t));
081    for (org.hl7.fhir.r4b.model.CodeableConcept t : src.getJurisdiction())
082      tgt.addJurisdiction(CodeableConcept43_50.convertCodeableConcept(t));
083    if (src.hasPurpose())
084      tgt.setPurposeElement(MarkDown43_50.convertMarkdown(src.getPurposeElement()));
085    if (src.hasCopyright())
086      tgt.setCopyrightElement(MarkDown43_50.convertMarkdown(src.getCopyrightElement()));
087    if (src.hasKind())
088      tgt.setKindElement(convertCapabilityStatementKind(src.getKindElement()));
089    if (src.hasSoftware())
090      tgt.setSoftware(convertTerminologyCapabilitiesSoftwareComponent(src.getSoftware()));
091    if (src.hasImplementation())
092      tgt.setImplementation(convertTerminologyCapabilitiesImplementationComponent(src.getImplementation()));
093    if (src.hasLockedDate())
094      tgt.setLockedDateElement(Boolean43_50.convertBoolean(src.getLockedDateElement()));
095    for (org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemComponent t : src.getCodeSystem())
096      tgt.addCodeSystem(convertTerminologyCapabilitiesCodeSystemComponent(t));
097    if (src.hasExpansion())
098      tgt.setExpansion(convertTerminologyCapabilitiesExpansionComponent(src.getExpansion()));
099    if (src.hasCodeSearch())
100      tgt.setCodeSearchElement(convertCodeSearchSupport(src.getCodeSearchElement()));
101    if (src.hasValidateCode())
102      tgt.setValidateCode(convertTerminologyCapabilitiesValidateCodeComponent(src.getValidateCode()));
103    if (src.hasTranslation())
104      tgt.setTranslation(convertTerminologyCapabilitiesTranslationComponent(src.getTranslation()));
105    if (src.hasClosure())
106      tgt.setClosure(convertTerminologyCapabilitiesClosureComponent(src.getClosure()));
107    return tgt;
108  }
109
110  public static org.hl7.fhir.r4b.model.TerminologyCapabilities convertTerminologyCapabilities(org.hl7.fhir.r5.model.TerminologyCapabilities src) throws FHIRException {
111    if (src == null)
112      return null;
113    org.hl7.fhir.r4b.model.TerminologyCapabilities tgt = new org.hl7.fhir.r4b.model.TerminologyCapabilities();
114    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyDomainResource(src, tgt);
115    if (src.hasUrl())
116      tgt.setUrlElement(Uri43_50.convertUri(src.getUrlElement()));
117    if (src.hasVersion())
118      tgt.setVersionElement(String43_50.convertString(src.getVersionElement()));
119    if (src.hasName())
120      tgt.setNameElement(String43_50.convertString(src.getNameElement()));
121    if (src.hasTitle())
122      tgt.setTitleElement(String43_50.convertString(src.getTitleElement()));
123    if (src.hasStatus())
124      tgt.setStatusElement(Enumerations43_50.convertPublicationStatus(src.getStatusElement()));
125    if (src.hasExperimental())
126      tgt.setExperimentalElement(Boolean43_50.convertBoolean(src.getExperimentalElement()));
127    if (src.hasDate())
128      tgt.setDateElement(DateTime43_50.convertDateTime(src.getDateElement()));
129    if (src.hasPublisher())
130      tgt.setPublisherElement(String43_50.convertString(src.getPublisherElement()));
131    for (org.hl7.fhir.r5.model.ContactDetail t : src.getContact())
132      tgt.addContact(ContactDetail43_50.convertContactDetail(t));
133    if (src.hasDescription())
134      tgt.setDescriptionElement(MarkDown43_50.convertMarkdown(src.getDescriptionElement()));
135    for (org.hl7.fhir.r5.model.UsageContext t : src.getUseContext())
136      tgt.addUseContext(UsageContext43_50.convertUsageContext(t));
137    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getJurisdiction())
138      tgt.addJurisdiction(CodeableConcept43_50.convertCodeableConcept(t));
139    if (src.hasPurpose())
140      tgt.setPurposeElement(MarkDown43_50.convertMarkdown(src.getPurposeElement()));
141    if (src.hasCopyright())
142      tgt.setCopyrightElement(MarkDown43_50.convertMarkdown(src.getCopyrightElement()));
143    if (src.hasKind())
144      tgt.setKindElement(convertCapabilityStatementKind(src.getKindElement()));
145    if (src.hasSoftware())
146      tgt.setSoftware(convertTerminologyCapabilitiesSoftwareComponent(src.getSoftware()));
147    if (src.hasImplementation())
148      tgt.setImplementation(convertTerminologyCapabilitiesImplementationComponent(src.getImplementation()));
149    if (src.hasLockedDate())
150      tgt.setLockedDateElement(Boolean43_50.convertBoolean(src.getLockedDateElement()));
151    for (org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemComponent t : src.getCodeSystem())
152      tgt.addCodeSystem(convertTerminologyCapabilitiesCodeSystemComponent(t));
153    if (src.hasExpansion())
154      tgt.setExpansion(convertTerminologyCapabilitiesExpansionComponent(src.getExpansion()));
155    if (src.hasCodeSearch())
156      tgt.setCodeSearchElement(convertCodeSearchSupport(src.getCodeSearchElement()));
157    if (src.hasValidateCode())
158      tgt.setValidateCode(convertTerminologyCapabilitiesValidateCodeComponent(src.getValidateCode()));
159    if (src.hasTranslation())
160      tgt.setTranslation(convertTerminologyCapabilitiesTranslationComponent(src.getTranslation()));
161    if (src.hasClosure())
162      tgt.setClosure(convertTerminologyCapabilitiesClosureComponent(src.getClosure()));
163    return tgt;
164  }
165
166  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.CapabilityStatementKind> convertCapabilityStatementKind(org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Enumerations.CapabilityStatementKind> src) throws FHIRException {
167      if (src == null || src.isEmpty())
168          return null;
169      Enumeration<Enumerations.CapabilityStatementKind> tgt = new Enumeration<>(new Enumerations.CapabilityStatementKindEnumFactory());
170      ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
171      if (src.getValue() == null) {
172          tgt.setValue(null);
173      } else {
174          switch (src.getValue()) {
175              case INSTANCE:
176                  tgt.setValue(Enumerations.CapabilityStatementKind.INSTANCE);
177                  break;
178              case CAPABILITY:
179                  tgt.setValue(Enumerations.CapabilityStatementKind.CAPABILITY);
180                  break;
181              case REQUIREMENTS:
182                  tgt.setValue(Enumerations.CapabilityStatementKind.REQUIREMENTS);
183                  break;
184              default:
185                  tgt.setValue(Enumerations.CapabilityStatementKind.NULL);
186                  break;
187          }
188      }
189      return tgt;
190  }
191
192  static public org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Enumerations.CapabilityStatementKind> convertCapabilityStatementKind(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.CapabilityStatementKind> src) throws FHIRException {
193      if (src == null || src.isEmpty())
194          return null;
195      org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.Enumerations.CapabilityStatementKind> tgt = new org.hl7.fhir.r4b.model.Enumeration<>(new org.hl7.fhir.r4b.model.Enumerations.CapabilityStatementKindEnumFactory());
196      ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
197      if (src.getValue() == null) {
198          tgt.setValue(null);
199      } else {
200          switch (src.getValue()) {
201              case INSTANCE:
202                  tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.CapabilityStatementKind.INSTANCE);
203                  break;
204              case CAPABILITY:
205                  tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.CapabilityStatementKind.CAPABILITY);
206                  break;
207              case REQUIREMENTS:
208                  tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.CapabilityStatementKind.REQUIREMENTS);
209                  break;
210              default:
211                  tgt.setValue(org.hl7.fhir.r4b.model.Enumerations.CapabilityStatementKind.NULL);
212                  break;
213          }
214      }
215      return tgt;
216  }
217
218  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.TerminologyCapabilities.CodeSearchSupport> convertCodeSearchSupport(org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.TerminologyCapabilities.CodeSearchSupport> src) throws FHIRException {
219      if (src == null || src.isEmpty())
220          return null;
221      Enumeration<TerminologyCapabilities.CodeSearchSupport> tgt = new Enumeration<>(new TerminologyCapabilities.CodeSearchSupportEnumFactory());
222      ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
223      if (src.getValue() == null) {
224          tgt.setValue(null);
225      } else {
226          switch (src.getValue()) {
227              case EXPLICIT:
228                  tgt.setValue(TerminologyCapabilities.CodeSearchSupport.INCOMPOSE);
229                  break;
230              case ALL:
231                  tgt.setValue(TerminologyCapabilities.CodeSearchSupport.INCOMPOSEOREXPANSION);
232                  break;
233              default:
234                  tgt.setValue(TerminologyCapabilities.CodeSearchSupport.NULL);
235                  break;
236          }
237      }
238      return tgt;
239  }
240
241  static public org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.TerminologyCapabilities.CodeSearchSupport> convertCodeSearchSupport(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.TerminologyCapabilities.CodeSearchSupport> src) throws FHIRException {
242      if (src == null || src.isEmpty())
243          return null;
244      org.hl7.fhir.r4b.model.Enumeration<org.hl7.fhir.r4b.model.TerminologyCapabilities.CodeSearchSupport> tgt = new org.hl7.fhir.r4b.model.Enumeration<>(new org.hl7.fhir.r4b.model.TerminologyCapabilities.CodeSearchSupportEnumFactory());
245      ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
246      if (src.getValue() == null) {
247          tgt.setValue(null);
248      } else {
249          switch (src.getValue()) {
250              case INCOMPOSE:
251                  tgt.setValue(org.hl7.fhir.r4b.model.TerminologyCapabilities.CodeSearchSupport.EXPLICIT);
252                  break;
253              case INCOMPOSEOREXPANSION:
254                  tgt.setValue(org.hl7.fhir.r4b.model.TerminologyCapabilities.CodeSearchSupport.ALL);
255                  break;
256              default:
257                  tgt.setValue(org.hl7.fhir.r4b.model.TerminologyCapabilities.CodeSearchSupport.NULL);
258                  break;
259          }
260      }
261      return tgt;
262  }
263
264  public static org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesSoftwareComponent convertTerminologyCapabilitiesSoftwareComponent(org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesSoftwareComponent src) throws FHIRException {
265    if (src == null)
266      return null;
267    org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesSoftwareComponent tgt = new org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesSoftwareComponent();
268    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
269    if (src.hasName())
270      tgt.setNameElement(String43_50.convertString(src.getNameElement()));
271    if (src.hasVersion())
272      tgt.setVersionElement(String43_50.convertString(src.getVersionElement()));
273    return tgt;
274  }
275
276  public static org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesSoftwareComponent convertTerminologyCapabilitiesSoftwareComponent(org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesSoftwareComponent src) throws FHIRException {
277    if (src == null)
278      return null;
279    org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesSoftwareComponent tgt = new org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesSoftwareComponent();
280    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
281    if (src.hasName())
282      tgt.setNameElement(String43_50.convertString(src.getNameElement()));
283    if (src.hasVersion())
284      tgt.setVersionElement(String43_50.convertString(src.getVersionElement()));
285    return tgt;
286  }
287
288  public static org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesImplementationComponent convertTerminologyCapabilitiesImplementationComponent(org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesImplementationComponent src) throws FHIRException {
289    if (src == null)
290      return null;
291    org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesImplementationComponent tgt = new org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesImplementationComponent();
292    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
293    if (src.hasDescription())
294      tgt.setDescriptionElement(String43_50.convertString(src.getDescriptionElement()));
295    if (src.hasUrl())
296      tgt.setUrlElement(Url43_50.convertUrl(src.getUrlElement()));
297    return tgt;
298  }
299
300  public static org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesImplementationComponent convertTerminologyCapabilitiesImplementationComponent(org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesImplementationComponent src) throws FHIRException {
301    if (src == null)
302      return null;
303    org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesImplementationComponent tgt = new org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesImplementationComponent();
304    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
305    if (src.hasDescription())
306      tgt.setDescriptionElement(String43_50.convertString(src.getDescriptionElement()));
307    if (src.hasUrl())
308      tgt.setUrlElement(Url43_50.convertUrl(src.getUrlElement()));
309    return tgt;
310  }
311
312  public static org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemComponent convertTerminologyCapabilitiesCodeSystemComponent(org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemComponent src) throws FHIRException {
313    if (src == null)
314      return null;
315    org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemComponent tgt = new org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemComponent();
316    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
317    if (src.hasUri())
318      tgt.setUriElement(Canonical43_50.convertCanonical(src.getUriElement()));
319    for (org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionComponent t : src.getVersion())
320      tgt.addVersion(convertTerminologyCapabilitiesCodeSystemVersionComponent(t));
321    if (src.hasSubsumption())
322      tgt.setSubsumptionElement(Boolean43_50.convertBoolean(src.getSubsumptionElement()));
323    return tgt;
324  }
325
326  public static org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemComponent convertTerminologyCapabilitiesCodeSystemComponent(org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemComponent src) throws FHIRException {
327    if (src == null)
328      return null;
329    org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemComponent tgt = new org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemComponent();
330    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
331    if (src.hasUri())
332      tgt.setUriElement(Canonical43_50.convertCanonical(src.getUriElement()));
333    for (org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionComponent t : src.getVersion())
334      tgt.addVersion(convertTerminologyCapabilitiesCodeSystemVersionComponent(t));
335    if (src.hasSubsumption())
336      tgt.setSubsumptionElement(Boolean43_50.convertBoolean(src.getSubsumptionElement()));
337    return tgt;
338  }
339
340  public static org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionComponent convertTerminologyCapabilitiesCodeSystemVersionComponent(org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionComponent src) throws FHIRException {
341    if (src == null)
342      return null;
343    org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionComponent tgt = new org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionComponent();
344    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
345    if (src.hasCode())
346      tgt.setCodeElement(String43_50.convertString(src.getCodeElement()));
347    if (src.hasIsDefault())
348      tgt.setIsDefaultElement(Boolean43_50.convertBoolean(src.getIsDefaultElement()));
349    if (src.hasCompositional())
350      tgt.setCompositionalElement(Boolean43_50.convertBoolean(src.getCompositionalElement()));
351    for (org.hl7.fhir.r4b.model.CodeType t : src.getLanguage()) tgt.getLanguage().add(new Enumeration<CommonLanguages>(new CommonLanguagesEnumFactory(), t.getCode()));
352    for (org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionFilterComponent t : src.getFilter())
353      tgt.addFilter(convertTerminologyCapabilitiesCodeSystemVersionFilterComponent(t));
354    for (org.hl7.fhir.r4b.model.CodeType t : src.getProperty()) tgt.getProperty().add(Code43_50.convertCode(t));
355    return tgt;
356  }
357
358  public static org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionComponent convertTerminologyCapabilitiesCodeSystemVersionComponent(org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionComponent src) throws FHIRException {
359    if (src == null)
360      return null;
361    org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionComponent tgt = new org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionComponent();
362    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
363    if (src.hasCode())
364      tgt.setCodeElement(String43_50.convertString(src.getCodeElement()));
365    if (src.hasIsDefault())
366      tgt.setIsDefaultElement(Boolean43_50.convertBoolean(src.getIsDefaultElement()));
367    if (src.hasCompositional())
368      tgt.setCompositionalElement(Boolean43_50.convertBoolean(src.getCompositionalElement()));
369    for (Enumeration<CommonLanguages> t : src.getLanguage()) tgt.getLanguage().add(new CodeType(t.getCode()));
370    for (org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionFilterComponent t : src.getFilter())
371      tgt.addFilter(convertTerminologyCapabilitiesCodeSystemVersionFilterComponent(t));
372    for (org.hl7.fhir.r5.model.CodeType t : src.getProperty()) tgt.getProperty().add(Code43_50.convertCode(t));
373    return tgt;
374  }
375
376  public static org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionFilterComponent convertTerminologyCapabilitiesCodeSystemVersionFilterComponent(org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionFilterComponent src) throws FHIRException {
377    if (src == null)
378      return null;
379    org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionFilterComponent tgt = new org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionFilterComponent();
380    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
381    if (src.hasCode())
382      tgt.setCodeElement(Code43_50.convertCode(src.getCodeElement()));
383    for (org.hl7.fhir.r4b.model.CodeType t : src.getOp()) tgt.getOp().add(Code43_50.convertCode(t));
384    return tgt;
385  }
386
387  public static org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionFilterComponent convertTerminologyCapabilitiesCodeSystemVersionFilterComponent(org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionFilterComponent src) throws FHIRException {
388    if (src == null)
389      return null;
390    org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionFilterComponent tgt = new org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesCodeSystemVersionFilterComponent();
391    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
392    if (src.hasCode())
393      tgt.setCodeElement(Code43_50.convertCode(src.getCodeElement()));
394    for (org.hl7.fhir.r5.model.CodeType t : src.getOp()) tgt.getOp().add(Code43_50.convertCode(t));
395    return tgt;
396  }
397
398  public static org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionComponent convertTerminologyCapabilitiesExpansionComponent(org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionComponent src) throws FHIRException {
399    if (src == null)
400      return null;
401    org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionComponent tgt = new org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionComponent();
402    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
403    if (src.hasHierarchical())
404      tgt.setHierarchicalElement(Boolean43_50.convertBoolean(src.getHierarchicalElement()));
405    if (src.hasPaging())
406      tgt.setPagingElement(Boolean43_50.convertBoolean(src.getPagingElement()));
407    if (src.hasIncomplete())
408      tgt.setIncompleteElement(Boolean43_50.convertBoolean(src.getIncompleteElement()));
409    for (org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionParameterComponent t : src.getParameter())
410      tgt.addParameter(convertTerminologyCapabilitiesExpansionParameterComponent(t));
411    if (src.hasTextFilter())
412      tgt.setTextFilterElement(MarkDown43_50.convertMarkdown(src.getTextFilterElement()));
413    return tgt;
414  }
415
416  public static org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionComponent convertTerminologyCapabilitiesExpansionComponent(org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionComponent src) throws FHIRException {
417    if (src == null)
418      return null;
419    org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionComponent tgt = new org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionComponent();
420    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
421    if (src.hasHierarchical())
422      tgt.setHierarchicalElement(Boolean43_50.convertBoolean(src.getHierarchicalElement()));
423    if (src.hasPaging())
424      tgt.setPagingElement(Boolean43_50.convertBoolean(src.getPagingElement()));
425    if (src.hasIncomplete())
426      tgt.setIncompleteElement(Boolean43_50.convertBoolean(src.getIncompleteElement()));
427    for (org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionParameterComponent t : src.getParameter())
428      tgt.addParameter(convertTerminologyCapabilitiesExpansionParameterComponent(t));
429    if (src.hasTextFilter())
430      tgt.setTextFilterElement(MarkDown43_50.convertMarkdown(src.getTextFilterElement()));
431    return tgt;
432  }
433
434  public static org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionParameterComponent convertTerminologyCapabilitiesExpansionParameterComponent(org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionParameterComponent src) throws FHIRException {
435    if (src == null)
436      return null;
437    org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionParameterComponent tgt = new org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionParameterComponent();
438    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
439    if (src.hasName())
440      tgt.setNameElement(Code43_50.convertCode(src.getNameElement()));
441    if (src.hasDocumentation())
442      tgt.setDocumentationElement(String43_50.convertString(src.getDocumentationElement()));
443    return tgt;
444  }
445
446  public static org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionParameterComponent convertTerminologyCapabilitiesExpansionParameterComponent(org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionParameterComponent src) throws FHIRException {
447    if (src == null)
448      return null;
449    org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionParameterComponent tgt = new org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesExpansionParameterComponent();
450    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
451    if (src.hasName())
452      tgt.setNameElement(Code43_50.convertCode(src.getNameElement()));
453    if (src.hasDocumentation())
454      tgt.setDocumentationElement(String43_50.convertString(src.getDocumentationElement()));
455    return tgt;
456  }
457
458  public static org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesValidateCodeComponent convertTerminologyCapabilitiesValidateCodeComponent(org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesValidateCodeComponent src) throws FHIRException {
459    if (src == null)
460      return null;
461    org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesValidateCodeComponent tgt = new org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesValidateCodeComponent();
462    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
463    if (src.hasTranslations())
464      tgt.setTranslationsElement(Boolean43_50.convertBoolean(src.getTranslationsElement()));
465    return tgt;
466  }
467
468  public static org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesValidateCodeComponent convertTerminologyCapabilitiesValidateCodeComponent(org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesValidateCodeComponent src) throws FHIRException {
469    if (src == null)
470      return null;
471    org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesValidateCodeComponent tgt = new org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesValidateCodeComponent();
472    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
473    if (src.hasTranslations())
474      tgt.setTranslationsElement(Boolean43_50.convertBoolean(src.getTranslationsElement()));
475    return tgt;
476  }
477
478  public static org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesTranslationComponent convertTerminologyCapabilitiesTranslationComponent(org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesTranslationComponent src) throws FHIRException {
479    if (src == null)
480      return null;
481    org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesTranslationComponent tgt = new org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesTranslationComponent();
482    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
483    if (src.hasNeedsMap())
484      tgt.setNeedsMapElement(Boolean43_50.convertBoolean(src.getNeedsMapElement()));
485    return tgt;
486  }
487
488  public static org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesTranslationComponent convertTerminologyCapabilitiesTranslationComponent(org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesTranslationComponent src) throws FHIRException {
489    if (src == null)
490      return null;
491    org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesTranslationComponent tgt = new org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesTranslationComponent();
492    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
493    if (src.hasNeedsMap())
494      tgt.setNeedsMapElement(Boolean43_50.convertBoolean(src.getNeedsMapElement()));
495    return tgt;
496  }
497
498  public static org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesClosureComponent convertTerminologyCapabilitiesClosureComponent(org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesClosureComponent src) throws FHIRException {
499    if (src == null)
500      return null;
501    org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesClosureComponent tgt = new org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesClosureComponent();
502    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
503    if (src.hasTranslation())
504      tgt.setTranslationElement(Boolean43_50.convertBoolean(src.getTranslationElement()));
505    return tgt;
506  }
507
508  public static org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesClosureComponent convertTerminologyCapabilitiesClosureComponent(org.hl7.fhir.r5.model.TerminologyCapabilities.TerminologyCapabilitiesClosureComponent src) throws FHIRException {
509    if (src == null)
510      return null;
511    org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesClosureComponent tgt = new org.hl7.fhir.r4b.model.TerminologyCapabilities.TerminologyCapabilitiesClosureComponent();
512    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyBackboneElement(src, tgt);
513    if (src.hasTranslation())
514      tgt.setTranslationElement(Boolean43_50.convertBoolean(src.getTranslationElement()));
515    return tgt;
516  }
517}