001package org.hl7.fhir.convertors.conv10_30.resources10_30;
002
003import java.util.stream.Collectors;
004
005import org.hl7.fhir.convertors.context.ConversionContext10_30;
006import org.hl7.fhir.convertors.conv10_30.datatypes10_30.Narrative10_30;
007import org.hl7.fhir.convertors.conv10_30.datatypes10_30.Reference10_30;
008import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.CodeableConcept10_30;
009import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Identifier10_30;
010import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Period10_30;
011import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.DateTime10_30;
012import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.String10_30;
013import org.hl7.fhir.exceptions.FHIRException;
014
015public class Composition10_30 {
016
017  public static org.hl7.fhir.dstu3.model.Composition convertComposition(org.hl7.fhir.dstu2.model.Composition src) throws FHIRException {
018    if (src == null || src.isEmpty())
019      return null;
020    org.hl7.fhir.dstu3.model.Composition tgt = new org.hl7.fhir.dstu3.model.Composition();
021    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
022    if (src.hasIdentifier())
023      tgt.setIdentifier(Identifier10_30.convertIdentifier(src.getIdentifier()));
024    if (src.hasDate())
025      tgt.setDateElement(DateTime10_30.convertDateTime(src.getDateElement()));
026    if (src.hasType())
027      tgt.setType(CodeableConcept10_30.convertCodeableConcept(src.getType()));
028    if (src.hasClass_())
029      tgt.setClass_(CodeableConcept10_30.convertCodeableConcept(src.getClass_()));
030    if (src.hasTitleElement())
031      tgt.setTitleElement(String10_30.convertString(src.getTitleElement()));
032    if (src.hasStatus())
033      tgt.setStatusElement(convertCompositionStatus(src.getStatusElement()));
034    try {
035      if (src.hasConfidentiality())
036        tgt.setConfidentiality(org.hl7.fhir.dstu3.model.Composition.DocumentConfidentiality.fromCode(src.getConfidentiality()));
037    } catch (org.hl7.fhir.exceptions.FHIRException e) {
038      throw new FHIRException(e);
039    }
040    if (src.hasSubject())
041      tgt.setSubject(Reference10_30.convertReference(src.getSubject()));
042    for (org.hl7.fhir.dstu2.model.Reference t : src.getAuthor()) tgt.addAuthor(Reference10_30.convertReference(t));
043    for (org.hl7.fhir.dstu2.model.Composition.CompositionAttesterComponent t : src.getAttester())
044      tgt.addAttester(convertCompositionAttesterComponent(t));
045    if (src.hasCustodian())
046      tgt.setCustodian(Reference10_30.convertReference(src.getCustodian()));
047    for (org.hl7.fhir.dstu2.model.Composition.CompositionEventComponent t : src.getEvent())
048      tgt.addEvent(convertCompositionEventComponent(t));
049    if (src.hasEncounter())
050      tgt.setEncounter(Reference10_30.convertReference(src.getEncounter()));
051    for (org.hl7.fhir.dstu2.model.Composition.SectionComponent t : src.getSection())
052      tgt.addSection(convertSectionComponent(t));
053    return tgt;
054  }
055
056  public static org.hl7.fhir.dstu2.model.Composition convertComposition(org.hl7.fhir.dstu3.model.Composition src) throws FHIRException {
057    if (src == null || src.isEmpty())
058      return null;
059    org.hl7.fhir.dstu2.model.Composition tgt = new org.hl7.fhir.dstu2.model.Composition();
060    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
061    if (src.hasIdentifier())
062      tgt.setIdentifier(Identifier10_30.convertIdentifier(src.getIdentifier()));
063    if (src.hasDate())
064      tgt.setDateElement(DateTime10_30.convertDateTime(src.getDateElement()));
065    if (src.hasType())
066      tgt.setType(CodeableConcept10_30.convertCodeableConcept(src.getType()));
067    if (src.hasClass_())
068      tgt.setClass_(CodeableConcept10_30.convertCodeableConcept(src.getClass_()));
069    if (src.hasTitleElement())
070      tgt.setTitleElement(String10_30.convertString(src.getTitleElement()));
071    if (src.hasStatus())
072      tgt.setStatusElement(convertCompositionStatus(src.getStatusElement()));
073    tgt.setConfidentiality(src.getConfidentiality().toCode());
074    if (src.hasSubject())
075      tgt.setSubject(Reference10_30.convertReference(src.getSubject()));
076    for (org.hl7.fhir.dstu3.model.Reference t : src.getAuthor()) tgt.addAuthor(Reference10_30.convertReference(t));
077    for (org.hl7.fhir.dstu3.model.Composition.CompositionAttesterComponent t : src.getAttester())
078      tgt.addAttester(convertCompositionAttesterComponent(t));
079    if (src.hasCustodian())
080      tgt.setCustodian(Reference10_30.convertReference(src.getCustodian()));
081    for (org.hl7.fhir.dstu3.model.Composition.CompositionEventComponent t : src.getEvent())
082      tgt.addEvent(convertCompositionEventComponent(t));
083    if (src.hasEncounter())
084      tgt.setEncounter(Reference10_30.convertReference(src.getEncounter()));
085    for (org.hl7.fhir.dstu3.model.Composition.SectionComponent t : src.getSection())
086      tgt.addSection(convertSectionComponent(t));
087    return tgt;
088  }
089
090  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Composition.CompositionAttestationMode> convertCompositionAttestationMode(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Composition.CompositionAttestationMode> src) throws FHIRException {
091    if (src == null || src.isEmpty())
092      return null;
093    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());
094    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
095    switch (src.getValue()) {
096      case PERSONAL:
097        tgt.setValue(org.hl7.fhir.dstu3.model.Composition.CompositionAttestationMode.PERSONAL);
098        break;
099      case PROFESSIONAL:
100        tgt.setValue(org.hl7.fhir.dstu3.model.Composition.CompositionAttestationMode.PROFESSIONAL);
101        break;
102      case LEGAL:
103        tgt.setValue(org.hl7.fhir.dstu3.model.Composition.CompositionAttestationMode.LEGAL);
104        break;
105      case OFFICIAL:
106        tgt.setValue(org.hl7.fhir.dstu3.model.Composition.CompositionAttestationMode.OFFICIAL);
107        break;
108      default:
109        tgt.setValue(org.hl7.fhir.dstu3.model.Composition.CompositionAttestationMode.NULL);
110        break;
111    }
112    return tgt;
113  }
114
115  static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Composition.CompositionAttestationMode> convertCompositionAttestationMode(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Composition.CompositionAttestationMode> src) throws FHIRException {
116    if (src == null || src.isEmpty())
117      return null;
118    org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Composition.CompositionAttestationMode> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.Composition.CompositionAttestationModeEnumFactory());
119    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
120    switch (src.getValue()) {
121      case PERSONAL:
122        tgt.setValue(org.hl7.fhir.dstu2.model.Composition.CompositionAttestationMode.PERSONAL);
123        break;
124      case PROFESSIONAL:
125        tgt.setValue(org.hl7.fhir.dstu2.model.Composition.CompositionAttestationMode.PROFESSIONAL);
126        break;
127      case LEGAL:
128        tgt.setValue(org.hl7.fhir.dstu2.model.Composition.CompositionAttestationMode.LEGAL);
129        break;
130      case OFFICIAL:
131        tgt.setValue(org.hl7.fhir.dstu2.model.Composition.CompositionAttestationMode.OFFICIAL);
132        break;
133      default:
134        tgt.setValue(org.hl7.fhir.dstu2.model.Composition.CompositionAttestationMode.NULL);
135        break;
136    }
137    return tgt;
138  }
139
140  public static org.hl7.fhir.dstu3.model.Composition.CompositionAttesterComponent convertCompositionAttesterComponent(org.hl7.fhir.dstu2.model.Composition.CompositionAttesterComponent src) throws FHIRException {
141    if (src == null || src.isEmpty())
142      return null;
143    org.hl7.fhir.dstu3.model.Composition.CompositionAttesterComponent tgt = new org.hl7.fhir.dstu3.model.Composition.CompositionAttesterComponent();
144    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
145    tgt.setMode(src.getMode().stream()
146      .map(Composition10_30::convertCompositionAttestationMode)
147      .collect(Collectors.toList()));
148    if (src.hasTimeElement())
149      tgt.setTimeElement(DateTime10_30.convertDateTime(src.getTimeElement()));
150    if (src.hasParty())
151      tgt.setParty(Reference10_30.convertReference(src.getParty()));
152    return tgt;
153  }
154
155  public static org.hl7.fhir.dstu2.model.Composition.CompositionAttesterComponent convertCompositionAttesterComponent(org.hl7.fhir.dstu3.model.Composition.CompositionAttesterComponent src) throws FHIRException {
156    if (src == null || src.isEmpty())
157      return null;
158    org.hl7.fhir.dstu2.model.Composition.CompositionAttesterComponent tgt = new org.hl7.fhir.dstu2.model.Composition.CompositionAttesterComponent();
159    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
160    tgt.setMode(src.getMode().stream()
161      .map(Composition10_30::convertCompositionAttestationMode)
162      .collect(Collectors.toList()));
163    if (src.hasTimeElement())
164      tgt.setTimeElement(DateTime10_30.convertDateTime(src.getTimeElement()));
165    if (src.hasParty())
166      tgt.setParty(Reference10_30.convertReference(src.getParty()));
167    return tgt;
168  }
169
170  public static org.hl7.fhir.dstu2.model.Composition.CompositionEventComponent convertCompositionEventComponent(org.hl7.fhir.dstu3.model.Composition.CompositionEventComponent src) throws FHIRException {
171    if (src == null || src.isEmpty())
172      return null;
173    org.hl7.fhir.dstu2.model.Composition.CompositionEventComponent tgt = new org.hl7.fhir.dstu2.model.Composition.CompositionEventComponent();
174    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
175    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getCode())
176      tgt.addCode(CodeableConcept10_30.convertCodeableConcept(t));
177    if (src.hasPeriod())
178      tgt.setPeriod(Period10_30.convertPeriod(src.getPeriod()));
179    for (org.hl7.fhir.dstu3.model.Reference t : src.getDetail()) tgt.addDetail(Reference10_30.convertReference(t));
180    return tgt;
181  }
182
183  public static org.hl7.fhir.dstu3.model.Composition.CompositionEventComponent convertCompositionEventComponent(org.hl7.fhir.dstu2.model.Composition.CompositionEventComponent src) throws FHIRException {
184    if (src == null || src.isEmpty())
185      return null;
186    org.hl7.fhir.dstu3.model.Composition.CompositionEventComponent tgt = new org.hl7.fhir.dstu3.model.Composition.CompositionEventComponent();
187    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
188    for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getCode())
189      tgt.addCode(CodeableConcept10_30.convertCodeableConcept(t));
190    if (src.hasPeriod())
191      tgt.setPeriod(Period10_30.convertPeriod(src.getPeriod()));
192    for (org.hl7.fhir.dstu2.model.Reference t : src.getDetail()) tgt.addDetail(Reference10_30.convertReference(t));
193    return tgt;
194  }
195
196  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Composition.CompositionStatus> convertCompositionStatus(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Composition.CompositionStatus> src) throws FHIRException {
197    if (src == null || src.isEmpty())
198      return null;
199    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());
200    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
201    switch (src.getValue()) {
202      case PRELIMINARY:
203        tgt.setValue(org.hl7.fhir.dstu3.model.Composition.CompositionStatus.PRELIMINARY);
204        break;
205      case FINAL:
206        tgt.setValue(org.hl7.fhir.dstu3.model.Composition.CompositionStatus.FINAL);
207        break;
208      case AMENDED:
209        tgt.setValue(org.hl7.fhir.dstu3.model.Composition.CompositionStatus.AMENDED);
210        break;
211      case ENTEREDINERROR:
212        tgt.setValue(org.hl7.fhir.dstu3.model.Composition.CompositionStatus.ENTEREDINERROR);
213        break;
214      default:
215        tgt.setValue(org.hl7.fhir.dstu3.model.Composition.CompositionStatus.NULL);
216        break;
217    }
218    return tgt;
219  }
220
221  static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Composition.CompositionStatus> convertCompositionStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Composition.CompositionStatus> src) throws FHIRException {
222    if (src == null || src.isEmpty())
223      return null;
224    org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Composition.CompositionStatus> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.Composition.CompositionStatusEnumFactory());
225    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
226    switch (src.getValue()) {
227      case PRELIMINARY:
228        tgt.setValue(org.hl7.fhir.dstu2.model.Composition.CompositionStatus.PRELIMINARY);
229        break;
230      case FINAL:
231        tgt.setValue(org.hl7.fhir.dstu2.model.Composition.CompositionStatus.FINAL);
232        break;
233      case AMENDED:
234        tgt.setValue(org.hl7.fhir.dstu2.model.Composition.CompositionStatus.AMENDED);
235        break;
236      case ENTEREDINERROR:
237        tgt.setValue(org.hl7.fhir.dstu2.model.Composition.CompositionStatus.ENTEREDINERROR);
238        break;
239      default:
240        tgt.setValue(org.hl7.fhir.dstu2.model.Composition.CompositionStatus.NULL);
241        break;
242    }
243    return tgt;
244  }
245
246  public static org.hl7.fhir.dstu3.model.Composition.SectionComponent convertSectionComponent(org.hl7.fhir.dstu2.model.Composition.SectionComponent src) throws FHIRException {
247    if (src == null || src.isEmpty())
248      return null;
249    org.hl7.fhir.dstu3.model.Composition.SectionComponent tgt = new org.hl7.fhir.dstu3.model.Composition.SectionComponent();
250    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
251    if (src.hasTitleElement())
252      tgt.setTitleElement(String10_30.convertString(src.getTitleElement()));
253    if (src.hasCode())
254      tgt.setCode(CodeableConcept10_30.convertCodeableConcept(src.getCode()));
255    if (src.hasText())
256      tgt.setText(Narrative10_30.convertNarrative(src.getText()));
257    try {
258      if (src.hasMode())
259        tgt.setMode(org.hl7.fhir.dstu3.model.Composition.SectionMode.fromCode(src.getMode()));
260    } catch (org.hl7.fhir.exceptions.FHIRException e) {
261      throw new FHIRException(e);
262    }
263    if (src.hasOrderedBy())
264      tgt.setOrderedBy(CodeableConcept10_30.convertCodeableConcept(src.getOrderedBy()));
265    for (org.hl7.fhir.dstu2.model.Reference t : src.getEntry()) tgt.addEntry(Reference10_30.convertReference(t));
266    if (src.hasEmptyReason())
267      tgt.setEmptyReason(CodeableConcept10_30.convertCodeableConcept(src.getEmptyReason()));
268    for (org.hl7.fhir.dstu2.model.Composition.SectionComponent t : src.getSection())
269      tgt.addSection(convertSectionComponent(t));
270    return tgt;
271  }
272
273  public static org.hl7.fhir.dstu2.model.Composition.SectionComponent convertSectionComponent(org.hl7.fhir.dstu3.model.Composition.SectionComponent src) throws FHIRException {
274    if (src == null || src.isEmpty())
275      return null;
276    org.hl7.fhir.dstu2.model.Composition.SectionComponent tgt = new org.hl7.fhir.dstu2.model.Composition.SectionComponent();
277    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
278    if (src.hasTitleElement())
279      tgt.setTitleElement(String10_30.convertString(src.getTitleElement()));
280    if (src.hasCode())
281      tgt.setCode(CodeableConcept10_30.convertCodeableConcept(src.getCode()));
282    if (src.hasText())
283      tgt.setText(Narrative10_30.convertNarrative(src.getText()));
284    tgt.setMode(src.getMode().toCode());
285    if (src.hasOrderedBy())
286      tgt.setOrderedBy(CodeableConcept10_30.convertCodeableConcept(src.getOrderedBy()));
287    for (org.hl7.fhir.dstu3.model.Reference t : src.getEntry()) tgt.addEntry(Reference10_30.convertReference(t));
288    if (src.hasEmptyReason())
289      tgt.setEmptyReason(CodeableConcept10_30.convertCodeableConcept(src.getEmptyReason()));
290    for (org.hl7.fhir.dstu3.model.Composition.SectionComponent t : src.getSection())
291      tgt.addSection(convertSectionComponent(t));
292    return tgt;
293  }
294}