001package org.hl7.fhir.convertors.conv30_40.resources30_40;
002
003import java.util.stream.Collectors;
004
005import org.hl7.fhir.convertors.context.ConversionContext30_40;
006import org.hl7.fhir.convertors.conv30_40.datatypes30_40.ContactDetail30_40;
007import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.CodeableConcept30_40;
008import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Coding30_40;
009import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Identifier30_40;
010import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Timing30_40;
011import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Boolean30_40;
012import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Code30_40;
013import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.DateTime30_40;
014import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.MarkDown30_40;
015import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.String30_40;
016import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.UnsignedInt30_40;
017import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Uri30_40;
018import org.hl7.fhir.dstu3.model.CodeSystem;
019import org.hl7.fhir.dstu3.model.Enumeration;
020import org.hl7.fhir.exceptions.FHIRException;
021
022public class CodeSystem30_40 {
023
024  public static org.hl7.fhir.r4.model.CodeSystem convertCodeSystem(org.hl7.fhir.dstu3.model.CodeSystem src) throws FHIRException {
025    if (src == null)
026      return null;
027    org.hl7.fhir.r4.model.CodeSystem tgt = new org.hl7.fhir.r4.model.CodeSystem();
028    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
029    if (src.hasUrl())
030      tgt.setUrlElement(Uri30_40.convertUri(src.getUrlElement()));
031    if (src.hasIdentifier())
032      tgt.addIdentifier(Identifier30_40.convertIdentifier(src.getIdentifier()));
033    if (src.hasVersion())
034      tgt.setVersionElement(String30_40.convertString(src.getVersionElement()));
035    if (src.hasName())
036      tgt.setNameElement(String30_40.convertString(src.getNameElement()));
037    if (src.hasTitle())
038      tgt.setTitleElement(String30_40.convertString(src.getTitleElement()));
039    if (src.hasStatus())
040      tgt.setStatusElement(Enumerations30_40.convertPublicationStatus(src.getStatusElement()));
041    if (src.hasExperimental())
042      tgt.setExperimentalElement(Boolean30_40.convertBoolean(src.getExperimentalElement()));
043    if (src.hasDateElement())
044      tgt.setDateElement(DateTime30_40.convertDateTime(src.getDateElement()));
045    if (src.hasPublisher())
046      tgt.setPublisherElement(String30_40.convertString(src.getPublisherElement()));
047    for (org.hl7.fhir.dstu3.model.ContactDetail t : src.getContact())
048      tgt.addContact(ContactDetail30_40.convertContactDetail(t));
049    if (src.hasDescription())
050      tgt.setDescriptionElement(MarkDown30_40.convertMarkdown(src.getDescriptionElement()));
051    for (org.hl7.fhir.dstu3.model.UsageContext t : src.getUseContext())
052      tgt.addUseContext(Timing30_40.convertUsageContext(t));
053    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getJurisdiction())
054      tgt.addJurisdiction(CodeableConcept30_40.convertCodeableConcept(t));
055    if (src.hasPurpose())
056      tgt.setPurposeElement(MarkDown30_40.convertMarkdown(src.getPurposeElement()));
057    if (src.hasCopyright())
058      tgt.setCopyrightElement(MarkDown30_40.convertMarkdown(src.getCopyrightElement()));
059    if (src.hasCaseSensitive())
060      tgt.setCaseSensitiveElement(Boolean30_40.convertBoolean(src.getCaseSensitiveElement()));
061    if (src.hasValueSet())
062      tgt.setValueSet(src.getValueSet());
063    if (src.hasHierarchyMeaning())
064      tgt.setHierarchyMeaningElement(convertCodeSystemHierarchyMeaning(src.getHierarchyMeaningElement()));
065    if (src.hasCompositional())
066      tgt.setCompositionalElement(Boolean30_40.convertBoolean(src.getCompositionalElement()));
067    if (src.hasVersionNeeded())
068      tgt.setVersionNeededElement(Boolean30_40.convertBoolean(src.getVersionNeededElement()));
069    if (src.hasContent())
070      tgt.setContentElement(convertCodeSystemContentMode(src.getContentElement()));
071    if (src.hasCount())
072      tgt.setCountElement(UnsignedInt30_40.convertUnsignedInt(src.getCountElement()));
073    for (org.hl7.fhir.dstu3.model.CodeSystem.CodeSystemFilterComponent t : src.getFilter())
074      tgt.addFilter(convertCodeSystemFilterComponent(t));
075    for (org.hl7.fhir.dstu3.model.CodeSystem.PropertyComponent t : src.getProperty())
076      tgt.addProperty(convertPropertyComponent(t));
077    for (org.hl7.fhir.dstu3.model.CodeSystem.ConceptDefinitionComponent t : src.getConcept())
078      tgt.addConcept(convertConceptDefinitionComponent(t));
079    return tgt;
080  }
081
082  public static org.hl7.fhir.dstu3.model.CodeSystem convertCodeSystem(org.hl7.fhir.r4.model.CodeSystem src) throws FHIRException {
083    if (src == null)
084      return null;
085    org.hl7.fhir.dstu3.model.CodeSystem tgt = new org.hl7.fhir.dstu3.model.CodeSystem();
086    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
087    if (src.hasUrl())
088      tgt.setUrlElement(Uri30_40.convertUri(src.getUrlElement()));
089    if (src.hasIdentifier())
090      tgt.setIdentifier(Identifier30_40.convertIdentifier(src.getIdentifierFirstRep()));
091    if (src.hasVersion())
092      tgt.setVersionElement(String30_40.convertString(src.getVersionElement()));
093    if (src.hasName())
094      tgt.setNameElement(String30_40.convertString(src.getNameElement()));
095    if (src.hasTitle())
096      tgt.setTitleElement(String30_40.convertString(src.getTitleElement()));
097    if (src.hasStatus())
098      tgt.setStatusElement(Enumerations30_40.convertPublicationStatus(src.getStatusElement()));
099    if (src.hasExperimental())
100      tgt.setExperimentalElement(Boolean30_40.convertBoolean(src.getExperimentalElement()));
101    if (src.hasDateElement())
102      tgt.setDateElement(DateTime30_40.convertDateTime(src.getDateElement()));
103    if (src.hasPublisher())
104      tgt.setPublisherElement(String30_40.convertString(src.getPublisherElement()));
105    for (org.hl7.fhir.r4.model.ContactDetail t : src.getContact())
106      tgt.addContact(ContactDetail30_40.convertContactDetail(t));
107    if (src.hasDescription())
108      tgt.setDescriptionElement(MarkDown30_40.convertMarkdown(src.getDescriptionElement()));
109    for (org.hl7.fhir.r4.model.UsageContext t : src.getUseContext())
110      tgt.addUseContext(Timing30_40.convertUsageContext(t));
111    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getJurisdiction())
112      tgt.addJurisdiction(CodeableConcept30_40.convertCodeableConcept(t));
113    if (src.hasPurpose())
114      tgt.setPurposeElement(MarkDown30_40.convertMarkdown(src.getPurposeElement()));
115    if (src.hasCopyright())
116      tgt.setCopyrightElement(MarkDown30_40.convertMarkdown(src.getCopyrightElement()));
117    if (src.hasCaseSensitive())
118      tgt.setCaseSensitiveElement(Boolean30_40.convertBoolean(src.getCaseSensitiveElement()));
119    if (src.hasValueSet())
120      tgt.setValueSet(src.getValueSet());
121    if (src.hasHierarchyMeaning())
122      tgt.setHierarchyMeaningElement(convertCodeSystemHierarchyMeaning(src.getHierarchyMeaningElement()));
123    if (src.hasCompositional())
124      tgt.setCompositionalElement(Boolean30_40.convertBoolean(src.getCompositionalElement()));
125    if (src.hasVersionNeeded())
126      tgt.setVersionNeededElement(Boolean30_40.convertBoolean(src.getVersionNeededElement()));
127    if (src.hasContent())
128      tgt.setContentElement(convertCodeSystemContentMode(src.getContentElement()));
129    if (src.hasCount())
130      tgt.setCountElement(UnsignedInt30_40.convertUnsignedInt(src.getCountElement()));
131    for (org.hl7.fhir.r4.model.CodeSystem.CodeSystemFilterComponent t : src.getFilter())
132      tgt.addFilter(convertCodeSystemFilterComponent(t));
133    for (org.hl7.fhir.r4.model.CodeSystem.PropertyComponent t : src.getProperty())
134      tgt.addProperty(convertPropertyComponent(t));
135    for (org.hl7.fhir.r4.model.CodeSystem.ConceptDefinitionComponent t : src.getConcept())
136      tgt.addConcept(convertConceptDefinitionComponent(t));
137    return tgt;
138  }
139
140  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.CodeSystem.CodeSystemContentMode> convertCodeSystemContentMode(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CodeSystem.CodeSystemContentMode> src) throws FHIRException {
141      if (src == null || src.isEmpty())
142          return null;
143      Enumeration<CodeSystem.CodeSystemContentMode> tgt = new Enumeration<>(new CodeSystem.CodeSystemContentModeEnumFactory());
144      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
145      if (src.getValue() == null) {
146          tgt.setValue(null);
147      } else {
148          switch (src.getValue()) {
149              case NOTPRESENT:
150                  tgt.setValue(CodeSystem.CodeSystemContentMode.NOTPRESENT);
151                  break;
152              case EXAMPLE:
153                  tgt.setValue(CodeSystem.CodeSystemContentMode.EXAMPLE);
154                  break;
155              case FRAGMENT:
156                  tgt.setValue(CodeSystem.CodeSystemContentMode.FRAGMENT);
157                  break;
158              case COMPLETE:
159                  tgt.setValue(CodeSystem.CodeSystemContentMode.COMPLETE);
160                  break;
161              default:
162                  tgt.setValue(CodeSystem.CodeSystemContentMode.NULL);
163                  break;
164          }
165      }
166      return tgt;
167  }
168
169  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CodeSystem.CodeSystemContentMode> convertCodeSystemContentMode(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.CodeSystem.CodeSystemContentMode> src) throws FHIRException {
170      if (src == null || src.isEmpty())
171          return null;
172      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CodeSystem.CodeSystemContentMode> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.CodeSystem.CodeSystemContentModeEnumFactory());
173      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
174      if (src.getValue() == null) {
175          tgt.setValue(null);
176      } else {
177          switch (src.getValue()) {
178              case NOTPRESENT:
179                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.CodeSystemContentMode.NOTPRESENT);
180                  break;
181              case EXAMPLE:
182                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.CodeSystemContentMode.EXAMPLE);
183                  break;
184              case FRAGMENT:
185                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.CodeSystemContentMode.FRAGMENT);
186                  break;
187              case COMPLETE:
188                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.CodeSystemContentMode.COMPLETE);
189                  break;
190              default:
191                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.CodeSystemContentMode.NULL);
192                  break;
193          }
194      }
195      return tgt;
196  }
197
198  public static org.hl7.fhir.dstu3.model.CodeSystem.CodeSystemFilterComponent convertCodeSystemFilterComponent(org.hl7.fhir.r4.model.CodeSystem.CodeSystemFilterComponent src) throws FHIRException {
199    if (src == null)
200      return null;
201    org.hl7.fhir.dstu3.model.CodeSystem.CodeSystemFilterComponent tgt = new org.hl7.fhir.dstu3.model.CodeSystem.CodeSystemFilterComponent();
202    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
203    if (src.hasCode())
204      tgt.setCodeElement(Code30_40.convertCode(src.getCodeElement()));
205    if (src.hasDescription())
206      tgt.setDescriptionElement(String30_40.convertString(src.getDescriptionElement()));
207    tgt.setOperator(src.getOperator().stream()
208      .map(CodeSystem30_40::convertFilterOperator)
209      .collect(Collectors.toList()));
210    if (src.hasValue())
211      tgt.setValueElement(String30_40.convertString(src.getValueElement()));
212    return tgt;
213  }
214
215  public static org.hl7.fhir.r4.model.CodeSystem.CodeSystemFilterComponent convertCodeSystemFilterComponent(org.hl7.fhir.dstu3.model.CodeSystem.CodeSystemFilterComponent src) throws FHIRException {
216    if (src == null)
217      return null;
218    org.hl7.fhir.r4.model.CodeSystem.CodeSystemFilterComponent tgt = new org.hl7.fhir.r4.model.CodeSystem.CodeSystemFilterComponent();
219    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
220    if (src.hasCode())
221      tgt.setCodeElement(Code30_40.convertCode(src.getCodeElement()));
222    if (src.hasDescription())
223      tgt.setDescriptionElement(String30_40.convertString(src.getDescriptionElement()));
224    tgt.setOperator(src.getOperator().stream()
225      .map(CodeSystem30_40::convertFilterOperator)
226      .collect(Collectors.toList()));
227    if (src.hasValue())
228      tgt.setValueElement(String30_40.convertString(src.getValueElement()));
229    return tgt;
230  }
231
232  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.CodeSystem.CodeSystemHierarchyMeaning> convertCodeSystemHierarchyMeaning(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CodeSystem.CodeSystemHierarchyMeaning> src) throws FHIRException {
233      if (src == null || src.isEmpty())
234          return null;
235      Enumeration<CodeSystem.CodeSystemHierarchyMeaning> tgt = new Enumeration<>(new CodeSystem.CodeSystemHierarchyMeaningEnumFactory());
236      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
237      if (src.getValue() == null) {
238          tgt.setValue(null);
239      } else {
240          switch (src.getValue()) {
241              case GROUPEDBY:
242                  tgt.setValue(CodeSystem.CodeSystemHierarchyMeaning.GROUPEDBY);
243                  break;
244              case ISA:
245                  tgt.setValue(CodeSystem.CodeSystemHierarchyMeaning.ISA);
246                  break;
247              case PARTOF:
248                  tgt.setValue(CodeSystem.CodeSystemHierarchyMeaning.PARTOF);
249                  break;
250              case CLASSIFIEDWITH:
251                  tgt.setValue(CodeSystem.CodeSystemHierarchyMeaning.CLASSIFIEDWITH);
252                  break;
253              default:
254                  tgt.setValue(CodeSystem.CodeSystemHierarchyMeaning.NULL);
255                  break;
256          }
257      }
258      return tgt;
259  }
260
261  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CodeSystem.CodeSystemHierarchyMeaning> convertCodeSystemHierarchyMeaning(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.CodeSystem.CodeSystemHierarchyMeaning> src) throws FHIRException {
262      if (src == null || src.isEmpty())
263          return null;
264      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CodeSystem.CodeSystemHierarchyMeaning> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.CodeSystem.CodeSystemHierarchyMeaningEnumFactory());
265      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
266      if (src.getValue() == null) {
267          tgt.setValue(null);
268      } else {
269          switch (src.getValue()) {
270              case GROUPEDBY:
271                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.CodeSystemHierarchyMeaning.GROUPEDBY);
272                  break;
273              case ISA:
274                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.CodeSystemHierarchyMeaning.ISA);
275                  break;
276              case PARTOF:
277                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.CodeSystemHierarchyMeaning.PARTOF);
278                  break;
279              case CLASSIFIEDWITH:
280                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.CodeSystemHierarchyMeaning.CLASSIFIEDWITH);
281                  break;
282              default:
283                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.CodeSystemHierarchyMeaning.NULL);
284                  break;
285          }
286      }
287      return tgt;
288  }
289
290  public static org.hl7.fhir.dstu3.model.CodeSystem.ConceptDefinitionComponent convertConceptDefinitionComponent(org.hl7.fhir.r4.model.CodeSystem.ConceptDefinitionComponent src) throws FHIRException {
291    if (src == null)
292      return null;
293    org.hl7.fhir.dstu3.model.CodeSystem.ConceptDefinitionComponent tgt = new org.hl7.fhir.dstu3.model.CodeSystem.ConceptDefinitionComponent();
294    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
295    if (src.hasCode())
296      tgt.setCodeElement(Code30_40.convertCode(src.getCodeElement()));
297    if (src.hasDisplay())
298      tgt.setDisplayElement(String30_40.convertString(src.getDisplayElement()));
299    if (src.hasDefinition())
300      tgt.setDefinitionElement(String30_40.convertString(src.getDefinitionElement()));
301    for (org.hl7.fhir.r4.model.CodeSystem.ConceptDefinitionDesignationComponent t : src.getDesignation())
302      tgt.addDesignation(convertConceptDefinitionDesignationComponent(t));
303    for (org.hl7.fhir.r4.model.CodeSystem.ConceptPropertyComponent t : src.getProperty())
304      tgt.addProperty(convertConceptPropertyComponent(t));
305    for (org.hl7.fhir.r4.model.CodeSystem.ConceptDefinitionComponent t : src.getConcept())
306      tgt.addConcept(convertConceptDefinitionComponent(t));
307    return tgt;
308  }
309
310  public static org.hl7.fhir.r4.model.CodeSystem.ConceptDefinitionComponent convertConceptDefinitionComponent(org.hl7.fhir.dstu3.model.CodeSystem.ConceptDefinitionComponent src) throws FHIRException {
311    if (src == null)
312      return null;
313    org.hl7.fhir.r4.model.CodeSystem.ConceptDefinitionComponent tgt = new org.hl7.fhir.r4.model.CodeSystem.ConceptDefinitionComponent();
314    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
315    if (src.hasCode())
316      tgt.setCodeElement(Code30_40.convertCode(src.getCodeElement()));
317    if (src.hasDisplay())
318      tgt.setDisplayElement(String30_40.convertString(src.getDisplayElement()));
319    if (src.hasDefinition())
320      tgt.setDefinitionElement(String30_40.convertString(src.getDefinitionElement()));
321    for (org.hl7.fhir.dstu3.model.CodeSystem.ConceptDefinitionDesignationComponent t : src.getDesignation())
322      tgt.addDesignation(convertConceptDefinitionDesignationComponent(t));
323    for (org.hl7.fhir.dstu3.model.CodeSystem.ConceptPropertyComponent t : src.getProperty())
324      tgt.addProperty(convertConceptPropertyComponent(t));
325    for (org.hl7.fhir.dstu3.model.CodeSystem.ConceptDefinitionComponent t : src.getConcept())
326      tgt.addConcept(convertConceptDefinitionComponent(t));
327    return tgt;
328  }
329
330  public static org.hl7.fhir.dstu3.model.CodeSystem.ConceptDefinitionDesignationComponent convertConceptDefinitionDesignationComponent(org.hl7.fhir.r4.model.CodeSystem.ConceptDefinitionDesignationComponent src) throws FHIRException {
331    if (src == null)
332      return null;
333    org.hl7.fhir.dstu3.model.CodeSystem.ConceptDefinitionDesignationComponent tgt = new org.hl7.fhir.dstu3.model.CodeSystem.ConceptDefinitionDesignationComponent();
334    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
335    if (src.hasLanguage())
336      tgt.setLanguageElement(Code30_40.convertCode(src.getLanguageElement()));
337    if (src.hasUse())
338      tgt.setUse(Coding30_40.convertCoding(src.getUse()));
339    if (src.hasValue())
340      tgt.setValueElement(String30_40.convertString(src.getValueElement()));
341    return tgt;
342  }
343
344  public static org.hl7.fhir.r4.model.CodeSystem.ConceptDefinitionDesignationComponent convertConceptDefinitionDesignationComponent(org.hl7.fhir.dstu3.model.CodeSystem.ConceptDefinitionDesignationComponent src) throws FHIRException {
345    if (src == null)
346      return null;
347    org.hl7.fhir.r4.model.CodeSystem.ConceptDefinitionDesignationComponent tgt = new org.hl7.fhir.r4.model.CodeSystem.ConceptDefinitionDesignationComponent();
348    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
349    if (src.hasLanguage())
350      tgt.setLanguageElement(Code30_40.convertCode(src.getLanguageElement()));
351    if (src.hasUse())
352      tgt.setUse(Coding30_40.convertCoding(src.getUse()));
353    if (src.hasValue())
354      tgt.setValueElement(String30_40.convertString(src.getValueElement()));
355    return tgt;
356  }
357
358  public static org.hl7.fhir.dstu3.model.CodeSystem.ConceptPropertyComponent convertConceptPropertyComponent(org.hl7.fhir.r4.model.CodeSystem.ConceptPropertyComponent src) throws FHIRException {
359    if (src == null)
360      return null;
361    org.hl7.fhir.dstu3.model.CodeSystem.ConceptPropertyComponent tgt = new org.hl7.fhir.dstu3.model.CodeSystem.ConceptPropertyComponent();
362    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
363    if (src.hasCode())
364      tgt.setCodeElement(Code30_40.convertCode(src.getCodeElement()));
365    if (src.hasValue())
366      tgt.setValue(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getValue()));
367    return tgt;
368  }
369
370  public static org.hl7.fhir.r4.model.CodeSystem.ConceptPropertyComponent convertConceptPropertyComponent(org.hl7.fhir.dstu3.model.CodeSystem.ConceptPropertyComponent src) throws FHIRException {
371    if (src == null)
372      return null;
373    org.hl7.fhir.r4.model.CodeSystem.ConceptPropertyComponent tgt = new org.hl7.fhir.r4.model.CodeSystem.ConceptPropertyComponent();
374    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
375    if (src.hasCode())
376      tgt.setCodeElement(Code30_40.convertCode(src.getCodeElement()));
377    if (src.hasValue())
378      tgt.setValue(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getValue()));
379    return tgt;
380  }
381
382  public static org.hl7.fhir.r4.model.CodeSystem.PropertyComponent convertPropertyComponent(org.hl7.fhir.dstu3.model.CodeSystem.PropertyComponent src) throws FHIRException {
383    if (src == null)
384      return null;
385    org.hl7.fhir.r4.model.CodeSystem.PropertyComponent tgt = new org.hl7.fhir.r4.model.CodeSystem.PropertyComponent();
386    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
387    if (src.hasCode())
388      tgt.setCodeElement(Code30_40.convertCode(src.getCodeElement()));
389    if (src.hasUri())
390      tgt.setUriElement(Uri30_40.convertUri(src.getUriElement()));
391    if (src.hasDescription())
392      tgt.setDescriptionElement(String30_40.convertString(src.getDescriptionElement()));
393    if (src.hasType())
394      tgt.setTypeElement(convertPropertyType(src.getTypeElement()));
395    return tgt;
396  }
397
398  public static org.hl7.fhir.dstu3.model.CodeSystem.PropertyComponent convertPropertyComponent(org.hl7.fhir.r4.model.CodeSystem.PropertyComponent src) throws FHIRException {
399    if (src == null)
400      return null;
401    org.hl7.fhir.dstu3.model.CodeSystem.PropertyComponent tgt = new org.hl7.fhir.dstu3.model.CodeSystem.PropertyComponent();
402    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
403    if (src.hasCode())
404      tgt.setCodeElement(Code30_40.convertCode(src.getCodeElement()));
405    if (src.hasUri())
406      tgt.setUriElement(Uri30_40.convertUri(src.getUriElement()));
407    if (src.hasDescription())
408      tgt.setDescriptionElement(String30_40.convertString(src.getDescriptionElement()));
409    if (src.hasType())
410      tgt.setTypeElement(convertPropertyType(src.getTypeElement()));
411    return tgt;
412  }
413
414  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CodeSystem.PropertyType> convertPropertyType(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.CodeSystem.PropertyType> src) throws FHIRException {
415      if (src == null || src.isEmpty())
416          return null;
417      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CodeSystem.PropertyType> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.CodeSystem.PropertyTypeEnumFactory());
418      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
419      if (src.getValue() == null) {
420          tgt.setValue(null);
421      } else {
422          switch (src.getValue()) {
423              case CODE:
424                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.PropertyType.CODE);
425                  break;
426              case CODING:
427                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.PropertyType.CODING);
428                  break;
429              case STRING:
430                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.PropertyType.STRING);
431                  break;
432              case INTEGER:
433                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.PropertyType.INTEGER);
434                  break;
435              case BOOLEAN:
436                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.PropertyType.BOOLEAN);
437                  break;
438              case DATETIME:
439                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.PropertyType.DATETIME);
440                  break;
441              default:
442                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.PropertyType.NULL);
443                  break;
444          }
445      }
446      return tgt;
447  }
448
449  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.CodeSystem.PropertyType> convertPropertyType(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CodeSystem.PropertyType> src) throws FHIRException {
450      if (src == null || src.isEmpty())
451          return null;
452      Enumeration<CodeSystem.PropertyType> tgt = new Enumeration<>(new CodeSystem.PropertyTypeEnumFactory());
453      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
454      if (src.getValue() == null) {
455          tgt.setValue(null);
456      } else {
457          switch (src.getValue()) {
458              case CODE:
459                  tgt.setValue(CodeSystem.PropertyType.CODE);
460                  break;
461              case CODING:
462                  tgt.setValue(CodeSystem.PropertyType.CODING);
463                  break;
464              case STRING:
465                  tgt.setValue(CodeSystem.PropertyType.STRING);
466                  break;
467              case INTEGER:
468                  tgt.setValue(CodeSystem.PropertyType.INTEGER);
469                  break;
470              case BOOLEAN:
471                  tgt.setValue(CodeSystem.PropertyType.BOOLEAN);
472                  break;
473              case DATETIME:
474                  tgt.setValue(CodeSystem.PropertyType.DATETIME);
475                  break;
476              default:
477                  tgt.setValue(CodeSystem.PropertyType.NULL);
478                  break;
479          }
480      }
481      return tgt;
482  }
483
484  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CodeSystem.FilterOperator> convertFilterOperator(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.CodeSystem.FilterOperator> src) {
485      if (src == null || src.isEmpty())
486          return null;
487      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CodeSystem.FilterOperator> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.CodeSystem.FilterOperatorEnumFactory());
488      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
489      if (src.getValue() == null) {
490          tgt.setValue(null);
491      } else {
492          switch (src.getValue()) {
493              case EQUAL:
494                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.FilterOperator.EQUAL);
495                  break;
496              case ISA:
497                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.FilterOperator.ISA);
498                  break;
499              case DESCENDENTOF:
500                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.FilterOperator.DESCENDENTOF);
501                  break;
502              case ISNOTA:
503                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.FilterOperator.ISNOTA);
504                  break;
505              case REGEX:
506                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.FilterOperator.REGEX);
507                  break;
508              case IN:
509                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.FilterOperator.IN);
510                  break;
511              case NOTIN:
512                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.FilterOperator.NOTIN);
513                  break;
514              case GENERALIZES:
515                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.FilterOperator.GENERALIZES);
516                  break;
517              case EXISTS:
518                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.FilterOperator.EXISTS);
519                  break;
520              default:
521                  tgt.setValue(org.hl7.fhir.r4.model.CodeSystem.FilterOperator.NULL);
522                  break;
523          }
524      }
525      return tgt;
526  }
527
528  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.CodeSystem.FilterOperator> convertFilterOperator(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.CodeSystem.FilterOperator> src) {
529      if (src == null || src.isEmpty())
530          return null;
531      Enumeration<CodeSystem.FilterOperator> tgt = new Enumeration<>(new CodeSystem.FilterOperatorEnumFactory());
532      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
533      if (src.getValue() == null) {
534          tgt.setValue(null);
535      } else {
536          switch (src.getValue()) {
537              case EQUAL:
538                  tgt.setValue(CodeSystem.FilterOperator.EQUAL);
539                  break;
540              case ISA:
541                  tgt.setValue(CodeSystem.FilterOperator.ISA);
542                  break;
543              case DESCENDENTOF:
544                  tgt.setValue(CodeSystem.FilterOperator.DESCENDENTOF);
545                  break;
546              case ISNOTA:
547                  tgt.setValue(CodeSystem.FilterOperator.ISNOTA);
548                  break;
549              case REGEX:
550                  tgt.setValue(CodeSystem.FilterOperator.REGEX);
551                  break;
552              case IN:
553                  tgt.setValue(CodeSystem.FilterOperator.IN);
554                  break;
555              case NOTIN:
556                  tgt.setValue(CodeSystem.FilterOperator.NOTIN);
557                  break;
558              case GENERALIZES:
559                  tgt.setValue(CodeSystem.FilterOperator.GENERALIZES);
560                  break;
561              case EXISTS:
562                  tgt.setValue(CodeSystem.FilterOperator.EXISTS);
563                  break;
564              default:
565                  tgt.setValue(CodeSystem.FilterOperator.NULL);
566                  break;
567          }
568      }
569      return tgt;
570  }
571}