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.Annotation10_30; 006import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.CodeableConcept10_30; 007import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.Identifier10_30; 008import org.hl7.fhir.convertors.conv10_30.datatypes10_30.complextypes10_30.SimpleQuantity10_30; 009import org.hl7.fhir.convertors.conv10_30.datatypes10_30.primitivetypes10_30.*; 010import org.hl7.fhir.dstu3.model.Coding; 011import org.hl7.fhir.dstu3.model.Immunization.ImmunizationPractitionerComponent; 012import org.hl7.fhir.exceptions.FHIRException; 013 014import java.util.List; 015 016public class Immunization10_30 { 017 018 public static org.hl7.fhir.dstu2.model.Immunization convertImmunization(org.hl7.fhir.dstu3.model.Immunization src) throws FHIRException { 019 if (src == null || src.isEmpty()) 020 return null; 021 org.hl7.fhir.dstu2.model.Immunization tgt = new org.hl7.fhir.dstu2.model.Immunization(); 022 ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt); 023 for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier()) 024 tgt.addIdentifier(Identifier10_30.convertIdentifier(t)); 025 tgt.setStatus(src.getStatus().toCode()); 026 if (src.hasDate()) 027 tgt.setDateElement(DateTime10_30.convertDateTime(src.getDateElement())); 028 if (src.hasVaccineCode()) 029 tgt.setVaccineCode(CodeableConcept10_30.convertCodeableConcept(src.getVaccineCode())); 030 if (src.hasPatient()) 031 tgt.setPatient(Reference10_30.convertReference(src.getPatient())); 032 if (src.hasNotGivenElement()) 033 tgt.setWasNotGivenElement(Boolean10_30.convertBoolean(src.getNotGivenElement())); 034 tgt.setReported(!src.getPrimarySource()); 035 tgt.setPerformer(Reference10_30.convertReference(getPerformer(src.getPractitioner()))); 036 tgt.setRequester(Reference10_30.convertReference(getRequester(src.getPractitioner()))); 037 if (src.hasEncounter()) 038 tgt.setEncounter(Reference10_30.convertReference(src.getEncounter())); 039 if (src.hasManufacturer()) 040 tgt.setManufacturer(Reference10_30.convertReference(src.getManufacturer())); 041 if (src.hasLocation()) 042 tgt.setLocation(Reference10_30.convertReference(src.getLocation())); 043 if (src.hasLotNumberElement()) 044 tgt.setLotNumberElement(String10_30.convertString(src.getLotNumberElement())); 045 if (src.hasExpirationDateElement()) 046 tgt.setExpirationDateElement(Date10_30.convertDate(src.getExpirationDateElement())); 047 if (src.hasSite()) 048 tgt.setSite(CodeableConcept10_30.convertCodeableConcept(src.getSite())); 049 if (src.hasRoute()) 050 tgt.setRoute(CodeableConcept10_30.convertCodeableConcept(src.getRoute())); 051 if (src.hasDoseQuantity()) 052 tgt.setDoseQuantity(SimpleQuantity10_30.convertSimpleQuantity(src.getDoseQuantity())); 053 for (org.hl7.fhir.dstu3.model.Annotation t : src.getNote()) tgt.addNote(Annotation10_30.convertAnnotation(t)); 054 if (src.hasExplanation()) 055 tgt.setExplanation(convertImmunizationExplanationComponent(src.getExplanation())); 056 for (org.hl7.fhir.dstu3.model.Immunization.ImmunizationReactionComponent t : src.getReaction()) 057 tgt.addReaction(convertImmunizationReactionComponent(t)); 058 for (org.hl7.fhir.dstu3.model.Immunization.ImmunizationVaccinationProtocolComponent t : src.getVaccinationProtocol()) 059 tgt.addVaccinationProtocol(convertImmunizationVaccinationProtocolComponent(t)); 060 return tgt; 061 } 062 063 public static org.hl7.fhir.dstu3.model.Immunization convertImmunization(org.hl7.fhir.dstu2.model.Immunization src) throws FHIRException { 064 if (src == null || src.isEmpty()) 065 return null; 066 org.hl7.fhir.dstu3.model.Immunization tgt = new org.hl7.fhir.dstu3.model.Immunization(); 067 ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyDomainResource(src, tgt); 068 for (org.hl7.fhir.dstu2.model.Identifier t : src.getIdentifier()) 069 tgt.addIdentifier(Identifier10_30.convertIdentifier(t)); 070 try { 071 if (src.hasStatus()) 072 tgt.setStatus(org.hl7.fhir.dstu3.model.Immunization.ImmunizationStatus.fromCode(src.getStatus())); 073 } catch (org.hl7.fhir.exceptions.FHIRException e) { 074 throw new FHIRException(e); 075 } 076 if (src.hasDate()) 077 tgt.setDateElement(DateTime10_30.convertDateTime(src.getDateElement())); 078 if (src.hasVaccineCode()) 079 tgt.setVaccineCode(CodeableConcept10_30.convertCodeableConcept(src.getVaccineCode())); 080 if (src.hasPatient()) 081 tgt.setPatient(Reference10_30.convertReference(src.getPatient())); 082 if (src.hasWasNotGivenElement()) 083 tgt.setNotGivenElement(Boolean10_30.convertBoolean(src.getWasNotGivenElement())); 084 tgt.setPrimarySource(!src.getReported()); 085 if (src.hasPerformer()) 086 tgt.addPractitioner().setActor(Reference10_30.convertReference(src.getPerformer())).setRole(new org.hl7.fhir.dstu3.model.CodeableConcept().addCoding(new Coding().setSystem("http://hl7.org/fhir/v2/0443").setCode("AP"))); 087 if (src.hasRequester()) 088 tgt.addPractitioner().setActor(Reference10_30.convertReference(src.getRequester())).setRole(new org.hl7.fhir.dstu3.model.CodeableConcept().addCoding(new Coding().setSystem("http://hl7.org/fhir/v2/0443").setCode("OP"))); 089 if (src.hasEncounter()) 090 tgt.setEncounter(Reference10_30.convertReference(src.getEncounter())); 091 if (src.hasManufacturer()) 092 tgt.setManufacturer(Reference10_30.convertReference(src.getManufacturer())); 093 if (src.hasLocation()) 094 tgt.setLocation(Reference10_30.convertReference(src.getLocation())); 095 if (src.hasLotNumberElement()) 096 tgt.setLotNumberElement(String10_30.convertString(src.getLotNumberElement())); 097 if (src.hasExpirationDateElement()) 098 tgt.setExpirationDateElement(Date10_30.convertDate(src.getExpirationDateElement())); 099 if (src.hasSite()) 100 tgt.setSite(CodeableConcept10_30.convertCodeableConcept(src.getSite())); 101 if (src.hasRoute()) 102 tgt.setRoute(CodeableConcept10_30.convertCodeableConcept(src.getRoute())); 103 if (src.hasDoseQuantity()) 104 tgt.setDoseQuantity(SimpleQuantity10_30.convertSimpleQuantity(src.getDoseQuantity())); 105 for (org.hl7.fhir.dstu2.model.Annotation t : src.getNote()) tgt.addNote(Annotation10_30.convertAnnotation(t)); 106 if (src.hasExplanation()) 107 tgt.setExplanation(convertImmunizationExplanationComponent(src.getExplanation())); 108 for (org.hl7.fhir.dstu2.model.Immunization.ImmunizationReactionComponent t : src.getReaction()) 109 tgt.addReaction(convertImmunizationReactionComponent(t)); 110 for (org.hl7.fhir.dstu2.model.Immunization.ImmunizationVaccinationProtocolComponent t : src.getVaccinationProtocol()) 111 tgt.addVaccinationProtocol(convertImmunizationVaccinationProtocolComponent(t)); 112 return tgt; 113 } 114 115 public static org.hl7.fhir.dstu2.model.Immunization.ImmunizationExplanationComponent convertImmunizationExplanationComponent(org.hl7.fhir.dstu3.model.Immunization.ImmunizationExplanationComponent src) throws FHIRException { 116 if (src == null || src.isEmpty()) 117 return null; 118 org.hl7.fhir.dstu2.model.Immunization.ImmunizationExplanationComponent tgt = new org.hl7.fhir.dstu2.model.Immunization.ImmunizationExplanationComponent(); 119 ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt); 120 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getReason()) 121 tgt.addReason(CodeableConcept10_30.convertCodeableConcept(t)); 122 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getReasonNotGiven()) 123 tgt.addReasonNotGiven(CodeableConcept10_30.convertCodeableConcept(t)); 124 return tgt; 125 } 126 127 public static org.hl7.fhir.dstu3.model.Immunization.ImmunizationExplanationComponent convertImmunizationExplanationComponent(org.hl7.fhir.dstu2.model.Immunization.ImmunizationExplanationComponent src) throws FHIRException { 128 if (src == null || src.isEmpty()) 129 return null; 130 org.hl7.fhir.dstu3.model.Immunization.ImmunizationExplanationComponent tgt = new org.hl7.fhir.dstu3.model.Immunization.ImmunizationExplanationComponent(); 131 ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt); 132 for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getReason()) 133 tgt.addReason(CodeableConcept10_30.convertCodeableConcept(t)); 134 for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getReasonNotGiven()) 135 tgt.addReasonNotGiven(CodeableConcept10_30.convertCodeableConcept(t)); 136 return tgt; 137 } 138 139 public static org.hl7.fhir.dstu3.model.Immunization.ImmunizationReactionComponent convertImmunizationReactionComponent(org.hl7.fhir.dstu2.model.Immunization.ImmunizationReactionComponent src) throws FHIRException { 140 if (src == null || src.isEmpty()) 141 return null; 142 org.hl7.fhir.dstu3.model.Immunization.ImmunizationReactionComponent tgt = new org.hl7.fhir.dstu3.model.Immunization.ImmunizationReactionComponent(); 143 ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt); 144 if (src.hasDate()) 145 tgt.setDateElement(DateTime10_30.convertDateTime(src.getDateElement())); 146 if (src.hasDetail()) 147 tgt.setDetail(Reference10_30.convertReference(src.getDetail())); 148 if (src.hasReportedElement()) 149 tgt.setReportedElement(Boolean10_30.convertBoolean(src.getReportedElement())); 150 return tgt; 151 } 152 153 public static org.hl7.fhir.dstu2.model.Immunization.ImmunizationReactionComponent convertImmunizationReactionComponent(org.hl7.fhir.dstu3.model.Immunization.ImmunizationReactionComponent src) throws FHIRException { 154 if (src == null || src.isEmpty()) 155 return null; 156 org.hl7.fhir.dstu2.model.Immunization.ImmunizationReactionComponent tgt = new org.hl7.fhir.dstu2.model.Immunization.ImmunizationReactionComponent(); 157 ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt); 158 if (src.hasDate()) 159 tgt.setDateElement(DateTime10_30.convertDateTime(src.getDateElement())); 160 if (src.hasDetail()) 161 tgt.setDetail(Reference10_30.convertReference(src.getDetail())); 162 if (src.hasReportedElement()) 163 tgt.setReportedElement(Boolean10_30.convertBoolean(src.getReportedElement())); 164 return tgt; 165 } 166 167 public static org.hl7.fhir.dstu2.model.Immunization.ImmunizationVaccinationProtocolComponent convertImmunizationVaccinationProtocolComponent(org.hl7.fhir.dstu3.model.Immunization.ImmunizationVaccinationProtocolComponent src) throws FHIRException { 168 if (src == null || src.isEmpty()) 169 return null; 170 org.hl7.fhir.dstu2.model.Immunization.ImmunizationVaccinationProtocolComponent tgt = new org.hl7.fhir.dstu2.model.Immunization.ImmunizationVaccinationProtocolComponent(); 171 ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt); 172 if (src.hasDoseSequenceElement()) 173 tgt.setDoseSequenceElement(PositiveInt10_30.convertPositiveInt(src.getDoseSequenceElement())); 174 if (src.hasDescriptionElement()) 175 tgt.setDescriptionElement(String10_30.convertString(src.getDescriptionElement())); 176 if (src.hasAuthority()) 177 tgt.setAuthority(Reference10_30.convertReference(src.getAuthority())); 178 if (src.hasSeriesElement()) 179 tgt.setSeriesElement(String10_30.convertString(src.getSeriesElement())); 180 if (src.hasSeriesDosesElement()) 181 tgt.setSeriesDosesElement(PositiveInt10_30.convertPositiveInt(src.getSeriesDosesElement())); 182 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getTargetDisease()) 183 tgt.addTargetDisease(CodeableConcept10_30.convertCodeableConcept(t)); 184 if (src.hasDoseStatus()) 185 tgt.setDoseStatus(CodeableConcept10_30.convertCodeableConcept(src.getDoseStatus())); 186 if (src.hasDoseStatusReason()) 187 tgt.setDoseStatusReason(CodeableConcept10_30.convertCodeableConcept(src.getDoseStatusReason())); 188 return tgt; 189 } 190 191 public static org.hl7.fhir.dstu3.model.Immunization.ImmunizationVaccinationProtocolComponent convertImmunizationVaccinationProtocolComponent(org.hl7.fhir.dstu2.model.Immunization.ImmunizationVaccinationProtocolComponent src) throws FHIRException { 192 if (src == null || src.isEmpty()) 193 return null; 194 org.hl7.fhir.dstu3.model.Immunization.ImmunizationVaccinationProtocolComponent tgt = new org.hl7.fhir.dstu3.model.Immunization.ImmunizationVaccinationProtocolComponent(); 195 ConversionContext10_30.INSTANCE.getVersionConvertor_10_30().copyElement(src, tgt); 196 if (src.hasDoseSequenceElement()) 197 tgt.setDoseSequenceElement(PositiveInt10_30.convertPositiveInt(src.getDoseSequenceElement())); 198 if (src.hasDescriptionElement()) 199 tgt.setDescriptionElement(String10_30.convertString(src.getDescriptionElement())); 200 if (src.hasAuthority()) 201 tgt.setAuthority(Reference10_30.convertReference(src.getAuthority())); 202 if (src.hasSeriesElement()) 203 tgt.setSeriesElement(String10_30.convertString(src.getSeriesElement())); 204 if (src.hasSeriesDosesElement()) 205 tgt.setSeriesDosesElement(PositiveInt10_30.convertPositiveInt(src.getSeriesDosesElement())); 206 for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getTargetDisease()) 207 tgt.addTargetDisease(CodeableConcept10_30.convertCodeableConcept(t)); 208 if (src.hasDoseStatus()) 209 tgt.setDoseStatus(CodeableConcept10_30.convertCodeableConcept(src.getDoseStatus())); 210 if (src.hasDoseStatusReason()) 211 tgt.setDoseStatusReason(CodeableConcept10_30.convertCodeableConcept(src.getDoseStatusReason())); 212 return tgt; 213 } 214 215 static public org.hl7.fhir.dstu3.model.Reference getPerformer(List<ImmunizationPractitionerComponent> practitioner) { 216 for (ImmunizationPractitionerComponent p : practitioner) { 217 if (CodeableConcept10_30.hasConcept(p.getRole(), "http://hl7.org/fhir/v2/0443", "AP")) 218 return p.getActor(); 219 } 220 return null; 221 } 222 223 static public org.hl7.fhir.dstu3.model.Reference getRequester(List<ImmunizationPractitionerComponent> practitioner) { 224 for (ImmunizationPractitionerComponent p : practitioner) { 225 if (CodeableConcept10_30.hasConcept(p.getRole(), "http://hl7.org/fhir/v2/0443", "OP")) 226 return p.getActor(); 227 } 228 return null; 229 } 230}