1#[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}