001package org.hl7.fhir.convertors.conv30_50.datatypes30_50; 002 003import org.hl7.fhir.convertors.context.ConversionContext30_50; 004import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.CodeableConcept30_50; 005import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Ratio30_50; 006import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.SimpleQuantity30_50; 007import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Timing30_50; 008import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Integer30_50; 009import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.String30_50; 010import org.hl7.fhir.exceptions.FHIRException; 011 012public class Dosage30_50 { 013 public static org.hl7.fhir.r5.model.Dosage convertDosage(org.hl7.fhir.dstu3.model.Dosage src) throws FHIRException { 014 if (src == null) return null; 015 org.hl7.fhir.r5.model.Dosage tgt = new org.hl7.fhir.r5.model.Dosage(); 016 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 017 if (src.hasSequence()) tgt.setSequenceElement(Integer30_50.convertInteger(src.getSequenceElement())); 018 if (src.hasText()) tgt.setTextElement(String30_50.convertString(src.getTextElement())); 019 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getAdditionalInstruction()) 020 tgt.addAdditionalInstruction(CodeableConcept30_50.convertCodeableConcept(t)); 021 if (src.hasPatientInstruction()) 022 tgt.setPatientInstructionElement(String30_50.convertString(src.getPatientInstructionElement())); 023 if (src.hasTiming()) tgt.setTiming(Timing30_50.convertTiming(src.getTiming())); 024 if (src.hasAsNeeded()) 025 tgt.setAsNeeded(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getAsNeeded())); 026 if (src.hasSite()) tgt.setSite(CodeableConcept30_50.convertCodeableConcept(src.getSite())); 027 if (src.hasRoute()) tgt.setRoute(CodeableConcept30_50.convertCodeableConcept(src.getRoute())); 028 if (src.hasMethod()) tgt.setMethod(CodeableConcept30_50.convertCodeableConcept(src.getMethod())); 029 if (src.hasDose() || src.hasRate()) { 030 org.hl7.fhir.r5.model.Dosage.DosageDoseAndRateComponent dr = tgt.addDoseAndRate(); 031 if (src.hasDose()) 032 dr.setDose(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getDose())); 033 if (src.hasRate()) 034 dr.setRate(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getRate())); 035 } 036 if (src.hasMaxDosePerPeriod()) tgt.setMaxDosePerPeriod(Ratio30_50.convertRatio(src.getMaxDosePerPeriod())); 037 if (src.hasMaxDosePerAdministration()) 038 tgt.setMaxDosePerAdministration(SimpleQuantity30_50.convertSimpleQuantity(src.getMaxDosePerAdministration())); 039 if (src.hasMaxDosePerLifetime()) 040 tgt.setMaxDosePerLifetime(SimpleQuantity30_50.convertSimpleQuantity(src.getMaxDosePerLifetime())); 041 return tgt; 042 } 043 044 public static org.hl7.fhir.dstu3.model.Dosage convertDosage(org.hl7.fhir.r5.model.Dosage src) throws FHIRException { 045 if (src == null) return null; 046 org.hl7.fhir.dstu3.model.Dosage tgt = new org.hl7.fhir.dstu3.model.Dosage(); 047 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt); 048 if (src.hasSequence()) tgt.setSequenceElement(Integer30_50.convertInteger(src.getSequenceElement())); 049 if (src.hasText()) tgt.setTextElement(String30_50.convertString(src.getTextElement())); 050 for (org.hl7.fhir.r5.model.CodeableConcept t : src.getAdditionalInstruction()) 051 tgt.addAdditionalInstruction(CodeableConcept30_50.convertCodeableConcept(t)); 052 if (src.hasPatientInstruction()) 053 tgt.setPatientInstructionElement(String30_50.convertString(src.getPatientInstructionElement())); 054 if (src.hasTiming()) tgt.setTiming(Timing30_50.convertTiming(src.getTiming())); 055 if (src.hasAsNeeded()) 056 tgt.setAsNeeded(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getAsNeeded())); 057 if (src.hasSite()) tgt.setSite(CodeableConcept30_50.convertCodeableConcept(src.getSite())); 058 if (src.hasRoute()) tgt.setRoute(CodeableConcept30_50.convertCodeableConcept(src.getRoute())); 059 if (src.hasMethod()) tgt.setMethod(CodeableConcept30_50.convertCodeableConcept(src.getMethod())); 060 if (src.hasDoseAndRate() && src.getDoseAndRate().get(0).hasDose()) 061 tgt.setDose(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getDoseAndRate().get(0).getDose())); 062 if (src.hasMaxDosePerPeriod()) tgt.setMaxDosePerPeriod(Ratio30_50.convertRatio(src.getMaxDosePerPeriod())); 063 if (src.hasMaxDosePerAdministration()) 064 tgt.setMaxDosePerAdministration(SimpleQuantity30_50.convertSimpleQuantity(src.getMaxDosePerAdministration())); 065 if (src.hasMaxDosePerLifetime()) 066 tgt.setMaxDosePerLifetime(SimpleQuantity30_50.convertSimpleQuantity(src.getMaxDosePerLifetime())); 067 if (src.hasDoseAndRate() && src.getDoseAndRate().get(0).hasRate()) 068 tgt.setRate(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getDoseAndRate().get(0).getRate())); 069 return tgt; 070 } 071}