001package org.hl7.fhir.convertors.conv30_50.resources30_50;
002
003import org.hl7.fhir.convertors.context.ConversionContext30_50;
004import org.hl7.fhir.convertors.conv30_50.datatypes30_50.Reference30_50;
005import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Annotation30_50;
006import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.CodeableConcept30_50;
007import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Identifier30_50;
008import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.SimpleQuantity30_50;
009import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Boolean30_50;
010import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Date30_50;
011import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.DateTime30_50;
012import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.String30_50;
013import org.hl7.fhir.dstu3.model.Enumeration;
014import org.hl7.fhir.dstu3.model.Immunization;
015import org.hl7.fhir.exceptions.FHIRException;
016import org.hl7.fhir.r5.model.CodeableReference;
017
018public class Immunization30_50 {
019
020  public static org.hl7.fhir.r5.model.Immunization convertImmunization(org.hl7.fhir.dstu3.model.Immunization src) throws FHIRException {
021    if (src == null)
022      return null;
023    org.hl7.fhir.r5.model.Immunization tgt = new org.hl7.fhir.r5.model.Immunization();
024    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt);
025    for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier())
026      tgt.addIdentifier(Identifier30_50.convertIdentifier(t));
027    if (src.hasStatus())
028      tgt.setStatusElement(convertImmunizationStatus(src.getStatusElement()));
029    if (src.hasVaccineCode())
030      tgt.setVaccineCode(CodeableConcept30_50.convertCodeableConcept(src.getVaccineCode()));
031    if (src.hasPatient())
032      tgt.setPatient(Reference30_50.convertReference(src.getPatient()));
033    if (src.hasEncounter())
034      tgt.setEncounter(Reference30_50.convertReference(src.getEncounter()));
035    if (src.hasDate())
036      tgt.setOccurrence(DateTime30_50.convertDateTime(src.getDateElement()));
037    if (src.hasPrimarySource())
038      tgt.setPrimarySourceElement(Boolean30_50.convertBoolean(src.getPrimarySourceElement()));
039    if (src.hasReportOrigin())
040      tgt.setInformationSource(new CodeableReference(CodeableConcept30_50.convertCodeableConcept(src.getReportOrigin())));
041    if (src.hasLocation())
042      tgt.setLocation(Reference30_50.convertReference(src.getLocation()));
043    if (src.hasManufacturer())
044      tgt.setManufacturer(Reference30_50.convertReferenceToCodableReference(src.getManufacturer()));
045    if (src.hasLotNumber())
046      tgt.setLotNumberElement(String30_50.convertString(src.getLotNumberElement()));
047    if (src.hasExpirationDate())
048      tgt.setExpirationDateElement(Date30_50.convertDate(src.getExpirationDateElement()));
049    if (src.hasSite())
050      tgt.setSite(CodeableConcept30_50.convertCodeableConcept(src.getSite()));
051    if (src.hasRoute())
052      tgt.setRoute(CodeableConcept30_50.convertCodeableConcept(src.getRoute()));
053    if (src.hasDoseQuantity())
054      tgt.setDoseQuantity(SimpleQuantity30_50.convertSimpleQuantity(src.getDoseQuantity()));
055    for (org.hl7.fhir.dstu3.model.Immunization.ImmunizationPractitionerComponent t : src.getPractitioner())
056      tgt.addPerformer(convertImmunizationPractitionerComponent(t));
057    for (org.hl7.fhir.dstu3.model.Annotation t : src.getNote()) tgt.addNote(Annotation30_50.convertAnnotation(t));
058    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getExplanation().getReason())
059      tgt.addReason(Reference30_50.convertCodeableConceptToCodableReference(t));
060    return tgt;
061  }
062
063  public static org.hl7.fhir.dstu3.model.Immunization convertImmunization(org.hl7.fhir.r5.model.Immunization src) throws FHIRException {
064    if (src == null)
065      return null;
066    org.hl7.fhir.dstu3.model.Immunization tgt = new org.hl7.fhir.dstu3.model.Immunization();
067    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt);
068    for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier())
069      tgt.addIdentifier(Identifier30_50.convertIdentifier(t));
070    if (src.hasStatus())
071      tgt.setStatusElement(convertImmunizationStatus(src.getStatusElement()));
072    if (src.hasVaccineCode())
073      tgt.setVaccineCode(CodeableConcept30_50.convertCodeableConcept(src.getVaccineCode()));
074    if (src.hasPatient())
075      tgt.setPatient(Reference30_50.convertReference(src.getPatient()));
076    if (src.hasEncounter())
077      tgt.setEncounter(Reference30_50.convertReference(src.getEncounter()));
078    if (src.hasOccurrenceDateTimeType())
079      tgt.setDateElement(DateTime30_50.convertDateTime(src.getOccurrenceDateTimeType()));
080    if (src.hasPrimarySource())
081      tgt.setPrimarySourceElement(Boolean30_50.convertBoolean(src.getPrimarySourceElement()));
082    if (src.getInformationSource().hasConcept())
083      tgt.setReportOrigin(CodeableConcept30_50.convertCodeableConcept(src.getInformationSource().getConcept()));
084    if (src.hasLocation())
085      tgt.setLocation(Reference30_50.convertReference(src.getLocation()));
086    if (src.hasManufacturer())
087      tgt.setManufacturer(Reference30_50.convertCodeableReferenceToReference(src.getManufacturer()));
088    if (src.hasLotNumber())
089      tgt.setLotNumberElement(String30_50.convertString(src.getLotNumberElement()));
090    if (src.hasExpirationDate())
091      tgt.setExpirationDateElement(Date30_50.convertDate(src.getExpirationDateElement()));
092    if (src.hasSite())
093      tgt.setSite(CodeableConcept30_50.convertCodeableConcept(src.getSite()));
094    if (src.hasRoute())
095      tgt.setRoute(CodeableConcept30_50.convertCodeableConcept(src.getRoute()));
096    if (src.hasDoseQuantity())
097      tgt.setDoseQuantity(SimpleQuantity30_50.convertSimpleQuantity(src.getDoseQuantity()));
098    for (org.hl7.fhir.r5.model.Immunization.ImmunizationPerformerComponent t : src.getPerformer())
099      tgt.addPractitioner(convertImmunizationPractitionerComponent(t));
100    for (org.hl7.fhir.r5.model.Annotation t : src.getNote()) tgt.addNote(Annotation30_50.convertAnnotation(t));
101    for (CodeableReference t : src.getReason())
102      if (t.hasConcept())
103        tgt.getExplanation().addReason(CodeableConcept30_50.convertCodeableConcept(t.getConcept()));
104    return tgt;
105  }
106
107  public static org.hl7.fhir.dstu3.model.Immunization.ImmunizationPractitionerComponent convertImmunizationPractitionerComponent(org.hl7.fhir.r5.model.Immunization.ImmunizationPerformerComponent src) throws FHIRException {
108    if (src == null)
109      return null;
110    org.hl7.fhir.dstu3.model.Immunization.ImmunizationPractitionerComponent tgt = new org.hl7.fhir.dstu3.model.Immunization.ImmunizationPractitionerComponent();
111    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
112    if (src.hasFunction())
113      tgt.setRole(CodeableConcept30_50.convertCodeableConcept(src.getFunction()));
114    if (src.hasActor())
115      tgt.setActor(Reference30_50.convertReference(src.getActor()));
116    return tgt;
117  }
118
119  public static org.hl7.fhir.r5.model.Immunization.ImmunizationPerformerComponent convertImmunizationPractitionerComponent(org.hl7.fhir.dstu3.model.Immunization.ImmunizationPractitionerComponent src) throws FHIRException {
120    if (src == null)
121      return null;
122    org.hl7.fhir.r5.model.Immunization.ImmunizationPerformerComponent tgt = new org.hl7.fhir.r5.model.Immunization.ImmunizationPerformerComponent();
123    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
124    if (src.hasRole())
125      tgt.setFunction(CodeableConcept30_50.convertCodeableConcept(src.getRole()));
126    if (src.hasActor())
127      tgt.setActor(Reference30_50.convertReference(src.getActor()));
128    return tgt;
129  }
130
131  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Immunization.ImmunizationStatus> convertImmunizationStatus(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Immunization.ImmunizationStatusCodes> src) throws FHIRException {
132      if (src == null || src.isEmpty())
133          return null;
134      Enumeration<Immunization.ImmunizationStatus> tgt = new Enumeration<>(new Immunization.ImmunizationStatusEnumFactory());
135      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
136      if (src.getValue() == null) {
137          tgt.setValue(null);
138      } else {
139          switch (src.getValue()) {
140              case COMPLETED:
141                  tgt.setValue(Immunization.ImmunizationStatus.COMPLETED);
142                  break;
143              case ENTEREDINERROR:
144                  tgt.setValue(Immunization.ImmunizationStatus.ENTEREDINERROR);
145                  break;
146              default:
147                  tgt.setValue(Immunization.ImmunizationStatus.NULL);
148                  break;
149          }
150      }
151      return tgt;
152  }
153
154  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Immunization.ImmunizationStatusCodes> convertImmunizationStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Immunization.ImmunizationStatus> src) throws FHIRException {
155      if (src == null || src.isEmpty())
156          return null;
157      org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Immunization.ImmunizationStatusCodes> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.Immunization.ImmunizationStatusCodesEnumFactory());
158      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
159      if (src.getValue() == null) {
160          tgt.setValue(null);
161      } else {
162          switch (src.getValue()) {
163              case COMPLETED:
164                  tgt.setValue(org.hl7.fhir.r5.model.Immunization.ImmunizationStatusCodes.COMPLETED);
165                  break;
166              case ENTEREDINERROR:
167                  tgt.setValue(org.hl7.fhir.r5.model.Immunization.ImmunizationStatusCodes.ENTEREDINERROR);
168                  break;
169              default:
170                  tgt.setValue(org.hl7.fhir.r5.model.Immunization.ImmunizationStatusCodes.NULL);
171                  break;
172          }
173      }
174      return tgt;
175  }
176}