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.Boolean40_50; 010import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Integer40_50; 011import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.String40_50; 012import org.hl7.fhir.exceptions.FHIRException; 013 014public class Dosage40_50 { 015 public static org.hl7.fhir.r5.model.Dosage convertDosage(org.hl7.fhir.r4.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 BackboneElement40_50.copyBackboneElement(src, tgt); 019 if (src.hasSequence()) tgt.setSequenceElement(Integer40_50.convertInteger(src.getSequenceElement())); 020 if (src.hasText()) tgt.setTextElement(String40_50.convertString(src.getTextElement())); 021 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getAdditionalInstruction()) 022 tgt.addAdditionalInstruction(CodeableConcept40_50.convertCodeableConcept(t)); 023 if (src.hasPatientInstruction()) 024 tgt.setPatientInstructionElement(String40_50.convertString(src.getPatientInstructionElement())); 025 if (src.hasTiming()) tgt.setTiming(Timing40_50.convertTiming(src.getTiming())); 026 if (src.hasAsNeededBooleanType()) 027 tgt.setAsNeededElement(Boolean40_50.convertBoolean(src.getAsNeededBooleanType())); 028 if (src.hasAsNeededCodeableConcept()) { 029 tgt.addAsNeededFor(CodeableConcept40_50.convertCodeableConcept(src.getAsNeededCodeableConcept())); 030 } 031 if (src.hasSite()) tgt.setSite(CodeableConcept40_50.convertCodeableConcept(src.getSite())); 032 if (src.hasRoute()) tgt.setRoute(CodeableConcept40_50.convertCodeableConcept(src.getRoute())); 033 if (src.hasMethod()) tgt.setMethod(CodeableConcept40_50.convertCodeableConcept(src.getMethod())); 034 for (org.hl7.fhir.r4.model.Dosage.DosageDoseAndRateComponent t : src.getDoseAndRate()) 035 tgt.addDoseAndRate(convertDosageDoseAndRateComponent(t)); 036 if (src.hasMaxDosePerPeriod()) tgt.addMaxDosePerPeriod(Ratio40_50.convertRatio(src.getMaxDosePerPeriod())); 037 if (src.hasMaxDosePerAdministration()) 038 tgt.setMaxDosePerAdministration(SimpleQuantity40_50.convertSimpleQuantity(src.getMaxDosePerAdministration())); 039 if (src.hasMaxDosePerLifetime()) 040 tgt.setMaxDosePerLifetime(SimpleQuantity40_50.convertSimpleQuantity(src.getMaxDosePerLifetime())); 041 return tgt; 042 } 043 044 public static org.hl7.fhir.r4.model.Dosage convertDosage(org.hl7.fhir.r5.model.Dosage src) throws FHIRException { 045 if (src == null) return null; 046 org.hl7.fhir.r4.model.Dosage tgt = new org.hl7.fhir.r4.model.Dosage(); 047 BackboneElement40_50.copyBackboneElement(src, tgt); 048 if (src.hasSequence()) tgt.setSequenceElement(Integer40_50.convertInteger(src.getSequenceElement())); 049 if (src.hasText()) tgt.setTextElement(String40_50.convertString(src.getTextElement())); 050 for (org.hl7.fhir.r5.model.CodeableConcept t : src.getAdditionalInstruction()) 051 tgt.addAdditionalInstruction(CodeableConcept40_50.convertCodeableConcept(t)); 052 if (src.hasPatientInstruction()) 053 tgt.setPatientInstructionElement(String40_50.convertString(src.getPatientInstructionElement())); 054 if (src.hasTiming()) tgt.setTiming(Timing40_50.convertTiming(src.getTiming())); 055 if (src.hasAsNeeded()) 056 tgt.setAsNeeded(Boolean40_50.convertBoolean(src.getAsNeededElement())); 057 if (src.hasAsNeededFor()) 058 tgt.setAsNeeded(CodeableConcept40_50.convertCodeableConcept(src.getAsNeededForFirstRep())); 059 if (src.hasSite()) tgt.setSite(CodeableConcept40_50.convertCodeableConcept(src.getSite())); 060 if (src.hasRoute()) tgt.setRoute(CodeableConcept40_50.convertCodeableConcept(src.getRoute())); 061 if (src.hasMethod()) tgt.setMethod(CodeableConcept40_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(Ratio40_50.convertRatio(src.getMaxDosePerPeriodFirstRep())); 065 if (src.hasMaxDosePerAdministration()) 066 tgt.setMaxDosePerAdministration(SimpleQuantity40_50.convertSimpleQuantity(src.getMaxDosePerAdministration())); 067 if (src.hasMaxDosePerLifetime()) 068 tgt.setMaxDosePerLifetime(SimpleQuantity40_50.convertSimpleQuantity(src.getMaxDosePerLifetime())); 069 return tgt; 070 } 071 072 public static org.hl7.fhir.r5.model.Dosage.DosageDoseAndRateComponent convertDosageDoseAndRateComponent(org.hl7.fhir.r4.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 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 076 if (src.hasType()) tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType())); 077 if (src.hasDose()) 078 tgt.setDose(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getDose())); 079 if (src.hasRate()) 080 tgt.setRate(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getRate())); 081 return tgt; 082 } 083 084 public static org.hl7.fhir.r4.model.Dosage.DosageDoseAndRateComponent convertDosageDoseAndRateComponent(org.hl7.fhir.r5.model.Dosage.DosageDoseAndRateComponent src) throws FHIRException { 085 if (src == null) return null; 086 org.hl7.fhir.r4.model.Dosage.DosageDoseAndRateComponent tgt = new org.hl7.fhir.r4.model.Dosage.DosageDoseAndRateComponent(); 087 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 088 if (src.hasType()) tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType())); 089 if (src.hasDose()) 090 tgt.setDose(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getDose())); 091 if (src.hasRate()) 092 tgt.setRate(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getRate())); 093 return tgt; 094 } 095}