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}