001package org.hl7.fhir.convertors.conv40_50.datatypes40_50.special40_50;
002
003import org.hl7.fhir.convertors.context.ConversionContext40_50;
004import org.hl7.fhir.convertors.conv40_50.datatypes40_50.BackboneElement40_50;
005import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.CodeableConcept40_50;
006import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Ratio40_50;
007import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.SimpleQuantity40_50;
008import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Timing40_50;
009import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Integer40_50;
010import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.String40_50;
011import org.hl7.fhir.exceptions.FHIRException;
012
013public class Dosage40_50 {
014  public static org.hl7.fhir.r5.model.Dosage convertDosage(org.hl7.fhir.r4.model.Dosage src) throws FHIRException {
015    if (src == null) return null;
016    org.hl7.fhir.r5.model.Dosage tgt = new org.hl7.fhir.r5.model.Dosage();
017    BackboneElement40_50.copyBackboneElement(src, tgt);
018    if (src.hasSequence()) tgt.setSequenceElement(Integer40_50.convertInteger(src.getSequenceElement()));
019    if (src.hasText()) tgt.setTextElement(String40_50.convertString(src.getTextElement()));
020    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getAdditionalInstruction())
021      tgt.addAdditionalInstruction(CodeableConcept40_50.convertCodeableConcept(t));
022    if (src.hasPatientInstruction())
023      tgt.setPatientInstructionElement(String40_50.convertString(src.getPatientInstructionElement()));
024    if (src.hasTiming()) tgt.setTiming(Timing40_50.convertTiming(src.getTiming()));
025    if (src.hasAsNeeded())
026      tgt.setAsNeeded(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getAsNeeded()));
027    if (src.hasSite()) tgt.setSite(CodeableConcept40_50.convertCodeableConcept(src.getSite()));
028    if (src.hasRoute()) tgt.setRoute(CodeableConcept40_50.convertCodeableConcept(src.getRoute()));
029    if (src.hasMethod()) tgt.setMethod(CodeableConcept40_50.convertCodeableConcept(src.getMethod()));
030    for (org.hl7.fhir.r4.model.Dosage.DosageDoseAndRateComponent t : src.getDoseAndRate())
031      tgt.addDoseAndRate(convertDosageDoseAndRateComponent(t));
032    if (src.hasMaxDosePerPeriod()) tgt.setMaxDosePerPeriod(Ratio40_50.convertRatio(src.getMaxDosePerPeriod()));
033    if (src.hasMaxDosePerAdministration())
034      tgt.setMaxDosePerAdministration(SimpleQuantity40_50.convertSimpleQuantity(src.getMaxDosePerAdministration()));
035    if (src.hasMaxDosePerLifetime())
036      tgt.setMaxDosePerLifetime(SimpleQuantity40_50.convertSimpleQuantity(src.getMaxDosePerLifetime()));
037    return tgt;
038  }
039
040  public static org.hl7.fhir.r4.model.Dosage convertDosage(org.hl7.fhir.r5.model.Dosage src) throws FHIRException {
041    if (src == null) return null;
042    org.hl7.fhir.r4.model.Dosage tgt = new org.hl7.fhir.r4.model.Dosage();
043    BackboneElement40_50.copyBackboneElement(src, tgt);
044    if (src.hasSequence()) tgt.setSequenceElement(Integer40_50.convertInteger(src.getSequenceElement()));
045    if (src.hasText()) tgt.setTextElement(String40_50.convertString(src.getTextElement()));
046    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getAdditionalInstruction())
047      tgt.addAdditionalInstruction(CodeableConcept40_50.convertCodeableConcept(t));
048    if (src.hasPatientInstruction())
049      tgt.setPatientInstructionElement(String40_50.convertString(src.getPatientInstructionElement()));
050    if (src.hasTiming()) tgt.setTiming(Timing40_50.convertTiming(src.getTiming()));
051    if (src.hasAsNeeded())
052      tgt.setAsNeeded(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getAsNeeded()));
053    if (src.hasSite()) tgt.setSite(CodeableConcept40_50.convertCodeableConcept(src.getSite()));
054    if (src.hasRoute()) tgt.setRoute(CodeableConcept40_50.convertCodeableConcept(src.getRoute()));
055    if (src.hasMethod()) tgt.setMethod(CodeableConcept40_50.convertCodeableConcept(src.getMethod()));
056    for (org.hl7.fhir.r5.model.Dosage.DosageDoseAndRateComponent t : src.getDoseAndRate())
057      tgt.addDoseAndRate(convertDosageDoseAndRateComponent(t));
058    if (src.hasMaxDosePerPeriod()) tgt.setMaxDosePerPeriod(Ratio40_50.convertRatio(src.getMaxDosePerPeriod()));
059    if (src.hasMaxDosePerAdministration())
060      tgt.setMaxDosePerAdministration(SimpleQuantity40_50.convertSimpleQuantity(src.getMaxDosePerAdministration()));
061    if (src.hasMaxDosePerLifetime())
062      tgt.setMaxDosePerLifetime(SimpleQuantity40_50.convertSimpleQuantity(src.getMaxDosePerLifetime()));
063    return tgt;
064  }
065
066  public static org.hl7.fhir.r5.model.Dosage.DosageDoseAndRateComponent convertDosageDoseAndRateComponent(org.hl7.fhir.r4.model.Dosage.DosageDoseAndRateComponent src) throws FHIRException {
067    if (src == null) return null;
068    org.hl7.fhir.r5.model.Dosage.DosageDoseAndRateComponent tgt = new org.hl7.fhir.r5.model.Dosage.DosageDoseAndRateComponent();
069    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
070    if (src.hasType()) tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType()));
071    if (src.hasDose())
072      tgt.setDose(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getDose()));
073    if (src.hasRate())
074      tgt.setRate(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getRate()));
075    return tgt;
076  }
077
078  public static org.hl7.fhir.r4.model.Dosage.DosageDoseAndRateComponent convertDosageDoseAndRateComponent(org.hl7.fhir.r5.model.Dosage.DosageDoseAndRateComponent src) throws FHIRException {
079    if (src == null) return null;
080    org.hl7.fhir.r4.model.Dosage.DosageDoseAndRateComponent tgt = new org.hl7.fhir.r4.model.Dosage.DosageDoseAndRateComponent();
081    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
082    if (src.hasType()) tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType()));
083    if (src.hasDose())
084      tgt.setDose(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getDose()));
085    if (src.hasRate())
086      tgt.setRate(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getRate()));
087    return tgt;
088  }
089}