001package org.hl7.fhir.convertors.conv14_40.resources14_40;
002
003import org.hl7.fhir.convertors.context.ConversionContext14_40;
004import org.hl7.fhir.convertors.conv14_40.VersionConvertor_14_40;
005import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.CodeableConcept14_40;
006import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.Coding14_40;
007import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.ContactPoint14_40;
008import org.hl7.fhir.convertors.conv14_40.datatypes14_40.complextypes14_40.Identifier14_40;
009import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.Boolean14_40;
010import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.Code14_40;
011import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.DateTime14_40;
012import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.String14_40;
013import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.UnsignedInt14_40;
014import org.hl7.fhir.convertors.conv14_40.datatypes14_40.primitivetypes14_40.Uri14_40;
015import org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionPropertyComponent;
016import org.hl7.fhir.exceptions.FHIRException;
017import org.hl7.fhir.r4.model.CodeSystem;
018import org.hl7.fhir.r4.model.CodeSystem.FilterOperator;
019import org.hl7.fhir.r4.model.Enumeration;
020
021public class CodeSystem14_40 {
022
023  public static org.hl7.fhir.r4.model.CodeSystem convertCodeSystem(org.hl7.fhir.dstu2016may.model.CodeSystem src) throws FHIRException {
024    if (src == null || src.isEmpty())
025      return null;
026    org.hl7.fhir.r4.model.CodeSystem tgt = new org.hl7.fhir.r4.model.CodeSystem();
027    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyDomainResource(src, tgt);
028    if (src.hasUrl())
029      tgt.setUrlElement(Uri14_40.convertUri(src.getUrlElement()));
030    if (src.hasIdentifier())
031      tgt.addIdentifier(Identifier14_40.convertIdentifier(src.getIdentifier()));
032    if (src.hasVersion())
033      tgt.setVersionElement(String14_40.convertString(src.getVersionElement()));
034    if (src.hasName())
035      tgt.setNameElement(String14_40.convertString(src.getNameElement()));
036    if (src.hasStatus())
037      tgt.setStatusElement(Enumerations14_40.convertConformanceResourceStatus(src.getStatusElement()));
038    if (src.hasExperimental())
039      tgt.setExperimentalElement(Boolean14_40.convertBoolean(src.getExperimentalElement()));
040    if (src.hasPublisher())
041      tgt.setPublisherElement(String14_40.convertString(src.getPublisherElement()));
042    for (org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContactComponent t : src.getContact())
043      tgt.addContact(convertCodeSystemContactComponent(t));
044    if (src.hasDate())
045      tgt.setDateElement(DateTime14_40.convertDateTime(src.getDateElement()));
046    if (src.hasDescription())
047      tgt.setDescription(src.getDescription());
048    for (org.hl7.fhir.dstu2016may.model.CodeableConcept t : src.getUseContext())
049      if (VersionConvertor_14_40.isJurisdiction(t))
050        tgt.addJurisdiction(CodeableConcept14_40.convertCodeableConcept(t));
051      else
052        tgt.addUseContext(CodeableConcept14_40.convertCodeableConceptToUsageContext(t));
053    if (src.hasRequirements())
054      tgt.setPurpose(src.getRequirements());
055    if (src.hasCopyright())
056      tgt.setCopyright(src.getCopyright());
057    if (src.hasCaseSensitive())
058      tgt.setCaseSensitiveElement(Boolean14_40.convertBoolean(src.getCaseSensitiveElement()));
059    if (src.hasValueSet())
060      tgt.setValueSet(src.getValueSet());
061    if (src.hasCompositional())
062      tgt.setCompositionalElement(Boolean14_40.convertBoolean(src.getCompositionalElement()));
063    if (src.hasVersionNeeded())
064      tgt.setVersionNeededElement(Boolean14_40.convertBoolean(src.getVersionNeededElement()));
065    if (src.hasContent())
066      tgt.setContentElement(convertCodeSystemContentMode(src.getContentElement()));
067    if (src.hasCount())
068      tgt.setCountElement(UnsignedInt14_40.convertUnsignedInt(src.getCountElement()));
069    for (org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemFilterComponent t : src.getFilter())
070      tgt.addFilter(convertCodeSystemFilterComponent(t));
071    for (org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemPropertyComponent t : src.getProperty())
072      tgt.addProperty(convertPropertyComponent(t));
073    for (org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionComponent t : src.getConcept())
074      tgt.addConcept(convertConceptDefinitionComponent(t));
075    return tgt;
076  }
077
078  public static org.hl7.fhir.dstu2016may.model.CodeSystem convertCodeSystem(org.hl7.fhir.r4.model.CodeSystem src) throws FHIRException {
079    if (src == null || src.isEmpty())
080      return null;
081    org.hl7.fhir.dstu2016may.model.CodeSystem tgt = new org.hl7.fhir.dstu2016may.model.CodeSystem();
082    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyDomainResource(src, tgt);
083    if (src.hasUrl())
084      tgt.setUrlElement(Uri14_40.convertUri(src.getUrlElement()));
085    if (src.hasIdentifier())
086      tgt.setIdentifier(Identifier14_40.convertIdentifier(src.getIdentifierFirstRep()));
087    if (src.hasVersion())
088      tgt.setVersionElement(String14_40.convertString(src.getVersionElement()));
089    if (src.hasName())
090      tgt.setNameElement(String14_40.convertString(src.getNameElement()));
091    if (src.hasStatus())
092      tgt.setStatusElement(Enumerations14_40.convertConformanceResourceStatus(src.getStatusElement()));
093    if (src.hasExperimental())
094      tgt.setExperimentalElement(Boolean14_40.convertBoolean(src.getExperimentalElement()));
095    if (src.hasPublisher())
096      tgt.setPublisherElement(String14_40.convertString(src.getPublisherElement()));
097    for (org.hl7.fhir.r4.model.ContactDetail t : src.getContact()) tgt.addContact(convertCodeSystemContactComponent(t));
098    if (src.hasDate())
099      tgt.setDateElement(DateTime14_40.convertDateTime(src.getDateElement()));
100    if (src.hasDescription())
101      tgt.setDescription(src.getDescription());
102    for (org.hl7.fhir.r4.model.UsageContext t : src.getUseContext())
103      if (t.hasValueCodeableConcept())
104        tgt.addUseContext(CodeableConcept14_40.convertCodeableConcept(t.getValueCodeableConcept()));
105    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getJurisdiction())
106      tgt.addUseContext(CodeableConcept14_40.convertCodeableConcept(t));
107    if (src.hasPurpose())
108      tgt.setRequirements(src.getPurpose());
109    if (src.hasCopyright())
110      tgt.setCopyright(src.getCopyright());
111    if (src.hasCaseSensitive())
112      tgt.setCaseSensitiveElement(Boolean14_40.convertBoolean(src.getCaseSensitiveElement()));
113    if (src.hasValueSet())
114      tgt.setValueSet(src.getValueSet());
115    if (src.hasCompositional())
116      tgt.setCompositionalElement(Boolean14_40.convertBoolean(src.getCompositionalElement()));
117    if (src.hasVersionNeeded())
118      tgt.setVersionNeededElement(Boolean14_40.convertBoolean(src.getVersionNeededElement()));
119    if (src.hasContent())
120      tgt.setContentElement(convertCodeSystemContentMode(src.getContentElement()));
121    if (src.hasCount())
122      tgt.setCountElement(UnsignedInt14_40.convertUnsignedInt(src.getCountElement()));
123    for (org.hl7.fhir.r4.model.CodeSystem.CodeSystemFilterComponent t : src.getFilter())
124      tgt.addFilter(convertCodeSystemFilterComponent(t));
125    for (org.hl7.fhir.r4.model.CodeSystem.PropertyComponent t : src.getProperty())
126      tgt.addProperty(convertPropertyComponent(t));
127    for (org.hl7.fhir.r4.model.CodeSystem.ConceptDefinitionComponent t : src.getConcept())
128      tgt.addConcept(convertConceptDefinitionComponent(t));
129    return tgt;
130  }
131
132  public static org.hl7.fhir.r4.model.ContactDetail convertCodeSystemContactComponent(org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContactComponent src) throws FHIRException {
133    if (src == null || src.isEmpty())
134      return null;
135    org.hl7.fhir.r4.model.ContactDetail tgt = new org.hl7.fhir.r4.model.ContactDetail();
136    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyElement(src, tgt);
137    if (src.hasName())
138      tgt.setNameElement(String14_40.convertString(src.getNameElement()));
139    for (org.hl7.fhir.dstu2016may.model.ContactPoint t : src.getTelecom())
140      tgt.addTelecom(ContactPoint14_40.convertContactPoint(t));
141    return tgt;
142  }
143
144  public static org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContactComponent convertCodeSystemContactComponent(org.hl7.fhir.r4.model.ContactDetail src) throws FHIRException {
145    if (src == null || src.isEmpty())
146      return null;
147    org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContactComponent tgt = new org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContactComponent();
148    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyElement(src, tgt);
149    if (src.hasName())
150      tgt.setNameElement(String14_40.convertString(src.getNameElement()));
151    for (org.hl7.fhir.r4.model.ContactPoint t : src.getTelecom())
152      tgt.addTelecom(ContactPoint14_40.convertContactPoint(t));
153    return tgt;
154  }
155
156  static public org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContentMode> convertCodeSystemContentMode(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CodeSystem.CodeSystemContentMode> src) throws FHIRException {
157      if (src == null || src.isEmpty())
158          return null;
159      org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContentMode> tgt = new org.hl7.fhir.dstu2016may.model.Enumeration<>(new org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContentModeEnumFactory());
160      ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyElement(src, tgt);
161      if (src.getValue() == null) {
162          tgt.setValue(null);
163      } else {
164          switch (src.getValue()) {
165              case NOTPRESENT:
166                  tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContentMode.NOTPRESENT);
167                  break;
168              case EXAMPLE:
169                  tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContentMode.EXAMPLAR);
170                  break;
171              case FRAGMENT:
172                  tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContentMode.FRAGMENT);
173                  break;
174              case COMPLETE:
175                  tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContentMode.COMPLETE);
176                  break;
177              default:
178                  tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContentMode.NULL);
179                  break;
180          }
181      }
182      return tgt;
183  }
184
185  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CodeSystem.CodeSystemContentMode> convertCodeSystemContentMode(org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemContentMode> src) throws FHIRException {
186      if (src == null || src.isEmpty())
187          return null;
188      Enumeration<CodeSystem.CodeSystemContentMode> tgt = new Enumeration<>(new CodeSystem.CodeSystemContentModeEnumFactory());
189      ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyElement(src, tgt);
190      if (src.getValue() == null) {
191          tgt.setValue(null);
192      } else {
193          switch (src.getValue()) {
194              case NOTPRESENT:
195                  tgt.setValue(CodeSystem.CodeSystemContentMode.NOTPRESENT);
196                  break;
197              case EXAMPLAR:
198                  tgt.setValue(CodeSystem.CodeSystemContentMode.EXAMPLE);
199                  break;
200              case FRAGMENT:
201                  tgt.setValue(CodeSystem.CodeSystemContentMode.FRAGMENT);
202                  break;
203              case COMPLETE:
204                  tgt.setValue(CodeSystem.CodeSystemContentMode.COMPLETE);
205                  break;
206              default:
207                  tgt.setValue(CodeSystem.CodeSystemContentMode.NULL);
208                  break;
209          }
210      }
211      return tgt;
212  }
213
214  public static org.hl7.fhir.r4.model.CodeSystem.CodeSystemFilterComponent convertCodeSystemFilterComponent(org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemFilterComponent src) throws FHIRException {
215    if (src == null || src.isEmpty())
216      return null;
217    org.hl7.fhir.r4.model.CodeSystem.CodeSystemFilterComponent tgt = new org.hl7.fhir.r4.model.CodeSystem.CodeSystemFilterComponent();
218    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyBackboneElement(src,tgt);
219    if (src.hasCodeElement())
220      tgt.setCodeElement(Code14_40.convertCode(src.getCodeElement()));
221    if (src.hasDescription())
222      tgt.setDescriptionElement(String14_40.convertString(src.getDescriptionElement()));
223    for (org.hl7.fhir.dstu2016may.model.CodeType t : src.getOperator())
224      try {
225        tgt.addOperator(CodeSystem.FilterOperator.fromCode(t.getValue()));
226      } catch (org.hl7.fhir.exceptions.FHIRException e) {
227        throw new FHIRException(e);
228      }
229    if (src.hasValueElement())
230      tgt.setValueElement(String14_40.convertString(src.getValueElement()));
231    return tgt;
232  }
233
234  public static org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemFilterComponent convertCodeSystemFilterComponent(org.hl7.fhir.r4.model.CodeSystem.CodeSystemFilterComponent src) throws FHIRException {
235    if (src == null || src.isEmpty())
236      return null;
237    org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemFilterComponent tgt = new org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemFilterComponent();
238    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyBackboneElement(src,tgt);
239    if (src.hasCodeElement())
240      tgt.setCodeElement(Code14_40.convertCode(src.getCodeElement()));
241    if (src.hasDescription())
242      tgt.setDescriptionElement(String14_40.convertString(src.getDescriptionElement()));
243    for (Enumeration<FilterOperator> t : src.getOperator()) tgt.addOperator(t.getValue().toCode());
244    if (src.hasValueElement())
245      tgt.setValueElement(String14_40.convertString(src.getValueElement()));
246    return tgt;
247  }
248
249  public static org.hl7.fhir.r4.model.CodeSystem.ConceptDefinitionComponent convertConceptDefinitionComponent(org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionComponent src) throws FHIRException {
250    if (src == null || src.isEmpty())
251      return null;
252    org.hl7.fhir.r4.model.CodeSystem.ConceptDefinitionComponent tgt = new org.hl7.fhir.r4.model.CodeSystem.ConceptDefinitionComponent();
253    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyBackboneElement(src,tgt);
254    if (src.hasCodeElement())
255      tgt.setCodeElement(Code14_40.convertCode(src.getCodeElement()));
256    if (src.hasDisplay())
257      tgt.setDisplayElement(String14_40.convertString(src.getDisplayElement()));
258    if (src.hasDefinition())
259      tgt.setDefinitionElement(String14_40.convertString(src.getDefinitionElement()));
260    for (org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionDesignationComponent t : src.getDesignation())
261      tgt.addDesignation(convertConceptDefinitionDesignationComponent(t));
262    for (ConceptDefinitionPropertyComponent t : src.getProperty()) tgt.addProperty(convertConceptPropertyComponent(t));
263    for (org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionComponent t : src.getConcept())
264      tgt.addConcept(convertConceptDefinitionComponent(t));
265    return tgt;
266  }
267
268  public static org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionComponent convertConceptDefinitionComponent(org.hl7.fhir.r4.model.CodeSystem.ConceptDefinitionComponent src) throws FHIRException {
269    if (src == null || src.isEmpty())
270      return null;
271    org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionComponent tgt = new org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionComponent();
272    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyBackboneElement(src,tgt);
273    if (src.hasCodeElement())
274      tgt.setCodeElement(Code14_40.convertCode(src.getCodeElement()));
275    if (src.hasDisplay())
276      tgt.setDisplayElement(String14_40.convertString(src.getDisplayElement()));
277    if (src.hasDefinition())
278      tgt.setDefinitionElement(String14_40.convertString(src.getDefinitionElement()));
279    for (org.hl7.fhir.r4.model.CodeSystem.ConceptDefinitionDesignationComponent t : src.getDesignation())
280      tgt.addDesignation(convertConceptDefinitionDesignationComponent(t));
281    for (org.hl7.fhir.r4.model.CodeSystem.ConceptPropertyComponent t : src.getProperty())
282      tgt.addProperty(convertConceptPropertyComponent(t));
283    for (org.hl7.fhir.r4.model.CodeSystem.ConceptDefinitionComponent t : src.getConcept())
284      tgt.addConcept(convertConceptDefinitionComponent(t));
285    return tgt;
286  }
287
288  public static org.hl7.fhir.r4.model.CodeSystem.ConceptDefinitionDesignationComponent convertConceptDefinitionDesignationComponent(org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionDesignationComponent src) throws FHIRException {
289    if (src == null || src.isEmpty())
290      return null;
291    org.hl7.fhir.r4.model.CodeSystem.ConceptDefinitionDesignationComponent tgt = new org.hl7.fhir.r4.model.CodeSystem.ConceptDefinitionDesignationComponent();
292    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyBackboneElement(src,tgt);
293    if (src.hasLanguage())
294      tgt.setLanguageElement(Code14_40.convertCode(src.getLanguageElement()));
295    if (src.hasUse())
296      tgt.setUse(Coding14_40.convertCoding(src.getUse()));
297    if (src.hasValueElement())
298      tgt.setValueElement(String14_40.convertString(src.getValueElement()));
299    return tgt;
300  }
301
302  public static org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionDesignationComponent convertConceptDefinitionDesignationComponent(org.hl7.fhir.r4.model.CodeSystem.ConceptDefinitionDesignationComponent src) throws FHIRException {
303    if (src == null || src.isEmpty())
304      return null;
305    org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionDesignationComponent tgt = new org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionDesignationComponent();
306    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyBackboneElement(src,tgt);
307    if (src.hasLanguage())
308      tgt.setLanguageElement(Code14_40.convertCode(src.getLanguageElement()));
309    if (src.hasUse())
310      tgt.setUse(Coding14_40.convertCoding(src.getUse()));
311    if (src.hasValueElement())
312      tgt.setValueElement(String14_40.convertString(src.getValueElement()));
313    return tgt;
314  }
315
316  public static org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionPropertyComponent convertConceptPropertyComponent(org.hl7.fhir.r4.model.CodeSystem.ConceptPropertyComponent src) throws FHIRException {
317    if (src == null || src.isEmpty())
318      return null;
319    org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionPropertyComponent tgt = new org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionPropertyComponent();
320    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyBackboneElement(src,tgt);
321    if (src.hasCodeElement())
322      tgt.setCodeElement(Code14_40.convertCode(src.getCodeElement()));
323    if (src.hasValue())
324      tgt.setValue(ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().convertType(src.getValue()));
325    return tgt;
326  }
327
328  public static org.hl7.fhir.r4.model.CodeSystem.ConceptPropertyComponent convertConceptPropertyComponent(org.hl7.fhir.dstu2016may.model.CodeSystem.ConceptDefinitionPropertyComponent src) throws FHIRException {
329    if (src == null || src.isEmpty())
330      return null;
331    org.hl7.fhir.r4.model.CodeSystem.ConceptPropertyComponent tgt = new org.hl7.fhir.r4.model.CodeSystem.ConceptPropertyComponent();
332    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyBackboneElement(src,tgt);
333    if (src.hasCodeElement())
334      tgt.setCodeElement(Code14_40.convertCode(src.getCodeElement()));
335    if (src.hasValue())
336      tgt.setValue(ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().convertType(src.getValue()));
337    return tgt;
338  }
339
340  public static org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemPropertyComponent convertPropertyComponent(org.hl7.fhir.r4.model.CodeSystem.PropertyComponent src) throws FHIRException {
341    if (src == null || src.isEmpty())
342      return null;
343    org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemPropertyComponent tgt = new org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemPropertyComponent();
344    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyBackboneElement(src,tgt);
345    if (src.hasCodeElement())
346      tgt.setCodeElement(Code14_40.convertCode(src.getCodeElement()));
347    if (src.hasDescription())
348      tgt.setDescriptionElement(String14_40.convertString(src.getDescriptionElement()));
349    if (src.hasType())
350      tgt.setTypeElement(convertPropertyType(src.getTypeElement()));
351    return tgt;
352  }
353
354  public static org.hl7.fhir.r4.model.CodeSystem.PropertyComponent convertPropertyComponent(org.hl7.fhir.dstu2016may.model.CodeSystem.CodeSystemPropertyComponent src) throws FHIRException {
355    if (src == null || src.isEmpty())
356      return null;
357    org.hl7.fhir.r4.model.CodeSystem.PropertyComponent tgt = new org.hl7.fhir.r4.model.CodeSystem.PropertyComponent();
358    ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyBackboneElement(src,tgt);
359    if (src.hasCodeElement())
360      tgt.setCodeElement(Code14_40.convertCode(src.getCodeElement()));
361    if (src.hasDescription())
362      tgt.setDescriptionElement(String14_40.convertString(src.getDescriptionElement()));
363    if (src.hasType())
364      tgt.setTypeElement(convertPropertyType(src.getTypeElement()));
365    return tgt;
366  }
367
368  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CodeSystem.PropertyType> convertPropertyType(org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.CodeSystem.PropertyType> src) throws FHIRException {
369      if (src == null || src.isEmpty())
370          return null;
371      Enumeration<CodeSystem.PropertyType> tgt = new Enumeration<>(new CodeSystem.PropertyTypeEnumFactory());
372      ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyElement(src, tgt);
373      if (src.getValue() == null) {
374          tgt.setValue(null);
375      } else {
376          switch (src.getValue()) {
377              case CODE:
378                  tgt.setValue(CodeSystem.PropertyType.CODE);
379                  break;
380              case CODING:
381                  tgt.setValue(CodeSystem.PropertyType.CODING);
382                  break;
383              case STRING:
384                  tgt.setValue(CodeSystem.PropertyType.STRING);
385                  break;
386              case INTEGER:
387                  tgt.setValue(CodeSystem.PropertyType.INTEGER);
388                  break;
389              case BOOLEAN:
390                  tgt.setValue(CodeSystem.PropertyType.BOOLEAN);
391                  break;
392              case DATETIME:
393                  tgt.setValue(CodeSystem.PropertyType.DATETIME);
394                  break;
395              default:
396                  tgt.setValue(CodeSystem.PropertyType.NULL);
397                  break;
398          }
399      }
400      return tgt;
401  }
402
403  static public org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.CodeSystem.PropertyType> convertPropertyType(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CodeSystem.PropertyType> src) throws FHIRException {
404      if (src == null || src.isEmpty())
405          return null;
406      org.hl7.fhir.dstu2016may.model.Enumeration<org.hl7.fhir.dstu2016may.model.CodeSystem.PropertyType> tgt = new org.hl7.fhir.dstu2016may.model.Enumeration<>(new org.hl7.fhir.dstu2016may.model.CodeSystem.PropertyTypeEnumFactory());
407      ConversionContext14_40.INSTANCE.getVersionConvertor_14_40().copyElement(src, tgt);
408      if (src.getValue() == null) {
409          tgt.setValue(null);
410      } else {
411          switch (src.getValue()) {
412              case CODE:
413                  tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.PropertyType.CODE);
414                  break;
415              case CODING:
416                  tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.PropertyType.CODING);
417                  break;
418              case STRING:
419                  tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.PropertyType.STRING);
420                  break;
421              case INTEGER:
422                  tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.PropertyType.INTEGER);
423                  break;
424              case BOOLEAN:
425                  tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.PropertyType.BOOLEAN);
426                  break;
427              case DATETIME:
428                  tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.PropertyType.DATETIME);
429                  break;
430              default:
431                  tgt.setValue(org.hl7.fhir.dstu2016may.model.CodeSystem.PropertyType.NULL);
432                  break;
433          }
434      }
435      return tgt;
436  }
437}