001package org.hl7.fhir.convertors.conv30_40.resources30_40;
002
003import org.hl7.fhir.convertors.context.ConversionContext30_40;
004import org.hl7.fhir.convertors.conv30_40.datatypes30_40.Reference30_40;
005import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.CodeableConcept30_40;
006import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Identifier30_40;
007import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Period30_40;
008import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.PositiveInt30_40;
009import org.hl7.fhir.exceptions.FHIRException;
010import org.hl7.fhir.r4.model.Enumeration;
011import org.hl7.fhir.r4.model.EpisodeOfCare;
012
013public class EpisodeOfCare30_40 {
014
015  public static org.hl7.fhir.r4.model.EpisodeOfCare convertEpisodeOfCare(org.hl7.fhir.dstu3.model.EpisodeOfCare src) throws FHIRException {
016    if (src == null)
017      return null;
018    org.hl7.fhir.r4.model.EpisodeOfCare tgt = new org.hl7.fhir.r4.model.EpisodeOfCare();
019    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
020    for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier())
021      tgt.addIdentifier(Identifier30_40.convertIdentifier(t));
022    if (src.hasStatus())
023      tgt.setStatusElement(convertEpisodeOfCareStatus(src.getStatusElement()));
024    for (org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatusHistoryComponent t : src.getStatusHistory())
025      tgt.addStatusHistory(convertEpisodeOfCareStatusHistoryComponent(t));
026    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getType())
027      tgt.addType(CodeableConcept30_40.convertCodeableConcept(t));
028    for (org.hl7.fhir.dstu3.model.EpisodeOfCare.DiagnosisComponent t : src.getDiagnosis())
029      tgt.addDiagnosis(convertDiagnosisComponent(t));
030    if (src.hasPatient())
031      tgt.setPatient(Reference30_40.convertReference(src.getPatient()));
032    if (src.hasManagingOrganization())
033      tgt.setManagingOrganization(Reference30_40.convertReference(src.getManagingOrganization()));
034    if (src.hasPeriod())
035      tgt.setPeriod(Period30_40.convertPeriod(src.getPeriod()));
036    for (org.hl7.fhir.dstu3.model.Reference t : src.getReferralRequest())
037      tgt.addReferralRequest(Reference30_40.convertReference(t));
038    if (src.hasCareManager())
039      tgt.setCareManager(Reference30_40.convertReference(src.getCareManager()));
040    for (org.hl7.fhir.dstu3.model.Reference t : src.getTeam()) tgt.addTeam(Reference30_40.convertReference(t));
041    for (org.hl7.fhir.dstu3.model.Reference t : src.getAccount()) tgt.addAccount(Reference30_40.convertReference(t));
042    return tgt;
043  }
044
045  public static org.hl7.fhir.dstu3.model.EpisodeOfCare convertEpisodeOfCare(org.hl7.fhir.r4.model.EpisodeOfCare src) throws FHIRException {
046    if (src == null)
047      return null;
048    org.hl7.fhir.dstu3.model.EpisodeOfCare tgt = new org.hl7.fhir.dstu3.model.EpisodeOfCare();
049    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
050    for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier())
051      tgt.addIdentifier(Identifier30_40.convertIdentifier(t));
052    if (src.hasStatus())
053      tgt.setStatusElement(convertEpisodeOfCareStatus(src.getStatusElement()));
054    for (org.hl7.fhir.r4.model.EpisodeOfCare.EpisodeOfCareStatusHistoryComponent t : src.getStatusHistory())
055      tgt.addStatusHistory(convertEpisodeOfCareStatusHistoryComponent(t));
056    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getType())
057      tgt.addType(CodeableConcept30_40.convertCodeableConcept(t));
058    for (org.hl7.fhir.r4.model.EpisodeOfCare.DiagnosisComponent t : src.getDiagnosis())
059      tgt.addDiagnosis(convertDiagnosisComponent(t));
060    if (src.hasPatient())
061      tgt.setPatient(Reference30_40.convertReference(src.getPatient()));
062    if (src.hasManagingOrganization())
063      tgt.setManagingOrganization(Reference30_40.convertReference(src.getManagingOrganization()));
064    if (src.hasPeriod())
065      tgt.setPeriod(Period30_40.convertPeriod(src.getPeriod()));
066    for (org.hl7.fhir.r4.model.Reference t : src.getReferralRequest())
067      tgt.addReferralRequest(Reference30_40.convertReference(t));
068    if (src.hasCareManager())
069      tgt.setCareManager(Reference30_40.convertReference(src.getCareManager()));
070    for (org.hl7.fhir.r4.model.Reference t : src.getTeam()) tgt.addTeam(Reference30_40.convertReference(t));
071    for (org.hl7.fhir.r4.model.Reference t : src.getAccount()) tgt.addAccount(Reference30_40.convertReference(t));
072    return tgt;
073  }
074
075  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.EpisodeOfCare.EpisodeOfCareStatus> convertEpisodeOfCareStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatus> src) throws FHIRException {
076      if (src == null || src.isEmpty())
077          return null;
078      Enumeration<EpisodeOfCare.EpisodeOfCareStatus> tgt = new Enumeration<>(new EpisodeOfCare.EpisodeOfCareStatusEnumFactory());
079      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
080      if (src.getValue() == null) {
081          tgt.setValue(null);
082      } else {
083          switch (src.getValue()) {
084              case PLANNED:
085                  tgt.setValue(EpisodeOfCare.EpisodeOfCareStatus.PLANNED);
086                  break;
087              case WAITLIST:
088                  tgt.setValue(EpisodeOfCare.EpisodeOfCareStatus.WAITLIST);
089                  break;
090              case ACTIVE:
091                  tgt.setValue(EpisodeOfCare.EpisodeOfCareStatus.ACTIVE);
092                  break;
093              case ONHOLD:
094                  tgt.setValue(EpisodeOfCare.EpisodeOfCareStatus.ONHOLD);
095                  break;
096              case FINISHED:
097                  tgt.setValue(EpisodeOfCare.EpisodeOfCareStatus.FINISHED);
098                  break;
099              case CANCELLED:
100                  tgt.setValue(EpisodeOfCare.EpisodeOfCareStatus.CANCELLED);
101                  break;
102              case ENTEREDINERROR:
103                  tgt.setValue(EpisodeOfCare.EpisodeOfCareStatus.ENTEREDINERROR);
104                  break;
105              default:
106                  tgt.setValue(EpisodeOfCare.EpisodeOfCareStatus.NULL);
107                  break;
108          }
109      }
110      return tgt;
111  }
112
113  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatus> convertEpisodeOfCareStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.EpisodeOfCare.EpisodeOfCareStatus> src) throws FHIRException {
114      if (src == null || src.isEmpty())
115          return null;
116      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());
117      ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
118      if (src.getValue() == null) {
119          tgt.setValue(null);
120      } else {
121          switch (src.getValue()) {
122              case PLANNED:
123                  tgt.setValue(org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatus.PLANNED);
124                  break;
125              case WAITLIST:
126                  tgt.setValue(org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatus.WAITLIST);
127                  break;
128              case ACTIVE:
129                  tgt.setValue(org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatus.ACTIVE);
130                  break;
131              case ONHOLD:
132                  tgt.setValue(org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatus.ONHOLD);
133                  break;
134              case FINISHED:
135                  tgt.setValue(org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatus.FINISHED);
136                  break;
137              case CANCELLED:
138                  tgt.setValue(org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatus.CANCELLED);
139                  break;
140              case ENTEREDINERROR:
141                  tgt.setValue(org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatus.ENTEREDINERROR);
142                  break;
143              default:
144                  tgt.setValue(org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatus.NULL);
145                  break;
146          }
147      }
148      return tgt;
149  }
150
151  public static org.hl7.fhir.r4.model.EpisodeOfCare.EpisodeOfCareStatusHistoryComponent convertEpisodeOfCareStatusHistoryComponent(org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatusHistoryComponent src) throws FHIRException {
152    if (src == null)
153      return null;
154    org.hl7.fhir.r4.model.EpisodeOfCare.EpisodeOfCareStatusHistoryComponent tgt = new org.hl7.fhir.r4.model.EpisodeOfCare.EpisodeOfCareStatusHistoryComponent();
155    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
156    if (src.hasStatus())
157      tgt.setStatusElement(convertEpisodeOfCareStatus(src.getStatusElement()));
158    if (src.hasPeriod())
159      tgt.setPeriod(Period30_40.convertPeriod(src.getPeriod()));
160    return tgt;
161  }
162
163  public static org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatusHistoryComponent convertEpisodeOfCareStatusHistoryComponent(org.hl7.fhir.r4.model.EpisodeOfCare.EpisodeOfCareStatusHistoryComponent src) throws FHIRException {
164    if (src == null)
165      return null;
166    org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatusHistoryComponent tgt = new org.hl7.fhir.dstu3.model.EpisodeOfCare.EpisodeOfCareStatusHistoryComponent();
167    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
168    if (src.hasStatus())
169      tgt.setStatusElement(convertEpisodeOfCareStatus(src.getStatusElement()));
170    if (src.hasPeriod())
171      tgt.setPeriod(Period30_40.convertPeriod(src.getPeriod()));
172    return tgt;
173  }
174
175  public static org.hl7.fhir.r4.model.EpisodeOfCare.DiagnosisComponent convertDiagnosisComponent(org.hl7.fhir.dstu3.model.EpisodeOfCare.DiagnosisComponent src) throws FHIRException {
176    if (src == null) return null;
177    org.hl7.fhir.r4.model.EpisodeOfCare.DiagnosisComponent tgt = new org.hl7.fhir.r4.model.EpisodeOfCare.DiagnosisComponent();
178    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
179    if (src.hasCondition()) tgt.setCondition(Reference30_40.convertReference(src.getCondition()));
180    if (src.hasRole()) tgt.setRole(CodeableConcept30_40.convertCodeableConcept(src.getRole()));
181    if (src.hasRank()) tgt.setRankElement(PositiveInt30_40.convertPositiveInt(src.getRankElement()));
182    return tgt;
183  }
184
185  public static org.hl7.fhir.dstu3.model.EpisodeOfCare.DiagnosisComponent convertDiagnosisComponent(org.hl7.fhir.r4.model.EpisodeOfCare.DiagnosisComponent src) throws FHIRException {
186    if (src == null) return null;
187    org.hl7.fhir.dstu3.model.EpisodeOfCare.DiagnosisComponent tgt = new org.hl7.fhir.dstu3.model.EpisodeOfCare.DiagnosisComponent();
188    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt);
189    if (src.hasCondition()) tgt.setCondition(Reference30_40.convertReference(src.getCondition()));
190    if (src.hasRole()) tgt.setRole(CodeableConcept30_40.convertCodeableConcept(src.getRole()));
191    if (src.hasRank()) tgt.setRankElement(PositiveInt30_40.convertPositiveInt(src.getRankElement()));
192    return tgt;
193  }
194}