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}