001package org.hl7.fhir.convertors.conv10_40.resources10_40; 002 003import org.hl7.fhir.convertors.context.ConversionContext10_40; 004import org.hl7.fhir.convertors.conv10_40.datatypes10_40.Reference10_40; 005import org.hl7.fhir.convertors.conv10_40.datatypes10_40.complextypes10_40.*; 006import org.hl7.fhir.convertors.conv10_40.datatypes10_40.primitivetypes10_40.DateTime10_40; 007import org.hl7.fhir.convertors.conv10_40.datatypes10_40.primitivetypes10_40.String10_40; 008import org.hl7.fhir.exceptions.FHIRException; 009import org.hl7.fhir.r4.model.Dosage; 010import org.hl7.fhir.r4.model.Dosage.DosageDoseAndRateComponent; 011 012public class MedicationDispense10_40 { 013 014 public static org.hl7.fhir.r4.model.MedicationDispense convertMedicationDispense(org.hl7.fhir.dstu2.model.MedicationDispense src) throws FHIRException { 015 if (src == null || src.isEmpty()) 016 return null; 017 org.hl7.fhir.r4.model.MedicationDispense tgt = new org.hl7.fhir.r4.model.MedicationDispense(); 018 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyDomainResource(src, tgt); 019 if (src.hasIdentifier()) 020 tgt.addIdentifier(Identifier10_40.convertIdentifier(src.getIdentifier())); 021 if (src.hasStatus()) 022 tgt.setStatusElement(convertMedicationDispenseStatus(src.getStatusElement())); 023 if (src.hasMedication()) 024 tgt.setMedication(ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().convertType(src.getMedication())); 025 if (src.hasPatient()) 026 tgt.setSubject(Reference10_40.convertReference(src.getPatient())); 027 for (org.hl7.fhir.dstu2.model.Reference t : src.getAuthorizingPrescription()) 028 tgt.addAuthorizingPrescription(Reference10_40.convertReference(t)); 029 if (src.hasType()) 030 tgt.setType(CodeableConcept10_40.convertCodeableConcept(src.getType())); 031 if (src.hasQuantity()) 032 tgt.setQuantity(SimpleQuantity10_40.convertSimpleQuantity(src.getQuantity())); 033 if (src.hasDaysSupply()) 034 tgt.setDaysSupply(SimpleQuantity10_40.convertSimpleQuantity(src.getDaysSupply())); 035 if (src.hasWhenPreparedElement()) 036 tgt.setWhenPreparedElement(DateTime10_40.convertDateTime(src.getWhenPreparedElement())); 037 if (src.hasWhenHandedOverElement()) 038 tgt.setWhenHandedOverElement(DateTime10_40.convertDateTime(src.getWhenHandedOverElement())); 039 if (src.hasDestination()) 040 tgt.setDestination(Reference10_40.convertReference(src.getDestination())); 041 for (org.hl7.fhir.dstu2.model.Reference t : src.getReceiver()) tgt.addReceiver(Reference10_40.convertReference(t)); 042 if (src.hasNote()) 043 tgt.addNote().setText(src.getNote()); 044 for (org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseDosageInstructionComponent t : src.getDosageInstruction()) 045 tgt.addDosageInstruction(convertMedicationDispenseDosageInstructionComponent(t)); 046 if (src.hasSubstitution()) 047 tgt.setSubstitution(convertMedicationDispenseSubstitutionComponent(src.getSubstitution())); 048 return tgt; 049 } 050 051 public static org.hl7.fhir.dstu2.model.MedicationDispense convertMedicationDispense(org.hl7.fhir.r4.model.MedicationDispense src) throws FHIRException { 052 if (src == null || src.isEmpty()) 053 return null; 054 org.hl7.fhir.dstu2.model.MedicationDispense tgt = new org.hl7.fhir.dstu2.model.MedicationDispense(); 055 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyDomainResource(src, tgt); 056 if (src.hasIdentifier()) 057 tgt.setIdentifier(Identifier10_40.convertIdentifier(src.getIdentifierFirstRep())); 058 if (src.hasStatus()) 059 tgt.setStatusElement(convertMedicationDispenseStatus(src.getStatusElement())); 060 if (src.hasMedication()) 061 tgt.setMedication(ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().convertType(src.getMedication())); 062 if (src.hasSubject()) 063 tgt.setPatient(Reference10_40.convertReference(src.getSubject())); 064 for (org.hl7.fhir.r4.model.Reference t : src.getAuthorizingPrescription()) 065 tgt.addAuthorizingPrescription(Reference10_40.convertReference(t)); 066 if (src.hasType()) 067 tgt.setType(CodeableConcept10_40.convertCodeableConcept(src.getType())); 068 if (src.hasQuantity()) 069 tgt.setQuantity(SimpleQuantity10_40.convertSimpleQuantity(src.getQuantity())); 070 if (src.hasDaysSupply()) 071 tgt.setDaysSupply(SimpleQuantity10_40.convertSimpleQuantity(src.getDaysSupply())); 072 if (src.hasWhenPreparedElement()) 073 tgt.setWhenPreparedElement(DateTime10_40.convertDateTime(src.getWhenPreparedElement())); 074 if (src.hasWhenHandedOverElement()) 075 tgt.setWhenHandedOverElement(DateTime10_40.convertDateTime(src.getWhenHandedOverElement())); 076 if (src.hasDestination()) 077 tgt.setDestination(Reference10_40.convertReference(src.getDestination())); 078 for (org.hl7.fhir.r4.model.Reference t : src.getReceiver()) tgt.addReceiver(Reference10_40.convertReference(t)); 079 for (org.hl7.fhir.r4.model.Annotation t : src.getNote()) tgt.setNote(t.getText()); 080 for (org.hl7.fhir.r4.model.Dosage t : src.getDosageInstruction()) 081 tgt.addDosageInstruction(convertMedicationDispenseDosageInstructionComponent(t)); 082 if (src.hasSubstitution()) 083 tgt.setSubstitution(convertMedicationDispenseSubstitutionComponent(src.getSubstitution())); 084 return tgt; 085 } 086 087 public static org.hl7.fhir.r4.model.Dosage convertMedicationDispenseDosageInstructionComponent(org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseDosageInstructionComponent src) throws FHIRException { 088 if (src == null || src.isEmpty()) 089 return null; 090 org.hl7.fhir.r4.model.Dosage tgt = new org.hl7.fhir.r4.model.Dosage(); 091 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyElement(src, tgt); 092 if (src.hasTextElement()) 093 tgt.setTextElement(String10_40.convertString(src.getTextElement())); 094 if (src.hasTiming()) 095 tgt.setTiming(Timing10_40.convertTiming(src.getTiming())); 096 if (src.hasAsNeeded()) 097 tgt.setAsNeeded(ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().convertType(src.getAsNeeded())); 098 if (src.hasSiteCodeableConcept()) 099 tgt.setSite(CodeableConcept10_40.convertCodeableConcept(src.getSiteCodeableConcept())); 100 if (src.hasRoute()) 101 tgt.setRoute(CodeableConcept10_40.convertCodeableConcept(src.getRoute())); 102 if (src.hasMethod()) 103 tgt.setMethod(CodeableConcept10_40.convertCodeableConcept(src.getMethod())); 104 if (src.hasDose() || src.hasRate()) { 105 DosageDoseAndRateComponent dr = tgt.addDoseAndRate(); 106 if (src.hasDose()) 107 dr.setDose(ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().convertType(src.getDose())); 108 if (src.hasRate()) 109 dr.setRate(ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().convertType(src.getRate())); 110 } 111 if (src.hasMaxDosePerPeriod()) 112 tgt.setMaxDosePerPeriod(Ratio10_40.convertRatio(src.getMaxDosePerPeriod())); 113 return tgt; 114 } 115 116 public static org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseDosageInstructionComponent convertMedicationDispenseDosageInstructionComponent(Dosage src) throws FHIRException { 117 if (src == null || src.isEmpty()) 118 return null; 119 org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseDosageInstructionComponent tgt = new org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseDosageInstructionComponent(); 120 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyElement(src, tgt); 121 tgt.setText(src.getText()); 122 tgt.setTiming(Timing10_40.convertTiming(src.getTiming())); 123 tgt.setAsNeeded(ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().convertType(src.getAsNeeded())); 124 tgt.setSite(ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().convertType(src.getSite())); 125 tgt.setRoute(CodeableConcept10_40.convertCodeableConcept(src.getRoute())); 126 tgt.setMethod(CodeableConcept10_40.convertCodeableConcept(src.getMethod())); 127 if (src.hasDoseAndRate() && src.getDoseAndRate().get(0).hasDose()) 128 tgt.setDose(ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().convertType(src.getDoseAndRate().get(0).getDose())); 129 tgt.setMaxDosePerPeriod(Ratio10_40.convertRatio(src.getMaxDosePerPeriod())); 130 if (src.hasDoseAndRate() && src.getDoseAndRate().get(0).hasRate()) 131 tgt.setRate(ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().convertType(src.getDoseAndRate().get(0).getRate())); 132 return tgt; 133 } 134 135 private static org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MedicationDispense.MedicationDispenseStatus> convertMedicationDispenseStatus(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseStatus> src) { 136 if (src == null) 137 return null; 138 org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MedicationDispense.MedicationDispenseStatus> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.MedicationDispense.MedicationDispenseStatusEnumFactory()); 139 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyElement(src, tgt); 140 switch (src.getValue()) { 141 case COMPLETED: 142 tgt.setValue(org.hl7.fhir.r4.model.MedicationDispense.MedicationDispenseStatus.COMPLETED); 143 break; 144 case ENTEREDINERROR: 145 tgt.setValue(org.hl7.fhir.r4.model.MedicationDispense.MedicationDispenseStatus.ENTEREDINERROR); 146 break; 147 case INPROGRESS: 148 tgt.setValue(org.hl7.fhir.r4.model.MedicationDispense.MedicationDispenseStatus.INPROGRESS); 149 break; 150 case NULL: 151 tgt.setValue(org.hl7.fhir.r4.model.MedicationDispense.MedicationDispenseStatus.NULL); 152 break; 153 case ONHOLD: 154 tgt.setValue(org.hl7.fhir.r4.model.MedicationDispense.MedicationDispenseStatus.ONHOLD); 155 break; 156 case STOPPED: 157 tgt.setValue(org.hl7.fhir.r4.model.MedicationDispense.MedicationDispenseStatus.STOPPED); 158 break; 159 } 160 return tgt; 161 } 162 163 private static org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseStatus> convertMedicationDispenseStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.MedicationDispense.MedicationDispenseStatus> src) { 164 if (src == null) 165 return null; 166 org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseStatus> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseStatusEnumFactory()); 167 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyElement(src, tgt); 168 switch (src.getValue()) { 169 case CANCELLED: 170 tgt.setValue(org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseStatus.STOPPED); 171 break; 172 case COMPLETED: 173 tgt.setValue(org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseStatus.COMPLETED); 174 break; 175 case DECLINED: 176 tgt.setValue(org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseStatus.STOPPED); 177 break; 178 case ENTEREDINERROR: 179 tgt.setValue(org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseStatus.ENTEREDINERROR); 180 break; 181 case INPROGRESS: 182 tgt.setValue(org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseStatus.INPROGRESS); 183 break; 184 case NULL: 185 tgt.setValue(org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseStatus.NULL); 186 break; 187 case ONHOLD: 188 tgt.setValue(org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseStatus.ONHOLD); 189 break; 190 case PREPARATION: 191 tgt.setValue(org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseStatus.INPROGRESS); 192 break; 193 case STOPPED: 194 tgt.setValue(org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseStatus.STOPPED); 195 break; 196 case UNKNOWN: 197 tgt.setValue(org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseStatus.NULL); 198 break; 199 } 200 return tgt; 201 } 202 203 public static org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseSubstitutionComponent convertMedicationDispenseSubstitutionComponent(org.hl7.fhir.r4.model.MedicationDispense.MedicationDispenseSubstitutionComponent src) throws FHIRException { 204 if (src == null || src.isEmpty()) 205 return null; 206 org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseSubstitutionComponent tgt = new org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseSubstitutionComponent(); 207 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyElement(src, tgt); 208 if (src.hasType()) 209 tgt.setType(CodeableConcept10_40.convertCodeableConcept(src.getType())); 210 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getReason()) 211 tgt.addReason(CodeableConcept10_40.convertCodeableConcept(t)); 212 for (org.hl7.fhir.r4.model.Reference t : src.getResponsibleParty()) 213 tgt.addResponsibleParty(Reference10_40.convertReference(t)); 214 return tgt; 215 } 216 217 public static org.hl7.fhir.r4.model.MedicationDispense.MedicationDispenseSubstitutionComponent convertMedicationDispenseSubstitutionComponent(org.hl7.fhir.dstu2.model.MedicationDispense.MedicationDispenseSubstitutionComponent src) throws FHIRException { 218 if (src == null || src.isEmpty()) 219 return null; 220 org.hl7.fhir.r4.model.MedicationDispense.MedicationDispenseSubstitutionComponent tgt = new org.hl7.fhir.r4.model.MedicationDispense.MedicationDispenseSubstitutionComponent(); 221 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyElement(src, tgt); 222 if (src.hasType()) 223 tgt.setType(CodeableConcept10_40.convertCodeableConcept(src.getType())); 224 for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getReason()) 225 tgt.addReason(CodeableConcept10_40.convertCodeableConcept(t)); 226 for (org.hl7.fhir.dstu2.model.Reference t : src.getResponsibleParty()) 227 tgt.addResponsibleParty(Reference10_40.convertReference(t)); 228 return tgt; 229 } 230}