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