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.complextypes10_40.CodeableConcept10_40;
005import org.hl7.fhir.convertors.conv10_40.datatypes10_40.complextypes10_40.Ratio10_40;
006import org.hl7.fhir.convertors.conv10_40.datatypes10_40.complextypes10_40.Timing10_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;
010
011public class MedicationOrder10_40 {
012  public static org.hl7.fhir.r4.model.Dosage convertMedicationOrderDosageInstructionComponent(org.hl7.fhir.dstu2.model.MedicationOrder.MedicationOrderDosageInstructionComponent src) throws FHIRException {
013    if (src == null || src.isEmpty()) return null;
014    org.hl7.fhir.r4.model.Dosage tgt = new org.hl7.fhir.r4.model.Dosage();
015    ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyElement(src, tgt);
016    if (src.hasTextElement()) tgt.setTextElement(String10_40.convertString(src.getTextElement()));
017    if (src.hasTiming()) tgt.setTiming(Timing10_40.convertTiming(src.getTiming()));
018    if (src.hasAsNeeded())
019      tgt.setAsNeeded(ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().convertType(src.getAsNeeded()));
020    if (src.hasSiteCodeableConcept())
021      tgt.setSite(CodeableConcept10_40.convertCodeableConcept(src.getSiteCodeableConcept()));
022    if (src.hasRoute()) tgt.setRoute(CodeableConcept10_40.convertCodeableConcept(src.getRoute()));
023    if (src.hasMethod()) tgt.setMethod(CodeableConcept10_40.convertCodeableConcept(src.getMethod()));
024    if (src.hasDose() || src.hasRate()) {
025      Dosage.DosageDoseAndRateComponent dr = tgt.addDoseAndRate();
026      if (src.hasDose())
027        dr.setDose(ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().convertType(src.getDose()));
028      if (src.hasRate())
029        dr.setRate(ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().convertType(src.getRate()));
030    }
031    if (src.hasMaxDosePerPeriod()) tgt.setMaxDosePerPeriod(Ratio10_40.convertRatio(src.getMaxDosePerPeriod()));
032    return tgt;
033  }
034
035  public static org.hl7.fhir.dstu2.model.MedicationOrder.MedicationOrderDosageInstructionComponent convertMedicationOrderDosageInstructionComponent(Dosage src) throws FHIRException {
036    if (src == null || src.isEmpty()) return null;
037    org.hl7.fhir.dstu2.model.MedicationOrder.MedicationOrderDosageInstructionComponent tgt = new org.hl7.fhir.dstu2.model.MedicationOrder.MedicationOrderDosageInstructionComponent();
038    ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyElement(src, tgt);
039    if (src.hasTextElement()) tgt.setTextElement(String10_40.convertString(src.getTextElement()));
040    if (src.hasTiming()) tgt.setTiming(Timing10_40.convertTiming(src.getTiming()));
041    if (src.hasAsNeeded())
042      tgt.setAsNeeded(ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().convertType(src.getAsNeeded()));
043    if (src.hasSite())
044      tgt.setSite(ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().convertType(src.getSite()));
045    if (src.hasRoute()) tgt.setRoute(CodeableConcept10_40.convertCodeableConcept(src.getRoute()));
046    if (src.hasMethod()) tgt.setMethod(CodeableConcept10_40.convertCodeableConcept(src.getMethod()));
047    if (src.hasDoseAndRate() && src.getDoseAndRate().get(0).hasDose())
048      tgt.setDose(ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().convertType(src.getDoseAndRate().get(0).getDose()));
049    if (src.hasDoseAndRate() && src.getDoseAndRate().get(0).hasRate())
050      tgt.setRate(ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().convertType(src.getDoseAndRate().get(0).getRate()));
051    if (src.hasMaxDosePerPeriod()) tgt.setMaxDosePerPeriod(Ratio10_40.convertRatio(src.getMaxDosePerPeriod()));
052    return tgt;
053  }
054}