001package org.hl7.fhir.convertors.conv43_50.datatypes43_50.special43_50;
002
003import org.hl7.fhir.convertors.context.ConversionContext43_50;
004import org.hl7.fhir.convertors.conv43_50.datatypes43_50.BackboneElement43_50;
005import org.hl7.fhir.convertors.conv43_50.datatypes43_50.general43_50.CodeableConcept43_50;
006import org.hl7.fhir.convertors.conv43_50.datatypes43_50.general43_50.Ratio43_50;
007import org.hl7.fhir.convertors.conv43_50.datatypes43_50.general43_50.SimpleQuantity43_50;
008import org.hl7.fhir.convertors.conv43_50.datatypes43_50.general43_50.Timing43_50;
009import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.Boolean43_50;
010import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.Integer43_50;
011import org.hl7.fhir.convertors.conv43_50.datatypes43_50.primitive43_50.String43_50;
012import org.hl7.fhir.exceptions.FHIRException;
013
014public class Dosage43_50 {
015  public static org.hl7.fhir.r5.model.Dosage convertDosage(org.hl7.fhir.r4b.model.Dosage src) throws FHIRException {
016    if (src == null) return null;
017    org.hl7.fhir.r5.model.Dosage tgt = new org.hl7.fhir.r5.model.Dosage();
018    BackboneElement43_50.copyBackboneElement(src, tgt);
019    if (src.hasSequence()) tgt.setSequenceElement(Integer43_50.convertInteger(src.getSequenceElement()));
020    if (src.hasText()) tgt.setTextElement(String43_50.convertString(src.getTextElement()));
021    for (org.hl7.fhir.r4b.model.CodeableConcept t : src.getAdditionalInstruction())
022      tgt.addAdditionalInstruction(CodeableConcept43_50.convertCodeableConcept(t));
023    if (src.hasPatientInstruction())
024      tgt.setPatientInstructionElement(String43_50.convertString(src.getPatientInstructionElement()));
025    if (src.hasTiming()) tgt.setTiming(Timing43_50.convertTiming(src.getTiming()));
026    if (src.hasAsNeededBooleanType())
027      tgt.setAsNeededElement(Boolean43_50.convertBoolean(src.getAsNeededBooleanType()));
028    if (src.hasAsNeededCodeableConcept()) {
029      tgt.addAsNeededFor(CodeableConcept43_50.convertCodeableConcept(src.getAsNeededCodeableConcept()));      
030    }
031    if (src.hasSite()) tgt.setSite(CodeableConcept43_50.convertCodeableConcept(src.getSite()));
032    if (src.hasRoute()) tgt.setRoute(CodeableConcept43_50.convertCodeableConcept(src.getRoute()));
033    if (src.hasMethod()) tgt.setMethod(CodeableConcept43_50.convertCodeableConcept(src.getMethod()));
034    for (org.hl7.fhir.r4b.model.Dosage.DosageDoseAndRateComponent t : src.getDoseAndRate())
035      tgt.addDoseAndRate(convertDosageDoseAndRateComponent(t));
036    if (src.hasMaxDosePerPeriod()) tgt.addMaxDosePerPeriod(Ratio43_50.convertRatio(src.getMaxDosePerPeriod()));
037    if (src.hasMaxDosePerAdministration())
038      tgt.setMaxDosePerAdministration(SimpleQuantity43_50.convertSimpleQuantity(src.getMaxDosePerAdministration()));
039    if (src.hasMaxDosePerLifetime())
040      tgt.setMaxDosePerLifetime(SimpleQuantity43_50.convertSimpleQuantity(src.getMaxDosePerLifetime()));
041    return tgt;
042  }
043
044  public static org.hl7.fhir.r4b.model.Dosage convertDosage(org.hl7.fhir.r5.model.Dosage src) throws FHIRException {
045    if (src == null) return null;
046    org.hl7.fhir.r4b.model.Dosage tgt = new org.hl7.fhir.r4b.model.Dosage();
047    BackboneElement43_50.copyBackboneElement(src, tgt);
048    if (src.hasSequence()) tgt.setSequenceElement(Integer43_50.convertInteger(src.getSequenceElement()));
049    if (src.hasText()) tgt.setTextElement(String43_50.convertString(src.getTextElement()));
050    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getAdditionalInstruction())
051      tgt.addAdditionalInstruction(CodeableConcept43_50.convertCodeableConcept(t));
052    if (src.hasPatientInstruction())
053      tgt.setPatientInstructionElement(String43_50.convertString(src.getPatientInstructionElement()));
054    if (src.hasTiming()) tgt.setTiming(Timing43_50.convertTiming(src.getTiming()));
055    if (src.hasAsNeeded())
056      tgt.setAsNeeded(Boolean43_50.convertBoolean(src.getAsNeededElement()));
057    if (src.hasAsNeededFor())
058      tgt.setAsNeeded(CodeableConcept43_50.convertCodeableConcept(src.getAsNeededForFirstRep()));
059    if (src.hasSite()) tgt.setSite(CodeableConcept43_50.convertCodeableConcept(src.getSite()));
060    if (src.hasRoute()) tgt.setRoute(CodeableConcept43_50.convertCodeableConcept(src.getRoute()));
061    if (src.hasMethod()) tgt.setMethod(CodeableConcept43_50.convertCodeableConcept(src.getMethod()));
062    for (org.hl7.fhir.r5.model.Dosage.DosageDoseAndRateComponent t : src.getDoseAndRate())
063      tgt.addDoseAndRate(convertDosageDoseAndRateComponent(t));
064    if (src.hasMaxDosePerPeriod()) tgt.setMaxDosePerPeriod(Ratio43_50.convertRatio(src.getMaxDosePerPeriodFirstRep()));
065    if (src.hasMaxDosePerAdministration())
066      tgt.setMaxDosePerAdministration(SimpleQuantity43_50.convertSimpleQuantity(src.getMaxDosePerAdministration()));
067    if (src.hasMaxDosePerLifetime())
068      tgt.setMaxDosePerLifetime(SimpleQuantity43_50.convertSimpleQuantity(src.getMaxDosePerLifetime()));
069    return tgt;
070  }
071
072  public static org.hl7.fhir.r5.model.Dosage.DosageDoseAndRateComponent convertDosageDoseAndRateComponent(org.hl7.fhir.r4b.model.Dosage.DosageDoseAndRateComponent src) throws FHIRException {
073    if (src == null) return null;
074    org.hl7.fhir.r5.model.Dosage.DosageDoseAndRateComponent tgt = new org.hl7.fhir.r5.model.Dosage.DosageDoseAndRateComponent();
075    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
076    if (src.hasType()) tgt.setType(CodeableConcept43_50.convertCodeableConcept(src.getType()));
077    if (src.hasDose())
078      tgt.setDose(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getDose()));
079    if (src.hasRate())
080      tgt.setRate(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getRate()));
081    return tgt;
082  }
083
084  public static org.hl7.fhir.r4b.model.Dosage.DosageDoseAndRateComponent convertDosageDoseAndRateComponent(org.hl7.fhir.r5.model.Dosage.DosageDoseAndRateComponent src) throws FHIRException {
085    if (src == null) return null;
086    org.hl7.fhir.r4b.model.Dosage.DosageDoseAndRateComponent tgt = new org.hl7.fhir.r4b.model.Dosage.DosageDoseAndRateComponent();
087    ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().copyElement(src, tgt);
088    if (src.hasType()) tgt.setType(CodeableConcept43_50.convertCodeableConcept(src.getType()));
089    if (src.hasDose())
090      tgt.setDose(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getDose()));
091    if (src.hasRate())
092      tgt.setRate(ConversionContext43_50.INSTANCE.getVersionConvertor_43_50().convertType(src.getRate()));
093    return tgt;
094  }
095}