fhirbolt_model/generated/r5/resources/
request_orchestration.rs

1// Generated on 2023-05-17 by fhirbolt-codegen v0.10.0
2#[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}