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