001package org.hl7.fhir.convertors.conv10_30.resources10_30;
002
003import org.hl7.fhir.convertors.context.ConversionContext10_30;
004import org.hl7.fhir.convertors.conv10_30.datatypes10_30.Reference10_30;
005import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.CodeableConcept10_30;
006import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Identifier10_30;
007import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Period10_30;
008import org.hl7.fhir.dstu2.model.Enumeration;
009import org.hl7.fhir.dstu2.model.EpisodeOfCare;
010import org.hl7.fhir.exceptions.FHIRException;
011
012public class EpisodeOfCare10_30 {
013
014  public static org.hl7.fhir.dstu3.model.EpisodeOfCare convertEpisodeOfCare(org.hl7.fhir.dstu2.model.EpisodeOfCare src) throws FHIRException {
015    if (src == null || src.isEmpty())
016      return null;
017    org.hl7.fhir.dstu3.model.EpisodeOfCare tgt = new org.hl7.fhir.dstu3.model.EpisodeOfCare();
018    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
019    for (org.hl7.fhir.dstu2.model.Identifier t : src.getIdentifier())
020      tgt.addIdentifier(Identifier10_30.convertIdentifier(t));
021    if (src.hasStatus())
022      tgt.setStatusElement(convertEpisodeOfCareStatus(src.getStatusElement()));
023    for (org.hl7.fhir.dstu2.model.EpisodeOfCare.EpisodeOfCareStatusHistoryComponent t : src.getStatusHistory())
024      tgt.addStatusHistory(convertEpisodeOfCareStatusHistoryComponent(t));
025    for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getType())
026      tgt.addType(CodeableConcept10_30.convertCodeableConcept(t));
027    if (src.hasPatient())
028      tgt.setPatient(Reference10_30.convertReference(src.getPatient()));
029    if (src.hasManagingOrganization())
030      tgt.setManagingOrganization(Reference10_30.convertReference(src.getManagingOrganization()));
031    if (src.hasPeriod())
032      tgt.setPeriod(Period10_30.convertPeriod(src.getPeriod()));
033    for (org.hl7.fhir.dstu2.model.Reference t : src.getReferralRequest())
034      tgt.addReferralRequest(Reference10_30.convertReference(t));
035    if (src.hasCareManager())
036      tgt.setCareManager(Reference10_30.convertReference(src.getCareManager()));
037    return tgt;
038  }
039
040  public static org.hl7.fhir.dstu2.model.EpisodeOfCare convertEpisodeOfCare(org.hl7.fhir.dstu3.model.EpisodeOfCare src) throws FHIRException {
041    if (src == null || src.isEmpty())
042      return null;
043    org.hl7.fhir.dstu2.model.EpisodeOfCare tgt = new org.hl7.fhir.dstu2.model.EpisodeOfCare();
044    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt);
045    for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier())
046      tgt.addIdentifier(Identifier10_30.convertIdentifier(t));
047    if (src.hasStatus())
048      tgt.setStatusElement(convertEpisodeOfCareStatus(src.getStatusElement()));
049    for (org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatusHistoryComponent t : src.getStatusHistory())
050      tgt.addStatusHistory(convertEpisodeOfCareStatusHistoryComponent(t));
051    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getType())
052      tgt.addType(CodeableConcept10_30.convertCodeableConcept(t));
053    if (src.hasPatient())
054      tgt.setPatient(Reference10_30.convertReference(src.getPatient()));
055    if (src.hasManagingOrganization())
056      tgt.setManagingOrganization(Reference10_30.convertReference(src.getManagingOrganization()));
057    if (src.hasPeriod())
058      tgt.setPeriod(Period10_30.convertPeriod(src.getPeriod()));
059    for (org.hl7.fhir.dstu3.model.Reference t : src.getReferralRequest())
060      tgt.addReferralRequest(Reference10_30.convertReference(t));
061    if (src.hasCareManager())
062      tgt.setCareManager(Reference10_30.convertReference(src.getCareManager()));
063    return tgt;
064  }
065
066  static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.EpisodeOfCare.EpisodeOfCareStatus> convertEpisodeOfCareStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatus> src) throws FHIRException {
067      if (src == null || src.isEmpty())
068          return null;
069      Enumeration<EpisodeOfCare.EpisodeOfCareStatus> tgt = new Enumeration<>(new EpisodeOfCare.EpisodeOfCareStatusEnumFactory());
070      ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
071      if (src.getValue() == null) {
072          tgt.setValue(null);
073      } else {
074          switch (src.getValue()) {
075              case PLANNED:
076                  tgt.setValue(EpisodeOfCare.EpisodeOfCareStatus.PLANNED);
077                  break;
078              case WAITLIST:
079                  tgt.setValue(EpisodeOfCare.EpisodeOfCareStatus.WAITLIST);
080                  break;
081              case ACTIVE:
082                  tgt.setValue(EpisodeOfCare.EpisodeOfCareStatus.ACTIVE);
083                  break;
084              case ONHOLD:
085                  tgt.setValue(EpisodeOfCare.EpisodeOfCareStatus.ONHOLD);
086                  break;
087              case FINISHED:
088                  tgt.setValue(EpisodeOfCare.EpisodeOfCareStatus.FINISHED);
089                  break;
090              case CANCELLED:
091                  tgt.setValue(EpisodeOfCare.EpisodeOfCareStatus.CANCELLED);
092                  break;
093              default:
094                  tgt.setValue(EpisodeOfCare.EpisodeOfCareStatus.NULL);
095                  break;
096          }
097      }
098      return tgt;
099  }
100
101  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatus> convertEpisodeOfCareStatus(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.EpisodeOfCare.EpisodeOfCareStatus> src) throws FHIRException {
102      if (src == null || src.isEmpty())
103          return null;
104      org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatus> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatusEnumFactory());
105      ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt);
106      if (src.getValue() == null) {
107          tgt.setValue(null);
108      } else {
109          switch (src.getValue()) {
110              case PLANNED:
111                  tgt.setValue(org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatus.PLANNED);
112                  break;
113              case WAITLIST:
114                  tgt.setValue(org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatus.WAITLIST);
115                  break;
116              case ACTIVE:
117                  tgt.setValue(org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatus.ACTIVE);
118                  break;
119              case ONHOLD:
120                  tgt.setValue(org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatus.ONHOLD);
121                  break;
122              case FINISHED:
123                  tgt.setValue(org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatus.FINISHED);
124                  break;
125              case CANCELLED:
126                  tgt.setValue(org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatus.CANCELLED);
127                  break;
128              default:
129                  tgt.setValue(org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatus.NULL);
130                  break;
131          }
132      }
133      return tgt;
134  }
135
136  public static org.hl7.fhir.dstu2.model.EpisodeOfCare.EpisodeOfCareStatusHistoryComponent convertEpisodeOfCareStatusHistoryComponent(org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatusHistoryComponent src) throws FHIRException {
137    if (src == null || src.isEmpty())
138      return null;
139    org.hl7.fhir.dstu2.model.EpisodeOfCare.EpisodeOfCareStatusHistoryComponent tgt = new org.hl7.fhir.dstu2.model.EpisodeOfCare.EpisodeOfCareStatusHistoryComponent();
140    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
141    if (src.hasStatus())
142      tgt.setStatusElement(convertEpisodeOfCareStatus(src.getStatusElement()));
143    if (src.hasPeriod())
144      tgt.setPeriod(Period10_30.convertPeriod(src.getPeriod()));
145    return tgt;
146  }
147
148  public static org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatusHistoryComponent convertEpisodeOfCareStatusHistoryComponent(org.hl7.fhir.dstu2.model.EpisodeOfCare.EpisodeOfCareStatusHistoryComponent src) throws FHIRException {
149    if (src == null || src.isEmpty())
150      return null;
151    org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatusHistoryComponent tgt = new org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatusHistoryComponent();
152    ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyBackboneElement(src,tgt);
153    if (src.hasStatus())
154      tgt.setStatusElement(convertEpisodeOfCareStatus(src.getStatusElement()));
155    if (src.hasPeriod())
156      tgt.setPeriod(Period10_30.convertPeriod(src.getPeriod()));
157    return tgt;
158  }
159}