001package org.hl7.fhir.convertors.conv30_40.resources30_40;
002
003import java.util.Collections;
004
005import org.hl7.fhir.convertors.context.ConversionContext30_40;
006import org.hl7.fhir.convertors.conv30_40.datatypes30_40.Narrative30_40;
007import org.hl7.fhir.convertors.conv30_40.datatypes30_40.Reference30_40;
008import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.CodeableConcept30_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.Period30_40;
011import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.DateTime30_40;
012import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.String30_40;
013import org.hl7.fhir.dstu3.model.Composition;
014import org.hl7.fhir.dstu3.model.Enumeration;
015import org.hl7.fhir.exceptions.FHIRException;
016
017public class Composition30_40 {
018
019  public static org.hl7.fhir.dstu3.model.Composition convertComposition(org.hl7.fhir.r4.model.Composition src) throws FHIRException {
020    if (src == null)
021      return null;
022    org.hl7.fhir.dstu3.model.Composition tgt = new org.hl7.fhir.dstu3.model.Composition();
023    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
024    if (src.hasIdentifier())
025      tgt.setIdentifier(Identifier30_40.convertIdentifier(src.getIdentifier()));
026    if (src.hasStatus())
027      tgt.setStatusElement(convertCompositionStatus(src.getStatusElement()));
028    if (src.hasType())
029      tgt.setType(CodeableConcept30_40.convertCodeableConcept(src.getType()));
030    if (src.hasCategory())
031      tgt.setClass_(CodeableConcept30_40.convertCodeableConcept(src.getCategoryFirstRep()));
032    if (src.hasSubject())
033      tgt.setSubject(Reference30_40.convertReference(src.getSubject()));
034    if (src.hasEncounter())
035      tgt.setEncounter(Reference30_40.convertReference(src.getEncounter()));
036    if (src.hasDateElement())
037      tgt.setDateElement(DateTime30_40.convertDateTime(src.getDateElement()));
038    for (org.hl7.fhir.r4.model.Reference t : src.getAuthor())
039      tgt.addAuthor(Reference30_40.convertReference(t));
040    if (src.hasTitle())
041      tgt.setTitleElement(String30_40.convertString(src.getTitleElement()));
042    if (src.hasConfidentiality())
043      tgt.setConfidentialityElement(convertDocumentConfidentiality(src.getConfidentialityElement()));
044    for (org.hl7.fhir.r4.model.Composition.CompositionAttesterComponent t : src.getAttester())
045      tgt.addAttester(convertCompositionAttesterComponent(t));
046    if (src.hasCustodian())
047      tgt.setCustodian(Reference30_40.convertReference(src.getCustodian()));
048    for (org.hl7.fhir.r4.model.Composition.CompositionRelatesToComponent t : src.getRelatesTo())
049      tgt.addRelatesTo(convertCompositionRelatesToComponent(t));
050    for (org.hl7.fhir.r4.model.Composition.CompositionEventComponent t : src.getEvent())
051      tgt.addEvent(convertCompositionEventComponent(t));
052    for (org.hl7.fhir.r4.model.Composition.SectionComponent t : src.getSection())
053      tgt.addSection(convertSectionComponent(t));
054    return tgt;
055  }
056
057  public static org.hl7.fhir.r4.model.Composition convertComposition(org.hl7.fhir.dstu3.model.Composition src) throws FHIRException {
058    if (src == null)
059      return null;
060    org.hl7.fhir.r4.model.Composition tgt = new org.hl7.fhir.r4.model.Composition();
061    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
062    if (src.hasIdentifier())
063      tgt.setIdentifier(Identifier30_40.convertIdentifier(src.getIdentifier()));
064    if (src.hasStatus())
065      tgt.setStatusElement(convertCompositionStatus(src.getStatusElement()));
066    if (src.hasType())
067      tgt.setType(CodeableConcept30_40.convertCodeableConcept(src.getType()));
068    if (src.hasClass_())
069      tgt.addCategory(CodeableConcept30_40.convertCodeableConcept(src.getClass_()));
070    if (src.hasSubject())
071      tgt.setSubject(Reference30_40.convertReference(src.getSubject()));
072    if (src.hasEncounter())
073      tgt.setEncounter(Reference30_40.convertReference(src.getEncounter()));
074    if (src.hasDateElement())
075      tgt.setDateElement(DateTime30_40.convertDateTime(src.getDateElement()));
076    for (org.hl7.fhir.dstu3.model.Reference t : src.getAuthor())
077      tgt.addAuthor(Reference30_40.convertReference(t));
078    if (src.hasTitle())
079      tgt.setTitleElement(String30_40.convertString(src.getTitleElement()));
080    if (src.hasConfidentiality())
081      tgt.setConfidentialityElement(convertDocumentConfidentiality(src.getConfidentialityElement()));
082    for (org.hl7.fhir.dstu3.model.Composition.CompositionAttesterComponent t : src.getAttester())
083      tgt.addAttester(convertCompositionAttesterComponent(t));
084    if (src.hasCustodian())
085      tgt.setCustodian(Reference30_40.convertReference(src.getCustodian()));
086    for (org.hl7.fhir.dstu3.model.Composition.CompositionRelatesToComponent t : src.getRelatesTo())
087      tgt.addRelatesTo(convertCompositionRelatesToComponent(t));
088    for (org.hl7.fhir.dstu3.model.Composition.CompositionEventComponent t : src.getEvent())
089      tgt.addEvent(convertCompositionEventComponent(t));
090    for (org.hl7.fhir.dstu3.model.Composition.SectionComponent t : src.getSection())
091      tgt.addSection(convertSectionComponent(t));
092    return tgt;
093  }
094
095  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Composition.CompositionAttestationMode> convertCompositionAttestationMode(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Composition.CompositionAttestationMode> src) throws FHIRException {
096      if (src == null || src.isEmpty())
097          return null;
098      Enumeration<Composition.CompositionAttestationMode> tgt = new Enumeration<>(new Composition.CompositionAttestationModeEnumFactory());
099      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
100      if (src.getValue() == null) {
101          tgt.setValue(null);
102      } else {
103          switch (src.getValue()) {
104              case PERSONAL:
105                  tgt.setValue(Composition.CompositionAttestationMode.PERSONAL);
106                  break;
107              case PROFESSIONAL:
108                  tgt.setValue(Composition.CompositionAttestationMode.PROFESSIONAL);
109                  break;
110              case LEGAL:
111                  tgt.setValue(Composition.CompositionAttestationMode.LEGAL);
112                  break;
113              case OFFICIAL:
114                  tgt.setValue(Composition.CompositionAttestationMode.OFFICIAL);
115                  break;
116              default:
117                  tgt.setValue(Composition.CompositionAttestationMode.NULL);
118                  break;
119          }
120      }
121      return tgt;
122  }
123
124  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Composition.CompositionAttestationMode> convertCompositionAttestationMode(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Composition.CompositionAttestationMode> src) throws FHIRException {
125      if (src == null || src.isEmpty())
126          return null;
127      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Composition.CompositionAttestationMode> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.Composition.CompositionAttestationModeEnumFactory());
128      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
129      if (src.getValue() == null) {
130          tgt.setValue(null);
131      } else {
132          switch (src.getValue()) {
133              case PERSONAL:
134                  tgt.setValue(org.hl7.fhir.r4.model.Composition.CompositionAttestationMode.PERSONAL);
135                  break;
136              case PROFESSIONAL:
137                  tgt.setValue(org.hl7.fhir.r4.model.Composition.CompositionAttestationMode.PROFESSIONAL);
138                  break;
139              case LEGAL:
140                  tgt.setValue(org.hl7.fhir.r4.model.Composition.CompositionAttestationMode.LEGAL);
141                  break;
142              case OFFICIAL:
143                  tgt.setValue(org.hl7.fhir.r4.model.Composition.CompositionAttestationMode.OFFICIAL);
144                  break;
145              default:
146                  tgt.setValue(org.hl7.fhir.r4.model.Composition.CompositionAttestationMode.NULL);
147                  break;
148          }
149      }
150      return tgt;
151  }
152
153  public static org.hl7.fhir.dstu3.model.Composition.CompositionAttesterComponent convertCompositionAttesterComponent(org.hl7.fhir.r4.model.Composition.CompositionAttesterComponent src) throws FHIRException {
154    if (src == null)
155      return null;
156    org.hl7.fhir.dstu3.model.Composition.CompositionAttesterComponent tgt = new org.hl7.fhir.dstu3.model.Composition.CompositionAttesterComponent();
157    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
158    if (src.hasMode())
159      tgt.setMode(Collections.singletonList(convertCompositionAttestationMode(src.getModeElement())));
160    if (src.hasTime())
161      tgt.setTimeElement(DateTime30_40.convertDateTime(src.getTimeElement()));
162    if (src.hasParty())
163      tgt.setParty(Reference30_40.convertReference(src.getParty()));
164    return tgt;
165  }
166
167  public static org.hl7.fhir.r4.model.Composition.CompositionAttesterComponent convertCompositionAttesterComponent(org.hl7.fhir.dstu3.model.Composition.CompositionAttesterComponent src) throws FHIRException {
168    if (src == null)
169      return null;
170    org.hl7.fhir.r4.model.Composition.CompositionAttesterComponent tgt = new org.hl7.fhir.r4.model.Composition.CompositionAttesterComponent();
171    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
172    if (src.hasMode())
173      tgt.setModeElement(convertCompositionAttestationMode(src.getMode().get(0)));
174    if (src.hasTime())
175      tgt.setTimeElement(DateTime30_40.convertDateTime(src.getTimeElement()));
176    if (src.hasParty())
177      tgt.setParty(Reference30_40.convertReference(src.getParty()));
178    return tgt;
179  }
180
181  public static org.hl7.fhir.r4.model.Composition.CompositionEventComponent convertCompositionEventComponent(org.hl7.fhir.dstu3.model.Composition.CompositionEventComponent src) throws FHIRException {
182    if (src == null)
183      return null;
184    org.hl7.fhir.r4.model.Composition.CompositionEventComponent tgt = new org.hl7.fhir.r4.model.Composition.CompositionEventComponent();
185    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
186    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getCode())
187      tgt.addCode(CodeableConcept30_40.convertCodeableConcept(t));
188    if (src.hasPeriod())
189      tgt.setPeriod(Period30_40.convertPeriod(src.getPeriod()));
190    for (org.hl7.fhir.dstu3.model.Reference t : src.getDetail())
191      tgt.addDetail(Reference30_40.convertReference(t));
192    return tgt;
193  }
194
195  public static org.hl7.fhir.dstu3.model.Composition.CompositionEventComponent convertCompositionEventComponent(org.hl7.fhir.r4.model.Composition.CompositionEventComponent src) throws FHIRException {
196    if (src == null)
197      return null;
198    org.hl7.fhir.dstu3.model.Composition.CompositionEventComponent tgt = new org.hl7.fhir.dstu3.model.Composition.CompositionEventComponent();
199    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
200    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getCode())
201      tgt.addCode(CodeableConcept30_40.convertCodeableConcept(t));
202    if (src.hasPeriod())
203      tgt.setPeriod(Period30_40.convertPeriod(src.getPeriod()));
204    for (org.hl7.fhir.r4.model.Reference t : src.getDetail())
205      tgt.addDetail(Reference30_40.convertReference(t));
206    return tgt;
207  }
208
209  public static org.hl7.fhir.r4.model.Composition.CompositionRelatesToComponent convertCompositionRelatesToComponent(org.hl7.fhir.dstu3.model.Composition.CompositionRelatesToComponent src) throws FHIRException {
210    if (src == null)
211      return null;
212    org.hl7.fhir.r4.model.Composition.CompositionRelatesToComponent tgt = new org.hl7.fhir.r4.model.Composition.CompositionRelatesToComponent();
213    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
214    if (src.hasCode())
215      tgt.setCodeElement(convertDocumentRelationshipType(src.getCodeElement()));
216    if (src.hasTarget())
217      tgt.setTarget(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getTarget()));
218    return tgt;
219  }
220
221  public static org.hl7.fhir.dstu3.model.Composition.CompositionRelatesToComponent convertCompositionRelatesToComponent(org.hl7.fhir.r4.model.Composition.CompositionRelatesToComponent src) throws FHIRException {
222    if (src == null)
223      return null;
224    org.hl7.fhir.dstu3.model.Composition.CompositionRelatesToComponent tgt = new org.hl7.fhir.dstu3.model.Composition.CompositionRelatesToComponent();
225    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
226    if (src.hasCode())
227      tgt.setCodeElement(convertDocumentRelationshipType(src.getCodeElement()));
228    if (src.hasTarget())
229      tgt.setTarget(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getTarget()));
230    return tgt;
231  }
232
233  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Composition.CompositionStatus> convertCompositionStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Composition.CompositionStatus> src) throws FHIRException {
234      if (src == null || src.isEmpty())
235          return null;
236      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Composition.CompositionStatus> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.Composition.CompositionStatusEnumFactory());
237      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
238      if (src.getValue() == null) {
239          tgt.setValue(null);
240      } else {
241          switch (src.getValue()) {
242              case PRELIMINARY:
243                  tgt.setValue(org.hl7.fhir.r4.model.Composition.CompositionStatus.PRELIMINARY);
244                  break;
245              case FINAL:
246                  tgt.setValue(org.hl7.fhir.r4.model.Composition.CompositionStatus.FINAL);
247                  break;
248              case AMENDED:
249                  tgt.setValue(org.hl7.fhir.r4.model.Composition.CompositionStatus.AMENDED);
250                  break;
251              case ENTEREDINERROR:
252                  tgt.setValue(org.hl7.fhir.r4.model.Composition.CompositionStatus.ENTEREDINERROR);
253                  break;
254              default:
255                  tgt.setValue(org.hl7.fhir.r4.model.Composition.CompositionStatus.NULL);
256                  break;
257          }
258      }
259      return tgt;
260  }
261
262  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Composition.CompositionStatus> convertCompositionStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Composition.CompositionStatus> src) throws FHIRException {
263      if (src == null || src.isEmpty())
264          return null;
265      Enumeration<Composition.CompositionStatus> tgt = new Enumeration<>(new Composition.CompositionStatusEnumFactory());
266      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
267      if (src.getValue() == null) {
268          tgt.setValue(null);
269      } else {
270          switch (src.getValue()) {
271              case PRELIMINARY:
272                  tgt.setValue(Composition.CompositionStatus.PRELIMINARY);
273                  break;
274              case FINAL:
275                  tgt.setValue(Composition.CompositionStatus.FINAL);
276                  break;
277              case AMENDED:
278                  tgt.setValue(Composition.CompositionStatus.AMENDED);
279                  break;
280              case ENTEREDINERROR:
281                  tgt.setValue(Composition.CompositionStatus.ENTEREDINERROR);
282                  break;
283              default:
284                  tgt.setValue(Composition.CompositionStatus.NULL);
285                  break;
286          }
287      }
288      return tgt;
289  }
290
291  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Composition.DocumentConfidentiality> convertDocumentConfidentiality(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Composition.DocumentConfidentiality> src) throws FHIRException {
292      if (src == null || src.isEmpty())
293          return null;
294      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Composition.DocumentConfidentiality> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.Composition.DocumentConfidentialityEnumFactory());
295      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
296      if (src.getValue() == null) {
297          tgt.setValue(null);
298      } else {
299          switch (src.getValue()) {
300              case U:
301                  tgt.setValue(org.hl7.fhir.r4.model.Composition.DocumentConfidentiality.U);
302                  break;
303              case L:
304                  tgt.setValue(org.hl7.fhir.r4.model.Composition.DocumentConfidentiality.L);
305                  break;
306              case M:
307                  tgt.setValue(org.hl7.fhir.r4.model.Composition.DocumentConfidentiality.M);
308                  break;
309              case N:
310                  tgt.setValue(org.hl7.fhir.r4.model.Composition.DocumentConfidentiality.N);
311                  break;
312              case R:
313                  tgt.setValue(org.hl7.fhir.r4.model.Composition.DocumentConfidentiality.R);
314                  break;
315              case V:
316                  tgt.setValue(org.hl7.fhir.r4.model.Composition.DocumentConfidentiality.V);
317                  break;
318              default:
319                  tgt.setValue(org.hl7.fhir.r4.model.Composition.DocumentConfidentiality.NULL);
320                  break;
321          }
322      }
323      return tgt;
324  }
325
326  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Composition.DocumentConfidentiality> convertDocumentConfidentiality(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Composition.DocumentConfidentiality> src) throws FHIRException {
327      if (src == null || src.isEmpty())
328          return null;
329      Enumeration<Composition.DocumentConfidentiality> tgt = new Enumeration<>(new Composition.DocumentConfidentialityEnumFactory());
330      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
331      if (src.getValue() == null) {
332          tgt.setValue(null);
333      } else {
334          switch (src.getValue()) {
335              case U:
336                  tgt.setValue(Composition.DocumentConfidentiality.U);
337                  break;
338              case L:
339                  tgt.setValue(Composition.DocumentConfidentiality.L);
340                  break;
341              case M:
342                  tgt.setValue(Composition.DocumentConfidentiality.M);
343                  break;
344              case N:
345                  tgt.setValue(Composition.DocumentConfidentiality.N);
346                  break;
347              case R:
348                  tgt.setValue(Composition.DocumentConfidentiality.R);
349                  break;
350              case V:
351                  tgt.setValue(Composition.DocumentConfidentiality.V);
352                  break;
353              default:
354                  tgt.setValue(Composition.DocumentConfidentiality.NULL);
355                  break;
356          }
357      }
358      return tgt;
359  }
360
361  public static org.hl7.fhir.dstu3.model.Composition.SectionComponent convertSectionComponent(org.hl7.fhir.r4.model.Composition.SectionComponent src) throws FHIRException {
362    if (src == null)
363      return null;
364    org.hl7.fhir.dstu3.model.Composition.SectionComponent tgt = new org.hl7.fhir.dstu3.model.Composition.SectionComponent();
365    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
366    if (src.hasTitle())
367      tgt.setTitleElement(String30_40.convertString(src.getTitleElement()));
368    if (src.hasCode())
369      tgt.setCode(CodeableConcept30_40.convertCodeableConcept(src.getCode()));
370    if (src.hasText())
371      tgt.setText(Narrative30_40.convertNarrative(src.getText()));
372    if (src.hasMode())
373      tgt.setModeElement(convertSectionMode(src.getModeElement()));
374    if (src.hasOrderedBy())
375      tgt.setOrderedBy(CodeableConcept30_40.convertCodeableConcept(src.getOrderedBy()));
376    for (org.hl7.fhir.r4.model.Reference t : src.getEntry())
377      tgt.addEntry(Reference30_40.convertReference(t));
378    if (src.hasEmptyReason())
379      tgt.setEmptyReason(CodeableConcept30_40.convertCodeableConcept(src.getEmptyReason()));
380    for (org.hl7.fhir.r4.model.Composition.SectionComponent t : src.getSection())
381      tgt.addSection(convertSectionComponent(t));
382    return tgt;
383  }
384
385  public static org.hl7.fhir.r4.model.Composition.SectionComponent convertSectionComponent(org.hl7.fhir.dstu3.model.Composition.SectionComponent src) throws FHIRException {
386    if (src == null)
387      return null;
388    org.hl7.fhir.r4.model.Composition.SectionComponent tgt = new org.hl7.fhir.r4.model.Composition.SectionComponent();
389    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
390    if (src.hasTitle())
391      tgt.setTitleElement(String30_40.convertString(src.getTitleElement()));
392    if (src.hasCode())
393      tgt.setCode(CodeableConcept30_40.convertCodeableConcept(src.getCode()));
394    if (src.hasText())
395      tgt.setText(Narrative30_40.convertNarrative(src.getText()));
396    if (src.hasMode())
397      tgt.setModeElement(convertSectionMode(src.getModeElement()));
398    if (src.hasOrderedBy())
399      tgt.setOrderedBy(CodeableConcept30_40.convertCodeableConcept(src.getOrderedBy()));
400    for (org.hl7.fhir.dstu3.model.Reference t : src.getEntry())
401      tgt.addEntry(Reference30_40.convertReference(t));
402    if (src.hasEmptyReason())
403      tgt.setEmptyReason(CodeableConcept30_40.convertCodeableConcept(src.getEmptyReason()));
404    for (org.hl7.fhir.dstu3.model.Composition.SectionComponent t : src.getSection())
405      tgt.addSection(convertSectionComponent(t));
406    return tgt;
407  }
408
409  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Composition.SectionMode> convertSectionMode(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Composition.SectionMode> src) throws FHIRException {
410      if (src == null || src.isEmpty())
411          return null;
412      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Composition.SectionMode> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.Composition.SectionModeEnumFactory());
413      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
414      if (src.getValue() == null) {
415          tgt.setValue(null);
416      } else {
417          switch (src.getValue()) {
418              case WORKING:
419                  tgt.setValue(org.hl7.fhir.r4.model.Composition.SectionMode.WORKING);
420                  break;
421              case SNAPSHOT:
422                  tgt.setValue(org.hl7.fhir.r4.model.Composition.SectionMode.SNAPSHOT);
423                  break;
424              case CHANGES:
425                  tgt.setValue(org.hl7.fhir.r4.model.Composition.SectionMode.CHANGES);
426                  break;
427              default:
428                  tgt.setValue(org.hl7.fhir.r4.model.Composition.SectionMode.NULL);
429                  break;
430          }
431      }
432      return tgt;
433  }
434
435  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Composition.SectionMode> convertSectionMode(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Composition.SectionMode> src) throws FHIRException {
436      if (src == null || src.isEmpty())
437          return null;
438      Enumeration<Composition.SectionMode> tgt = new Enumeration<>(new Composition.SectionModeEnumFactory());
439      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
440      if (src.getValue() == null) {
441          tgt.setValue(null);
442      } else {
443          switch (src.getValue()) {
444              case WORKING:
445                  tgt.setValue(Composition.SectionMode.WORKING);
446                  break;
447              case SNAPSHOT:
448                  tgt.setValue(Composition.SectionMode.SNAPSHOT);
449                  break;
450              case CHANGES:
451                  tgt.setValue(Composition.SectionMode.CHANGES);
452                  break;
453              default:
454                  tgt.setValue(Composition.SectionMode.NULL);
455                  break;
456          }
457      }
458      return tgt;
459  }
460
461  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Composition.DocumentRelationshipType> convertDocumentRelationshipType(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Composition.DocumentRelationshipType> src) throws FHIRException {
462      if (src == null || src.isEmpty())
463          return null;
464      org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Composition.DocumentRelationshipType> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.Composition.DocumentRelationshipTypeEnumFactory());
465      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
466      if (src.getValue() == null) {
467          tgt.setValue(null);
468      } else {
469          switch (src.getValue()) {
470              case REPLACES:
471                  tgt.setValue(org.hl7.fhir.r4.model.Composition.DocumentRelationshipType.REPLACES);
472                  break;
473              case TRANSFORMS:
474                  tgt.setValue(org.hl7.fhir.r4.model.Composition.DocumentRelationshipType.TRANSFORMS);
475                  break;
476              case SIGNS:
477                  tgt.setValue(org.hl7.fhir.r4.model.Composition.DocumentRelationshipType.SIGNS);
478                  break;
479              case APPENDS:
480                  tgt.setValue(org.hl7.fhir.r4.model.Composition.DocumentRelationshipType.APPENDS);
481                  break;
482              default:
483                  tgt.setValue(org.hl7.fhir.r4.model.Composition.DocumentRelationshipType.NULL);
484                  break;
485          }
486      }
487      return tgt;
488  }
489
490  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Composition.DocumentRelationshipType> convertDocumentRelationshipType(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Composition.DocumentRelationshipType> src) throws FHIRException {
491      if (src == null || src.isEmpty())
492          return null;
493      Enumeration<Composition.DocumentRelationshipType> tgt = new Enumeration<>(new Composition.DocumentRelationshipTypeEnumFactory());
494      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
495      if (src.getValue() == null) {
496          tgt.setValue(null);
497      } else {
498          switch (src.getValue()) {
499              case REPLACES:
500                  tgt.setValue(Composition.DocumentRelationshipType.REPLACES);
501                  break;
502              case TRANSFORMS:
503                  tgt.setValue(Composition.DocumentRelationshipType.TRANSFORMS);
504                  break;
505              case SIGNS:
506                  tgt.setValue(Composition.DocumentRelationshipType.SIGNS);
507                  break;
508              case APPENDS:
509                  tgt.setValue(Composition.DocumentRelationshipType.APPENDS);
510                  break;
511              default:
512                  tgt.setValue(Composition.DocumentRelationshipType.NULL);
513                  break;
514          }
515      }
516      return tgt;
517  }
518
519}