fhirbolt_model/generated/r5/resources/
nutrition_order.rs

1// Generated on 2023-05-17 by fhirbolt-codegen v0.10.0
2#[doc = "The rate of administration of formula via a feeding pump, e.g. 60 mL per hour, according to the specified schedule."]
3#[derive(Default, Debug, Clone, PartialEq)]
4pub enum NutritionOrderEnteralFormulaAdministrationRate {
5    Quantity(Box<super::super::types::Quantity>),
6    Ratio(Box<super::super::types::Ratio>),
7    #[default]
8    Invalid,
9}
10#[doc = "Schedule information for an oral diet."]
11#[derive(Debug, Clone, PartialEq)]
12pub struct NutritionOrderOralDietSchedule {
13    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
14    pub r#id: Option<std::string::String>,
15    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
16    pub r#extension: Vec<super::super::types::Extension>,
17    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
18    pub r#modifier_extension: Vec<super::super::types::Extension>,
19    #[doc = "The time period and frequency at which the diet should be given.  The diet should be given for the combination of all schedules if more than one schedule is present."]
20    pub r#timing: Vec<super::super::types::Timing>,
21    #[doc = "Indicates whether the product is only taken when needed within a specific dosing schedule."]
22    pub r#as_needed: Option<super::super::types::Boolean>,
23    #[doc = "Indicates whether the product is only taken based on a precondition for taking the product."]
24    pub r#as_needed_for: Option<Box<super::super::types::CodeableConcept>>,
25}
26#[allow(clippy::derivable_impls)]
27impl Default for NutritionOrderOralDietSchedule {
28    fn default() -> Self {
29        Self {
30            r#id: Default::default(),
31            r#extension: Default::default(),
32            r#modifier_extension: Default::default(),
33            r#timing: Default::default(),
34            r#as_needed: Default::default(),
35            r#as_needed_for: Default::default(),
36        }
37    }
38}
39#[doc = "Class that defines the quantity and type of nutrient modifications (for example carbohydrate, fiber or sodium) required for the oral diet."]
40#[derive(Debug, Clone, PartialEq)]
41pub struct NutritionOrderOralDietNutrient {
42    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
43    pub r#id: Option<std::string::String>,
44    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
45    pub r#extension: Vec<super::super::types::Extension>,
46    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
47    pub r#modifier_extension: Vec<super::super::types::Extension>,
48    #[doc = "The nutrient that is being modified such as carbohydrate or sodium."]
49    pub r#modifier: Option<Box<super::super::types::CodeableConcept>>,
50    #[doc = "The quantity of the specified nutrient to include in diet."]
51    pub r#amount: Option<Box<super::super::types::Quantity>>,
52}
53#[allow(clippy::derivable_impls)]
54impl Default for NutritionOrderOralDietNutrient {
55    fn default() -> Self {
56        Self {
57            r#id: Default::default(),
58            r#extension: Default::default(),
59            r#modifier_extension: Default::default(),
60            r#modifier: Default::default(),
61            r#amount: Default::default(),
62        }
63    }
64}
65#[doc = "Class that describes any texture modifications required for the patient to safely consume various types of solid foods."]
66#[derive(Debug, Clone, PartialEq)]
67pub struct NutritionOrderOralDietTexture {
68    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
69    pub r#id: Option<std::string::String>,
70    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
71    pub r#extension: Vec<super::super::types::Extension>,
72    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
73    pub r#modifier_extension: Vec<super::super::types::Extension>,
74    #[doc = "Any texture modifications (for solid foods) that should be made, e.g. easy to chew, chopped, ground, and pureed."]
75    pub r#modifier: Option<Box<super::super::types::CodeableConcept>>,
76    #[doc = "The food type(s) (e.g. meats, all foods)  that the texture modification applies to.  This could be all foods types."]
77    pub r#food_type: Option<Box<super::super::types::CodeableConcept>>,
78}
79#[allow(clippy::derivable_impls)]
80impl Default for NutritionOrderOralDietTexture {
81    fn default() -> Self {
82        Self {
83            r#id: Default::default(),
84            r#extension: Default::default(),
85            r#modifier_extension: Default::default(),
86            r#modifier: Default::default(),
87            r#food_type: Default::default(),
88        }
89    }
90}
91#[doc = "Diet given orally in contrast to enteral (tube) feeding."]
92#[derive(Debug, Clone, PartialEq)]
93pub struct NutritionOrderOralDiet {
94    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
95    pub r#id: Option<std::string::String>,
96    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
97    pub r#extension: Vec<super::super::types::Extension>,
98    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
99    pub r#modifier_extension: Vec<super::super::types::Extension>,
100    #[doc = "The kind of diet or dietary restriction such as fiber restricted diet or diabetic diet."]
101    pub r#type: Vec<super::super::types::CodeableConcept>,
102    #[doc = "Schedule information for an oral diet."]
103    pub r#schedule: Option<NutritionOrderOralDietSchedule>,
104    #[doc = "Class that defines the quantity and type of nutrient modifications (for example carbohydrate, fiber or sodium) required for the oral diet."]
105    pub r#nutrient: Vec<NutritionOrderOralDietNutrient>,
106    #[doc = "Class that describes any texture modifications required for the patient to safely consume various types of solid foods."]
107    pub r#texture: Vec<NutritionOrderOralDietTexture>,
108    #[doc = "The required consistency (e.g. honey-thick, nectar-thick, thin, thickened.) of liquids or fluids served to the patient."]
109    pub r#fluid_consistency_type: Vec<super::super::types::CodeableConcept>,
110    #[doc = "Free text or additional instructions or information pertaining to the oral diet."]
111    pub r#instruction: Option<super::super::types::String>,
112}
113#[allow(clippy::derivable_impls)]
114impl Default for NutritionOrderOralDiet {
115    fn default() -> Self {
116        Self {
117            r#id: Default::default(),
118            r#extension: Default::default(),
119            r#modifier_extension: Default::default(),
120            r#type: Default::default(),
121            r#schedule: Default::default(),
122            r#nutrient: Default::default(),
123            r#texture: Default::default(),
124            r#fluid_consistency_type: Default::default(),
125            r#instruction: Default::default(),
126        }
127    }
128}
129#[doc = "Schedule information for a supplement."]
130#[derive(Debug, Clone, PartialEq)]
131pub struct NutritionOrderSupplementSchedule {
132    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
133    pub r#id: Option<std::string::String>,
134    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
135    pub r#extension: Vec<super::super::types::Extension>,
136    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
137    pub r#modifier_extension: Vec<super::super::types::Extension>,
138    #[doc = "The time period and frequency at which the supplement should be given.  The supplement should be given for the combination of all schedules if more than one schedule is present."]
139    pub r#timing: Vec<super::super::types::Timing>,
140    #[doc = "Indicates whether the supplement is only taken when needed within a specific dosing schedule."]
141    pub r#as_needed: Option<super::super::types::Boolean>,
142    #[doc = "Indicates whether the supplement is only taken based on a precondition for taking the supplement."]
143    pub r#as_needed_for: Option<Box<super::super::types::CodeableConcept>>,
144}
145#[allow(clippy::derivable_impls)]
146impl Default for NutritionOrderSupplementSchedule {
147    fn default() -> Self {
148        Self {
149            r#id: Default::default(),
150            r#extension: Default::default(),
151            r#modifier_extension: Default::default(),
152            r#timing: Default::default(),
153            r#as_needed: Default::default(),
154            r#as_needed_for: Default::default(),
155        }
156    }
157}
158#[doc = "Oral nutritional products given in order to add further nutritional value to the patient's diet."]
159#[derive(Debug, Clone, PartialEq)]
160pub struct NutritionOrderSupplement {
161    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
162    pub r#id: Option<std::string::String>,
163    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
164    pub r#extension: Vec<super::super::types::Extension>,
165    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
166    pub r#modifier_extension: Vec<super::super::types::Extension>,
167    #[doc = "The kind of nutritional supplement product required such as a high protein or pediatric clear liquid supplement."]
168    pub r#type: Option<Box<super::super::types::CodeableReference>>,
169    #[doc = "The product or brand name of the nutritional supplement such as \"Acme Protein Shake\"."]
170    pub r#product_name: Option<super::super::types::String>,
171    #[doc = "Schedule information for a supplement."]
172    pub r#schedule: Option<NutritionOrderSupplementSchedule>,
173    #[doc = "The amount of the nutritional supplement to be given."]
174    pub r#quantity: Option<Box<super::super::types::Quantity>>,
175    #[doc = "Free text or additional instructions or information pertaining to the oral supplement."]
176    pub r#instruction: Option<super::super::types::String>,
177}
178#[allow(clippy::derivable_impls)]
179impl Default for NutritionOrderSupplement {
180    fn default() -> Self {
181        Self {
182            r#id: Default::default(),
183            r#extension: Default::default(),
184            r#modifier_extension: Default::default(),
185            r#type: Default::default(),
186            r#product_name: Default::default(),
187            r#schedule: Default::default(),
188            r#quantity: Default::default(),
189            r#instruction: Default::default(),
190        }
191    }
192}
193#[doc = "Indicates modular components to be provided in addition or mixed with the base formula."]
194#[derive(Debug, Clone, PartialEq)]
195pub struct NutritionOrderEnteralFormulaAdditive {
196    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
197    pub r#id: Option<std::string::String>,
198    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
199    pub r#extension: Vec<super::super::types::Extension>,
200    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
201    pub r#modifier_extension: Vec<super::super::types::Extension>,
202    #[doc = "Indicates the type of modular component such as protein, carbohydrate, fat or fiber to be provided in addition to or mixed with the base formula."]
203    pub r#type: Option<Box<super::super::types::CodeableReference>>,
204    #[doc = "The product or brand name of the type of modular component to be added to the formula."]
205    pub r#product_name: Option<super::super::types::String>,
206    #[doc = "The amount of additive to be given in addition or to be mixed in with the base formula."]
207    pub r#quantity: Option<Box<super::super::types::Quantity>>,
208}
209#[allow(clippy::derivable_impls)]
210impl Default for NutritionOrderEnteralFormulaAdditive {
211    fn default() -> Self {
212        Self {
213            r#id: Default::default(),
214            r#extension: Default::default(),
215            r#modifier_extension: Default::default(),
216            r#type: Default::default(),
217            r#product_name: Default::default(),
218            r#quantity: Default::default(),
219        }
220    }
221}
222#[doc = "Schedule information for an enteral formula."]
223#[derive(Debug, Clone, PartialEq)]
224pub struct NutritionOrderEnteralFormulaAdministrationSchedule {
225    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
226    pub r#id: Option<std::string::String>,
227    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
228    pub r#extension: Vec<super::super::types::Extension>,
229    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
230    pub r#modifier_extension: Vec<super::super::types::Extension>,
231    #[doc = "The time period and frequency at which the enteral formula should be given.  The enteral formula should be given for the combination of all schedules if more than one schedule is present."]
232    pub r#timing: Vec<super::super::types::Timing>,
233    #[doc = "Indicates whether the enteral formula is only taken when needed within a specific dosing schedule."]
234    pub r#as_needed: Option<super::super::types::Boolean>,
235    #[doc = "Indicates whether the enteral formula is only taken based on a precondition for taking the enteral formula."]
236    pub r#as_needed_for: Option<Box<super::super::types::CodeableConcept>>,
237}
238#[allow(clippy::derivable_impls)]
239impl Default for NutritionOrderEnteralFormulaAdministrationSchedule {
240    fn default() -> Self {
241        Self {
242            r#id: Default::default(),
243            r#extension: Default::default(),
244            r#modifier_extension: Default::default(),
245            r#timing: Default::default(),
246            r#as_needed: Default::default(),
247            r#as_needed_for: Default::default(),
248        }
249    }
250}
251#[doc = "Formula administration instructions as structured data.  This repeating structure allows for changing the administration rate or volume over time for both bolus and continuous feeding.  An example of this would be an instruction to increase the rate of continuous feeding every 2 hours."]
252#[derive(Debug, Clone, PartialEq)]
253pub struct NutritionOrderEnteralFormulaAdministration {
254    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
255    pub r#id: Option<std::string::String>,
256    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
257    pub r#extension: Vec<super::super::types::Extension>,
258    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
259    pub r#modifier_extension: Vec<super::super::types::Extension>,
260    #[doc = "Schedule information for an enteral formula."]
261    pub r#schedule: Option<NutritionOrderEnteralFormulaAdministrationSchedule>,
262    #[doc = "The volume of formula to provide to the patient per the specified administration schedule."]
263    pub r#quantity: Option<Box<super::super::types::Quantity>>,
264    #[doc = "The rate of administration of formula via a feeding pump, e.g. 60 mL per hour, according to the specified schedule."]
265    pub r#rate: Option<NutritionOrderEnteralFormulaAdministrationRate>,
266}
267#[allow(clippy::derivable_impls)]
268impl Default for NutritionOrderEnteralFormulaAdministration {
269    fn default() -> Self {
270        Self {
271            r#id: Default::default(),
272            r#extension: Default::default(),
273            r#modifier_extension: Default::default(),
274            r#schedule: Default::default(),
275            r#quantity: Default::default(),
276            r#rate: Default::default(),
277        }
278    }
279}
280#[doc = "Feeding provided through the gastrointestinal tract via a tube, catheter, or stoma that delivers nutrition distal to the oral cavity."]
281#[derive(Debug, Clone, PartialEq)]
282pub struct NutritionOrderEnteralFormula {
283    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
284    pub r#id: Option<std::string::String>,
285    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
286    pub r#extension: Vec<super::super::types::Extension>,
287    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
288    pub r#modifier_extension: Vec<super::super::types::Extension>,
289    #[doc = "The type of enteral or infant formula such as an adult standard formula with fiber or a soy-based infant formula."]
290    pub r#base_formula_type: Option<Box<super::super::types::CodeableReference>>,
291    #[doc = "The product or brand name of the enteral or infant formula product such as \"ACME Adult Standard Formula\"."]
292    pub r#base_formula_product_name: Option<super::super::types::String>,
293    #[doc = "The intended type of device that is to be used for the administration of the enteral formula."]
294    pub r#delivery_device: Vec<super::super::types::CodeableReference>,
295    #[doc = "Indicates modular components to be provided in addition or mixed with the base formula."]
296    pub r#additive: Vec<NutritionOrderEnteralFormulaAdditive>,
297    #[doc = "The amount of energy (calories) that the formula should provide per specified volume, typically per mL or fluid oz.  For example, an infant may require a formula that provides 24 calories per fluid ounce or an adult may require an enteral formula that provides 1.5 calorie/mL."]
298    pub r#caloric_density: Option<Box<super::super::types::Quantity>>,
299    #[doc = "The route or physiological path of administration into the patient's gastrointestinal  tract for purposes of providing the formula feeding, e.g. nasogastric tube."]
300    pub r#route_of_administration: Option<Box<super::super::types::CodeableConcept>>,
301    #[doc = "Formula administration instructions as structured data.  This repeating structure allows for changing the administration rate or volume over time for both bolus and continuous feeding.  An example of this would be an instruction to increase the rate of continuous feeding every 2 hours."]
302    pub r#administration: Vec<NutritionOrderEnteralFormulaAdministration>,
303    #[doc = "The maximum total quantity of formula that may be administered to a subject over the period of time, e.g. 1440 mL over 24 hours."]
304    pub r#max_volume_to_deliver: Option<Box<super::super::types::Quantity>>,
305    #[doc = "Free text formula administration, feeding instructions or additional instructions or information."]
306    pub r#administration_instruction: Option<super::super::types::Markdown>,
307}
308#[allow(clippy::derivable_impls)]
309impl Default for NutritionOrderEnteralFormula {
310    fn default() -> Self {
311        Self {
312            r#id: Default::default(),
313            r#extension: Default::default(),
314            r#modifier_extension: Default::default(),
315            r#base_formula_type: Default::default(),
316            r#base_formula_product_name: Default::default(),
317            r#delivery_device: Default::default(),
318            r#additive: Default::default(),
319            r#caloric_density: Default::default(),
320            r#route_of_administration: Default::default(),
321            r#administration: Default::default(),
322            r#max_volume_to_deliver: Default::default(),
323            r#administration_instruction: Default::default(),
324        }
325    }
326}
327#[doc = "A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident."]
328#[derive(Debug, Clone, PartialEq)]
329pub struct NutritionOrder {
330    #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
331    pub r#id: Option<super::super::types::Id>,
332    #[doc = "The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource."]
333    pub r#meta: Option<Box<super::super::types::Meta>>,
334    #[doc = "A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc."]
335    pub r#implicit_rules: Option<super::super::types::Uri>,
336    #[doc = "The base language in which the resource is written."]
337    pub r#language: Option<super::super::types::Code>,
338    #[doc = "A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety."]
339    pub r#text: Option<Box<super::super::types::Narrative>>,
340    #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning."]
341    pub r#contained: Vec<super::super::Resource>,
342    #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
343    pub r#extension: Vec<super::super::types::Extension>,
344    #[doc = "May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
345    pub r#modifier_extension: Vec<super::super::types::Extension>,
346    #[doc = "Identifiers assigned to this order by the order sender or by the order receiver."]
347    pub r#identifier: Vec<super::super::types::Identifier>,
348    #[doc = "The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this NutritionOrder."]
349    pub r#instantiates_canonical: Vec<super::super::types::Canonical>,
350    #[doc = "The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this NutritionOrder."]
351    pub r#instantiates_uri: Vec<super::super::types::Uri>,
352    #[doc = "The URL pointing to a protocol, guideline, orderset or other definition that is adhered to in whole or in part by this NutritionOrder."]
353    pub r#instantiates: Vec<super::super::types::Uri>,
354    #[doc = "A plan or request that is fulfilled in whole or in part by this nutrition order."]
355    pub r#based_on: Vec<super::super::types::Reference>,
356    #[doc = "A shared identifier common to all nutrition orders that were authorized more or less simultaneously by a single author, representing the composite or group identifier."]
357    pub r#group_identifier: Option<Box<super::super::types::Identifier>>,
358    #[doc = "The workflow status of the nutrition order/request."]
359    pub r#status: super::super::types::Code,
360    #[doc = "Indicates the level of authority/intentionality associated with the NutrionOrder and where the request fits into the workflow chain."]
361    pub r#intent: super::super::types::Code,
362    #[doc = "Indicates how quickly the Nutrition Order should be addressed with respect to other        requests."]
363    pub r#priority: Option<super::super::types::Code>,
364    #[doc = "The person or set of individuals who needs the nutrition order for an oral diet, nutritional supplement and/or enteral or formula feeding."]
365    pub r#subject: Box<super::super::types::Reference>,
366    #[doc = "An encounter that provides additional information about the healthcare context in which this request is made."]
367    pub r#encounter: Option<Box<super::super::types::Reference>>,
368    #[doc = "Information to support fulfilling (i.e. dispensing or administering) of the nutrition,        for example, patient height and weight)."]
369    pub r#supporting_information: Vec<super::super::types::Reference>,
370    #[doc = "The date and time that this nutrition order was requested."]
371    pub r#date_time: super::super::types::DateTime,
372    #[doc = "The practitioner that holds legal responsibility for ordering the diet, nutritional supplement, or formula feedings."]
373    pub r#orderer: Option<Box<super::super::types::Reference>>,
374    #[doc = "The specified desired performer of the nutrition order."]
375    pub r#performer: Vec<super::super::types::CodeableReference>,
376    #[doc = "A link to a record of allergies or intolerances  which should be included in the nutrition order."]
377    pub r#allergy_intolerance: Vec<super::super::types::Reference>,
378    #[doc = "This modifier is used to convey order-specific modifiers about the type of food that should be given. These can be derived from patient allergies, intolerances, or preferences such as Halal, Vegan or Kosher. This modifier applies to the entire nutrition order inclusive of the oral diet, nutritional supplements and enteral formula feedings."]
379    pub r#food_preference_modifier: Vec<super::super::types::CodeableConcept>,
380    #[doc = "This modifier is used to convey Order-specific modifier about the type of oral food or oral fluids that should not be given. These can be derived from patient allergies, intolerances, or preferences such as No Red Meat, No Soy or No Wheat or  Gluten-Free.  While it should not be necessary to repeat allergy or intolerance information captured in the referenced AllergyIntolerance resource in the excludeFoodModifier, this element may be used to convey additional specificity related to foods that should be eliminated from the patient’s diet for any reason.  This modifier applies to the entire nutrition order inclusive of the oral diet, nutritional supplements and enteral formula feedings."]
381    pub r#exclude_food_modifier: Vec<super::super::types::CodeableConcept>,
382    #[doc = "This modifier is used to convey whether a food item is allowed to be brought in by the patient and/or family.  If set to true, indicates that the receiving system does not need to supply the food item."]
383    pub r#outside_food_allowed: Option<super::super::types::Boolean>,
384    #[doc = "Diet given orally in contrast to enteral (tube) feeding."]
385    pub r#oral_diet: Option<NutritionOrderOralDiet>,
386    #[doc = "Oral nutritional products given in order to add further nutritional value to the patient's diet."]
387    pub r#supplement: Vec<NutritionOrderSupplement>,
388    #[doc = "Feeding provided through the gastrointestinal tract via a tube, catheter, or stoma that delivers nutrition distal to the oral cavity."]
389    pub r#enteral_formula: Option<NutritionOrderEnteralFormula>,
390    #[doc = "Comments made about the {{title}} by the requester, performer, subject or other participants."]
391    pub r#note: Vec<super::super::types::Annotation>,
392}
393#[allow(clippy::derivable_impls)]
394impl Default for NutritionOrder {
395    fn default() -> Self {
396        Self {
397            r#id: Default::default(),
398            r#meta: Default::default(),
399            r#implicit_rules: Default::default(),
400            r#language: Default::default(),
401            r#text: Default::default(),
402            r#contained: Default::default(),
403            r#extension: Default::default(),
404            r#modifier_extension: Default::default(),
405            r#identifier: Default::default(),
406            r#instantiates_canonical: Default::default(),
407            r#instantiates_uri: Default::default(),
408            r#instantiates: Default::default(),
409            r#based_on: Default::default(),
410            r#group_identifier: Default::default(),
411            r#status: super::super::types::Code {
412                id: Some("$invalid".to_string()),
413                ..Default::default()
414            },
415            r#intent: super::super::types::Code {
416                id: Some("$invalid".to_string()),
417                ..Default::default()
418            },
419            r#priority: Default::default(),
420            r#subject: Box::new(super::super::types::Reference {
421                id: Some("$invalid".to_string()),
422                ..Default::default()
423            }),
424            r#encounter: Default::default(),
425            r#supporting_information: Default::default(),
426            r#date_time: super::super::types::DateTime {
427                id: Some("$invalid".to_string()),
428                ..Default::default()
429            },
430            r#orderer: Default::default(),
431            r#performer: Default::default(),
432            r#allergy_intolerance: Default::default(),
433            r#food_preference_modifier: Default::default(),
434            r#exclude_food_modifier: Default::default(),
435            r#outside_food_allowed: Default::default(),
436            r#oral_diet: Default::default(),
437            r#supplement: Default::default(),
438            r#enteral_formula: Default::default(),
439            r#note: Default::default(),
440        }
441    }
442}