001package org.hl7.fhir.convertors.conv40_50.resources40_50;
002
003import org.hl7.fhir.convertors.context.ConversionContext40_50;
004import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.*;
005import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Canonical40_50;
006import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.DateTime40_50;
007import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.String40_50;
008import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Uri40_50;
009import org.hl7.fhir.convertors.conv40_50.datatypes40_50.special40_50.Reference40_50;
010import org.hl7.fhir.exceptions.FHIRException;
011
012/*
013  Copyright (c) 2011+, HL7, Inc.
014  All rights reserved.
015  
016  Redistribution and use in source and binary forms, with or without modification, 
017  are permitted provided that the following conditions are met:
018  
019   * Redistributions of source code must retain the above copyright notice, this 
020     list of conditions and the following disclaimer.
021   * Redistributions in binary form must reproduce the above copyright notice, 
022     this list of conditions and the following disclaimer in the documentation 
023     and/or other materials provided with the distribution.
024   * Neither the name of HL7 nor the names of its contributors may be used to 
025     endorse or promote products derived from this software without specific 
026     prior written permission.
027  
028  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 
029  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
030  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 
031  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
032  INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
033  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 
034  PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
035  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 
036  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
037  POSSIBILITY OF SUCH DAMAGE.
038  
039*/
040// Generated on Sun, Feb 24, 2019 11:37+1100 for FHIR v4.0.0
041public class NutritionOrder40_50 {
042
043  public static org.hl7.fhir.r5.model.NutritionOrder convertNutritionOrder(org.hl7.fhir.r4.model.NutritionOrder src) throws FHIRException {
044    if (src == null)
045      return null;
046    org.hl7.fhir.r5.model.NutritionOrder tgt = new org.hl7.fhir.r5.model.NutritionOrder();
047    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
048    for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier())
049      tgt.addIdentifier(Identifier40_50.convertIdentifier(t));
050    for (org.hl7.fhir.r4.model.CanonicalType t : src.getInstantiatesCanonical())
051      tgt.getInstantiatesCanonical().add(Canonical40_50.convertCanonical(t));
052    for (org.hl7.fhir.r4.model.UriType t : src.getInstantiatesUri())
053      tgt.getInstantiatesUri().add(Uri40_50.convertUri(t));
054    for (org.hl7.fhir.r4.model.UriType t : src.getInstantiates()) tgt.getInstantiates().add(Uri40_50.convertUri(t));
055    if (src.hasStatus())
056      tgt.setStatusElement(convertNutritionOrderStatus(src.getStatusElement()));
057    if (src.hasIntent())
058      tgt.setIntentElement(convertNutritiionOrderIntent(src.getIntentElement()));
059    if (src.hasPatient())
060      tgt.setPatient(Reference40_50.convertReference(src.getPatient()));
061    if (src.hasEncounter())
062      tgt.setEncounter(Reference40_50.convertReference(src.getEncounter()));
063    if (src.hasDateTime())
064      tgt.setDateTimeElement(DateTime40_50.convertDateTime(src.getDateTimeElement()));
065    if (src.hasOrderer())
066      tgt.setOrderer(Reference40_50.convertReference(src.getOrderer()));
067    for (org.hl7.fhir.r4.model.Reference t : src.getAllergyIntolerance())
068      tgt.addAllergyIntolerance(Reference40_50.convertReference(t));
069    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getFoodPreferenceModifier())
070      tgt.addFoodPreferenceModifier(CodeableConcept40_50.convertCodeableConcept(t));
071    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getExcludeFoodModifier())
072      tgt.addExcludeFoodModifier(CodeableConcept40_50.convertCodeableConcept(t));
073    if (src.hasOralDiet())
074      tgt.setOralDiet(convertNutritionOrderOralDietComponent(src.getOralDiet()));
075    for (org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderSupplementComponent t : src.getSupplement())
076      tgt.addSupplement(convertNutritionOrderSupplementComponent(t));
077    if (src.hasEnteralFormula())
078      tgt.setEnteralFormula(convertNutritionOrderEnteralFormulaComponent(src.getEnteralFormula()));
079    for (org.hl7.fhir.r4.model.Annotation t : src.getNote()) tgt.addNote(Annotation40_50.convertAnnotation(t));
080    return tgt;
081  }
082
083  public static org.hl7.fhir.r4.model.NutritionOrder convertNutritionOrder(org.hl7.fhir.r5.model.NutritionOrder src) throws FHIRException {
084    if (src == null)
085      return null;
086    org.hl7.fhir.r4.model.NutritionOrder tgt = new org.hl7.fhir.r4.model.NutritionOrder();
087    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyDomainResource(src, tgt);
088    for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier())
089      tgt.addIdentifier(Identifier40_50.convertIdentifier(t));
090    for (org.hl7.fhir.r5.model.CanonicalType t : src.getInstantiatesCanonical())
091      tgt.getInstantiatesCanonical().add(Canonical40_50.convertCanonical(t));
092    for (org.hl7.fhir.r5.model.UriType t : src.getInstantiatesUri())
093      tgt.getInstantiatesUri().add(Uri40_50.convertUri(t));
094    for (org.hl7.fhir.r5.model.UriType t : src.getInstantiates()) tgt.getInstantiates().add(Uri40_50.convertUri(t));
095    if (src.hasStatus())
096      tgt.setStatusElement(convertNutritionOrderStatus(src.getStatusElement()));
097    if (src.hasIntent())
098      tgt.setIntentElement(convertNutritiionOrderIntent(src.getIntentElement()));
099    if (src.hasPatient())
100      tgt.setPatient(Reference40_50.convertReference(src.getPatient()));
101    if (src.hasEncounter())
102      tgt.setEncounter(Reference40_50.convertReference(src.getEncounter()));
103    if (src.hasDateTime())
104      tgt.setDateTimeElement(DateTime40_50.convertDateTime(src.getDateTimeElement()));
105    if (src.hasOrderer())
106      tgt.setOrderer(Reference40_50.convertReference(src.getOrderer()));
107    for (org.hl7.fhir.r5.model.Reference t : src.getAllergyIntolerance())
108      tgt.addAllergyIntolerance(Reference40_50.convertReference(t));
109    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getFoodPreferenceModifier())
110      tgt.addFoodPreferenceModifier(CodeableConcept40_50.convertCodeableConcept(t));
111    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getExcludeFoodModifier())
112      tgt.addExcludeFoodModifier(CodeableConcept40_50.convertCodeableConcept(t));
113    if (src.hasOralDiet())
114      tgt.setOralDiet(convertNutritionOrderOralDietComponent(src.getOralDiet()));
115    for (org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderSupplementComponent t : src.getSupplement())
116      tgt.addSupplement(convertNutritionOrderSupplementComponent(t));
117    if (src.hasEnteralFormula())
118      tgt.setEnteralFormula(convertNutritionOrderEnteralFormulaComponent(src.getEnteralFormula()));
119    for (org.hl7.fhir.r5.model.Annotation t : src.getNote()) tgt.addNote(Annotation40_50.convertAnnotation(t));
120    return tgt;
121  }
122
123  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.RequestStatus> convertNutritionOrderStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderStatus> src) throws FHIRException {
124    if (src == null || src.isEmpty())
125      return null;
126    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.RequestStatus> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.Enumerations.RequestStatusEnumFactory());
127    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
128    switch (src.getValue()) {
129      case DRAFT:
130        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.RequestStatus.DRAFT);
131        break;
132      case ACTIVE:
133        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.RequestStatus.ACTIVE);
134        break;
135      case ONHOLD:
136        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.RequestStatus.ONHOLD);
137        break;
138      case REVOKED:
139        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.RequestStatus.REVOKED);
140        break;
141      case COMPLETED:
142        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.RequestStatus.COMPLETED);
143        break;
144      case ENTEREDINERROR:
145        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.RequestStatus.ENTEREDINERROR);
146        break;
147      case UNKNOWN:
148        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.RequestStatus.UNKNOWN);
149        break;
150      default:
151        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.RequestStatus.NULL);
152        break;
153    }
154    return tgt;
155  }
156
157  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderStatus> convertNutritionOrderStatus(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.RequestStatus> src) throws FHIRException {
158    if (src == null || src.isEmpty())
159      return null;
160    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderStatus> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderStatusEnumFactory());
161    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
162    switch (src.getValue()) {
163      case DRAFT:
164        tgt.setValue(org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderStatus.DRAFT);
165        break;
166      case ACTIVE:
167        tgt.setValue(org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderStatus.ACTIVE);
168        break;
169      case ONHOLD:
170        tgt.setValue(org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderStatus.ONHOLD);
171        break;
172      case REVOKED:
173        tgt.setValue(org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderStatus.REVOKED);
174        break;
175      case COMPLETED:
176        tgt.setValue(org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderStatus.COMPLETED);
177        break;
178      case ENTEREDINERROR:
179        tgt.setValue(org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderStatus.ENTEREDINERROR);
180        break;
181      case UNKNOWN:
182        tgt.setValue(org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderStatus.UNKNOWN);
183        break;
184      default:
185        tgt.setValue(org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderStatus.NULL);
186        break;
187    }
188    return tgt;
189  }
190
191  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.RequestIntent> convertNutritiionOrderIntent(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.NutritionOrder.NutritiionOrderIntent> src) throws FHIRException {
192    if (src == null || src.isEmpty())
193      return null;
194    org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.RequestIntent> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.Enumerations.RequestIntentEnumFactory());
195    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
196    switch (src.getValue()) {
197      case PROPOSAL:
198        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.RequestIntent.PROPOSAL);
199        break;
200      case PLAN:
201        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.RequestIntent.PLAN);
202        break;
203      case DIRECTIVE:
204        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.RequestIntent.DIRECTIVE);
205        break;
206      case ORDER:
207        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.RequestIntent.ORDER);
208        break;
209      case ORIGINALORDER:
210        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.RequestIntent.ORIGINALORDER);
211        break;
212      case REFLEXORDER:
213        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.RequestIntent.REFLEXORDER);
214        break;
215      case FILLERORDER:
216        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.RequestIntent.FILLERORDER);
217        break;
218      case INSTANCEORDER:
219        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.RequestIntent.INSTANCEORDER);
220        break;
221      case OPTION:
222        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.RequestIntent.OPTION);
223        break;
224      default:
225        tgt.setValue(org.hl7.fhir.r5.model.Enumerations.RequestIntent.NULL);
226        break;
227    }
228    return tgt;
229  }
230
231  static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.NutritionOrder.NutritiionOrderIntent> convertNutritiionOrderIntent(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.Enumerations.RequestIntent> src) throws FHIRException {
232    if (src == null || src.isEmpty())
233      return null;
234    org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.NutritionOrder.NutritiionOrderIntent> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.NutritionOrder.NutritiionOrderIntentEnumFactory());
235    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
236    switch (src.getValue()) {
237      case PROPOSAL:
238        tgt.setValue(org.hl7.fhir.r4.model.NutritionOrder.NutritiionOrderIntent.PROPOSAL);
239        break;
240      case PLAN:
241        tgt.setValue(org.hl7.fhir.r4.model.NutritionOrder.NutritiionOrderIntent.PLAN);
242        break;
243      case DIRECTIVE:
244        tgt.setValue(org.hl7.fhir.r4.model.NutritionOrder.NutritiionOrderIntent.DIRECTIVE);
245        break;
246      case ORDER:
247        tgt.setValue(org.hl7.fhir.r4.model.NutritionOrder.NutritiionOrderIntent.ORDER);
248        break;
249      case ORIGINALORDER:
250        tgt.setValue(org.hl7.fhir.r4.model.NutritionOrder.NutritiionOrderIntent.ORIGINALORDER);
251        break;
252      case REFLEXORDER:
253        tgt.setValue(org.hl7.fhir.r4.model.NutritionOrder.NutritiionOrderIntent.REFLEXORDER);
254        break;
255      case FILLERORDER:
256        tgt.setValue(org.hl7.fhir.r4.model.NutritionOrder.NutritiionOrderIntent.FILLERORDER);
257        break;
258      case INSTANCEORDER:
259        tgt.setValue(org.hl7.fhir.r4.model.NutritionOrder.NutritiionOrderIntent.INSTANCEORDER);
260        break;
261      case OPTION:
262        tgt.setValue(org.hl7.fhir.r4.model.NutritionOrder.NutritiionOrderIntent.OPTION);
263        break;
264      default:
265        tgt.setValue(org.hl7.fhir.r4.model.NutritionOrder.NutritiionOrderIntent.NULL);
266        break;
267    }
268    return tgt;
269  }
270
271  public static org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderOralDietComponent convertNutritionOrderOralDietComponent(org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderOralDietComponent src) throws FHIRException {
272    if (src == null)
273      return null;
274    org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderOralDietComponent tgt = new org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderOralDietComponent();
275    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
276    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getType())
277      tgt.addType(CodeableConcept40_50.convertCodeableConcept(t));
278    for (org.hl7.fhir.r4.model.Timing t : src.getSchedule()) tgt.addSchedule(Timing40_50.convertTiming(t));
279    for (org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderOralDietNutrientComponent t : src.getNutrient())
280      tgt.addNutrient(convertNutritionOrderOralDietNutrientComponent(t));
281    for (org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderOralDietTextureComponent t : src.getTexture())
282      tgt.addTexture(convertNutritionOrderOralDietTextureComponent(t));
283    for (org.hl7.fhir.r4.model.CodeableConcept t : src.getFluidConsistencyType())
284      tgt.addFluidConsistencyType(CodeableConcept40_50.convertCodeableConcept(t));
285    if (src.hasInstruction())
286      tgt.setInstructionElement(String40_50.convertString(src.getInstructionElement()));
287    return tgt;
288  }
289
290  public static org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderOralDietComponent convertNutritionOrderOralDietComponent(org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderOralDietComponent src) throws FHIRException {
291    if (src == null)
292      return null;
293    org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderOralDietComponent tgt = new org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderOralDietComponent();
294    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
295    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getType())
296      tgt.addType(CodeableConcept40_50.convertCodeableConcept(t));
297    for (org.hl7.fhir.r5.model.Timing t : src.getSchedule()) tgt.addSchedule(Timing40_50.convertTiming(t));
298    for (org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderOralDietNutrientComponent t : src.getNutrient())
299      tgt.addNutrient(convertNutritionOrderOralDietNutrientComponent(t));
300    for (org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderOralDietTextureComponent t : src.getTexture())
301      tgt.addTexture(convertNutritionOrderOralDietTextureComponent(t));
302    for (org.hl7.fhir.r5.model.CodeableConcept t : src.getFluidConsistencyType())
303      tgt.addFluidConsistencyType(CodeableConcept40_50.convertCodeableConcept(t));
304    if (src.hasInstruction())
305      tgt.setInstructionElement(String40_50.convertString(src.getInstructionElement()));
306    return tgt;
307  }
308
309  public static org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderOralDietNutrientComponent convertNutritionOrderOralDietNutrientComponent(org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderOralDietNutrientComponent src) throws FHIRException {
310    if (src == null)
311      return null;
312    org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderOralDietNutrientComponent tgt = new org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderOralDietNutrientComponent();
313    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
314    if (src.hasModifier())
315      tgt.setModifier(CodeableConcept40_50.convertCodeableConcept(src.getModifier()));
316    if (src.hasAmount())
317      tgt.setAmount(SimpleQuantity40_50.convertSimpleQuantity(src.getAmount()));
318    return tgt;
319  }
320
321  public static org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderOralDietNutrientComponent convertNutritionOrderOralDietNutrientComponent(org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderOralDietNutrientComponent src) throws FHIRException {
322    if (src == null)
323      return null;
324    org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderOralDietNutrientComponent tgt = new org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderOralDietNutrientComponent();
325    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
326    if (src.hasModifier())
327      tgt.setModifier(CodeableConcept40_50.convertCodeableConcept(src.getModifier()));
328    if (src.hasAmount())
329      tgt.setAmount(SimpleQuantity40_50.convertSimpleQuantity(src.getAmount()));
330    return tgt;
331  }
332
333  public static org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderOralDietTextureComponent convertNutritionOrderOralDietTextureComponent(org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderOralDietTextureComponent src) throws FHIRException {
334    if (src == null)
335      return null;
336    org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderOralDietTextureComponent tgt = new org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderOralDietTextureComponent();
337    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
338    if (src.hasModifier())
339      tgt.setModifier(CodeableConcept40_50.convertCodeableConcept(src.getModifier()));
340    if (src.hasFoodType())
341      tgt.setFoodType(CodeableConcept40_50.convertCodeableConcept(src.getFoodType()));
342    return tgt;
343  }
344
345  public static org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderOralDietTextureComponent convertNutritionOrderOralDietTextureComponent(org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderOralDietTextureComponent src) throws FHIRException {
346    if (src == null)
347      return null;
348    org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderOralDietTextureComponent tgt = new org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderOralDietTextureComponent();
349    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
350    if (src.hasModifier())
351      tgt.setModifier(CodeableConcept40_50.convertCodeableConcept(src.getModifier()));
352    if (src.hasFoodType())
353      tgt.setFoodType(CodeableConcept40_50.convertCodeableConcept(src.getFoodType()));
354    return tgt;
355  }
356
357  public static org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderSupplementComponent convertNutritionOrderSupplementComponent(org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderSupplementComponent src) throws FHIRException {
358    if (src == null)
359      return null;
360    org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderSupplementComponent tgt = new org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderSupplementComponent();
361    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
362    if (src.hasType())
363      tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType()));
364    if (src.hasProductName())
365      tgt.setProductNameElement(String40_50.convertString(src.getProductNameElement()));
366    for (org.hl7.fhir.r4.model.Timing t : src.getSchedule()) tgt.addSchedule(Timing40_50.convertTiming(t));
367    if (src.hasQuantity())
368      tgt.setQuantity(SimpleQuantity40_50.convertSimpleQuantity(src.getQuantity()));
369    if (src.hasInstruction())
370      tgt.setInstructionElement(String40_50.convertString(src.getInstructionElement()));
371    return tgt;
372  }
373
374  public static org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderSupplementComponent convertNutritionOrderSupplementComponent(org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderSupplementComponent src) throws FHIRException {
375    if (src == null)
376      return null;
377    org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderSupplementComponent tgt = new org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderSupplementComponent();
378    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
379    if (src.hasType())
380      tgt.setType(CodeableConcept40_50.convertCodeableConcept(src.getType()));
381    if (src.hasProductName())
382      tgt.setProductNameElement(String40_50.convertString(src.getProductNameElement()));
383    for (org.hl7.fhir.r5.model.Timing t : src.getSchedule()) tgt.addSchedule(Timing40_50.convertTiming(t));
384    if (src.hasQuantity())
385      tgt.setQuantity(SimpleQuantity40_50.convertSimpleQuantity(src.getQuantity()));
386    if (src.hasInstruction())
387      tgt.setInstructionElement(String40_50.convertString(src.getInstructionElement()));
388    return tgt;
389  }
390
391  public static org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderEnteralFormulaComponent convertNutritionOrderEnteralFormulaComponent(org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderEnteralFormulaComponent src) throws FHIRException {
392    if (src == null)
393      return null;
394    org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderEnteralFormulaComponent tgt = new org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderEnteralFormulaComponent();
395    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
396    if (src.hasBaseFormulaType())
397      tgt.setBaseFormulaType(CodeableConcept40_50.convertCodeableConcept(src.getBaseFormulaType()));
398    if (src.hasBaseFormulaProductName())
399      tgt.setBaseFormulaProductNameElement(String40_50.convertString(src.getBaseFormulaProductNameElement()));
400    if (src.hasAdditiveType())
401      tgt.setAdditiveType(CodeableConcept40_50.convertCodeableConcept(src.getAdditiveType()));
402    if (src.hasAdditiveProductName())
403      tgt.setAdditiveProductNameElement(String40_50.convertString(src.getAdditiveProductNameElement()));
404    if (src.hasCaloricDensity())
405      tgt.setCaloricDensity(SimpleQuantity40_50.convertSimpleQuantity(src.getCaloricDensity()));
406    if (src.hasRouteofAdministration())
407      tgt.setRouteofAdministration(CodeableConcept40_50.convertCodeableConcept(src.getRouteofAdministration()));
408    for (org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderEnteralFormulaAdministrationComponent t : src.getAdministration())
409      tgt.addAdministration(convertNutritionOrderEnteralFormulaAdministrationComponent(t));
410    if (src.hasMaxVolumeToDeliver())
411      tgt.setMaxVolumeToDeliver(SimpleQuantity40_50.convertSimpleQuantity(src.getMaxVolumeToDeliver()));
412    if (src.hasAdministrationInstruction())
413      tgt.setAdministrationInstructionElement(String40_50.convertString(src.getAdministrationInstructionElement()));
414    return tgt;
415  }
416
417  public static org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderEnteralFormulaComponent convertNutritionOrderEnteralFormulaComponent(org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderEnteralFormulaComponent src) throws FHIRException {
418    if (src == null)
419      return null;
420    org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderEnteralFormulaComponent tgt = new org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderEnteralFormulaComponent();
421    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
422    if (src.hasBaseFormulaType())
423      tgt.setBaseFormulaType(CodeableConcept40_50.convertCodeableConcept(src.getBaseFormulaType()));
424    if (src.hasBaseFormulaProductName())
425      tgt.setBaseFormulaProductNameElement(String40_50.convertString(src.getBaseFormulaProductNameElement()));
426    if (src.hasAdditiveType())
427      tgt.setAdditiveType(CodeableConcept40_50.convertCodeableConcept(src.getAdditiveType()));
428    if (src.hasAdditiveProductName())
429      tgt.setAdditiveProductNameElement(String40_50.convertString(src.getAdditiveProductNameElement()));
430    if (src.hasCaloricDensity())
431      tgt.setCaloricDensity(SimpleQuantity40_50.convertSimpleQuantity(src.getCaloricDensity()));
432    if (src.hasRouteofAdministration())
433      tgt.setRouteofAdministration(CodeableConcept40_50.convertCodeableConcept(src.getRouteofAdministration()));
434    for (org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderEnteralFormulaAdministrationComponent t : src.getAdministration())
435      tgt.addAdministration(convertNutritionOrderEnteralFormulaAdministrationComponent(t));
436    if (src.hasMaxVolumeToDeliver())
437      tgt.setMaxVolumeToDeliver(SimpleQuantity40_50.convertSimpleQuantity(src.getMaxVolumeToDeliver()));
438    if (src.hasAdministrationInstruction())
439      tgt.setAdministrationInstructionElement(String40_50.convertString(src.getAdministrationInstructionElement()));
440    return tgt;
441  }
442
443  public static org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderEnteralFormulaAdministrationComponent convertNutritionOrderEnteralFormulaAdministrationComponent(org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderEnteralFormulaAdministrationComponent src) throws FHIRException {
444    if (src == null)
445      return null;
446    org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderEnteralFormulaAdministrationComponent tgt = new org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderEnteralFormulaAdministrationComponent();
447    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
448    if (src.hasSchedule())
449      tgt.setSchedule(Timing40_50.convertTiming(src.getSchedule()));
450    if (src.hasQuantity())
451      tgt.setQuantity(SimpleQuantity40_50.convertSimpleQuantity(src.getQuantity()));
452    if (src.hasRate())
453      tgt.setRate(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getRate()));
454    return tgt;
455  }
456
457  public static org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderEnteralFormulaAdministrationComponent convertNutritionOrderEnteralFormulaAdministrationComponent(org.hl7.fhir.r5.model.NutritionOrder.NutritionOrderEnteralFormulaAdministrationComponent src) throws FHIRException {
458    if (src == null)
459      return null;
460    org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderEnteralFormulaAdministrationComponent tgt = new org.hl7.fhir.r4.model.NutritionOrder.NutritionOrderEnteralFormulaAdministrationComponent();
461    ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt);
462    if (src.hasSchedule())
463      tgt.setSchedule(Timing40_50.convertTiming(src.getSchedule()));
464    if (src.hasQuantity())
465      tgt.setQuantity(SimpleQuantity40_50.convertSimpleQuantity(src.getQuantity()));
466    if (src.hasRate())
467      tgt.setRate(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getRate()));
468    return tgt;
469  }
470}