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