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