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.CodeableConcept30_50; 006import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Ratio30_50; 007import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Boolean30_50; 008import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.DateTime30_50; 009import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.String30_50; 010import org.hl7.fhir.exceptions.FHIRException; 011 012public class Medication30_50 { 013 014 public static org.hl7.fhir.r5.model.Medication convertMedication(org.hl7.fhir.dstu3.model.Medication src) throws FHIRException { 015 if (src == null) 016 return null; 017 org.hl7.fhir.r5.model.Medication tgt = new org.hl7.fhir.r5.model.Medication(); 018 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt); 019 if (src.hasCode()) 020 tgt.setCode(CodeableConcept30_50.convertCodeableConcept(src.getCode())); 021 if (src.hasStatus()) 022 tgt.setStatusElement(convertMedicationStatus(src.getStatusElement())); 023 if (src.hasManufacturer()) 024 tgt.setMarketingAuthorizationHolder(Reference30_50.convertReference(src.getManufacturer())); 025 if (src.hasForm()) 026 tgt.setDoseForm(CodeableConcept30_50.convertCodeableConcept(src.getForm())); 027 for (org.hl7.fhir.dstu3.model.Medication.MedicationIngredientComponent t : src.getIngredient()) 028 tgt.addIngredient(convertMedicationIngredientComponent(t)); 029 if (src.hasPackage()) 030 tgt.setBatch(convertMedicationPackageBatchComponent(src.getPackage().getBatchFirstRep())); 031 return tgt; 032 } 033 034 public static org.hl7.fhir.dstu3.model.Medication convertMedication(org.hl7.fhir.r5.model.Medication src) throws FHIRException { 035 if (src == null) 036 return null; 037 org.hl7.fhir.dstu3.model.Medication tgt = new org.hl7.fhir.dstu3.model.Medication(); 038 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt); 039 if (src.hasCode()) 040 tgt.setCode(CodeableConcept30_50.convertCodeableConcept(src.getCode())); 041 if (src.hasStatus()) 042 tgt.setStatusElement(convertMedicationStatus(src.getStatusElement())); 043 if (src.hasMarketingAuthorizationHolder()) 044 tgt.setManufacturer(Reference30_50.convertReference(src.getMarketingAuthorizationHolder())); 045 if (src.hasDoseForm()) 046 tgt.setForm(CodeableConcept30_50.convertCodeableConcept(src.getDoseForm())); 047 for (org.hl7.fhir.r5.model.Medication.MedicationIngredientComponent t : src.getIngredient()) 048 tgt.addIngredient(convertMedicationIngredientComponent(t)); 049 if (src.hasBatch()) 050 tgt.getPackage().addBatch(convertMedicationPackageBatchComponent(src.getBatch())); 051 return tgt; 052 } 053 054 public static org.hl7.fhir.dstu3.model.Medication.MedicationIngredientComponent convertMedicationIngredientComponent(org.hl7.fhir.r5.model.Medication.MedicationIngredientComponent src) throws FHIRException { 055 if (src == null) 056 return null; 057 org.hl7.fhir.dstu3.model.Medication.MedicationIngredientComponent tgt = new org.hl7.fhir.dstu3.model.Medication.MedicationIngredientComponent(); 058 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt); 059 if (src.getItem().hasConcept()) 060 tgt.setItem(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getItem().getConcept())); 061 if (src.getItem().hasReference()) 062 tgt.setItem(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getItem().getReference())); 063 if (src.hasIsActive()) 064 tgt.setIsActiveElement(Boolean30_50.convertBoolean(src.getIsActiveElement())); 065 if (src.hasStrengthRatio()) 066 tgt.setAmount(Ratio30_50.convertRatio(src.getStrengthRatio())); 067 return tgt; 068 } 069 070 public static org.hl7.fhir.r5.model.Medication.MedicationIngredientComponent convertMedicationIngredientComponent(org.hl7.fhir.dstu3.model.Medication.MedicationIngredientComponent src) throws FHIRException { 071 if (src == null) 072 return null; 073 org.hl7.fhir.r5.model.Medication.MedicationIngredientComponent tgt = new org.hl7.fhir.r5.model.Medication.MedicationIngredientComponent(); 074 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt); 075 if (src.hasItemCodeableConcept()) 076 tgt.getItem().setConcept(CodeableConcept30_50.convertCodeableConcept(src.getItemCodeableConcept())); 077 if (src.hasItemReference()) 078 tgt.getItem().setReference(Reference30_50.convertReference(src.getItemReference())); 079 if (src.hasIsActive()) 080 tgt.setIsActiveElement(Boolean30_50.convertBoolean(src.getIsActiveElement())); 081 if (src.hasAmount()) 082 tgt.setStrength(Ratio30_50.convertRatio(src.getAmount())); 083 return tgt; 084 } 085 086 public static org.hl7.fhir.dstu3.model.Medication.MedicationPackageBatchComponent convertMedicationPackageBatchComponent(org.hl7.fhir.r5.model.Medication.MedicationBatchComponent src) throws FHIRException { 087 if (src == null) 088 return null; 089 org.hl7.fhir.dstu3.model.Medication.MedicationPackageBatchComponent tgt = new org.hl7.fhir.dstu3.model.Medication.MedicationPackageBatchComponent(); 090 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt); 091 if (src.hasLotNumber()) 092 tgt.setLotNumberElement(String30_50.convertString(src.getLotNumberElement())); 093 if (src.hasExpirationDate()) 094 tgt.setExpirationDateElement(DateTime30_50.convertDateTime(src.getExpirationDateElement())); 095 return tgt; 096 } 097 098 public static org.hl7.fhir.r5.model.Medication.MedicationBatchComponent convertMedicationPackageBatchComponent(org.hl7.fhir.dstu3.model.Medication.MedicationPackageBatchComponent src) throws FHIRException { 099 if (src == null) 100 return null; 101 org.hl7.fhir.r5.model.Medication.MedicationBatchComponent tgt = new org.hl7.fhir.r5.model.Medication.MedicationBatchComponent(); 102 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt); 103 if (src.hasLotNumber()) 104 tgt.setLotNumberElement(String30_50.convertString(src.getLotNumberElement())); 105 if (src.hasExpirationDate()) 106 tgt.setExpirationDateElement(DateTime30_50.convertDateTime(src.getExpirationDateElement())); 107 return tgt; 108 } 109 110 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Medication.MedicationStatusCodes> convertMedicationStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Medication.MedicationStatus> src) throws FHIRException { 111 if (src == null || src.isEmpty()) 112 return null; 113 org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Medication.MedicationStatusCodes> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.Medication.MedicationStatusCodesEnumFactory()); 114 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 115 switch (src.getValue()) { 116 case ACTIVE: 117 tgt.setValue(org.hl7.fhir.r5.model.Medication.MedicationStatusCodes.ACTIVE); 118 break; 119 case INACTIVE: 120 tgt.setValue(org.hl7.fhir.r5.model.Medication.MedicationStatusCodes.INACTIVE); 121 break; 122 case ENTEREDINERROR: 123 tgt.setValue(org.hl7.fhir.r5.model.Medication.MedicationStatusCodes.ENTEREDINERROR); 124 break; 125 default: 126 tgt.setValue(org.hl7.fhir.r5.model.Medication.MedicationStatusCodes.NULL); 127 break; 128 } 129 return tgt; 130 } 131 132 static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Medication.MedicationStatus> convertMedicationStatus(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Medication.MedicationStatusCodes> src) throws FHIRException { 133 if (src == null || src.isEmpty()) 134 return null; 135 org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.Medication.MedicationStatus> tgt = new org.hl7.fhir.dstu3.model.Enumeration<>(new org.hl7.fhir.dstu3.model.Medication.MedicationStatusEnumFactory()); 136 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 137 switch (src.getValue()) { 138 case ACTIVE: 139 tgt.setValue(org.hl7.fhir.dstu3.model.Medication.MedicationStatus.ACTIVE); 140 break; 141 case INACTIVE: 142 tgt.setValue(org.hl7.fhir.dstu3.model.Medication.MedicationStatus.INACTIVE); 143 break; 144 case ENTEREDINERROR: 145 tgt.setValue(org.hl7.fhir.dstu3.model.Medication.MedicationStatus.ENTEREDINERROR); 146 break; 147 default: 148 tgt.setValue(org.hl7.fhir.dstu3.model.Medication.MedicationStatus.NULL); 149 break; 150 } 151 return tgt; 152 } 153}