fhirbolt_model/generated/r4/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 = "Class that defines the quantity and type of nutrient modifications (for example carbohydrate, fiber or sodium) required for the oral diet."]
11#[derive(Debug, Clone, PartialEq)]
12pub struct NutritionOrderOralDietNutrient {
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 manageable, 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 manageable, 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 nutrient that is being modified such as carbohydrate or sodium."]
20    pub r#modifier: Option<Box<super::super::types::CodeableConcept>>,
21    #[doc = "The quantity of the specified nutrient to include in diet."]
22    pub r#amount: Option<Box<super::super::types::Quantity>>,
23}
24#[allow(clippy::derivable_impls)]
25impl Default for NutritionOrderOralDietNutrient {
26    fn default() -> Self {
27        Self {
28            r#id: Default::default(),
29            r#extension: Default::default(),
30            r#modifier_extension: Default::default(),
31            r#modifier: Default::default(),
32            r#amount: Default::default(),
33        }
34    }
35}
36#[doc = "Class that describes any texture modifications required for the patient to safely consume various types of solid foods."]
37#[derive(Debug, Clone, PartialEq)]
38pub struct NutritionOrderOralDietTexture {
39    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
40    pub r#id: Option<std::string::String>,
41    #[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 manageable, 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."]
42    pub r#extension: Vec<super::super::types::Extension>,
43    #[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 manageable, 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)."]
44    pub r#modifier_extension: Vec<super::super::types::Extension>,
45    #[doc = "Any texture modifications (for solid foods) that should be made, e.g. easy to chew, chopped, ground, and pureed."]
46    pub r#modifier: Option<Box<super::super::types::CodeableConcept>>,
47    #[doc = "The food type(s) (e.g. meats, all foods)  that the texture modification applies to.  This could be all foods types."]
48    pub r#food_type: Option<Box<super::super::types::CodeableConcept>>,
49}
50#[allow(clippy::derivable_impls)]
51impl Default for NutritionOrderOralDietTexture {
52    fn default() -> Self {
53        Self {
54            r#id: Default::default(),
55            r#extension: Default::default(),
56            r#modifier_extension: Default::default(),
57            r#modifier: Default::default(),
58            r#food_type: Default::default(),
59        }
60    }
61}
62#[doc = "Diet given orally in contrast to enteral (tube) feeding."]
63#[derive(Debug, Clone, PartialEq)]
64pub struct NutritionOrderOralDiet {
65    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
66    pub r#id: Option<std::string::String>,
67    #[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 manageable, 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."]
68    pub r#extension: Vec<super::super::types::Extension>,
69    #[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 manageable, 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)."]
70    pub r#modifier_extension: Vec<super::super::types::Extension>,
71    #[doc = "The kind of diet or dietary restriction such as fiber restricted diet or diabetic diet."]
72    pub r#type: Vec<super::super::types::CodeableConcept>,
73    #[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."]
74    pub r#schedule: Vec<super::super::types::Timing>,
75    #[doc = "Class that defines the quantity and type of nutrient modifications (for example carbohydrate, fiber or sodium) required for the oral diet."]
76    pub r#nutrient: Vec<NutritionOrderOralDietNutrient>,
77    #[doc = "Class that describes any texture modifications required for the patient to safely consume various types of solid foods."]
78    pub r#texture: Vec<NutritionOrderOralDietTexture>,
79    #[doc = "The required consistency (e.g. honey-thick, nectar-thick, thin, thickened.) of liquids or fluids served to the patient."]
80    pub r#fluid_consistency_type: Vec<super::super::types::CodeableConcept>,
81    #[doc = "Free text or additional instructions or information pertaining to the oral diet."]
82    pub r#instruction: Option<super::super::types::String>,
83}
84#[allow(clippy::derivable_impls)]
85impl Default for NutritionOrderOralDiet {
86    fn default() -> Self {
87        Self {
88            r#id: Default::default(),
89            r#extension: Default::default(),
90            r#modifier_extension: Default::default(),
91            r#type: Default::default(),
92            r#schedule: Default::default(),
93            r#nutrient: Default::default(),
94            r#texture: Default::default(),
95            r#fluid_consistency_type: Default::default(),
96            r#instruction: Default::default(),
97        }
98    }
99}
100#[doc = "Oral nutritional products given in order to add further nutritional value to the patient's diet."]
101#[derive(Debug, Clone, PartialEq)]
102pub struct NutritionOrderSupplement {
103    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
104    pub r#id: Option<std::string::String>,
105    #[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 manageable, 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."]
106    pub r#extension: Vec<super::super::types::Extension>,
107    #[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 manageable, 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)."]
108    pub r#modifier_extension: Vec<super::super::types::Extension>,
109    #[doc = "The kind of nutritional supplement product required such as a high protein or pediatric clear liquid supplement."]
110    pub r#type: Option<Box<super::super::types::CodeableConcept>>,
111    #[doc = "The product or brand name of the nutritional supplement such as \"Acme Protein Shake\"."]
112    pub r#product_name: Option<super::super::types::String>,
113    #[doc = "The time period and frequency at which the supplement(s) should be given.  The supplement should be given for the combination of all schedules if more than one schedule is present."]
114    pub r#schedule: Vec<super::super::types::Timing>,
115    #[doc = "The amount of the nutritional supplement to be given."]
116    pub r#quantity: Option<Box<super::super::types::Quantity>>,
117    #[doc = "Free text or additional instructions or information pertaining to the oral supplement."]
118    pub r#instruction: Option<super::super::types::String>,
119}
120#[allow(clippy::derivable_impls)]
121impl Default for NutritionOrderSupplement {
122    fn default() -> Self {
123        Self {
124            r#id: Default::default(),
125            r#extension: Default::default(),
126            r#modifier_extension: Default::default(),
127            r#type: Default::default(),
128            r#product_name: Default::default(),
129            r#schedule: Default::default(),
130            r#quantity: Default::default(),
131            r#instruction: Default::default(),
132        }
133    }
134}
135#[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."]
136#[derive(Debug, Clone, PartialEq)]
137pub struct NutritionOrderEnteralFormulaAdministration {
138    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
139    pub r#id: Option<std::string::String>,
140    #[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 manageable, 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."]
141    pub r#extension: Vec<super::super::types::Extension>,
142    #[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 manageable, 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)."]
143    pub r#modifier_extension: Vec<super::super::types::Extension>,
144    #[doc = "The time period and frequency at which the enteral formula should be delivered to the patient."]
145    pub r#schedule: Option<Box<super::super::types::Timing>>,
146    #[doc = "The volume of formula to provide to the patient per the specified administration schedule."]
147    pub r#quantity: Option<Box<super::super::types::Quantity>>,
148    #[doc = "The rate of administration of formula via a feeding pump, e.g. 60 mL per hour, according to the specified schedule."]
149    pub r#rate: Option<NutritionOrderEnteralFormulaAdministrationRate>,
150}
151#[allow(clippy::derivable_impls)]
152impl Default for NutritionOrderEnteralFormulaAdministration {
153    fn default() -> Self {
154        Self {
155            r#id: Default::default(),
156            r#extension: Default::default(),
157            r#modifier_extension: Default::default(),
158            r#schedule: Default::default(),
159            r#quantity: Default::default(),
160            r#rate: Default::default(),
161        }
162    }
163}
164#[doc = "Feeding provided through the gastrointestinal tract via a tube, catheter, or stoma that delivers nutrition distal to the oral cavity."]
165#[derive(Debug, Clone, PartialEq)]
166pub struct NutritionOrderEnteralFormula {
167    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
168    pub r#id: Option<std::string::String>,
169    #[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 manageable, 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."]
170    pub r#extension: Vec<super::super::types::Extension>,
171    #[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 manageable, 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)."]
172    pub r#modifier_extension: Vec<super::super::types::Extension>,
173    #[doc = "The type of enteral or infant formula such as an adult standard formula with fiber or a soy-based infant formula."]
174    pub r#base_formula_type: Option<Box<super::super::types::CodeableConcept>>,
175    #[doc = "The product or brand name of the enteral or infant formula product such as \"ACME Adult Standard Formula\"."]
176    pub r#base_formula_product_name: Option<super::super::types::String>,
177    #[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."]
178    pub r#additive_type: Option<Box<super::super::types::CodeableConcept>>,
179    #[doc = "The product or brand name of the type of modular component to be added to the formula."]
180    pub r#additive_product_name: Option<super::super::types::String>,
181    #[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."]
182    pub r#caloric_density: Option<Box<super::super::types::Quantity>>,
183    #[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."]
184    pub r#routeof_administration: Option<Box<super::super::types::CodeableConcept>>,
185    #[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."]
186    pub r#administration: Vec<NutritionOrderEnteralFormulaAdministration>,
187    #[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."]
188    pub r#max_volume_to_deliver: Option<Box<super::super::types::Quantity>>,
189    #[doc = "Free text formula administration, feeding instructions or additional instructions or information."]
190    pub r#administration_instruction: Option<super::super::types::String>,
191}
192#[allow(clippy::derivable_impls)]
193impl Default for NutritionOrderEnteralFormula {
194    fn default() -> Self {
195        Self {
196            r#id: Default::default(),
197            r#extension: Default::default(),
198            r#modifier_extension: Default::default(),
199            r#base_formula_type: Default::default(),
200            r#base_formula_product_name: Default::default(),
201            r#additive_type: Default::default(),
202            r#additive_product_name: Default::default(),
203            r#caloric_density: Default::default(),
204            r#routeof_administration: Default::default(),
205            r#administration: Default::default(),
206            r#max_volume_to_deliver: Default::default(),
207            r#administration_instruction: Default::default(),
208        }
209    }
210}
211#[doc = "A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident."]
212#[derive(Debug, Clone, PartialEq)]
213pub struct NutritionOrder {
214    #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
215    pub r#id: Option<super::super::types::Id>,
216    #[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."]
217    pub r#meta: Option<Box<super::super::types::Meta>>,
218    #[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."]
219    pub r#implicit_rules: Option<super::super::types::Uri>,
220    #[doc = "The base language in which the resource is written."]
221    pub r#language: Option<super::super::types::Code>,
222    #[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."]
223    pub r#text: Option<Box<super::super::types::Narrative>>,
224    #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
225    pub r#contained: Vec<super::super::Resource>,
226    #[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 manageable, 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."]
227    pub r#extension: Vec<super::super::types::Extension>,
228    #[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 manageable, 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)."]
229    pub r#modifier_extension: Vec<super::super::types::Extension>,
230    #[doc = "Identifiers assigned to this order by the order sender or by the order receiver."]
231    pub r#identifier: Vec<super::super::types::Identifier>,
232    #[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."]
233    pub r#instantiates_canonical: Vec<super::super::types::Canonical>,
234    #[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."]
235    pub r#instantiates_uri: Vec<super::super::types::Uri>,
236    #[doc = "The URL pointing to a protocol, guideline, orderset or other definition that is adhered to in whole or in part by this NutritionOrder."]
237    pub r#instantiates: Vec<super::super::types::Uri>,
238    #[doc = "The workflow status of the nutrition order/request."]
239    pub r#status: super::super::types::Code,
240    #[doc = "Indicates the level of authority/intentionality associated with the NutrionOrder and where the request fits into the workflow chain."]
241    pub r#intent: super::super::types::Code,
242    #[doc = "The person (patient) who needs the nutrition order for an oral diet, nutritional supplement and/or enteral or formula feeding."]
243    pub r#patient: Box<super::super::types::Reference>,
244    #[doc = "An encounter that provides additional information about the healthcare context in which this request is made."]
245    pub r#encounter: Option<Box<super::super::types::Reference>>,
246    #[doc = "The date and time that this nutrition order was requested."]
247    pub r#date_time: super::super::types::DateTime,
248    #[doc = "The practitioner that holds legal responsibility for ordering the diet, nutritional supplement, or formula feedings."]
249    pub r#orderer: Option<Box<super::super::types::Reference>>,
250    #[doc = "A link to a record of allergies or intolerances  which should be included in the nutrition order."]
251    pub r#allergy_intolerance: Vec<super::super::types::Reference>,
252    #[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."]
253    pub r#food_preference_modifier: Vec<super::super::types::CodeableConcept>,
254    #[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."]
255    pub r#exclude_food_modifier: Vec<super::super::types::CodeableConcept>,
256    #[doc = "Diet given orally in contrast to enteral (tube) feeding."]
257    pub r#oral_diet: Option<NutritionOrderOralDiet>,
258    #[doc = "Oral nutritional products given in order to add further nutritional value to the patient's diet."]
259    pub r#supplement: Vec<NutritionOrderSupplement>,
260    #[doc = "Feeding provided through the gastrointestinal tract via a tube, catheter, or stoma that delivers nutrition distal to the oral cavity."]
261    pub r#enteral_formula: Option<NutritionOrderEnteralFormula>,
262    #[doc = "Comments made about the {{title}} by the requester, performer, subject or other participants."]
263    pub r#note: Vec<super::super::types::Annotation>,
264}
265#[allow(clippy::derivable_impls)]
266impl Default for NutritionOrder {
267    fn default() -> Self {
268        Self {
269            r#id: Default::default(),
270            r#meta: Default::default(),
271            r#implicit_rules: Default::default(),
272            r#language: Default::default(),
273            r#text: Default::default(),
274            r#contained: Default::default(),
275            r#extension: Default::default(),
276            r#modifier_extension: Default::default(),
277            r#identifier: Default::default(),
278            r#instantiates_canonical: Default::default(),
279            r#instantiates_uri: Default::default(),
280            r#instantiates: Default::default(),
281            r#status: super::super::types::Code {
282                id: Some("$invalid".to_string()),
283                ..Default::default()
284            },
285            r#intent: super::super::types::Code {
286                id: Some("$invalid".to_string()),
287                ..Default::default()
288            },
289            r#patient: Box::new(super::super::types::Reference {
290                id: Some("$invalid".to_string()),
291                ..Default::default()
292            }),
293            r#encounter: Default::default(),
294            r#date_time: super::super::types::DateTime {
295                id: Some("$invalid".to_string()),
296                ..Default::default()
297            },
298            r#orderer: Default::default(),
299            r#allergy_intolerance: Default::default(),
300            r#food_preference_modifier: Default::default(),
301            r#exclude_food_modifier: Default::default(),
302            r#oral_diet: Default::default(),
303            r#supplement: Default::default(),
304            r#enteral_formula: Default::default(),
305            r#note: Default::default(),
306        }
307    }
308}