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