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