1#[doc = "A duration or range of durations to apply to the relationship. For example, 30-60 minutes before."]
3#[derive(Default, Debug, Clone, PartialEq)]
4pub enum RequestOrchestrationActionRelatedActionOffset {
5 Duration(Box<super::super::types::Duration>),
6 Range(Box<super::super::types::Range>),
7 #[default]
8 Invalid,
9}
10#[doc = "An optional value describing when the action should be performed."]
11#[derive(Default, Debug, Clone, PartialEq)]
12pub enum RequestOrchestrationActionTiming {
13 DateTime(super::super::types::DateTime),
14 Age(Box<super::super::types::Age>),
15 Period(Box<super::super::types::Period>),
16 Duration(Box<super::super::types::Duration>),
17 Range(Box<super::super::types::Range>),
18 Timing(Box<super::super::types::Timing>),
19 #[default]
20 Invalid,
21}
22#[doc = "A reference to the actual participant."]
23#[derive(Default, Debug, Clone, PartialEq)]
24pub enum RequestOrchestrationActionParticipantActor {
25 Canonical(super::super::types::Canonical),
26 Reference(Box<super::super::types::Reference>),
27 #[default]
28 Invalid,
29}
30#[doc = "A reference to an ActivityDefinition that describes the action to be taken in detail, a PlanDefinition that describes a series of actions to be taken, a Questionnaire that should be filled out, a SpecimenDefinition describing a specimen to be collected, or an ObservationDefinition that specifies what observation should be captured."]
31#[derive(Default, Debug, Clone, PartialEq)]
32pub enum RequestOrchestrationActionDefinition {
33 Canonical(super::super::types::Canonical),
34 Uri(super::super::types::Uri),
35 #[default]
36 Invalid,
37}
38#[doc = "An expression that describes applicability criteria, or start/stop conditions for the action."]
39#[derive(Debug, Clone, PartialEq)]
40pub struct RequestOrchestrationActionCondition {
41 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
42 pub r#id: Option<std::string::String>,
43 #[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."]
44 pub r#extension: Vec<super::super::types::Extension>,
45 #[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)."]
46 pub r#modifier_extension: Vec<super::super::types::Extension>,
47 #[doc = "The kind of condition."]
48 pub r#kind: super::super::types::Code,
49 #[doc = "An expression that returns true or false, indicating whether or not the condition is satisfied."]
50 pub r#expression: Option<Box<super::super::types::Expression>>,
51}
52#[allow(clippy::derivable_impls)]
53impl Default for RequestOrchestrationActionCondition {
54 fn default() -> Self {
55 Self {
56 r#id: Default::default(),
57 r#extension: Default::default(),
58 r#modifier_extension: Default::default(),
59 r#kind: super::super::types::Code {
60 id: Some("$invalid".to_string()),
61 ..Default::default()
62 },
63 r#expression: Default::default(),
64 }
65 }
66}
67#[doc = "Defines input data requirements for the action."]
68#[derive(Debug, Clone, PartialEq)]
69pub struct RequestOrchestrationActionInput {
70 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
71 pub r#id: Option<std::string::String>,
72 #[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."]
73 pub r#extension: Vec<super::super::types::Extension>,
74 #[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)."]
75 pub r#modifier_extension: Vec<super::super::types::Extension>,
76 #[doc = "A human-readable label for the data requirement used to label data flows in BPMN or similar diagrams. Also provides a human readable label when rendering the data requirement that conveys its purpose to human readers."]
77 pub r#title: Option<super::super::types::String>,
78 #[doc = "Defines the data that is to be provided as input to the action."]
79 pub r#requirement: Option<Box<super::super::types::DataRequirement>>,
80 #[doc = "Points to an existing input or output element that provides data to this input."]
81 pub r#related_data: Option<super::super::types::Id>,
82}
83#[allow(clippy::derivable_impls)]
84impl Default for RequestOrchestrationActionInput {
85 fn default() -> Self {
86 Self {
87 r#id: Default::default(),
88 r#extension: Default::default(),
89 r#modifier_extension: Default::default(),
90 r#title: Default::default(),
91 r#requirement: Default::default(),
92 r#related_data: Default::default(),
93 }
94 }
95}
96#[doc = "Defines the outputs of the action, if any."]
97#[derive(Debug, Clone, PartialEq)]
98pub struct RequestOrchestrationActionOutput {
99 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
100 pub r#id: Option<std::string::String>,
101 #[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."]
102 pub r#extension: Vec<super::super::types::Extension>,
103 #[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)."]
104 pub r#modifier_extension: Vec<super::super::types::Extension>,
105 #[doc = "A human-readable label for the data requirement used to label data flows in BPMN or similar diagrams. Also provides a human readable label when rendering the data requirement that conveys its purpose to human readers."]
106 pub r#title: Option<super::super::types::String>,
107 #[doc = "Defines the data that results as output from the action."]
108 pub r#requirement: Option<Box<super::super::types::DataRequirement>>,
109 #[doc = "Points to an existing input or output element that is results as output from the action."]
110 pub r#related_data: Option<super::super::types::String>,
111}
112#[allow(clippy::derivable_impls)]
113impl Default for RequestOrchestrationActionOutput {
114 fn default() -> Self {
115 Self {
116 r#id: Default::default(),
117 r#extension: Default::default(),
118 r#modifier_extension: Default::default(),
119 r#title: Default::default(),
120 r#requirement: Default::default(),
121 r#related_data: Default::default(),
122 }
123 }
124}
125#[doc = "A relationship to another action such as \"before\" or \"30-60 minutes after start of\"."]
126#[derive(Debug, Clone, PartialEq)]
127pub struct RequestOrchestrationActionRelatedAction {
128 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
129 pub r#id: Option<std::string::String>,
130 #[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."]
131 pub r#extension: Vec<super::super::types::Extension>,
132 #[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)."]
133 pub r#modifier_extension: Vec<super::super::types::Extension>,
134 #[doc = "The element id of the target related action."]
135 pub r#target_id: super::super::types::Id,
136 #[doc = "The relationship of this action to the related action."]
137 pub r#relationship: super::super::types::Code,
138 #[doc = "The relationship of the end of this action to the related action."]
139 pub r#end_relationship: Option<super::super::types::Code>,
140 #[doc = "A duration or range of durations to apply to the relationship. For example, 30-60 minutes before."]
141 pub r#offset: Option<RequestOrchestrationActionRelatedActionOffset>,
142}
143#[allow(clippy::derivable_impls)]
144impl Default for RequestOrchestrationActionRelatedAction {
145 fn default() -> Self {
146 Self {
147 r#id: Default::default(),
148 r#extension: Default::default(),
149 r#modifier_extension: Default::default(),
150 r#target_id: super::super::types::Id {
151 id: Some("$invalid".to_string()),
152 ..Default::default()
153 },
154 r#relationship: super::super::types::Code {
155 id: Some("$invalid".to_string()),
156 ..Default::default()
157 },
158 r#end_relationship: Default::default(),
159 r#offset: Default::default(),
160 }
161 }
162}
163#[doc = "The participant that should perform or be responsible for this action."]
164#[derive(Debug, Clone, PartialEq)]
165pub struct RequestOrchestrationActionParticipant {
166 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
167 pub r#id: Option<std::string::String>,
168 #[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."]
169 pub r#extension: Vec<super::super::types::Extension>,
170 #[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)."]
171 pub r#modifier_extension: Vec<super::super::types::Extension>,
172 #[doc = "The type of participant in the action."]
173 pub r#type: Option<super::super::types::Code>,
174 #[doc = "The type of participant in the action."]
175 pub r#type_canonical: Option<super::super::types::Canonical>,
176 #[doc = "The type of participant in the action."]
177 pub r#type_reference: Option<Box<super::super::types::Reference>>,
178 #[doc = "The role the participant should play in performing the described action."]
179 pub r#role: Option<Box<super::super::types::CodeableConcept>>,
180 #[doc = "Indicates how the actor will be involved in the action - author, reviewer, witness, etc."]
181 pub r#function: Option<Box<super::super::types::CodeableConcept>>,
182 #[doc = "A reference to the actual participant."]
183 pub r#actor: Option<RequestOrchestrationActionParticipantActor>,
184}
185#[allow(clippy::derivable_impls)]
186impl Default for RequestOrchestrationActionParticipant {
187 fn default() -> Self {
188 Self {
189 r#id: Default::default(),
190 r#extension: Default::default(),
191 r#modifier_extension: Default::default(),
192 r#type: Default::default(),
193 r#type_canonical: Default::default(),
194 r#type_reference: Default::default(),
195 r#role: Default::default(),
196 r#function: Default::default(),
197 r#actor: Default::default(),
198 }
199 }
200}
201#[doc = "Customizations that should be applied to the statically defined resource. For example, if the dosage of a medication must be computed based on the patient's weight, a customization would be used to specify an expression that calculated the weight, and the path on the resource that would contain the result."]
202#[derive(Debug, Clone, PartialEq)]
203pub struct RequestOrchestrationActionDynamicValue {
204 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
205 pub r#id: Option<std::string::String>,
206 #[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."]
207 pub r#extension: Vec<super::super::types::Extension>,
208 #[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)."]
209 pub r#modifier_extension: Vec<super::super::types::Extension>,
210 #[doc = "The path to the element to be customized. This is the path on the resource that will hold the result of the calculation defined by the expression. The specified path SHALL be a FHIRPath resolvable on the specified target type of the ActivityDefinition, and SHALL consist only of identifiers, constant indexers, and a restricted subset of functions. The path is allowed to contain qualifiers (.) to traverse sub-elements, as well as indexers (\\[x\\]) to traverse multiple-cardinality sub-elements (see the [Simple FHIRPath Profile](fhirpath.html#simple) for full details)."]
211 pub r#path: Option<super::super::types::String>,
212 #[doc = "An expression specifying the value of the customized element."]
213 pub r#expression: Option<Box<super::super::types::Expression>>,
214}
215#[allow(clippy::derivable_impls)]
216impl Default for RequestOrchestrationActionDynamicValue {
217 fn default() -> Self {
218 Self {
219 r#id: Default::default(),
220 r#extension: Default::default(),
221 r#modifier_extension: Default::default(),
222 r#path: Default::default(),
223 r#expression: Default::default(),
224 }
225 }
226}
227#[doc = "The actions, if any, produced by the evaluation of the artifact."]
228#[derive(Debug, Clone, PartialEq)]
229pub struct RequestOrchestrationAction {
230 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
231 pub r#id: Option<std::string::String>,
232 #[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."]
233 pub r#extension: Vec<super::super::types::Extension>,
234 #[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)."]
235 pub r#modifier_extension: Vec<super::super::types::Extension>,
236 #[doc = "The linkId of the action from the PlanDefinition that corresponds to this action in the RequestOrchestration resource."]
237 pub r#link_id: Option<super::super::types::String>,
238 #[doc = "A user-visible prefix for the action. For example a section or item numbering such as 1. or A."]
239 pub r#prefix: Option<super::super::types::String>,
240 #[doc = "The title of the action displayed to a user."]
241 pub r#title: Option<super::super::types::String>,
242 #[doc = "A short description of the action used to provide a summary to display to the user."]
243 pub r#description: Option<super::super::types::Markdown>,
244 #[doc = "A text equivalent of the action to be performed. This provides a human-interpretable description of the action when the definition is consumed by a system that might not be capable of interpreting it dynamically."]
245 pub r#text_equivalent: Option<super::super::types::Markdown>,
246 #[doc = "Indicates how quickly the action should be addressed with respect to other actions."]
247 pub r#priority: Option<super::super::types::Code>,
248 #[doc = "A code that provides meaning for the action or action group. For example, a section may have a LOINC code for a section of a documentation template."]
249 pub r#code: Vec<super::super::types::CodeableConcept>,
250 #[doc = "Didactic or other informational resources associated with the action that can be provided to the CDS recipient. Information resources can include inline text commentary and links to web resources."]
251 pub r#documentation: Vec<super::super::types::RelatedArtifact>,
252 #[doc = "Goals that are intended to be achieved by following the requests in this action."]
253 pub r#goal: Vec<super::super::types::Reference>,
254 #[doc = "An expression that describes applicability criteria, or start/stop conditions for the action."]
255 pub r#condition: Vec<RequestOrchestrationActionCondition>,
256 #[doc = "Defines input data requirements for the action."]
257 pub r#input: Vec<RequestOrchestrationActionInput>,
258 #[doc = "Defines the outputs of the action, if any."]
259 pub r#output: Vec<RequestOrchestrationActionOutput>,
260 #[doc = "A relationship to another action such as \"before\" or \"30-60 minutes after start of\"."]
261 pub r#related_action: Vec<RequestOrchestrationActionRelatedAction>,
262 #[doc = "An optional value describing when the action should be performed."]
263 pub r#timing: Option<RequestOrchestrationActionTiming>,
264 #[doc = "Identifies the facility where the action will occur; e.g. home, hospital, specific clinic, etc."]
265 pub r#location: Option<Box<super::super::types::CodeableReference>>,
266 #[doc = "The participant that should perform or be responsible for this action."]
267 pub r#participant: Vec<RequestOrchestrationActionParticipant>,
268 #[doc = "The type of action to perform (create, update, remove)."]
269 pub r#type: Option<Box<super::super::types::CodeableConcept>>,
270 #[doc = "Defines the grouping behavior for the action and its children."]
271 pub r#grouping_behavior: Option<super::super::types::Code>,
272 #[doc = "Defines the selection behavior for the action and its children."]
273 pub r#selection_behavior: Option<super::super::types::Code>,
274 #[doc = "Defines expectations around whether an action is required."]
275 pub r#required_behavior: Option<super::super::types::Code>,
276 #[doc = "Defines whether the action should usually be preselected."]
277 pub r#precheck_behavior: Option<super::super::types::Code>,
278 #[doc = "Defines whether the action can be selected multiple times."]
279 pub r#cardinality_behavior: Option<super::super::types::Code>,
280 #[doc = "The resource that is the target of the action (e.g. CommunicationRequest)."]
281 pub r#resource: Option<Box<super::super::types::Reference>>,
282 #[doc = "A reference to an ActivityDefinition that describes the action to be taken in detail, a PlanDefinition that describes a series of actions to be taken, a Questionnaire that should be filled out, a SpecimenDefinition describing a specimen to be collected, or an ObservationDefinition that specifies what observation should be captured."]
283 pub r#definition: Option<RequestOrchestrationActionDefinition>,
284 #[doc = "A reference to a StructureMap resource that defines a transform that can be executed to produce the intent resource using the ActivityDefinition instance as the input."]
285 pub r#transform: Option<super::super::types::Canonical>,
286 #[doc = "Customizations that should be applied to the statically defined resource. For example, if the dosage of a medication must be computed based on the patient's weight, a customization would be used to specify an expression that calculated the weight, and the path on the resource that would contain the result."]
287 pub r#dynamic_value: Vec<RequestOrchestrationActionDynamicValue>,
288 #[doc = "Sub actions."]
289 pub r#action: Vec<RequestOrchestrationAction>,
290}
291#[allow(clippy::derivable_impls)]
292impl Default for RequestOrchestrationAction {
293 fn default() -> Self {
294 Self {
295 r#id: Default::default(),
296 r#extension: Default::default(),
297 r#modifier_extension: Default::default(),
298 r#link_id: Default::default(),
299 r#prefix: Default::default(),
300 r#title: Default::default(),
301 r#description: Default::default(),
302 r#text_equivalent: Default::default(),
303 r#priority: Default::default(),
304 r#code: Default::default(),
305 r#documentation: Default::default(),
306 r#goal: Default::default(),
307 r#condition: Default::default(),
308 r#input: Default::default(),
309 r#output: Default::default(),
310 r#related_action: Default::default(),
311 r#timing: Default::default(),
312 r#location: Default::default(),
313 r#participant: Default::default(),
314 r#type: Default::default(),
315 r#grouping_behavior: Default::default(),
316 r#selection_behavior: Default::default(),
317 r#required_behavior: Default::default(),
318 r#precheck_behavior: Default::default(),
319 r#cardinality_behavior: Default::default(),
320 r#resource: Default::default(),
321 r#definition: Default::default(),
322 r#transform: Default::default(),
323 r#dynamic_value: Default::default(),
324 r#action: Default::default(),
325 }
326 }
327}
328#[doc = "A set of related requests that can be used to capture intended activities that have inter-dependencies such as \"give this medication after that one\"."]
329#[derive(Debug, Clone, PartialEq)]
330pub struct RequestOrchestration {
331 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
332 pub r#id: Option<super::super::types::Id>,
333 #[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."]
334 pub r#meta: Option<Box<super::super::types::Meta>>,
335 #[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."]
336 pub r#implicit_rules: Option<super::super::types::Uri>,
337 #[doc = "The base language in which the resource is written."]
338 pub r#language: Option<super::super::types::Code>,
339 #[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."]
340 pub r#text: Option<Box<super::super::types::Narrative>>,
341 #[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."]
342 pub r#contained: Vec<super::super::Resource>,
343 #[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."]
344 pub r#extension: Vec<super::super::types::Extension>,
345 #[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)."]
346 pub r#modifier_extension: Vec<super::super::types::Extension>,
347 #[doc = "Allows a service to provide a unique, business identifier for the request."]
348 pub r#identifier: Vec<super::super::types::Identifier>,
349 #[doc = "A canonical URL referencing a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this request."]
350 pub r#instantiates_canonical: Vec<super::super::types::Canonical>,
351 #[doc = "A URL referencing an externally defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this request."]
352 pub r#instantiates_uri: Vec<super::super::types::Uri>,
353 #[doc = "A plan, proposal or order that is fulfilled in whole or in part by this request."]
354 pub r#based_on: Vec<super::super::types::Reference>,
355 #[doc = "Completed or terminated request(s) whose function is taken by this new request."]
356 pub r#replaces: Vec<super::super::types::Reference>,
357 #[doc = "A shared identifier common to multiple independent Request instances that were activated/authorized more or less simultaneously by a single author. The presence of the same identifier on each request ties those requests together and may have business ramifications in terms of reporting of results, billing, etc. E.g. a requisition number shared by a set of lab tests ordered together, or a prescription number shared by all meds ordered at one time."]
358 pub r#group_identifier: Option<Box<super::super::types::Identifier>>,
359 #[doc = "The current state of the request. For request orchestrations, the status reflects the status of all the requests in the orchestration."]
360 pub r#status: super::super::types::Code,
361 #[doc = "Indicates the level of authority/intentionality associated with the request and where the request fits into the workflow chain."]
362 pub r#intent: super::super::types::Code,
363 #[doc = "Indicates how quickly the request should be addressed with respect to other requests."]
364 pub r#priority: Option<super::super::types::Code>,
365 #[doc = "A code that identifies what the overall request orchestration is."]
366 pub r#code: Option<Box<super::super::types::CodeableConcept>>,
367 #[doc = "The subject for which the request orchestration was created."]
368 pub r#subject: Option<Box<super::super::types::Reference>>,
369 #[doc = "Describes the context of the request orchestration, if any."]
370 pub r#encounter: Option<Box<super::super::types::Reference>>,
371 #[doc = "Indicates when the request orchestration was created."]
372 pub r#authored_on: Option<super::super::types::DateTime>,
373 #[doc = "Provides a reference to the author of the request orchestration."]
374 pub r#author: Option<Box<super::super::types::Reference>>,
375 #[doc = "Describes the reason for the request orchestration in coded or textual form."]
376 pub r#reason: Vec<super::super::types::CodeableReference>,
377 #[doc = "Goals that are intended to be achieved by following the requests in this RequestOrchestration."]
378 pub r#goal: Vec<super::super::types::Reference>,
379 #[doc = "Provides a mechanism to communicate additional information about the response."]
380 pub r#note: Vec<super::super::types::Annotation>,
381 #[doc = "The actions, if any, produced by the evaluation of the artifact."]
382 pub r#action: Vec<RequestOrchestrationAction>,
383}
384#[allow(clippy::derivable_impls)]
385impl Default for RequestOrchestration {
386 fn default() -> Self {
387 Self {
388 r#id: Default::default(),
389 r#meta: Default::default(),
390 r#implicit_rules: Default::default(),
391 r#language: Default::default(),
392 r#text: Default::default(),
393 r#contained: Default::default(),
394 r#extension: Default::default(),
395 r#modifier_extension: Default::default(),
396 r#identifier: Default::default(),
397 r#instantiates_canonical: Default::default(),
398 r#instantiates_uri: Default::default(),
399 r#based_on: Default::default(),
400 r#replaces: Default::default(),
401 r#group_identifier: Default::default(),
402 r#status: super::super::types::Code {
403 id: Some("$invalid".to_string()),
404 ..Default::default()
405 },
406 r#intent: super::super::types::Code {
407 id: Some("$invalid".to_string()),
408 ..Default::default()
409 },
410 r#priority: Default::default(),
411 r#code: Default::default(),
412 r#subject: Default::default(),
413 r#encounter: Default::default(),
414 r#authored_on: Default::default(),
415 r#author: Default::default(),
416 r#reason: Default::default(),
417 r#goal: Default::default(),
418 r#note: Default::default(),
419 r#action: Default::default(),
420 }
421 }
422}