fhirbolt_model/generated/r5/resources/
example_scenario.rs

1// Generated on 2023-05-17 by fhirbolt-codegen v0.10.0
2#[doc = "Indicates the mechanism used to compare versions to determine which is more current."]
3#[derive(Default, Debug, Clone, PartialEq)]
4pub enum ExampleScenarioVersionAlgorithm {
5    String(super::super::types::String),
6    Coding(Box<super::super::types::Coding>),
7    #[default]
8    Invalid,
9}
10#[doc = "Refers to a profile, template or other ruleset the instance adheres to."]
11#[derive(Default, Debug, Clone, PartialEq)]
12pub enum ExampleScenarioInstanceStructureProfile {
13    Canonical(super::super::types::Canonical),
14    Uri(super::super::types::Uri),
15    #[default]
16    Invalid,
17}
18#[doc = "A system or person who shares or receives an instance within the scenario."]
19#[derive(Debug, Clone, PartialEq)]
20pub struct ExampleScenarioActor {
21    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
22    pub r#id: Option<std::string::String>,
23    #[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."]
24    pub r#extension: Vec<super::super::types::Extension>,
25    #[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)."]
26    pub r#modifier_extension: Vec<super::super::types::Extension>,
27    #[doc = "A unique string within the scenario that is used to reference the actor."]
28    pub r#key: super::super::types::String,
29    #[doc = "The category of actor - person or system."]
30    pub r#type: super::super::types::Code,
31    #[doc = "The human-readable name for the actor used when rendering the scenario."]
32    pub r#title: super::super::types::String,
33    #[doc = "An explanation of who/what the actor is and its role in the scenario."]
34    pub r#description: Option<super::super::types::Markdown>,
35}
36#[allow(clippy::derivable_impls)]
37impl Default for ExampleScenarioActor {
38    fn default() -> Self {
39        Self {
40            r#id: Default::default(),
41            r#extension: Default::default(),
42            r#modifier_extension: Default::default(),
43            r#key: super::super::types::String {
44                id: Some("$invalid".to_string()),
45                ..Default::default()
46            },
47            r#type: super::super::types::Code {
48                id: Some("$invalid".to_string()),
49                ..Default::default()
50            },
51            r#title: super::super::types::String {
52                id: Some("$invalid".to_string()),
53                ..Default::default()
54            },
55            r#description: Default::default(),
56        }
57    }
58}
59#[doc = "Represents the instance as it was at a specific time-point."]
60#[derive(Debug, Clone, PartialEq)]
61pub struct ExampleScenarioInstanceVersion {
62    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
63    pub r#id: Option<std::string::String>,
64    #[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."]
65    pub r#extension: Vec<super::super::types::Extension>,
66    #[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)."]
67    pub r#modifier_extension: Vec<super::super::types::Extension>,
68    #[doc = "A unique string within the instance that is used to reference the version of the instance."]
69    pub r#key: super::super::types::String,
70    #[doc = "A short descriptive label the version to be used in tables or diagrams."]
71    pub r#title: super::super::types::String,
72    #[doc = "An explanation of what this specific version of the instance contains and represents."]
73    pub r#description: Option<super::super::types::Markdown>,
74    #[doc = "Points to an instance (typically an example) that shows the data that would flow at this point in the scenario."]
75    pub r#content: Option<Box<super::super::types::Reference>>,
76}
77#[allow(clippy::derivable_impls)]
78impl Default for ExampleScenarioInstanceVersion {
79    fn default() -> Self {
80        Self {
81            r#id: Default::default(),
82            r#extension: Default::default(),
83            r#modifier_extension: Default::default(),
84            r#key: super::super::types::String {
85                id: Some("$invalid".to_string()),
86                ..Default::default()
87            },
88            r#title: super::super::types::String {
89                id: Some("$invalid".to_string()),
90                ..Default::default()
91            },
92            r#description: Default::default(),
93            r#content: Default::default(),
94        }
95    }
96}
97#[doc = "References to other instances that can be found within this instance (e.g. the observations contained in a bundle)."]
98#[derive(Debug, Clone, PartialEq)]
99pub struct ExampleScenarioInstanceContainedInstance {
100    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
101    pub r#id: Option<std::string::String>,
102    #[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."]
103    pub r#extension: Vec<super::super::types::Extension>,
104    #[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)."]
105    pub r#modifier_extension: Vec<super::super::types::Extension>,
106    #[doc = "A reference to the key of an instance found within this one."]
107    pub r#instance_reference: super::super::types::String,
108    #[doc = "A reference to the key of a specific version of an instance in this instance."]
109    pub r#version_reference: Option<super::super::types::String>,
110}
111#[allow(clippy::derivable_impls)]
112impl Default for ExampleScenarioInstanceContainedInstance {
113    fn default() -> Self {
114        Self {
115            r#id: Default::default(),
116            r#extension: Default::default(),
117            r#modifier_extension: Default::default(),
118            r#instance_reference: super::super::types::String {
119                id: Some("$invalid".to_string()),
120                ..Default::default()
121            },
122            r#version_reference: Default::default(),
123        }
124    }
125}
126#[doc = "A single data collection that is shared as part of the scenario."]
127#[derive(Debug, Clone, PartialEq)]
128pub struct ExampleScenarioInstance {
129    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
130    pub r#id: Option<std::string::String>,
131    #[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."]
132    pub r#extension: Vec<super::super::types::Extension>,
133    #[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)."]
134    pub r#modifier_extension: Vec<super::super::types::Extension>,
135    #[doc = "A unique string within the scenario that is used to reference the instance."]
136    pub r#key: super::super::types::String,
137    #[doc = "A code indicating the kind of data structure (FHIR resource or some other standard) this is an instance of."]
138    pub r#structure_type: Box<super::super::types::Coding>,
139    #[doc = "Conveys the version of the data structure instantiated.  I.e. what release of FHIR, X12, OpenEHR, etc. is instance compliant with."]
140    pub r#structure_version: Option<super::super::types::String>,
141    #[doc = "Refers to a profile, template or other ruleset the instance adheres to."]
142    pub r#structure_profile: Option<ExampleScenarioInstanceStructureProfile>,
143    #[doc = "A short descriptive label the instance to be used in tables or diagrams."]
144    pub r#title: super::super::types::String,
145    #[doc = "An explanation of what the instance contains and what it's for."]
146    pub r#description: Option<super::super::types::Markdown>,
147    #[doc = "Points to an instance (typically an example) that shows the data that would corespond to this instance."]
148    pub r#content: Option<Box<super::super::types::Reference>>,
149    #[doc = "Represents the instance as it was at a specific time-point."]
150    pub r#version: Vec<ExampleScenarioInstanceVersion>,
151    #[doc = "References to other instances that can be found within this instance (e.g. the observations contained in a bundle)."]
152    pub r#contained_instance: Vec<ExampleScenarioInstanceContainedInstance>,
153}
154#[allow(clippy::derivable_impls)]
155impl Default for ExampleScenarioInstance {
156    fn default() -> Self {
157        Self {
158            r#id: Default::default(),
159            r#extension: Default::default(),
160            r#modifier_extension: Default::default(),
161            r#key: super::super::types::String {
162                id: Some("$invalid".to_string()),
163                ..Default::default()
164            },
165            r#structure_type: Box::new(super::super::types::Coding {
166                id: Some("$invalid".to_string()),
167                ..Default::default()
168            }),
169            r#structure_version: Default::default(),
170            r#structure_profile: Default::default(),
171            r#title: super::super::types::String {
172                id: Some("$invalid".to_string()),
173                ..Default::default()
174            },
175            r#description: Default::default(),
176            r#content: Default::default(),
177            r#version: Default::default(),
178            r#contained_instance: Default::default(),
179        }
180    }
181}
182#[doc = "The step represents a single operation invoked on receiver by sender."]
183#[derive(Debug, Clone, PartialEq)]
184pub struct ExampleScenarioProcessStepOperation {
185    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
186    pub r#id: Option<std::string::String>,
187    #[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."]
188    pub r#extension: Vec<super::super::types::Extension>,
189    #[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)."]
190    pub r#modifier_extension: Vec<super::super::types::Extension>,
191    #[doc = "The standardized type of action (FHIR or otherwise)."]
192    pub r#type: Option<Box<super::super::types::Coding>>,
193    #[doc = "A short descriptive label the step to be used in tables or diagrams."]
194    pub r#title: super::super::types::String,
195    #[doc = "The system that invokes the action/transmits the data."]
196    pub r#initiator: Option<super::super::types::String>,
197    #[doc = "The system on which the action is invoked/receives the data."]
198    pub r#receiver: Option<super::super::types::String>,
199    #[doc = "An explanation of what the operation represents and what it does."]
200    pub r#description: Option<super::super::types::Markdown>,
201    #[doc = "If false, the initiator is deactivated right after the operation."]
202    pub r#initiator_active: Option<super::super::types::Boolean>,
203    #[doc = "If false, the receiver is deactivated right after the operation."]
204    pub r#receiver_active: Option<super::super::types::Boolean>,
205    #[doc = "A reference to the instance that is transmitted from requester to receiver as part of the invocation of the operation."]
206    pub r#request: Option<ExampleScenarioInstanceContainedInstance>,
207    #[doc = "A reference to the instance that is transmitted from receiver to requester as part of the operation's synchronous response (if any)."]
208    pub r#response: Option<ExampleScenarioInstanceContainedInstance>,
209}
210#[allow(clippy::derivable_impls)]
211impl Default for ExampleScenarioProcessStepOperation {
212    fn default() -> Self {
213        Self {
214            r#id: Default::default(),
215            r#extension: Default::default(),
216            r#modifier_extension: Default::default(),
217            r#type: Default::default(),
218            r#title: super::super::types::String {
219                id: Some("$invalid".to_string()),
220                ..Default::default()
221            },
222            r#initiator: Default::default(),
223            r#receiver: Default::default(),
224            r#description: Default::default(),
225            r#initiator_active: Default::default(),
226            r#receiver_active: Default::default(),
227            r#request: Default::default(),
228            r#response: Default::default(),
229        }
230    }
231}
232#[doc = "Indicates an alternative step that can be taken instead of the sub-process, scenario or operation.  E.g. to represent non-happy-path/exceptional/atypical circumstances."]
233#[derive(Debug, Clone, PartialEq)]
234pub struct ExampleScenarioProcessStepAlternative {
235    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
236    pub r#id: Option<std::string::String>,
237    #[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."]
238    pub r#extension: Vec<super::super::types::Extension>,
239    #[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)."]
240    pub r#modifier_extension: Vec<super::super::types::Extension>,
241    #[doc = "The label to display for the alternative that gives a sense of the circumstance in which the alternative should be invoked."]
242    pub r#title: super::super::types::String,
243    #[doc = "A human-readable description of the alternative explaining when the alternative should occur rather than the base step."]
244    pub r#description: Option<super::super::types::Markdown>,
245    #[doc = "Indicates the operation, sub-process or scenario that happens if the alternative option is selected."]
246    pub r#step: Vec<ExampleScenarioProcessStep>,
247}
248#[allow(clippy::derivable_impls)]
249impl Default for ExampleScenarioProcessStepAlternative {
250    fn default() -> Self {
251        Self {
252            r#id: Default::default(),
253            r#extension: Default::default(),
254            r#modifier_extension: Default::default(),
255            r#title: super::super::types::String {
256                id: Some("$invalid".to_string()),
257                ..Default::default()
258            },
259            r#description: Default::default(),
260            r#step: Default::default(),
261        }
262    }
263}
264#[doc = "A significant action that occurs as part of the process."]
265#[derive(Debug, Clone, PartialEq)]
266pub struct ExampleScenarioProcessStep {
267    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
268    pub r#id: Option<std::string::String>,
269    #[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."]
270    pub r#extension: Vec<super::super::types::Extension>,
271    #[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)."]
272    pub r#modifier_extension: Vec<super::super::types::Extension>,
273    #[doc = "The sequential number of the step, e.g. 1.2.5."]
274    pub r#number: Option<super::super::types::String>,
275    #[doc = "Indicates that the step is a complex sub-process with its own steps."]
276    pub r#process: Option<ExampleScenarioProcess>,
277    #[doc = "Indicates that the step is defined by a seaparate scenario instance."]
278    pub r#workflow: Option<super::super::types::Canonical>,
279    #[doc = "The step represents a single operation invoked on receiver by sender."]
280    pub r#operation: Option<ExampleScenarioProcessStepOperation>,
281    #[doc = "Indicates an alternative step that can be taken instead of the sub-process, scenario or operation.  E.g. to represent non-happy-path/exceptional/atypical circumstances."]
282    pub r#alternative: Vec<ExampleScenarioProcessStepAlternative>,
283    #[doc = "If true, indicates that, following this step, there is a pause in the flow and the subsequent step will occur at some later time (triggered by some event)."]
284    pub r#pause: Option<super::super::types::Boolean>,
285}
286#[allow(clippy::derivable_impls)]
287impl Default for ExampleScenarioProcessStep {
288    fn default() -> Self {
289        Self {
290            r#id: Default::default(),
291            r#extension: Default::default(),
292            r#modifier_extension: Default::default(),
293            r#number: Default::default(),
294            r#process: Default::default(),
295            r#workflow: Default::default(),
296            r#operation: Default::default(),
297            r#alternative: Default::default(),
298            r#pause: Default::default(),
299        }
300    }
301}
302#[doc = "A group of operations that represents a significant step within a scenario."]
303#[derive(Debug, Clone, PartialEq)]
304pub struct ExampleScenarioProcess {
305    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
306    pub r#id: Option<std::string::String>,
307    #[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."]
308    pub r#extension: Vec<super::super::types::Extension>,
309    #[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)."]
310    pub r#modifier_extension: Vec<super::super::types::Extension>,
311    #[doc = "A short descriptive label the process to be used in tables or diagrams."]
312    pub r#title: super::super::types::String,
313    #[doc = "An explanation of what the process represents and what it does."]
314    pub r#description: Option<super::super::types::Markdown>,
315    #[doc = "Description of the initial state of the actors, environment and data before the process starts."]
316    pub r#pre_conditions: Option<super::super::types::Markdown>,
317    #[doc = "Description of the final state of the actors, environment and data after the process has been successfully completed."]
318    pub r#post_conditions: Option<super::super::types::Markdown>,
319    #[doc = "A significant action that occurs as part of the process."]
320    pub r#step: Vec<ExampleScenarioProcessStep>,
321}
322#[allow(clippy::derivable_impls)]
323impl Default for ExampleScenarioProcess {
324    fn default() -> Self {
325        Self {
326            r#id: Default::default(),
327            r#extension: Default::default(),
328            r#modifier_extension: Default::default(),
329            r#title: super::super::types::String {
330                id: Some("$invalid".to_string()),
331                ..Default::default()
332            },
333            r#description: Default::default(),
334            r#pre_conditions: Default::default(),
335            r#post_conditions: Default::default(),
336            r#step: Default::default(),
337        }
338    }
339}
340#[doc = "A walkthrough of a workflow showing the interaction between systems and the instances shared, possibly including the evolution of instances over time."]
341#[derive(Debug, Clone, PartialEq)]
342pub struct ExampleScenario {
343    #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
344    pub r#id: Option<super::super::types::Id>,
345    #[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."]
346    pub r#meta: Option<Box<super::super::types::Meta>>,
347    #[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."]
348    pub r#implicit_rules: Option<super::super::types::Uri>,
349    #[doc = "The base language in which the resource is written."]
350    pub r#language: Option<super::super::types::Code>,
351    #[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."]
352    pub r#text: Option<Box<super::super::types::Narrative>>,
353    #[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."]
354    pub r#contained: Vec<super::super::Resource>,
355    #[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."]
356    pub r#extension: Vec<super::super::types::Extension>,
357    #[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)."]
358    pub r#modifier_extension: Vec<super::super::types::Extension>,
359    #[doc = "An absolute URI that is used to identify this example scenario when it is referenced in a specification, model, design or an instance; also called its canonical identifier. This SHOULD be globally unique and SHOULD be a literal address at which an authoritative instance of this example scenario is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the example scenario is stored on different servers."]
360    pub r#url: Option<super::super::types::Uri>,
361    #[doc = "A formal identifier that is used to identify this example scenario when it is represented in other formats, or referenced in a specification, model, design or an instance."]
362    pub r#identifier: Vec<super::super::types::Identifier>,
363    #[doc = "The identifier that is used to identify this version of the example scenario when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the example scenario author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available. There is also no expectation that versions can be placed in a lexicographical sequence."]
364    pub r#version: Option<super::super::types::String>,
365    #[doc = "Indicates the mechanism used to compare versions to determine which is more current."]
366    pub r#version_algorithm: Option<ExampleScenarioVersionAlgorithm>,
367    #[doc = "Temporarily retained for tooling purposes."]
368    pub r#name: Option<super::super::types::String>,
369    #[doc = "A short, descriptive, user-friendly title for the ExampleScenario."]
370    pub r#title: Option<super::super::types::String>,
371    #[doc = "The status of this example scenario. Enables tracking the life-cycle of the content."]
372    pub r#status: super::super::types::Code,
373    #[doc = "A Boolean value to indicate that this example scenario is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
374    pub r#experimental: Option<super::super::types::Boolean>,
375    #[doc = "The date  (and optionally time) when the example scenario was last significantly changed. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the example scenario changes. (e.g. the 'content logical definition')."]
376    pub r#date: Option<super::super::types::DateTime>,
377    #[doc = "The name of the organization or individual responsible for the release and ongoing maintenance of the example scenario."]
378    pub r#publisher: Option<super::super::types::String>,
379    #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
380    pub r#contact: Vec<super::super::types::ContactDetail>,
381    #[doc = "A free text natural language description of the ExampleScenario from a consumer's perspective."]
382    pub r#description: Option<super::super::types::Markdown>,
383    #[doc = "The content was developed with a focus and intent of supporting the contexts that are listed. These contexts may be general categories (gender, age, ...) or may be references to specific programs (insurance plans, studies, ...) and may be used to assist with indexing and searching for appropriate example scenario instances."]
384    pub r#use_context: Vec<super::super::types::UsageContext>,
385    #[doc = "A legal or geographic region in which the example scenario is intended to be used."]
386    pub r#jurisdiction: Vec<super::super::types::CodeableConcept>,
387    #[doc = "What the example scenario resource is created for. This should not be used to show the business purpose of the scenario itself, but the purpose of documenting a scenario."]
388    pub r#purpose: Option<super::super::types::Markdown>,
389    #[doc = "A copyright statement relating to the example scenario and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the example scenario."]
390    pub r#copyright: Option<super::super::types::Markdown>,
391    #[doc = "A short string (<50 characters), suitable for inclusion in a page footer that identifies the copyright holder, effective period, and optionally whether rights are resctricted. (e.g. 'All rights reserved', 'Some rights reserved')."]
392    pub r#copyright_label: Option<super::super::types::String>,
393    #[doc = "A system or person who shares or receives an instance within the scenario."]
394    pub r#actor: Vec<ExampleScenarioActor>,
395    #[doc = "A single data collection that is shared as part of the scenario."]
396    pub r#instance: Vec<ExampleScenarioInstance>,
397    #[doc = "A group of operations that represents a significant step within a scenario."]
398    pub r#process: Vec<ExampleScenarioProcess>,
399}
400#[allow(clippy::derivable_impls)]
401impl Default for ExampleScenario {
402    fn default() -> Self {
403        Self {
404            r#id: Default::default(),
405            r#meta: Default::default(),
406            r#implicit_rules: Default::default(),
407            r#language: Default::default(),
408            r#text: Default::default(),
409            r#contained: Default::default(),
410            r#extension: Default::default(),
411            r#modifier_extension: Default::default(),
412            r#url: Default::default(),
413            r#identifier: Default::default(),
414            r#version: Default::default(),
415            r#version_algorithm: Default::default(),
416            r#name: Default::default(),
417            r#title: Default::default(),
418            r#status: super::super::types::Code {
419                id: Some("$invalid".to_string()),
420                ..Default::default()
421            },
422            r#experimental: Default::default(),
423            r#date: Default::default(),
424            r#publisher: Default::default(),
425            r#contact: Default::default(),
426            r#description: Default::default(),
427            r#use_context: Default::default(),
428            r#jurisdiction: Default::default(),
429            r#purpose: Default::default(),
430            r#copyright: Default::default(),
431            r#copyright_label: Default::default(),
432            r#actor: Default::default(),
433            r#instance: Default::default(),
434            r#process: Default::default(),
435        }
436    }
437}