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.Annotation30_40;
006import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.CodeableConcept30_40;
007import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Identifier30_40;
008import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.SimpleQuantity30_40;
009import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Boolean30_40;
010import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.Date30_40;
011import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.DateTime30_40;
012import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.String30_40;
013import org.hl7.fhir.exceptions.FHIRException;
014
015public class Immunization30_40 {
016
017  public static org.hl7.fhir.r4.model.Immunization convertImmunization(org.hl7.fhir.dstu3.model.Immunization src) throws FHIRException {
018    if (src == null)
019      return null;
020    org.hl7.fhir.r4.model.Immunization tgt = new org.hl7.fhir.r4.model.Immunization();
021    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
022    for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier())
023      tgt.addIdentifier(Identifier30_40.convertIdentifier(t));
024    if (src.hasStatus())
025      tgt.setStatusElement(convertImmunizationStatus(src.getStatusElement()));
026    if (src.hasVaccineCode())
027      tgt.setVaccineCode(CodeableConcept30_40.convertCodeableConcept(src.getVaccineCode()));
028    if (src.hasPatient())
029      tgt.setPatient(Reference30_40.convertReference(src.getPatient()));
030    if (src.hasEncounter())
031      tgt.setEncounter(Reference30_40.convertReference(src.getEncounter()));
032    if (src.hasDateElement())
033      tgt.setOccurrence(DateTime30_40.convertDateTime(src.getDateElement()));
034    if (src.hasPrimarySource())
035      tgt.setPrimarySourceElement(Boolean30_40.convertBoolean(src.getPrimarySourceElement()));
036    if (src.hasReportOrigin())
037      tgt.setReportOrigin(CodeableConcept30_40.convertCodeableConcept(src.getReportOrigin()));
038    if (src.hasLocation())
039      tgt.setLocation(Reference30_40.convertReference(src.getLocation()));
040    if (src.hasManufacturer())
041      tgt.setManufacturer(Reference30_40.convertReference(src.getManufacturer()));
042    if (src.hasLotNumber())
043      tgt.setLotNumberElement(String30_40.convertString(src.getLotNumberElement()));
044    if (src.hasExpirationDate())
045      tgt.setExpirationDateElement(Date30_40.convertDate(src.getExpirationDateElement()));
046    if (src.hasSite())
047      tgt.setSite(CodeableConcept30_40.convertCodeableConcept(src.getSite()));
048    if (src.hasRoute())
049      tgt.setRoute(CodeableConcept30_40.convertCodeableConcept(src.getRoute()));
050    if (src.hasDoseQuantity())
051      tgt.setDoseQuantity(SimpleQuantity30_40.convertSimpleQuantity(src.getDoseQuantity()));
052    for (org.hl7.fhir.dstu3.model.Immunization.ImmunizationPractitionerComponent t : src.getPractitioner())
053      tgt.addPerformer(convertImmunizationPractitionerComponent(t));
054    for (org.hl7.fhir.dstu3.model.Annotation t : src.getNote()) tgt.addNote(Annotation30_40.convertAnnotation(t));
055    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getExplanation().getReason())
056      tgt.addReasonCode(CodeableConcept30_40.convertCodeableConcept(t));
057    return tgt;
058  }
059
060  public static org.hl7.fhir.dstu3.model.Immunization convertImmunization(org.hl7.fhir.r4.model.Immunization src) throws FHIRException {
061    if (src == null)
062      return null;
063    org.hl7.fhir.dstu3.model.Immunization tgt = new org.hl7.fhir.dstu3.model.Immunization();
064    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt);
065    for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier())
066      tgt.addIdentifier(Identifier30_40.convertIdentifier(t));
067    if (src.hasStatus())
068      tgt.setStatusElement(convertImmunizationStatus(src.getStatusElement()));
069    if (src.hasVaccineCode())
070      tgt.setVaccineCode(CodeableConcept30_40.convertCodeableConcept(src.getVaccineCode()));
071    if (src.hasPatient())
072      tgt.setPatient(Reference30_40.convertReference(src.getPatient()));
073    if (src.hasEncounter())
074      tgt.setEncounter(Reference30_40.convertReference(src.getEncounter()));
075    if (src.hasOccurrenceDateTimeType())
076      tgt.setDateElement(DateTime30_40.convertDateTime(src.getOccurrenceDateTimeType()));
077    if (src.hasPrimarySource())
078      tgt.setPrimarySourceElement(Boolean30_40.convertBoolean(src.getPrimarySourceElement()));
079    if (src.hasReportOrigin())
080      tgt.setReportOrigin(CodeableConcept30_40.convertCodeableConcept(src.getReportOrigin()));
081    if (src.hasLocation())
082      tgt.setLocation(Reference30_40.convertReference(src.getLocation()));
083    if (src.hasManufacturer())
084      tgt.setManufacturer(Reference30_40.convertReference(src.getManufacturer()));
085    if (src.hasLotNumber())
086      tgt.setLotNumberElement(String30_40.convertString(src.getLotNumberElement()));
087    if (src.hasExpirationDate())
088      tgt.setExpirationDateElement(Date30_40.convertDate(src.getExpirationDateElement()));
089    if (src.hasSite())
090      tgt.setSite(CodeableConcept30_40.convertCodeableConcept(src.getSite()));
091    if (src.hasRoute())
092      tgt.setRoute(CodeableConcept30_40.convertCodeableConcept(src.getRoute()));
093    if (src.hasDoseQuantity())
094      tgt.setDoseQuantity(SimpleQuantity30_40.convertSimpleQuantity(src.getDoseQuantity()));
095    for (org.hl7.fhir.r4.model.Immunization.ImmunizationPerformerComponent t : src.getPerformer())
096      tgt.addPractitioner(convertImmunizationPractitionerComponent(t));
097    for (org.hl7.fhir.r4.model.Annotation t : src.getNote()) tgt.addNote(Annotation30_40.convertAnnotation(t));
098    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getReasonCode())
099      tgt.getExplanation().addReason(CodeableConcept30_40.convertCodeableConcept(t));
100    return tgt;
101  }
102
103  public static org.hl7.fhir.dstu3.model.Immunization.ImmunizationPractitionerComponent convertImmunizationPractitionerComponent(org.hl7.fhir.r4.model.Immunization.ImmunizationPerformerComponent src) throws FHIRException {
104    if (src == null)
105      return null;
106    org.hl7.fhir.dstu3.model.Immunization.ImmunizationPractitionerComponent tgt = new org.hl7.fhir.dstu3.model.Immunization.ImmunizationPractitionerComponent();
107    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
108    if (src.hasFunction())
109      tgt.setRole(CodeableConcept30_40.convertCodeableConcept(src.getFunction()));
110    if (src.hasActor())
111      tgt.setActor(Reference30_40.convertReference(src.getActor()));
112    return tgt;
113  }
114
115  public static org.hl7.fhir.r4.model.Immunization.ImmunizationPerformerComponent convertImmunizationPractitionerComponent(org.hl7.fhir.dstu3.model.Immunization.ImmunizationPractitionerComponent src) throws FHIRException {
116    if (src == null)
117      return null;
118    org.hl7.fhir.r4.model.Immunization.ImmunizationPerformerComponent tgt = new org.hl7.fhir.r4.model.Immunization.ImmunizationPerformerComponent();
119    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
120    if (src.hasRole())
121      tgt.setFunction(CodeableConcept30_40.convertCodeableConcept(src.getRole()));
122    if (src.hasActor())
123      tgt.setActor(Reference30_40.convertReference(src.getActor()));
124    return tgt;
125  }
126
127  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Immunization.ImmunizationStatus> convertImmunizationStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Immunization.ImmunizationStatus> src) throws FHIRException {
128    if (src == null || src.isEmpty())
129      return null;
130    org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Immunization.ImmunizationStatus> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.Immunization.ImmunizationStatusEnumFactory());
131    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
132    switch (src.getValue()) {
133      case COMPLETED:
134        tgt.setValue(org.hl7.fhir.dstu3.model.Immunization.ImmunizationStatus.COMPLETED);
135        break;
136      case ENTEREDINERROR:
137        tgt.setValue(org.hl7.fhir.dstu3.model.Immunization.ImmunizationStatus.ENTEREDINERROR);
138        break;
139      default:
140        tgt.setValue(org.hl7.fhir.dstu3.model.Immunization.ImmunizationStatus.NULL);
141        break;
142    }
143    return tgt;
144  }
145
146  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Immunization.ImmunizationStatus> convertImmunizationStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Immunization.ImmunizationStatus> src) throws FHIRException {
147    if (src == null || src.isEmpty())
148      return null;
149    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Immunization.ImmunizationStatus> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.Immunization.ImmunizationStatusEnumFactory());
150    ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyElement(src, tgt);
151    switch (src.getValue()) {
152      case COMPLETED:
153        tgt.setValue(org.hl7.fhir.r4.model.Immunization.ImmunizationStatus.COMPLETED);
154        break;
155      case ENTEREDINERROR:
156        tgt.setValue(org.hl7.fhir.r4.model.Immunization.ImmunizationStatus.ENTEREDINERROR);
157        break;
158      default:
159        tgt.setValue(org.hl7.fhir.r4.model.Immunization.ImmunizationStatus.NULL);
160        break;
161    }
162    return tgt;
163  }
164}