1#![allow(non_snake_case)]
2use self::super::terminology;
3#[doc = r" DO NOT EDIT THIS FILE. It is auto-generated by the FHIR Rust code generator."]
4use self::super::types::*;
5use haste_fhir_serialization_json;
6use haste_reflect::{derive::Reflect, MetaValue};
7use std::io::Write;
8use thiserror::Error;
9#[derive(
10 Clone,
11 Reflect,
12 Debug,
13 Default,
14 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16)]
17#[fhir_serialize_type = "complex"]
18#[doc = "Registered client for the OIDC provider."]
19pub struct IdentityProviderOidcClient {
20 #[primitive]
21 #[doc = "Registered clients id."]
22 pub clientId: Box<FHIRString>,
23 #[primitive]
24 #[doc = "Registered clients secret."]
25 pub secret: Option<Box<FHIRString>>,
26}
27#[derive(
28 Clone,
29 Reflect,
30 Debug,
31 Default,
32 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
33 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
34)]
35#[fhir_serialize_type = "complex"]
36#[doc = "PKCE Configuration"]
37pub struct IdentityProviderOidcPkce {
38 #[primitive]
39 #[doc = "PKCE code challenge method."]
40 pub code_challenge_method: Option<Box<terminology::IdentityProviderPkceChallengeMethod>>,
41 #[primitive]
42 #[doc = "PKCE enabled."]
43 pub enabled: Option<Box<FHIRBoolean>>,
44}
45#[derive(
46 Clone,
47 Reflect,
48 Debug,
49 Default,
50 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
51 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
52)]
53#[fhir_serialize_type = "complex"]
54#[doc = "OIDC connection configuration for the identity provider."]
55pub struct IdentityProviderOidc {
56 #[primitive]
57 #[doc = "OIDC authorization endpoint."]
58 pub authorization_endpoint: Box<FHIRString>,
59 #[primitive]
60 #[doc = "OIDC token endpoint."]
61 pub token_endpoint: Box<FHIRString>,
62 #[primitive]
63 #[doc = "The OIDC user info endpoint."]
64 pub userinfo_endpoint: Option<Box<FHIRString>>,
65 #[primitive]
66 #[doc = "If included will verify id token based on this jwks keys."]
67 pub jwks_uri: Option<Box<FHIRString>>,
68 #[primitive]
69 #[doc = "Scopes to send to the OIDC provider."]
70 pub scopes: Option<Vec<Box<FHIRString>>>,
71 #[doc = "Registered client for the OIDC provider."]
72 pub client: IdentityProviderOidcClient,
73 #[doc = "PKCE Configuration"]
74 pub pkce: Option<IdentityProviderOidcPkce>,
75}
76#[derive(
77 Clone,
78 Reflect,
79 Debug,
80 Default,
81 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
82 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
83)]
84#[fhir_serialize_type = "resource"]
85#[doc = "External identity provider configuration."]
86pub struct IdentityProvider {
87 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
88 pub id: Option<String>,
89 #[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."]
90 pub meta: Option<Box<Meta>>,
91 #[primitive]
92 #[doc = "The name of the external identity provider."]
93 pub name: Box<FHIRString>,
94 #[primitive]
95 #[doc = "The status of the identity provider."]
96 pub status: Box<terminology::IdentityProviderStatus>,
97 #[primitive]
98 #[doc = "Method for connecting to external identity provider."]
99 pub accessType: Box<terminology::IdentityProviderAccessType>,
100 #[doc = "OIDC connection configuration for the identity provider."]
101 pub oidc: Option<IdentityProviderOidc>,
102}
103#[derive(
104 Clone,
105 Reflect,
106 Debug,
107 Default,
108 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
109 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
110)]
111#[fhir_serialize_type = "resource"]
112#[doc = ""]
113pub struct Membership {
114 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
115 pub id: Option<String>,
116 #[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."]
117 pub meta: Option<Box<Meta>>,
118 # [reference (targets = ["Patient" , "Practitioner" , "RelatedPerson" , "Person"])]
119 #[doc = ""]
120 pub link: Option<Box<Reference>>,
121 # [reference (targets = ["User"])]
122 #[doc = ""]
123 pub user: Box<Reference>,
124}
125#[derive(
126 Clone,
127 Reflect,
128 Debug,
129 Default,
130 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
131 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
132)]
133#[fhir_serialize_type = "resource"]
134#[doc = ""]
135pub struct Project {
136 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
137 pub id: Option<String>,
138 #[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."]
139 pub meta: Option<Box<Meta>>,
140 #[primitive]
141 #[doc = ""]
142 pub name: Box<FHIRString>,
143 #[primitive]
144 #[doc = ""]
145 pub fhirVersion: Box<terminology::SupportedFhirVersion>,
146 #[cardinality(max = 3usize)]
147 # [reference (targets = ["IdentityProvider"])]
148 #[doc = ""]
149 pub identityProvider: Option<Vec<Box<Reference>>>,
150}
151#[derive(
152 Clone,
153 Reflect,
154 Debug,
155 Default,
156 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
157 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
158)]
159#[fhir_serialize_type = "complex"]
160#[doc = "The operation to retrieve the attribute."]
161pub struct AccessPolicyV2AttributeOperation {
162 #[rename_field = "type"]
163 #[primitive]
164 #[doc = "The operation to retrieve the attribute."]
165 pub type_: Box<terminology::AccessPolicyAttributeOperationTypes>,
166 #[doc = "The operation to retrieve the attribute."]
167 pub path: Option<Box<Expression>>,
168 #[doc = "The operation to retrieve the attribute."]
169 pub params: Option<Box<Expression>>,
170}
171#[derive(
172 Clone,
173 Reflect,
174 Debug,
175 Default,
176 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
177 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
178)]
179#[fhir_serialize_type = "complex"]
180#[doc = "Attributes to use for the policy evaluation."]
181pub struct AccessPolicyV2Attribute {
182 #[primitive]
183 #[doc = "The id of the attribute referenced using %attributeId in expressions."]
184 pub attributeId: Box<FHIRId>,
185 #[doc = "The operation to retrieve the attribute."]
186 pub operation: Option<AccessPolicyV2AttributeOperation>,
187}
188#[derive(
189 Clone,
190 Reflect,
191 Debug,
192 Default,
193 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
194 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
195)]
196#[fhir_serialize_type = "complex"]
197#[doc = ""]
198pub struct AccessPolicyV2RuleTarget {
199 #[doc = ""]
200 pub expression: Box<Expression>,
201}
202#[derive(
203 Clone,
204 Reflect,
205 Debug,
206 Default,
207 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
208 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
209)]
210#[fhir_serialize_type = "complex"]
211#[doc = ""]
212pub struct AccessPolicyV2RuleCondition {
213 #[doc = ""]
214 pub expression: Box<Expression>,
215}
216#[derive(
217 Clone,
218 Reflect,
219 Debug,
220 Default,
221 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
222 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
223)]
224#[fhir_serialize_type = "complex"]
225#[doc = "The rules that govern how the access policy is applied."]
226pub struct AccessPolicyV2Rule {
227 #[primitive]
228 #[doc = "Rule identifier"]
229 pub name: Box<FHIRString>,
230 #[primitive]
231 #[doc = "Rule description"]
232 pub description: Option<Box<FHIRString>>,
233 #[primitive]
234 #[doc = "Rule combination behavior for children elements."]
235 pub combineBehavior: Option<Box<terminology::AccessPolicyv2CombineBehavior>>,
236 #[primitive]
237 #[doc = ""]
238 pub effect: Option<Box<terminology::AccessPolicyRuleEffect>>,
239 #[doc = ""]
240 pub target: Option<AccessPolicyV2RuleTarget>,
241 #[doc = ""]
242 pub condition: Option<AccessPolicyV2RuleCondition>,
243 #[doc = "Nested rules to evaluate."]
244 pub rule: Option<Vec<AccessPolicyV2Rule>>,
245}
246#[derive(
247 Clone,
248 Reflect,
249 Debug,
250 Default,
251 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
252 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
253)]
254#[fhir_serialize_type = "complex"]
255#[doc = "Who the access policy applies to."]
256pub struct AccessPolicyV2Target {
257 # [reference (targets = ["ClientApplication" , "Membership" , "OperationDefinition"])]
258 #[doc = "Who the access policy applies to."]
259 pub link: Box<Reference>,
260}
261#[derive(
262 Clone,
263 Reflect,
264 Debug,
265 Default,
266 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
267 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
268)]
269#[fhir_serialize_type = "resource"]
270#[doc = "A set of rules that govern how a system resource is accessed and used."]
271pub struct AccessPolicyV2 {
272 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
273 pub id: Option<String>,
274 #[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."]
275 pub meta: Option<Box<Meta>>,
276 #[primitive]
277 #[doc = "The name of the access policy."]
278 pub name: Box<FHIRString>,
279 #[primitive]
280 #[doc = "Description of the access policy."]
281 pub description: Option<Box<FHIRString>>,
282 #[primitive]
283 #[doc = "The type of evaluation that is performed to determine if access is granted or denied."]
284 pub engine: Box<terminology::AccessPolicyv2Engine>,
285 #[cardinality(max = 15usize)]
286 #[doc = "Attributes to use for the policy evaluation."]
287 pub attribute: Option<Vec<AccessPolicyV2Attribute>>,
288 #[doc = "The rules that govern how the access policy is applied."]
289 pub rule: Option<Vec<AccessPolicyV2Rule>>,
290 #[doc = "Who the access policy applies to."]
291 pub target: Option<Vec<AccessPolicyV2Target>>,
292}
293#[derive(
294 Clone,
295 Reflect,
296 Debug,
297 Default,
298 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
299 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
300)]
301#[fhir_serialize_type = "resource"]
302#[doc = ""]
303pub struct ClientApplication {
304 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
305 pub id: Option<String>,
306 #[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."]
307 pub meta: Option<Box<Meta>>,
308 #[primitive]
309 #[doc = ""]
310 pub name: Box<FHIRString>,
311 #[primitive]
312 #[doc = ""]
313 pub description: Option<Box<FHIRString>>,
314 #[primitive]
315 #[cardinality(min = 1usize)]
316 #[doc = "The grant type for this client application."]
317 pub grantType: Vec<Box<terminology::ClientapplicationGrantType>>,
318 #[primitive]
319 #[doc = ""]
320 pub responseTypes: Box<terminology::ClientapplicationResponseTypes>,
321 #[primitive]
322 #[doc = "For client credentials (or other confidential authentication methods), the client secret."]
323 pub secret: Option<Box<FHIRString>>,
324 #[primitive]
325 #[cardinality(max = 5usize)]
326 #[doc = "Array of redirection URI strings for use in redirect-based flows such as the authorization code and implicit flows. As required by Section 2 of OAuth 2.0 [RFC6749], clients using flows with redirection MUST register their redirection URI values. Authorization servers that support dynamic registration for redirect-based flows MUST implement support for this metadata value."]
327 pub redirectUri: Option<Vec<Box<FHIRString>>>,
328 #[primitive]
329 #[doc = ""]
330 pub uri: Option<Box<FHIRUri>>,
331 #[primitive]
332 #[doc = ""]
333 pub logoUri: Option<Box<FHIRUri>>,
334 #[primitive]
335 #[doc = ""]
336 pub scope: Option<Box<FHIRString>>,
337 #[doc = ""]
338 pub contact: Option<Box<ContactPoint>>,
339 #[primitive]
340 #[doc = ""]
341 pub tosUri: Option<Box<FHIRUri>>,
342 #[primitive]
343 #[doc = ""]
344 pub policyUri: Option<Box<FHIRUri>>,
345}
346#[derive(
347 Clone,
348 Reflect,
349 Debug,
350 Default,
351 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
352 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
353)]
354#[fhir_serialize_type = "resource"]
355#[doc = ""]
356pub struct User {
357 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
358 pub id: Option<String>,
359 #[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."]
360 pub meta: Option<Box<Meta>>,
361 #[primitive]
362 #[doc = ""]
363 pub email: Option<Box<FHIRString>>,
364 #[primitive]
365 #[doc = ""]
366 pub emailVerified: Option<Box<FHIRBoolean>>,
367 #[doc = ""]
368 pub name: Option<Box<HumanName>>,
369 #[primitive]
370 #[doc = ""]
371 pub role: Box<terminology::UserRole>,
372 # [reference (targets = ["IdentityProvider"])]
373 #[doc = ""]
374 pub federated: Option<Box<Reference>>,
375}
376#[derive(
377 Clone,
378 Reflect,
379 Debug,
380 Default,
381 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
382 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
383)]
384#[fhir_serialize_type = "complex"]
385#[doc = "The party(s) that are responsible for covering the payment of this account, and what order should they be applied to the account."]
386pub struct AccountCoverage {
387 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
388 pub id: Option<String>,
389 #[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 manageable, 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."]
390 pub extension: Option<Vec<Box<Extension>>>,
391 #[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 manageable, 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)."]
392 pub modifierExtension: Option<Vec<Box<Extension>>>,
393 # [reference (targets = ["Coverage"])]
394 #[doc = "The party(s) that contribute to payment (or part of) of the charges applied to this account (including self-pay).\n\nA coverage may only be responsible for specific types of charges, and the sequence of the coverages in the account could be important when processing billing."]
395 pub coverage: Box<Reference>,
396 #[primitive]
397 #[doc = "The priority of the coverage in the context of this account."]
398 pub priority: Option<Box<FHIRPositiveInt>>,
399}
400#[derive(
401 Clone,
402 Reflect,
403 Debug,
404 Default,
405 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
406 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
407)]
408#[fhir_serialize_type = "complex"]
409#[doc = "The parties responsible for balancing the account if other payment options fall short."]
410pub struct AccountGuarantor {
411 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
412 pub id: Option<String>,
413 #[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 manageable, 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."]
414 pub extension: Option<Vec<Box<Extension>>>,
415 #[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 manageable, 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)."]
416 pub modifierExtension: Option<Vec<Box<Extension>>>,
417 # [reference (targets = ["Patient" , "RelatedPerson" , "Organization"])]
418 #[doc = "The entity who is responsible."]
419 pub party: Box<Reference>,
420 #[primitive]
421 #[doc = "A guarantor may be placed on credit hold or otherwise have their role temporarily suspended."]
422 pub onHold: Option<Box<FHIRBoolean>>,
423 #[doc = "The timeframe during which the guarantor accepts responsibility for the account."]
424 pub period: Option<Box<Period>>,
425}
426#[derive(
427 Clone,
428 Reflect,
429 Debug,
430 Default,
431 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
432 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
433)]
434#[fhir_serialize_type = "resource"]
435#[doc = "A financial tool for tracking value accrued for a particular purpose. In the healthcare field, used to track charges for a patient, cost centers, etc."]
436pub struct Account {
437 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
438 pub id: Option<String>,
439 #[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."]
440 pub meta: Option<Box<Meta>>,
441 #[primitive]
442 #[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."]
443 pub implicitRules: Option<Box<FHIRUri>>,
444 #[primitive]
445 #[doc = "The base language in which the resource is written."]
446 pub language: Option<Box<FHIRCode>>,
447 #[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."]
448 pub text: Option<Box<Narrative>>,
449 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
450 pub contained: Option<Vec<Box<Resource>>>,
451 #[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 manageable, 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."]
452 pub extension: Option<Vec<Box<Extension>>>,
453 #[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 manageable, 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)."]
454 pub modifierExtension: Option<Vec<Box<Extension>>>,
455 #[rename_field = "identifier"]
456 #[doc = "Unique identifier used to reference the account. Might or might not be intended for human use (e.g. credit card number)."]
457 pub identifier_: Option<Vec<Box<Identifier>>>,
458 #[primitive]
459 #[doc = "Indicates whether the account is presently used/usable or not."]
460 pub status: Box<terminology::AccountStatus>,
461 #[rename_field = "type"]
462 #[doc = "Categorizes the account for reporting and searching purposes."]
463 pub type_: Option<Box<CodeableConcept>>,
464 #[primitive]
465 #[doc = "Name used for the account when displaying it to humans in reports, etc."]
466 pub name: Option<Box<FHIRString>>,
467 # [reference (targets = ["Patient" , "Device" , "Practitioner" , "PractitionerRole" , "Location" , "HealthcareService" , "Organization"])]
468 #[doc = "Identifies the entity which incurs the expenses. While the immediate recipients of services or goods might be entities related to the subject, the expenses were ultimately incurred by the subject of the Account."]
469 pub subject: Option<Vec<Box<Reference>>>,
470 #[doc = "The date range of services associated with this account."]
471 pub servicePeriod: Option<Box<Period>>,
472 #[doc = "The party(s) that are responsible for covering the payment of this account, and what order should they be applied to the account."]
473 pub coverage: Option<Vec<AccountCoverage>>,
474 # [reference (targets = ["Organization"])]
475 #[doc = "Indicates the service area, hospital, department, etc. with responsibility for managing the Account."]
476 pub owner: Option<Box<Reference>>,
477 #[primitive]
478 #[doc = "Provides additional information about what the account tracks and how it is used."]
479 pub description: Option<Box<FHIRString>>,
480 #[doc = "The parties responsible for balancing the account if other payment options fall short."]
481 pub guarantor: Option<Vec<AccountGuarantor>>,
482 # [reference (targets = ["Account"])]
483 #[doc = "Reference to a parent Account."]
484 pub partOf: Option<Box<Reference>>,
485}
486#[derive(
487 Clone,
488 Reflect,
489 Debug,
490 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
491 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
492)]
493#[fhir_serialize_type = "typechoice"]
494#[type_choice_field_name = "subject"]
495pub enum ActivityDefinitionSubjectTypeChoice {
496 CodeableConcept(Box<CodeableConcept>),
497 # [reference (targets = ["Group"])]
498 Reference(Box<Reference>),
499}
500impl Default for ActivityDefinitionSubjectTypeChoice {
501 fn default() -> Self {
502 ActivityDefinitionSubjectTypeChoice::CodeableConcept(Box::new(Default::default()))
503 }
504}
505#[derive(
506 Clone,
507 Reflect,
508 Debug,
509 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
510 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
511)]
512#[fhir_serialize_type = "typechoice"]
513#[type_choice_field_name = "timing"]
514pub enum ActivityDefinitionTimingTypeChoice {
515 Timing(Box<Timing>),
516 DateTime(Box<FHIRDateTime>),
517 Age(Box<Age>),
518 Period(Box<Period>),
519 Range(Box<Range>),
520 Duration(Box<Duration>),
521}
522impl Default for ActivityDefinitionTimingTypeChoice {
523 fn default() -> Self {
524 ActivityDefinitionTimingTypeChoice::Timing(Box::new(Default::default()))
525 }
526}
527#[derive(
528 Clone,
529 Reflect,
530 Debug,
531 Default,
532 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
533 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
534)]
535#[fhir_serialize_type = "complex"]
536#[doc = "Indicates who should participate in performing the action described."]
537pub struct ActivityDefinitionParticipant {
538 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
539 pub id: Option<String>,
540 #[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 manageable, 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."]
541 pub extension: Option<Vec<Box<Extension>>>,
542 #[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 manageable, 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)."]
543 pub modifierExtension: Option<Vec<Box<Extension>>>,
544 #[rename_field = "type"]
545 #[primitive]
546 #[doc = "The type of participant in the action."]
547 pub type_: Box<terminology::ActionParticipantType>,
548 #[doc = "The role the participant should play in performing the described action."]
549 pub role: Option<Box<CodeableConcept>>,
550}
551#[derive(
552 Clone,
553 Reflect,
554 Debug,
555 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
556 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
557)]
558#[fhir_serialize_type = "typechoice"]
559#[type_choice_field_name = "product"]
560pub enum ActivityDefinitionProductTypeChoice {
561 # [reference (targets = ["Medication" , "Substance"])]
562 Reference(Box<Reference>),
563 CodeableConcept(Box<CodeableConcept>),
564}
565impl Default for ActivityDefinitionProductTypeChoice {
566 fn default() -> Self {
567 ActivityDefinitionProductTypeChoice::Reference(Box::new(Default::default()))
568 }
569}
570#[derive(
571 Clone,
572 Reflect,
573 Debug,
574 Default,
575 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
576 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
577)]
578#[fhir_serialize_type = "complex"]
579#[doc = "Dynamic values that will be evaluated to produce values for elements of the resulting resource. For example, if the dosage of a medication must be computed based on the patient's weight, a dynamic value would be used to specify an expression that calculated the weight, and the path on the request resource that would contain the result."]
580pub struct ActivityDefinitionDynamicValue {
581 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
582 pub id: Option<String>,
583 #[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 manageable, 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."]
584 pub extension: Option<Vec<Box<Extension>>>,
585 #[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 manageable, 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)."]
586 pub modifierExtension: Option<Vec<Box<Extension>>>,
587 #[primitive]
588 #[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 resolveable 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)."]
589 pub path: Box<FHIRString>,
590 #[doc = "An expression specifying the value of the customized element."]
591 pub expression: Box<Expression>,
592}
593#[derive(
594 Clone,
595 Reflect,
596 Debug,
597 Default,
598 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
599 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
600)]
601#[fhir_serialize_type = "resource"]
602#[doc = "This resource allows for the definition of some activity to be performed, independent of a particular patient, practitioner, or other performance context."]
603pub struct ActivityDefinition {
604 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
605 pub id: Option<String>,
606 #[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."]
607 pub meta: Option<Box<Meta>>,
608 #[primitive]
609 #[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."]
610 pub implicitRules: Option<Box<FHIRUri>>,
611 #[primitive]
612 #[doc = "The base language in which the resource is written."]
613 pub language: Option<Box<FHIRCode>>,
614 #[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."]
615 pub text: Option<Box<Narrative>>,
616 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
617 pub contained: Option<Vec<Box<Resource>>>,
618 #[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 manageable, 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."]
619 pub extension: Option<Vec<Box<Extension>>>,
620 #[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 manageable, 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)."]
621 pub modifierExtension: Option<Vec<Box<Extension>>>,
622 #[primitive]
623 #[doc = "An absolute URI that is used to identify this activity definition 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 at which an authoritative instance of this activity definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the activity definition is stored on different servers."]
624 pub url: Option<Box<FHIRUri>>,
625 #[rename_field = "identifier"]
626 #[doc = "A formal identifier that is used to identify this activity definition when it is represented in other formats, or referenced in a specification, model, design or an instance."]
627 pub identifier_: Option<Vec<Box<Identifier>>>,
628 #[primitive]
629 #[doc = "The identifier that is used to identify this version of the activity definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the activity definition 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. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active assets."]
630 pub version: Option<Box<FHIRString>>,
631 #[primitive]
632 #[doc = "A natural language name identifying the activity definition. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
633 pub name: Option<Box<FHIRString>>,
634 #[primitive]
635 #[doc = "A short, descriptive, user-friendly title for the activity definition."]
636 pub title: Option<Box<FHIRString>>,
637 #[primitive]
638 #[doc = "An explanatory or alternate title for the activity definition giving additional information about its content."]
639 pub subtitle: Option<Box<FHIRString>>,
640 #[primitive]
641 #[doc = "The status of this activity definition. Enables tracking the life-cycle of the content."]
642 pub status: Box<terminology::PublicationStatus>,
643 #[primitive]
644 #[doc = "A Boolean value to indicate that this activity definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
645 pub experimental: Option<Box<FHIRBoolean>>,
646 # [type_choice_variants (complex = ["subjectCodeableConcept" , "subjectReference"] , primitive = [])]
647 #[doc = "A code or group definition that describes the intended subject of the activity being defined."]
648 pub subject: Option<ActivityDefinitionSubjectTypeChoice>,
649 #[primitive]
650 #[doc = "The date (and optionally time) when the activity definition was published. 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 activity definition changes."]
651 pub date: Option<Box<FHIRDateTime>>,
652 #[primitive]
653 #[doc = "The name of the organization or individual that published the activity definition."]
654 pub publisher: Option<Box<FHIRString>>,
655 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
656 pub contact: Option<Vec<Box<ContactDetail>>>,
657 #[primitive]
658 #[doc = "A free text natural language description of the activity definition from a consumer's perspective."]
659 pub description: Option<Box<FHIRMarkdown>>,
660 #[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 activity definition instances."]
661 pub useContext: Option<Vec<Box<UsageContext>>>,
662 #[doc = "A legal or geographic region in which the activity definition is intended to be used."]
663 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
664 #[primitive]
665 #[doc = "Explanation of why this activity definition is needed and why it has been designed as it has."]
666 pub purpose: Option<Box<FHIRMarkdown>>,
667 #[primitive]
668 #[doc = "A detailed description of how the activity definition is used from a clinical perspective."]
669 pub usage: Option<Box<FHIRString>>,
670 #[primitive]
671 #[doc = "A copyright statement relating to the activity definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the activity definition."]
672 pub copyright: Option<Box<FHIRMarkdown>>,
673 #[primitive]
674 #[doc = "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage."]
675 pub approvalDate: Option<Box<FHIRDate>>,
676 #[primitive]
677 #[doc = "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date."]
678 pub lastReviewDate: Option<Box<FHIRDate>>,
679 #[doc = "The period during which the activity definition content was or is planned to be in active use."]
680 pub effectivePeriod: Option<Box<Period>>,
681 #[doc = "Descriptive topics related to the content of the activity. Topics provide a high-level categorization of the activity that can be useful for filtering and searching."]
682 pub topic: Option<Vec<Box<CodeableConcept>>>,
683 #[doc = "An individiual or organization primarily involved in the creation and maintenance of the content."]
684 pub author: Option<Vec<Box<ContactDetail>>>,
685 #[doc = "An individual or organization primarily responsible for internal coherence of the content."]
686 pub editor: Option<Vec<Box<ContactDetail>>>,
687 #[doc = "An individual or organization primarily responsible for review of some aspect of the content."]
688 pub reviewer: Option<Vec<Box<ContactDetail>>>,
689 #[doc = "An individual or organization responsible for officially endorsing the content for use in some setting."]
690 pub endorser: Option<Vec<Box<ContactDetail>>>,
691 #[doc = "Related artifacts such as additional documentation, justification, or bibliographic references."]
692 pub relatedArtifact: Option<Vec<Box<RelatedArtifact>>>,
693 #[primitive]
694 #[doc = "A reference to a Library resource containing any formal logic used by the activity definition."]
695 pub library: Option<Vec<Box<FHIRCanonical>>>,
696 #[primitive]
697 #[doc = "A description of the kind of resource the activity definition is representing. For example, a MedicationRequest, a ServiceRequest, or a CommunicationRequest. Typically, but not always, this is a Request resource."]
698 pub kind: Option<Box<terminology::RequestResourceTypes>>,
699 #[primitive]
700 #[doc = "A profile to which the target of the activity definition is expected to conform."]
701 pub profile: Option<Box<FHIRCanonical>>,
702 #[doc = "Detailed description of the type of activity; e.g. What lab test, what procedure, what kind of encounter."]
703 pub code: Option<Box<CodeableConcept>>,
704 #[primitive]
705 #[doc = "Indicates the level of authority/intentionality associated with the activity and where the request should fit into the workflow chain."]
706 pub intent: Option<Box<terminology::RequestIntent>>,
707 #[primitive]
708 #[doc = "Indicates how quickly the activity should be addressed with respect to other requests."]
709 pub priority: Option<Box<terminology::RequestPriority>>,
710 #[primitive]
711 #[doc = "Set this to true if the definition is to indicate that a particular activity should NOT be performed. If true, this element should be interpreted to reinforce a negative coding. For example NPO as a code with a doNotPerform of true would still indicate to NOT perform the action."]
712 pub doNotPerform: Option<Box<FHIRBoolean>>,
713 # [type_choice_variants (complex = ["timingTiming" , "timingAge" , "timingPeriod" , "timingRange" , "timingDuration"] , primitive = ["timingDateTime"])]
714 #[doc = "The period, timing or frequency upon which the described activity is to occur."]
715 pub timing: Option<ActivityDefinitionTimingTypeChoice>,
716 # [reference (targets = ["Location"])]
717 #[doc = "Identifies the facility where the activity will occur; e.g. home, hospital, specific clinic, etc."]
718 pub location: Option<Box<Reference>>,
719 #[doc = "Indicates who should participate in performing the action described."]
720 pub participant: Option<Vec<ActivityDefinitionParticipant>>,
721 # [type_choice_variants (complex = ["productReference" , "productCodeableConcept"] , primitive = [])]
722 #[doc = "Identifies the food, drug or other product being consumed or supplied in the activity."]
723 pub product: Option<ActivityDefinitionProductTypeChoice>,
724 #[doc = "Identifies the quantity expected to be consumed at once (per dose, per meal, etc.)."]
725 pub quantity: Option<Box<Quantity>>,
726 #[doc = "Provides detailed dosage instructions in the same way that they are described for MedicationRequest resources."]
727 pub dosage: Option<Vec<Box<Dosage>>>,
728 #[doc = "Indicates the sites on the subject's body where the procedure should be performed (I.e. the target sites)."]
729 pub bodySite: Option<Vec<Box<CodeableConcept>>>,
730 # [reference (targets = ["SpecimenDefinition"])]
731 #[doc = "Defines specimen requirements for the action to be performed, such as required specimens for a lab test."]
732 pub specimenRequirement: Option<Vec<Box<Reference>>>,
733 # [reference (targets = ["ObservationDefinition"])]
734 #[doc = "Defines observation requirements for the action to be performed, such as body weight or surface area."]
735 pub observationRequirement: Option<Vec<Box<Reference>>>,
736 # [reference (targets = ["ObservationDefinition"])]
737 #[doc = "Defines the observations that are expected to be produced by the action."]
738 pub observationResultRequirement: Option<Vec<Box<Reference>>>,
739 #[primitive]
740 #[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."]
741 pub transform: Option<Box<FHIRCanonical>>,
742 #[doc = "Dynamic values that will be evaluated to produce values for elements of the resulting resource. For example, if the dosage of a medication must be computed based on the patient's weight, a dynamic value would be used to specify an expression that calculated the weight, and the path on the request resource that would contain the result."]
743 pub dynamicValue: Option<Vec<ActivityDefinitionDynamicValue>>,
744}
745#[derive(
746 Clone,
747 Reflect,
748 Debug,
749 Default,
750 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
751 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
752)]
753#[fhir_serialize_type = "complex"]
754#[doc = "Information on the possible cause of the event."]
755pub struct AdverseEventSuspectEntityCausality {
756 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
757 pub id: Option<String>,
758 #[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 manageable, 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."]
759 pub extension: Option<Vec<Box<Extension>>>,
760 #[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 manageable, 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)."]
761 pub modifierExtension: Option<Vec<Box<Extension>>>,
762 #[doc = "Assessment of if the entity caused the event."]
763 pub assessment: Option<Box<CodeableConcept>>,
764 #[primitive]
765 #[doc = "AdverseEvent.suspectEntity.causalityProductRelatedness."]
766 pub productRelatedness: Option<Box<FHIRString>>,
767 # [reference (targets = ["Practitioner" , "PractitionerRole"])]
768 #[doc = "AdverseEvent.suspectEntity.causalityAuthor."]
769 pub author: Option<Box<Reference>>,
770 #[doc = "ProbabilityScale | Bayesian | Checklist."]
771 pub method: Option<Box<CodeableConcept>>,
772}
773#[derive(
774 Clone,
775 Reflect,
776 Debug,
777 Default,
778 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
779 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
780)]
781#[fhir_serialize_type = "complex"]
782#[doc = "Describes the entity that is suspected to have caused the adverse event."]
783pub struct AdverseEventSuspectEntity {
784 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
785 pub id: Option<String>,
786 #[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 manageable, 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."]
787 pub extension: Option<Vec<Box<Extension>>>,
788 #[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 manageable, 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)."]
789 pub modifierExtension: Option<Vec<Box<Extension>>>,
790 # [reference (targets = ["Immunization" , "Procedure" , "Substance" , "Medication" , "MedicationAdministration" , "MedicationStatement" , "Device"])]
791 #[doc = "Identifies the actual instance of what caused the adverse event. May be a substance, medication, medication administration, medication statement or a device."]
792 pub instance: Box<Reference>,
793 #[doc = "Information on the possible cause of the event."]
794 pub causality: Option<Vec<AdverseEventSuspectEntityCausality>>,
795}
796#[derive(
797 Clone,
798 Reflect,
799 Debug,
800 Default,
801 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
802 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
803)]
804#[fhir_serialize_type = "resource"]
805#[doc = "Actual or potential/avoided event causing unintended physical injury resulting from or contributed to by medical care, a research study or other healthcare setting factors that requires additional monitoring, treatment, or hospitalization, or that results in death."]
806pub struct AdverseEvent {
807 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
808 pub id: Option<String>,
809 #[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."]
810 pub meta: Option<Box<Meta>>,
811 #[primitive]
812 #[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."]
813 pub implicitRules: Option<Box<FHIRUri>>,
814 #[primitive]
815 #[doc = "The base language in which the resource is written."]
816 pub language: Option<Box<FHIRCode>>,
817 #[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."]
818 pub text: Option<Box<Narrative>>,
819 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
820 pub contained: Option<Vec<Box<Resource>>>,
821 #[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 manageable, 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."]
822 pub extension: Option<Vec<Box<Extension>>>,
823 #[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 manageable, 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)."]
824 pub modifierExtension: Option<Vec<Box<Extension>>>,
825 #[rename_field = "identifier"]
826 #[doc = "Business identifiers assigned to this adverse event by the performer or other systems which remain constant as the resource is updated and propagates from server to server."]
827 pub identifier_: Option<Box<Identifier>>,
828 #[primitive]
829 #[doc = "Whether the event actually happened, or just had the potential to. Note that this is independent of whether anyone was affected or harmed or how severely."]
830 pub actuality: Box<terminology::AdverseEventActuality>,
831 #[doc = "The overall type of event, intended for search and filtering purposes."]
832 pub category: Option<Vec<Box<CodeableConcept>>>,
833 #[doc = "This element defines the specific type of event that occurred or that was prevented from occurring."]
834 pub event: Option<Box<CodeableConcept>>,
835 # [reference (targets = ["Patient" , "Group" , "Practitioner" , "RelatedPerson"])]
836 #[doc = "This subject or group impacted by the event."]
837 pub subject: Box<Reference>,
838 # [reference (targets = ["Encounter"])]
839 #[doc = "The Encounter during which AdverseEvent was created or to which the creation of this record is tightly associated."]
840 pub encounter: Option<Box<Reference>>,
841 #[primitive]
842 #[doc = "The date (and perhaps time) when the adverse event occurred."]
843 pub date: Option<Box<FHIRDateTime>>,
844 #[primitive]
845 #[doc = "Estimated or actual date the AdverseEvent began, in the opinion of the reporter."]
846 pub detected: Option<Box<FHIRDateTime>>,
847 #[primitive]
848 #[doc = "The date on which the existence of the AdverseEvent was first recorded."]
849 pub recordedDate: Option<Box<FHIRDateTime>>,
850 # [reference (targets = ["Condition"])]
851 #[doc = "Includes information about the reaction that occurred as a result of exposure to a substance (for example, a drug or a chemical)."]
852 pub resultingCondition: Option<Vec<Box<Reference>>>,
853 # [reference (targets = ["Location"])]
854 #[doc = "The information about where the adverse event occurred."]
855 pub location: Option<Box<Reference>>,
856 #[doc = "Assessment whether this event was of real importance."]
857 pub seriousness: Option<Box<CodeableConcept>>,
858 #[doc = "Describes the severity of the adverse event, in relation to the subject. Contrast to AdverseEvent.seriousness - a severe rash might not be serious, but a mild heart problem is."]
859 pub severity: Option<Box<CodeableConcept>>,
860 #[doc = "Describes the type of outcome from the adverse event."]
861 pub outcome: Option<Box<CodeableConcept>>,
862 # [reference (targets = ["Patient" , "Practitioner" , "PractitionerRole" , "RelatedPerson"])]
863 #[doc = "Information on who recorded the adverse event. May be the patient or a practitioner."]
864 pub recorder: Option<Box<Reference>>,
865 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Device"])]
866 #[doc = "Parties that may or should contribute or have contributed information to the adverse event, which can consist of one or more activities. Such information includes information leading to the decision to perform the activity and how to perform the activity (e.g. consultant), information that the activity itself seeks to reveal (e.g. informant of clinical history), or information about what activity was performed (e.g. informant witness)."]
867 pub contributor: Option<Vec<Box<Reference>>>,
868 #[doc = "Describes the entity that is suspected to have caused the adverse event."]
869 pub suspectEntity: Option<Vec<AdverseEventSuspectEntity>>,
870 # [reference (targets = ["Condition" , "Observation" , "AllergyIntolerance" , "FamilyMemberHistory" , "Immunization" , "Procedure" , "Media" , "DocumentReference"])]
871 #[doc = "AdverseEvent.subjectMedicalHistory."]
872 pub subjectMedicalHistory: Option<Vec<Box<Reference>>>,
873 # [reference (targets = ["DocumentReference"])]
874 #[doc = "AdverseEvent.referenceDocument."]
875 pub referenceDocument: Option<Vec<Box<Reference>>>,
876 # [reference (targets = ["ResearchStudy"])]
877 #[doc = "AdverseEvent.study."]
878 pub study: Option<Vec<Box<Reference>>>,
879}
880#[derive(
881 Clone,
882 Reflect,
883 Debug,
884 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
885 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
886)]
887#[fhir_serialize_type = "typechoice"]
888#[type_choice_field_name = "onset"]
889pub enum AllergyIntoleranceOnsetTypeChoice {
890 DateTime(Box<FHIRDateTime>),
891 Age(Box<Age>),
892 Period(Box<Period>),
893 Range(Box<Range>),
894 String(Box<FHIRString>),
895}
896impl Default for AllergyIntoleranceOnsetTypeChoice {
897 fn default() -> Self {
898 AllergyIntoleranceOnsetTypeChoice::DateTime(Box::new(Default::default()))
899 }
900}
901#[derive(
902 Clone,
903 Reflect,
904 Debug,
905 Default,
906 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
907 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
908)]
909#[fhir_serialize_type = "complex"]
910#[doc = "Details about each adverse reaction event linked to exposure to the identified substance."]
911pub struct AllergyIntoleranceReaction {
912 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
913 pub id: Option<String>,
914 #[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 manageable, 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."]
915 pub extension: Option<Vec<Box<Extension>>>,
916 #[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 manageable, 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)."]
917 pub modifierExtension: Option<Vec<Box<Extension>>>,
918 #[doc = "Identification of the specific substance (or pharmaceutical product) considered to be responsible for the Adverse Reaction event. Note: the substance for a specific reaction may be different from the substance identified as the cause of the risk, but it must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite product that includes the identified substance. It must be clinically safe to only process the 'code' and ignore the 'reaction.substance'. If a receiving system is unable to confirm that AllergyIntolerance.reaction.substance falls within the semantic scope of AllergyIntolerance.code, then the receiving system should ignore AllergyIntolerance.reaction.substance."]
919 pub substance: Option<Box<CodeableConcept>>,
920 #[cardinality(min = 1usize)]
921 #[doc = "Clinical symptoms and/or signs that are observed or associated with the adverse reaction event."]
922 pub manifestation: Vec<Box<CodeableConcept>>,
923 #[primitive]
924 #[doc = "Text description about the reaction as a whole, including details of the manifestation if required."]
925 pub description: Option<Box<FHIRString>>,
926 #[primitive]
927 #[doc = "Record of the date and/or time of the onset of the Reaction."]
928 pub onset: Option<Box<FHIRDateTime>>,
929 #[primitive]
930 #[doc = "Clinical assessment of the severity of the reaction event as a whole, potentially considering multiple different manifestations."]
931 pub severity: Option<Box<terminology::ReactionEventSeverity>>,
932 #[doc = "Identification of the route by which the subject was exposed to the substance."]
933 pub exposureRoute: Option<Box<CodeableConcept>>,
934 #[doc = "Additional text about the adverse reaction event not captured in other fields."]
935 pub note: Option<Vec<Box<Annotation>>>,
936}
937#[derive(
938 Clone,
939 Reflect,
940 Debug,
941 Default,
942 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
943 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
944)]
945#[fhir_serialize_type = "resource"]
946#[doc = "Risk of harmful or undesirable, physiological response which is unique to an individual and associated with exposure to a substance."]
947pub struct AllergyIntolerance {
948 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
949 pub id: Option<String>,
950 #[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."]
951 pub meta: Option<Box<Meta>>,
952 #[primitive]
953 #[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."]
954 pub implicitRules: Option<Box<FHIRUri>>,
955 #[primitive]
956 #[doc = "The base language in which the resource is written."]
957 pub language: Option<Box<FHIRCode>>,
958 #[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."]
959 pub text: Option<Box<Narrative>>,
960 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
961 pub contained: Option<Vec<Box<Resource>>>,
962 #[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 manageable, 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."]
963 pub extension: Option<Vec<Box<Extension>>>,
964 #[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 manageable, 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)."]
965 pub modifierExtension: Option<Vec<Box<Extension>>>,
966 #[rename_field = "identifier"]
967 #[doc = "Business identifiers assigned to this AllergyIntolerance by the performer or other systems which remain constant as the resource is updated and propagates from server to server."]
968 pub identifier_: Option<Vec<Box<Identifier>>>,
969 #[doc = "The clinical status of the allergy or intolerance."]
970 pub clinicalStatus: Option<Box<CodeableConcept>>,
971 #[doc = "Assertion about certainty associated with the propensity, or potential risk, of a reaction to the identified substance (including pharmaceutical product)."]
972 pub verificationStatus: Option<Box<CodeableConcept>>,
973 #[rename_field = "type"]
974 #[primitive]
975 #[doc = "Identification of the underlying physiological mechanism for the reaction risk."]
976 pub type_: Option<Box<terminology::AllergyIntoleranceType>>,
977 #[primitive]
978 #[doc = "Category of the identified substance."]
979 pub category: Option<Vec<Box<terminology::AllergyIntoleranceCategory>>>,
980 #[primitive]
981 #[doc = "Estimate of the potential clinical harm, or seriousness, of the reaction to the identified substance."]
982 pub criticality: Option<Box<terminology::AllergyIntoleranceCriticality>>,
983 #[doc = "Code for an allergy or intolerance statement (either a positive or a negated/excluded statement). This may be a code for a substance or pharmaceutical product that is considered to be responsible for the adverse reaction risk (e.g., \"Latex\"), an allergy or intolerance condition (e.g., \"Latex allergy\"), or a negated/excluded code for a specific substance or class (e.g., \"No latex allergy\") or a general or categorical negated statement (e.g., \"No known allergy\", \"No known drug allergies\"). Note: the substance for a specific reaction may be different from the substance identified as the cause of the risk, but it must be consistent with it. For instance, it may be a more specific substance (e.g. a brand medication) or a composite product that includes the identified substance. It must be clinically safe to only process the 'code' and ignore the 'reaction.substance'. If a receiving system is unable to confirm that AllergyIntolerance.reaction.substance falls within the semantic scope of AllergyIntolerance.code, then the receiving system should ignore AllergyIntolerance.reaction.substance."]
984 pub code: Option<Box<CodeableConcept>>,
985 # [reference (targets = ["Patient"])]
986 #[doc = "The patient who has the allergy or intolerance."]
987 pub patient: Box<Reference>,
988 # [reference (targets = ["Encounter"])]
989 #[doc = "The encounter when the allergy or intolerance was asserted."]
990 pub encounter: Option<Box<Reference>>,
991 # [type_choice_variants (complex = ["onsetAge" , "onsetPeriod" , "onsetRange"] , primitive = ["onsetDateTime" , "onsetString"])]
992 #[doc = "Estimated or actual date, date-time, or age when allergy or intolerance was identified."]
993 pub onset: Option<AllergyIntoleranceOnsetTypeChoice>,
994 #[primitive]
995 #[doc = "The recordedDate represents when this particular AllergyIntolerance record was created in the system, which is often a system-generated date."]
996 pub recordedDate: Option<Box<FHIRDateTime>>,
997 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Patient" , "RelatedPerson"])]
998 #[doc = "Individual who recorded the record and takes responsibility for its content."]
999 pub recorder: Option<Box<Reference>>,
1000 # [reference (targets = ["Patient" , "RelatedPerson" , "Practitioner" , "PractitionerRole"])]
1001 #[doc = "The source of the information about the allergy that is recorded."]
1002 pub asserter: Option<Box<Reference>>,
1003 #[primitive]
1004 #[doc = "Represents the date and/or time of the last known occurrence of a reaction event."]
1005 pub lastOccurrence: Option<Box<FHIRDateTime>>,
1006 #[doc = "Additional narrative about the propensity for the Adverse Reaction, not captured in other fields."]
1007 pub note: Option<Vec<Box<Annotation>>>,
1008 #[doc = "Details about each adverse reaction event linked to exposure to the identified substance."]
1009 pub reaction: Option<Vec<AllergyIntoleranceReaction>>,
1010}
1011#[derive(
1012 Clone,
1013 Reflect,
1014 Debug,
1015 Default,
1016 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1017 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1018)]
1019#[fhir_serialize_type = "complex"]
1020#[doc = "List of participants involved in the appointment."]
1021pub struct AppointmentParticipant {
1022 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1023 pub id: Option<String>,
1024 #[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 manageable, 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."]
1025 pub extension: Option<Vec<Box<Extension>>>,
1026 #[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 manageable, 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)."]
1027 pub modifierExtension: Option<Vec<Box<Extension>>>,
1028 #[rename_field = "type"]
1029 #[doc = "Role of participant in the appointment."]
1030 pub type_: Option<Vec<Box<CodeableConcept>>>,
1031 # [reference (targets = ["Patient" , "Practitioner" , "PractitionerRole" , "RelatedPerson" , "Device" , "HealthcareService" , "Location"])]
1032 #[doc = "A Person, Location/HealthcareService or Device that is participating in the appointment."]
1033 pub actor: Option<Box<Reference>>,
1034 #[primitive]
1035 #[doc = "Whether this participant is required to be present at the meeting. This covers a use-case where two doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present."]
1036 pub required: Option<Box<terminology::Participantrequired>>,
1037 #[primitive]
1038 #[doc = "Participation status of the actor."]
1039 pub status: Box<terminology::Participationstatus>,
1040 #[doc = "Participation period of the actor."]
1041 pub period: Option<Box<Period>>,
1042}
1043#[derive(
1044 Clone,
1045 Reflect,
1046 Debug,
1047 Default,
1048 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1049 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1050)]
1051#[fhir_serialize_type = "resource"]
1052#[doc = "A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s)."]
1053pub struct Appointment {
1054 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
1055 pub id: Option<String>,
1056 #[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."]
1057 pub meta: Option<Box<Meta>>,
1058 #[primitive]
1059 #[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."]
1060 pub implicitRules: Option<Box<FHIRUri>>,
1061 #[primitive]
1062 #[doc = "The base language in which the resource is written."]
1063 pub language: Option<Box<FHIRCode>>,
1064 #[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."]
1065 pub text: Option<Box<Narrative>>,
1066 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
1067 pub contained: Option<Vec<Box<Resource>>>,
1068 #[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 manageable, 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."]
1069 pub extension: Option<Vec<Box<Extension>>>,
1070 #[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 manageable, 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)."]
1071 pub modifierExtension: Option<Vec<Box<Extension>>>,
1072 #[rename_field = "identifier"]
1073 #[doc = "This records identifiers associated with this appointment concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)."]
1074 pub identifier_: Option<Vec<Box<Identifier>>>,
1075 #[primitive]
1076 #[doc = "The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status."]
1077 pub status: Box<terminology::Appointmentstatus>,
1078 #[doc = "The coded reason for the appointment being cancelled. This is often used in reporting/billing/futher processing to determine if further actions are required, or specific fees apply."]
1079 pub cancelationReason: Option<Box<CodeableConcept>>,
1080 #[doc = "A broad categorization of the service that is to be performed during this appointment."]
1081 pub serviceCategory: Option<Vec<Box<CodeableConcept>>>,
1082 #[doc = "The specific service that is to be performed during this appointment."]
1083 pub serviceType: Option<Vec<Box<CodeableConcept>>>,
1084 #[doc = "The specialty of a practitioner that would be required to perform the service requested in this appointment."]
1085 pub specialty: Option<Vec<Box<CodeableConcept>>>,
1086 #[doc = "The style of appointment or patient that has been booked in the slot (not service type)."]
1087 pub appointmentType: Option<Box<CodeableConcept>>,
1088 #[doc = "The coded reason that this appointment is being scheduled. This is more clinical than administrative."]
1089 pub reasonCode: Option<Vec<Box<CodeableConcept>>>,
1090 # [reference (targets = ["Condition" , "Procedure" , "Observation" , "ImmunizationRecommendation"])]
1091 #[doc = "Reason the appointment has been scheduled to take place, as specified using information from another resource. When the patient arrives and the encounter begins it may be used as the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure."]
1092 pub reasonReference: Option<Vec<Box<Reference>>>,
1093 #[primitive]
1094 #[doc = "The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority)."]
1095 pub priority: Option<Box<FHIRUnsignedInt>>,
1096 #[primitive]
1097 #[doc = "The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field."]
1098 pub description: Option<Box<FHIRString>>,
1099 # [reference (targets = ["Resource"])]
1100 #[doc = "Additional information to support the appointment provided when making the appointment."]
1101 pub supportingInformation: Option<Vec<Box<Reference>>>,
1102 #[primitive]
1103 #[doc = "Date/Time that the appointment is to take place."]
1104 pub start: Option<Box<FHIRInstant>>,
1105 #[primitive]
1106 #[doc = "Date/Time that the appointment is to conclude."]
1107 pub end: Option<Box<FHIRInstant>>,
1108 #[primitive]
1109 #[doc = "Number of minutes that the appointment is to take. This can be less than the duration between the start and end times. For example, where the actual time of appointment is only an estimate or if a 30 minute appointment is being requested, but any time would work. Also, if there is, for example, a planned 15 minute break in the middle of a long appointment, the duration may be 15 minutes less than the difference between the start and end."]
1110 pub minutesDuration: Option<Box<FHIRPositiveInt>>,
1111 # [reference (targets = ["Slot"])]
1112 #[doc = "The slots from the participants' schedules that will be filled by the appointment."]
1113 pub slot: Option<Vec<Box<Reference>>>,
1114 #[primitive]
1115 #[doc = "The date that this appointment was initially created. This could be different to the meta.lastModified value on the initial entry, as this could have been before the resource was created on the FHIR server, and should remain unchanged over the lifespan of the appointment."]
1116 pub created: Option<Box<FHIRDateTime>>,
1117 #[primitive]
1118 #[doc = "Additional comments about the appointment."]
1119 pub comment: Option<Box<FHIRString>>,
1120 #[primitive]
1121 #[doc = "While Appointment.comment contains information for internal use, Appointment.patientInstructions is used to capture patient facing information about the Appointment (e.g. please bring your referral or fast from 8pm night before)."]
1122 pub patientInstruction: Option<Box<FHIRString>>,
1123 # [reference (targets = ["ServiceRequest"])]
1124 #[doc = "The service request this appointment is allocated to assess (e.g. incoming referral or procedure request)."]
1125 pub basedOn: Option<Vec<Box<Reference>>>,
1126 #[cardinality(min = 1usize)]
1127 #[doc = "List of participants involved in the appointment."]
1128 pub participant: Vec<AppointmentParticipant>,
1129 #[doc = "A set of date ranges (potentially including times) that the appointment is preferred to be scheduled within.\n\nThe duration (usually in minutes) could also be provided to indicate the length of the appointment to fill and populate the start/end times for the actual allocated time. However, in other situations the duration may be calculated by the scheduling system."]
1130 pub requestedPeriod: Option<Vec<Box<Period>>>,
1131}
1132#[derive(
1133 Clone,
1134 Reflect,
1135 Debug,
1136 Default,
1137 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1138 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1139)]
1140#[fhir_serialize_type = "resource"]
1141#[doc = "A reply to an appointment request for a patient and/or practitioner(s), such as a confirmation or rejection."]
1142pub struct AppointmentResponse {
1143 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
1144 pub id: Option<String>,
1145 #[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."]
1146 pub meta: Option<Box<Meta>>,
1147 #[primitive]
1148 #[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."]
1149 pub implicitRules: Option<Box<FHIRUri>>,
1150 #[primitive]
1151 #[doc = "The base language in which the resource is written."]
1152 pub language: Option<Box<FHIRCode>>,
1153 #[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."]
1154 pub text: Option<Box<Narrative>>,
1155 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
1156 pub contained: Option<Vec<Box<Resource>>>,
1157 #[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 manageable, 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."]
1158 pub extension: Option<Vec<Box<Extension>>>,
1159 #[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 manageable, 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)."]
1160 pub modifierExtension: Option<Vec<Box<Extension>>>,
1161 #[rename_field = "identifier"]
1162 #[doc = "This records identifiers associated with this appointment response concern that are defined by business processes and/ or used to refer to it when a direct URL reference to the resource itself is not appropriate."]
1163 pub identifier_: Option<Vec<Box<Identifier>>>,
1164 # [reference (targets = ["Appointment"])]
1165 #[doc = "Appointment that this response is replying to."]
1166 pub appointment: Box<Reference>,
1167 #[primitive]
1168 #[doc = "Date/Time that the appointment is to take place, or requested new start time."]
1169 pub start: Option<Box<FHIRInstant>>,
1170 #[primitive]
1171 #[doc = "This may be either the same as the appointment request to confirm the details of the appointment, or alternately a new time to request a re-negotiation of the end time."]
1172 pub end: Option<Box<FHIRInstant>>,
1173 #[doc = "Role of participant in the appointment."]
1174 pub participantType: Option<Vec<Box<CodeableConcept>>>,
1175 # [reference (targets = ["Patient" , "Practitioner" , "PractitionerRole" , "RelatedPerson" , "Device" , "HealthcareService" , "Location"])]
1176 #[doc = "A Person, Location, HealthcareService, or Device that is participating in the appointment."]
1177 pub actor: Option<Box<Reference>>,
1178 #[primitive]
1179 #[doc = "Participation status of the participant. When the status is declined or tentative if the start/end times are different to the appointment, then these times should be interpreted as a requested time change. When the status is accepted, the times can either be the time of the appointment (as a confirmation of the time) or can be empty."]
1180 pub participantStatus: Box<terminology::Participationstatus>,
1181 #[primitive]
1182 #[doc = "Additional comments about the appointment."]
1183 pub comment: Option<Box<FHIRString>>,
1184}
1185#[derive(
1186 Clone,
1187 Reflect,
1188 Debug,
1189 Default,
1190 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1191 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1192)]
1193#[fhir_serialize_type = "complex"]
1194#[doc = "Logical network location for application activity, if the activity has a network location."]
1195pub struct AuditEventAgentNetwork {
1196 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1197 pub id: Option<String>,
1198 #[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 manageable, 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."]
1199 pub extension: Option<Vec<Box<Extension>>>,
1200 #[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 manageable, 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)."]
1201 pub modifierExtension: Option<Vec<Box<Extension>>>,
1202 #[primitive]
1203 #[doc = "An identifier for the network access point of the user device for the audit event."]
1204 pub address: Option<Box<FHIRString>>,
1205 #[rename_field = "type"]
1206 #[primitive]
1207 #[doc = "An identifier for the type of network access point that originated the audit event."]
1208 pub type_: Option<Box<terminology::NetworkType>>,
1209}
1210#[derive(
1211 Clone,
1212 Reflect,
1213 Debug,
1214 Default,
1215 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1216 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1217)]
1218#[fhir_serialize_type = "complex"]
1219#[doc = "An actor taking an active role in the event or activity that is logged."]
1220pub struct AuditEventAgent {
1221 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1222 pub id: Option<String>,
1223 #[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 manageable, 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."]
1224 pub extension: Option<Vec<Box<Extension>>>,
1225 #[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 manageable, 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)."]
1226 pub modifierExtension: Option<Vec<Box<Extension>>>,
1227 #[rename_field = "type"]
1228 #[doc = "Specification of the participation type the user plays when performing the event."]
1229 pub type_: Option<Box<CodeableConcept>>,
1230 #[doc = "The security role that the user was acting under, that come from local codes defined by the access control security system (e.g. RBAC, ABAC) used in the local context."]
1231 pub role: Option<Vec<Box<CodeableConcept>>>,
1232 # [reference (targets = ["PractitionerRole" , "Practitioner" , "Organization" , "Device" , "Patient" , "RelatedPerson"])]
1233 #[doc = "Reference to who this agent is that was involved in the event."]
1234 pub who: Option<Box<Reference>>,
1235 #[primitive]
1236 #[doc = "Alternative agent Identifier. For a human, this should be a user identifier text string from authentication system. This identifier would be one known to a common authentication system (e.g. single sign-on), if available."]
1237 pub altId: Option<Box<FHIRString>>,
1238 #[primitive]
1239 #[doc = "Human-meaningful name for the agent."]
1240 pub name: Option<Box<FHIRString>>,
1241 #[primitive]
1242 #[doc = "Indicator that the user is or is not the requestor, or initiator, for the event being audited."]
1243 pub requestor: Box<FHIRBoolean>,
1244 # [reference (targets = ["Location"])]
1245 #[doc = "Where the event occurred."]
1246 pub location: Option<Box<Reference>>,
1247 #[primitive]
1248 #[doc = "The policy or plan that authorized the activity being recorded. Typically, a single activity may have multiple applicable policies, such as patient consent, guarantor funding, etc. The policy would also indicate the security token used."]
1249 pub policy: Option<Vec<Box<FHIRUri>>>,
1250 #[doc = "Type of media involved. Used when the event is about exporting/importing onto media."]
1251 pub media: Option<Box<Coding>>,
1252 #[doc = "Logical network location for application activity, if the activity has a network location."]
1253 pub network: Option<AuditEventAgentNetwork>,
1254 #[doc = "The reason (purpose of use), specific to this agent, that was used during the event being recorded."]
1255 pub purposeOfUse: Option<Vec<Box<CodeableConcept>>>,
1256}
1257#[derive(
1258 Clone,
1259 Reflect,
1260 Debug,
1261 Default,
1262 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1263 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1264)]
1265#[fhir_serialize_type = "complex"]
1266#[doc = "The system that is reporting the event."]
1267pub struct AuditEventSource {
1268 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1269 pub id: Option<String>,
1270 #[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 manageable, 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."]
1271 pub extension: Option<Vec<Box<Extension>>>,
1272 #[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 manageable, 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)."]
1273 pub modifierExtension: Option<Vec<Box<Extension>>>,
1274 #[primitive]
1275 #[doc = "Logical source location within the healthcare enterprise network. For example, a hospital or other provider location within a multi-entity provider group."]
1276 pub site: Option<Box<FHIRString>>,
1277 # [reference (targets = ["PractitionerRole" , "Practitioner" , "Organization" , "Device" , "Patient" , "RelatedPerson"])]
1278 #[doc = "Identifier of the source where the event was detected."]
1279 pub observer: Box<Reference>,
1280 #[rename_field = "type"]
1281 #[doc = "Code specifying the type of source where event originated."]
1282 pub type_: Option<Vec<Box<Coding>>>,
1283}
1284#[derive(
1285 Clone,
1286 Reflect,
1287 Debug,
1288 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1289 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1290)]
1291#[fhir_serialize_type = "typechoice"]
1292#[type_choice_field_name = "value"]
1293pub enum AuditEventEntityDetailValueTypeChoice {
1294 String(Box<FHIRString>),
1295 Base64Binary(Box<FHIRBase64Binary>),
1296}
1297impl Default for AuditEventEntityDetailValueTypeChoice {
1298 fn default() -> Self {
1299 AuditEventEntityDetailValueTypeChoice::String(Box::new(Default::default()))
1300 }
1301}
1302#[derive(
1303 Clone,
1304 Reflect,
1305 Debug,
1306 Default,
1307 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1308 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1309)]
1310#[fhir_serialize_type = "complex"]
1311#[doc = "Tagged value pairs for conveying additional information about the entity."]
1312pub struct AuditEventEntityDetail {
1313 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1314 pub id: Option<String>,
1315 #[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 manageable, 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."]
1316 pub extension: Option<Vec<Box<Extension>>>,
1317 #[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 manageable, 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)."]
1318 pub modifierExtension: Option<Vec<Box<Extension>>>,
1319 #[rename_field = "type"]
1320 #[primitive]
1321 #[doc = "The type of extra detail provided in the value."]
1322 pub type_: Box<FHIRString>,
1323 # [type_choice_variants (complex = [] , primitive = ["valueString" , "valueBase64Binary"])]
1324 #[doc = "The value of the extra detail."]
1325 pub value: AuditEventEntityDetailValueTypeChoice,
1326}
1327#[derive(
1328 Clone,
1329 Reflect,
1330 Debug,
1331 Default,
1332 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1333 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1334)]
1335#[fhir_serialize_type = "complex"]
1336#[doc = "Specific instances of data or objects that have been accessed."]
1337pub struct AuditEventEntity {
1338 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1339 pub id: Option<String>,
1340 #[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 manageable, 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."]
1341 pub extension: Option<Vec<Box<Extension>>>,
1342 #[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 manageable, 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)."]
1343 pub modifierExtension: Option<Vec<Box<Extension>>>,
1344 # [reference (targets = ["Resource"])]
1345 #[doc = "Identifies a specific instance of the entity. The reference should be version specific."]
1346 pub what: Option<Box<Reference>>,
1347 #[rename_field = "type"]
1348 #[doc = "The type of the object that was involved in this audit event."]
1349 pub type_: Option<Box<Coding>>,
1350 #[doc = "Code representing the role the entity played in the event being audited."]
1351 pub role: Option<Box<Coding>>,
1352 #[doc = "Identifier for the data life-cycle stage for the entity."]
1353 pub lifecycle: Option<Box<Coding>>,
1354 #[doc = "Security labels for the identified entity."]
1355 pub securityLabel: Option<Vec<Box<Coding>>>,
1356 #[primitive]
1357 #[doc = "A name of the entity in the audit event."]
1358 pub name: Option<Box<FHIRString>>,
1359 #[primitive]
1360 #[doc = "Text that describes the entity in more detail."]
1361 pub description: Option<Box<FHIRString>>,
1362 #[primitive]
1363 #[doc = "The query parameters for a query-type entities."]
1364 pub query: Option<Box<FHIRBase64Binary>>,
1365 #[doc = "Tagged value pairs for conveying additional information about the entity."]
1366 pub detail: Option<Vec<AuditEventEntityDetail>>,
1367}
1368#[derive(
1369 Clone,
1370 Reflect,
1371 Debug,
1372 Default,
1373 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1374 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1375)]
1376#[fhir_serialize_type = "resource"]
1377#[doc = "A record of an event made for purposes of maintaining a security log. Typical uses include detection of intrusion attempts and monitoring for inappropriate usage."]
1378pub struct AuditEvent {
1379 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
1380 pub id: Option<String>,
1381 #[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."]
1382 pub meta: Option<Box<Meta>>,
1383 #[primitive]
1384 #[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."]
1385 pub implicitRules: Option<Box<FHIRUri>>,
1386 #[primitive]
1387 #[doc = "The base language in which the resource is written."]
1388 pub language: Option<Box<FHIRCode>>,
1389 #[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."]
1390 pub text: Option<Box<Narrative>>,
1391 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
1392 pub contained: Option<Vec<Box<Resource>>>,
1393 #[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 manageable, 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."]
1394 pub extension: Option<Vec<Box<Extension>>>,
1395 #[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 manageable, 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)."]
1396 pub modifierExtension: Option<Vec<Box<Extension>>>,
1397 #[rename_field = "type"]
1398 #[doc = "Identifier for a family of the event. For example, a menu item, program, rule, policy, function code, application name or URL. It identifies the performed function."]
1399 pub type_: Box<Coding>,
1400 #[doc = "Identifier for the category of event."]
1401 pub subtype: Option<Vec<Box<Coding>>>,
1402 #[primitive]
1403 #[doc = "Indicator for type of action performed during the event that generated the audit."]
1404 pub action: Option<Box<terminology::AuditEventAction>>,
1405 #[doc = "The period during which the activity occurred."]
1406 pub period: Option<Box<Period>>,
1407 #[primitive]
1408 #[doc = "The time when the event was recorded."]
1409 pub recorded: Box<FHIRInstant>,
1410 #[primitive]
1411 #[doc = "Indicates whether the event succeeded or failed."]
1412 pub outcome: Option<Box<terminology::AuditEventOutcome>>,
1413 #[primitive]
1414 #[doc = "A free text description of the outcome of the event."]
1415 pub outcomeDesc: Option<Box<FHIRString>>,
1416 #[doc = "The purposeOfUse (reason) that was used during the event being recorded."]
1417 pub purposeOfEvent: Option<Vec<Box<CodeableConcept>>>,
1418 #[cardinality(min = 1usize)]
1419 #[doc = "An actor taking an active role in the event or activity that is logged."]
1420 pub agent: Vec<AuditEventAgent>,
1421 #[doc = "The system that is reporting the event."]
1422 pub source: AuditEventSource,
1423 #[doc = "Specific instances of data or objects that have been accessed."]
1424 pub entity: Option<Vec<AuditEventEntity>>,
1425}
1426#[derive(
1427 Clone,
1428 Reflect,
1429 Debug,
1430 Default,
1431 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1432 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1433)]
1434#[fhir_serialize_type = "resource"]
1435#[doc = "Basic is used for handling concepts not yet defined in FHIR, narrative-only resources that don't map to an existing resource, and custom resources not appropriate for inclusion in the FHIR specification."]
1436pub struct Basic {
1437 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
1438 pub id: Option<String>,
1439 #[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."]
1440 pub meta: Option<Box<Meta>>,
1441 #[primitive]
1442 #[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."]
1443 pub implicitRules: Option<Box<FHIRUri>>,
1444 #[primitive]
1445 #[doc = "The base language in which the resource is written."]
1446 pub language: Option<Box<FHIRCode>>,
1447 #[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."]
1448 pub text: Option<Box<Narrative>>,
1449 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
1450 pub contained: Option<Vec<Box<Resource>>>,
1451 #[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 manageable, 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."]
1452 pub extension: Option<Vec<Box<Extension>>>,
1453 #[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 manageable, 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)."]
1454 pub modifierExtension: Option<Vec<Box<Extension>>>,
1455 #[rename_field = "identifier"]
1456 #[doc = "Identifier assigned to the resource for business purposes, outside the context of FHIR."]
1457 pub identifier_: Option<Vec<Box<Identifier>>>,
1458 #[doc = "Identifies the 'type' of resource - equivalent to the resource name for other resources."]
1459 pub code: Box<CodeableConcept>,
1460 # [reference (targets = ["Resource"])]
1461 #[doc = "Identifies the patient, practitioner, device or any other resource that is the \"focus\" of this resource."]
1462 pub subject: Option<Box<Reference>>,
1463 #[primitive]
1464 #[doc = "Identifies when the resource was first created."]
1465 pub created: Option<Box<FHIRDate>>,
1466 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Patient" , "RelatedPerson" , "Organization"])]
1467 #[doc = "Indicates who was responsible for creating the resource instance."]
1468 pub author: Option<Box<Reference>>,
1469}
1470#[derive(
1471 Clone,
1472 Reflect,
1473 Debug,
1474 Default,
1475 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1476 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1477)]
1478#[fhir_serialize_type = "resource"]
1479#[doc = "A resource that represents the data of a single raw artifact as digital content accessible in its native format. A Binary resource can contain any content, whether text, image, pdf, zip archive, etc."]
1480pub struct Binary {
1481 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
1482 pub id: Option<String>,
1483 #[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."]
1484 pub meta: Option<Box<Meta>>,
1485 #[primitive]
1486 #[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."]
1487 pub implicitRules: Option<Box<FHIRUri>>,
1488 #[primitive]
1489 #[doc = "The base language in which the resource is written."]
1490 pub language: Option<Box<FHIRCode>>,
1491 #[primitive]
1492 #[doc = "MimeType of the binary content represented as a standard MimeType (BCP 13)."]
1493 pub contentType: Box<FHIRCode>,
1494 # [reference (targets = ["Resource"])]
1495 #[doc = "This element identifies another resource that can be used as a proxy of the security sensitivity to use when deciding and enforcing access control rules for the Binary resource. Given that the Binary resource contains very few elements that can be used to determine the sensitivity of the data and relationships to individuals, the referenced resource stands in as a proxy equivalent for this purpose. This referenced resource may be related to the Binary (e.g. Media, DocumentReference), or may be some non-related Resource purely as a security proxy. E.g. to identify that the binary resource relates to a patient, and access should only be granted to applications that have access to the patient."]
1496 pub securityContext: Option<Box<Reference>>,
1497 #[primitive]
1498 #[doc = "The actual content, base64 encoded."]
1499 pub data: Option<Box<FHIRBase64Binary>>,
1500}
1501#[derive(
1502 Clone,
1503 Reflect,
1504 Debug,
1505 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1506 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1507)]
1508#[fhir_serialize_type = "typechoice"]
1509#[type_choice_field_name = "collected"]
1510pub enum BiologicallyDerivedProductCollectionCollectedTypeChoice {
1511 DateTime(Box<FHIRDateTime>),
1512 Period(Box<Period>),
1513}
1514impl Default for BiologicallyDerivedProductCollectionCollectedTypeChoice {
1515 fn default() -> Self {
1516 BiologicallyDerivedProductCollectionCollectedTypeChoice::DateTime(Box::new(
1517 Default::default(),
1518 ))
1519 }
1520}
1521#[derive(
1522 Clone,
1523 Reflect,
1524 Debug,
1525 Default,
1526 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1527 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1528)]
1529#[fhir_serialize_type = "complex"]
1530#[doc = "How this product was collected."]
1531pub struct BiologicallyDerivedProductCollection {
1532 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1533 pub id: Option<String>,
1534 #[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 manageable, 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."]
1535 pub extension: Option<Vec<Box<Extension>>>,
1536 #[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 manageable, 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)."]
1537 pub modifierExtension: Option<Vec<Box<Extension>>>,
1538 # [reference (targets = ["Practitioner" , "PractitionerRole"])]
1539 #[doc = "Healthcare professional who is performing the collection."]
1540 pub collector: Option<Box<Reference>>,
1541 # [reference (targets = ["Patient" , "Organization"])]
1542 #[doc = "The patient or entity, such as a hospital or vendor in the case of a processed/manipulated/manufactured product, providing the product."]
1543 pub source: Option<Box<Reference>>,
1544 # [type_choice_variants (complex = ["collectedPeriod"] , primitive = ["collectedDateTime"])]
1545 #[doc = "Time of product collection."]
1546 pub collected: Option<BiologicallyDerivedProductCollectionCollectedTypeChoice>,
1547}
1548#[derive(
1549 Clone,
1550 Reflect,
1551 Debug,
1552 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1553 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1554)]
1555#[fhir_serialize_type = "typechoice"]
1556#[type_choice_field_name = "time"]
1557pub enum BiologicallyDerivedProductProcessingTimeTypeChoice {
1558 DateTime(Box<FHIRDateTime>),
1559 Period(Box<Period>),
1560}
1561impl Default for BiologicallyDerivedProductProcessingTimeTypeChoice {
1562 fn default() -> Self {
1563 BiologicallyDerivedProductProcessingTimeTypeChoice::DateTime(Box::new(Default::default()))
1564 }
1565}
1566#[derive(
1567 Clone,
1568 Reflect,
1569 Debug,
1570 Default,
1571 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1572 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1573)]
1574#[fhir_serialize_type = "complex"]
1575#[doc = "Any processing of the product during collection that does not change the fundamental nature of the product. For example adding anti-coagulants during the collection of Peripheral Blood Stem Cells."]
1576pub struct BiologicallyDerivedProductProcessing {
1577 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1578 pub id: Option<String>,
1579 #[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 manageable, 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."]
1580 pub extension: Option<Vec<Box<Extension>>>,
1581 #[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 manageable, 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)."]
1582 pub modifierExtension: Option<Vec<Box<Extension>>>,
1583 #[primitive]
1584 #[doc = "Description of of processing."]
1585 pub description: Option<Box<FHIRString>>,
1586 #[doc = "Procesing code."]
1587 pub procedure: Option<Box<CodeableConcept>>,
1588 # [reference (targets = ["Substance"])]
1589 #[doc = "Substance added during processing."]
1590 pub additive: Option<Box<Reference>>,
1591 # [type_choice_variants (complex = ["timePeriod"] , primitive = ["timeDateTime"])]
1592 #[doc = "Time of processing."]
1593 pub time: Option<BiologicallyDerivedProductProcessingTimeTypeChoice>,
1594}
1595#[derive(
1596 Clone,
1597 Reflect,
1598 Debug,
1599 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1600 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1601)]
1602#[fhir_serialize_type = "typechoice"]
1603#[type_choice_field_name = "time"]
1604pub enum BiologicallyDerivedProductManipulationTimeTypeChoice {
1605 DateTime(Box<FHIRDateTime>),
1606 Period(Box<Period>),
1607}
1608impl Default for BiologicallyDerivedProductManipulationTimeTypeChoice {
1609 fn default() -> Self {
1610 BiologicallyDerivedProductManipulationTimeTypeChoice::DateTime(Box::new(Default::default()))
1611 }
1612}
1613#[derive(
1614 Clone,
1615 Reflect,
1616 Debug,
1617 Default,
1618 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1619 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1620)]
1621#[fhir_serialize_type = "complex"]
1622#[doc = "Any manipulation of product post-collection that is intended to alter the product. For example a buffy-coat enrichment or CD8 reduction of Peripheral Blood Stem Cells to make it more suitable for infusion."]
1623pub struct BiologicallyDerivedProductManipulation {
1624 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1625 pub id: Option<String>,
1626 #[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 manageable, 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."]
1627 pub extension: Option<Vec<Box<Extension>>>,
1628 #[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 manageable, 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)."]
1629 pub modifierExtension: Option<Vec<Box<Extension>>>,
1630 #[primitive]
1631 #[doc = "Description of manipulation."]
1632 pub description: Option<Box<FHIRString>>,
1633 # [type_choice_variants (complex = ["timePeriod"] , primitive = ["timeDateTime"])]
1634 #[doc = "Time of manipulation."]
1635 pub time: Option<BiologicallyDerivedProductManipulationTimeTypeChoice>,
1636}
1637#[derive(
1638 Clone,
1639 Reflect,
1640 Debug,
1641 Default,
1642 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1643 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1644)]
1645#[fhir_serialize_type = "complex"]
1646#[doc = "Product storage."]
1647pub struct BiologicallyDerivedProductStorage {
1648 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1649 pub id: Option<String>,
1650 #[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 manageable, 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."]
1651 pub extension: Option<Vec<Box<Extension>>>,
1652 #[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 manageable, 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)."]
1653 pub modifierExtension: Option<Vec<Box<Extension>>>,
1654 #[primitive]
1655 #[doc = "Description of storage."]
1656 pub description: Option<Box<FHIRString>>,
1657 #[primitive]
1658 #[doc = "Storage temperature."]
1659 pub temperature: Option<Box<FHIRDecimal>>,
1660 #[primitive]
1661 #[doc = "Temperature scale used."]
1662 pub scale: Option<Box<terminology::ProductStorageScale>>,
1663 #[doc = "Storage timeperiod."]
1664 pub duration: Option<Box<Period>>,
1665}
1666#[derive(
1667 Clone,
1668 Reflect,
1669 Debug,
1670 Default,
1671 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1672 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1673)]
1674#[fhir_serialize_type = "resource"]
1675#[doc = "A material substance originating from a biological entity intended to be transplanted or infused\ninto another (possibly the same) biological entity."]
1676pub struct BiologicallyDerivedProduct {
1677 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
1678 pub id: Option<String>,
1679 #[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."]
1680 pub meta: Option<Box<Meta>>,
1681 #[primitive]
1682 #[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."]
1683 pub implicitRules: Option<Box<FHIRUri>>,
1684 #[primitive]
1685 #[doc = "The base language in which the resource is written."]
1686 pub language: Option<Box<FHIRCode>>,
1687 #[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."]
1688 pub text: Option<Box<Narrative>>,
1689 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
1690 pub contained: Option<Vec<Box<Resource>>>,
1691 #[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 manageable, 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."]
1692 pub extension: Option<Vec<Box<Extension>>>,
1693 #[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 manageable, 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)."]
1694 pub modifierExtension: Option<Vec<Box<Extension>>>,
1695 #[rename_field = "identifier"]
1696 #[doc = "This records identifiers associated with this biologically derived product instance that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation)."]
1697 pub identifier_: Option<Vec<Box<Identifier>>>,
1698 #[primitive]
1699 #[doc = "Broad category of this product."]
1700 pub productCategory: Option<Box<terminology::ProductCategory>>,
1701 #[doc = "A code that identifies the kind of this biologically derived product (SNOMED Ctcode)."]
1702 pub productCode: Option<Box<CodeableConcept>>,
1703 #[primitive]
1704 #[doc = "Whether the product is currently available."]
1705 pub status: Option<Box<terminology::ProductStatus>>,
1706 # [reference (targets = ["ServiceRequest"])]
1707 #[doc = "Procedure request to obtain this biologically derived product."]
1708 pub request: Option<Vec<Box<Reference>>>,
1709 #[primitive]
1710 #[doc = "Number of discrete units within this product."]
1711 pub quantity: Option<Box<FHIRInteger>>,
1712 # [reference (targets = ["BiologicallyDerivedProduct"])]
1713 #[doc = "Parent product (if any)."]
1714 pub parent: Option<Vec<Box<Reference>>>,
1715 #[doc = "How this product was collected."]
1716 pub collection: Option<BiologicallyDerivedProductCollection>,
1717 #[doc = "Any processing of the product during collection that does not change the fundamental nature of the product. For example adding anti-coagulants during the collection of Peripheral Blood Stem Cells."]
1718 pub processing: Option<Vec<BiologicallyDerivedProductProcessing>>,
1719 #[doc = "Any manipulation of product post-collection that is intended to alter the product. For example a buffy-coat enrichment or CD8 reduction of Peripheral Blood Stem Cells to make it more suitable for infusion."]
1720 pub manipulation: Option<BiologicallyDerivedProductManipulation>,
1721 #[doc = "Product storage."]
1722 pub storage: Option<Vec<BiologicallyDerivedProductStorage>>,
1723}
1724#[derive(
1725 Clone,
1726 Reflect,
1727 Debug,
1728 Default,
1729 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1730 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1731)]
1732#[fhir_serialize_type = "resource"]
1733#[doc = "Record details about an anatomical structure. This resource may be used when a coded concept does not provide the necessary detail needed for the use case."]
1734pub struct BodyStructure {
1735 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
1736 pub id: Option<String>,
1737 #[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."]
1738 pub meta: Option<Box<Meta>>,
1739 #[primitive]
1740 #[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."]
1741 pub implicitRules: Option<Box<FHIRUri>>,
1742 #[primitive]
1743 #[doc = "The base language in which the resource is written."]
1744 pub language: Option<Box<FHIRCode>>,
1745 #[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."]
1746 pub text: Option<Box<Narrative>>,
1747 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
1748 pub contained: Option<Vec<Box<Resource>>>,
1749 #[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 manageable, 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."]
1750 pub extension: Option<Vec<Box<Extension>>>,
1751 #[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 manageable, 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)."]
1752 pub modifierExtension: Option<Vec<Box<Extension>>>,
1753 #[rename_field = "identifier"]
1754 #[doc = "Identifier for this instance of the anatomical structure."]
1755 pub identifier_: Option<Vec<Box<Identifier>>>,
1756 #[primitive]
1757 #[doc = "Whether this body site is in active use."]
1758 pub active: Option<Box<FHIRBoolean>>,
1759 #[doc = "The kind of structure being represented by the body structure at `BodyStructure.location`. This can define both normal and abnormal morphologies."]
1760 pub morphology: Option<Box<CodeableConcept>>,
1761 #[doc = "The anatomical location or region of the specimen, lesion, or body structure."]
1762 pub location: Option<Box<CodeableConcept>>,
1763 #[doc = "Qualifier to refine the anatomical location. These include qualifiers for laterality, relative location, directionality, number, and plane."]
1764 pub locationQualifier: Option<Vec<Box<CodeableConcept>>>,
1765 #[primitive]
1766 #[doc = "A summary, characterization or explanation of the body structure."]
1767 pub description: Option<Box<FHIRString>>,
1768 #[doc = "Image or images used to identify a location."]
1769 pub image: Option<Vec<Box<Attachment>>>,
1770 # [reference (targets = ["Patient"])]
1771 #[doc = "The person to which the body site belongs."]
1772 pub patient: Box<Reference>,
1773}
1774#[derive(
1775 Clone,
1776 Reflect,
1777 Debug,
1778 Default,
1779 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1780 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1781)]
1782#[fhir_serialize_type = "complex"]
1783#[doc = "A series of links that provide context to this bundle."]
1784pub struct BundleLink {
1785 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1786 pub id: Option<String>,
1787 #[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 manageable, 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."]
1788 pub extension: Option<Vec<Box<Extension>>>,
1789 #[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 manageable, 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)."]
1790 pub modifierExtension: Option<Vec<Box<Extension>>>,
1791 #[primitive]
1792 #[doc = "A name which details the functional use for this link - see [http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1](http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1)."]
1793 pub relation: Box<FHIRString>,
1794 #[primitive]
1795 #[doc = "The reference details for the link."]
1796 pub url: Box<FHIRUri>,
1797}
1798#[derive(
1799 Clone,
1800 Reflect,
1801 Debug,
1802 Default,
1803 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1804 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1805)]
1806#[fhir_serialize_type = "complex"]
1807#[doc = "Information about the search process that lead to the creation of this entry."]
1808pub struct BundleEntrySearch {
1809 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1810 pub id: Option<String>,
1811 #[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 manageable, 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."]
1812 pub extension: Option<Vec<Box<Extension>>>,
1813 #[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 manageable, 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)."]
1814 pub modifierExtension: Option<Vec<Box<Extension>>>,
1815 #[primitive]
1816 #[doc = "Why this entry is in the result set - whether it's included as a match or because of an _include requirement, or to convey information or warning information about the search process."]
1817 pub mode: Option<Box<terminology::SearchEntryMode>>,
1818 #[primitive]
1819 #[doc = "When searching, the server's search ranking score for the entry."]
1820 pub score: Option<Box<FHIRDecimal>>,
1821}
1822#[derive(
1823 Clone,
1824 Reflect,
1825 Debug,
1826 Default,
1827 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1828 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1829)]
1830#[fhir_serialize_type = "complex"]
1831#[doc = "Additional information about how this entry should be processed as part of a transaction or batch. For history, it shows how the entry was processed to create the version contained in the entry."]
1832pub struct BundleEntryRequest {
1833 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1834 pub id: Option<String>,
1835 #[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 manageable, 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."]
1836 pub extension: Option<Vec<Box<Extension>>>,
1837 #[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 manageable, 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)."]
1838 pub modifierExtension: Option<Vec<Box<Extension>>>,
1839 #[primitive]
1840 #[doc = "In a transaction or batch, this is the HTTP action to be executed for this entry. In a history bundle, this indicates the HTTP action that occurred."]
1841 pub method: Box<terminology::HttpVerb>,
1842 #[primitive]
1843 #[doc = "The URL for this entry, relative to the root (the address to which the request is posted)."]
1844 pub url: Box<FHIRUri>,
1845 #[primitive]
1846 #[doc = "If the ETag values match, return a 304 Not Modified status. See the API documentation for [\"Conditional Read\"](http.html#cread)."]
1847 pub ifNoneMatch: Option<Box<FHIRString>>,
1848 #[primitive]
1849 #[doc = "Only perform the operation if the last updated date matches. See the API documentation for [\"Conditional Read\"](http.html#cread)."]
1850 pub ifModifiedSince: Option<Box<FHIRInstant>>,
1851 #[primitive]
1852 #[doc = "Only perform the operation if the Etag value matches. For more information, see the API section [\"Managing Resource Contention\"](http.html#concurrency)."]
1853 pub ifMatch: Option<Box<FHIRString>>,
1854 #[primitive]
1855 #[doc = "Instruct the server not to perform the create if a specified resource already exists. For further information, see the API documentation for [\"Conditional Create\"](http.html#ccreate). This is just the query portion of the URL - what follows the \"?\" (not including the \"?\")."]
1856 pub ifNoneExist: Option<Box<FHIRString>>,
1857}
1858#[derive(
1859 Clone,
1860 Reflect,
1861 Debug,
1862 Default,
1863 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1864 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1865)]
1866#[fhir_serialize_type = "complex"]
1867#[doc = "Indicates the results of processing the corresponding 'request' entry in the batch or transaction being responded to or what the results of an operation where when returning history."]
1868pub struct BundleEntryResponse {
1869 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1870 pub id: Option<String>,
1871 #[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 manageable, 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."]
1872 pub extension: Option<Vec<Box<Extension>>>,
1873 #[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 manageable, 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)."]
1874 pub modifierExtension: Option<Vec<Box<Extension>>>,
1875 #[primitive]
1876 #[doc = "The status code returned by processing this entry. The status SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the standard HTTP description associated with the status code."]
1877 pub status: Box<FHIRString>,
1878 #[primitive]
1879 #[doc = "The location header created by processing this operation, populated if the operation returns a location."]
1880 pub location: Option<Box<FHIRUri>>,
1881 #[primitive]
1882 #[doc = "The Etag for the resource, if the operation for the entry produced a versioned resource (see [Resource Metadata and Versioning](http.html#versioning) and [Managing Resource Contention](http.html#concurrency))."]
1883 pub etag: Option<Box<FHIRString>>,
1884 #[primitive]
1885 #[doc = "The date/time that the resource was modified on the server."]
1886 pub lastModified: Option<Box<FHIRInstant>>,
1887 #[doc = "An OperationOutcome containing hints and warnings produced as part of processing this entry in a batch or transaction."]
1888 pub outcome: Option<Box<Resource>>,
1889}
1890#[derive(
1891 Clone,
1892 Reflect,
1893 Debug,
1894 Default,
1895 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1896 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1897)]
1898#[fhir_serialize_type = "complex"]
1899#[doc = "An entry in a bundle resource - will either contain a resource or information about a resource (transactions and history only)."]
1900pub struct BundleEntry {
1901 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1902 pub id: Option<String>,
1903 #[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 manageable, 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."]
1904 pub extension: Option<Vec<Box<Extension>>>,
1905 #[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 manageable, 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)."]
1906 pub modifierExtension: Option<Vec<Box<Extension>>>,
1907 #[doc = "A series of links that provide context to this entry."]
1908 pub link: Option<Vec<BundleLink>>,
1909 #[primitive]
1910 #[doc = "The Absolute URL for the resource. The fullUrl SHALL NOT disagree with the id in the resource - i.e. if the fullUrl is not a urn:uuid, the URL shall be version-independent URL consistent with the Resource.id. The fullUrl is a version independent reference to the resource. The fullUrl element SHALL have a value except that: \n* fullUrl can be empty on a POST (although it does not need to when specifying a temporary id for reference in the bundle)\n* Results from operations might involve resources that are not identified."]
1911 pub fullUrl: Option<Box<FHIRUri>>,
1912 #[doc = "The Resource for the entry. The purpose/meaning of the resource is determined by the Bundle.type."]
1913 pub resource: Option<Box<Resource>>,
1914 #[doc = "Information about the search process that lead to the creation of this entry."]
1915 pub search: Option<BundleEntrySearch>,
1916 #[doc = "Additional information about how this entry should be processed as part of a transaction or batch. For history, it shows how the entry was processed to create the version contained in the entry."]
1917 pub request: Option<BundleEntryRequest>,
1918 #[doc = "Indicates the results of processing the corresponding 'request' entry in the batch or transaction being responded to or what the results of an operation where when returning history."]
1919 pub response: Option<BundleEntryResponse>,
1920}
1921#[derive(
1922 Clone,
1923 Reflect,
1924 Debug,
1925 Default,
1926 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1927 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1928)]
1929#[fhir_serialize_type = "resource"]
1930#[doc = "A container for a collection of resources."]
1931pub struct Bundle {
1932 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
1933 pub id: Option<String>,
1934 #[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."]
1935 pub meta: Option<Box<Meta>>,
1936 #[primitive]
1937 #[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."]
1938 pub implicitRules: Option<Box<FHIRUri>>,
1939 #[primitive]
1940 #[doc = "The base language in which the resource is written."]
1941 pub language: Option<Box<FHIRCode>>,
1942 #[rename_field = "identifier"]
1943 #[doc = "A persistent identifier for the bundle that won't change as a bundle is copied from server to server."]
1944 pub identifier_: Option<Box<Identifier>>,
1945 #[rename_field = "type"]
1946 #[primitive]
1947 #[doc = "Indicates the purpose of this bundle - how it is intended to be used."]
1948 pub type_: Box<terminology::BundleType>,
1949 #[primitive]
1950 #[doc = "The date/time that the bundle was assembled - i.e. when the resources were placed in the bundle."]
1951 pub timestamp: Option<Box<FHIRInstant>>,
1952 #[primitive]
1953 #[doc = "If a set of search matches, this is the total number of entries of type 'match' across all pages in the search. It does not include search.mode = 'include' or 'outcome' entries and it does not provide a count of the number of entries in the Bundle."]
1954 pub total: Option<Box<FHIRUnsignedInt>>,
1955 #[doc = "A series of links that provide context to this bundle."]
1956 pub link: Option<Vec<BundleLink>>,
1957 #[doc = "An entry in a bundle resource - will either contain a resource or information about a resource (transactions and history only)."]
1958 pub entry: Option<Vec<BundleEntry>>,
1959 #[doc = "Digital Signature - base64 encoded. XML-DSig or a JWT."]
1960 pub signature: Option<Box<Signature>>,
1961}
1962#[derive(
1963 Clone,
1964 Reflect,
1965 Debug,
1966 Default,
1967 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1968 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1969)]
1970#[fhir_serialize_type = "complex"]
1971#[doc = "Software that is covered by this capability statement. It is used when the capability statement describes the capabilities of a particular software version, independent of an installation."]
1972pub struct CapabilityStatementSoftware {
1973 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
1974 pub id: Option<String>,
1975 #[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 manageable, 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."]
1976 pub extension: Option<Vec<Box<Extension>>>,
1977 #[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 manageable, 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)."]
1978 pub modifierExtension: Option<Vec<Box<Extension>>>,
1979 #[primitive]
1980 #[doc = "Name the software is known by."]
1981 pub name: Box<FHIRString>,
1982 #[primitive]
1983 #[doc = "The version identifier for the software covered by this statement."]
1984 pub version: Option<Box<FHIRString>>,
1985 #[primitive]
1986 #[doc = "Date this version of the software was released."]
1987 pub releaseDate: Option<Box<FHIRDateTime>>,
1988}
1989#[derive(
1990 Clone,
1991 Reflect,
1992 Debug,
1993 Default,
1994 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
1995 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
1996)]
1997#[fhir_serialize_type = "complex"]
1998#[doc = "Identifies a specific implementation instance that is described by the capability statement - i.e. a particular installation, rather than the capabilities of a software program."]
1999pub struct CapabilityStatementImplementation {
2000 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2001 pub id: Option<String>,
2002 #[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 manageable, 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."]
2003 pub extension: Option<Vec<Box<Extension>>>,
2004 #[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 manageable, 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)."]
2005 pub modifierExtension: Option<Vec<Box<Extension>>>,
2006 #[primitive]
2007 #[doc = "Information about the specific installation that this capability statement relates to."]
2008 pub description: Box<FHIRString>,
2009 #[primitive]
2010 #[doc = "An absolute base URL for the implementation. This forms the base for REST interfaces as well as the mailbox and document interfaces."]
2011 pub url: Option<Box<FHIRUrl>>,
2012 # [reference (targets = ["Organization"])]
2013 #[doc = "The organization responsible for the management of the instance and oversight of the data on the server at the specified URL."]
2014 pub custodian: Option<Box<Reference>>,
2015}
2016#[derive(
2017 Clone,
2018 Reflect,
2019 Debug,
2020 Default,
2021 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2022 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2023)]
2024#[fhir_serialize_type = "complex"]
2025#[doc = "Information about security implementation from an interface perspective - what a client needs to know."]
2026pub struct CapabilityStatementRestSecurity {
2027 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2028 pub id: Option<String>,
2029 #[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 manageable, 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."]
2030 pub extension: Option<Vec<Box<Extension>>>,
2031 #[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 manageable, 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)."]
2032 pub modifierExtension: Option<Vec<Box<Extension>>>,
2033 #[primitive]
2034 #[doc = "Server adds CORS headers when responding to requests - this enables Javascript applications to use the server."]
2035 pub cors: Option<Box<FHIRBoolean>>,
2036 #[doc = "Types of security services that are supported/required by the system."]
2037 pub service: Option<Vec<Box<CodeableConcept>>>,
2038 #[primitive]
2039 #[doc = "General description of how security works."]
2040 pub description: Option<Box<FHIRMarkdown>>,
2041}
2042#[derive(
2043 Clone,
2044 Reflect,
2045 Debug,
2046 Default,
2047 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2048 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2049)]
2050#[fhir_serialize_type = "complex"]
2051#[doc = "Identifies a restful operation supported by the solution."]
2052pub struct CapabilityStatementRestResourceInteraction {
2053 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2054 pub id: Option<String>,
2055 #[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 manageable, 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."]
2056 pub extension: Option<Vec<Box<Extension>>>,
2057 #[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 manageable, 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)."]
2058 pub modifierExtension: Option<Vec<Box<Extension>>>,
2059 #[primitive]
2060 #[doc = "Coded identifier of the operation, supported by the system resource."]
2061 pub code: Box<terminology::TypeRestfulInteraction>,
2062 #[primitive]
2063 #[doc = "Guidance specific to the implementation of this operation, such as 'delete is a logical delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized certificates only'."]
2064 pub documentation: Option<Box<FHIRMarkdown>>,
2065}
2066#[derive(
2067 Clone,
2068 Reflect,
2069 Debug,
2070 Default,
2071 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2072 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2073)]
2074#[fhir_serialize_type = "complex"]
2075#[doc = "Search parameters for implementations to support and/or make use of - either references to ones defined in the specification, or additional ones defined for/by the implementation."]
2076pub struct CapabilityStatementRestResourceSearchParam {
2077 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2078 pub id: Option<String>,
2079 #[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 manageable, 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."]
2080 pub extension: Option<Vec<Box<Extension>>>,
2081 #[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 manageable, 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)."]
2082 pub modifierExtension: Option<Vec<Box<Extension>>>,
2083 #[primitive]
2084 #[doc = "The name of the search parameter used in the interface."]
2085 pub name: Box<FHIRString>,
2086 #[primitive]
2087 #[doc = "An absolute URI that is a formal reference to where this parameter was first defined, so that a client can be confident of the meaning of the search parameter (a reference to [SearchParameter.url](searchparameter-definitions.html#SearchParameter.url)). This element SHALL be populated if the search parameter refers to a SearchParameter defined by the FHIR core specification or externally defined IGs."]
2088 pub definition: Option<Box<FHIRCanonical>>,
2089 #[rename_field = "type"]
2090 #[primitive]
2091 #[doc = "The type of value a search parameter refers to, and how the content is interpreted."]
2092 pub type_: Box<terminology::SearchParamType>,
2093 #[primitive]
2094 #[doc = "This allows documentation of any distinct behaviors about how the search parameter is used. For example, text matching algorithms."]
2095 pub documentation: Option<Box<FHIRMarkdown>>,
2096}
2097#[derive(
2098 Clone,
2099 Reflect,
2100 Debug,
2101 Default,
2102 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2103 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2104)]
2105#[fhir_serialize_type = "complex"]
2106#[doc = "Definition of an operation or a named query together with its parameters and their meaning and type. Consult the definition of the operation for details about how to invoke the operation, and the parameters."]
2107pub struct CapabilityStatementRestResourceOperation {
2108 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2109 pub id: Option<String>,
2110 #[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 manageable, 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."]
2111 pub extension: Option<Vec<Box<Extension>>>,
2112 #[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 manageable, 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)."]
2113 pub modifierExtension: Option<Vec<Box<Extension>>>,
2114 #[primitive]
2115 #[doc = "The name of the operation or query. For an operation, this is the name prefixed with $ and used in the URL. For a query, this is the name used in the _query parameter when the query is called."]
2116 pub name: Box<FHIRString>,
2117 #[primitive]
2118 #[doc = "Where the formal definition can be found. If a server references the base definition of an Operation (i.e. from the specification itself such as ```http://hl7.org/fhir/OperationDefinition/ValueSet-expand```), that means it supports the full capabilities of the operation - e.g. both GET and POST invocation. If it only supports a subset, it must define its own custom [OperationDefinition](operationdefinition.html#) with a 'base' of the original OperationDefinition. The custom definition would describe the specific subset of functionality supported."]
2119 pub definition: Box<FHIRCanonical>,
2120 #[primitive]
2121 #[doc = "Documentation that describes anything special about the operation behavior, possibly detailing different behavior for system, type and instance-level invocation of the operation."]
2122 pub documentation: Option<Box<FHIRMarkdown>>,
2123}
2124#[derive(
2125 Clone,
2126 Reflect,
2127 Debug,
2128 Default,
2129 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2130 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2131)]
2132#[fhir_serialize_type = "complex"]
2133#[doc = "A specification of the restful capabilities of the solution for a specific resource type."]
2134pub struct CapabilityStatementRestResource {
2135 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2136 pub id: Option<String>,
2137 #[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 manageable, 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."]
2138 pub extension: Option<Vec<Box<Extension>>>,
2139 #[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 manageable, 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)."]
2140 pub modifierExtension: Option<Vec<Box<Extension>>>,
2141 #[rename_field = "type"]
2142 #[primitive]
2143 #[doc = "A type of resource exposed via the restful interface."]
2144 pub type_: Box<terminology::ResourceTypes>,
2145 #[primitive]
2146 #[doc = "A specification of the profile that describes the solution's overall support for the resource, including any constraints on cardinality, bindings, lengths or other limitations. See further discussion in [Using Profiles](profiling.html#profile-uses)."]
2147 pub profile: Option<Box<FHIRCanonical>>,
2148 #[primitive]
2149 #[doc = "A list of profiles that represent different use cases supported by the system. For a server, \"supported by the system\" means the system hosts/produces a set of resources that are conformant to a particular profile, and allows clients that use its services to search using this profile and to find appropriate data. For a client, it means the system will search by this profile and process data according to the guidance implicit in the profile. See further discussion in [Using Profiles](profiling.html#profile-uses)."]
2150 pub supportedProfile: Option<Vec<Box<FHIRCanonical>>>,
2151 #[primitive]
2152 #[doc = "Additional information about the resource type used by the system."]
2153 pub documentation: Option<Box<FHIRMarkdown>>,
2154 #[doc = "Identifies a restful operation supported by the solution."]
2155 pub interaction: Option<Vec<CapabilityStatementRestResourceInteraction>>,
2156 #[primitive]
2157 #[doc = "This field is set to no-version to specify that the system does not support (server) or use (client) versioning for this resource type. If this has some other value, the server must at least correctly track and populate the versionId meta-property on resources. If the value is 'versioned-update', then the server supports all the versioning features, including using e-tags for version integrity in the API."]
2158 pub versioning: Option<Box<terminology::VersioningPolicy>>,
2159 #[primitive]
2160 #[doc = "A flag for whether the server is able to return past versions as part of the vRead operation."]
2161 pub readHistory: Option<Box<FHIRBoolean>>,
2162 #[primitive]
2163 #[doc = "A flag to indicate that the server allows or needs to allow the client to create new identities on the server (that is, the client PUTs to a location where there is no existing resource). Allowing this operation means that the server allows the client to create new identities on the server."]
2164 pub updateCreate: Option<Box<FHIRBoolean>>,
2165 #[primitive]
2166 #[doc = "A flag that indicates that the server supports conditional create."]
2167 pub conditionalCreate: Option<Box<FHIRBoolean>>,
2168 #[primitive]
2169 #[doc = "A code that indicates how the server supports conditional read."]
2170 pub conditionalRead: Option<Box<terminology::ConditionalReadStatus>>,
2171 #[primitive]
2172 #[doc = "A flag that indicates that the server supports conditional update."]
2173 pub conditionalUpdate: Option<Box<FHIRBoolean>>,
2174 #[primitive]
2175 #[doc = "A code that indicates how the server supports conditional delete."]
2176 pub conditionalDelete: Option<Box<terminology::ConditionalDeleteStatus>>,
2177 #[primitive]
2178 #[doc = "A set of flags that defines how references are supported."]
2179 pub referencePolicy: Option<Vec<Box<terminology::ReferenceHandlingPolicy>>>,
2180 #[primitive]
2181 #[doc = "A list of _include values supported by the server."]
2182 pub searchInclude: Option<Vec<Box<FHIRString>>>,
2183 #[primitive]
2184 #[doc = "A list of _revinclude (reverse include) values supported by the server."]
2185 pub searchRevInclude: Option<Vec<Box<FHIRString>>>,
2186 #[doc = "Search parameters for implementations to support and/or make use of - either references to ones defined in the specification, or additional ones defined for/by the implementation."]
2187 pub searchParam: Option<Vec<CapabilityStatementRestResourceSearchParam>>,
2188 #[doc = "Definition of an operation or a named query together with its parameters and their meaning and type. Consult the definition of the operation for details about how to invoke the operation, and the parameters."]
2189 pub operation: Option<Vec<CapabilityStatementRestResourceOperation>>,
2190}
2191#[derive(
2192 Clone,
2193 Reflect,
2194 Debug,
2195 Default,
2196 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2197 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2198)]
2199#[fhir_serialize_type = "complex"]
2200#[doc = "A specification of restful operations supported by the system."]
2201pub struct CapabilityStatementRestInteraction {
2202 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2203 pub id: Option<String>,
2204 #[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 manageable, 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."]
2205 pub extension: Option<Vec<Box<Extension>>>,
2206 #[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 manageable, 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)."]
2207 pub modifierExtension: Option<Vec<Box<Extension>>>,
2208 #[primitive]
2209 #[doc = "A coded identifier of the operation, supported by the system."]
2210 pub code: Box<terminology::SystemRestfulInteraction>,
2211 #[primitive]
2212 #[doc = "Guidance specific to the implementation of this operation, such as limitations on the kind of transactions allowed, or information about system wide search is implemented."]
2213 pub documentation: Option<Box<FHIRMarkdown>>,
2214}
2215#[derive(
2216 Clone,
2217 Reflect,
2218 Debug,
2219 Default,
2220 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2221 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2222)]
2223#[fhir_serialize_type = "complex"]
2224#[doc = "A definition of the restful capabilities of the solution, if any."]
2225pub struct CapabilityStatementRest {
2226 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2227 pub id: Option<String>,
2228 #[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 manageable, 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."]
2229 pub extension: Option<Vec<Box<Extension>>>,
2230 #[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 manageable, 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)."]
2231 pub modifierExtension: Option<Vec<Box<Extension>>>,
2232 #[primitive]
2233 #[doc = "Identifies whether this portion of the statement is describing the ability to initiate or receive restful operations."]
2234 pub mode: Box<terminology::RestfulCapabilityMode>,
2235 #[primitive]
2236 #[doc = "Information about the system's restful capabilities that apply across all applications, such as security."]
2237 pub documentation: Option<Box<FHIRMarkdown>>,
2238 #[doc = "Information about security implementation from an interface perspective - what a client needs to know."]
2239 pub security: Option<CapabilityStatementRestSecurity>,
2240 #[doc = "A specification of the restful capabilities of the solution for a specific resource type."]
2241 pub resource: Option<Vec<CapabilityStatementRestResource>>,
2242 #[doc = "A specification of restful operations supported by the system."]
2243 pub interaction: Option<Vec<CapabilityStatementRestInteraction>>,
2244 #[doc = "Search parameters that are supported for searching all resources for implementations to support and/or make use of - either references to ones defined in the specification, or additional ones defined for/by the implementation."]
2245 pub searchParam: Option<Vec<CapabilityStatementRestResourceSearchParam>>,
2246 #[doc = "Definition of an operation or a named query together with its parameters and their meaning and type."]
2247 pub operation: Option<Vec<CapabilityStatementRestResourceOperation>>,
2248 #[primitive]
2249 #[doc = "An absolute URI which is a reference to the definition of a compartment that the system supports. The reference is to a CompartmentDefinition resource by its canonical URL ."]
2250 pub compartment: Option<Vec<Box<FHIRCanonical>>>,
2251}
2252#[derive(
2253 Clone,
2254 Reflect,
2255 Debug,
2256 Default,
2257 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2258 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2259)]
2260#[fhir_serialize_type = "complex"]
2261#[doc = "An endpoint (network accessible address) to which messages and/or replies are to be sent."]
2262pub struct CapabilityStatementMessagingEndpoint {
2263 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2264 pub id: Option<String>,
2265 #[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 manageable, 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."]
2266 pub extension: Option<Vec<Box<Extension>>>,
2267 #[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 manageable, 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)."]
2268 pub modifierExtension: Option<Vec<Box<Extension>>>,
2269 #[doc = "A list of the messaging transport protocol(s) identifiers, supported by this endpoint."]
2270 pub protocol: Box<Coding>,
2271 #[primitive]
2272 #[doc = "The network address of the endpoint. For solutions that do not use network addresses for routing, it can be just an identifier."]
2273 pub address: Box<FHIRUrl>,
2274}
2275#[derive(
2276 Clone,
2277 Reflect,
2278 Debug,
2279 Default,
2280 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2281 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2282)]
2283#[fhir_serialize_type = "complex"]
2284#[doc = "References to message definitions for messages this system can send or receive."]
2285pub struct CapabilityStatementMessagingSupportedMessage {
2286 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2287 pub id: Option<String>,
2288 #[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 manageable, 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."]
2289 pub extension: Option<Vec<Box<Extension>>>,
2290 #[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 manageable, 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)."]
2291 pub modifierExtension: Option<Vec<Box<Extension>>>,
2292 #[primitive]
2293 #[doc = "The mode of this event declaration - whether application is sender or receiver."]
2294 pub mode: Box<terminology::EventCapabilityMode>,
2295 #[primitive]
2296 #[doc = "Points to a message definition that identifies the messaging event, message structure, allowed responses, etc."]
2297 pub definition: Box<FHIRCanonical>,
2298}
2299#[derive(
2300 Clone,
2301 Reflect,
2302 Debug,
2303 Default,
2304 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2305 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2306)]
2307#[fhir_serialize_type = "complex"]
2308#[doc = "A description of the messaging capabilities of the solution."]
2309pub struct CapabilityStatementMessaging {
2310 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2311 pub id: Option<String>,
2312 #[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 manageable, 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."]
2313 pub extension: Option<Vec<Box<Extension>>>,
2314 #[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 manageable, 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)."]
2315 pub modifierExtension: Option<Vec<Box<Extension>>>,
2316 #[doc = "An endpoint (network accessible address) to which messages and/or replies are to be sent."]
2317 pub endpoint: Option<Vec<CapabilityStatementMessagingEndpoint>>,
2318 #[primitive]
2319 #[doc = "Length if the receiver's reliable messaging cache in minutes (if a receiver) or how long the cache length on the receiver should be (if a sender)."]
2320 pub reliableCache: Option<Box<FHIRUnsignedInt>>,
2321 #[primitive]
2322 #[doc = "Documentation about the system's messaging capabilities for this endpoint not otherwise documented by the capability statement. For example, the process for becoming an authorized messaging exchange partner."]
2323 pub documentation: Option<Box<FHIRMarkdown>>,
2324 #[doc = "References to message definitions for messages this system can send or receive."]
2325 pub supportedMessage: Option<Vec<CapabilityStatementMessagingSupportedMessage>>,
2326}
2327#[derive(
2328 Clone,
2329 Reflect,
2330 Debug,
2331 Default,
2332 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2333 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2334)]
2335#[fhir_serialize_type = "complex"]
2336#[doc = "A document definition."]
2337pub struct CapabilityStatementDocument {
2338 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2339 pub id: Option<String>,
2340 #[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 manageable, 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."]
2341 pub extension: Option<Vec<Box<Extension>>>,
2342 #[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 manageable, 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)."]
2343 pub modifierExtension: Option<Vec<Box<Extension>>>,
2344 #[primitive]
2345 #[doc = "Mode of this document declaration - whether an application is a producer or consumer."]
2346 pub mode: Box<terminology::DocumentMode>,
2347 #[primitive]
2348 #[doc = "A description of how the application supports or uses the specified document profile. For example, when documents are created, what action is taken with consumed documents, etc."]
2349 pub documentation: Option<Box<FHIRMarkdown>>,
2350 #[primitive]
2351 #[doc = "A profile on the document Bundle that constrains which resources are present, and their contents."]
2352 pub profile: Box<FHIRCanonical>,
2353}
2354#[derive(
2355 Clone,
2356 Reflect,
2357 Debug,
2358 Default,
2359 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2360 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2361)]
2362#[fhir_serialize_type = "resource"]
2363#[doc = "A Capability Statement documents a set of capabilities (behaviors) of a FHIR Server for a particular version of FHIR that may be used as a statement of actual server functionality or a statement of required or desired server implementation."]
2364pub struct CapabilityStatement {
2365 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
2366 pub id: Option<String>,
2367 #[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."]
2368 pub meta: Option<Box<Meta>>,
2369 #[primitive]
2370 #[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."]
2371 pub implicitRules: Option<Box<FHIRUri>>,
2372 #[primitive]
2373 #[doc = "The base language in which the resource is written."]
2374 pub language: Option<Box<FHIRCode>>,
2375 #[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."]
2376 pub text: Option<Box<Narrative>>,
2377 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
2378 pub contained: Option<Vec<Box<Resource>>>,
2379 #[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 manageable, 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."]
2380 pub extension: Option<Vec<Box<Extension>>>,
2381 #[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 manageable, 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)."]
2382 pub modifierExtension: Option<Vec<Box<Extension>>>,
2383 #[primitive]
2384 #[doc = "An absolute URI that is used to identify this capability statement 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 at which an authoritative instance of this capability statement is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the capability statement is stored on different servers."]
2385 pub url: Option<Box<FHIRUri>>,
2386 #[primitive]
2387 #[doc = "The identifier that is used to identify this version of the capability statement when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the capability statement 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."]
2388 pub version: Option<Box<FHIRString>>,
2389 #[primitive]
2390 #[doc = "A natural language name identifying the capability statement. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
2391 pub name: Option<Box<FHIRString>>,
2392 #[primitive]
2393 #[doc = "A short, descriptive, user-friendly title for the capability statement."]
2394 pub title: Option<Box<FHIRString>>,
2395 #[primitive]
2396 #[doc = "The status of this capability statement. Enables tracking the life-cycle of the content."]
2397 pub status: Box<terminology::PublicationStatus>,
2398 #[primitive]
2399 #[doc = "A Boolean value to indicate that this capability statement is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
2400 pub experimental: Option<Box<FHIRBoolean>>,
2401 #[primitive]
2402 #[doc = "The date (and optionally time) when the capability statement was published. 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 capability statement changes."]
2403 pub date: Box<FHIRDateTime>,
2404 #[primitive]
2405 #[doc = "The name of the organization or individual that published the capability statement."]
2406 pub publisher: Option<Box<FHIRString>>,
2407 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
2408 pub contact: Option<Vec<Box<ContactDetail>>>,
2409 #[primitive]
2410 #[doc = "A free text natural language description of the capability statement from a consumer's perspective. Typically, this is used when the capability statement describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP."]
2411 pub description: Option<Box<FHIRMarkdown>>,
2412 #[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 capability statement instances."]
2413 pub useContext: Option<Vec<Box<UsageContext>>>,
2414 #[doc = "A legal or geographic region in which the capability statement is intended to be used."]
2415 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
2416 #[primitive]
2417 #[doc = "Explanation of why this capability statement is needed and why it has been designed as it has."]
2418 pub purpose: Option<Box<FHIRMarkdown>>,
2419 #[primitive]
2420 #[doc = "A copyright statement relating to the capability statement and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the capability statement."]
2421 pub copyright: Option<Box<FHIRMarkdown>>,
2422 #[primitive]
2423 #[doc = "The way that this statement is intended to be used, to describe an actual running instance of software, a particular product (kind, not instance of software) or a class of implementation (e.g. a desired purchase)."]
2424 pub kind: Box<terminology::CapabilityStatementKind>,
2425 #[primitive]
2426 #[doc = "Reference to a canonical URL of another CapabilityStatement that this software implements. This capability statement is a published API description that corresponds to a business service. The server may actually implement a subset of the capability statement it claims to implement, so the capability statement must specify the full capability details."]
2427 pub instantiates: Option<Vec<Box<FHIRCanonical>>>,
2428 #[primitive]
2429 #[doc = "Reference to a canonical URL of another CapabilityStatement that this software adds to. The capability statement automatically includes everything in the other statement, and it is not duplicated, though the server may repeat the same resources, interactions and operations to add additional details to them."]
2430 pub imports: Option<Vec<Box<FHIRCanonical>>>,
2431 #[doc = "Software that is covered by this capability statement. It is used when the capability statement describes the capabilities of a particular software version, independent of an installation."]
2432 pub software: Option<CapabilityStatementSoftware>,
2433 #[doc = "Identifies a specific implementation instance that is described by the capability statement - i.e. a particular installation, rather than the capabilities of a software program."]
2434 pub implementation: Option<CapabilityStatementImplementation>,
2435 #[primitive]
2436 #[doc = "The version of the FHIR specification that this CapabilityStatement describes (which SHALL be the same as the FHIR version of the CapabilityStatement itself). There is no default value."]
2437 pub fhirVersion: Box<terminology::FHIRVersion>,
2438 #[primitive]
2439 #[cardinality(min = 1usize)]
2440 #[doc = "A list of the formats supported by this implementation using their content types."]
2441 pub format: Vec<Box<FHIRCode>>,
2442 #[primitive]
2443 #[doc = "A list of the patch formats supported by this implementation using their content types."]
2444 pub patchFormat: Option<Vec<Box<FHIRCode>>>,
2445 #[primitive]
2446 #[doc = "A list of implementation guides that the server does (or should) support in their entirety."]
2447 pub implementationGuide: Option<Vec<Box<FHIRCanonical>>>,
2448 #[doc = "A definition of the restful capabilities of the solution, if any."]
2449 pub rest: Option<Vec<CapabilityStatementRest>>,
2450 #[doc = "A description of the messaging capabilities of the solution."]
2451 pub messaging: Option<Vec<CapabilityStatementMessaging>>,
2452 #[doc = "A document definition."]
2453 pub document: Option<Vec<CapabilityStatementDocument>>,
2454}
2455#[derive(
2456 Clone,
2457 Reflect,
2458 Debug,
2459 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2460 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2461)]
2462#[fhir_serialize_type = "typechoice"]
2463#[type_choice_field_name = "scheduled"]
2464pub enum CarePlanActivityDetailScheduledTypeChoice {
2465 Timing(Box<Timing>),
2466 Period(Box<Period>),
2467 String(Box<FHIRString>),
2468}
2469impl Default for CarePlanActivityDetailScheduledTypeChoice {
2470 fn default() -> Self {
2471 CarePlanActivityDetailScheduledTypeChoice::Timing(Box::new(Default::default()))
2472 }
2473}
2474#[derive(
2475 Clone,
2476 Reflect,
2477 Debug,
2478 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2479 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2480)]
2481#[fhir_serialize_type = "typechoice"]
2482#[type_choice_field_name = "product"]
2483pub enum CarePlanActivityDetailProductTypeChoice {
2484 CodeableConcept(Box<CodeableConcept>),
2485 # [reference (targets = ["Medication" , "Substance"])]
2486 Reference(Box<Reference>),
2487}
2488impl Default for CarePlanActivityDetailProductTypeChoice {
2489 fn default() -> Self {
2490 CarePlanActivityDetailProductTypeChoice::CodeableConcept(Box::new(Default::default()))
2491 }
2492}
2493#[derive(
2494 Clone,
2495 Reflect,
2496 Debug,
2497 Default,
2498 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2499 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2500)]
2501#[fhir_serialize_type = "complex"]
2502#[doc = "A simple summary of a planned activity suitable for a general care plan system (e.g. form driven) that doesn't know about specific resources such as procedure etc."]
2503pub struct CarePlanActivityDetail {
2504 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2505 pub id: Option<String>,
2506 #[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 manageable, 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."]
2507 pub extension: Option<Vec<Box<Extension>>>,
2508 #[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 manageable, 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)."]
2509 pub modifierExtension: Option<Vec<Box<Extension>>>,
2510 #[primitive]
2511 #[doc = "A description of the kind of resource the in-line definition of a care plan activity is representing. The CarePlan.activity.detail is an in-line definition when a resource is not referenced using CarePlan.activity.reference. For example, a MedicationRequest, a ServiceRequest, or a CommunicationRequest."]
2512 pub kind: Option<Box<terminology::CarePlanActivityKind>>,
2513 #[primitive]
2514 #[doc = "The URL pointing to a FHIR-defined protocol, guideline, questionnaire or other definition that is adhered to in whole or in part by this CarePlan activity."]
2515 pub instantiatesCanonical: Option<Vec<Box<FHIRCanonical>>>,
2516 #[primitive]
2517 #[doc = "The URL pointing to an externally maintained protocol, guideline, questionnaire or other definition that is adhered to in whole or in part by this CarePlan activity."]
2518 pub instantiatesUri: Option<Vec<Box<FHIRUri>>>,
2519 #[doc = "Detailed description of the type of planned activity; e.g. what lab test, what procedure, what kind of encounter."]
2520 pub code: Option<Box<CodeableConcept>>,
2521 #[doc = "Provides the rationale that drove the inclusion of this particular activity as part of the plan or the reason why the activity was prohibited."]
2522 pub reasonCode: Option<Vec<Box<CodeableConcept>>>,
2523 # [reference (targets = ["Condition" , "Observation" , "DiagnosticReport" , "DocumentReference"])]
2524 #[doc = "Indicates another resource, such as the health condition(s), whose existence justifies this request and drove the inclusion of this particular activity as part of the plan."]
2525 pub reasonReference: Option<Vec<Box<Reference>>>,
2526 # [reference (targets = ["Goal"])]
2527 #[doc = "Internal reference that identifies the goals that this activity is intended to contribute towards meeting."]
2528 pub goal: Option<Vec<Box<Reference>>>,
2529 #[primitive]
2530 #[doc = "Identifies what progress is being made for the specific activity."]
2531 pub status: Box<terminology::CarePlanActivityStatus>,
2532 #[doc = "Provides reason why the activity isn't yet started, is on hold, was cancelled, etc."]
2533 pub statusReason: Option<Box<CodeableConcept>>,
2534 #[primitive]
2535 #[doc = "If true, indicates that the described activity is one that must NOT be engaged in when following the plan. If false, or missing, indicates that the described activity is one that should be engaged in when following the plan."]
2536 pub doNotPerform: Option<Box<FHIRBoolean>>,
2537 # [type_choice_variants (complex = ["scheduledTiming" , "scheduledPeriod"] , primitive = ["scheduledString"])]
2538 #[doc = "The period, timing or frequency upon which the described activity is to occur."]
2539 pub scheduled: Option<CarePlanActivityDetailScheduledTypeChoice>,
2540 # [reference (targets = ["Location"])]
2541 #[doc = "Identifies the facility where the activity will occur; e.g. home, hospital, specific clinic, etc."]
2542 pub location: Option<Box<Reference>>,
2543 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization" , "RelatedPerson" , "Patient" , "CareTeam" , "HealthcareService" , "Device"])]
2544 #[doc = "Identifies who's expected to be involved in the activity."]
2545 pub performer: Option<Vec<Box<Reference>>>,
2546 # [type_choice_variants (complex = ["productCodeableConcept" , "productReference"] , primitive = [])]
2547 #[doc = "Identifies the food, drug or other product to be consumed or supplied in the activity."]
2548 pub product: Option<CarePlanActivityDetailProductTypeChoice>,
2549 #[doc = "Identifies the quantity expected to be consumed in a given day."]
2550 pub dailyAmount: Option<Box<Quantity>>,
2551 #[doc = "Identifies the quantity expected to be supplied, administered or consumed by the subject."]
2552 pub quantity: Option<Box<Quantity>>,
2553 #[primitive]
2554 #[doc = "This provides a textual description of constraints on the intended activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc."]
2555 pub description: Option<Box<FHIRString>>,
2556}
2557#[derive(
2558 Clone,
2559 Reflect,
2560 Debug,
2561 Default,
2562 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2563 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2564)]
2565#[fhir_serialize_type = "complex"]
2566#[doc = "Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc."]
2567pub struct CarePlanActivity {
2568 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2569 pub id: Option<String>,
2570 #[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 manageable, 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."]
2571 pub extension: Option<Vec<Box<Extension>>>,
2572 #[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 manageable, 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)."]
2573 pub modifierExtension: Option<Vec<Box<Extension>>>,
2574 #[doc = "Identifies the outcome at the point when the status of the activity is assessed. For example, the outcome of an education activity could be patient understands (or not)."]
2575 pub outcomeCodeableConcept: Option<Vec<Box<CodeableConcept>>>,
2576 # [reference (targets = ["Resource"])]
2577 #[doc = "Details of the outcome or action resulting from the activity. The reference to an \"event\" resource, such as Procedure or Encounter or Observation, is the result/outcome of the activity itself. The activity can be conveyed using CarePlan.activity.detail OR using the CarePlan.activity.reference (a reference to a “request” resource)."]
2578 pub outcomeReference: Option<Vec<Box<Reference>>>,
2579 #[doc = "Notes about the adherence/status/progress of the activity."]
2580 pub progress: Option<Vec<Box<Annotation>>>,
2581 # [reference (targets = ["Appointment" , "CommunicationRequest" , "DeviceRequest" , "MedicationRequest" , "NutritionOrder" , "Task" , "ServiceRequest" , "VisionPrescription" , "RequestGroup"])]
2582 #[doc = "The details of the proposed activity represented in a specific resource."]
2583 pub reference: Option<Box<Reference>>,
2584 #[doc = "A simple summary of a planned activity suitable for a general care plan system (e.g. form driven) that doesn't know about specific resources such as procedure etc."]
2585 pub detail: Option<CarePlanActivityDetail>,
2586}
2587#[derive(
2588 Clone,
2589 Reflect,
2590 Debug,
2591 Default,
2592 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2593 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2594)]
2595#[fhir_serialize_type = "resource"]
2596#[doc = "Describes the intention of how one or more practitioners intend to deliver care for a particular patient, group or community for a period of time, possibly limited to care for a specific condition or set of conditions."]
2597pub struct CarePlan {
2598 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
2599 pub id: Option<String>,
2600 #[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."]
2601 pub meta: Option<Box<Meta>>,
2602 #[primitive]
2603 #[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."]
2604 pub implicitRules: Option<Box<FHIRUri>>,
2605 #[primitive]
2606 #[doc = "The base language in which the resource is written."]
2607 pub language: Option<Box<FHIRCode>>,
2608 #[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."]
2609 pub text: Option<Box<Narrative>>,
2610 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
2611 pub contained: Option<Vec<Box<Resource>>>,
2612 #[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 manageable, 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."]
2613 pub extension: Option<Vec<Box<Extension>>>,
2614 #[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 manageable, 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)."]
2615 pub modifierExtension: Option<Vec<Box<Extension>>>,
2616 #[rename_field = "identifier"]
2617 #[doc = "Business identifiers assigned to this care plan by the performer or other systems which remain constant as the resource is updated and propagates from server to server."]
2618 pub identifier_: Option<Vec<Box<Identifier>>>,
2619 #[primitive]
2620 #[doc = "The URL pointing to a FHIR-defined protocol, guideline, questionnaire or other definition that is adhered to in whole or in part by this CarePlan."]
2621 pub instantiatesCanonical: Option<Vec<Box<FHIRCanonical>>>,
2622 #[primitive]
2623 #[doc = "The URL pointing to an externally maintained protocol, guideline, questionnaire or other definition that is adhered to in whole or in part by this CarePlan."]
2624 pub instantiatesUri: Option<Vec<Box<FHIRUri>>>,
2625 # [reference (targets = ["CarePlan"])]
2626 #[doc = "A care plan that is fulfilled in whole or in part by this care plan."]
2627 pub basedOn: Option<Vec<Box<Reference>>>,
2628 # [reference (targets = ["CarePlan"])]
2629 #[doc = "Completed or terminated care plan whose function is taken by this new care plan."]
2630 pub replaces: Option<Vec<Box<Reference>>>,
2631 # [reference (targets = ["CarePlan"])]
2632 #[doc = "A larger care plan of which this particular care plan is a component or step."]
2633 pub partOf: Option<Vec<Box<Reference>>>,
2634 #[primitive]
2635 #[doc = "Indicates whether the plan is currently being acted upon, represents future intentions or is now a historical record."]
2636 pub status: Box<terminology::RequestStatus>,
2637 #[primitive]
2638 #[doc = "Indicates the level of authority/intentionality associated with the care plan and where the care plan fits into the workflow chain."]
2639 pub intent: Box<terminology::CarePlanIntent>,
2640 #[doc = "Identifies what \"kind\" of plan this is to support differentiation between multiple co-existing plans; e.g. \"Home health\", \"psychiatric\", \"asthma\", \"disease management\", \"wellness plan\", etc."]
2641 pub category: Option<Vec<Box<CodeableConcept>>>,
2642 #[primitive]
2643 #[doc = "Human-friendly name for the care plan."]
2644 pub title: Option<Box<FHIRString>>,
2645 #[primitive]
2646 #[doc = "A description of the scope and nature of the plan."]
2647 pub description: Option<Box<FHIRString>>,
2648 # [reference (targets = ["Patient" , "Group"])]
2649 #[doc = "Identifies the patient or group whose intended care is described by the plan."]
2650 pub subject: Box<Reference>,
2651 # [reference (targets = ["Encounter"])]
2652 #[doc = "The Encounter during which this CarePlan was created or to which the creation of this record is tightly associated."]
2653 pub encounter: Option<Box<Reference>>,
2654 #[doc = "Indicates when the plan did (or is intended to) come into effect and end."]
2655 pub period: Option<Box<Period>>,
2656 #[primitive]
2657 #[doc = "Represents when this particular CarePlan record was created in the system, which is often a system-generated date."]
2658 pub created: Option<Box<FHIRDateTime>>,
2659 # [reference (targets = ["Patient" , "Practitioner" , "PractitionerRole" , "Device" , "RelatedPerson" , "Organization" , "CareTeam"])]
2660 #[doc = "When populated, the author is responsible for the care plan. The care plan is attributed to the author."]
2661 pub author: Option<Box<Reference>>,
2662 # [reference (targets = ["Patient" , "Practitioner" , "PractitionerRole" , "Device" , "RelatedPerson" , "Organization" , "CareTeam"])]
2663 #[doc = "Identifies the individual(s) or organization who provided the contents of the care plan."]
2664 pub contributor: Option<Vec<Box<Reference>>>,
2665 # [reference (targets = ["CareTeam"])]
2666 #[doc = "Identifies all people and organizations who are expected to be involved in the care envisioned by this plan."]
2667 pub careTeam: Option<Vec<Box<Reference>>>,
2668 # [reference (targets = ["Condition"])]
2669 #[doc = "Identifies the conditions/problems/concerns/diagnoses/etc. whose management and/or mitigation are handled by this plan."]
2670 pub addresses: Option<Vec<Box<Reference>>>,
2671 # [reference (targets = ["Resource"])]
2672 #[doc = "Identifies portions of the patient's record that specifically influenced the formation of the plan. These might include comorbidities, recent procedures, limitations, recent assessments, etc."]
2673 pub supportingInfo: Option<Vec<Box<Reference>>>,
2674 # [reference (targets = ["Goal"])]
2675 #[doc = "Describes the intended objective(s) of carrying out the care plan."]
2676 pub goal: Option<Vec<Box<Reference>>>,
2677 #[doc = "Identifies a planned action to occur as part of the plan. For example, a medication to be used, lab tests to perform, self-monitoring, education, etc."]
2678 pub activity: Option<Vec<CarePlanActivity>>,
2679 #[doc = "General notes about the care plan not covered elsewhere."]
2680 pub note: Option<Vec<Box<Annotation>>>,
2681}
2682#[derive(
2683 Clone,
2684 Reflect,
2685 Debug,
2686 Default,
2687 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2688 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2689)]
2690#[fhir_serialize_type = "complex"]
2691#[doc = "Identifies all people and organizations who are expected to be involved in the care team."]
2692pub struct CareTeamParticipant {
2693 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2694 pub id: Option<String>,
2695 #[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 manageable, 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."]
2696 pub extension: Option<Vec<Box<Extension>>>,
2697 #[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 manageable, 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)."]
2698 pub modifierExtension: Option<Vec<Box<Extension>>>,
2699 #[doc = "Indicates specific responsibility of an individual within the care team, such as \"Primary care physician\", \"Trained social worker counselor\", \"Caregiver\", etc."]
2700 pub role: Option<Vec<Box<CodeableConcept>>>,
2701 # [reference (targets = ["Practitioner" , "PractitionerRole" , "RelatedPerson" , "Patient" , "Organization" , "CareTeam"])]
2702 #[doc = "The specific person or organization who is participating/expected to participate in the care team."]
2703 pub member: Option<Box<Reference>>,
2704 # [reference (targets = ["Organization"])]
2705 #[doc = "The organization of the practitioner."]
2706 pub onBehalfOf: Option<Box<Reference>>,
2707 #[doc = "Indicates when the specific member or organization did (or is intended to) come into effect and end."]
2708 pub period: Option<Box<Period>>,
2709}
2710#[derive(
2711 Clone,
2712 Reflect,
2713 Debug,
2714 Default,
2715 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2716 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2717)]
2718#[fhir_serialize_type = "resource"]
2719#[doc = "The Care Team includes all the people and organizations who plan to participate in the coordination and delivery of care for a patient."]
2720pub struct CareTeam {
2721 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
2722 pub id: Option<String>,
2723 #[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."]
2724 pub meta: Option<Box<Meta>>,
2725 #[primitive]
2726 #[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."]
2727 pub implicitRules: Option<Box<FHIRUri>>,
2728 #[primitive]
2729 #[doc = "The base language in which the resource is written."]
2730 pub language: Option<Box<FHIRCode>>,
2731 #[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."]
2732 pub text: Option<Box<Narrative>>,
2733 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
2734 pub contained: Option<Vec<Box<Resource>>>,
2735 #[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 manageable, 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."]
2736 pub extension: Option<Vec<Box<Extension>>>,
2737 #[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 manageable, 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)."]
2738 pub modifierExtension: Option<Vec<Box<Extension>>>,
2739 #[rename_field = "identifier"]
2740 #[doc = "Business identifiers assigned to this care team by the performer or other systems which remain constant as the resource is updated and propagates from server to server."]
2741 pub identifier_: Option<Vec<Box<Identifier>>>,
2742 #[primitive]
2743 #[doc = "Indicates the current state of the care team."]
2744 pub status: Option<Box<terminology::CareTeamStatus>>,
2745 #[doc = "Identifies what kind of team. This is to support differentiation between multiple co-existing teams, such as care plan team, episode of care team, longitudinal care team."]
2746 pub category: Option<Vec<Box<CodeableConcept>>>,
2747 #[primitive]
2748 #[doc = "A label for human use intended to distinguish like teams. E.g. the \"red\" vs. \"green\" trauma teams."]
2749 pub name: Option<Box<FHIRString>>,
2750 # [reference (targets = ["Patient" , "Group"])]
2751 #[doc = "Identifies the patient or group whose intended care is handled by the team."]
2752 pub subject: Option<Box<Reference>>,
2753 # [reference (targets = ["Encounter"])]
2754 #[doc = "The Encounter during which this CareTeam was created or to which the creation of this record is tightly associated."]
2755 pub encounter: Option<Box<Reference>>,
2756 #[doc = "Indicates when the team did (or is intended to) come into effect and end."]
2757 pub period: Option<Box<Period>>,
2758 #[doc = "Identifies all people and organizations who are expected to be involved in the care team."]
2759 pub participant: Option<Vec<CareTeamParticipant>>,
2760 #[doc = "Describes why the care team exists."]
2761 pub reasonCode: Option<Vec<Box<CodeableConcept>>>,
2762 # [reference (targets = ["Condition"])]
2763 #[doc = "Condition(s) that this care team addresses."]
2764 pub reasonReference: Option<Vec<Box<Reference>>>,
2765 # [reference (targets = ["Organization"])]
2766 #[doc = "The organization responsible for the care team."]
2767 pub managingOrganization: Option<Vec<Box<Reference>>>,
2768 #[doc = "A central contact detail for the care team (that applies to all members)."]
2769 pub telecom: Option<Vec<Box<ContactPoint>>>,
2770 #[doc = "Comments made about the CareTeam."]
2771 pub note: Option<Vec<Box<Annotation>>>,
2772}
2773#[derive(
2774 Clone,
2775 Reflect,
2776 Debug,
2777 Default,
2778 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2779 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2780)]
2781#[fhir_serialize_type = "complex"]
2782#[doc = "Used for example, to point to a substance, or to a device used to administer a medication."]
2783pub struct CatalogEntryRelatedEntry {
2784 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2785 pub id: Option<String>,
2786 #[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 manageable, 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."]
2787 pub extension: Option<Vec<Box<Extension>>>,
2788 #[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 manageable, 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)."]
2789 pub modifierExtension: Option<Vec<Box<Extension>>>,
2790 #[primitive]
2791 #[doc = "The type of relation to the related item: child, parent, packageContent, containerPackage, usedIn, uses, requires, etc."]
2792 pub relationtype: Box<terminology::RelationType>,
2793 # [reference (targets = ["CatalogEntry"])]
2794 #[doc = "The reference to the related item."]
2795 pub item: Box<Reference>,
2796}
2797#[derive(
2798 Clone,
2799 Reflect,
2800 Debug,
2801 Default,
2802 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2803 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2804)]
2805#[fhir_serialize_type = "resource"]
2806#[doc = "Catalog entries are wrappers that contextualize items included in a catalog."]
2807pub struct CatalogEntry {
2808 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
2809 pub id: Option<String>,
2810 #[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."]
2811 pub meta: Option<Box<Meta>>,
2812 #[primitive]
2813 #[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."]
2814 pub implicitRules: Option<Box<FHIRUri>>,
2815 #[primitive]
2816 #[doc = "The base language in which the resource is written."]
2817 pub language: Option<Box<FHIRCode>>,
2818 #[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."]
2819 pub text: Option<Box<Narrative>>,
2820 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
2821 pub contained: Option<Vec<Box<Resource>>>,
2822 #[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 manageable, 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."]
2823 pub extension: Option<Vec<Box<Extension>>>,
2824 #[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 manageable, 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)."]
2825 pub modifierExtension: Option<Vec<Box<Extension>>>,
2826 #[rename_field = "identifier"]
2827 #[doc = "Used in supporting different identifiers for the same product, e.g. manufacturer code and retailer code."]
2828 pub identifier_: Option<Vec<Box<Identifier>>>,
2829 #[rename_field = "type"]
2830 #[doc = "The type of item - medication, device, service, protocol or other."]
2831 pub type_: Option<Box<CodeableConcept>>,
2832 #[primitive]
2833 #[doc = "Whether the entry represents an orderable item."]
2834 pub orderable: Box<FHIRBoolean>,
2835 # [reference (targets = ["Medication" , "Device" , "Organization" , "Practitioner" , "PractitionerRole" , "HealthcareService" , "ActivityDefinition" , "PlanDefinition" , "SpecimenDefinition" , "ObservationDefinition" , "Binary"])]
2836 #[doc = "The item in a catalog or definition."]
2837 pub referencedItem: Box<Reference>,
2838 #[doc = "Used in supporting related concepts, e.g. NDC to RxNorm."]
2839 pub additionalIdentifier: Option<Vec<Box<Identifier>>>,
2840 #[doc = "Classes of devices, or ATC for medication."]
2841 pub classification: Option<Vec<Box<CodeableConcept>>>,
2842 #[primitive]
2843 #[doc = "Used to support catalog exchange even for unsupported products, e.g. getting list of medications even if not prescribable."]
2844 pub status: Option<Box<terminology::PublicationStatus>>,
2845 #[doc = "The time period in which this catalog entry is expected to be active."]
2846 pub validityPeriod: Option<Box<Period>>,
2847 #[primitive]
2848 #[doc = "The date until which this catalog entry is expected to be active."]
2849 pub validTo: Option<Box<FHIRDateTime>>,
2850 #[primitive]
2851 #[doc = "Typically date of issue is different from the beginning of the validity. This can be used to see when an item was last updated."]
2852 pub lastUpdated: Option<Box<FHIRDateTime>>,
2853 #[doc = "Used for examplefor Out of Formulary, or any specifics."]
2854 pub additionalCharacteristic: Option<Vec<Box<CodeableConcept>>>,
2855 #[doc = "User for example for ATC classification, or."]
2856 pub additionalClassification: Option<Vec<Box<CodeableConcept>>>,
2857 #[doc = "Used for example, to point to a substance, or to a device used to administer a medication."]
2858 pub relatedEntry: Option<Vec<CatalogEntryRelatedEntry>>,
2859}
2860#[derive(
2861 Clone,
2862 Reflect,
2863 Debug,
2864 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2865 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2866)]
2867#[fhir_serialize_type = "typechoice"]
2868#[type_choice_field_name = "occurrence"]
2869pub enum ChargeItemOccurrenceTypeChoice {
2870 DateTime(Box<FHIRDateTime>),
2871 Period(Box<Period>),
2872 Timing(Box<Timing>),
2873}
2874impl Default for ChargeItemOccurrenceTypeChoice {
2875 fn default() -> Self {
2876 ChargeItemOccurrenceTypeChoice::DateTime(Box::new(Default::default()))
2877 }
2878}
2879#[derive(
2880 Clone,
2881 Reflect,
2882 Debug,
2883 Default,
2884 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2885 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2886)]
2887#[fhir_serialize_type = "complex"]
2888#[doc = "Indicates who or what performed or participated in the charged service."]
2889pub struct ChargeItemPerformer {
2890 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
2891 pub id: Option<String>,
2892 #[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 manageable, 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."]
2893 pub extension: Option<Vec<Box<Extension>>>,
2894 #[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 manageable, 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)."]
2895 pub modifierExtension: Option<Vec<Box<Extension>>>,
2896 #[doc = "Describes the type of performance or participation(e.g. primary surgeon, anesthesiologiest, etc.)."]
2897 pub function: Option<Box<CodeableConcept>>,
2898 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization" , "CareTeam" , "Patient" , "Device" , "RelatedPerson"])]
2899 #[doc = "The device, practitioner, etc. who performed or participated in the service."]
2900 pub actor: Box<Reference>,
2901}
2902#[derive(
2903 Clone,
2904 Reflect,
2905 Debug,
2906 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2907 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2908)]
2909#[fhir_serialize_type = "typechoice"]
2910#[type_choice_field_name = "product"]
2911pub enum ChargeItemProductTypeChoice {
2912 # [reference (targets = ["Device" , "Medication" , "Substance"])]
2913 Reference(Box<Reference>),
2914 CodeableConcept(Box<CodeableConcept>),
2915}
2916impl Default for ChargeItemProductTypeChoice {
2917 fn default() -> Self {
2918 ChargeItemProductTypeChoice::Reference(Box::new(Default::default()))
2919 }
2920}
2921#[derive(
2922 Clone,
2923 Reflect,
2924 Debug,
2925 Default,
2926 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
2927 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
2928)]
2929#[fhir_serialize_type = "resource"]
2930#[doc = "The resource ChargeItem describes the provision of healthcare provider products for a certain patient, therefore referring not only to the product, but containing in addition details of the provision, like date, time, amounts and participating organizations and persons. Main Usage of the ChargeItem is to enable the billing process and internal cost allocation."]
2931pub struct ChargeItem {
2932 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
2933 pub id: Option<String>,
2934 #[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."]
2935 pub meta: Option<Box<Meta>>,
2936 #[primitive]
2937 #[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."]
2938 pub implicitRules: Option<Box<FHIRUri>>,
2939 #[primitive]
2940 #[doc = "The base language in which the resource is written."]
2941 pub language: Option<Box<FHIRCode>>,
2942 #[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."]
2943 pub text: Option<Box<Narrative>>,
2944 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
2945 pub contained: Option<Vec<Box<Resource>>>,
2946 #[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 manageable, 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."]
2947 pub extension: Option<Vec<Box<Extension>>>,
2948 #[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 manageable, 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)."]
2949 pub modifierExtension: Option<Vec<Box<Extension>>>,
2950 #[rename_field = "identifier"]
2951 #[doc = "Identifiers assigned to this event performer or other systems."]
2952 pub identifier_: Option<Vec<Box<Identifier>>>,
2953 #[primitive]
2954 #[doc = "References the (external) source of pricing information, rules of application for the code this ChargeItem uses."]
2955 pub definitionUri: Option<Vec<Box<FHIRUri>>>,
2956 #[primitive]
2957 #[doc = "References the source of pricing information, rules of application for the code this ChargeItem uses."]
2958 pub definitionCanonical: Option<Vec<Box<FHIRCanonical>>>,
2959 #[primitive]
2960 #[doc = "The current state of the ChargeItem."]
2961 pub status: Box<terminology::ChargeitemStatus>,
2962 # [reference (targets = ["ChargeItem"])]
2963 #[doc = "ChargeItems can be grouped to larger ChargeItems covering the whole set."]
2964 pub partOf: Option<Vec<Box<Reference>>>,
2965 #[doc = "A code that identifies the charge, like a billing code."]
2966 pub code: Box<CodeableConcept>,
2967 # [reference (targets = ["Patient" , "Group"])]
2968 #[doc = "The individual or set of individuals the action is being or was performed on."]
2969 pub subject: Box<Reference>,
2970 # [reference (targets = ["Encounter" , "EpisodeOfCare"])]
2971 #[doc = "The encounter or episode of care that establishes the context for this event."]
2972 pub context: Option<Box<Reference>>,
2973 # [type_choice_variants (complex = ["occurrencePeriod" , "occurrenceTiming"] , primitive = ["occurrenceDateTime"])]
2974 #[doc = "Date/time(s) or duration when the charged service was applied."]
2975 pub occurrence: Option<ChargeItemOccurrenceTypeChoice>,
2976 #[doc = "Indicates who or what performed or participated in the charged service."]
2977 pub performer: Option<Vec<ChargeItemPerformer>>,
2978 # [reference (targets = ["Organization"])]
2979 #[doc = "The organization requesting the service."]
2980 pub performingOrganization: Option<Box<Reference>>,
2981 # [reference (targets = ["Organization"])]
2982 #[doc = "The organization performing the service."]
2983 pub requestingOrganization: Option<Box<Reference>>,
2984 # [reference (targets = ["Organization"])]
2985 #[doc = "The financial cost center permits the tracking of charge attribution."]
2986 pub costCenter: Option<Box<Reference>>,
2987 #[doc = "Quantity of which the charge item has been serviced."]
2988 pub quantity: Option<Box<Quantity>>,
2989 #[doc = "The anatomical location where the related service has been applied."]
2990 pub bodysite: Option<Vec<Box<CodeableConcept>>>,
2991 #[primitive]
2992 #[doc = "Factor overriding the factor determined by the rules associated with the code."]
2993 pub factorOverride: Option<Box<FHIRDecimal>>,
2994 #[doc = "Total price of the charge overriding the list price associated with the code."]
2995 pub priceOverride: Option<Box<Money>>,
2996 #[primitive]
2997 #[doc = "If the list price or the rule-based factor associated with the code is overridden, this attribute can capture a text to indicate the reason for this action."]
2998 pub overrideReason: Option<Box<FHIRString>>,
2999 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization" , "Patient" , "Device" , "RelatedPerson"])]
3000 #[doc = "The device, practitioner, etc. who entered the charge item."]
3001 pub enterer: Option<Box<Reference>>,
3002 #[primitive]
3003 #[doc = "Date the charge item was entered."]
3004 pub enteredDate: Option<Box<FHIRDateTime>>,
3005 #[doc = "Describes why the event occurred in coded or textual form."]
3006 pub reason: Option<Vec<Box<CodeableConcept>>>,
3007 # [reference (targets = ["DiagnosticReport" , "ImagingStudy" , "Immunization" , "MedicationAdministration" , "MedicationDispense" , "Observation" , "Procedure" , "SupplyDelivery"])]
3008 #[doc = "Indicated the rendered service that caused this charge."]
3009 pub service: Option<Vec<Box<Reference>>>,
3010 # [type_choice_variants (complex = ["productReference" , "productCodeableConcept"] , primitive = [])]
3011 #[doc = "Identifies the device, food, drug or other product being charged either by type code or reference to an instance."]
3012 pub product: Option<ChargeItemProductTypeChoice>,
3013 # [reference (targets = ["Account"])]
3014 #[doc = "Account into which this ChargeItems belongs."]
3015 pub account: Option<Vec<Box<Reference>>>,
3016 #[doc = "Comments made about the event by the performer, subject or other participants."]
3017 pub note: Option<Vec<Box<Annotation>>>,
3018 # [reference (targets = ["Resource"])]
3019 #[doc = "Further information supporting this charge."]
3020 pub supportingInformation: Option<Vec<Box<Reference>>>,
3021}
3022#[derive(
3023 Clone,
3024 Reflect,
3025 Debug,
3026 Default,
3027 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3028 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3029)]
3030#[fhir_serialize_type = "complex"]
3031#[doc = "Expressions that describe applicability criteria for the billing code."]
3032pub struct ChargeItemDefinitionApplicability {
3033 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
3034 pub id: Option<String>,
3035 #[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 manageable, 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."]
3036 pub extension: Option<Vec<Box<Extension>>>,
3037 #[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 manageable, 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)."]
3038 pub modifierExtension: Option<Vec<Box<Extension>>>,
3039 #[primitive]
3040 #[doc = "A brief, natural language description of the condition that effectively communicates the intended semantics."]
3041 pub description: Option<Box<FHIRString>>,
3042 #[primitive]
3043 #[doc = "The media type of the language for the expression, e.g. \"text/cql\" for Clinical Query Language expressions or \"text/fhirpath\" for FHIRPath expressions."]
3044 pub language: Option<Box<FHIRString>>,
3045 #[primitive]
3046 #[doc = "An expression that returns true or false, indicating whether the condition is satisfied. When using FHIRPath expressions, the %context environment variable must be replaced at runtime with the ChargeItem resource to which this definition is applied."]
3047 pub expression: Option<Box<FHIRString>>,
3048}
3049#[derive(
3050 Clone,
3051 Reflect,
3052 Debug,
3053 Default,
3054 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3055 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3056)]
3057#[fhir_serialize_type = "complex"]
3058#[doc = "The price for a ChargeItem may be calculated as a base price with surcharges/deductions that apply in certain conditions. A ChargeItemDefinition resource that defines the prices, factors and conditions that apply to a billing code is currently under development. The priceComponent element can be used to offer transparency to the recipient of the Invoice of how the prices have been calculated."]
3059pub struct ChargeItemDefinitionPropertyGroupPriceComponent {
3060 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
3061 pub id: Option<String>,
3062 #[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 manageable, 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."]
3063 pub extension: Option<Vec<Box<Extension>>>,
3064 #[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 manageable, 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)."]
3065 pub modifierExtension: Option<Vec<Box<Extension>>>,
3066 #[rename_field = "type"]
3067 #[primitive]
3068 #[doc = "This code identifies the type of the component."]
3069 pub type_: Box<terminology::InvoicePriceComponentType>,
3070 #[doc = "A code that identifies the component. Codes may be used to differentiate between kinds of taxes, surcharges, discounts etc."]
3071 pub code: Option<Box<CodeableConcept>>,
3072 #[primitive]
3073 #[doc = "The factor that has been applied on the base price for calculating this component."]
3074 pub factor: Option<Box<FHIRDecimal>>,
3075 #[doc = "The amount calculated for this component."]
3076 pub amount: Option<Box<Money>>,
3077}
3078#[derive(
3079 Clone,
3080 Reflect,
3081 Debug,
3082 Default,
3083 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3084 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3085)]
3086#[fhir_serialize_type = "complex"]
3087#[doc = "Group of properties which are applicable under the same conditions. If no applicability rules are established for the group, then all properties always apply."]
3088pub struct ChargeItemDefinitionPropertyGroup {
3089 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
3090 pub id: Option<String>,
3091 #[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 manageable, 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."]
3092 pub extension: Option<Vec<Box<Extension>>>,
3093 #[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 manageable, 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)."]
3094 pub modifierExtension: Option<Vec<Box<Extension>>>,
3095 #[doc = "Expressions that describe applicability criteria for the priceComponent."]
3096 pub applicability: Option<Vec<ChargeItemDefinitionApplicability>>,
3097 #[doc = "The price for a ChargeItem may be calculated as a base price with surcharges/deductions that apply in certain conditions. A ChargeItemDefinition resource that defines the prices, factors and conditions that apply to a billing code is currently under development. The priceComponent element can be used to offer transparency to the recipient of the Invoice of how the prices have been calculated."]
3098 pub priceComponent: Option<Vec<ChargeItemDefinitionPropertyGroupPriceComponent>>,
3099}
3100#[derive(
3101 Clone,
3102 Reflect,
3103 Debug,
3104 Default,
3105 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3106 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3107)]
3108#[fhir_serialize_type = "resource"]
3109#[doc = "The ChargeItemDefinition resource provides the properties that apply to the (billing) codes necessary to calculate costs and prices. The properties may differ largely depending on type and realm, therefore this resource gives only a rough structure and requires profiling for each type of billing code system."]
3110pub struct ChargeItemDefinition {
3111 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
3112 pub id: Option<String>,
3113 #[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."]
3114 pub meta: Option<Box<Meta>>,
3115 #[primitive]
3116 #[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."]
3117 pub implicitRules: Option<Box<FHIRUri>>,
3118 #[primitive]
3119 #[doc = "The base language in which the resource is written."]
3120 pub language: Option<Box<FHIRCode>>,
3121 #[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."]
3122 pub text: Option<Box<Narrative>>,
3123 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
3124 pub contained: Option<Vec<Box<Resource>>>,
3125 #[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 manageable, 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."]
3126 pub extension: Option<Vec<Box<Extension>>>,
3127 #[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 manageable, 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)."]
3128 pub modifierExtension: Option<Vec<Box<Extension>>>,
3129 #[primitive]
3130 #[doc = "An absolute URI that is used to identify this charge item definition 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 at which an authoritative instance of this charge item definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the charge item definition is stored on different servers."]
3131 pub url: Box<FHIRUri>,
3132 #[rename_field = "identifier"]
3133 #[doc = "A formal identifier that is used to identify this charge item definition when it is represented in other formats, or referenced in a specification, model, design or an instance."]
3134 pub identifier_: Option<Vec<Box<Identifier>>>,
3135 #[primitive]
3136 #[doc = "The identifier that is used to identify this version of the charge item definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the charge item definition 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. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active assets."]
3137 pub version: Option<Box<FHIRString>>,
3138 #[primitive]
3139 #[doc = "A short, descriptive, user-friendly title for the charge item definition."]
3140 pub title: Option<Box<FHIRString>>,
3141 #[primitive]
3142 #[doc = "The URL pointing to an externally-defined charge item definition that is adhered to in whole or in part by this definition."]
3143 pub derivedFromUri: Option<Vec<Box<FHIRUri>>>,
3144 #[primitive]
3145 #[doc = "A larger definition of which this particular definition is a component or step."]
3146 pub partOf: Option<Vec<Box<FHIRCanonical>>>,
3147 #[primitive]
3148 #[doc = "As new versions of a protocol or guideline are defined, allows identification of what versions are replaced by a new instance."]
3149 pub replaces: Option<Vec<Box<FHIRCanonical>>>,
3150 #[primitive]
3151 #[doc = "The current state of the ChargeItemDefinition."]
3152 pub status: Box<terminology::PublicationStatus>,
3153 #[primitive]
3154 #[doc = "A Boolean value to indicate that this charge item definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
3155 pub experimental: Option<Box<FHIRBoolean>>,
3156 #[primitive]
3157 #[doc = "The date (and optionally time) when the charge item definition was published. 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 charge item definition changes."]
3158 pub date: Option<Box<FHIRDateTime>>,
3159 #[primitive]
3160 #[doc = "The name of the organization or individual that published the charge item definition."]
3161 pub publisher: Option<Box<FHIRString>>,
3162 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
3163 pub contact: Option<Vec<Box<ContactDetail>>>,
3164 #[primitive]
3165 #[doc = "A free text natural language description of the charge item definition from a consumer's perspective."]
3166 pub description: Option<Box<FHIRMarkdown>>,
3167 #[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 charge item definition instances."]
3168 pub useContext: Option<Vec<Box<UsageContext>>>,
3169 #[doc = "A legal or geographic region in which the charge item definition is intended to be used."]
3170 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
3171 #[primitive]
3172 #[doc = "A copyright statement relating to the charge item definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the charge item definition."]
3173 pub copyright: Option<Box<FHIRMarkdown>>,
3174 #[primitive]
3175 #[doc = "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage."]
3176 pub approvalDate: Option<Box<FHIRDate>>,
3177 #[primitive]
3178 #[doc = "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date."]
3179 pub lastReviewDate: Option<Box<FHIRDate>>,
3180 #[doc = "The period during which the charge item definition content was or is planned to be in active use."]
3181 pub effectivePeriod: Option<Box<Period>>,
3182 #[doc = "The defined billing details in this resource pertain to the given billing code."]
3183 pub code: Option<Box<CodeableConcept>>,
3184 # [reference (targets = ["Medication" , "Substance" , "Device"])]
3185 #[doc = "The defined billing details in this resource pertain to the given product instance(s)."]
3186 pub instance: Option<Vec<Box<Reference>>>,
3187 #[doc = "Expressions that describe applicability criteria for the billing code."]
3188 pub applicability: Option<Vec<ChargeItemDefinitionApplicability>>,
3189 #[doc = "Group of properties which are applicable under the same conditions. If no applicability rules are established for the group, then all properties always apply."]
3190 pub propertyGroup: Option<Vec<ChargeItemDefinitionPropertyGroup>>,
3191}
3192#[derive(
3193 Clone,
3194 Reflect,
3195 Debug,
3196 Default,
3197 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3198 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3199)]
3200#[fhir_serialize_type = "complex"]
3201#[doc = "Other claims which are related to this claim such as prior submissions or claims for related services or for the same event."]
3202pub struct ClaimRelated {
3203 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
3204 pub id: Option<String>,
3205 #[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 manageable, 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."]
3206 pub extension: Option<Vec<Box<Extension>>>,
3207 #[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 manageable, 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)."]
3208 pub modifierExtension: Option<Vec<Box<Extension>>>,
3209 # [reference (targets = ["Claim"])]
3210 #[doc = "Reference to a related claim."]
3211 pub claim: Option<Box<Reference>>,
3212 #[doc = "A code to convey how the claims are related."]
3213 pub relationship: Option<Box<CodeableConcept>>,
3214 #[doc = "An alternate organizational reference to the case or file to which this particular claim pertains."]
3215 pub reference: Option<Box<Identifier>>,
3216}
3217#[derive(
3218 Clone,
3219 Reflect,
3220 Debug,
3221 Default,
3222 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3223 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3224)]
3225#[fhir_serialize_type = "complex"]
3226#[doc = "The party to be reimbursed for cost of the products and services according to the terms of the policy."]
3227pub struct ClaimPayee {
3228 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
3229 pub id: Option<String>,
3230 #[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 manageable, 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."]
3231 pub extension: Option<Vec<Box<Extension>>>,
3232 #[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 manageable, 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)."]
3233 pub modifierExtension: Option<Vec<Box<Extension>>>,
3234 #[rename_field = "type"]
3235 #[doc = "Type of Party to be reimbursed: subscriber, provider, other."]
3236 pub type_: Box<CodeableConcept>,
3237 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization" , "Patient" , "RelatedPerson"])]
3238 #[doc = "Reference to the individual or organization to whom any payment will be made."]
3239 pub party: Option<Box<Reference>>,
3240}
3241#[derive(
3242 Clone,
3243 Reflect,
3244 Debug,
3245 Default,
3246 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3247 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3248)]
3249#[fhir_serialize_type = "complex"]
3250#[doc = "The members of the team who provided the products and services."]
3251pub struct ClaimCareTeam {
3252 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
3253 pub id: Option<String>,
3254 #[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 manageable, 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."]
3255 pub extension: Option<Vec<Box<Extension>>>,
3256 #[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 manageable, 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)."]
3257 pub modifierExtension: Option<Vec<Box<Extension>>>,
3258 #[primitive]
3259 #[doc = "A number to uniquely identify care team entries."]
3260 pub sequence: Box<FHIRPositiveInt>,
3261 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
3262 #[doc = "Member of the team who provided the product or service."]
3263 pub provider: Box<Reference>,
3264 #[primitive]
3265 #[doc = "The party who is billing and/or responsible for the claimed products or services."]
3266 pub responsible: Option<Box<FHIRBoolean>>,
3267 #[doc = "The lead, assisting or supervising practitioner and their discipline if a multidisciplinary team."]
3268 pub role: Option<Box<CodeableConcept>>,
3269 #[doc = "The qualification of the practitioner which is applicable for this service."]
3270 pub qualification: Option<Box<CodeableConcept>>,
3271}
3272#[derive(
3273 Clone,
3274 Reflect,
3275 Debug,
3276 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3277 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3278)]
3279#[fhir_serialize_type = "typechoice"]
3280#[type_choice_field_name = "timing"]
3281pub enum ClaimSupportingInfoTimingTypeChoice {
3282 Date(Box<FHIRDate>),
3283 Period(Box<Period>),
3284}
3285impl Default for ClaimSupportingInfoTimingTypeChoice {
3286 fn default() -> Self {
3287 ClaimSupportingInfoTimingTypeChoice::Date(Box::new(Default::default()))
3288 }
3289}
3290#[derive(
3291 Clone,
3292 Reflect,
3293 Debug,
3294 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3295 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3296)]
3297#[fhir_serialize_type = "typechoice"]
3298#[type_choice_field_name = "value"]
3299pub enum ClaimSupportingInfoValueTypeChoice {
3300 Boolean(Box<FHIRBoolean>),
3301 String(Box<FHIRString>),
3302 Quantity(Box<Quantity>),
3303 Attachment(Box<Attachment>),
3304 # [reference (targets = ["Resource"])]
3305 Reference(Box<Reference>),
3306}
3307impl Default for ClaimSupportingInfoValueTypeChoice {
3308 fn default() -> Self {
3309 ClaimSupportingInfoValueTypeChoice::Boolean(Box::new(Default::default()))
3310 }
3311}
3312#[derive(
3313 Clone,
3314 Reflect,
3315 Debug,
3316 Default,
3317 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3318 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3319)]
3320#[fhir_serialize_type = "complex"]
3321#[doc = "Additional information codes regarding exceptions, special considerations, the condition, situation, prior or concurrent issues."]
3322pub struct ClaimSupportingInfo {
3323 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
3324 pub id: Option<String>,
3325 #[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 manageable, 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."]
3326 pub extension: Option<Vec<Box<Extension>>>,
3327 #[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 manageable, 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)."]
3328 pub modifierExtension: Option<Vec<Box<Extension>>>,
3329 #[primitive]
3330 #[doc = "A number to uniquely identify supporting information entries."]
3331 pub sequence: Box<FHIRPositiveInt>,
3332 #[doc = "The general class of the information supplied: information; exception; accident, employment; onset, etc."]
3333 pub category: Box<CodeableConcept>,
3334 #[doc = "System and code pertaining to the specific information regarding special conditions relating to the setting, treatment or patient for which care is sought."]
3335 pub code: Option<Box<CodeableConcept>>,
3336 # [type_choice_variants (complex = ["timingPeriod"] , primitive = ["timingDate"])]
3337 #[doc = "The date when or period to which this information refers."]
3338 pub timing: Option<ClaimSupportingInfoTimingTypeChoice>,
3339 # [type_choice_variants (complex = ["valueQuantity" , "valueAttachment" , "valueReference"] , primitive = ["valueBoolean" , "valueString"])]
3340 #[doc = "Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data."]
3341 pub value: Option<ClaimSupportingInfoValueTypeChoice>,
3342 #[doc = "Provides the reason in the situation where a reason code is required in addition to the content."]
3343 pub reason: Option<Box<CodeableConcept>>,
3344}
3345#[derive(
3346 Clone,
3347 Reflect,
3348 Debug,
3349 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3350 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3351)]
3352#[fhir_serialize_type = "typechoice"]
3353#[type_choice_field_name = "diagnosis"]
3354pub enum ClaimDiagnosisDiagnosisTypeChoice {
3355 CodeableConcept(Box<CodeableConcept>),
3356 # [reference (targets = ["Condition"])]
3357 Reference(Box<Reference>),
3358}
3359impl Default for ClaimDiagnosisDiagnosisTypeChoice {
3360 fn default() -> Self {
3361 ClaimDiagnosisDiagnosisTypeChoice::CodeableConcept(Box::new(Default::default()))
3362 }
3363}
3364#[derive(
3365 Clone,
3366 Reflect,
3367 Debug,
3368 Default,
3369 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3370 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3371)]
3372#[fhir_serialize_type = "complex"]
3373#[doc = "Information about diagnoses relevant to the claim items."]
3374pub struct ClaimDiagnosis {
3375 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
3376 pub id: Option<String>,
3377 #[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 manageable, 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."]
3378 pub extension: Option<Vec<Box<Extension>>>,
3379 #[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 manageable, 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)."]
3380 pub modifierExtension: Option<Vec<Box<Extension>>>,
3381 #[primitive]
3382 #[doc = "A number to uniquely identify diagnosis entries."]
3383 pub sequence: Box<FHIRPositiveInt>,
3384 # [type_choice_variants (complex = ["diagnosisCodeableConcept" , "diagnosisReference"] , primitive = [])]
3385 #[doc = "The nature of illness or problem in a coded form or as a reference to an external defined Condition."]
3386 pub diagnosis: ClaimDiagnosisDiagnosisTypeChoice,
3387 #[rename_field = "type"]
3388 #[doc = "When the condition was observed or the relative ranking."]
3389 pub type_: Option<Vec<Box<CodeableConcept>>>,
3390 #[doc = "Indication of whether the diagnosis was present on admission to a facility."]
3391 pub onAdmission: Option<Box<CodeableConcept>>,
3392 #[doc = "A package billing code or bundle code used to group products and services to a particular health condition (such as heart attack) which is based on a predetermined grouping code system."]
3393 pub packageCode: Option<Box<CodeableConcept>>,
3394}
3395#[derive(
3396 Clone,
3397 Reflect,
3398 Debug,
3399 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3400 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3401)]
3402#[fhir_serialize_type = "typechoice"]
3403#[type_choice_field_name = "procedure"]
3404pub enum ClaimProcedureProcedureTypeChoice {
3405 CodeableConcept(Box<CodeableConcept>),
3406 # [reference (targets = ["Procedure"])]
3407 Reference(Box<Reference>),
3408}
3409impl Default for ClaimProcedureProcedureTypeChoice {
3410 fn default() -> Self {
3411 ClaimProcedureProcedureTypeChoice::CodeableConcept(Box::new(Default::default()))
3412 }
3413}
3414#[derive(
3415 Clone,
3416 Reflect,
3417 Debug,
3418 Default,
3419 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3420 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3421)]
3422#[fhir_serialize_type = "complex"]
3423#[doc = "Procedures performed on the patient relevant to the billing items with the claim."]
3424pub struct ClaimProcedure {
3425 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
3426 pub id: Option<String>,
3427 #[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 manageable, 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."]
3428 pub extension: Option<Vec<Box<Extension>>>,
3429 #[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 manageable, 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)."]
3430 pub modifierExtension: Option<Vec<Box<Extension>>>,
3431 #[primitive]
3432 #[doc = "A number to uniquely identify procedure entries."]
3433 pub sequence: Box<FHIRPositiveInt>,
3434 #[rename_field = "type"]
3435 #[doc = "When the condition was observed or the relative ranking."]
3436 pub type_: Option<Vec<Box<CodeableConcept>>>,
3437 #[primitive]
3438 #[doc = "Date and optionally time the procedure was performed."]
3439 pub date: Option<Box<FHIRDateTime>>,
3440 # [type_choice_variants (complex = ["procedureCodeableConcept" , "procedureReference"] , primitive = [])]
3441 #[doc = "The code or reference to a Procedure resource which identifies the clinical intervention performed."]
3442 pub procedure: ClaimProcedureProcedureTypeChoice,
3443 # [reference (targets = ["Device"])]
3444 #[doc = "Unique Device Identifiers associated with this line item."]
3445 pub udi: Option<Vec<Box<Reference>>>,
3446}
3447#[derive(
3448 Clone,
3449 Reflect,
3450 Debug,
3451 Default,
3452 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3453 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3454)]
3455#[fhir_serialize_type = "complex"]
3456#[doc = "Financial instruments for reimbursement for the health care products and services specified on the claim."]
3457pub struct ClaimInsurance {
3458 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
3459 pub id: Option<String>,
3460 #[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 manageable, 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."]
3461 pub extension: Option<Vec<Box<Extension>>>,
3462 #[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 manageable, 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)."]
3463 pub modifierExtension: Option<Vec<Box<Extension>>>,
3464 #[primitive]
3465 #[doc = "A number to uniquely identify insurance entries and provide a sequence of coverages to convey coordination of benefit order."]
3466 pub sequence: Box<FHIRPositiveInt>,
3467 #[primitive]
3468 #[doc = "A flag to indicate that this Coverage is to be used for adjudication of this claim when set to true."]
3469 pub focal: Box<FHIRBoolean>,
3470 #[rename_field = "identifier"]
3471 #[doc = "The business identifier to be used when the claim is sent for adjudication against this insurance policy."]
3472 pub identifier_: Option<Box<Identifier>>,
3473 # [reference (targets = ["Coverage"])]
3474 #[doc = "Reference to the insurance card level information contained in the Coverage resource. The coverage issuing insurer will use these details to locate the patient's actual coverage within the insurer's information system."]
3475 pub coverage: Box<Reference>,
3476 #[primitive]
3477 #[doc = "A business agreement number established between the provider and the insurer for special business processing purposes."]
3478 pub businessArrangement: Option<Box<FHIRString>>,
3479 #[primitive]
3480 #[doc = "Reference numbers previously provided by the insurer to the provider to be quoted on subsequent claims containing services or products related to the prior authorization."]
3481 pub preAuthRef: Option<Vec<Box<FHIRString>>>,
3482 # [reference (targets = ["ClaimResponse"])]
3483 #[doc = "The result of the adjudication of the line items for the Coverage specified in this insurance."]
3484 pub claimResponse: Option<Box<Reference>>,
3485}
3486#[derive(
3487 Clone,
3488 Reflect,
3489 Debug,
3490 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3491 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3492)]
3493#[fhir_serialize_type = "typechoice"]
3494#[type_choice_field_name = "location"]
3495pub enum ClaimAccidentLocationTypeChoice {
3496 Address(Box<Address>),
3497 # [reference (targets = ["Location"])]
3498 Reference(Box<Reference>),
3499}
3500impl Default for ClaimAccidentLocationTypeChoice {
3501 fn default() -> Self {
3502 ClaimAccidentLocationTypeChoice::Address(Box::new(Default::default()))
3503 }
3504}
3505#[derive(
3506 Clone,
3507 Reflect,
3508 Debug,
3509 Default,
3510 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3511 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3512)]
3513#[fhir_serialize_type = "complex"]
3514#[doc = "Details of an accident which resulted in injuries which required the products and services listed in the claim."]
3515pub struct ClaimAccident {
3516 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
3517 pub id: Option<String>,
3518 #[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 manageable, 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."]
3519 pub extension: Option<Vec<Box<Extension>>>,
3520 #[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 manageable, 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)."]
3521 pub modifierExtension: Option<Vec<Box<Extension>>>,
3522 #[primitive]
3523 #[doc = "Date of an accident event related to the products and services contained in the claim."]
3524 pub date: Box<FHIRDate>,
3525 #[rename_field = "type"]
3526 #[doc = "The type or context of the accident event for the purposes of selection of potential insurance coverages and determination of coordination between insurers."]
3527 pub type_: Option<Box<CodeableConcept>>,
3528 # [type_choice_variants (complex = ["locationAddress" , "locationReference"] , primitive = [])]
3529 #[doc = "The physical location of the accident event."]
3530 pub location: Option<ClaimAccidentLocationTypeChoice>,
3531}
3532#[derive(
3533 Clone,
3534 Reflect,
3535 Debug,
3536 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3537 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3538)]
3539#[fhir_serialize_type = "typechoice"]
3540#[type_choice_field_name = "serviced"]
3541pub enum ClaimItemServicedTypeChoice {
3542 Date(Box<FHIRDate>),
3543 Period(Box<Period>),
3544}
3545impl Default for ClaimItemServicedTypeChoice {
3546 fn default() -> Self {
3547 ClaimItemServicedTypeChoice::Date(Box::new(Default::default()))
3548 }
3549}
3550#[derive(
3551 Clone,
3552 Reflect,
3553 Debug,
3554 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3555 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3556)]
3557#[fhir_serialize_type = "typechoice"]
3558#[type_choice_field_name = "location"]
3559pub enum ClaimItemLocationTypeChoice {
3560 CodeableConcept(Box<CodeableConcept>),
3561 Address(Box<Address>),
3562 # [reference (targets = ["Location"])]
3563 Reference(Box<Reference>),
3564}
3565impl Default for ClaimItemLocationTypeChoice {
3566 fn default() -> Self {
3567 ClaimItemLocationTypeChoice::CodeableConcept(Box::new(Default::default()))
3568 }
3569}
3570#[derive(
3571 Clone,
3572 Reflect,
3573 Debug,
3574 Default,
3575 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3576 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3577)]
3578#[fhir_serialize_type = "complex"]
3579#[doc = "A claim detail line. Either a simple (a product or service) or a 'group' of sub-details which are simple items."]
3580pub struct ClaimItemDetailSubDetail {
3581 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
3582 pub id: Option<String>,
3583 #[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 manageable, 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."]
3584 pub extension: Option<Vec<Box<Extension>>>,
3585 #[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 manageable, 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)."]
3586 pub modifierExtension: Option<Vec<Box<Extension>>>,
3587 #[primitive]
3588 #[doc = "A number to uniquely identify item entries."]
3589 pub sequence: Box<FHIRPositiveInt>,
3590 #[doc = "The type of revenue or cost center providing the product and/or service."]
3591 pub revenue: Option<Box<CodeableConcept>>,
3592 #[doc = "Code to identify the general type of benefits under which products and services are provided."]
3593 pub category: Option<Box<CodeableConcept>>,
3594 #[doc = "When the value is a group code then this item collects a set of related claim details, otherwise this contains the product, service, drug or other billing code for the item."]
3595 pub productOrService: Box<CodeableConcept>,
3596 #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
3597 pub modifier: Option<Vec<Box<CodeableConcept>>>,
3598 #[doc = "Identifies the program under which this may be recovered."]
3599 pub programCode: Option<Vec<Box<CodeableConcept>>>,
3600 #[doc = "The number of repetitions of a service or product."]
3601 pub quantity: Option<Box<Quantity>>,
3602 #[doc = "If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group."]
3603 pub unitPrice: Option<Box<Money>>,
3604 #[primitive]
3605 #[doc = "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount."]
3606 pub factor: Option<Box<FHIRDecimal>>,
3607 #[doc = "The quantity times the unit price for an additional service or product or charge."]
3608 pub net: Option<Box<Money>>,
3609 # [reference (targets = ["Device"])]
3610 #[doc = "Unique Device Identifiers associated with this line item."]
3611 pub udi: Option<Vec<Box<Reference>>>,
3612}
3613#[derive(
3614 Clone,
3615 Reflect,
3616 Debug,
3617 Default,
3618 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3619 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3620)]
3621#[fhir_serialize_type = "complex"]
3622#[doc = "A claim detail line. Either a simple (a product or service) or a 'group' of sub-details which are simple items."]
3623pub struct ClaimItemDetail {
3624 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
3625 pub id: Option<String>,
3626 #[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 manageable, 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."]
3627 pub extension: Option<Vec<Box<Extension>>>,
3628 #[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 manageable, 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)."]
3629 pub modifierExtension: Option<Vec<Box<Extension>>>,
3630 #[primitive]
3631 #[doc = "A number to uniquely identify item entries."]
3632 pub sequence: Box<FHIRPositiveInt>,
3633 #[doc = "The type of revenue or cost center providing the product and/or service."]
3634 pub revenue: Option<Box<CodeableConcept>>,
3635 #[doc = "Code to identify the general type of benefits under which products and services are provided."]
3636 pub category: Option<Box<CodeableConcept>>,
3637 #[doc = "When the value is a group code then this item collects a set of related claim details, otherwise this contains the product, service, drug or other billing code for the item."]
3638 pub productOrService: Box<CodeableConcept>,
3639 #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
3640 pub modifier: Option<Vec<Box<CodeableConcept>>>,
3641 #[doc = "Identifies the program under which this may be recovered."]
3642 pub programCode: Option<Vec<Box<CodeableConcept>>>,
3643 #[doc = "The number of repetitions of a service or product."]
3644 pub quantity: Option<Box<Quantity>>,
3645 #[doc = "If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group."]
3646 pub unitPrice: Option<Box<Money>>,
3647 #[primitive]
3648 #[doc = "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount."]
3649 pub factor: Option<Box<FHIRDecimal>>,
3650 #[doc = "The quantity times the unit price for an additional service or product or charge."]
3651 pub net: Option<Box<Money>>,
3652 # [reference (targets = ["Device"])]
3653 #[doc = "Unique Device Identifiers associated with this line item."]
3654 pub udi: Option<Vec<Box<Reference>>>,
3655 #[doc = "A claim detail line. Either a simple (a product or service) or a 'group' of sub-details which are simple items."]
3656 pub subDetail: Option<Vec<ClaimItemDetailSubDetail>>,
3657}
3658#[derive(
3659 Clone,
3660 Reflect,
3661 Debug,
3662 Default,
3663 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3664 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3665)]
3666#[fhir_serialize_type = "complex"]
3667#[doc = "A claim line. Either a simple product or service or a 'group' of details which can each be a simple items or groups of sub-details."]
3668pub struct ClaimItem {
3669 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
3670 pub id: Option<String>,
3671 #[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 manageable, 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."]
3672 pub extension: Option<Vec<Box<Extension>>>,
3673 #[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 manageable, 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)."]
3674 pub modifierExtension: Option<Vec<Box<Extension>>>,
3675 #[primitive]
3676 #[doc = "A number to uniquely identify item entries."]
3677 pub sequence: Box<FHIRPositiveInt>,
3678 #[primitive]
3679 #[doc = "CareTeam members related to this service or product."]
3680 pub careTeamSequence: Option<Vec<Box<FHIRPositiveInt>>>,
3681 #[primitive]
3682 #[doc = "Diagnosis applicable for this service or product."]
3683 pub diagnosisSequence: Option<Vec<Box<FHIRPositiveInt>>>,
3684 #[primitive]
3685 #[doc = "Procedures applicable for this service or product."]
3686 pub procedureSequence: Option<Vec<Box<FHIRPositiveInt>>>,
3687 #[primitive]
3688 #[doc = "Exceptions, special conditions and supporting information applicable for this service or product."]
3689 pub informationSequence: Option<Vec<Box<FHIRPositiveInt>>>,
3690 #[doc = "The type of revenue or cost center providing the product and/or service."]
3691 pub revenue: Option<Box<CodeableConcept>>,
3692 #[doc = "Code to identify the general type of benefits under which products and services are provided."]
3693 pub category: Option<Box<CodeableConcept>>,
3694 #[doc = "When the value is a group code then this item collects a set of related claim details, otherwise this contains the product, service, drug or other billing code for the item."]
3695 pub productOrService: Box<CodeableConcept>,
3696 #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
3697 pub modifier: Option<Vec<Box<CodeableConcept>>>,
3698 #[doc = "Identifies the program under which this may be recovered."]
3699 pub programCode: Option<Vec<Box<CodeableConcept>>>,
3700 # [type_choice_variants (complex = ["servicedPeriod"] , primitive = ["servicedDate"])]
3701 #[doc = "The date or dates when the service or product was supplied, performed or completed."]
3702 pub serviced: Option<ClaimItemServicedTypeChoice>,
3703 # [type_choice_variants (complex = ["locationCodeableConcept" , "locationAddress" , "locationReference"] , primitive = [])]
3704 #[doc = "Where the product or service was provided."]
3705 pub location: Option<ClaimItemLocationTypeChoice>,
3706 #[doc = "The number of repetitions of a service or product."]
3707 pub quantity: Option<Box<Quantity>>,
3708 #[doc = "If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group."]
3709 pub unitPrice: Option<Box<Money>>,
3710 #[primitive]
3711 #[doc = "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount."]
3712 pub factor: Option<Box<FHIRDecimal>>,
3713 #[doc = "The quantity times the unit price for an additional service or product or charge."]
3714 pub net: Option<Box<Money>>,
3715 # [reference (targets = ["Device"])]
3716 #[doc = "Unique Device Identifiers associated with this line item."]
3717 pub udi: Option<Vec<Box<Reference>>>,
3718 #[doc = "Physical service site on the patient (limb, tooth, etc.)."]
3719 pub bodySite: Option<Box<CodeableConcept>>,
3720 #[doc = "A region or surface of the bodySite, e.g. limb region or tooth surface(s)."]
3721 pub subSite: Option<Vec<Box<CodeableConcept>>>,
3722 # [reference (targets = ["Encounter"])]
3723 #[doc = "The Encounters during which this Claim was created or to which the creation of this record is tightly associated."]
3724 pub encounter: Option<Vec<Box<Reference>>>,
3725 #[doc = "A claim detail line. Either a simple (a product or service) or a 'group' of sub-details which are simple items."]
3726 pub detail: Option<Vec<ClaimItemDetail>>,
3727}
3728#[derive(
3729 Clone,
3730 Reflect,
3731 Debug,
3732 Default,
3733 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3734 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3735)]
3736#[fhir_serialize_type = "resource"]
3737#[doc = "A provider issued list of professional services and products which have been provided, or are to be provided, to a patient which is sent to an insurer for reimbursement."]
3738pub struct Claim {
3739 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
3740 pub id: Option<String>,
3741 #[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."]
3742 pub meta: Option<Box<Meta>>,
3743 #[primitive]
3744 #[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."]
3745 pub implicitRules: Option<Box<FHIRUri>>,
3746 #[primitive]
3747 #[doc = "The base language in which the resource is written."]
3748 pub language: Option<Box<FHIRCode>>,
3749 #[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."]
3750 pub text: Option<Box<Narrative>>,
3751 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
3752 pub contained: Option<Vec<Box<Resource>>>,
3753 #[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 manageable, 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."]
3754 pub extension: Option<Vec<Box<Extension>>>,
3755 #[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 manageable, 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)."]
3756 pub modifierExtension: Option<Vec<Box<Extension>>>,
3757 #[rename_field = "identifier"]
3758 #[doc = "A unique identifier assigned to this claim."]
3759 pub identifier_: Option<Vec<Box<Identifier>>>,
3760 #[primitive]
3761 #[doc = "The status of the resource instance."]
3762 pub status: Box<terminology::FmStatus>,
3763 #[rename_field = "type"]
3764 #[doc = "The category of claim, e.g. oral, pharmacy, vision, institutional, professional."]
3765 pub type_: Box<CodeableConcept>,
3766 #[doc = "A finer grained suite of claim type codes which may convey additional information such as Inpatient vs Outpatient and/or a specialty service."]
3767 pub subType: Option<Box<CodeableConcept>>,
3768 #[rename_field = "use"]
3769 #[primitive]
3770 #[doc = "A code to indicate whether the nature of the request is: to request adjudication of products and services previously rendered; or requesting authorization and adjudication for provision in the future; or requesting the non-binding adjudication of the listed products and services which could be provided in the future."]
3771 pub use_: Box<terminology::ClaimUse>,
3772 # [reference (targets = ["Patient"])]
3773 #[doc = "The party to whom the professional services and/or products have been supplied or are being considered and for whom actual or forecast reimbursement is sought."]
3774 pub patient: Box<Reference>,
3775 #[doc = "The period for which charges are being submitted."]
3776 pub billablePeriod: Option<Box<Period>>,
3777 #[primitive]
3778 #[doc = "The date this resource was created."]
3779 pub created: Box<FHIRDateTime>,
3780 # [reference (targets = ["Practitioner" , "PractitionerRole"])]
3781 #[doc = "Individual who created the claim, predetermination or preauthorization."]
3782 pub enterer: Option<Box<Reference>>,
3783 # [reference (targets = ["Organization"])]
3784 #[doc = "The Insurer who is target of the request."]
3785 pub insurer: Option<Box<Reference>>,
3786 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
3787 #[doc = "The provider which is responsible for the claim, predetermination or preauthorization."]
3788 pub provider: Box<Reference>,
3789 #[doc = "The provider-required urgency of processing the request. Typical values include: stat, routine deferred."]
3790 pub priority: Box<CodeableConcept>,
3791 #[doc = "A code to indicate whether and for whom funds are to be reserved for future claims."]
3792 pub fundsReserve: Option<Box<CodeableConcept>>,
3793 #[doc = "Other claims which are related to this claim such as prior submissions or claims for related services or for the same event."]
3794 pub related: Option<Vec<ClaimRelated>>,
3795 # [reference (targets = ["DeviceRequest" , "MedicationRequest" , "VisionPrescription"])]
3796 #[doc = "Prescription to support the dispensing of pharmacy, device or vision products."]
3797 pub prescription: Option<Box<Reference>>,
3798 # [reference (targets = ["DeviceRequest" , "MedicationRequest" , "VisionPrescription"])]
3799 #[doc = "Original prescription which has been superseded by this prescription to support the dispensing of pharmacy services, medications or products."]
3800 pub originalPrescription: Option<Box<Reference>>,
3801 #[doc = "The party to be reimbursed for cost of the products and services according to the terms of the policy."]
3802 pub payee: Option<ClaimPayee>,
3803 # [reference (targets = ["ServiceRequest"])]
3804 #[doc = "A reference to a referral resource."]
3805 pub referral: Option<Box<Reference>>,
3806 # [reference (targets = ["Location"])]
3807 #[doc = "Facility where the services were provided."]
3808 pub facility: Option<Box<Reference>>,
3809 #[doc = "The members of the team who provided the products and services."]
3810 pub careTeam: Option<Vec<ClaimCareTeam>>,
3811 #[doc = "Additional information codes regarding exceptions, special considerations, the condition, situation, prior or concurrent issues."]
3812 pub supportingInfo: Option<Vec<ClaimSupportingInfo>>,
3813 #[doc = "Information about diagnoses relevant to the claim items."]
3814 pub diagnosis: Option<Vec<ClaimDiagnosis>>,
3815 #[doc = "Procedures performed on the patient relevant to the billing items with the claim."]
3816 pub procedure: Option<Vec<ClaimProcedure>>,
3817 #[cardinality(min = 1usize)]
3818 #[doc = "Financial instruments for reimbursement for the health care products and services specified on the claim."]
3819 pub insurance: Vec<ClaimInsurance>,
3820 #[doc = "Details of an accident which resulted in injuries which required the products and services listed in the claim."]
3821 pub accident: Option<ClaimAccident>,
3822 #[doc = "A claim line. Either a simple product or service or a 'group' of details which can each be a simple items or groups of sub-details."]
3823 pub item: Option<Vec<ClaimItem>>,
3824 #[doc = "The total value of the all the items in the claim."]
3825 pub total: Option<Box<Money>>,
3826}
3827#[derive(
3828 Clone,
3829 Reflect,
3830 Debug,
3831 Default,
3832 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3833 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3834)]
3835#[fhir_serialize_type = "complex"]
3836#[doc = "If this item is a group then the values here are a summary of the adjudication of the detail items. If this item is a simple product or service then this is the result of the adjudication of this item."]
3837pub struct ClaimResponseItemAdjudication {
3838 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
3839 pub id: Option<String>,
3840 #[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 manageable, 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."]
3841 pub extension: Option<Vec<Box<Extension>>>,
3842 #[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 manageable, 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)."]
3843 pub modifierExtension: Option<Vec<Box<Extension>>>,
3844 #[doc = "A code to indicate the information type of this adjudication record. Information types may include the value submitted, maximum values or percentages allowed or payable under the plan, amounts that: the patient is responsible for in aggregate or pertaining to this item; amounts paid by other coverages; and, the benefit payable for this item."]
3845 pub category: Box<CodeableConcept>,
3846 #[doc = "A code supporting the understanding of the adjudication result and explaining variance from expected amount."]
3847 pub reason: Option<Box<CodeableConcept>>,
3848 #[doc = "Monetary amount associated with the category."]
3849 pub amount: Option<Box<Money>>,
3850 #[primitive]
3851 #[doc = "A non-monetary value associated with the category. Mutually exclusive to the amount element above."]
3852 pub value: Option<Box<FHIRDecimal>>,
3853}
3854#[derive(
3855 Clone,
3856 Reflect,
3857 Debug,
3858 Default,
3859 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3860 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3861)]
3862#[fhir_serialize_type = "complex"]
3863#[doc = "A sub-detail adjudication of a simple product or service."]
3864pub struct ClaimResponseItemDetailSubDetail {
3865 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
3866 pub id: Option<String>,
3867 #[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 manageable, 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."]
3868 pub extension: Option<Vec<Box<Extension>>>,
3869 #[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 manageable, 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)."]
3870 pub modifierExtension: Option<Vec<Box<Extension>>>,
3871 #[primitive]
3872 #[doc = "A number to uniquely reference the claim sub-detail entry."]
3873 pub subDetailSequence: Box<FHIRPositiveInt>,
3874 #[primitive]
3875 #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
3876 pub noteNumber: Option<Vec<Box<FHIRPositiveInt>>>,
3877 #[doc = "The adjudication results."]
3878 pub adjudication: Option<Vec<ClaimResponseItemAdjudication>>,
3879}
3880#[derive(
3881 Clone,
3882 Reflect,
3883 Debug,
3884 Default,
3885 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3886 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3887)]
3888#[fhir_serialize_type = "complex"]
3889#[doc = "A claim detail. Either a simple (a product or service) or a 'group' of sub-details which are simple items."]
3890pub struct ClaimResponseItemDetail {
3891 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
3892 pub id: Option<String>,
3893 #[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 manageable, 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."]
3894 pub extension: Option<Vec<Box<Extension>>>,
3895 #[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 manageable, 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)."]
3896 pub modifierExtension: Option<Vec<Box<Extension>>>,
3897 #[primitive]
3898 #[doc = "A number to uniquely reference the claim detail entry."]
3899 pub detailSequence: Box<FHIRPositiveInt>,
3900 #[primitive]
3901 #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
3902 pub noteNumber: Option<Vec<Box<FHIRPositiveInt>>>,
3903 #[cardinality(min = 1usize)]
3904 #[doc = "The adjudication results."]
3905 pub adjudication: Vec<ClaimResponseItemAdjudication>,
3906 #[doc = "A sub-detail adjudication of a simple product or service."]
3907 pub subDetail: Option<Vec<ClaimResponseItemDetailSubDetail>>,
3908}
3909#[derive(
3910 Clone,
3911 Reflect,
3912 Debug,
3913 Default,
3914 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3915 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3916)]
3917#[fhir_serialize_type = "complex"]
3918#[doc = "A claim line. Either a simple (a product or service) or a 'group' of details which can also be a simple items or groups of sub-details."]
3919pub struct ClaimResponseItem {
3920 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
3921 pub id: Option<String>,
3922 #[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 manageable, 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."]
3923 pub extension: Option<Vec<Box<Extension>>>,
3924 #[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 manageable, 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)."]
3925 pub modifierExtension: Option<Vec<Box<Extension>>>,
3926 #[primitive]
3927 #[doc = "A number to uniquely reference the claim item entries."]
3928 pub itemSequence: Box<FHIRPositiveInt>,
3929 #[primitive]
3930 #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
3931 pub noteNumber: Option<Vec<Box<FHIRPositiveInt>>>,
3932 #[cardinality(min = 1usize)]
3933 #[doc = "If this item is a group then the values here are a summary of the adjudication of the detail items. If this item is a simple product or service then this is the result of the adjudication of this item."]
3934 pub adjudication: Vec<ClaimResponseItemAdjudication>,
3935 #[doc = "A claim detail. Either a simple (a product or service) or a 'group' of sub-details which are simple items."]
3936 pub detail: Option<Vec<ClaimResponseItemDetail>>,
3937}
3938#[derive(
3939 Clone,
3940 Reflect,
3941 Debug,
3942 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3943 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3944)]
3945#[fhir_serialize_type = "typechoice"]
3946#[type_choice_field_name = "serviced"]
3947pub enum ClaimResponseAddItemServicedTypeChoice {
3948 Date(Box<FHIRDate>),
3949 Period(Box<Period>),
3950}
3951impl Default for ClaimResponseAddItemServicedTypeChoice {
3952 fn default() -> Self {
3953 ClaimResponseAddItemServicedTypeChoice::Date(Box::new(Default::default()))
3954 }
3955}
3956#[derive(
3957 Clone,
3958 Reflect,
3959 Debug,
3960 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3961 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3962)]
3963#[fhir_serialize_type = "typechoice"]
3964#[type_choice_field_name = "location"]
3965pub enum ClaimResponseAddItemLocationTypeChoice {
3966 CodeableConcept(Box<CodeableConcept>),
3967 Address(Box<Address>),
3968 # [reference (targets = ["Location"])]
3969 Reference(Box<Reference>),
3970}
3971impl Default for ClaimResponseAddItemLocationTypeChoice {
3972 fn default() -> Self {
3973 ClaimResponseAddItemLocationTypeChoice::CodeableConcept(Box::new(Default::default()))
3974 }
3975}
3976#[derive(
3977 Clone,
3978 Reflect,
3979 Debug,
3980 Default,
3981 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
3982 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
3983)]
3984#[fhir_serialize_type = "complex"]
3985#[doc = "The third-tier service adjudications for payor added services."]
3986pub struct ClaimResponseAddItemDetailSubDetail {
3987 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
3988 pub id: Option<String>,
3989 #[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 manageable, 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."]
3990 pub extension: Option<Vec<Box<Extension>>>,
3991 #[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 manageable, 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)."]
3992 pub modifierExtension: Option<Vec<Box<Extension>>>,
3993 #[doc = "When the value is a group code then this item collects a set of related claim details, otherwise this contains the product, service, drug or other billing code for the item."]
3994 pub productOrService: Box<CodeableConcept>,
3995 #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
3996 pub modifier: Option<Vec<Box<CodeableConcept>>>,
3997 #[doc = "The number of repetitions of a service or product."]
3998 pub quantity: Option<Box<Quantity>>,
3999 #[doc = "If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group."]
4000 pub unitPrice: Option<Box<Money>>,
4001 #[primitive]
4002 #[doc = "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount."]
4003 pub factor: Option<Box<FHIRDecimal>>,
4004 #[doc = "The quantity times the unit price for an additional service or product or charge."]
4005 pub net: Option<Box<Money>>,
4006 #[primitive]
4007 #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
4008 pub noteNumber: Option<Vec<Box<FHIRPositiveInt>>>,
4009 #[cardinality(min = 1usize)]
4010 #[doc = "The adjudication results."]
4011 pub adjudication: Vec<ClaimResponseItemAdjudication>,
4012}
4013#[derive(
4014 Clone,
4015 Reflect,
4016 Debug,
4017 Default,
4018 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4019 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4020)]
4021#[fhir_serialize_type = "complex"]
4022#[doc = "The second-tier service adjudications for payor added services."]
4023pub struct ClaimResponseAddItemDetail {
4024 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
4025 pub id: Option<String>,
4026 #[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 manageable, 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."]
4027 pub extension: Option<Vec<Box<Extension>>>,
4028 #[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 manageable, 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)."]
4029 pub modifierExtension: Option<Vec<Box<Extension>>>,
4030 #[doc = "When the value is a group code then this item collects a set of related claim details, otherwise this contains the product, service, drug or other billing code for the item."]
4031 pub productOrService: Box<CodeableConcept>,
4032 #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
4033 pub modifier: Option<Vec<Box<CodeableConcept>>>,
4034 #[doc = "The number of repetitions of a service or product."]
4035 pub quantity: Option<Box<Quantity>>,
4036 #[doc = "If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group."]
4037 pub unitPrice: Option<Box<Money>>,
4038 #[primitive]
4039 #[doc = "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount."]
4040 pub factor: Option<Box<FHIRDecimal>>,
4041 #[doc = "The quantity times the unit price for an additional service or product or charge."]
4042 pub net: Option<Box<Money>>,
4043 #[primitive]
4044 #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
4045 pub noteNumber: Option<Vec<Box<FHIRPositiveInt>>>,
4046 #[cardinality(min = 1usize)]
4047 #[doc = "The adjudication results."]
4048 pub adjudication: Vec<ClaimResponseItemAdjudication>,
4049 #[doc = "The third-tier service adjudications for payor added services."]
4050 pub subDetail: Option<Vec<ClaimResponseAddItemDetailSubDetail>>,
4051}
4052#[derive(
4053 Clone,
4054 Reflect,
4055 Debug,
4056 Default,
4057 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4058 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4059)]
4060#[fhir_serialize_type = "complex"]
4061#[doc = "The first-tier service adjudications for payor added product or service lines."]
4062pub struct ClaimResponseAddItem {
4063 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
4064 pub id: Option<String>,
4065 #[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 manageable, 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."]
4066 pub extension: Option<Vec<Box<Extension>>>,
4067 #[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 manageable, 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)."]
4068 pub modifierExtension: Option<Vec<Box<Extension>>>,
4069 #[primitive]
4070 #[doc = "Claim items which this service line is intended to replace."]
4071 pub itemSequence: Option<Vec<Box<FHIRPositiveInt>>>,
4072 #[primitive]
4073 #[doc = "The sequence number of the details within the claim item which this line is intended to replace."]
4074 pub detailSequence: Option<Vec<Box<FHIRPositiveInt>>>,
4075 #[primitive]
4076 #[doc = "The sequence number of the sub-details within the details within the claim item which this line is intended to replace."]
4077 pub subdetailSequence: Option<Vec<Box<FHIRPositiveInt>>>,
4078 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
4079 #[doc = "The providers who are authorized for the services rendered to the patient."]
4080 pub provider: Option<Vec<Box<Reference>>>,
4081 #[doc = "When the value is a group code then this item collects a set of related claim details, otherwise this contains the product, service, drug or other billing code for the item."]
4082 pub productOrService: Box<CodeableConcept>,
4083 #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
4084 pub modifier: Option<Vec<Box<CodeableConcept>>>,
4085 #[doc = "Identifies the program under which this may be recovered."]
4086 pub programCode: Option<Vec<Box<CodeableConcept>>>,
4087 # [type_choice_variants (complex = ["servicedPeriod"] , primitive = ["servicedDate"])]
4088 #[doc = "The date or dates when the service or product was supplied, performed or completed."]
4089 pub serviced: Option<ClaimResponseAddItemServicedTypeChoice>,
4090 # [type_choice_variants (complex = ["locationCodeableConcept" , "locationAddress" , "locationReference"] , primitive = [])]
4091 #[doc = "Where the product or service was provided."]
4092 pub location: Option<ClaimResponseAddItemLocationTypeChoice>,
4093 #[doc = "The number of repetitions of a service or product."]
4094 pub quantity: Option<Box<Quantity>>,
4095 #[doc = "If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group."]
4096 pub unitPrice: Option<Box<Money>>,
4097 #[primitive]
4098 #[doc = "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount."]
4099 pub factor: Option<Box<FHIRDecimal>>,
4100 #[doc = "The quantity times the unit price for an additional service or product or charge."]
4101 pub net: Option<Box<Money>>,
4102 #[doc = "Physical service site on the patient (limb, tooth, etc.)."]
4103 pub bodySite: Option<Box<CodeableConcept>>,
4104 #[doc = "A region or surface of the bodySite, e.g. limb region or tooth surface(s)."]
4105 pub subSite: Option<Vec<Box<CodeableConcept>>>,
4106 #[primitive]
4107 #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
4108 pub noteNumber: Option<Vec<Box<FHIRPositiveInt>>>,
4109 #[cardinality(min = 1usize)]
4110 #[doc = "The adjudication results."]
4111 pub adjudication: Vec<ClaimResponseItemAdjudication>,
4112 #[doc = "The second-tier service adjudications for payor added services."]
4113 pub detail: Option<Vec<ClaimResponseAddItemDetail>>,
4114}
4115#[derive(
4116 Clone,
4117 Reflect,
4118 Debug,
4119 Default,
4120 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4121 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4122)]
4123#[fhir_serialize_type = "complex"]
4124#[doc = "Categorized monetary totals for the adjudication."]
4125pub struct ClaimResponseTotal {
4126 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
4127 pub id: Option<String>,
4128 #[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 manageable, 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."]
4129 pub extension: Option<Vec<Box<Extension>>>,
4130 #[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 manageable, 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)."]
4131 pub modifierExtension: Option<Vec<Box<Extension>>>,
4132 #[doc = "A code to indicate the information type of this adjudication record. Information types may include: the value submitted, maximum values or percentages allowed or payable under the plan, amounts that the patient is responsible for in aggregate or pertaining to this item, amounts paid by other coverages, and the benefit payable for this item."]
4133 pub category: Box<CodeableConcept>,
4134 #[doc = "Monetary total amount associated with the category."]
4135 pub amount: Box<Money>,
4136}
4137#[derive(
4138 Clone,
4139 Reflect,
4140 Debug,
4141 Default,
4142 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4143 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4144)]
4145#[fhir_serialize_type = "complex"]
4146#[doc = "Payment details for the adjudication of the claim."]
4147pub struct ClaimResponsePayment {
4148 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
4149 pub id: Option<String>,
4150 #[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 manageable, 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."]
4151 pub extension: Option<Vec<Box<Extension>>>,
4152 #[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 manageable, 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)."]
4153 pub modifierExtension: Option<Vec<Box<Extension>>>,
4154 #[rename_field = "type"]
4155 #[doc = "Whether this represents partial or complete payment of the benefits payable."]
4156 pub type_: Box<CodeableConcept>,
4157 #[doc = "Total amount of all adjustments to this payment included in this transaction which are not related to this claim's adjudication."]
4158 pub adjustment: Option<Box<Money>>,
4159 #[doc = "Reason for the payment adjustment."]
4160 pub adjustmentReason: Option<Box<CodeableConcept>>,
4161 #[primitive]
4162 #[doc = "Estimated date the payment will be issued or the actual issue date of payment."]
4163 pub date: Option<Box<FHIRDate>>,
4164 #[doc = "Benefits payable less any payment adjustment."]
4165 pub amount: Box<Money>,
4166 #[rename_field = "identifier"]
4167 #[doc = "Issuer's unique identifier for the payment instrument."]
4168 pub identifier_: Option<Box<Identifier>>,
4169}
4170#[derive(
4171 Clone,
4172 Reflect,
4173 Debug,
4174 Default,
4175 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4176 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4177)]
4178#[fhir_serialize_type = "complex"]
4179#[doc = "A note that describes or explains adjudication results in a human readable form."]
4180pub struct ClaimResponseProcessNote {
4181 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
4182 pub id: Option<String>,
4183 #[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 manageable, 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."]
4184 pub extension: Option<Vec<Box<Extension>>>,
4185 #[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 manageable, 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)."]
4186 pub modifierExtension: Option<Vec<Box<Extension>>>,
4187 #[primitive]
4188 #[doc = "A number to uniquely identify a note entry."]
4189 pub number: Option<Box<FHIRPositiveInt>>,
4190 #[rename_field = "type"]
4191 #[primitive]
4192 #[doc = "The business purpose of the note text."]
4193 pub type_: Option<Box<terminology::NoteType>>,
4194 #[primitive]
4195 #[doc = "The explanation or description associated with the processing."]
4196 pub text: Box<FHIRString>,
4197 #[doc = "A code to define the language used in the text of the note."]
4198 pub language: Option<Box<CodeableConcept>>,
4199}
4200#[derive(
4201 Clone,
4202 Reflect,
4203 Debug,
4204 Default,
4205 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4206 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4207)]
4208#[fhir_serialize_type = "complex"]
4209#[doc = "Financial instruments for reimbursement for the health care products and services specified on the claim."]
4210pub struct ClaimResponseInsurance {
4211 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
4212 pub id: Option<String>,
4213 #[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 manageable, 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."]
4214 pub extension: Option<Vec<Box<Extension>>>,
4215 #[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 manageable, 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)."]
4216 pub modifierExtension: Option<Vec<Box<Extension>>>,
4217 #[primitive]
4218 #[doc = "A number to uniquely identify insurance entries and provide a sequence of coverages to convey coordination of benefit order."]
4219 pub sequence: Box<FHIRPositiveInt>,
4220 #[primitive]
4221 #[doc = "A flag to indicate that this Coverage is to be used for adjudication of this claim when set to true."]
4222 pub focal: Box<FHIRBoolean>,
4223 # [reference (targets = ["Coverage"])]
4224 #[doc = "Reference to the insurance card level information contained in the Coverage resource. The coverage issuing insurer will use these details to locate the patient's actual coverage within the insurer's information system."]
4225 pub coverage: Box<Reference>,
4226 #[primitive]
4227 #[doc = "A business agreement number established between the provider and the insurer for special business processing purposes."]
4228 pub businessArrangement: Option<Box<FHIRString>>,
4229 # [reference (targets = ["ClaimResponse"])]
4230 #[doc = "The result of the adjudication of the line items for the Coverage specified in this insurance."]
4231 pub claimResponse: Option<Box<Reference>>,
4232}
4233#[derive(
4234 Clone,
4235 Reflect,
4236 Debug,
4237 Default,
4238 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4239 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4240)]
4241#[fhir_serialize_type = "complex"]
4242#[doc = "Errors encountered during the processing of the adjudication."]
4243pub struct ClaimResponseError {
4244 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
4245 pub id: Option<String>,
4246 #[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 manageable, 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."]
4247 pub extension: Option<Vec<Box<Extension>>>,
4248 #[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 manageable, 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)."]
4249 pub modifierExtension: Option<Vec<Box<Extension>>>,
4250 #[primitive]
4251 #[doc = "The sequence number of the line item submitted which contains the error. This value is omitted when the error occurs outside of the item structure."]
4252 pub itemSequence: Option<Box<FHIRPositiveInt>>,
4253 #[primitive]
4254 #[doc = "The sequence number of the detail within the line item submitted which contains the error. This value is omitted when the error occurs outside of the item structure."]
4255 pub detailSequence: Option<Box<FHIRPositiveInt>>,
4256 #[primitive]
4257 #[doc = "The sequence number of the sub-detail within the detail within the line item submitted which contains the error. This value is omitted when the error occurs outside of the item structure."]
4258 pub subDetailSequence: Option<Box<FHIRPositiveInt>>,
4259 #[doc = "An error code, from a specified code system, which details why the claim could not be adjudicated."]
4260 pub code: Box<CodeableConcept>,
4261}
4262#[derive(
4263 Clone,
4264 Reflect,
4265 Debug,
4266 Default,
4267 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4268 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4269)]
4270#[fhir_serialize_type = "resource"]
4271#[doc = "This resource provides the adjudication details from the processing of a Claim resource."]
4272pub struct ClaimResponse {
4273 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
4274 pub id: Option<String>,
4275 #[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."]
4276 pub meta: Option<Box<Meta>>,
4277 #[primitive]
4278 #[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."]
4279 pub implicitRules: Option<Box<FHIRUri>>,
4280 #[primitive]
4281 #[doc = "The base language in which the resource is written."]
4282 pub language: Option<Box<FHIRCode>>,
4283 #[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."]
4284 pub text: Option<Box<Narrative>>,
4285 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
4286 pub contained: Option<Vec<Box<Resource>>>,
4287 #[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 manageable, 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."]
4288 pub extension: Option<Vec<Box<Extension>>>,
4289 #[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 manageable, 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)."]
4290 pub modifierExtension: Option<Vec<Box<Extension>>>,
4291 #[rename_field = "identifier"]
4292 #[doc = "A unique identifier assigned to this claim response."]
4293 pub identifier_: Option<Vec<Box<Identifier>>>,
4294 #[primitive]
4295 #[doc = "The status of the resource instance."]
4296 pub status: Box<terminology::FmStatus>,
4297 #[rename_field = "type"]
4298 #[doc = "A finer grained suite of claim type codes which may convey additional information such as Inpatient vs Outpatient and/or a specialty service."]
4299 pub type_: Box<CodeableConcept>,
4300 #[doc = "A finer grained suite of claim type codes which may convey additional information such as Inpatient vs Outpatient and/or a specialty service."]
4301 pub subType: Option<Box<CodeableConcept>>,
4302 #[rename_field = "use"]
4303 #[primitive]
4304 #[doc = "A code to indicate whether the nature of the request is: to request adjudication of products and services previously rendered; or requesting authorization and adjudication for provision in the future; or requesting the non-binding adjudication of the listed products and services which could be provided in the future."]
4305 pub use_: Box<terminology::ClaimUse>,
4306 # [reference (targets = ["Patient"])]
4307 #[doc = "The party to whom the professional services and/or products have been supplied or are being considered and for whom actual for facast reimbursement is sought."]
4308 pub patient: Box<Reference>,
4309 #[primitive]
4310 #[doc = "The date this resource was created."]
4311 pub created: Box<FHIRDateTime>,
4312 # [reference (targets = ["Organization"])]
4313 #[doc = "The party responsible for authorization, adjudication and reimbursement."]
4314 pub insurer: Box<Reference>,
4315 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
4316 #[doc = "The provider which is responsible for the claim, predetermination or preauthorization."]
4317 pub requestor: Option<Box<Reference>>,
4318 # [reference (targets = ["Claim"])]
4319 #[doc = "Original request resource reference."]
4320 pub request: Option<Box<Reference>>,
4321 #[primitive]
4322 #[doc = "The outcome of the claim, predetermination, or preauthorization processing."]
4323 pub outcome: Box<terminology::RemittanceOutcome>,
4324 #[primitive]
4325 #[doc = "A human readable description of the status of the adjudication."]
4326 pub disposition: Option<Box<FHIRString>>,
4327 #[primitive]
4328 #[doc = "Reference from the Insurer which is used in later communications which refers to this adjudication."]
4329 pub preAuthRef: Option<Box<FHIRString>>,
4330 #[doc = "The time frame during which this authorization is effective."]
4331 pub preAuthPeriod: Option<Box<Period>>,
4332 #[doc = "Type of Party to be reimbursed: subscriber, provider, other."]
4333 pub payeeType: Option<Box<CodeableConcept>>,
4334 #[doc = "A claim line. Either a simple (a product or service) or a 'group' of details which can also be a simple items or groups of sub-details."]
4335 pub item: Option<Vec<ClaimResponseItem>>,
4336 #[doc = "The first-tier service adjudications for payor added product or service lines."]
4337 pub addItem: Option<Vec<ClaimResponseAddItem>>,
4338 #[doc = "The adjudication results which are presented at the header level rather than at the line-item or add-item levels."]
4339 pub adjudication: Option<Vec<ClaimResponseItemAdjudication>>,
4340 #[doc = "Categorized monetary totals for the adjudication."]
4341 pub total: Option<Vec<ClaimResponseTotal>>,
4342 #[doc = "Payment details for the adjudication of the claim."]
4343 pub payment: Option<ClaimResponsePayment>,
4344 #[doc = "A code, used only on a response to a preauthorization, to indicate whether the benefits payable have been reserved and for whom."]
4345 pub fundsReserve: Option<Box<CodeableConcept>>,
4346 #[doc = "A code for the form to be used for printing the content."]
4347 pub formCode: Option<Box<CodeableConcept>>,
4348 #[doc = "The actual form, by reference or inclusion, for printing the content or an EOB."]
4349 pub form: Option<Box<Attachment>>,
4350 #[doc = "A note that describes or explains adjudication results in a human readable form."]
4351 pub processNote: Option<Vec<ClaimResponseProcessNote>>,
4352 # [reference (targets = ["CommunicationRequest"])]
4353 #[doc = "Request for additional supporting or authorizing information."]
4354 pub communicationRequest: Option<Vec<Box<Reference>>>,
4355 #[doc = "Financial instruments for reimbursement for the health care products and services specified on the claim."]
4356 pub insurance: Option<Vec<ClaimResponseInsurance>>,
4357 #[doc = "Errors encountered during the processing of the adjudication."]
4358 pub error: Option<Vec<ClaimResponseError>>,
4359}
4360#[derive(
4361 Clone,
4362 Reflect,
4363 Debug,
4364 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4365 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4366)]
4367#[fhir_serialize_type = "typechoice"]
4368#[type_choice_field_name = "effective"]
4369pub enum ClinicalImpressionEffectiveTypeChoice {
4370 DateTime(Box<FHIRDateTime>),
4371 Period(Box<Period>),
4372}
4373impl Default for ClinicalImpressionEffectiveTypeChoice {
4374 fn default() -> Self {
4375 ClinicalImpressionEffectiveTypeChoice::DateTime(Box::new(Default::default()))
4376 }
4377}
4378#[derive(
4379 Clone,
4380 Reflect,
4381 Debug,
4382 Default,
4383 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4384 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4385)]
4386#[fhir_serialize_type = "complex"]
4387#[doc = "One or more sets of investigations (signs, symptoms, etc.). The actual grouping of investigations varies greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes."]
4388pub struct ClinicalImpressionInvestigation {
4389 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
4390 pub id: Option<String>,
4391 #[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 manageable, 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."]
4392 pub extension: Option<Vec<Box<Extension>>>,
4393 #[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 manageable, 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)."]
4394 pub modifierExtension: Option<Vec<Box<Extension>>>,
4395 #[doc = "A name/code for the group (\"set\") of investigations. Typically, this will be something like \"signs\", \"symptoms\", \"clinical\", \"diagnostic\", but the list is not constrained, and others such groups such as (exposure|family|travel|nutritional) history may be used."]
4396 pub code: Box<CodeableConcept>,
4397 # [reference (targets = ["Observation" , "QuestionnaireResponse" , "FamilyMemberHistory" , "DiagnosticReport" , "RiskAssessment" , "ImagingStudy" , "Media"])]
4398 #[doc = "A record of a specific investigation that was undertaken."]
4399 pub item: Option<Vec<Box<Reference>>>,
4400}
4401#[derive(
4402 Clone,
4403 Reflect,
4404 Debug,
4405 Default,
4406 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4407 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4408)]
4409#[fhir_serialize_type = "complex"]
4410#[doc = "Specific findings or diagnoses that were considered likely or relevant to ongoing treatment."]
4411pub struct ClinicalImpressionFinding {
4412 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
4413 pub id: Option<String>,
4414 #[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 manageable, 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."]
4415 pub extension: Option<Vec<Box<Extension>>>,
4416 #[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 manageable, 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)."]
4417 pub modifierExtension: Option<Vec<Box<Extension>>>,
4418 #[doc = "Specific text or code for finding or diagnosis, which may include ruled-out or resolved conditions."]
4419 pub itemCodeableConcept: Option<Box<CodeableConcept>>,
4420 # [reference (targets = ["Condition" , "Observation" , "Media"])]
4421 #[doc = "Specific reference for finding or diagnosis, which may include ruled-out or resolved conditions."]
4422 pub itemReference: Option<Box<Reference>>,
4423 #[primitive]
4424 #[doc = "Which investigations support finding or diagnosis."]
4425 pub basis: Option<Box<FHIRString>>,
4426}
4427#[derive(
4428 Clone,
4429 Reflect,
4430 Debug,
4431 Default,
4432 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4433 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4434)]
4435#[fhir_serialize_type = "resource"]
4436#[doc = "A record of a clinical assessment performed to determine what problem(s) may affect the patient and before planning the treatments or management strategies that are best to manage a patient's condition. Assessments are often 1:1 with a clinical consultation / encounter, but this varies greatly depending on the clinical workflow. This resource is called \"ClinicalImpression\" rather than \"ClinicalAssessment\" to avoid confusion with the recording of assessment tools such as Apgar score."]
4437pub struct ClinicalImpression {
4438 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
4439 pub id: Option<String>,
4440 #[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."]
4441 pub meta: Option<Box<Meta>>,
4442 #[primitive]
4443 #[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."]
4444 pub implicitRules: Option<Box<FHIRUri>>,
4445 #[primitive]
4446 #[doc = "The base language in which the resource is written."]
4447 pub language: Option<Box<FHIRCode>>,
4448 #[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."]
4449 pub text: Option<Box<Narrative>>,
4450 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
4451 pub contained: Option<Vec<Box<Resource>>>,
4452 #[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 manageable, 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."]
4453 pub extension: Option<Vec<Box<Extension>>>,
4454 #[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 manageable, 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)."]
4455 pub modifierExtension: Option<Vec<Box<Extension>>>,
4456 #[rename_field = "identifier"]
4457 #[doc = "Business identifiers assigned to this clinical impression by the performer or other systems which remain constant as the resource is updated and propagates from server to server."]
4458 pub identifier_: Option<Vec<Box<Identifier>>>,
4459 #[primitive]
4460 #[doc = "Identifies the workflow status of the assessment."]
4461 pub status: Box<terminology::ClinicalimpressionStatus>,
4462 #[doc = "Captures the reason for the current state of the ClinicalImpression."]
4463 pub statusReason: Option<Box<CodeableConcept>>,
4464 #[doc = "Categorizes the type of clinical assessment performed."]
4465 pub code: Option<Box<CodeableConcept>>,
4466 #[primitive]
4467 #[doc = "A summary of the context and/or cause of the assessment - why / where it was performed, and what patient events/status prompted it."]
4468 pub description: Option<Box<FHIRString>>,
4469 # [reference (targets = ["Patient" , "Group"])]
4470 #[doc = "The patient or group of individuals assessed as part of this record."]
4471 pub subject: Box<Reference>,
4472 # [reference (targets = ["Encounter"])]
4473 #[doc = "The Encounter during which this ClinicalImpression was created or to which the creation of this record is tightly associated."]
4474 pub encounter: Option<Box<Reference>>,
4475 # [type_choice_variants (complex = ["effectivePeriod"] , primitive = ["effectiveDateTime"])]
4476 #[doc = "The point in time or period over which the subject was assessed."]
4477 pub effective: Option<ClinicalImpressionEffectiveTypeChoice>,
4478 #[primitive]
4479 #[doc = "Indicates when the documentation of the assessment was complete."]
4480 pub date: Option<Box<FHIRDateTime>>,
4481 # [reference (targets = ["Practitioner" , "PractitionerRole"])]
4482 #[doc = "The clinician performing the assessment."]
4483 pub assessor: Option<Box<Reference>>,
4484 # [reference (targets = ["ClinicalImpression"])]
4485 #[doc = "A reference to the last assessment that was conducted on this patient. Assessments are often/usually ongoing in nature; a care provider (practitioner or team) will make new assessments on an ongoing basis as new data arises or the patient's conditions changes."]
4486 pub previous: Option<Box<Reference>>,
4487 # [reference (targets = ["Condition" , "AllergyIntolerance"])]
4488 #[doc = "A list of the relevant problems/conditions for a patient."]
4489 pub problem: Option<Vec<Box<Reference>>>,
4490 #[doc = "One or more sets of investigations (signs, symptoms, etc.). The actual grouping of investigations varies greatly depending on the type and context of the assessment. These investigations may include data generated during the assessment process, or data previously generated and recorded that is pertinent to the outcomes."]
4491 pub investigation: Option<Vec<ClinicalImpressionInvestigation>>,
4492 #[primitive]
4493 #[doc = "Reference to a specific published clinical protocol that was followed during this assessment, and/or that provides evidence in support of the diagnosis."]
4494 pub protocol: Option<Vec<Box<FHIRUri>>>,
4495 #[primitive]
4496 #[doc = "A text summary of the investigations and the diagnosis."]
4497 pub summary: Option<Box<FHIRString>>,
4498 #[doc = "Specific findings or diagnoses that were considered likely or relevant to ongoing treatment."]
4499 pub finding: Option<Vec<ClinicalImpressionFinding>>,
4500 #[doc = "Estimate of likely outcome."]
4501 pub prognosisCodeableConcept: Option<Vec<Box<CodeableConcept>>>,
4502 # [reference (targets = ["RiskAssessment"])]
4503 #[doc = "RiskAssessment expressing likely outcome."]
4504 pub prognosisReference: Option<Vec<Box<Reference>>>,
4505 # [reference (targets = ["Resource"])]
4506 #[doc = "Information supporting the clinical impression."]
4507 pub supportingInfo: Option<Vec<Box<Reference>>>,
4508 #[doc = "Commentary about the impression, typically recorded after the impression itself was made, though supplemental notes by the original author could also appear."]
4509 pub note: Option<Vec<Box<Annotation>>>,
4510}
4511#[derive(
4512 Clone,
4513 Reflect,
4514 Debug,
4515 Default,
4516 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4517 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4518)]
4519#[fhir_serialize_type = "complex"]
4520#[doc = "A filter that can be used in a value set compose statement when selecting concepts using a filter."]
4521pub struct CodeSystemFilter {
4522 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
4523 pub id: Option<String>,
4524 #[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 manageable, 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."]
4525 pub extension: Option<Vec<Box<Extension>>>,
4526 #[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 manageable, 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)."]
4527 pub modifierExtension: Option<Vec<Box<Extension>>>,
4528 #[primitive]
4529 #[doc = "The code that identifies this filter when it is used as a filter in [ValueSet](valueset.html#).compose.include.filter."]
4530 pub code: Box<FHIRCode>,
4531 #[primitive]
4532 #[doc = "A description of how or why the filter is used."]
4533 pub description: Option<Box<FHIRString>>,
4534 #[primitive]
4535 #[cardinality(min = 1usize)]
4536 #[doc = "A list of operators that can be used with the filter."]
4537 pub operator: Vec<Box<terminology::FilterOperator>>,
4538 #[primitive]
4539 #[doc = "A description of what the value for the filter should be."]
4540 pub value: Box<FHIRString>,
4541}
4542#[derive(
4543 Clone,
4544 Reflect,
4545 Debug,
4546 Default,
4547 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4548 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4549)]
4550#[fhir_serialize_type = "complex"]
4551#[doc = "A property defines an additional slot through which additional information can be provided about a concept."]
4552pub struct CodeSystemProperty {
4553 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
4554 pub id: Option<String>,
4555 #[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 manageable, 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."]
4556 pub extension: Option<Vec<Box<Extension>>>,
4557 #[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 manageable, 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)."]
4558 pub modifierExtension: Option<Vec<Box<Extension>>>,
4559 #[primitive]
4560 #[doc = "A code that is used to identify the property. The code is used internally (in CodeSystem.concept.property.code) and also externally, such as in property filters."]
4561 pub code: Box<FHIRCode>,
4562 #[primitive]
4563 #[doc = "Reference to the formal meaning of the property. One possible source of meaning is the [Concept Properties](codesystem-concept-properties.html) code system."]
4564 pub uri: Option<Box<FHIRUri>>,
4565 #[primitive]
4566 #[doc = "A description of the property- why it is defined, and how its value might be used."]
4567 pub description: Option<Box<FHIRString>>,
4568 #[rename_field = "type"]
4569 #[primitive]
4570 #[doc = "The type of the property value. Properties of type \"code\" contain a code defined by the code system (e.g. a reference to another defined concept)."]
4571 pub type_: Box<terminology::ConceptPropertyType>,
4572}
4573#[derive(
4574 Clone,
4575 Reflect,
4576 Debug,
4577 Default,
4578 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4579 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4580)]
4581#[fhir_serialize_type = "complex"]
4582#[doc = "Additional representations for the concept - other languages, aliases, specialized purposes, used for particular purposes, etc."]
4583pub struct CodeSystemConceptDesignation {
4584 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
4585 pub id: Option<String>,
4586 #[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 manageable, 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."]
4587 pub extension: Option<Vec<Box<Extension>>>,
4588 #[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 manageable, 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)."]
4589 pub modifierExtension: Option<Vec<Box<Extension>>>,
4590 #[primitive]
4591 #[doc = "The language this designation is defined for."]
4592 pub language: Option<Box<FHIRCode>>,
4593 #[rename_field = "use"]
4594 #[doc = "A code that details how this designation would be used."]
4595 pub use_: Option<Box<Coding>>,
4596 #[primitive]
4597 #[doc = "The text value for this designation."]
4598 pub value: Box<FHIRString>,
4599}
4600#[derive(
4601 Clone,
4602 Reflect,
4603 Debug,
4604 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4605 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4606)]
4607#[fhir_serialize_type = "typechoice"]
4608#[type_choice_field_name = "value"]
4609pub enum CodeSystemConceptPropertyValueTypeChoice {
4610 Code(Box<FHIRCode>),
4611 Coding(Box<Coding>),
4612 String(Box<FHIRString>),
4613 Integer(Box<FHIRInteger>),
4614 Boolean(Box<FHIRBoolean>),
4615 DateTime(Box<FHIRDateTime>),
4616 Decimal(Box<FHIRDecimal>),
4617}
4618impl Default for CodeSystemConceptPropertyValueTypeChoice {
4619 fn default() -> Self {
4620 CodeSystemConceptPropertyValueTypeChoice::Code(Box::new(Default::default()))
4621 }
4622}
4623#[derive(
4624 Clone,
4625 Reflect,
4626 Debug,
4627 Default,
4628 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4629 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4630)]
4631#[fhir_serialize_type = "complex"]
4632#[doc = "A property value for this concept."]
4633pub struct CodeSystemConceptProperty {
4634 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
4635 pub id: Option<String>,
4636 #[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 manageable, 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."]
4637 pub extension: Option<Vec<Box<Extension>>>,
4638 #[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 manageable, 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)."]
4639 pub modifierExtension: Option<Vec<Box<Extension>>>,
4640 #[primitive]
4641 #[doc = "A code that is a reference to CodeSystem.property.code."]
4642 pub code: Box<FHIRCode>,
4643 # [type_choice_variants (complex = ["valueCoding"] , primitive = ["valueCode" , "valueString" , "valueInteger" , "valueBoolean" , "valueDateTime" , "valueDecimal"])]
4644 #[doc = "The value of this property."]
4645 pub value: CodeSystemConceptPropertyValueTypeChoice,
4646}
4647#[derive(
4648 Clone,
4649 Reflect,
4650 Debug,
4651 Default,
4652 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4653 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4654)]
4655#[fhir_serialize_type = "complex"]
4656#[doc = "Concepts that are in the code system. The concept definitions are inherently hierarchical, but the definitions must be consulted to determine what the meanings of the hierarchical relationships are."]
4657pub struct CodeSystemConcept {
4658 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
4659 pub id: Option<String>,
4660 #[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 manageable, 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."]
4661 pub extension: Option<Vec<Box<Extension>>>,
4662 #[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 manageable, 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)."]
4663 pub modifierExtension: Option<Vec<Box<Extension>>>,
4664 #[primitive]
4665 #[doc = "A code - a text symbol - that uniquely identifies the concept within the code system."]
4666 pub code: Box<FHIRCode>,
4667 #[primitive]
4668 #[doc = "A human readable string that is the recommended default way to present this concept to a user."]
4669 pub display: Option<Box<FHIRString>>,
4670 #[primitive]
4671 #[doc = "The formal definition of the concept. The code system resource does not make formal definitions required, because of the prevalence of legacy systems. However, they are highly recommended, as without them there is no formal meaning associated with the concept."]
4672 pub definition: Option<Box<FHIRString>>,
4673 #[doc = "Additional representations for the concept - other languages, aliases, specialized purposes, used for particular purposes, etc."]
4674 pub designation: Option<Vec<CodeSystemConceptDesignation>>,
4675 #[doc = "A property value for this concept."]
4676 pub property: Option<Vec<CodeSystemConceptProperty>>,
4677 #[doc = "Defines children of a concept to produce a hierarchy of concepts. The nature of the relationships is variable (is-a/contains/categorizes) - see hierarchyMeaning."]
4678 pub concept: Option<Vec<CodeSystemConcept>>,
4679}
4680#[derive(
4681 Clone,
4682 Reflect,
4683 Debug,
4684 Default,
4685 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4686 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4687)]
4688#[fhir_serialize_type = "resource"]
4689#[doc = "The CodeSystem resource is used to declare the existence of and describe a code system or code system supplement and its key properties, and optionally define a part or all of its content."]
4690pub struct CodeSystem {
4691 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
4692 pub id: Option<String>,
4693 #[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."]
4694 pub meta: Option<Box<Meta>>,
4695 #[primitive]
4696 #[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."]
4697 pub implicitRules: Option<Box<FHIRUri>>,
4698 #[primitive]
4699 #[doc = "The base language in which the resource is written."]
4700 pub language: Option<Box<FHIRCode>>,
4701 #[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."]
4702 pub text: Option<Box<Narrative>>,
4703 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
4704 pub contained: Option<Vec<Box<Resource>>>,
4705 #[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 manageable, 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."]
4706 pub extension: Option<Vec<Box<Extension>>>,
4707 #[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 manageable, 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)."]
4708 pub modifierExtension: Option<Vec<Box<Extension>>>,
4709 #[primitive]
4710 #[doc = "An absolute URI that is used to identify this code system 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 at which an authoritative instance of this code system is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the code system is stored on different servers. This is used in [Coding](datatypes.html#Coding).system."]
4711 pub url: Option<Box<FHIRUri>>,
4712 #[rename_field = "identifier"]
4713 #[doc = "A formal identifier that is used to identify this code system when it is represented in other formats, or referenced in a specification, model, design or an instance."]
4714 pub identifier_: Option<Vec<Box<Identifier>>>,
4715 #[primitive]
4716 #[doc = "The identifier that is used to identify this version of the code system when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the code system 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. This is used in [Coding](datatypes.html#Coding).version."]
4717 pub version: Option<Box<FHIRString>>,
4718 #[primitive]
4719 #[doc = "A natural language name identifying the code system. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
4720 pub name: Option<Box<FHIRString>>,
4721 #[primitive]
4722 #[doc = "A short, descriptive, user-friendly title for the code system."]
4723 pub title: Option<Box<FHIRString>>,
4724 #[primitive]
4725 #[doc = "The date (and optionally time) when the code system resource was created or revised."]
4726 pub status: Box<terminology::PublicationStatus>,
4727 #[primitive]
4728 #[doc = "A Boolean value to indicate that this code system is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
4729 pub experimental: Option<Box<FHIRBoolean>>,
4730 #[primitive]
4731 #[doc = "The date (and optionally time) when the code system was published. 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 code system changes."]
4732 pub date: Option<Box<FHIRDateTime>>,
4733 #[primitive]
4734 #[doc = "The name of the organization or individual that published the code system."]
4735 pub publisher: Option<Box<FHIRString>>,
4736 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
4737 pub contact: Option<Vec<Box<ContactDetail>>>,
4738 #[primitive]
4739 #[doc = "A free text natural language description of the code system from a consumer's perspective."]
4740 pub description: Option<Box<FHIRMarkdown>>,
4741 #[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 code system instances."]
4742 pub useContext: Option<Vec<Box<UsageContext>>>,
4743 #[doc = "A legal or geographic region in which the code system is intended to be used."]
4744 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
4745 #[primitive]
4746 #[doc = "Explanation of why this code system is needed and why it has been designed as it has."]
4747 pub purpose: Option<Box<FHIRMarkdown>>,
4748 #[primitive]
4749 #[doc = "A copyright statement relating to the code system and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the code system."]
4750 pub copyright: Option<Box<FHIRMarkdown>>,
4751 #[primitive]
4752 #[doc = "If code comparison is case sensitive when codes within this system are compared to each other."]
4753 pub caseSensitive: Option<Box<FHIRBoolean>>,
4754 #[primitive]
4755 #[doc = "Canonical reference to the value set that contains the entire code system."]
4756 pub valueSet: Option<Box<FHIRCanonical>>,
4757 #[primitive]
4758 #[doc = "The meaning of the hierarchy of concepts as represented in this resource."]
4759 pub hierarchyMeaning: Option<Box<terminology::CodesystemHierarchyMeaning>>,
4760 #[primitive]
4761 #[doc = "The code system defines a compositional (post-coordination) grammar."]
4762 pub compositional: Option<Box<FHIRBoolean>>,
4763 #[primitive]
4764 #[doc = "This flag is used to signify that the code system does not commit to concept permanence across versions. If true, a version must be specified when referencing this code system."]
4765 pub versionNeeded: Option<Box<FHIRBoolean>>,
4766 #[primitive]
4767 #[doc = "The extent of the content of the code system (the concepts and codes it defines) are represented in this resource instance."]
4768 pub content: Box<terminology::CodesystemContentMode>,
4769 #[primitive]
4770 #[doc = "The canonical URL of the code system that this code system supplement is adding designations and properties to."]
4771 pub supplements: Option<Box<FHIRCanonical>>,
4772 #[primitive]
4773 #[doc = "The total number of concepts defined by the code system. Where the code system has a compositional grammar, the basis of this count is defined by the system steward."]
4774 pub count: Option<Box<FHIRUnsignedInt>>,
4775 #[doc = "A filter that can be used in a value set compose statement when selecting concepts using a filter."]
4776 pub filter: Option<Vec<CodeSystemFilter>>,
4777 #[doc = "A property defines an additional slot through which additional information can be provided about a concept."]
4778 pub property: Option<Vec<CodeSystemProperty>>,
4779 #[doc = "Concepts that are in the code system. The concept definitions are inherently hierarchical, but the definitions must be consulted to determine what the meanings of the hierarchical relationships are."]
4780 pub concept: Option<Vec<CodeSystemConcept>>,
4781}
4782#[derive(
4783 Clone,
4784 Reflect,
4785 Debug,
4786 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4787 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4788)]
4789#[fhir_serialize_type = "typechoice"]
4790#[type_choice_field_name = "content"]
4791pub enum CommunicationPayloadContentTypeChoice {
4792 String(Box<FHIRString>),
4793 Attachment(Box<Attachment>),
4794 # [reference (targets = ["Resource"])]
4795 Reference(Box<Reference>),
4796}
4797impl Default for CommunicationPayloadContentTypeChoice {
4798 fn default() -> Self {
4799 CommunicationPayloadContentTypeChoice::String(Box::new(Default::default()))
4800 }
4801}
4802#[derive(
4803 Clone,
4804 Reflect,
4805 Debug,
4806 Default,
4807 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4808 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4809)]
4810#[fhir_serialize_type = "complex"]
4811#[doc = "Text, attachment(s), or resource(s) that was communicated to the recipient."]
4812pub struct CommunicationPayload {
4813 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
4814 pub id: Option<String>,
4815 #[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 manageable, 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."]
4816 pub extension: Option<Vec<Box<Extension>>>,
4817 #[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 manageable, 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)."]
4818 pub modifierExtension: Option<Vec<Box<Extension>>>,
4819 # [type_choice_variants (complex = ["contentAttachment" , "contentReference"] , primitive = ["contentString"])]
4820 #[doc = "A communicated content (or for multi-part communications, one portion of the communication)."]
4821 pub content: CommunicationPayloadContentTypeChoice,
4822}
4823#[derive(
4824 Clone,
4825 Reflect,
4826 Debug,
4827 Default,
4828 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4829 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4830)]
4831#[fhir_serialize_type = "resource"]
4832#[doc = "An occurrence of information being transmitted; e.g. an alert that was sent to a responsible provider, a public health agency that was notified about a reportable condition."]
4833pub struct Communication {
4834 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
4835 pub id: Option<String>,
4836 #[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."]
4837 pub meta: Option<Box<Meta>>,
4838 #[primitive]
4839 #[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."]
4840 pub implicitRules: Option<Box<FHIRUri>>,
4841 #[primitive]
4842 #[doc = "The base language in which the resource is written."]
4843 pub language: Option<Box<FHIRCode>>,
4844 #[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."]
4845 pub text: Option<Box<Narrative>>,
4846 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
4847 pub contained: Option<Vec<Box<Resource>>>,
4848 #[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 manageable, 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."]
4849 pub extension: Option<Vec<Box<Extension>>>,
4850 #[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 manageable, 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)."]
4851 pub modifierExtension: Option<Vec<Box<Extension>>>,
4852 #[rename_field = "identifier"]
4853 #[doc = "Business identifiers assigned to this communication by the performer or other systems which remain constant as the resource is updated and propagates from server to server."]
4854 pub identifier_: Option<Vec<Box<Identifier>>>,
4855 #[primitive]
4856 #[doc = "The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Communication."]
4857 pub instantiatesCanonical: Option<Vec<Box<FHIRCanonical>>>,
4858 #[primitive]
4859 #[doc = "The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Communication."]
4860 pub instantiatesUri: Option<Vec<Box<FHIRUri>>>,
4861 # [reference (targets = ["Resource"])]
4862 #[doc = "An order, proposal or plan fulfilled in whole or in part by this Communication."]
4863 pub basedOn: Option<Vec<Box<Reference>>>,
4864 # [reference (targets = ["Resource"])]
4865 #[doc = "Part of this action."]
4866 pub partOf: Option<Vec<Box<Reference>>>,
4867 # [reference (targets = ["Communication"])]
4868 #[doc = "Prior communication that this communication is in response to."]
4869 pub inResponseTo: Option<Vec<Box<Reference>>>,
4870 #[primitive]
4871 #[doc = "The status of the transmission."]
4872 pub status: Box<terminology::EventStatus>,
4873 #[doc = "Captures the reason for the current state of the Communication."]
4874 pub statusReason: Option<Box<CodeableConcept>>,
4875 #[doc = "The type of message conveyed such as alert, notification, reminder, instruction, etc."]
4876 pub category: Option<Vec<Box<CodeableConcept>>>,
4877 #[primitive]
4878 #[doc = "Characterizes how quickly the planned or in progress communication must be addressed. Includes concepts such as stat, urgent, routine."]
4879 pub priority: Option<Box<terminology::RequestPriority>>,
4880 #[doc = "A channel that was used for this communication (e.g. email, fax)."]
4881 pub medium: Option<Vec<Box<CodeableConcept>>>,
4882 # [reference (targets = ["Patient" , "Group"])]
4883 #[doc = "The patient or group that was the focus of this communication."]
4884 pub subject: Option<Box<Reference>>,
4885 #[doc = "Description of the purpose/content, similar to a subject line in an email."]
4886 pub topic: Option<Box<CodeableConcept>>,
4887 # [reference (targets = ["Resource"])]
4888 #[doc = "Other resources that pertain to this communication and to which this communication should be associated."]
4889 pub about: Option<Vec<Box<Reference>>>,
4890 # [reference (targets = ["Encounter"])]
4891 #[doc = "The Encounter during which this Communication was created or to which the creation of this record is tightly associated."]
4892 pub encounter: Option<Box<Reference>>,
4893 #[primitive]
4894 #[doc = "The time when this communication was sent."]
4895 pub sent: Option<Box<FHIRDateTime>>,
4896 #[primitive]
4897 #[doc = "The time when this communication arrived at the destination."]
4898 pub received: Option<Box<FHIRDateTime>>,
4899 # [reference (targets = ["Device" , "Organization" , "Patient" , "Practitioner" , "PractitionerRole" , "RelatedPerson" , "Group" , "CareTeam" , "HealthcareService"])]
4900 #[doc = "The entity (e.g. person, organization, clinical information system, care team or device) which was the target of the communication. If receipts need to be tracked by an individual, a separate resource instance will need to be created for each recipient. Multiple recipient communications are intended where either receipts are not tracked (e.g. a mass mail-out) or a receipt is captured in aggregate (all emails confirmed received by a particular time)."]
4901 pub recipient: Option<Vec<Box<Reference>>>,
4902 # [reference (targets = ["Device" , "Organization" , "Patient" , "Practitioner" , "PractitionerRole" , "RelatedPerson" , "HealthcareService"])]
4903 #[doc = "The entity (e.g. person, organization, clinical information system, or device) which was the source of the communication."]
4904 pub sender: Option<Box<Reference>>,
4905 #[doc = "The reason or justification for the communication."]
4906 pub reasonCode: Option<Vec<Box<CodeableConcept>>>,
4907 # [reference (targets = ["Condition" , "Observation" , "DiagnosticReport" , "DocumentReference"])]
4908 #[doc = "Indicates another resource whose existence justifies this communication."]
4909 pub reasonReference: Option<Vec<Box<Reference>>>,
4910 #[doc = "Text, attachment(s), or resource(s) that was communicated to the recipient."]
4911 pub payload: Option<Vec<CommunicationPayload>>,
4912 #[doc = "Additional notes or commentary about the communication by the sender, receiver or other interested parties."]
4913 pub note: Option<Vec<Box<Annotation>>>,
4914}
4915#[derive(
4916 Clone,
4917 Reflect,
4918 Debug,
4919 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4920 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4921)]
4922#[fhir_serialize_type = "typechoice"]
4923#[type_choice_field_name = "content"]
4924pub enum CommunicationRequestPayloadContentTypeChoice {
4925 String(Box<FHIRString>),
4926 Attachment(Box<Attachment>),
4927 # [reference (targets = ["Resource"])]
4928 Reference(Box<Reference>),
4929}
4930impl Default for CommunicationRequestPayloadContentTypeChoice {
4931 fn default() -> Self {
4932 CommunicationRequestPayloadContentTypeChoice::String(Box::new(Default::default()))
4933 }
4934}
4935#[derive(
4936 Clone,
4937 Reflect,
4938 Debug,
4939 Default,
4940 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4941 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4942)]
4943#[fhir_serialize_type = "complex"]
4944#[doc = "Text, attachment(s), or resource(s) to be communicated to the recipient."]
4945pub struct CommunicationRequestPayload {
4946 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
4947 pub id: Option<String>,
4948 #[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 manageable, 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."]
4949 pub extension: Option<Vec<Box<Extension>>>,
4950 #[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 manageable, 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)."]
4951 pub modifierExtension: Option<Vec<Box<Extension>>>,
4952 # [type_choice_variants (complex = ["contentAttachment" , "contentReference"] , primitive = ["contentString"])]
4953 #[doc = "The communicated content (or for multi-part communications, one portion of the communication)."]
4954 pub content: CommunicationRequestPayloadContentTypeChoice,
4955}
4956#[derive(
4957 Clone,
4958 Reflect,
4959 Debug,
4960 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4961 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4962)]
4963#[fhir_serialize_type = "typechoice"]
4964#[type_choice_field_name = "occurrence"]
4965pub enum CommunicationRequestOccurrenceTypeChoice {
4966 DateTime(Box<FHIRDateTime>),
4967 Period(Box<Period>),
4968}
4969impl Default for CommunicationRequestOccurrenceTypeChoice {
4970 fn default() -> Self {
4971 CommunicationRequestOccurrenceTypeChoice::DateTime(Box::new(Default::default()))
4972 }
4973}
4974#[derive(
4975 Clone,
4976 Reflect,
4977 Debug,
4978 Default,
4979 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
4980 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
4981)]
4982#[fhir_serialize_type = "resource"]
4983#[doc = "A request to convey information; e.g. the CDS system proposes that an alert be sent to a responsible provider, the CDS system proposes that the public health agency be notified about a reportable condition."]
4984pub struct CommunicationRequest {
4985 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
4986 pub id: Option<String>,
4987 #[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."]
4988 pub meta: Option<Box<Meta>>,
4989 #[primitive]
4990 #[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."]
4991 pub implicitRules: Option<Box<FHIRUri>>,
4992 #[primitive]
4993 #[doc = "The base language in which the resource is written."]
4994 pub language: Option<Box<FHIRCode>>,
4995 #[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."]
4996 pub text: Option<Box<Narrative>>,
4997 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
4998 pub contained: Option<Vec<Box<Resource>>>,
4999 #[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 manageable, 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."]
5000 pub extension: Option<Vec<Box<Extension>>>,
5001 #[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 manageable, 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)."]
5002 pub modifierExtension: Option<Vec<Box<Extension>>>,
5003 #[rename_field = "identifier"]
5004 #[doc = "Business identifiers assigned to this communication request by the performer or other systems which remain constant as the resource is updated and propagates from server to server."]
5005 pub identifier_: Option<Vec<Box<Identifier>>>,
5006 # [reference (targets = ["Resource"])]
5007 #[doc = "A plan or proposal that is fulfilled in whole or in part by this request."]
5008 pub basedOn: Option<Vec<Box<Reference>>>,
5009 # [reference (targets = ["CommunicationRequest"])]
5010 #[doc = "Completed or terminated request(s) whose function is taken by this new request."]
5011 pub replaces: Option<Vec<Box<Reference>>>,
5012 #[doc = "A shared identifier common to all requests that were authorized more or less simultaneously by a single author, representing the identifier of the requisition, prescription or similar form."]
5013 pub groupIdentifier: Option<Box<Identifier>>,
5014 #[primitive]
5015 #[doc = "The status of the proposal or order."]
5016 pub status: Box<terminology::RequestStatus>,
5017 #[doc = "Captures the reason for the current state of the CommunicationRequest."]
5018 pub statusReason: Option<Box<CodeableConcept>>,
5019 #[doc = "The type of message to be sent such as alert, notification, reminder, instruction, etc."]
5020 pub category: Option<Vec<Box<CodeableConcept>>>,
5021 #[primitive]
5022 #[doc = "Characterizes how quickly the proposed act must be initiated. Includes concepts such as stat, urgent, routine."]
5023 pub priority: Option<Box<terminology::RequestPriority>>,
5024 #[primitive]
5025 #[doc = "If true indicates that the CommunicationRequest is asking for the specified action to *not* occur."]
5026 pub doNotPerform: Option<Box<FHIRBoolean>>,
5027 #[doc = "A channel that was used for this communication (e.g. email, fax)."]
5028 pub medium: Option<Vec<Box<CodeableConcept>>>,
5029 # [reference (targets = ["Patient" , "Group"])]
5030 #[doc = "The patient or group that is the focus of this communication request."]
5031 pub subject: Option<Box<Reference>>,
5032 # [reference (targets = ["Resource"])]
5033 #[doc = "Other resources that pertain to this communication request and to which this communication request should be associated."]
5034 pub about: Option<Vec<Box<Reference>>>,
5035 # [reference (targets = ["Encounter"])]
5036 #[doc = "The Encounter during which this CommunicationRequest was created or to which the creation of this record is tightly associated."]
5037 pub encounter: Option<Box<Reference>>,
5038 #[doc = "Text, attachment(s), or resource(s) to be communicated to the recipient."]
5039 pub payload: Option<Vec<CommunicationRequestPayload>>,
5040 # [type_choice_variants (complex = ["occurrencePeriod"] , primitive = ["occurrenceDateTime"])]
5041 #[doc = "The time when this communication is to occur."]
5042 pub occurrence: Option<CommunicationRequestOccurrenceTypeChoice>,
5043 #[primitive]
5044 #[doc = "For draft requests, indicates the date of initial creation. For requests with other statuses, indicates the date of activation."]
5045 pub authoredOn: Option<Box<FHIRDateTime>>,
5046 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization" , "Patient" , "RelatedPerson" , "Device"])]
5047 #[doc = "The device, individual, or organization who initiated the request and has responsibility for its activation."]
5048 pub requester: Option<Box<Reference>>,
5049 # [reference (targets = ["Device" , "Organization" , "Patient" , "Practitioner" , "PractitionerRole" , "RelatedPerson" , "Group" , "CareTeam" , "HealthcareService"])]
5050 #[doc = "The entity (e.g. person, organization, clinical information system, device, group, or care team) which is the intended target of the communication."]
5051 pub recipient: Option<Vec<Box<Reference>>>,
5052 # [reference (targets = ["Device" , "Organization" , "Patient" , "Practitioner" , "PractitionerRole" , "RelatedPerson" , "HealthcareService"])]
5053 #[doc = "The entity (e.g. person, organization, clinical information system, or device) which is to be the source of the communication."]
5054 pub sender: Option<Box<Reference>>,
5055 #[doc = "Describes why the request is being made in coded or textual form."]
5056 pub reasonCode: Option<Vec<Box<CodeableConcept>>>,
5057 # [reference (targets = ["Condition" , "Observation" , "DiagnosticReport" , "DocumentReference"])]
5058 #[doc = "Indicates another resource whose existence justifies this request."]
5059 pub reasonReference: Option<Vec<Box<Reference>>>,
5060 #[doc = "Comments made about the request by the requester, sender, recipient, subject or other participants."]
5061 pub note: Option<Vec<Box<Annotation>>>,
5062}
5063#[derive(
5064 Clone,
5065 Reflect,
5066 Debug,
5067 Default,
5068 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5069 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5070)]
5071#[fhir_serialize_type = "complex"]
5072#[doc = "Information about how a resource is related to the compartment."]
5073pub struct CompartmentDefinitionResource {
5074 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
5075 pub id: Option<String>,
5076 #[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 manageable, 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."]
5077 pub extension: Option<Vec<Box<Extension>>>,
5078 #[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 manageable, 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)."]
5079 pub modifierExtension: Option<Vec<Box<Extension>>>,
5080 #[primitive]
5081 #[doc = "The name of a resource supported by the server."]
5082 pub code: Box<terminology::ResourceTypes>,
5083 #[primitive]
5084 #[doc = "The name of a search parameter that represents the link to the compartment. More than one may be listed because a resource may be linked to a compartment in more than one way,."]
5085 pub param: Option<Vec<Box<FHIRString>>>,
5086 #[primitive]
5087 #[doc = "Additional documentation about the resource and compartment."]
5088 pub documentation: Option<Box<FHIRString>>,
5089}
5090#[derive(
5091 Clone,
5092 Reflect,
5093 Debug,
5094 Default,
5095 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5096 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5097)]
5098#[fhir_serialize_type = "resource"]
5099#[doc = "A compartment definition that defines how resources are accessed on a server."]
5100pub struct CompartmentDefinition {
5101 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
5102 pub id: Option<String>,
5103 #[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."]
5104 pub meta: Option<Box<Meta>>,
5105 #[primitive]
5106 #[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."]
5107 pub implicitRules: Option<Box<FHIRUri>>,
5108 #[primitive]
5109 #[doc = "The base language in which the resource is written."]
5110 pub language: Option<Box<FHIRCode>>,
5111 #[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."]
5112 pub text: Option<Box<Narrative>>,
5113 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
5114 pub contained: Option<Vec<Box<Resource>>>,
5115 #[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 manageable, 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."]
5116 pub extension: Option<Vec<Box<Extension>>>,
5117 #[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 manageable, 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)."]
5118 pub modifierExtension: Option<Vec<Box<Extension>>>,
5119 #[primitive]
5120 #[doc = "An absolute URI that is used to identify this compartment definition 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 at which an authoritative instance of this compartment definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the compartment definition is stored on different servers."]
5121 pub url: Box<FHIRUri>,
5122 #[primitive]
5123 #[doc = "The identifier that is used to identify this version of the compartment definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the compartment definition 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."]
5124 pub version: Option<Box<FHIRString>>,
5125 #[primitive]
5126 #[doc = "A natural language name identifying the compartment definition. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
5127 pub name: Box<FHIRString>,
5128 #[primitive]
5129 #[doc = "The status of this compartment definition. Enables tracking the life-cycle of the content."]
5130 pub status: Box<terminology::PublicationStatus>,
5131 #[primitive]
5132 #[doc = "A Boolean value to indicate that this compartment definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
5133 pub experimental: Option<Box<FHIRBoolean>>,
5134 #[primitive]
5135 #[doc = "The date (and optionally time) when the compartment definition was published. 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 compartment definition changes."]
5136 pub date: Option<Box<FHIRDateTime>>,
5137 #[primitive]
5138 #[doc = "The name of the organization or individual that published the compartment definition."]
5139 pub publisher: Option<Box<FHIRString>>,
5140 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
5141 pub contact: Option<Vec<Box<ContactDetail>>>,
5142 #[primitive]
5143 #[doc = "A free text natural language description of the compartment definition from a consumer's perspective."]
5144 pub description: Option<Box<FHIRMarkdown>>,
5145 #[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 compartment definition instances."]
5146 pub useContext: Option<Vec<Box<UsageContext>>>,
5147 #[primitive]
5148 #[doc = "Explanation of why this compartment definition is needed and why it has been designed as it has."]
5149 pub purpose: Option<Box<FHIRMarkdown>>,
5150 #[primitive]
5151 #[doc = "Which compartment this definition describes."]
5152 pub code: Box<terminology::CompartmentType>,
5153 #[primitive]
5154 #[doc = "Whether the search syntax is supported,."]
5155 pub search: Box<FHIRBoolean>,
5156 #[doc = "Information about how a resource is related to the compartment."]
5157 pub resource: Option<Vec<CompartmentDefinitionResource>>,
5158}
5159#[derive(
5160 Clone,
5161 Reflect,
5162 Debug,
5163 Default,
5164 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5165 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5166)]
5167#[fhir_serialize_type = "complex"]
5168#[doc = "A participant who has attested to the accuracy of the composition/document."]
5169pub struct CompositionAttester {
5170 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
5171 pub id: Option<String>,
5172 #[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 manageable, 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."]
5173 pub extension: Option<Vec<Box<Extension>>>,
5174 #[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 manageable, 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)."]
5175 pub modifierExtension: Option<Vec<Box<Extension>>>,
5176 #[primitive]
5177 #[doc = "The type of attestation the authenticator offers."]
5178 pub mode: Box<terminology::CompositionAttestationMode>,
5179 #[primitive]
5180 #[doc = "When the composition was attested by the party."]
5181 pub time: Option<Box<FHIRDateTime>>,
5182 # [reference (targets = ["Patient" , "RelatedPerson" , "Practitioner" , "PractitionerRole" , "Organization"])]
5183 #[doc = "Who attested the composition in the specified way."]
5184 pub party: Option<Box<Reference>>,
5185}
5186#[derive(
5187 Clone,
5188 Reflect,
5189 Debug,
5190 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5191 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5192)]
5193#[fhir_serialize_type = "typechoice"]
5194#[type_choice_field_name = "target"]
5195pub enum CompositionRelatesToTargetTypeChoice {
5196 Identifier(Box<Identifier>),
5197 # [reference (targets = ["Composition"])]
5198 Reference(Box<Reference>),
5199}
5200impl Default for CompositionRelatesToTargetTypeChoice {
5201 fn default() -> Self {
5202 CompositionRelatesToTargetTypeChoice::Identifier(Box::new(Default::default()))
5203 }
5204}
5205#[derive(
5206 Clone,
5207 Reflect,
5208 Debug,
5209 Default,
5210 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5211 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5212)]
5213#[fhir_serialize_type = "complex"]
5214#[doc = "Relationships that this composition has with other compositions or documents that already exist."]
5215pub struct CompositionRelatesTo {
5216 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
5217 pub id: Option<String>,
5218 #[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 manageable, 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."]
5219 pub extension: Option<Vec<Box<Extension>>>,
5220 #[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 manageable, 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)."]
5221 pub modifierExtension: Option<Vec<Box<Extension>>>,
5222 #[primitive]
5223 #[doc = "The type of relationship that this composition has with anther composition or document."]
5224 pub code: Box<terminology::DocumentRelationshipType>,
5225 # [type_choice_variants (complex = ["targetIdentifier" , "targetReference"] , primitive = [])]
5226 #[doc = "The target composition/document of this relationship."]
5227 pub target: CompositionRelatesToTargetTypeChoice,
5228}
5229#[derive(
5230 Clone,
5231 Reflect,
5232 Debug,
5233 Default,
5234 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5235 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5236)]
5237#[fhir_serialize_type = "complex"]
5238#[doc = "The clinical service, such as a colonoscopy or an appendectomy, being documented."]
5239pub struct CompositionEvent {
5240 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
5241 pub id: Option<String>,
5242 #[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 manageable, 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."]
5243 pub extension: Option<Vec<Box<Extension>>>,
5244 #[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 manageable, 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)."]
5245 pub modifierExtension: Option<Vec<Box<Extension>>>,
5246 #[doc = "This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a \"History and Physical Report\" in which the procedure being documented is necessarily a \"History and Physical\" act."]
5247 pub code: Option<Vec<Box<CodeableConcept>>>,
5248 #[doc = "The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time."]
5249 pub period: Option<Box<Period>>,
5250 # [reference (targets = ["Resource"])]
5251 #[doc = "The description and/or reference of the event(s) being documented. For example, this could be used to document such a colonoscopy or an appendectomy."]
5252 pub detail: Option<Vec<Box<Reference>>>,
5253}
5254#[derive(
5255 Clone,
5256 Reflect,
5257 Debug,
5258 Default,
5259 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5260 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5261)]
5262#[fhir_serialize_type = "complex"]
5263#[doc = "The root of the sections that make up the composition."]
5264pub struct CompositionSection {
5265 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
5266 pub id: Option<String>,
5267 #[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 manageable, 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."]
5268 pub extension: Option<Vec<Box<Extension>>>,
5269 #[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 manageable, 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)."]
5270 pub modifierExtension: Option<Vec<Box<Extension>>>,
5271 #[primitive]
5272 #[doc = "The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents."]
5273 pub title: Option<Box<FHIRString>>,
5274 #[doc = "A code identifying the kind of content contained within the section. This must be consistent with the section title."]
5275 pub code: Option<Box<CodeableConcept>>,
5276 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Device" , "Patient" , "RelatedPerson" , "Organization"])]
5277 #[doc = "Identifies who is responsible for the information in this section, not necessarily who typed it in."]
5278 pub author: Option<Vec<Box<Reference>>>,
5279 # [reference (targets = ["Resource"])]
5280 #[doc = "The actual focus of the section when it is not the subject of the composition, but instead represents something or someone associated with the subject such as (for a patient subject) a spouse, parent, fetus, or donor. If not focus is specified, the focus is assumed to be focus of the parent section, or, for a section in the Composition itself, the subject of the composition. Sections with a focus SHALL only include resources where the logical subject (patient, subject, focus, etc.) matches the section focus, or the resources have no logical subject (few resources)."]
5281 pub focus: Option<Box<Reference>>,
5282 #[doc = "A human-readable narrative that contains the attested content of the section, 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."]
5283 pub text: Option<Box<Narrative>>,
5284 #[primitive]
5285 #[doc = "How the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted."]
5286 pub mode: Option<Box<terminology::ListMode>>,
5287 #[doc = "Specifies the order applied to the items in the section entries."]
5288 pub orderedBy: Option<Box<CodeableConcept>>,
5289 # [reference (targets = ["Resource"])]
5290 #[doc = "A reference to the actual resource from which the narrative in the section is derived."]
5291 pub entry: Option<Vec<Box<Reference>>>,
5292 #[doc = "If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason."]
5293 pub emptyReason: Option<Box<CodeableConcept>>,
5294 #[doc = "A nested sub-section within this section."]
5295 pub section: Option<Vec<CompositionSection>>,
5296}
5297#[derive(
5298 Clone,
5299 Reflect,
5300 Debug,
5301 Default,
5302 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5303 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5304)]
5305#[fhir_serialize_type = "resource"]
5306#[doc = "A set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition must be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition must be included as subsequent entries in the Bundle (for example Patient, Practitioner, Encounter, etc.)."]
5307pub struct Composition {
5308 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
5309 pub id: Option<String>,
5310 #[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."]
5311 pub meta: Option<Box<Meta>>,
5312 #[primitive]
5313 #[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."]
5314 pub implicitRules: Option<Box<FHIRUri>>,
5315 #[primitive]
5316 #[doc = "The base language in which the resource is written."]
5317 pub language: Option<Box<FHIRCode>>,
5318 #[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."]
5319 pub text: Option<Box<Narrative>>,
5320 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
5321 pub contained: Option<Vec<Box<Resource>>>,
5322 #[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 manageable, 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."]
5323 pub extension: Option<Vec<Box<Extension>>>,
5324 #[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 manageable, 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)."]
5325 pub modifierExtension: Option<Vec<Box<Extension>>>,
5326 #[rename_field = "identifier"]
5327 #[doc = "A version-independent identifier for the Composition. This identifier stays constant as the composition is changed over time."]
5328 pub identifier_: Option<Box<Identifier>>,
5329 #[primitive]
5330 #[doc = "The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document."]
5331 pub status: Box<terminology::CompositionStatus>,
5332 #[rename_field = "type"]
5333 #[doc = "Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition."]
5334 pub type_: Box<CodeableConcept>,
5335 #[doc = "A categorization for the type of the composition - helps for indexing and searching. This may be implied by or derived from the code specified in the Composition Type."]
5336 pub category: Option<Vec<Box<CodeableConcept>>>,
5337 # [reference (targets = ["Resource"])]
5338 #[doc = "Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure)."]
5339 pub subject: Option<Box<Reference>>,
5340 # [reference (targets = ["Encounter"])]
5341 #[doc = "Describes the clinical encounter or type of care this documentation is associated with."]
5342 pub encounter: Option<Box<Reference>>,
5343 #[primitive]
5344 #[doc = "The composition editing time, when the composition was last logically changed by the author."]
5345 pub date: Box<FHIRDateTime>,
5346 #[cardinality(min = 1usize)]
5347 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Device" , "Patient" , "RelatedPerson" , "Organization"])]
5348 #[doc = "Identifies who is responsible for the information in the composition, not necessarily who typed it in."]
5349 pub author: Vec<Box<Reference>>,
5350 #[primitive]
5351 #[doc = "Official human-readable label for the composition."]
5352 pub title: Box<FHIRString>,
5353 #[primitive]
5354 #[doc = "The code specifying the level of confidentiality of the Composition."]
5355 pub confidentiality: Option<Box<terminology::V3ConfidentialityClassification>>,
5356 #[doc = "A participant who has attested to the accuracy of the composition/document."]
5357 pub attester: Option<Vec<CompositionAttester>>,
5358 # [reference (targets = ["Organization"])]
5359 #[doc = "Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information."]
5360 pub custodian: Option<Box<Reference>>,
5361 #[doc = "Relationships that this composition has with other compositions or documents that already exist."]
5362 pub relatesTo: Option<Vec<CompositionRelatesTo>>,
5363 #[doc = "The clinical service, such as a colonoscopy or an appendectomy, being documented."]
5364 pub event: Option<Vec<CompositionEvent>>,
5365 #[doc = "The root of the sections that make up the composition."]
5366 pub section: Option<Vec<CompositionSection>>,
5367}
5368#[derive(
5369 Clone,
5370 Reflect,
5371 Debug,
5372 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5373 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5374)]
5375#[fhir_serialize_type = "typechoice"]
5376#[type_choice_field_name = "source"]
5377pub enum ConceptMapSourceTypeChoice {
5378 Uri(Box<FHIRUri>),
5379 Canonical(Box<FHIRCanonical>),
5380}
5381impl Default for ConceptMapSourceTypeChoice {
5382 fn default() -> Self {
5383 ConceptMapSourceTypeChoice::Uri(Box::new(Default::default()))
5384 }
5385}
5386#[derive(
5387 Clone,
5388 Reflect,
5389 Debug,
5390 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5391 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5392)]
5393#[fhir_serialize_type = "typechoice"]
5394#[type_choice_field_name = "target"]
5395pub enum ConceptMapTargetTypeChoice {
5396 Uri(Box<FHIRUri>),
5397 Canonical(Box<FHIRCanonical>),
5398}
5399impl Default for ConceptMapTargetTypeChoice {
5400 fn default() -> Self {
5401 ConceptMapTargetTypeChoice::Uri(Box::new(Default::default()))
5402 }
5403}
5404#[derive(
5405 Clone,
5406 Reflect,
5407 Debug,
5408 Default,
5409 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5410 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5411)]
5412#[fhir_serialize_type = "complex"]
5413#[doc = "A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value."]
5414pub struct ConceptMapGroupElementTargetDependsOn {
5415 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
5416 pub id: Option<String>,
5417 #[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 manageable, 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."]
5418 pub extension: Option<Vec<Box<Extension>>>,
5419 #[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 manageable, 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)."]
5420 pub modifierExtension: Option<Vec<Box<Extension>>>,
5421 #[primitive]
5422 #[doc = "A reference to an element that holds a coded value that corresponds to a code system property. The idea is that the information model carries an element somewhere that is labeled to correspond with a code system property."]
5423 pub property: Box<FHIRUri>,
5424 #[primitive]
5425 #[doc = "An absolute URI that identifies the code system of the dependency code (if the source/dependency is a value set that crosses code systems)."]
5426 pub system: Option<Box<FHIRCanonical>>,
5427 #[primitive]
5428 #[doc = "Identity (code or path) or the element/item/ValueSet/text that the map depends on / refers to."]
5429 pub value: Box<FHIRString>,
5430 #[primitive]
5431 #[doc = "The display for the code. The display is only provided to help editors when editing the concept map."]
5432 pub display: Option<Box<FHIRString>>,
5433}
5434#[derive(
5435 Clone,
5436 Reflect,
5437 Debug,
5438 Default,
5439 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5440 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5441)]
5442#[fhir_serialize_type = "complex"]
5443#[doc = "A concept from the target value set that this concept maps to."]
5444pub struct ConceptMapGroupElementTarget {
5445 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
5446 pub id: Option<String>,
5447 #[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 manageable, 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."]
5448 pub extension: Option<Vec<Box<Extension>>>,
5449 #[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 manageable, 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)."]
5450 pub modifierExtension: Option<Vec<Box<Extension>>>,
5451 #[primitive]
5452 #[doc = "Identity (code or path) or the element/item that the map refers to."]
5453 pub code: Option<Box<FHIRCode>>,
5454 #[primitive]
5455 #[doc = "The display for the code. The display is only provided to help editors when editing the concept map."]
5456 pub display: Option<Box<FHIRString>>,
5457 #[primitive]
5458 #[doc = "The equivalence between the source and target concepts (counting for the dependencies and products). The equivalence is read from target to source (e.g. the target is 'wider' than the source)."]
5459 pub equivalence: Box<terminology::ConceptMapEquivalence>,
5460 #[primitive]
5461 #[doc = "A description of status/issues in mapping that conveys additional information not represented in the structured data."]
5462 pub comment: Option<Box<FHIRString>>,
5463 #[doc = "A set of additional dependencies for this mapping to hold. This mapping is only applicable if the specified element can be resolved, and it has the specified value."]
5464 pub dependsOn: Option<Vec<ConceptMapGroupElementTargetDependsOn>>,
5465 #[doc = "A set of additional outcomes from this mapping to other elements. To properly execute this mapping, the specified element must be mapped to some data element or source that is in context. The mapping may still be useful without a place for the additional data elements, but the equivalence cannot be relied on."]
5466 pub product: Option<Vec<ConceptMapGroupElementTargetDependsOn>>,
5467}
5468#[derive(
5469 Clone,
5470 Reflect,
5471 Debug,
5472 Default,
5473 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5474 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5475)]
5476#[fhir_serialize_type = "complex"]
5477#[doc = "Mappings for an individual concept in the source to one or more concepts in the target."]
5478pub struct ConceptMapGroupElement {
5479 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
5480 pub id: Option<String>,
5481 #[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 manageable, 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."]
5482 pub extension: Option<Vec<Box<Extension>>>,
5483 #[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 manageable, 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)."]
5484 pub modifierExtension: Option<Vec<Box<Extension>>>,
5485 #[primitive]
5486 #[doc = "Identity (code or path) or the element/item being mapped."]
5487 pub code: Option<Box<FHIRCode>>,
5488 #[primitive]
5489 #[doc = "The display for the code. The display is only provided to help editors when editing the concept map."]
5490 pub display: Option<Box<FHIRString>>,
5491 #[doc = "A concept from the target value set that this concept maps to."]
5492 pub target: Option<Vec<ConceptMapGroupElementTarget>>,
5493}
5494#[derive(
5495 Clone,
5496 Reflect,
5497 Debug,
5498 Default,
5499 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5500 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5501)]
5502#[fhir_serialize_type = "complex"]
5503#[doc = "What to do when there is no mapping for the source concept. \"Unmapped\" does not include codes that are unmatched, and the unmapped element is ignored in a code is specified to have equivalence = unmatched."]
5504pub struct ConceptMapGroupUnmapped {
5505 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
5506 pub id: Option<String>,
5507 #[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 manageable, 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."]
5508 pub extension: Option<Vec<Box<Extension>>>,
5509 #[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 manageable, 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)."]
5510 pub modifierExtension: Option<Vec<Box<Extension>>>,
5511 #[primitive]
5512 #[doc = "Defines which action to take if there is no match for the source concept in the target system designated for the group. One of 3 actions are possible: use the unmapped code (this is useful when doing a mapping between versions, and only a few codes have changed), use a fixed code (a default code), or alternatively, a reference to a different concept map can be provided (by canonical URL)."]
5513 pub mode: Box<terminology::ConceptmapUnmappedMode>,
5514 #[primitive]
5515 #[doc = "The fixed code to use when the mode = 'fixed' - all unmapped codes are mapped to a single fixed code."]
5516 pub code: Option<Box<FHIRCode>>,
5517 #[primitive]
5518 #[doc = "The display for the code. The display is only provided to help editors when editing the concept map."]
5519 pub display: Option<Box<FHIRString>>,
5520 #[primitive]
5521 #[doc = "The canonical reference to an additional ConceptMap resource instance to use for mapping if this ConceptMap resource contains no matching mapping for the source concept."]
5522 pub url: Option<Box<FHIRCanonical>>,
5523}
5524#[derive(
5525 Clone,
5526 Reflect,
5527 Debug,
5528 Default,
5529 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5530 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5531)]
5532#[fhir_serialize_type = "complex"]
5533#[doc = "A group of mappings that all have the same source and target system."]
5534pub struct ConceptMapGroup {
5535 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
5536 pub id: Option<String>,
5537 #[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 manageable, 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."]
5538 pub extension: Option<Vec<Box<Extension>>>,
5539 #[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 manageable, 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)."]
5540 pub modifierExtension: Option<Vec<Box<Extension>>>,
5541 #[primitive]
5542 #[doc = "An absolute URI that identifies the source system where the concepts to be mapped are defined."]
5543 pub source: Option<Box<FHIRUri>>,
5544 #[primitive]
5545 #[doc = "The specific version of the code system, as determined by the code system authority."]
5546 pub sourceVersion: Option<Box<FHIRString>>,
5547 #[primitive]
5548 #[doc = "An absolute URI that identifies the target system that the concepts will be mapped to."]
5549 pub target: Option<Box<FHIRUri>>,
5550 #[primitive]
5551 #[doc = "The specific version of the code system, as determined by the code system authority."]
5552 pub targetVersion: Option<Box<FHIRString>>,
5553 #[cardinality(min = 1usize)]
5554 #[doc = "Mappings for an individual concept in the source to one or more concepts in the target."]
5555 pub element: Vec<ConceptMapGroupElement>,
5556 #[doc = "What to do when there is no mapping for the source concept. \"Unmapped\" does not include codes that are unmatched, and the unmapped element is ignored in a code is specified to have equivalence = unmatched."]
5557 pub unmapped: Option<ConceptMapGroupUnmapped>,
5558}
5559#[derive(
5560 Clone,
5561 Reflect,
5562 Debug,
5563 Default,
5564 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5565 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5566)]
5567#[fhir_serialize_type = "resource"]
5568#[doc = "A statement of relationships from one set of concepts to one or more other concepts - either concepts in code systems, or data element/data element concepts, or classes in class models."]
5569pub struct ConceptMap {
5570 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
5571 pub id: Option<String>,
5572 #[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."]
5573 pub meta: Option<Box<Meta>>,
5574 #[primitive]
5575 #[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."]
5576 pub implicitRules: Option<Box<FHIRUri>>,
5577 #[primitive]
5578 #[doc = "The base language in which the resource is written."]
5579 pub language: Option<Box<FHIRCode>>,
5580 #[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."]
5581 pub text: Option<Box<Narrative>>,
5582 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
5583 pub contained: Option<Vec<Box<Resource>>>,
5584 #[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 manageable, 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."]
5585 pub extension: Option<Vec<Box<Extension>>>,
5586 #[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 manageable, 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)."]
5587 pub modifierExtension: Option<Vec<Box<Extension>>>,
5588 #[primitive]
5589 #[doc = "An absolute URI that is used to identify this concept map 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 at which an authoritative instance of this concept map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the concept map is stored on different servers."]
5590 pub url: Option<Box<FHIRUri>>,
5591 #[rename_field = "identifier"]
5592 #[doc = "A formal identifier that is used to identify this concept map when it is represented in other formats, or referenced in a specification, model, design or an instance."]
5593 pub identifier_: Option<Box<Identifier>>,
5594 #[primitive]
5595 #[doc = "The identifier that is used to identify this version of the concept map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the concept map 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."]
5596 pub version: Option<Box<FHIRString>>,
5597 #[primitive]
5598 #[doc = "A natural language name identifying the concept map. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
5599 pub name: Option<Box<FHIRString>>,
5600 #[primitive]
5601 #[doc = "A short, descriptive, user-friendly title for the concept map."]
5602 pub title: Option<Box<FHIRString>>,
5603 #[primitive]
5604 #[doc = "The status of this concept map. Enables tracking the life-cycle of the content."]
5605 pub status: Box<terminology::PublicationStatus>,
5606 #[primitive]
5607 #[doc = "A Boolean value to indicate that this concept map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
5608 pub experimental: Option<Box<FHIRBoolean>>,
5609 #[primitive]
5610 #[doc = "The date (and optionally time) when the concept map was published. 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 concept map changes."]
5611 pub date: Option<Box<FHIRDateTime>>,
5612 #[primitive]
5613 #[doc = "The name of the organization or individual that published the concept map."]
5614 pub publisher: Option<Box<FHIRString>>,
5615 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
5616 pub contact: Option<Vec<Box<ContactDetail>>>,
5617 #[primitive]
5618 #[doc = "A free text natural language description of the concept map from a consumer's perspective."]
5619 pub description: Option<Box<FHIRMarkdown>>,
5620 #[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 concept map instances."]
5621 pub useContext: Option<Vec<Box<UsageContext>>>,
5622 #[doc = "A legal or geographic region in which the concept map is intended to be used."]
5623 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
5624 #[primitive]
5625 #[doc = "Explanation of why this concept map is needed and why it has been designed as it has."]
5626 pub purpose: Option<Box<FHIRMarkdown>>,
5627 #[primitive]
5628 #[doc = "A copyright statement relating to the concept map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the concept map."]
5629 pub copyright: Option<Box<FHIRMarkdown>>,
5630 # [type_choice_variants (complex = [] , primitive = ["sourceUri" , "sourceCanonical"])]
5631 #[doc = "Identifier for the source value set that contains the concepts that are being mapped and provides context for the mappings."]
5632 pub source: Option<ConceptMapSourceTypeChoice>,
5633 # [type_choice_variants (complex = [] , primitive = ["targetUri" , "targetCanonical"])]
5634 #[doc = "The target value set provides context for the mappings. Note that the mapping is made between concepts, not between value sets, but the value set provides important context about how the concept mapping choices are made."]
5635 pub target: Option<ConceptMapTargetTypeChoice>,
5636 #[doc = "A group of mappings that all have the same source and target system."]
5637 pub group: Option<Vec<ConceptMapGroup>>,
5638}
5639#[derive(
5640 Clone,
5641 Reflect,
5642 Debug,
5643 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5644 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5645)]
5646#[fhir_serialize_type = "typechoice"]
5647#[type_choice_field_name = "onset"]
5648pub enum ConditionOnsetTypeChoice {
5649 DateTime(Box<FHIRDateTime>),
5650 Age(Box<Age>),
5651 Period(Box<Period>),
5652 Range(Box<Range>),
5653 String(Box<FHIRString>),
5654}
5655impl Default for ConditionOnsetTypeChoice {
5656 fn default() -> Self {
5657 ConditionOnsetTypeChoice::DateTime(Box::new(Default::default()))
5658 }
5659}
5660#[derive(
5661 Clone,
5662 Reflect,
5663 Debug,
5664 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5665 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5666)]
5667#[fhir_serialize_type = "typechoice"]
5668#[type_choice_field_name = "abatement"]
5669pub enum ConditionAbatementTypeChoice {
5670 DateTime(Box<FHIRDateTime>),
5671 Age(Box<Age>),
5672 Period(Box<Period>),
5673 Range(Box<Range>),
5674 String(Box<FHIRString>),
5675}
5676impl Default for ConditionAbatementTypeChoice {
5677 fn default() -> Self {
5678 ConditionAbatementTypeChoice::DateTime(Box::new(Default::default()))
5679 }
5680}
5681#[derive(
5682 Clone,
5683 Reflect,
5684 Debug,
5685 Default,
5686 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5687 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5688)]
5689#[fhir_serialize_type = "complex"]
5690#[doc = "Clinical stage or grade of a condition. May include formal severity assessments."]
5691pub struct ConditionStage {
5692 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
5693 pub id: Option<String>,
5694 #[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 manageable, 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."]
5695 pub extension: Option<Vec<Box<Extension>>>,
5696 #[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 manageable, 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)."]
5697 pub modifierExtension: Option<Vec<Box<Extension>>>,
5698 #[doc = "A simple summary of the stage such as \"Stage 3\". The determination of the stage is disease-specific."]
5699 pub summary: Option<Box<CodeableConcept>>,
5700 # [reference (targets = ["ClinicalImpression" , "DiagnosticReport" , "Observation"])]
5701 #[doc = "Reference to a formal record of the evidence on which the staging assessment is based."]
5702 pub assessment: Option<Vec<Box<Reference>>>,
5703 #[rename_field = "type"]
5704 #[doc = "The kind of staging, such as pathological or clinical staging."]
5705 pub type_: Option<Box<CodeableConcept>>,
5706}
5707#[derive(
5708 Clone,
5709 Reflect,
5710 Debug,
5711 Default,
5712 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5713 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5714)]
5715#[fhir_serialize_type = "complex"]
5716#[doc = "Supporting evidence / manifestations that are the basis of the Condition's verification status, such as evidence that confirmed or refuted the condition."]
5717pub struct ConditionEvidence {
5718 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
5719 pub id: Option<String>,
5720 #[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 manageable, 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."]
5721 pub extension: Option<Vec<Box<Extension>>>,
5722 #[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 manageable, 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)."]
5723 pub modifierExtension: Option<Vec<Box<Extension>>>,
5724 #[doc = "A manifestation or symptom that led to the recording of this condition."]
5725 pub code: Option<Vec<Box<CodeableConcept>>>,
5726 # [reference (targets = ["Resource"])]
5727 #[doc = "Links to other relevant information, including pathology reports."]
5728 pub detail: Option<Vec<Box<Reference>>>,
5729}
5730#[derive(
5731 Clone,
5732 Reflect,
5733 Debug,
5734 Default,
5735 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5736 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5737)]
5738#[fhir_serialize_type = "resource"]
5739#[doc = "A clinical condition, problem, diagnosis, or other event, situation, issue, or clinical concept that has risen to a level of concern."]
5740pub struct Condition {
5741 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
5742 pub id: Option<String>,
5743 #[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."]
5744 pub meta: Option<Box<Meta>>,
5745 #[primitive]
5746 #[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."]
5747 pub implicitRules: Option<Box<FHIRUri>>,
5748 #[primitive]
5749 #[doc = "The base language in which the resource is written."]
5750 pub language: Option<Box<FHIRCode>>,
5751 #[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."]
5752 pub text: Option<Box<Narrative>>,
5753 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
5754 pub contained: Option<Vec<Box<Resource>>>,
5755 #[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 manageable, 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."]
5756 pub extension: Option<Vec<Box<Extension>>>,
5757 #[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 manageable, 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)."]
5758 pub modifierExtension: Option<Vec<Box<Extension>>>,
5759 #[rename_field = "identifier"]
5760 #[doc = "Business identifiers assigned to this condition by the performer or other systems which remain constant as the resource is updated and propagates from server to server."]
5761 pub identifier_: Option<Vec<Box<Identifier>>>,
5762 #[doc = "The clinical status of the condition."]
5763 pub clinicalStatus: Option<Box<CodeableConcept>>,
5764 #[doc = "The verification status to support the clinical status of the condition."]
5765 pub verificationStatus: Option<Box<CodeableConcept>>,
5766 #[doc = "A category assigned to the condition."]
5767 pub category: Option<Vec<Box<CodeableConcept>>>,
5768 #[doc = "A subjective assessment of the severity of the condition as evaluated by the clinician."]
5769 pub severity: Option<Box<CodeableConcept>>,
5770 #[doc = "Identification of the condition, problem or diagnosis."]
5771 pub code: Option<Box<CodeableConcept>>,
5772 #[doc = "The anatomical location where this condition manifests itself."]
5773 pub bodySite: Option<Vec<Box<CodeableConcept>>>,
5774 # [reference (targets = ["Patient" , "Group"])]
5775 #[doc = "Indicates the patient or group who the condition record is associated with."]
5776 pub subject: Box<Reference>,
5777 # [reference (targets = ["Encounter"])]
5778 #[doc = "The Encounter during which this Condition was created or to which the creation of this record is tightly associated."]
5779 pub encounter: Option<Box<Reference>>,
5780 # [type_choice_variants (complex = ["onsetAge" , "onsetPeriod" , "onsetRange"] , primitive = ["onsetDateTime" , "onsetString"])]
5781 #[doc = "Estimated or actual date or date-time the condition began, in the opinion of the clinician."]
5782 pub onset: Option<ConditionOnsetTypeChoice>,
5783 # [type_choice_variants (complex = ["abatementAge" , "abatementPeriod" , "abatementRange"] , primitive = ["abatementDateTime" , "abatementString"])]
5784 #[doc = "The date or estimated date that the condition resolved or went into remission. This is called \"abatement\" because of the many overloaded connotations associated with \"remission\" or \"resolution\" - Conditions are never really resolved, but they can abate."]
5785 pub abatement: Option<ConditionAbatementTypeChoice>,
5786 #[primitive]
5787 #[doc = "The recordedDate represents when this particular Condition record was created in the system, which is often a system-generated date."]
5788 pub recordedDate: Option<Box<FHIRDateTime>>,
5789 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Patient" , "RelatedPerson"])]
5790 #[doc = "Individual who recorded the record and takes responsibility for its content."]
5791 pub recorder: Option<Box<Reference>>,
5792 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Patient" , "RelatedPerson"])]
5793 #[doc = "Individual who is making the condition statement."]
5794 pub asserter: Option<Box<Reference>>,
5795 #[doc = "Clinical stage or grade of a condition. May include formal severity assessments."]
5796 pub stage: Option<Vec<ConditionStage>>,
5797 #[doc = "Supporting evidence / manifestations that are the basis of the Condition's verification status, such as evidence that confirmed or refuted the condition."]
5798 pub evidence: Option<Vec<ConditionEvidence>>,
5799 #[doc = "Additional information about the Condition. This is a general notes/comments entry for description of the Condition, its diagnosis and prognosis."]
5800 pub note: Option<Vec<Box<Annotation>>>,
5801}
5802#[derive(
5803 Clone,
5804 Reflect,
5805 Debug,
5806 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5807 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5808)]
5809#[fhir_serialize_type = "typechoice"]
5810#[type_choice_field_name = "source"]
5811pub enum ConsentSourceTypeChoice {
5812 Attachment(Box<Attachment>),
5813 # [reference (targets = ["Consent" , "DocumentReference" , "Contract" , "QuestionnaireResponse"])]
5814 Reference(Box<Reference>),
5815}
5816impl Default for ConsentSourceTypeChoice {
5817 fn default() -> Self {
5818 ConsentSourceTypeChoice::Attachment(Box::new(Default::default()))
5819 }
5820}
5821#[derive(
5822 Clone,
5823 Reflect,
5824 Debug,
5825 Default,
5826 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5827 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5828)]
5829#[fhir_serialize_type = "complex"]
5830#[doc = "The references to the policies that are included in this consent scope. Policies may be organizational, but are often defined jurisdictionally, or in law."]
5831pub struct ConsentPolicy {
5832 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
5833 pub id: Option<String>,
5834 #[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 manageable, 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."]
5835 pub extension: Option<Vec<Box<Extension>>>,
5836 #[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 manageable, 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)."]
5837 pub modifierExtension: Option<Vec<Box<Extension>>>,
5838 #[primitive]
5839 #[doc = "Entity or Organization having regulatory jurisdiction or accountability for enforcing policies pertaining to Consent Directives."]
5840 pub authority: Option<Box<FHIRUri>>,
5841 #[primitive]
5842 #[doc = "The references to the policies that are included in this consent scope. Policies may be organizational, but are often defined jurisdictionally, or in law."]
5843 pub uri: Option<Box<FHIRUri>>,
5844}
5845#[derive(
5846 Clone,
5847 Reflect,
5848 Debug,
5849 Default,
5850 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5851 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5852)]
5853#[fhir_serialize_type = "complex"]
5854#[doc = "Whether a treatment instruction (e.g. artificial respiration yes or no) was verified with the patient, his/her family or another authorized person."]
5855pub struct ConsentVerification {
5856 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
5857 pub id: Option<String>,
5858 #[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 manageable, 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."]
5859 pub extension: Option<Vec<Box<Extension>>>,
5860 #[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 manageable, 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)."]
5861 pub modifierExtension: Option<Vec<Box<Extension>>>,
5862 #[primitive]
5863 #[doc = "Has the instruction been verified."]
5864 pub verified: Box<FHIRBoolean>,
5865 # [reference (targets = ["Patient" , "RelatedPerson"])]
5866 #[doc = "Who verified the instruction (Patient, Relative or other Authorized Person)."]
5867 pub verifiedWith: Option<Box<Reference>>,
5868 #[primitive]
5869 #[doc = "Date verification was collected."]
5870 pub verificationDate: Option<Box<FHIRDateTime>>,
5871}
5872#[derive(
5873 Clone,
5874 Reflect,
5875 Debug,
5876 Default,
5877 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5878 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5879)]
5880#[fhir_serialize_type = "complex"]
5881#[doc = "Who or what is controlled by this rule. Use group to identify a set of actors by some property they share (e.g. 'admitting officers')."]
5882pub struct ConsentProvisionActor {
5883 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
5884 pub id: Option<String>,
5885 #[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 manageable, 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."]
5886 pub extension: Option<Vec<Box<Extension>>>,
5887 #[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 manageable, 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)."]
5888 pub modifierExtension: Option<Vec<Box<Extension>>>,
5889 #[doc = "How the individual is involved in the resources content that is described in the exception."]
5890 pub role: Box<CodeableConcept>,
5891 # [reference (targets = ["Device" , "Group" , "CareTeam" , "Organization" , "Patient" , "Practitioner" , "RelatedPerson" , "PractitionerRole"])]
5892 #[doc = "The resource that identifies the actor. To identify actors by type, use group to identify a set of actors by some property they share (e.g. 'admitting officers')."]
5893 pub reference: Box<Reference>,
5894}
5895#[derive(
5896 Clone,
5897 Reflect,
5898 Debug,
5899 Default,
5900 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5901 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5902)]
5903#[fhir_serialize_type = "complex"]
5904#[doc = "The resources controlled by this rule if specific resources are referenced."]
5905pub struct ConsentProvisionData {
5906 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
5907 pub id: Option<String>,
5908 #[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 manageable, 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."]
5909 pub extension: Option<Vec<Box<Extension>>>,
5910 #[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 manageable, 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)."]
5911 pub modifierExtension: Option<Vec<Box<Extension>>>,
5912 #[primitive]
5913 #[doc = "How the resource reference is interpreted when testing consent restrictions."]
5914 pub meaning: Box<terminology::ConsentDataMeaning>,
5915 # [reference (targets = ["Resource"])]
5916 #[doc = "A reference to a specific resource that defines which resources are covered by this consent."]
5917 pub reference: Box<Reference>,
5918}
5919#[derive(
5920 Clone,
5921 Reflect,
5922 Debug,
5923 Default,
5924 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5925 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5926)]
5927#[fhir_serialize_type = "complex"]
5928#[doc = "An exception to the base policy of this consent. An exception can be an addition or removal of access permissions."]
5929pub struct ConsentProvision {
5930 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
5931 pub id: Option<String>,
5932 #[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 manageable, 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."]
5933 pub extension: Option<Vec<Box<Extension>>>,
5934 #[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 manageable, 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)."]
5935 pub modifierExtension: Option<Vec<Box<Extension>>>,
5936 #[rename_field = "type"]
5937 #[primitive]
5938 #[doc = "Action to take - permit or deny - when the rule conditions are met. Not permitted in root rule, required in all nested rules."]
5939 pub type_: Option<Box<terminology::ConsentProvisionType>>,
5940 #[doc = "The timeframe in this rule is valid."]
5941 pub period: Option<Box<Period>>,
5942 #[doc = "Who or what is controlled by this rule. Use group to identify a set of actors by some property they share (e.g. 'admitting officers')."]
5943 pub actor: Option<Vec<ConsentProvisionActor>>,
5944 #[doc = "Actions controlled by this Rule."]
5945 pub action: Option<Vec<Box<CodeableConcept>>>,
5946 #[doc = "A security label, comprised of 0..* security label fields (Privacy tags), which define which resources are controlled by this exception."]
5947 pub securityLabel: Option<Vec<Box<Coding>>>,
5948 #[doc = "The context of the activities a user is taking - why the user is accessing the data - that are controlled by this rule."]
5949 pub purpose: Option<Vec<Box<Coding>>>,
5950 #[doc = "The class of information covered by this rule. The type can be a FHIR resource type, a profile on a type, or a CDA document, or some other type that indicates what sort of information the consent relates to."]
5951 pub class: Option<Vec<Box<Coding>>>,
5952 #[doc = "If this code is found in an instance, then the rule applies."]
5953 pub code: Option<Vec<Box<CodeableConcept>>>,
5954 #[doc = "Clinical or Operational Relevant period of time that bounds the data controlled by this rule."]
5955 pub dataPeriod: Option<Box<Period>>,
5956 #[doc = "The resources controlled by this rule if specific resources are referenced."]
5957 pub data: Option<Vec<ConsentProvisionData>>,
5958 #[doc = "Rules which provide exceptions to the base rule or subrules."]
5959 pub provision: Option<Vec<ConsentProvision>>,
5960}
5961#[derive(
5962 Clone,
5963 Reflect,
5964 Debug,
5965 Default,
5966 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
5967 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
5968)]
5969#[fhir_serialize_type = "resource"]
5970#[doc = "A record of a healthcare consumer’s choices, which permits or denies identified recipient(s) or recipient role(s) to perform one or more actions within a given policy context, for specific purposes and periods of time."]
5971pub struct Consent {
5972 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
5973 pub id: Option<String>,
5974 #[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."]
5975 pub meta: Option<Box<Meta>>,
5976 #[primitive]
5977 #[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."]
5978 pub implicitRules: Option<Box<FHIRUri>>,
5979 #[primitive]
5980 #[doc = "The base language in which the resource is written."]
5981 pub language: Option<Box<FHIRCode>>,
5982 #[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."]
5983 pub text: Option<Box<Narrative>>,
5984 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
5985 pub contained: Option<Vec<Box<Resource>>>,
5986 #[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 manageable, 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."]
5987 pub extension: Option<Vec<Box<Extension>>>,
5988 #[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 manageable, 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)."]
5989 pub modifierExtension: Option<Vec<Box<Extension>>>,
5990 #[rename_field = "identifier"]
5991 #[doc = "Unique identifier for this copy of the Consent Statement."]
5992 pub identifier_: Option<Vec<Box<Identifier>>>,
5993 #[primitive]
5994 #[doc = "Indicates the current state of this consent."]
5995 pub status: Box<terminology::ConsentStateCodes>,
5996 #[doc = "A selector of the type of consent being presented: ADR, Privacy, Treatment, Research. This list is now extensible."]
5997 pub scope: Box<CodeableConcept>,
5998 #[cardinality(min = 1usize)]
5999 #[doc = "A classification of the type of consents found in the statement. This element supports indexing and retrieval of consent statements."]
6000 pub category: Vec<Box<CodeableConcept>>,
6001 # [reference (targets = ["Patient"])]
6002 #[doc = "The patient/healthcare consumer to whom this consent applies."]
6003 pub patient: Option<Box<Reference>>,
6004 #[primitive]
6005 #[doc = "When this Consent was issued / created / indexed."]
6006 pub dateTime: Option<Box<FHIRDateTime>>,
6007 # [reference (targets = ["Organization" , "Patient" , "Practitioner" , "RelatedPerson" , "PractitionerRole"])]
6008 #[doc = "Either the Grantor, which is the entity responsible for granting the rights listed in a Consent Directive or the Grantee, which is the entity responsible for complying with the Consent Directive, including any obligations or limitations on authorizations and enforcement of prohibitions."]
6009 pub performer: Option<Vec<Box<Reference>>>,
6010 # [reference (targets = ["Organization"])]
6011 #[doc = "The organization that manages the consent, and the framework within which it is executed."]
6012 pub organization: Option<Vec<Box<Reference>>>,
6013 # [type_choice_variants (complex = ["sourceAttachment" , "sourceReference"] , primitive = [])]
6014 #[doc = "The source on which this consent statement is based. The source might be a scanned original paper form, or a reference to a consent that links back to such a source, a reference to a document repository (e.g. XDS) that stores the original consent document."]
6015 pub source: Option<ConsentSourceTypeChoice>,
6016 #[doc = "The references to the policies that are included in this consent scope. Policies may be organizational, but are often defined jurisdictionally, or in law."]
6017 pub policy: Option<Vec<ConsentPolicy>>,
6018 #[doc = "A reference to the specific base computable regulation or policy."]
6019 pub policyRule: Option<Box<CodeableConcept>>,
6020 #[doc = "Whether a treatment instruction (e.g. artificial respiration yes or no) was verified with the patient, his/her family or another authorized person."]
6021 pub verification: Option<Vec<ConsentVerification>>,
6022 #[doc = "An exception to the base policy of this consent. An exception can be an addition or removal of access permissions."]
6023 pub provision: Option<ConsentProvision>,
6024}
6025#[derive(
6026 Clone,
6027 Reflect,
6028 Debug,
6029 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6030 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6031)]
6032#[fhir_serialize_type = "typechoice"]
6033#[type_choice_field_name = "topic"]
6034pub enum ContractTopicTypeChoice {
6035 CodeableConcept(Box<CodeableConcept>),
6036 # [reference (targets = ["Resource"])]
6037 Reference(Box<Reference>),
6038}
6039impl Default for ContractTopicTypeChoice {
6040 fn default() -> Self {
6041 ContractTopicTypeChoice::CodeableConcept(Box::new(Default::default()))
6042 }
6043}
6044#[derive(
6045 Clone,
6046 Reflect,
6047 Debug,
6048 Default,
6049 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6050 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6051)]
6052#[fhir_serialize_type = "complex"]
6053#[doc = "Precusory content developed with a focus and intent of supporting the formation a Contract instance, which may be associated with and transformable into a Contract."]
6054pub struct ContractContentDefinition {
6055 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
6056 pub id: Option<String>,
6057 #[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 manageable, 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."]
6058 pub extension: Option<Vec<Box<Extension>>>,
6059 #[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 manageable, 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)."]
6060 pub modifierExtension: Option<Vec<Box<Extension>>>,
6061 #[rename_field = "type"]
6062 #[doc = "Precusory content structure and use, i.e., a boilerplate, template, application for a contract such as an insurance policy or benefits under a program, e.g., workers compensation."]
6063 pub type_: Box<CodeableConcept>,
6064 #[doc = "Detailed Precusory content type."]
6065 pub subType: Option<Box<CodeableConcept>>,
6066 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
6067 #[doc = "The individual or organization that published the Contract precursor content."]
6068 pub publisher: Option<Box<Reference>>,
6069 #[primitive]
6070 #[doc = "The date (and optionally time) when the contract was published. 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 contract changes."]
6071 pub publicationDate: Option<Box<FHIRDateTime>>,
6072 #[primitive]
6073 #[doc = "amended | appended | cancelled | disputed | entered-in-error | executable | executed | negotiable | offered | policy | rejected | renewed | revoked | resolved | terminated."]
6074 pub publicationStatus: Box<terminology::ContractPublicationstatus>,
6075 #[primitive]
6076 #[doc = "A copyright statement relating to Contract precursor content. Copyright statements are generally legal restrictions on the use and publishing of the Contract precursor content."]
6077 pub copyright: Option<Box<FHIRMarkdown>>,
6078}
6079#[derive(
6080 Clone,
6081 Reflect,
6082 Debug,
6083 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6084 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6085)]
6086#[fhir_serialize_type = "typechoice"]
6087#[type_choice_field_name = "topic"]
6088pub enum ContractTermTopicTypeChoice {
6089 CodeableConcept(Box<CodeableConcept>),
6090 # [reference (targets = ["Resource"])]
6091 Reference(Box<Reference>),
6092}
6093impl Default for ContractTermTopicTypeChoice {
6094 fn default() -> Self {
6095 ContractTermTopicTypeChoice::CodeableConcept(Box::new(Default::default()))
6096 }
6097}
6098#[derive(
6099 Clone,
6100 Reflect,
6101 Debug,
6102 Default,
6103 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6104 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6105)]
6106#[fhir_serialize_type = "complex"]
6107#[doc = "Security labels that protect the handling of information about the term and its elements, which may be specifically identified.."]
6108pub struct ContractTermSecurityLabel {
6109 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
6110 pub id: Option<String>,
6111 #[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 manageable, 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."]
6112 pub extension: Option<Vec<Box<Extension>>>,
6113 #[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 manageable, 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)."]
6114 pub modifierExtension: Option<Vec<Box<Extension>>>,
6115 #[primitive]
6116 #[doc = "Number used to link this term or term element to the applicable Security Label."]
6117 pub number: Option<Vec<Box<FHIRUnsignedInt>>>,
6118 #[doc = "Security label privacy tag that species the level of confidentiality protection required for this term and/or term elements."]
6119 pub classification: Box<Coding>,
6120 #[doc = "Security label privacy tag that species the applicable privacy and security policies governing this term and/or term elements."]
6121 pub category: Option<Vec<Box<Coding>>>,
6122 #[doc = "Security label privacy tag that species the manner in which term and/or term elements are to be protected."]
6123 pub control: Option<Vec<Box<Coding>>>,
6124}
6125#[derive(
6126 Clone,
6127 Reflect,
6128 Debug,
6129 Default,
6130 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6131 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6132)]
6133#[fhir_serialize_type = "complex"]
6134#[doc = "Offer Recipient."]
6135pub struct ContractTermOfferParty {
6136 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
6137 pub id: Option<String>,
6138 #[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 manageable, 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."]
6139 pub extension: Option<Vec<Box<Extension>>>,
6140 #[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 manageable, 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)."]
6141 pub modifierExtension: Option<Vec<Box<Extension>>>,
6142 #[cardinality(min = 1usize)]
6143 # [reference (targets = ["Patient" , "RelatedPerson" , "Practitioner" , "PractitionerRole" , "Device" , "Group" , "Organization"])]
6144 #[doc = "Participant in the offer."]
6145 pub reference: Vec<Box<Reference>>,
6146 #[doc = "How the party participates in the offer."]
6147 pub role: Box<CodeableConcept>,
6148}
6149#[derive(
6150 Clone,
6151 Reflect,
6152 Debug,
6153 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6154 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6155)]
6156#[fhir_serialize_type = "typechoice"]
6157#[type_choice_field_name = "value"]
6158pub enum ContractTermOfferAnswerValueTypeChoice {
6159 Boolean(Box<FHIRBoolean>),
6160 Decimal(Box<FHIRDecimal>),
6161 Integer(Box<FHIRInteger>),
6162 Date(Box<FHIRDate>),
6163 DateTime(Box<FHIRDateTime>),
6164 Time(Box<FHIRTime>),
6165 String(Box<FHIRString>),
6166 Uri(Box<FHIRUri>),
6167 Attachment(Box<Attachment>),
6168 Coding(Box<Coding>),
6169 Quantity(Box<Quantity>),
6170 # [reference (targets = ["Resource"])]
6171 Reference(Box<Reference>),
6172}
6173impl Default for ContractTermOfferAnswerValueTypeChoice {
6174 fn default() -> Self {
6175 ContractTermOfferAnswerValueTypeChoice::Boolean(Box::new(Default::default()))
6176 }
6177}
6178#[derive(
6179 Clone,
6180 Reflect,
6181 Debug,
6182 Default,
6183 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6184 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6185)]
6186#[fhir_serialize_type = "complex"]
6187#[doc = "Response to offer text."]
6188pub struct ContractTermOfferAnswer {
6189 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
6190 pub id: Option<String>,
6191 #[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 manageable, 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."]
6192 pub extension: Option<Vec<Box<Extension>>>,
6193 #[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 manageable, 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)."]
6194 pub modifierExtension: Option<Vec<Box<Extension>>>,
6195 # [type_choice_variants (complex = ["valueAttachment" , "valueCoding" , "valueQuantity" , "valueReference"] , primitive = ["valueBoolean" , "valueDecimal" , "valueInteger" , "valueDate" , "valueDateTime" , "valueTime" , "valueString" , "valueUri"])]
6196 #[doc = "Response to an offer clause or question text, which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warrently duration, or whether biospecimen may be used for further research."]
6197 pub value: ContractTermOfferAnswerValueTypeChoice,
6198}
6199#[derive(
6200 Clone,
6201 Reflect,
6202 Debug,
6203 Default,
6204 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6205 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6206)]
6207#[fhir_serialize_type = "complex"]
6208#[doc = "The matter of concern in the context of this provision of the agrement."]
6209pub struct ContractTermOffer {
6210 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
6211 pub id: Option<String>,
6212 #[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 manageable, 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."]
6213 pub extension: Option<Vec<Box<Extension>>>,
6214 #[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 manageable, 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)."]
6215 pub modifierExtension: Option<Vec<Box<Extension>>>,
6216 #[rename_field = "identifier"]
6217 #[doc = "Unique identifier for this particular Contract Provision."]
6218 pub identifier_: Option<Vec<Box<Identifier>>>,
6219 #[doc = "Offer Recipient."]
6220 pub party: Option<Vec<ContractTermOfferParty>>,
6221 # [reference (targets = ["Resource"])]
6222 #[doc = "The owner of an asset has the residual control rights over the asset: the right to decide all usages of the asset in any way not inconsistent with a prior contract, custom, or law (Hart, 1995, p. 30)."]
6223 pub topic: Option<Box<Reference>>,
6224 #[rename_field = "type"]
6225 #[doc = "Type of Contract Provision such as specific requirements, purposes for actions, obligations, prohibitions, e.g. life time maximum benefit."]
6226 pub type_: Option<Box<CodeableConcept>>,
6227 #[doc = "Type of choice made by accepting party with respect to an offer made by an offeror/ grantee."]
6228 pub decision: Option<Box<CodeableConcept>>,
6229 #[doc = "How the decision about a Contract was conveyed."]
6230 pub decisionMode: Option<Vec<Box<CodeableConcept>>>,
6231 #[doc = "Response to offer text."]
6232 pub answer: Option<Vec<ContractTermOfferAnswer>>,
6233 #[primitive]
6234 #[doc = "Human readable form of this Contract Offer."]
6235 pub text: Option<Box<FHIRString>>,
6236 #[primitive]
6237 #[doc = "The id of the clause or question text of the offer in the referenced questionnaire/response."]
6238 pub linkId: Option<Vec<Box<FHIRString>>>,
6239 #[primitive]
6240 #[doc = "Security labels that protects the offer."]
6241 pub securityLabelNumber: Option<Vec<Box<FHIRUnsignedInt>>>,
6242}
6243#[derive(
6244 Clone,
6245 Reflect,
6246 Debug,
6247 Default,
6248 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6249 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6250)]
6251#[fhir_serialize_type = "complex"]
6252#[doc = "Circumstance of the asset."]
6253pub struct ContractTermAssetContext {
6254 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
6255 pub id: Option<String>,
6256 #[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 manageable, 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."]
6257 pub extension: Option<Vec<Box<Extension>>>,
6258 #[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 manageable, 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)."]
6259 pub modifierExtension: Option<Vec<Box<Extension>>>,
6260 # [reference (targets = ["Resource"])]
6261 #[doc = "Asset context reference may include the creator, custodian, or owning Person or Organization (e.g., bank, repository), location held, e.g., building, jurisdiction."]
6262 pub reference: Option<Box<Reference>>,
6263 #[doc = "Coded representation of the context generally or of the Referenced entity, such as the asset holder type or location."]
6264 pub code: Option<Vec<Box<CodeableConcept>>>,
6265 #[primitive]
6266 #[doc = "Context description."]
6267 pub text: Option<Box<FHIRString>>,
6268}
6269#[derive(
6270 Clone,
6271 Reflect,
6272 Debug,
6273 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6274 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6275)]
6276#[fhir_serialize_type = "typechoice"]
6277#[type_choice_field_name = "entity"]
6278pub enum ContractTermAssetValuedItemEntityTypeChoice {
6279 CodeableConcept(Box<CodeableConcept>),
6280 # [reference (targets = ["Resource"])]
6281 Reference(Box<Reference>),
6282}
6283impl Default for ContractTermAssetValuedItemEntityTypeChoice {
6284 fn default() -> Self {
6285 ContractTermAssetValuedItemEntityTypeChoice::CodeableConcept(Box::new(Default::default()))
6286 }
6287}
6288#[derive(
6289 Clone,
6290 Reflect,
6291 Debug,
6292 Default,
6293 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6294 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6295)]
6296#[fhir_serialize_type = "complex"]
6297#[doc = "Contract Valued Item List."]
6298pub struct ContractTermAssetValuedItem {
6299 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
6300 pub id: Option<String>,
6301 #[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 manageable, 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."]
6302 pub extension: Option<Vec<Box<Extension>>>,
6303 #[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 manageable, 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)."]
6304 pub modifierExtension: Option<Vec<Box<Extension>>>,
6305 # [type_choice_variants (complex = ["entityCodeableConcept" , "entityReference"] , primitive = [])]
6306 #[doc = "Specific type of Contract Valued Item that may be priced."]
6307 pub entity: Option<ContractTermAssetValuedItemEntityTypeChoice>,
6308 #[rename_field = "identifier"]
6309 #[doc = "Identifies a Contract Valued Item instance."]
6310 pub identifier_: Option<Box<Identifier>>,
6311 #[primitive]
6312 #[doc = "Indicates the time during which this Contract ValuedItem information is effective."]
6313 pub effectiveTime: Option<Box<FHIRDateTime>>,
6314 #[doc = "Specifies the units by which the Contract Valued Item is measured or counted, and quantifies the countable or measurable Contract Valued Item instances."]
6315 pub quantity: Option<Box<Quantity>>,
6316 #[doc = "A Contract Valued Item unit valuation measure."]
6317 pub unitPrice: Option<Box<Money>>,
6318 #[primitive]
6319 #[doc = "A real number that represents a multiplier used in determining the overall value of the Contract Valued Item delivered. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount."]
6320 pub factor: Option<Box<FHIRDecimal>>,
6321 #[primitive]
6322 #[doc = "An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the Contract Valued Item delivered. The concept of Points allows for assignment of point values for a Contract Valued Item, such that a monetary amount can be assigned to each point."]
6323 pub points: Option<Box<FHIRDecimal>>,
6324 #[doc = "Expresses the product of the Contract Valued Item unitQuantity and the unitPriceAmt. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied."]
6325 pub net: Option<Box<Money>>,
6326 #[primitive]
6327 #[doc = "Terms of valuation."]
6328 pub payment: Option<Box<FHIRString>>,
6329 #[primitive]
6330 #[doc = "When payment is due."]
6331 pub paymentDate: Option<Box<FHIRDateTime>>,
6332 # [reference (targets = ["Organization" , "Patient" , "Practitioner" , "PractitionerRole" , "RelatedPerson"])]
6333 #[doc = "Who will make payment."]
6334 pub responsible: Option<Box<Reference>>,
6335 # [reference (targets = ["Organization" , "Patient" , "Practitioner" , "PractitionerRole" , "RelatedPerson"])]
6336 #[doc = "Who will receive payment."]
6337 pub recipient: Option<Box<Reference>>,
6338 #[primitive]
6339 #[doc = "Id of the clause or question text related to the context of this valuedItem in the referenced form or QuestionnaireResponse."]
6340 pub linkId: Option<Vec<Box<FHIRString>>>,
6341 #[primitive]
6342 #[doc = "A set of security labels that define which terms are controlled by this condition."]
6343 pub securityLabelNumber: Option<Vec<Box<FHIRUnsignedInt>>>,
6344}
6345#[derive(
6346 Clone,
6347 Reflect,
6348 Debug,
6349 Default,
6350 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6351 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6352)]
6353#[fhir_serialize_type = "complex"]
6354#[doc = "Contract Term Asset List."]
6355pub struct ContractTermAsset {
6356 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
6357 pub id: Option<String>,
6358 #[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 manageable, 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."]
6359 pub extension: Option<Vec<Box<Extension>>>,
6360 #[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 manageable, 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)."]
6361 pub modifierExtension: Option<Vec<Box<Extension>>>,
6362 #[doc = "Differentiates the kind of the asset ."]
6363 pub scope: Option<Box<CodeableConcept>>,
6364 #[rename_field = "type"]
6365 #[doc = "Target entity type about which the term may be concerned."]
6366 pub type_: Option<Vec<Box<CodeableConcept>>>,
6367 # [reference (targets = ["Resource"])]
6368 #[doc = "Associated entities."]
6369 pub typeReference: Option<Vec<Box<Reference>>>,
6370 #[doc = "May be a subtype or part of an offered asset."]
6371 pub subtype: Option<Vec<Box<CodeableConcept>>>,
6372 #[doc = "Specifies the applicability of the term to an asset resource instance, and instances it refers to orinstances that refer to it, and/or are owned by the offeree."]
6373 pub relationship: Option<Box<Coding>>,
6374 #[doc = "Circumstance of the asset."]
6375 pub context: Option<Vec<ContractTermAssetContext>>,
6376 #[primitive]
6377 #[doc = "Description of the quality and completeness of the asset that imay be a factor in its valuation."]
6378 pub condition: Option<Box<FHIRString>>,
6379 #[doc = "Type of Asset availability for use or ownership."]
6380 pub periodType: Option<Vec<Box<CodeableConcept>>>,
6381 #[doc = "Asset relevant contractual time period."]
6382 pub period: Option<Vec<Box<Period>>>,
6383 #[doc = "Time period of asset use."]
6384 pub usePeriod: Option<Vec<Box<Period>>>,
6385 #[primitive]
6386 #[doc = "Clause or question text (Prose Object) concerning the asset in a linked form, such as a QuestionnaireResponse used in the formation of the contract."]
6387 pub text: Option<Box<FHIRString>>,
6388 #[primitive]
6389 #[doc = "Id [identifier??] of the clause or question text about the asset in the referenced form or QuestionnaireResponse."]
6390 pub linkId: Option<Vec<Box<FHIRString>>>,
6391 #[doc = "Response to assets."]
6392 pub answer: Option<Vec<ContractTermOfferAnswer>>,
6393 #[primitive]
6394 #[doc = "Security labels that protects the asset."]
6395 pub securityLabelNumber: Option<Vec<Box<FHIRUnsignedInt>>>,
6396 #[doc = "Contract Valued Item List."]
6397 pub valuedItem: Option<Vec<ContractTermAssetValuedItem>>,
6398}
6399#[derive(
6400 Clone,
6401 Reflect,
6402 Debug,
6403 Default,
6404 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6405 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6406)]
6407#[fhir_serialize_type = "complex"]
6408#[doc = "Entity of the action."]
6409pub struct ContractTermActionSubject {
6410 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
6411 pub id: Option<String>,
6412 #[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 manageable, 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."]
6413 pub extension: Option<Vec<Box<Extension>>>,
6414 #[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 manageable, 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)."]
6415 pub modifierExtension: Option<Vec<Box<Extension>>>,
6416 #[cardinality(min = 1usize)]
6417 # [reference (targets = ["Patient" , "RelatedPerson" , "Practitioner" , "PractitionerRole" , "Device" , "Group" , "Organization"])]
6418 #[doc = "The entity the action is performed or not performed on or for."]
6419 pub reference: Vec<Box<Reference>>,
6420 #[doc = "Role type of agent assigned roles in this Contract."]
6421 pub role: Option<Box<CodeableConcept>>,
6422}
6423#[derive(
6424 Clone,
6425 Reflect,
6426 Debug,
6427 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6428 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6429)]
6430#[fhir_serialize_type = "typechoice"]
6431#[type_choice_field_name = "occurrence"]
6432pub enum ContractTermActionOccurrenceTypeChoice {
6433 DateTime(Box<FHIRDateTime>),
6434 Period(Box<Period>),
6435 Timing(Box<Timing>),
6436}
6437impl Default for ContractTermActionOccurrenceTypeChoice {
6438 fn default() -> Self {
6439 ContractTermActionOccurrenceTypeChoice::DateTime(Box::new(Default::default()))
6440 }
6441}
6442#[derive(
6443 Clone,
6444 Reflect,
6445 Debug,
6446 Default,
6447 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6448 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6449)]
6450#[fhir_serialize_type = "complex"]
6451#[doc = "An actor taking a role in an activity for which it can be assigned some degree of responsibility for the activity taking place."]
6452pub struct ContractTermAction {
6453 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
6454 pub id: Option<String>,
6455 #[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 manageable, 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."]
6456 pub extension: Option<Vec<Box<Extension>>>,
6457 #[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 manageable, 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)."]
6458 pub modifierExtension: Option<Vec<Box<Extension>>>,
6459 #[primitive]
6460 #[doc = "True if the term prohibits the action."]
6461 pub doNotPerform: Option<Box<FHIRBoolean>>,
6462 #[rename_field = "type"]
6463 #[doc = "Activity or service obligation to be done or not done, performed or not performed, effectuated or not by this Contract term."]
6464 pub type_: Box<CodeableConcept>,
6465 #[doc = "Entity of the action."]
6466 pub subject: Option<Vec<ContractTermActionSubject>>,
6467 #[doc = "Reason or purpose for the action stipulated by this Contract Provision."]
6468 pub intent: Box<CodeableConcept>,
6469 #[primitive]
6470 #[doc = "Id [identifier??] of the clause or question text related to this action in the referenced form or QuestionnaireResponse."]
6471 pub linkId: Option<Vec<Box<FHIRString>>>,
6472 #[doc = "Current state of the term action."]
6473 pub status: Box<CodeableConcept>,
6474 # [reference (targets = ["Encounter" , "EpisodeOfCare"])]
6475 #[doc = "Encounter or Episode with primary association to specified term activity."]
6476 pub context: Option<Box<Reference>>,
6477 #[primitive]
6478 #[doc = "Id [identifier??] of the clause or question text related to the requester of this action in the referenced form or QuestionnaireResponse."]
6479 pub contextLinkId: Option<Vec<Box<FHIRString>>>,
6480 # [type_choice_variants (complex = ["occurrencePeriod" , "occurrenceTiming"] , primitive = ["occurrenceDateTime"])]
6481 #[doc = "When action happens."]
6482 pub occurrence: Option<ContractTermActionOccurrenceTypeChoice>,
6483 # [reference (targets = ["Patient" , "RelatedPerson" , "Practitioner" , "PractitionerRole" , "Device" , "Group" , "Organization"])]
6484 #[doc = "Who or what initiated the action and has responsibility for its activation."]
6485 pub requester: Option<Vec<Box<Reference>>>,
6486 #[primitive]
6487 #[doc = "Id [identifier??] of the clause or question text related to the requester of this action in the referenced form or QuestionnaireResponse."]
6488 pub requesterLinkId: Option<Vec<Box<FHIRString>>>,
6489 #[doc = "The type of individual that is desired or required to perform or not perform the action."]
6490 pub performerType: Option<Vec<Box<CodeableConcept>>>,
6491 #[doc = "The type of role or competency of an individual desired or required to perform or not perform the action."]
6492 pub performerRole: Option<Box<CodeableConcept>>,
6493 # [reference (targets = ["RelatedPerson" , "Patient" , "Practitioner" , "PractitionerRole" , "CareTeam" , "Device" , "Substance" , "Organization" , "Location"])]
6494 #[doc = "Indicates who or what is being asked to perform (or not perform) the ction."]
6495 pub performer: Option<Box<Reference>>,
6496 #[primitive]
6497 #[doc = "Id [identifier??] of the clause or question text related to the reason type or reference of this action in the referenced form or QuestionnaireResponse."]
6498 pub performerLinkId: Option<Vec<Box<FHIRString>>>,
6499 #[doc = "Rationale for the action to be performed or not performed. Describes why the action is permitted or prohibited."]
6500 pub reasonCode: Option<Vec<Box<CodeableConcept>>>,
6501 # [reference (targets = ["Condition" , "Observation" , "DiagnosticReport" , "DocumentReference" , "Questionnaire" , "QuestionnaireResponse"])]
6502 #[doc = "Indicates another resource whose existence justifies permitting or not permitting this action."]
6503 pub reasonReference: Option<Vec<Box<Reference>>>,
6504 #[primitive]
6505 #[doc = "Describes why the action is to be performed or not performed in textual form."]
6506 pub reason: Option<Vec<Box<FHIRString>>>,
6507 #[primitive]
6508 #[doc = "Id [identifier??] of the clause or question text related to the reason type or reference of this action in the referenced form or QuestionnaireResponse."]
6509 pub reasonLinkId: Option<Vec<Box<FHIRString>>>,
6510 #[doc = "Comments made about the term action made by the requester, performer, subject or other participants."]
6511 pub note: Option<Vec<Box<Annotation>>>,
6512 #[primitive]
6513 #[doc = "Security labels that protects the action."]
6514 pub securityLabelNumber: Option<Vec<Box<FHIRUnsignedInt>>>,
6515}
6516#[derive(
6517 Clone,
6518 Reflect,
6519 Debug,
6520 Default,
6521 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6522 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6523)]
6524#[fhir_serialize_type = "complex"]
6525#[doc = "One or more Contract Provisions, which may be related and conveyed as a group, and may contain nested groups."]
6526pub struct ContractTerm {
6527 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
6528 pub id: Option<String>,
6529 #[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 manageable, 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."]
6530 pub extension: Option<Vec<Box<Extension>>>,
6531 #[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 manageable, 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)."]
6532 pub modifierExtension: Option<Vec<Box<Extension>>>,
6533 #[rename_field = "identifier"]
6534 #[doc = "Unique identifier for this particular Contract Provision."]
6535 pub identifier_: Option<Box<Identifier>>,
6536 #[primitive]
6537 #[doc = "When this Contract Provision was issued."]
6538 pub issued: Option<Box<FHIRDateTime>>,
6539 #[doc = "Relevant time or time-period when this Contract Provision is applicable."]
6540 pub applies: Option<Box<Period>>,
6541 # [type_choice_variants (complex = ["topicCodeableConcept" , "topicReference"] , primitive = [])]
6542 #[doc = "The entity that the term applies to."]
6543 pub topic: Option<ContractTermTopicTypeChoice>,
6544 #[rename_field = "type"]
6545 #[doc = "A legal clause or condition contained within a contract that requires one or both parties to perform a particular requirement by some specified time or prevents one or both parties from performing a particular requirement by some specified time."]
6546 pub type_: Option<Box<CodeableConcept>>,
6547 #[doc = "A specialized legal clause or condition based on overarching contract type."]
6548 pub subType: Option<Box<CodeableConcept>>,
6549 #[primitive]
6550 #[doc = "Statement of a provision in a policy or a contract."]
6551 pub text: Option<Box<FHIRString>>,
6552 #[doc = "Security labels that protect the handling of information about the term and its elements, which may be specifically identified.."]
6553 pub securityLabel: Option<Vec<ContractTermSecurityLabel>>,
6554 #[doc = "The matter of concern in the context of this provision of the agrement."]
6555 pub offer: ContractTermOffer,
6556 #[doc = "Contract Term Asset List."]
6557 pub asset: Option<Vec<ContractTermAsset>>,
6558 #[doc = "An actor taking a role in an activity for which it can be assigned some degree of responsibility for the activity taking place."]
6559 pub action: Option<Vec<ContractTermAction>>,
6560 #[doc = "Nested group of Contract Provisions."]
6561 pub group: Option<Vec<ContractTerm>>,
6562}
6563#[derive(
6564 Clone,
6565 Reflect,
6566 Debug,
6567 Default,
6568 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6569 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6570)]
6571#[fhir_serialize_type = "complex"]
6572#[doc = "Parties with legal standing in the Contract, including the principal parties, the grantor(s) and grantee(s), which are any person or organization bound by the contract, and any ancillary parties, which facilitate the execution of the contract such as a notary or witness."]
6573pub struct ContractSigner {
6574 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
6575 pub id: Option<String>,
6576 #[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 manageable, 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."]
6577 pub extension: Option<Vec<Box<Extension>>>,
6578 #[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 manageable, 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)."]
6579 pub modifierExtension: Option<Vec<Box<Extension>>>,
6580 #[rename_field = "type"]
6581 #[doc = "Role of this Contract signer, e.g. notary, grantee."]
6582 pub type_: Box<Coding>,
6583 # [reference (targets = ["Organization" , "Patient" , "Practitioner" , "PractitionerRole" , "RelatedPerson"])]
6584 #[doc = "Party which is a signator to this Contract."]
6585 pub party: Box<Reference>,
6586 #[cardinality(min = 1usize)]
6587 #[doc = "Legally binding Contract DSIG signature contents in Base64."]
6588 pub signature: Vec<Box<Signature>>,
6589}
6590#[derive(
6591 Clone,
6592 Reflect,
6593 Debug,
6594 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6595 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6596)]
6597#[fhir_serialize_type = "typechoice"]
6598#[type_choice_field_name = "content"]
6599pub enum ContractFriendlyContentTypeChoice {
6600 Attachment(Box<Attachment>),
6601 # [reference (targets = ["Composition" , "DocumentReference" , "QuestionnaireResponse"])]
6602 Reference(Box<Reference>),
6603}
6604impl Default for ContractFriendlyContentTypeChoice {
6605 fn default() -> Self {
6606 ContractFriendlyContentTypeChoice::Attachment(Box::new(Default::default()))
6607 }
6608}
6609#[derive(
6610 Clone,
6611 Reflect,
6612 Debug,
6613 Default,
6614 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6615 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6616)]
6617#[fhir_serialize_type = "complex"]
6618#[doc = "The \"patient friendly language\" versionof the Contract in whole or in parts. \"Patient friendly language\" means the representation of the Contract and Contract Provisions in a manner that is readily accessible and understandable by a layperson in accordance with best practices for communication styles that ensure that those agreeing to or signing the Contract understand the roles, actions, obligations, responsibilities, and implication of the agreement."]
6619pub struct ContractFriendly {
6620 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
6621 pub id: Option<String>,
6622 #[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 manageable, 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."]
6623 pub extension: Option<Vec<Box<Extension>>>,
6624 #[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 manageable, 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)."]
6625 pub modifierExtension: Option<Vec<Box<Extension>>>,
6626 # [type_choice_variants (complex = ["contentAttachment" , "contentReference"] , primitive = [])]
6627 #[doc = "Human readable rendering of this Contract in a format and representation intended to enhance comprehension and ensure understandability."]
6628 pub content: ContractFriendlyContentTypeChoice,
6629}
6630#[derive(
6631 Clone,
6632 Reflect,
6633 Debug,
6634 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6635 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6636)]
6637#[fhir_serialize_type = "typechoice"]
6638#[type_choice_field_name = "content"]
6639pub enum ContractLegalContentTypeChoice {
6640 Attachment(Box<Attachment>),
6641 # [reference (targets = ["Composition" , "DocumentReference" , "QuestionnaireResponse"])]
6642 Reference(Box<Reference>),
6643}
6644impl Default for ContractLegalContentTypeChoice {
6645 fn default() -> Self {
6646 ContractLegalContentTypeChoice::Attachment(Box::new(Default::default()))
6647 }
6648}
6649#[derive(
6650 Clone,
6651 Reflect,
6652 Debug,
6653 Default,
6654 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6655 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6656)]
6657#[fhir_serialize_type = "complex"]
6658#[doc = "List of Legal expressions or representations of this Contract."]
6659pub struct ContractLegal {
6660 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
6661 pub id: Option<String>,
6662 #[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 manageable, 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."]
6663 pub extension: Option<Vec<Box<Extension>>>,
6664 #[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 manageable, 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)."]
6665 pub modifierExtension: Option<Vec<Box<Extension>>>,
6666 # [type_choice_variants (complex = ["contentAttachment" , "contentReference"] , primitive = [])]
6667 #[doc = "Contract legal text in human renderable form."]
6668 pub content: ContractLegalContentTypeChoice,
6669}
6670#[derive(
6671 Clone,
6672 Reflect,
6673 Debug,
6674 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6675 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6676)]
6677#[fhir_serialize_type = "typechoice"]
6678#[type_choice_field_name = "content"]
6679pub enum ContractRuleContentTypeChoice {
6680 Attachment(Box<Attachment>),
6681 # [reference (targets = ["DocumentReference"])]
6682 Reference(Box<Reference>),
6683}
6684impl Default for ContractRuleContentTypeChoice {
6685 fn default() -> Self {
6686 ContractRuleContentTypeChoice::Attachment(Box::new(Default::default()))
6687 }
6688}
6689#[derive(
6690 Clone,
6691 Reflect,
6692 Debug,
6693 Default,
6694 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6695 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6696)]
6697#[fhir_serialize_type = "complex"]
6698#[doc = "List of Computable Policy Rule Language Representations of this Contract."]
6699pub struct ContractRule {
6700 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
6701 pub id: Option<String>,
6702 #[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 manageable, 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."]
6703 pub extension: Option<Vec<Box<Extension>>>,
6704 #[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 manageable, 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)."]
6705 pub modifierExtension: Option<Vec<Box<Extension>>>,
6706 # [type_choice_variants (complex = ["contentAttachment" , "contentReference"] , primitive = [])]
6707 #[doc = "Computable Contract conveyed using a policy rule language (e.g. XACML, DKAL, SecPal)."]
6708 pub content: ContractRuleContentTypeChoice,
6709}
6710#[derive(
6711 Clone,
6712 Reflect,
6713 Debug,
6714 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6715 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6716)]
6717#[fhir_serialize_type = "typechoice"]
6718#[type_choice_field_name = "legallyBinding"]
6719pub enum ContractLegallyBindingTypeChoice {
6720 Attachment(Box<Attachment>),
6721 # [reference (targets = ["Composition" , "DocumentReference" , "QuestionnaireResponse" , "Contract"])]
6722 Reference(Box<Reference>),
6723}
6724impl Default for ContractLegallyBindingTypeChoice {
6725 fn default() -> Self {
6726 ContractLegallyBindingTypeChoice::Attachment(Box::new(Default::default()))
6727 }
6728}
6729#[derive(
6730 Clone,
6731 Reflect,
6732 Debug,
6733 Default,
6734 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6735 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6736)]
6737#[fhir_serialize_type = "resource"]
6738#[doc = "Legally enforceable, formally recorded unilateral or bilateral directive i.e., a policy or agreement."]
6739pub struct Contract {
6740 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
6741 pub id: Option<String>,
6742 #[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."]
6743 pub meta: Option<Box<Meta>>,
6744 #[primitive]
6745 #[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."]
6746 pub implicitRules: Option<Box<FHIRUri>>,
6747 #[primitive]
6748 #[doc = "The base language in which the resource is written."]
6749 pub language: Option<Box<FHIRCode>>,
6750 #[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."]
6751 pub text: Option<Box<Narrative>>,
6752 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
6753 pub contained: Option<Vec<Box<Resource>>>,
6754 #[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 manageable, 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."]
6755 pub extension: Option<Vec<Box<Extension>>>,
6756 #[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 manageable, 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)."]
6757 pub modifierExtension: Option<Vec<Box<Extension>>>,
6758 #[rename_field = "identifier"]
6759 #[doc = "Unique identifier for this Contract or a derivative that references a Source Contract."]
6760 pub identifier_: Option<Vec<Box<Identifier>>>,
6761 #[primitive]
6762 #[doc = "Canonical identifier for this contract, represented as a URI (globally unique)."]
6763 pub url: Option<Box<FHIRUri>>,
6764 #[primitive]
6765 #[doc = "An edition identifier used for business purposes to label business significant variants."]
6766 pub version: Option<Box<FHIRString>>,
6767 #[primitive]
6768 #[doc = "The status of the resource instance."]
6769 pub status: Option<Box<terminology::ContractStatus>>,
6770 #[doc = "Legal states of the formation of a legal instrument, which is a formally executed written document that can be formally attributed to its author, records and formally expresses a legally enforceable act, process, or contractual duty, obligation, or right, and therefore evidences that act, process, or agreement."]
6771 pub legalState: Option<Box<CodeableConcept>>,
6772 # [reference (targets = ["Contract"])]
6773 #[doc = "The URL pointing to a FHIR-defined Contract Definition that is adhered to in whole or part by this Contract."]
6774 pub instantiatesCanonical: Option<Box<Reference>>,
6775 #[primitive]
6776 #[doc = "The URL pointing to an externally maintained definition that is adhered to in whole or in part by this Contract."]
6777 pub instantiatesUri: Option<Box<FHIRUri>>,
6778 #[doc = "The minimal content derived from the basal information source at a specific stage in its lifecycle."]
6779 pub contentDerivative: Option<Box<CodeableConcept>>,
6780 #[primitive]
6781 #[doc = "When this Contract was issued."]
6782 pub issued: Option<Box<FHIRDateTime>>,
6783 #[doc = "Relevant time or time-period when this Contract is applicable."]
6784 pub applies: Option<Box<Period>>,
6785 #[doc = "Event resulting in discontinuation or termination of this Contract instance by one or more parties to the contract."]
6786 pub expirationType: Option<Box<CodeableConcept>>,
6787 # [reference (targets = ["Resource"])]
6788 #[doc = "The target entity impacted by or of interest to parties to the agreement."]
6789 pub subject: Option<Vec<Box<Reference>>>,
6790 # [reference (targets = ["Organization"])]
6791 #[doc = "A formally or informally recognized grouping of people, principals, organizations, or jurisdictions formed for the purpose of achieving some form of collective action such as the promulgation, administration and enforcement of contracts and policies."]
6792 pub authority: Option<Vec<Box<Reference>>>,
6793 # [reference (targets = ["Location"])]
6794 #[doc = "Recognized governance framework or system operating with a circumscribed scope in accordance with specified principles, policies, processes or procedures for managing rights, actions, or behaviors of parties or principals relative to resources."]
6795 pub domain: Option<Vec<Box<Reference>>>,
6796 # [reference (targets = ["Location"])]
6797 #[doc = "Sites in which the contract is complied with, exercised, or in force."]
6798 pub site: Option<Vec<Box<Reference>>>,
6799 #[primitive]
6800 #[doc = "A natural language name identifying this Contract definition, derivative, or instance in any legal state. Provides additional information about its content. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
6801 pub name: Option<Box<FHIRString>>,
6802 #[primitive]
6803 #[doc = "A short, descriptive, user-friendly title for this Contract definition, derivative, or instance in any legal state.t giving additional information about its content."]
6804 pub title: Option<Box<FHIRString>>,
6805 #[primitive]
6806 #[doc = "An explanatory or alternate user-friendly title for this Contract definition, derivative, or instance in any legal state.t giving additional information about its content."]
6807 pub subtitle: Option<Box<FHIRString>>,
6808 #[primitive]
6809 #[doc = "Alternative representation of the title for this Contract definition, derivative, or instance in any legal state., e.g., a domain specific contract number related to legislation."]
6810 pub alias: Option<Vec<Box<FHIRString>>>,
6811 # [reference (targets = ["Patient" , "Practitioner" , "PractitionerRole" , "Organization"])]
6812 #[doc = "The individual or organization that authored the Contract definition, derivative, or instance in any legal state."]
6813 pub author: Option<Box<Reference>>,
6814 #[doc = "A selector of legal concerns for this Contract definition, derivative, or instance in any legal state."]
6815 pub scope: Option<Box<CodeableConcept>>,
6816 # [type_choice_variants (complex = ["topicCodeableConcept" , "topicReference"] , primitive = [])]
6817 #[doc = "Narrows the range of legal concerns to focus on the achievement of specific contractual objectives."]
6818 pub topic: Option<ContractTopicTypeChoice>,
6819 #[rename_field = "type"]
6820 #[doc = "A high-level category for the legal instrument, whether constructed as a Contract definition, derivative, or instance in any legal state. Provides additional information about its content within the context of the Contract's scope to distinguish the kinds of systems that would be interested in the contract."]
6821 pub type_: Option<Box<CodeableConcept>>,
6822 #[doc = "Sub-category for the Contract that distinguishes the kinds of systems that would be interested in the Contract within the context of the Contract's scope."]
6823 pub subType: Option<Vec<Box<CodeableConcept>>>,
6824 #[doc = "Precusory content developed with a focus and intent of supporting the formation a Contract instance, which may be associated with and transformable into a Contract."]
6825 pub contentDefinition: Option<ContractContentDefinition>,
6826 #[doc = "One or more Contract Provisions, which may be related and conveyed as a group, and may contain nested groups."]
6827 pub term: Option<Vec<ContractTerm>>,
6828 # [reference (targets = ["Resource"])]
6829 #[doc = "Information that may be needed by/relevant to the performer in their execution of this term action."]
6830 pub supportingInfo: Option<Vec<Box<Reference>>>,
6831 # [reference (targets = ["Provenance"])]
6832 #[doc = "Links to Provenance records for past versions of this Contract definition, derivative, or instance, which identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the Contract. The Provence.entity indicates the target that was changed in the update. http://build.fhir.org/provenance-definitions.html#Provenance.entity."]
6833 pub relevantHistory: Option<Vec<Box<Reference>>>,
6834 #[doc = "Parties with legal standing in the Contract, including the principal parties, the grantor(s) and grantee(s), which are any person or organization bound by the contract, and any ancillary parties, which facilitate the execution of the contract such as a notary or witness."]
6835 pub signer: Option<Vec<ContractSigner>>,
6836 #[doc = "The \"patient friendly language\" versionof the Contract in whole or in parts. \"Patient friendly language\" means the representation of the Contract and Contract Provisions in a manner that is readily accessible and understandable by a layperson in accordance with best practices for communication styles that ensure that those agreeing to or signing the Contract understand the roles, actions, obligations, responsibilities, and implication of the agreement."]
6837 pub friendly: Option<Vec<ContractFriendly>>,
6838 #[doc = "List of Legal expressions or representations of this Contract."]
6839 pub legal: Option<Vec<ContractLegal>>,
6840 #[doc = "List of Computable Policy Rule Language Representations of this Contract."]
6841 pub rule: Option<Vec<ContractRule>>,
6842 # [type_choice_variants (complex = ["legallyBindingAttachment" , "legallyBindingReference"] , primitive = [])]
6843 #[doc = "Legally binding Contract: This is the signed and legally recognized representation of the Contract, which is considered the \"source of truth\" and which would be the basis for legal action related to enforcement of this Contract."]
6844 pub legallyBinding: Option<ContractLegallyBindingTypeChoice>,
6845}
6846#[derive(
6847 Clone,
6848 Reflect,
6849 Debug,
6850 Default,
6851 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6852 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6853)]
6854#[fhir_serialize_type = "complex"]
6855#[doc = "A suite of underwriter specific classifiers."]
6856pub struct CoverageClass {
6857 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
6858 pub id: Option<String>,
6859 #[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 manageable, 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."]
6860 pub extension: Option<Vec<Box<Extension>>>,
6861 #[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 manageable, 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)."]
6862 pub modifierExtension: Option<Vec<Box<Extension>>>,
6863 #[rename_field = "type"]
6864 #[doc = "The type of classification for which an insurer-specific class label or number and optional name is provided, for example may be used to identify a class of coverage or employer group, Policy, Plan."]
6865 pub type_: Box<CodeableConcept>,
6866 #[primitive]
6867 #[doc = "The alphanumeric string value associated with the insurer issued label."]
6868 pub value: Box<FHIRString>,
6869 #[primitive]
6870 #[doc = "A short description for the class."]
6871 pub name: Option<Box<FHIRString>>,
6872}
6873#[derive(
6874 Clone,
6875 Reflect,
6876 Debug,
6877 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6878 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6879)]
6880#[fhir_serialize_type = "typechoice"]
6881#[type_choice_field_name = "value"]
6882pub enum CoverageCostToBeneficiaryValueTypeChoice {
6883 Quantity(Box<Quantity>),
6884 Money(Box<Money>),
6885}
6886impl Default for CoverageCostToBeneficiaryValueTypeChoice {
6887 fn default() -> Self {
6888 CoverageCostToBeneficiaryValueTypeChoice::Quantity(Box::new(Default::default()))
6889 }
6890}
6891#[derive(
6892 Clone,
6893 Reflect,
6894 Debug,
6895 Default,
6896 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6897 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6898)]
6899#[fhir_serialize_type = "complex"]
6900#[doc = "A suite of codes indicating exceptions or reductions to patient costs and their effective periods."]
6901pub struct CoverageCostToBeneficiaryException {
6902 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
6903 pub id: Option<String>,
6904 #[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 manageable, 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."]
6905 pub extension: Option<Vec<Box<Extension>>>,
6906 #[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 manageable, 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)."]
6907 pub modifierExtension: Option<Vec<Box<Extension>>>,
6908 #[rename_field = "type"]
6909 #[doc = "The code for the specific exception."]
6910 pub type_: Box<CodeableConcept>,
6911 #[doc = "The timeframe during when the exception is in force."]
6912 pub period: Option<Box<Period>>,
6913}
6914#[derive(
6915 Clone,
6916 Reflect,
6917 Debug,
6918 Default,
6919 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6920 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6921)]
6922#[fhir_serialize_type = "complex"]
6923#[doc = "A suite of codes indicating the cost category and associated amount which have been detailed in the policy and may have been included on the health card."]
6924pub struct CoverageCostToBeneficiary {
6925 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
6926 pub id: Option<String>,
6927 #[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 manageable, 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."]
6928 pub extension: Option<Vec<Box<Extension>>>,
6929 #[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 manageable, 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)."]
6930 pub modifierExtension: Option<Vec<Box<Extension>>>,
6931 #[rename_field = "type"]
6932 #[doc = "The category of patient centric costs associated with treatment."]
6933 pub type_: Option<Box<CodeableConcept>>,
6934 # [type_choice_variants (complex = ["valueQuantity" , "valueMoney"] , primitive = [])]
6935 #[doc = "The amount due from the patient for the cost category."]
6936 pub value: CoverageCostToBeneficiaryValueTypeChoice,
6937 #[doc = "A suite of codes indicating exceptions or reductions to patient costs and their effective periods."]
6938 pub exception: Option<Vec<CoverageCostToBeneficiaryException>>,
6939}
6940#[derive(
6941 Clone,
6942 Reflect,
6943 Debug,
6944 Default,
6945 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
6946 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
6947)]
6948#[fhir_serialize_type = "resource"]
6949#[doc = "Financial instrument which may be used to reimburse or pay for health care products and services. Includes both insurance and self-payment."]
6950pub struct Coverage {
6951 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
6952 pub id: Option<String>,
6953 #[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."]
6954 pub meta: Option<Box<Meta>>,
6955 #[primitive]
6956 #[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."]
6957 pub implicitRules: Option<Box<FHIRUri>>,
6958 #[primitive]
6959 #[doc = "The base language in which the resource is written."]
6960 pub language: Option<Box<FHIRCode>>,
6961 #[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."]
6962 pub text: Option<Box<Narrative>>,
6963 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
6964 pub contained: Option<Vec<Box<Resource>>>,
6965 #[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 manageable, 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."]
6966 pub extension: Option<Vec<Box<Extension>>>,
6967 #[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 manageable, 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)."]
6968 pub modifierExtension: Option<Vec<Box<Extension>>>,
6969 #[rename_field = "identifier"]
6970 #[doc = "A unique identifier assigned to this coverage."]
6971 pub identifier_: Option<Vec<Box<Identifier>>>,
6972 #[primitive]
6973 #[doc = "The status of the resource instance."]
6974 pub status: Box<terminology::FmStatus>,
6975 #[rename_field = "type"]
6976 #[doc = "The type of coverage: social program, medical plan, accident coverage (workers compensation, auto), group health or payment by an individual or organization."]
6977 pub type_: Option<Box<CodeableConcept>>,
6978 # [reference (targets = ["Patient" , "RelatedPerson" , "Organization"])]
6979 #[doc = "The party who 'owns' the insurance policy."]
6980 pub policyHolder: Option<Box<Reference>>,
6981 # [reference (targets = ["Patient" , "RelatedPerson"])]
6982 #[doc = "The party who has signed-up for or 'owns' the contractual relationship to the policy or to whom the benefit of the policy for services rendered to them or their family is due."]
6983 pub subscriber: Option<Box<Reference>>,
6984 #[primitive]
6985 #[doc = "The insurer assigned ID for the Subscriber."]
6986 pub subscriberId: Option<Box<FHIRString>>,
6987 # [reference (targets = ["Patient"])]
6988 #[doc = "The party who benefits from the insurance coverage; the patient when products and/or services are provided."]
6989 pub beneficiary: Box<Reference>,
6990 #[primitive]
6991 #[doc = "A unique identifier for a dependent under the coverage."]
6992 pub dependent: Option<Box<FHIRString>>,
6993 #[doc = "The relationship of beneficiary (patient) to the subscriber."]
6994 pub relationship: Option<Box<CodeableConcept>>,
6995 #[doc = "Time period during which the coverage is in force. A missing start date indicates the start date isn't known, a missing end date means the coverage is continuing to be in force."]
6996 pub period: Option<Box<Period>>,
6997 #[cardinality(min = 1usize)]
6998 # [reference (targets = ["Organization" , "Patient" , "RelatedPerson"])]
6999 #[doc = "The program or plan underwriter or payor including both insurance and non-insurance agreements, such as patient-pay agreements."]
7000 pub payor: Vec<Box<Reference>>,
7001 #[doc = "A suite of underwriter specific classifiers."]
7002 pub class: Option<Vec<CoverageClass>>,
7003 #[primitive]
7004 #[doc = "The order of applicability of this coverage relative to other coverages which are currently in force. Note, there may be gaps in the numbering and this does not imply primary, secondary etc. as the specific positioning of coverages depends upon the episode of care."]
7005 pub order: Option<Box<FHIRPositiveInt>>,
7006 #[primitive]
7007 #[doc = "The insurer-specific identifier for the insurer-defined network of providers to which the beneficiary may seek treatment which will be covered at the 'in-network' rate, otherwise 'out of network' terms and conditions apply."]
7008 pub network: Option<Box<FHIRString>>,
7009 #[doc = "A suite of codes indicating the cost category and associated amount which have been detailed in the policy and may have been included on the health card."]
7010 pub costToBeneficiary: Option<Vec<CoverageCostToBeneficiary>>,
7011 #[primitive]
7012 #[doc = "When 'subrogation=true' this insurance instance has been included not for adjudication but to provide insurers with the details to recover costs."]
7013 pub subrogation: Option<Box<FHIRBoolean>>,
7014 # [reference (targets = ["Contract"])]
7015 #[doc = "The policy(s) which constitute this insurance coverage."]
7016 pub contract: Option<Vec<Box<Reference>>>,
7017}
7018#[derive(
7019 Clone,
7020 Reflect,
7021 Debug,
7022 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7023 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7024)]
7025#[fhir_serialize_type = "typechoice"]
7026#[type_choice_field_name = "serviced"]
7027pub enum CoverageEligibilityRequestServicedTypeChoice {
7028 Date(Box<FHIRDate>),
7029 Period(Box<Period>),
7030}
7031impl Default for CoverageEligibilityRequestServicedTypeChoice {
7032 fn default() -> Self {
7033 CoverageEligibilityRequestServicedTypeChoice::Date(Box::new(Default::default()))
7034 }
7035}
7036#[derive(
7037 Clone,
7038 Reflect,
7039 Debug,
7040 Default,
7041 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7042 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7043)]
7044#[fhir_serialize_type = "complex"]
7045#[doc = "Additional information codes regarding exceptions, special considerations, the condition, situation, prior or concurrent issues."]
7046pub struct CoverageEligibilityRequestSupportingInfo {
7047 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
7048 pub id: Option<String>,
7049 #[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 manageable, 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."]
7050 pub extension: Option<Vec<Box<Extension>>>,
7051 #[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 manageable, 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)."]
7052 pub modifierExtension: Option<Vec<Box<Extension>>>,
7053 #[primitive]
7054 #[doc = "A number to uniquely identify supporting information entries."]
7055 pub sequence: Box<FHIRPositiveInt>,
7056 # [reference (targets = ["Resource"])]
7057 #[doc = "Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data."]
7058 pub information: Box<Reference>,
7059 #[primitive]
7060 #[doc = "The supporting materials are applicable for all detail items, product/servce categories and specific billing codes."]
7061 pub appliesToAll: Option<Box<FHIRBoolean>>,
7062}
7063#[derive(
7064 Clone,
7065 Reflect,
7066 Debug,
7067 Default,
7068 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7069 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7070)]
7071#[fhir_serialize_type = "complex"]
7072#[doc = "Financial instruments for reimbursement for the health care products and services."]
7073pub struct CoverageEligibilityRequestInsurance {
7074 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
7075 pub id: Option<String>,
7076 #[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 manageable, 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."]
7077 pub extension: Option<Vec<Box<Extension>>>,
7078 #[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 manageable, 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)."]
7079 pub modifierExtension: Option<Vec<Box<Extension>>>,
7080 #[primitive]
7081 #[doc = "A flag to indicate that this Coverage is to be used for evaluation of this request when set to true."]
7082 pub focal: Option<Box<FHIRBoolean>>,
7083 # [reference (targets = ["Coverage"])]
7084 #[doc = "Reference to the insurance card level information contained in the Coverage resource. The coverage issuing insurer will use these details to locate the patient's actual coverage within the insurer's information system."]
7085 pub coverage: Box<Reference>,
7086 #[primitive]
7087 #[doc = "A business agreement number established between the provider and the insurer for special business processing purposes."]
7088 pub businessArrangement: Option<Box<FHIRString>>,
7089}
7090#[derive(
7091 Clone,
7092 Reflect,
7093 Debug,
7094 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7095 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7096)]
7097#[fhir_serialize_type = "typechoice"]
7098#[type_choice_field_name = "diagnosis"]
7099pub enum CoverageEligibilityRequestItemDiagnosisDiagnosisTypeChoice {
7100 CodeableConcept(Box<CodeableConcept>),
7101 # [reference (targets = ["Condition"])]
7102 Reference(Box<Reference>),
7103}
7104impl Default for CoverageEligibilityRequestItemDiagnosisDiagnosisTypeChoice {
7105 fn default() -> Self {
7106 CoverageEligibilityRequestItemDiagnosisDiagnosisTypeChoice::CodeableConcept(Box::new(
7107 Default::default(),
7108 ))
7109 }
7110}
7111#[derive(
7112 Clone,
7113 Reflect,
7114 Debug,
7115 Default,
7116 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7117 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7118)]
7119#[fhir_serialize_type = "complex"]
7120#[doc = "Patient diagnosis for which care is sought."]
7121pub struct CoverageEligibilityRequestItemDiagnosis {
7122 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
7123 pub id: Option<String>,
7124 #[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 manageable, 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."]
7125 pub extension: Option<Vec<Box<Extension>>>,
7126 #[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 manageable, 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)."]
7127 pub modifierExtension: Option<Vec<Box<Extension>>>,
7128 # [type_choice_variants (complex = ["diagnosisCodeableConcept" , "diagnosisReference"] , primitive = [])]
7129 #[doc = "The nature of illness or problem in a coded form or as a reference to an external defined Condition."]
7130 pub diagnosis: Option<CoverageEligibilityRequestItemDiagnosisDiagnosisTypeChoice>,
7131}
7132#[derive(
7133 Clone,
7134 Reflect,
7135 Debug,
7136 Default,
7137 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7138 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7139)]
7140#[fhir_serialize_type = "complex"]
7141#[doc = "Service categories or billable services for which benefit details and/or an authorization prior to service delivery may be required by the payor."]
7142pub struct CoverageEligibilityRequestItem {
7143 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
7144 pub id: Option<String>,
7145 #[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 manageable, 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."]
7146 pub extension: Option<Vec<Box<Extension>>>,
7147 #[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 manageable, 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)."]
7148 pub modifierExtension: Option<Vec<Box<Extension>>>,
7149 #[primitive]
7150 #[doc = "Exceptions, special conditions and supporting information applicable for this service or product line."]
7151 pub supportingInfoSequence: Option<Vec<Box<FHIRPositiveInt>>>,
7152 #[doc = "Code to identify the general type of benefits under which products and services are provided."]
7153 pub category: Option<Box<CodeableConcept>>,
7154 #[doc = "This contains the product, service, drug or other billing code for the item."]
7155 pub productOrService: Option<Box<CodeableConcept>>,
7156 #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
7157 pub modifier: Option<Vec<Box<CodeableConcept>>>,
7158 # [reference (targets = ["Practitioner" , "PractitionerRole"])]
7159 #[doc = "The practitioner who is responsible for the product or service to be rendered to the patient."]
7160 pub provider: Option<Box<Reference>>,
7161 #[doc = "The number of repetitions of a service or product."]
7162 pub quantity: Option<Box<Quantity>>,
7163 #[doc = "The amount charged to the patient by the provider for a single unit."]
7164 pub unitPrice: Option<Box<Money>>,
7165 # [reference (targets = ["Location" , "Organization"])]
7166 #[doc = "Facility where the services will be provided."]
7167 pub facility: Option<Box<Reference>>,
7168 #[doc = "Patient diagnosis for which care is sought."]
7169 pub diagnosis: Option<Vec<CoverageEligibilityRequestItemDiagnosis>>,
7170 # [reference (targets = ["Resource"])]
7171 #[doc = "The plan/proposal/order describing the proposed service in detail."]
7172 pub detail: Option<Vec<Box<Reference>>>,
7173}
7174#[derive(
7175 Clone,
7176 Reflect,
7177 Debug,
7178 Default,
7179 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7180 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7181)]
7182#[fhir_serialize_type = "resource"]
7183#[doc = "The CoverageEligibilityRequest provides patient and insurance coverage information to an insurer for them to respond, in the form of an CoverageEligibilityResponse, with information regarding whether the stated coverage is valid and in-force and optionally to provide the insurance details of the policy."]
7184pub struct CoverageEligibilityRequest {
7185 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
7186 pub id: Option<String>,
7187 #[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."]
7188 pub meta: Option<Box<Meta>>,
7189 #[primitive]
7190 #[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."]
7191 pub implicitRules: Option<Box<FHIRUri>>,
7192 #[primitive]
7193 #[doc = "The base language in which the resource is written."]
7194 pub language: Option<Box<FHIRCode>>,
7195 #[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."]
7196 pub text: Option<Box<Narrative>>,
7197 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
7198 pub contained: Option<Vec<Box<Resource>>>,
7199 #[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 manageable, 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."]
7200 pub extension: Option<Vec<Box<Extension>>>,
7201 #[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 manageable, 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)."]
7202 pub modifierExtension: Option<Vec<Box<Extension>>>,
7203 #[rename_field = "identifier"]
7204 #[doc = "A unique identifier assigned to this coverage eligiblity request."]
7205 pub identifier_: Option<Vec<Box<Identifier>>>,
7206 #[primitive]
7207 #[doc = "The status of the resource instance."]
7208 pub status: Box<terminology::FmStatus>,
7209 #[doc = "When the requestor expects the processor to complete processing."]
7210 pub priority: Option<Box<CodeableConcept>>,
7211 #[primitive]
7212 #[cardinality(min = 1usize)]
7213 #[doc = "Code to specify whether requesting: prior authorization requirements for some service categories or billing codes; benefits for coverages specified or discovered; discovery and return of coverages for the patient; and/or validation that the specified coverage is in-force at the date/period specified or 'now' if not specified."]
7214 pub purpose: Vec<Box<terminology::EligibilityrequestPurpose>>,
7215 # [reference (targets = ["Patient"])]
7216 #[doc = "The party who is the beneficiary of the supplied coverage and for whom eligibility is sought."]
7217 pub patient: Box<Reference>,
7218 # [type_choice_variants (complex = ["servicedPeriod"] , primitive = ["servicedDate"])]
7219 #[doc = "The date or dates when the enclosed suite of services were performed or completed."]
7220 pub serviced: Option<CoverageEligibilityRequestServicedTypeChoice>,
7221 #[primitive]
7222 #[doc = "The date when this resource was created."]
7223 pub created: Box<FHIRDateTime>,
7224 # [reference (targets = ["Practitioner" , "PractitionerRole"])]
7225 #[doc = "Person who created the request."]
7226 pub enterer: Option<Box<Reference>>,
7227 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
7228 #[doc = "The provider which is responsible for the request."]
7229 pub provider: Option<Box<Reference>>,
7230 # [reference (targets = ["Organization"])]
7231 #[doc = "The Insurer who issued the coverage in question and is the recipient of the request."]
7232 pub insurer: Box<Reference>,
7233 # [reference (targets = ["Location"])]
7234 #[doc = "Facility where the services are intended to be provided."]
7235 pub facility: Option<Box<Reference>>,
7236 #[doc = "Additional information codes regarding exceptions, special considerations, the condition, situation, prior or concurrent issues."]
7237 pub supportingInfo: Option<Vec<CoverageEligibilityRequestSupportingInfo>>,
7238 #[doc = "Financial instruments for reimbursement for the health care products and services."]
7239 pub insurance: Option<Vec<CoverageEligibilityRequestInsurance>>,
7240 #[doc = "Service categories or billable services for which benefit details and/or an authorization prior to service delivery may be required by the payor."]
7241 pub item: Option<Vec<CoverageEligibilityRequestItem>>,
7242}
7243#[derive(
7244 Clone,
7245 Reflect,
7246 Debug,
7247 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7248 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7249)]
7250#[fhir_serialize_type = "typechoice"]
7251#[type_choice_field_name = "serviced"]
7252pub enum CoverageEligibilityResponseServicedTypeChoice {
7253 Date(Box<FHIRDate>),
7254 Period(Box<Period>),
7255}
7256impl Default for CoverageEligibilityResponseServicedTypeChoice {
7257 fn default() -> Self {
7258 CoverageEligibilityResponseServicedTypeChoice::Date(Box::new(Default::default()))
7259 }
7260}
7261#[derive(
7262 Clone,
7263 Reflect,
7264 Debug,
7265 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7266 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7267)]
7268#[fhir_serialize_type = "typechoice"]
7269#[type_choice_field_name = "allowed"]
7270pub enum CoverageEligibilityResponseInsuranceItemBenefitAllowedTypeChoice {
7271 UnsignedInt(Box<FHIRUnsignedInt>),
7272 String(Box<FHIRString>),
7273 Money(Box<Money>),
7274}
7275impl Default for CoverageEligibilityResponseInsuranceItemBenefitAllowedTypeChoice {
7276 fn default() -> Self {
7277 CoverageEligibilityResponseInsuranceItemBenefitAllowedTypeChoice::UnsignedInt(Box::new(
7278 Default::default(),
7279 ))
7280 }
7281}
7282#[derive(
7283 Clone,
7284 Reflect,
7285 Debug,
7286 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7287 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7288)]
7289#[fhir_serialize_type = "typechoice"]
7290#[type_choice_field_name = "used"]
7291pub enum CoverageEligibilityResponseInsuranceItemBenefitUsedTypeChoice {
7292 UnsignedInt(Box<FHIRUnsignedInt>),
7293 String(Box<FHIRString>),
7294 Money(Box<Money>),
7295}
7296impl Default for CoverageEligibilityResponseInsuranceItemBenefitUsedTypeChoice {
7297 fn default() -> Self {
7298 CoverageEligibilityResponseInsuranceItemBenefitUsedTypeChoice::UnsignedInt(Box::new(
7299 Default::default(),
7300 ))
7301 }
7302}
7303#[derive(
7304 Clone,
7305 Reflect,
7306 Debug,
7307 Default,
7308 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7309 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7310)]
7311#[fhir_serialize_type = "complex"]
7312#[doc = "Benefits used to date."]
7313pub struct CoverageEligibilityResponseInsuranceItemBenefit {
7314 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
7315 pub id: Option<String>,
7316 #[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 manageable, 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."]
7317 pub extension: Option<Vec<Box<Extension>>>,
7318 #[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 manageable, 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)."]
7319 pub modifierExtension: Option<Vec<Box<Extension>>>,
7320 #[rename_field = "type"]
7321 #[doc = "Classification of benefit being provided."]
7322 pub type_: Box<CodeableConcept>,
7323 # [type_choice_variants (complex = ["allowedMoney"] , primitive = ["allowedUnsignedInt" , "allowedString"])]
7324 #[doc = "The quantity of the benefit which is permitted under the coverage."]
7325 pub allowed: Option<CoverageEligibilityResponseInsuranceItemBenefitAllowedTypeChoice>,
7326 # [type_choice_variants (complex = ["usedMoney"] , primitive = ["usedUnsignedInt" , "usedString"])]
7327 #[doc = "The quantity of the benefit which have been consumed to date."]
7328 pub used: Option<CoverageEligibilityResponseInsuranceItemBenefitUsedTypeChoice>,
7329}
7330#[derive(
7331 Clone,
7332 Reflect,
7333 Debug,
7334 Default,
7335 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7336 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7337)]
7338#[fhir_serialize_type = "complex"]
7339#[doc = "Benefits and optionally current balances, and authorization details by category or service."]
7340pub struct CoverageEligibilityResponseInsuranceItem {
7341 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
7342 pub id: Option<String>,
7343 #[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 manageable, 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."]
7344 pub extension: Option<Vec<Box<Extension>>>,
7345 #[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 manageable, 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)."]
7346 pub modifierExtension: Option<Vec<Box<Extension>>>,
7347 #[doc = "Code to identify the general type of benefits under which products and services are provided."]
7348 pub category: Option<Box<CodeableConcept>>,
7349 #[doc = "This contains the product, service, drug or other billing code for the item."]
7350 pub productOrService: Option<Box<CodeableConcept>>,
7351 #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
7352 pub modifier: Option<Vec<Box<CodeableConcept>>>,
7353 # [reference (targets = ["Practitioner" , "PractitionerRole"])]
7354 #[doc = "The practitioner who is eligible for the provision of the product or service."]
7355 pub provider: Option<Box<Reference>>,
7356 #[primitive]
7357 #[doc = "True if the indicated class of service is excluded from the plan, missing or False indicates the product or service is included in the coverage."]
7358 pub excluded: Option<Box<FHIRBoolean>>,
7359 #[primitive]
7360 #[doc = "A short name or tag for the benefit."]
7361 pub name: Option<Box<FHIRString>>,
7362 #[primitive]
7363 #[doc = "A richer description of the benefit or services covered."]
7364 pub description: Option<Box<FHIRString>>,
7365 #[doc = "Is a flag to indicate whether the benefits refer to in-network providers or out-of-network providers."]
7366 pub network: Option<Box<CodeableConcept>>,
7367 #[doc = "Indicates if the benefits apply to an individual or to the family."]
7368 pub unit: Option<Box<CodeableConcept>>,
7369 #[doc = "The term or period of the values such as 'maximum lifetime benefit' or 'maximum annual visits'."]
7370 pub term: Option<Box<CodeableConcept>>,
7371 #[doc = "Benefits used to date."]
7372 pub benefit: Option<Vec<CoverageEligibilityResponseInsuranceItemBenefit>>,
7373 #[primitive]
7374 #[doc = "A boolean flag indicating whether a preauthorization is required prior to actual service delivery."]
7375 pub authorizationRequired: Option<Box<FHIRBoolean>>,
7376 #[doc = "Codes or comments regarding information or actions associated with the preauthorization."]
7377 pub authorizationSupporting: Option<Vec<Box<CodeableConcept>>>,
7378 #[primitive]
7379 #[doc = "A web location for obtaining requirements or descriptive information regarding the preauthorization."]
7380 pub authorizationUrl: Option<Box<FHIRUri>>,
7381}
7382#[derive(
7383 Clone,
7384 Reflect,
7385 Debug,
7386 Default,
7387 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7388 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7389)]
7390#[fhir_serialize_type = "complex"]
7391#[doc = "Financial instruments for reimbursement for the health care products and services."]
7392pub struct CoverageEligibilityResponseInsurance {
7393 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
7394 pub id: Option<String>,
7395 #[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 manageable, 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."]
7396 pub extension: Option<Vec<Box<Extension>>>,
7397 #[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 manageable, 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)."]
7398 pub modifierExtension: Option<Vec<Box<Extension>>>,
7399 # [reference (targets = ["Coverage"])]
7400 #[doc = "Reference to the insurance card level information contained in the Coverage resource. The coverage issuing insurer will use these details to locate the patient's actual coverage within the insurer's information system."]
7401 pub coverage: Box<Reference>,
7402 #[primitive]
7403 #[doc = "Flag indicating if the coverage provided is inforce currently if no service date(s) specified or for the whole duration of the service dates."]
7404 pub inforce: Option<Box<FHIRBoolean>>,
7405 #[doc = "The term of the benefits documented in this response."]
7406 pub benefitPeriod: Option<Box<Period>>,
7407 #[doc = "Benefits and optionally current balances, and authorization details by category or service."]
7408 pub item: Option<Vec<CoverageEligibilityResponseInsuranceItem>>,
7409}
7410#[derive(
7411 Clone,
7412 Reflect,
7413 Debug,
7414 Default,
7415 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7416 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7417)]
7418#[fhir_serialize_type = "complex"]
7419#[doc = "Errors encountered during the processing of the request."]
7420pub struct CoverageEligibilityResponseError {
7421 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
7422 pub id: Option<String>,
7423 #[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 manageable, 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."]
7424 pub extension: Option<Vec<Box<Extension>>>,
7425 #[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 manageable, 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)."]
7426 pub modifierExtension: Option<Vec<Box<Extension>>>,
7427 #[doc = "An error code,from a specified code system, which details why the eligibility check could not be performed."]
7428 pub code: Box<CodeableConcept>,
7429}
7430#[derive(
7431 Clone,
7432 Reflect,
7433 Debug,
7434 Default,
7435 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7436 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7437)]
7438#[fhir_serialize_type = "resource"]
7439#[doc = "This resource provides eligibility and plan details from the processing of an CoverageEligibilityRequest resource."]
7440pub struct CoverageEligibilityResponse {
7441 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
7442 pub id: Option<String>,
7443 #[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."]
7444 pub meta: Option<Box<Meta>>,
7445 #[primitive]
7446 #[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."]
7447 pub implicitRules: Option<Box<FHIRUri>>,
7448 #[primitive]
7449 #[doc = "The base language in which the resource is written."]
7450 pub language: Option<Box<FHIRCode>>,
7451 #[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."]
7452 pub text: Option<Box<Narrative>>,
7453 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
7454 pub contained: Option<Vec<Box<Resource>>>,
7455 #[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 manageable, 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."]
7456 pub extension: Option<Vec<Box<Extension>>>,
7457 #[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 manageable, 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)."]
7458 pub modifierExtension: Option<Vec<Box<Extension>>>,
7459 #[rename_field = "identifier"]
7460 #[doc = "A unique identifier assigned to this coverage eligiblity request."]
7461 pub identifier_: Option<Vec<Box<Identifier>>>,
7462 #[primitive]
7463 #[doc = "The status of the resource instance."]
7464 pub status: Box<terminology::FmStatus>,
7465 #[primitive]
7466 #[cardinality(min = 1usize)]
7467 #[doc = "Code to specify whether requesting: prior authorization requirements for some service categories or billing codes; benefits for coverages specified or discovered; discovery and return of coverages for the patient; and/or validation that the specified coverage is in-force at the date/period specified or 'now' if not specified."]
7468 pub purpose: Vec<Box<terminology::EligibilityresponsePurpose>>,
7469 # [reference (targets = ["Patient"])]
7470 #[doc = "The party who is the beneficiary of the supplied coverage and for whom eligibility is sought."]
7471 pub patient: Box<Reference>,
7472 # [type_choice_variants (complex = ["servicedPeriod"] , primitive = ["servicedDate"])]
7473 #[doc = "The date or dates when the enclosed suite of services were performed or completed."]
7474 pub serviced: Option<CoverageEligibilityResponseServicedTypeChoice>,
7475 #[primitive]
7476 #[doc = "The date this resource was created."]
7477 pub created: Box<FHIRDateTime>,
7478 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
7479 #[doc = "The provider which is responsible for the request."]
7480 pub requestor: Option<Box<Reference>>,
7481 # [reference (targets = ["CoverageEligibilityRequest"])]
7482 #[doc = "Reference to the original request resource."]
7483 pub request: Box<Reference>,
7484 #[primitive]
7485 #[doc = "The outcome of the request processing."]
7486 pub outcome: Box<terminology::RemittanceOutcome>,
7487 #[primitive]
7488 #[doc = "A human readable description of the status of the adjudication."]
7489 pub disposition: Option<Box<FHIRString>>,
7490 # [reference (targets = ["Organization"])]
7491 #[doc = "The Insurer who issued the coverage in question and is the author of the response."]
7492 pub insurer: Box<Reference>,
7493 #[doc = "Financial instruments for reimbursement for the health care products and services."]
7494 pub insurance: Option<Vec<CoverageEligibilityResponseInsurance>>,
7495 #[primitive]
7496 #[doc = "A reference from the Insurer to which these services pertain to be used on further communication and as proof that the request occurred."]
7497 pub preAuthRef: Option<Box<FHIRString>>,
7498 #[doc = "A code for the form to be used for printing the content."]
7499 pub form: Option<Box<CodeableConcept>>,
7500 #[doc = "Errors encountered during the processing of the request."]
7501 pub error: Option<Vec<CoverageEligibilityResponseError>>,
7502}
7503#[derive(
7504 Clone,
7505 Reflect,
7506 Debug,
7507 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7508 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7509)]
7510#[fhir_serialize_type = "typechoice"]
7511#[type_choice_field_name = "identified"]
7512pub enum DetectedIssueIdentifiedTypeChoice {
7513 DateTime(Box<FHIRDateTime>),
7514 Period(Box<Period>),
7515}
7516impl Default for DetectedIssueIdentifiedTypeChoice {
7517 fn default() -> Self {
7518 DetectedIssueIdentifiedTypeChoice::DateTime(Box::new(Default::default()))
7519 }
7520}
7521#[derive(
7522 Clone,
7523 Reflect,
7524 Debug,
7525 Default,
7526 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7527 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7528)]
7529#[fhir_serialize_type = "complex"]
7530#[doc = "Supporting evidence or manifestations that provide the basis for identifying the detected issue such as a GuidanceResponse or MeasureReport."]
7531pub struct DetectedIssueEvidence {
7532 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
7533 pub id: Option<String>,
7534 #[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 manageable, 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."]
7535 pub extension: Option<Vec<Box<Extension>>>,
7536 #[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 manageable, 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)."]
7537 pub modifierExtension: Option<Vec<Box<Extension>>>,
7538 #[doc = "A manifestation that led to the recording of this detected issue."]
7539 pub code: Option<Vec<Box<CodeableConcept>>>,
7540 # [reference (targets = ["Resource"])]
7541 #[doc = "Links to resources that constitute evidence for the detected issue such as a GuidanceResponse or MeasureReport."]
7542 pub detail: Option<Vec<Box<Reference>>>,
7543}
7544#[derive(
7545 Clone,
7546 Reflect,
7547 Debug,
7548 Default,
7549 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7550 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7551)]
7552#[fhir_serialize_type = "complex"]
7553#[doc = "Indicates an action that has been taken or is committed to reduce or eliminate the likelihood of the risk identified by the detected issue from manifesting. Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action."]
7554pub struct DetectedIssueMitigation {
7555 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
7556 pub id: Option<String>,
7557 #[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 manageable, 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."]
7558 pub extension: Option<Vec<Box<Extension>>>,
7559 #[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 manageable, 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)."]
7560 pub modifierExtension: Option<Vec<Box<Extension>>>,
7561 #[doc = "Describes the action that was taken or the observation that was made that reduces/eliminates the risk associated with the identified issue."]
7562 pub action: Box<CodeableConcept>,
7563 #[primitive]
7564 #[doc = "Indicates when the mitigating action was documented."]
7565 pub date: Option<Box<FHIRDateTime>>,
7566 # [reference (targets = ["Practitioner" , "PractitionerRole"])]
7567 #[doc = "Identifies the practitioner who determined the mitigation and takes responsibility for the mitigation step occurring."]
7568 pub author: Option<Box<Reference>>,
7569}
7570#[derive(
7571 Clone,
7572 Reflect,
7573 Debug,
7574 Default,
7575 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7576 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7577)]
7578#[fhir_serialize_type = "resource"]
7579#[doc = "Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. Drug-drug interaction, Ineffective treatment frequency, Procedure-condition conflict, etc."]
7580pub struct DetectedIssue {
7581 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
7582 pub id: Option<String>,
7583 #[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."]
7584 pub meta: Option<Box<Meta>>,
7585 #[primitive]
7586 #[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."]
7587 pub implicitRules: Option<Box<FHIRUri>>,
7588 #[primitive]
7589 #[doc = "The base language in which the resource is written."]
7590 pub language: Option<Box<FHIRCode>>,
7591 #[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."]
7592 pub text: Option<Box<Narrative>>,
7593 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
7594 pub contained: Option<Vec<Box<Resource>>>,
7595 #[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 manageable, 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."]
7596 pub extension: Option<Vec<Box<Extension>>>,
7597 #[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 manageable, 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)."]
7598 pub modifierExtension: Option<Vec<Box<Extension>>>,
7599 #[rename_field = "identifier"]
7600 #[doc = "Business identifier associated with the detected issue record."]
7601 pub identifier_: Option<Vec<Box<Identifier>>>,
7602 #[primitive]
7603 #[doc = "Indicates the status of the detected issue."]
7604 pub status: Box<terminology::ObservationStatus>,
7605 #[doc = "Identifies the general type of issue identified."]
7606 pub code: Option<Box<CodeableConcept>>,
7607 #[primitive]
7608 #[doc = "Indicates the degree of importance associated with the identified issue based on the potential impact on the patient."]
7609 pub severity: Option<Box<terminology::DetectedissueSeverity>>,
7610 # [reference (targets = ["Patient"])]
7611 #[doc = "Indicates the patient whose record the detected issue is associated with."]
7612 pub patient: Option<Box<Reference>>,
7613 # [type_choice_variants (complex = ["identifiedPeriod"] , primitive = ["identifiedDateTime"])]
7614 #[doc = "The date or period when the detected issue was initially identified."]
7615 pub identified: Option<DetectedIssueIdentifiedTypeChoice>,
7616 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Device"])]
7617 #[doc = "Individual or device responsible for the issue being raised. For example, a decision support application or a pharmacist conducting a medication review."]
7618 pub author: Option<Box<Reference>>,
7619 # [reference (targets = ["Resource"])]
7620 #[doc = "Indicates the resource representing the current activity or proposed activity that is potentially problematic."]
7621 pub implicated: Option<Vec<Box<Reference>>>,
7622 #[doc = "Supporting evidence or manifestations that provide the basis for identifying the detected issue such as a GuidanceResponse or MeasureReport."]
7623 pub evidence: Option<Vec<DetectedIssueEvidence>>,
7624 #[primitive]
7625 #[doc = "A textual explanation of the detected issue."]
7626 pub detail: Option<Box<FHIRString>>,
7627 #[primitive]
7628 #[doc = "The literature, knowledge-base or similar reference that describes the propensity for the detected issue identified."]
7629 pub reference: Option<Box<FHIRUri>>,
7630 #[doc = "Indicates an action that has been taken or is committed to reduce or eliminate the likelihood of the risk identified by the detected issue from manifesting. Can also reflect an observation of known mitigating factors that may reduce/eliminate the need for any action."]
7631 pub mitigation: Option<Vec<DetectedIssueMitigation>>,
7632}
7633#[derive(
7634 Clone,
7635 Reflect,
7636 Debug,
7637 Default,
7638 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7639 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7640)]
7641#[fhir_serialize_type = "complex"]
7642#[doc = "Unique device identifier (UDI) assigned to device label or package. Note that the Device may include multiple udiCarriers as it either may include just the udiCarrier for the jurisdiction it is sold, or for multiple jurisdictions it could have been sold."]
7643pub struct DeviceUdiCarrier {
7644 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
7645 pub id: Option<String>,
7646 #[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 manageable, 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."]
7647 pub extension: Option<Vec<Box<Extension>>>,
7648 #[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 manageable, 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)."]
7649 pub modifierExtension: Option<Vec<Box<Extension>>>,
7650 #[primitive]
7651 #[doc = "The device identifier (DI) is a mandatory, fixed portion of a UDI that identifies the labeler and the specific version or model of a device."]
7652 pub deviceIdentifier: Option<Box<FHIRString>>,
7653 #[primitive]
7654 #[doc = "Organization that is charged with issuing UDIs for devices. For example, the US FDA issuers include :\n1) GS1: \nhttp://hl7.org/fhir/NamingSystem/gs1-di, \n2) HIBCC:\nhttp://hl7.org/fhir/NamingSystem/hibcc-dI, \n3) ICCBBA for blood containers:\nhttp://hl7.org/fhir/NamingSystem/iccbba-blood-di, \n4) ICCBA for other devices:\nhttp://hl7.org/fhir/NamingSystem/iccbba-other-di."]
7655 pub issuer: Option<Box<FHIRUri>>,
7656 #[primitive]
7657 #[doc = "The identity of the authoritative source for UDI generation within a jurisdiction. All UDIs are globally unique within a single namespace with the appropriate repository uri as the system. For example, UDIs of devices managed in the U.S. by the FDA, the value is http://hl7.org/fhir/NamingSystem/fda-udi."]
7658 pub jurisdiction: Option<Box<FHIRUri>>,
7659 #[primitive]
7660 #[doc = "The full UDI carrier of the Automatic Identification and Data Capture (AIDC) technology representation of the barcode string as printed on the packaging of the device - e.g., a barcode or RFID. Because of limitations on character sets in XML and the need to round-trip JSON data through XML, AIDC Formats *SHALL* be base64 encoded."]
7661 pub carrierAIDC: Option<Box<FHIRBase64Binary>>,
7662 #[primitive]
7663 #[doc = "The full UDI carrier as the human readable form (HRF) representation of the barcode string as printed on the packaging of the device."]
7664 pub carrierHRF: Option<Box<FHIRString>>,
7665 #[primitive]
7666 #[doc = "A coded entry to indicate how the data was entered."]
7667 pub entryType: Option<Box<terminology::UdiEntryType>>,
7668}
7669#[derive(
7670 Clone,
7671 Reflect,
7672 Debug,
7673 Default,
7674 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7675 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7676)]
7677#[fhir_serialize_type = "complex"]
7678#[doc = "This represents the manufacturer's name of the device as provided by the device, from a UDI label, or by a person describing the Device. This typically would be used when a person provides the name(s) or when the device represents one of the names available from DeviceDefinition."]
7679pub struct DeviceDeviceName {
7680 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
7681 pub id: Option<String>,
7682 #[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 manageable, 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."]
7683 pub extension: Option<Vec<Box<Extension>>>,
7684 #[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 manageable, 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)."]
7685 pub modifierExtension: Option<Vec<Box<Extension>>>,
7686 #[primitive]
7687 #[doc = "The name of the device."]
7688 pub name: Box<FHIRString>,
7689 #[rename_field = "type"]
7690 #[primitive]
7691 #[doc = "The type of deviceName.\nUDILabelName | UserFriendlyName | PatientReportedName | ManufactureDeviceName | ModelName."]
7692 pub type_: Box<terminology::DeviceNametype>,
7693}
7694#[derive(
7695 Clone,
7696 Reflect,
7697 Debug,
7698 Default,
7699 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7700 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7701)]
7702#[fhir_serialize_type = "complex"]
7703#[doc = "The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication."]
7704pub struct DeviceSpecialization {
7705 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
7706 pub id: Option<String>,
7707 #[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 manageable, 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."]
7708 pub extension: Option<Vec<Box<Extension>>>,
7709 #[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 manageable, 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)."]
7710 pub modifierExtension: Option<Vec<Box<Extension>>>,
7711 #[doc = "The standard that is used to operate and communicate."]
7712 pub systemType: Box<CodeableConcept>,
7713 #[primitive]
7714 #[doc = "The version of the standard that is used to operate and communicate."]
7715 pub version: Option<Box<FHIRString>>,
7716}
7717#[derive(
7718 Clone,
7719 Reflect,
7720 Debug,
7721 Default,
7722 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7723 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7724)]
7725#[fhir_serialize_type = "complex"]
7726#[doc = "The actual design of the device or software version running on the device."]
7727pub struct DeviceVersion {
7728 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
7729 pub id: Option<String>,
7730 #[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 manageable, 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."]
7731 pub extension: Option<Vec<Box<Extension>>>,
7732 #[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 manageable, 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)."]
7733 pub modifierExtension: Option<Vec<Box<Extension>>>,
7734 #[rename_field = "type"]
7735 #[doc = "The type of the device version."]
7736 pub type_: Option<Box<CodeableConcept>>,
7737 #[doc = "A single component of the device version."]
7738 pub component: Option<Box<Identifier>>,
7739 #[primitive]
7740 #[doc = "The version text."]
7741 pub value: Box<FHIRString>,
7742}
7743#[derive(
7744 Clone,
7745 Reflect,
7746 Debug,
7747 Default,
7748 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7749 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7750)]
7751#[fhir_serialize_type = "complex"]
7752#[doc = "The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties."]
7753pub struct DeviceProperty {
7754 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
7755 pub id: Option<String>,
7756 #[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 manageable, 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."]
7757 pub extension: Option<Vec<Box<Extension>>>,
7758 #[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 manageable, 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)."]
7759 pub modifierExtension: Option<Vec<Box<Extension>>>,
7760 #[rename_field = "type"]
7761 #[doc = "Code that specifies the property DeviceDefinitionPropetyCode (Extensible)."]
7762 pub type_: Box<CodeableConcept>,
7763 #[doc = "Property value as a quantity."]
7764 pub valueQuantity: Option<Vec<Box<Quantity>>>,
7765 #[doc = "Property value as a code, e.g., NTP4 (synced to NTP)."]
7766 pub valueCode: Option<Vec<Box<CodeableConcept>>>,
7767}
7768#[derive(
7769 Clone,
7770 Reflect,
7771 Debug,
7772 Default,
7773 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7774 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7775)]
7776#[fhir_serialize_type = "resource"]
7777#[doc = "A type of a manufactured item that is used in the provision of healthcare without being substantially changed through that activity. The device may be a medical or non-medical device."]
7778pub struct Device {
7779 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
7780 pub id: Option<String>,
7781 #[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."]
7782 pub meta: Option<Box<Meta>>,
7783 #[primitive]
7784 #[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."]
7785 pub implicitRules: Option<Box<FHIRUri>>,
7786 #[primitive]
7787 #[doc = "The base language in which the resource is written."]
7788 pub language: Option<Box<FHIRCode>>,
7789 #[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."]
7790 pub text: Option<Box<Narrative>>,
7791 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
7792 pub contained: Option<Vec<Box<Resource>>>,
7793 #[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 manageable, 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."]
7794 pub extension: Option<Vec<Box<Extension>>>,
7795 #[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 manageable, 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)."]
7796 pub modifierExtension: Option<Vec<Box<Extension>>>,
7797 #[rename_field = "identifier"]
7798 #[doc = "Unique instance identifiers assigned to a device by manufacturers other organizations or owners."]
7799 pub identifier_: Option<Vec<Box<Identifier>>>,
7800 # [reference (targets = ["DeviceDefinition"])]
7801 #[doc = "The reference to the definition for the device."]
7802 pub definition: Option<Box<Reference>>,
7803 #[doc = "Unique device identifier (UDI) assigned to device label or package. Note that the Device may include multiple udiCarriers as it either may include just the udiCarrier for the jurisdiction it is sold, or for multiple jurisdictions it could have been sold."]
7804 pub udiCarrier: Option<Vec<DeviceUdiCarrier>>,
7805 #[primitive]
7806 #[doc = "Status of the Device availability."]
7807 pub status: Option<Box<terminology::DeviceStatus>>,
7808 #[doc = "Reason for the dtatus of the Device availability."]
7809 pub statusReason: Option<Vec<Box<CodeableConcept>>>,
7810 #[primitive]
7811 #[doc = "The distinct identification string as required by regulation for a human cell, tissue, or cellular and tissue-based product."]
7812 pub distinctIdentifier: Option<Box<FHIRString>>,
7813 #[primitive]
7814 #[doc = "A name of the manufacturer."]
7815 pub manufacturer: Option<Box<FHIRString>>,
7816 #[primitive]
7817 #[doc = "The date and time when the device was manufactured."]
7818 pub manufactureDate: Option<Box<FHIRDateTime>>,
7819 #[primitive]
7820 #[doc = "The date and time beyond which this device is no longer valid or should not be used (if applicable)."]
7821 pub expirationDate: Option<Box<FHIRDateTime>>,
7822 #[primitive]
7823 #[doc = "Lot number assigned by the manufacturer."]
7824 pub lotNumber: Option<Box<FHIRString>>,
7825 #[primitive]
7826 #[doc = "The serial number assigned by the organization when the device was manufactured."]
7827 pub serialNumber: Option<Box<FHIRString>>,
7828 #[doc = "This represents the manufacturer's name of the device as provided by the device, from a UDI label, or by a person describing the Device. This typically would be used when a person provides the name(s) or when the device represents one of the names available from DeviceDefinition."]
7829 pub deviceName: Option<Vec<DeviceDeviceName>>,
7830 #[primitive]
7831 #[doc = "The model number for the device."]
7832 pub modelNumber: Option<Box<FHIRString>>,
7833 #[primitive]
7834 #[doc = "The part number of the device."]
7835 pub partNumber: Option<Box<FHIRString>>,
7836 #[rename_field = "type"]
7837 #[doc = "The kind or type of device."]
7838 pub type_: Option<Box<CodeableConcept>>,
7839 #[doc = "The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication."]
7840 pub specialization: Option<Vec<DeviceSpecialization>>,
7841 #[doc = "The actual design of the device or software version running on the device."]
7842 pub version: Option<Vec<DeviceVersion>>,
7843 #[doc = "The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties."]
7844 pub property: Option<Vec<DeviceProperty>>,
7845 # [reference (targets = ["Patient"])]
7846 #[doc = "Patient information, If the device is affixed to a person."]
7847 pub patient: Option<Box<Reference>>,
7848 # [reference (targets = ["Organization"])]
7849 #[doc = "An organization that is responsible for the provision and ongoing maintenance of the device."]
7850 pub owner: Option<Box<Reference>>,
7851 #[doc = "Contact details for an organization or a particular human that is responsible for the device."]
7852 pub contact: Option<Vec<Box<ContactPoint>>>,
7853 # [reference (targets = ["Location"])]
7854 #[doc = "The place where the device can be found."]
7855 pub location: Option<Box<Reference>>,
7856 #[primitive]
7857 #[doc = "A network address on which the device may be contacted directly."]
7858 pub url: Option<Box<FHIRUri>>,
7859 #[doc = "Descriptive information, usage information or implantation information that is not captured in an existing element."]
7860 pub note: Option<Vec<Box<Annotation>>>,
7861 #[doc = "Provides additional safety characteristics about a medical device. For example devices containing latex."]
7862 pub safety: Option<Vec<Box<CodeableConcept>>>,
7863 # [reference (targets = ["Device"])]
7864 #[doc = "The parent device."]
7865 pub parent: Option<Box<Reference>>,
7866}
7867#[derive(
7868 Clone,
7869 Reflect,
7870 Debug,
7871 Default,
7872 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7873 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7874)]
7875#[fhir_serialize_type = "complex"]
7876#[doc = "Unique device identifier (UDI) assigned to device label or package. Note that the Device may include multiple udiCarriers as it either may include just the udiCarrier for the jurisdiction it is sold, or for multiple jurisdictions it could have been sold."]
7877pub struct DeviceDefinitionUdiDeviceIdentifier {
7878 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
7879 pub id: Option<String>,
7880 #[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 manageable, 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."]
7881 pub extension: Option<Vec<Box<Extension>>>,
7882 #[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 manageable, 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)."]
7883 pub modifierExtension: Option<Vec<Box<Extension>>>,
7884 #[primitive]
7885 #[doc = "The identifier that is to be associated with every Device that references this DeviceDefintiion for the issuer and jurisdication porvided in the DeviceDefinition.udiDeviceIdentifier."]
7886 pub deviceIdentifier: Box<FHIRString>,
7887 #[primitive]
7888 #[doc = "The organization that assigns the identifier algorithm."]
7889 pub issuer: Box<FHIRUri>,
7890 #[primitive]
7891 #[doc = "The jurisdiction to which the deviceIdentifier applies."]
7892 pub jurisdiction: Box<FHIRUri>,
7893}
7894#[derive(
7895 Clone,
7896 Reflect,
7897 Debug,
7898 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7899 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7900)]
7901#[fhir_serialize_type = "typechoice"]
7902#[type_choice_field_name = "manufacturer"]
7903pub enum DeviceDefinitionManufacturerTypeChoice {
7904 String(Box<FHIRString>),
7905 # [reference (targets = ["Organization"])]
7906 Reference(Box<Reference>),
7907}
7908impl Default for DeviceDefinitionManufacturerTypeChoice {
7909 fn default() -> Self {
7910 DeviceDefinitionManufacturerTypeChoice::String(Box::new(Default::default()))
7911 }
7912}
7913#[derive(
7914 Clone,
7915 Reflect,
7916 Debug,
7917 Default,
7918 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7919 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7920)]
7921#[fhir_serialize_type = "complex"]
7922#[doc = "A name given to the device to identify it."]
7923pub struct DeviceDefinitionDeviceName {
7924 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
7925 pub id: Option<String>,
7926 #[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 manageable, 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."]
7927 pub extension: Option<Vec<Box<Extension>>>,
7928 #[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 manageable, 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)."]
7929 pub modifierExtension: Option<Vec<Box<Extension>>>,
7930 #[primitive]
7931 #[doc = "The name of the device."]
7932 pub name: Box<FHIRString>,
7933 #[rename_field = "type"]
7934 #[primitive]
7935 #[doc = "The type of deviceName.\nUDILabelName | UserFriendlyName | PatientReportedName | ManufactureDeviceName | ModelName."]
7936 pub type_: Box<terminology::DeviceNametype>,
7937}
7938#[derive(
7939 Clone,
7940 Reflect,
7941 Debug,
7942 Default,
7943 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7944 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7945)]
7946#[fhir_serialize_type = "complex"]
7947#[doc = "The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication."]
7948pub struct DeviceDefinitionSpecialization {
7949 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
7950 pub id: Option<String>,
7951 #[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 manageable, 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."]
7952 pub extension: Option<Vec<Box<Extension>>>,
7953 #[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 manageable, 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)."]
7954 pub modifierExtension: Option<Vec<Box<Extension>>>,
7955 #[primitive]
7956 #[doc = "The standard that is used to operate and communicate."]
7957 pub systemType: Box<FHIRString>,
7958 #[primitive]
7959 #[doc = "The version of the standard that is used to operate and communicate."]
7960 pub version: Option<Box<FHIRString>>,
7961}
7962#[derive(
7963 Clone,
7964 Reflect,
7965 Debug,
7966 Default,
7967 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7968 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7969)]
7970#[fhir_serialize_type = "complex"]
7971#[doc = "Device capabilities."]
7972pub struct DeviceDefinitionCapability {
7973 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
7974 pub id: Option<String>,
7975 #[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 manageable, 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."]
7976 pub extension: Option<Vec<Box<Extension>>>,
7977 #[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 manageable, 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)."]
7978 pub modifierExtension: Option<Vec<Box<Extension>>>,
7979 #[rename_field = "type"]
7980 #[doc = "Type of capability."]
7981 pub type_: Box<CodeableConcept>,
7982 #[doc = "Description of capability."]
7983 pub description: Option<Vec<Box<CodeableConcept>>>,
7984}
7985#[derive(
7986 Clone,
7987 Reflect,
7988 Debug,
7989 Default,
7990 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
7991 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
7992)]
7993#[fhir_serialize_type = "complex"]
7994#[doc = "The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties."]
7995pub struct DeviceDefinitionProperty {
7996 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
7997 pub id: Option<String>,
7998 #[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 manageable, 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."]
7999 pub extension: Option<Vec<Box<Extension>>>,
8000 #[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 manageable, 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)."]
8001 pub modifierExtension: Option<Vec<Box<Extension>>>,
8002 #[rename_field = "type"]
8003 #[doc = "Code that specifies the property DeviceDefinitionPropetyCode (Extensible)."]
8004 pub type_: Box<CodeableConcept>,
8005 #[doc = "Property value as a quantity."]
8006 pub valueQuantity: Option<Vec<Box<Quantity>>>,
8007 #[doc = "Property value as a code, e.g., NTP4 (synced to NTP)."]
8008 pub valueCode: Option<Vec<Box<CodeableConcept>>>,
8009}
8010#[derive(
8011 Clone,
8012 Reflect,
8013 Debug,
8014 Default,
8015 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8016 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8017)]
8018#[fhir_serialize_type = "complex"]
8019#[doc = "A substance used to create the material(s) of which the device is made."]
8020pub struct DeviceDefinitionMaterial {
8021 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
8022 pub id: Option<String>,
8023 #[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 manageable, 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."]
8024 pub extension: Option<Vec<Box<Extension>>>,
8025 #[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 manageable, 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)."]
8026 pub modifierExtension: Option<Vec<Box<Extension>>>,
8027 #[doc = "The substance."]
8028 pub substance: Box<CodeableConcept>,
8029 #[primitive]
8030 #[doc = "Indicates an alternative material of the device."]
8031 pub alternate: Option<Box<FHIRBoolean>>,
8032 #[primitive]
8033 #[doc = "Whether the substance is a known or suspected allergen."]
8034 pub allergenicIndicator: Option<Box<FHIRBoolean>>,
8035}
8036#[derive(
8037 Clone,
8038 Reflect,
8039 Debug,
8040 Default,
8041 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8042 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8043)]
8044#[fhir_serialize_type = "resource"]
8045#[doc = "The characteristics, operational status and capabilities of a medical-related component of a medical device."]
8046pub struct DeviceDefinition {
8047 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
8048 pub id: Option<String>,
8049 #[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."]
8050 pub meta: Option<Box<Meta>>,
8051 #[primitive]
8052 #[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."]
8053 pub implicitRules: Option<Box<FHIRUri>>,
8054 #[primitive]
8055 #[doc = "The base language in which the resource is written."]
8056 pub language: Option<Box<FHIRCode>>,
8057 #[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."]
8058 pub text: Option<Box<Narrative>>,
8059 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
8060 pub contained: Option<Vec<Box<Resource>>>,
8061 #[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 manageable, 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."]
8062 pub extension: Option<Vec<Box<Extension>>>,
8063 #[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 manageable, 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)."]
8064 pub modifierExtension: Option<Vec<Box<Extension>>>,
8065 #[rename_field = "identifier"]
8066 #[doc = "Unique instance identifiers assigned to a device by the software, manufacturers, other organizations or owners. For example: handle ID."]
8067 pub identifier_: Option<Vec<Box<Identifier>>>,
8068 #[doc = "Unique device identifier (UDI) assigned to device label or package. Note that the Device may include multiple udiCarriers as it either may include just the udiCarrier for the jurisdiction it is sold, or for multiple jurisdictions it could have been sold."]
8069 pub udiDeviceIdentifier: Option<Vec<DeviceDefinitionUdiDeviceIdentifier>>,
8070 # [type_choice_variants (complex = ["manufacturerReference"] , primitive = ["manufacturerString"])]
8071 #[doc = "A name of the manufacturer."]
8072 pub manufacturer: Option<DeviceDefinitionManufacturerTypeChoice>,
8073 #[doc = "A name given to the device to identify it."]
8074 pub deviceName: Option<Vec<DeviceDefinitionDeviceName>>,
8075 #[primitive]
8076 #[doc = "The model number for the device."]
8077 pub modelNumber: Option<Box<FHIRString>>,
8078 #[rename_field = "type"]
8079 #[doc = "What kind of device or device system this is."]
8080 pub type_: Option<Box<CodeableConcept>>,
8081 #[doc = "The capabilities supported on a device, the standards to which the device conforms for a particular purpose, and used for the communication."]
8082 pub specialization: Option<Vec<DeviceDefinitionSpecialization>>,
8083 #[primitive]
8084 #[doc = "The available versions of the device, e.g., software versions."]
8085 pub version: Option<Vec<Box<FHIRString>>>,
8086 #[doc = "Safety characteristics of the device."]
8087 pub safety: Option<Vec<Box<CodeableConcept>>>,
8088 #[doc = "Shelf Life and storage information."]
8089 pub shelfLifeStorage: Option<Vec<Box<ProductShelfLife>>>,
8090 #[doc = "Dimensions, color etc."]
8091 pub physicalCharacteristics: Option<Box<ProdCharacteristic>>,
8092 #[doc = "Language code for the human-readable text strings produced by the device (all supported)."]
8093 pub languageCode: Option<Vec<Box<CodeableConcept>>>,
8094 #[doc = "Device capabilities."]
8095 pub capability: Option<Vec<DeviceDefinitionCapability>>,
8096 #[doc = "The actual configuration settings of a device as it actually operates, e.g., regulation status, time properties."]
8097 pub property: Option<Vec<DeviceDefinitionProperty>>,
8098 # [reference (targets = ["Organization"])]
8099 #[doc = "An organization that is responsible for the provision and ongoing maintenance of the device."]
8100 pub owner: Option<Box<Reference>>,
8101 #[doc = "Contact details for an organization or a particular human that is responsible for the device."]
8102 pub contact: Option<Vec<Box<ContactPoint>>>,
8103 #[primitive]
8104 #[doc = "A network address on which the device may be contacted directly."]
8105 pub url: Option<Box<FHIRUri>>,
8106 #[primitive]
8107 #[doc = "Access to on-line information about the device."]
8108 pub onlineInformation: Option<Box<FHIRUri>>,
8109 #[doc = "Descriptive information, usage information or implantation information that is not captured in an existing element."]
8110 pub note: Option<Vec<Box<Annotation>>>,
8111 #[doc = "The quantity of the device present in the packaging (e.g. the number of devices present in a pack, or the number of devices in the same package of the medicinal product)."]
8112 pub quantity: Option<Box<Quantity>>,
8113 # [reference (targets = ["DeviceDefinition"])]
8114 #[doc = "The parent device it can be part of."]
8115 pub parentDevice: Option<Box<Reference>>,
8116 #[doc = "A substance used to create the material(s) of which the device is made."]
8117 pub material: Option<Vec<DeviceDefinitionMaterial>>,
8118}
8119#[derive(
8120 Clone,
8121 Reflect,
8122 Debug,
8123 Default,
8124 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8125 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8126)]
8127#[fhir_serialize_type = "complex"]
8128#[doc = "Describes the calibrations that have been performed or that are required to be performed."]
8129pub struct DeviceMetricCalibration {
8130 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
8131 pub id: Option<String>,
8132 #[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 manageable, 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."]
8133 pub extension: Option<Vec<Box<Extension>>>,
8134 #[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 manageable, 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)."]
8135 pub modifierExtension: Option<Vec<Box<Extension>>>,
8136 #[rename_field = "type"]
8137 #[primitive]
8138 #[doc = "Describes the type of the calibration method."]
8139 pub type_: Option<Box<terminology::MetricCalibrationType>>,
8140 #[primitive]
8141 #[doc = "Describes the state of the calibration."]
8142 pub state: Option<Box<terminology::MetricCalibrationState>>,
8143 #[primitive]
8144 #[doc = "Describes the time last calibration has been performed."]
8145 pub time: Option<Box<FHIRInstant>>,
8146}
8147#[derive(
8148 Clone,
8149 Reflect,
8150 Debug,
8151 Default,
8152 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8153 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8154)]
8155#[fhir_serialize_type = "resource"]
8156#[doc = "Describes a measurement, calculation or setting capability of a medical device."]
8157pub struct DeviceMetric {
8158 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
8159 pub id: Option<String>,
8160 #[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."]
8161 pub meta: Option<Box<Meta>>,
8162 #[primitive]
8163 #[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."]
8164 pub implicitRules: Option<Box<FHIRUri>>,
8165 #[primitive]
8166 #[doc = "The base language in which the resource is written."]
8167 pub language: Option<Box<FHIRCode>>,
8168 #[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."]
8169 pub text: Option<Box<Narrative>>,
8170 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
8171 pub contained: Option<Vec<Box<Resource>>>,
8172 #[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 manageable, 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."]
8173 pub extension: Option<Vec<Box<Extension>>>,
8174 #[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 manageable, 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)."]
8175 pub modifierExtension: Option<Vec<Box<Extension>>>,
8176 #[rename_field = "identifier"]
8177 #[doc = "Unique instance identifiers assigned to a device by the device or gateway software, manufacturers, other organizations or owners. For example: handle ID."]
8178 pub identifier_: Option<Vec<Box<Identifier>>>,
8179 #[rename_field = "type"]
8180 #[doc = "Describes the type of the metric. For example: Heart Rate, PEEP Setting, etc."]
8181 pub type_: Box<CodeableConcept>,
8182 #[doc = "Describes the unit that an observed value determined for this metric will have. For example: Percent, Seconds, etc."]
8183 pub unit: Option<Box<CodeableConcept>>,
8184 # [reference (targets = ["Device"])]
8185 #[doc = "Describes the link to the Device that this DeviceMetric belongs to and that contains administrative device information such as manufacturer, serial number, etc."]
8186 pub source: Option<Box<Reference>>,
8187 # [reference (targets = ["Device"])]
8188 #[doc = "Describes the link to the Device that this DeviceMetric belongs to and that provide information about the location of this DeviceMetric in the containment structure of the parent Device. An example would be a Device that represents a Channel. This reference can be used by a client application to distinguish DeviceMetrics that have the same type, but should be interpreted based on their containment location."]
8189 pub parent: Option<Box<Reference>>,
8190 #[primitive]
8191 #[doc = "Indicates current operational state of the device. For example: On, Off, Standby, etc."]
8192 pub operationalStatus: Option<Box<terminology::MetricOperationalStatus>>,
8193 #[primitive]
8194 #[doc = "Describes the color representation for the metric. This is often used to aid clinicians to track and identify parameter types by color. In practice, consider a Patient Monitor that has ECG/HR and Pleth for example; the parameters are displayed in different characteristic colors, such as HR-blue, BP-green, and PR and SpO2- magenta."]
8195 pub color: Option<Box<terminology::MetricColor>>,
8196 #[primitive]
8197 #[doc = "Indicates the category of the observation generation process. A DeviceMetric can be for example a setting, measurement, or calculation."]
8198 pub category: Box<terminology::MetricCategory>,
8199 #[doc = "Describes the measurement repetition time. This is not necessarily the same as the update period. The measurement repetition time can range from milliseconds up to hours. An example for a measurement repetition time in the range of milliseconds is the sampling rate of an ECG. An example for a measurement repetition time in the range of hours is a NIBP that is triggered automatically every hour. The update period may be different than the measurement repetition time, if the device does not update the published observed value with the same frequency as it was measured."]
8200 pub measurementPeriod: Option<Box<Timing>>,
8201 #[doc = "Describes the calibrations that have been performed or that are required to be performed."]
8202 pub calibration: Option<Vec<DeviceMetricCalibration>>,
8203}
8204#[derive(
8205 Clone,
8206 Reflect,
8207 Debug,
8208 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8209 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8210)]
8211#[fhir_serialize_type = "typechoice"]
8212#[type_choice_field_name = "code"]
8213pub enum DeviceRequestCodeTypeChoice {
8214 # [reference (targets = ["Device"])]
8215 Reference(Box<Reference>),
8216 CodeableConcept(Box<CodeableConcept>),
8217}
8218impl Default for DeviceRequestCodeTypeChoice {
8219 fn default() -> Self {
8220 DeviceRequestCodeTypeChoice::Reference(Box::new(Default::default()))
8221 }
8222}
8223#[derive(
8224 Clone,
8225 Reflect,
8226 Debug,
8227 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8228 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8229)]
8230#[fhir_serialize_type = "typechoice"]
8231#[type_choice_field_name = "value"]
8232pub enum DeviceRequestParameterValueTypeChoice {
8233 CodeableConcept(Box<CodeableConcept>),
8234 Quantity(Box<Quantity>),
8235 Range(Box<Range>),
8236 Boolean(Box<FHIRBoolean>),
8237}
8238impl Default for DeviceRequestParameterValueTypeChoice {
8239 fn default() -> Self {
8240 DeviceRequestParameterValueTypeChoice::CodeableConcept(Box::new(Default::default()))
8241 }
8242}
8243#[derive(
8244 Clone,
8245 Reflect,
8246 Debug,
8247 Default,
8248 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8249 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8250)]
8251#[fhir_serialize_type = "complex"]
8252#[doc = "Specific parameters for the ordered item. For example, the prism value for lenses."]
8253pub struct DeviceRequestParameter {
8254 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
8255 pub id: Option<String>,
8256 #[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 manageable, 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."]
8257 pub extension: Option<Vec<Box<Extension>>>,
8258 #[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 manageable, 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)."]
8259 pub modifierExtension: Option<Vec<Box<Extension>>>,
8260 #[doc = "A code or string that identifies the device detail being asserted."]
8261 pub code: Option<Box<CodeableConcept>>,
8262 # [type_choice_variants (complex = ["valueCodeableConcept" , "valueQuantity" , "valueRange"] , primitive = ["valueBoolean"])]
8263 #[doc = "The value of the device detail."]
8264 pub value: Option<DeviceRequestParameterValueTypeChoice>,
8265}
8266#[derive(
8267 Clone,
8268 Reflect,
8269 Debug,
8270 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8271 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8272)]
8273#[fhir_serialize_type = "typechoice"]
8274#[type_choice_field_name = "occurrence"]
8275pub enum DeviceRequestOccurrenceTypeChoice {
8276 DateTime(Box<FHIRDateTime>),
8277 Period(Box<Period>),
8278 Timing(Box<Timing>),
8279}
8280impl Default for DeviceRequestOccurrenceTypeChoice {
8281 fn default() -> Self {
8282 DeviceRequestOccurrenceTypeChoice::DateTime(Box::new(Default::default()))
8283 }
8284}
8285#[derive(
8286 Clone,
8287 Reflect,
8288 Debug,
8289 Default,
8290 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8291 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8292)]
8293#[fhir_serialize_type = "resource"]
8294#[doc = "Represents a request for a patient to employ a medical device. The device may be an implantable device, or an external assistive device, such as a walker."]
8295pub struct DeviceRequest {
8296 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
8297 pub id: Option<String>,
8298 #[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."]
8299 pub meta: Option<Box<Meta>>,
8300 #[primitive]
8301 #[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."]
8302 pub implicitRules: Option<Box<FHIRUri>>,
8303 #[primitive]
8304 #[doc = "The base language in which the resource is written."]
8305 pub language: Option<Box<FHIRCode>>,
8306 #[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."]
8307 pub text: Option<Box<Narrative>>,
8308 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
8309 pub contained: Option<Vec<Box<Resource>>>,
8310 #[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 manageable, 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."]
8311 pub extension: Option<Vec<Box<Extension>>>,
8312 #[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 manageable, 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)."]
8313 pub modifierExtension: Option<Vec<Box<Extension>>>,
8314 #[rename_field = "identifier"]
8315 #[doc = "Identifiers assigned to this order by the orderer or by the receiver."]
8316 pub identifier_: Option<Vec<Box<Identifier>>>,
8317 #[primitive]
8318 #[doc = "The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this DeviceRequest."]
8319 pub instantiatesCanonical: Option<Vec<Box<FHIRCanonical>>>,
8320 #[primitive]
8321 #[doc = "The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this DeviceRequest."]
8322 pub instantiatesUri: Option<Vec<Box<FHIRUri>>>,
8323 # [reference (targets = ["Resource"])]
8324 #[doc = "Plan/proposal/order fulfilled by this request."]
8325 pub basedOn: Option<Vec<Box<Reference>>>,
8326 # [reference (targets = ["Resource"])]
8327 #[doc = "The request takes the place of the referenced completed or terminated request(s)."]
8328 pub priorRequest: Option<Vec<Box<Reference>>>,
8329 #[doc = "Composite request this is part of."]
8330 pub groupIdentifier: Option<Box<Identifier>>,
8331 #[primitive]
8332 #[doc = "The status of the request."]
8333 pub status: Option<Box<terminology::RequestStatus>>,
8334 #[primitive]
8335 #[doc = "Whether the request is a proposal, plan, an original order or a reflex order."]
8336 pub intent: Box<terminology::RequestIntent>,
8337 #[primitive]
8338 #[doc = "Indicates how quickly the {{title}} should be addressed with respect to other requests."]
8339 pub priority: Option<Box<terminology::RequestPriority>>,
8340 # [type_choice_variants (complex = ["codeReference" , "codeCodeableConcept"] , primitive = [])]
8341 #[doc = "The details of the device to be used."]
8342 pub code: DeviceRequestCodeTypeChoice,
8343 #[doc = "Specific parameters for the ordered item. For example, the prism value for lenses."]
8344 pub parameter: Option<Vec<DeviceRequestParameter>>,
8345 # [reference (targets = ["Patient" , "Group" , "Location" , "Device"])]
8346 #[doc = "The patient who will use the device."]
8347 pub subject: Box<Reference>,
8348 # [reference (targets = ["Encounter"])]
8349 #[doc = "An encounter that provides additional context in which this request is made."]
8350 pub encounter: Option<Box<Reference>>,
8351 # [type_choice_variants (complex = ["occurrencePeriod" , "occurrenceTiming"] , primitive = ["occurrenceDateTime"])]
8352 #[doc = "The timing schedule for the use of the device. The Schedule data type allows many different expressions, for example. \"Every 8 hours\"; \"Three times a day\"; \"1/2 an hour before breakfast for 10 days from 23-Dec 2011:\"; \"15 Oct 2013, 17 Oct 2013 and 1 Nov 2013\"."]
8353 pub occurrence: Option<DeviceRequestOccurrenceTypeChoice>,
8354 #[primitive]
8355 #[doc = "When the request transitioned to being actionable."]
8356 pub authoredOn: Option<Box<FHIRDateTime>>,
8357 # [reference (targets = ["Device" , "Practitioner" , "PractitionerRole" , "Organization"])]
8358 #[doc = "The individual who initiated the request and has responsibility for its activation."]
8359 pub requester: Option<Box<Reference>>,
8360 #[doc = "Desired type of performer for doing the diagnostic testing."]
8361 pub performerType: Option<Box<CodeableConcept>>,
8362 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization" , "CareTeam" , "HealthcareService" , "Patient" , "Device" , "RelatedPerson"])]
8363 #[doc = "The desired performer for doing the diagnostic testing."]
8364 pub performer: Option<Box<Reference>>,
8365 #[doc = "Reason or justification for the use of this device."]
8366 pub reasonCode: Option<Vec<Box<CodeableConcept>>>,
8367 # [reference (targets = ["Condition" , "Observation" , "DiagnosticReport" , "DocumentReference"])]
8368 #[doc = "Reason or justification for the use of this device."]
8369 pub reasonReference: Option<Vec<Box<Reference>>>,
8370 # [reference (targets = ["Coverage" , "ClaimResponse"])]
8371 #[doc = "Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be required for delivering the requested service."]
8372 pub insurance: Option<Vec<Box<Reference>>>,
8373 # [reference (targets = ["Resource"])]
8374 #[doc = "Additional clinical information about the patient that may influence the request fulfilment. For example, this may include where on the subject's body the device will be used (i.e. the target site)."]
8375 pub supportingInfo: Option<Vec<Box<Reference>>>,
8376 #[doc = "Details about this request that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement."]
8377 pub note: Option<Vec<Box<Annotation>>>,
8378 # [reference (targets = ["Provenance"])]
8379 #[doc = "Key events in the history of the request."]
8380 pub relevantHistory: Option<Vec<Box<Reference>>>,
8381}
8382#[derive(
8383 Clone,
8384 Reflect,
8385 Debug,
8386 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8387 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8388)]
8389#[fhir_serialize_type = "typechoice"]
8390#[type_choice_field_name = "timing"]
8391pub enum DeviceUseStatementTimingTypeChoice {
8392 Timing(Box<Timing>),
8393 Period(Box<Period>),
8394 DateTime(Box<FHIRDateTime>),
8395}
8396impl Default for DeviceUseStatementTimingTypeChoice {
8397 fn default() -> Self {
8398 DeviceUseStatementTimingTypeChoice::Timing(Box::new(Default::default()))
8399 }
8400}
8401#[derive(
8402 Clone,
8403 Reflect,
8404 Debug,
8405 Default,
8406 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8407 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8408)]
8409#[fhir_serialize_type = "resource"]
8410#[doc = "A record of a device being used by a patient where the record is the result of a report from the patient or another clinician."]
8411pub struct DeviceUseStatement {
8412 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
8413 pub id: Option<String>,
8414 #[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."]
8415 pub meta: Option<Box<Meta>>,
8416 #[primitive]
8417 #[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."]
8418 pub implicitRules: Option<Box<FHIRUri>>,
8419 #[primitive]
8420 #[doc = "The base language in which the resource is written."]
8421 pub language: Option<Box<FHIRCode>>,
8422 #[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."]
8423 pub text: Option<Box<Narrative>>,
8424 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
8425 pub contained: Option<Vec<Box<Resource>>>,
8426 #[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 manageable, 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."]
8427 pub extension: Option<Vec<Box<Extension>>>,
8428 #[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 manageable, 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)."]
8429 pub modifierExtension: Option<Vec<Box<Extension>>>,
8430 #[rename_field = "identifier"]
8431 #[doc = "An external identifier for this statement such as an IRI."]
8432 pub identifier_: Option<Vec<Box<Identifier>>>,
8433 # [reference (targets = ["ServiceRequest"])]
8434 #[doc = "A plan, proposal or order that is fulfilled in whole or in part by this DeviceUseStatement."]
8435 pub basedOn: Option<Vec<Box<Reference>>>,
8436 #[primitive]
8437 #[doc = "A code representing the patient or other source's judgment about the state of the device used that this statement is about. Generally this will be active or completed."]
8438 pub status: Box<terminology::DeviceStatementStatus>,
8439 # [reference (targets = ["Patient" , "Group"])]
8440 #[doc = "The patient who used the device."]
8441 pub subject: Box<Reference>,
8442 # [reference (targets = ["ServiceRequest" , "Procedure" , "Claim" , "Observation" , "QuestionnaireResponse" , "DocumentReference"])]
8443 #[doc = "Allows linking the DeviceUseStatement to the underlying Request, or to other information that supports or is used to derive the DeviceUseStatement."]
8444 pub derivedFrom: Option<Vec<Box<Reference>>>,
8445 # [type_choice_variants (complex = ["timingTiming" , "timingPeriod"] , primitive = ["timingDateTime"])]
8446 #[doc = "How often the device was used."]
8447 pub timing: Option<DeviceUseStatementTimingTypeChoice>,
8448 #[primitive]
8449 #[doc = "The time at which the statement was made/recorded."]
8450 pub recordedOn: Option<Box<FHIRDateTime>>,
8451 # [reference (targets = ["Patient" , "Practitioner" , "PractitionerRole" , "RelatedPerson"])]
8452 #[doc = "Who reported the device was being used by the patient."]
8453 pub source: Option<Box<Reference>>,
8454 # [reference (targets = ["Device"])]
8455 #[doc = "The details of the device used."]
8456 pub device: Box<Reference>,
8457 #[doc = "Reason or justification for the use of the device."]
8458 pub reasonCode: Option<Vec<Box<CodeableConcept>>>,
8459 # [reference (targets = ["Condition" , "Observation" , "DiagnosticReport" , "DocumentReference" , "Media"])]
8460 #[doc = "Indicates another resource whose existence justifies this DeviceUseStatement."]
8461 pub reasonReference: Option<Vec<Box<Reference>>>,
8462 #[doc = "Indicates the anotomic location on the subject's body where the device was used ( i.e. the target)."]
8463 pub bodySite: Option<Box<CodeableConcept>>,
8464 #[doc = "Details about the device statement that were not represented at all or sufficiently in one of the attributes provided in a class. These may include for example a comment, an instruction, or a note associated with the statement."]
8465 pub note: Option<Vec<Box<Annotation>>>,
8466}
8467#[derive(
8468 Clone,
8469 Reflect,
8470 Debug,
8471 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8472 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8473)]
8474#[fhir_serialize_type = "typechoice"]
8475#[type_choice_field_name = "effective"]
8476pub enum DiagnosticReportEffectiveTypeChoice {
8477 DateTime(Box<FHIRDateTime>),
8478 Period(Box<Period>),
8479}
8480impl Default for DiagnosticReportEffectiveTypeChoice {
8481 fn default() -> Self {
8482 DiagnosticReportEffectiveTypeChoice::DateTime(Box::new(Default::default()))
8483 }
8484}
8485#[derive(
8486 Clone,
8487 Reflect,
8488 Debug,
8489 Default,
8490 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8491 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8492)]
8493#[fhir_serialize_type = "complex"]
8494#[doc = "A list of key images associated with this report. The images are generally created during the diagnostic process, and may be directly of the patient, or of treated specimens (i.e. slides of interest)."]
8495pub struct DiagnosticReportMedia {
8496 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
8497 pub id: Option<String>,
8498 #[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 manageable, 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."]
8499 pub extension: Option<Vec<Box<Extension>>>,
8500 #[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 manageable, 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)."]
8501 pub modifierExtension: Option<Vec<Box<Extension>>>,
8502 #[primitive]
8503 #[doc = "A comment about the image. Typically, this is used to provide an explanation for why the image is included, or to draw the viewer's attention to important features."]
8504 pub comment: Option<Box<FHIRString>>,
8505 # [reference (targets = ["Media"])]
8506 #[doc = "Reference to the image source."]
8507 pub link: Box<Reference>,
8508}
8509#[derive(
8510 Clone,
8511 Reflect,
8512 Debug,
8513 Default,
8514 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8515 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8516)]
8517#[fhir_serialize_type = "resource"]
8518#[doc = "The findings and interpretation of diagnostic tests performed on patients, groups of patients, devices, and locations, and/or specimens derived from these. The report includes clinical context such as requesting and provider information, and some mix of atomic results, images, textual and coded interpretations, and formatted representation of diagnostic reports."]
8519pub struct DiagnosticReport {
8520 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
8521 pub id: Option<String>,
8522 #[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."]
8523 pub meta: Option<Box<Meta>>,
8524 #[primitive]
8525 #[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."]
8526 pub implicitRules: Option<Box<FHIRUri>>,
8527 #[primitive]
8528 #[doc = "The base language in which the resource is written."]
8529 pub language: Option<Box<FHIRCode>>,
8530 #[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."]
8531 pub text: Option<Box<Narrative>>,
8532 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
8533 pub contained: Option<Vec<Box<Resource>>>,
8534 #[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 manageable, 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."]
8535 pub extension: Option<Vec<Box<Extension>>>,
8536 #[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 manageable, 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)."]
8537 pub modifierExtension: Option<Vec<Box<Extension>>>,
8538 #[rename_field = "identifier"]
8539 #[doc = "Identifiers assigned to this report by the performer or other systems."]
8540 pub identifier_: Option<Vec<Box<Identifier>>>,
8541 # [reference (targets = ["CarePlan" , "ImmunizationRecommendation" , "MedicationRequest" , "NutritionOrder" , "ServiceRequest"])]
8542 #[doc = "Details concerning a service requested."]
8543 pub basedOn: Option<Vec<Box<Reference>>>,
8544 #[primitive]
8545 #[doc = "The status of the diagnostic report."]
8546 pub status: Box<terminology::DiagnosticReportStatus>,
8547 #[doc = "A code that classifies the clinical discipline, department or diagnostic service that created the report (e.g. cardiology, biochemistry, hematology, MRI). This is used for searching, sorting and display purposes."]
8548 pub category: Option<Vec<Box<CodeableConcept>>>,
8549 #[doc = "A code or name that describes this diagnostic report."]
8550 pub code: Box<CodeableConcept>,
8551 # [reference (targets = ["Patient" , "Group" , "Device" , "Location"])]
8552 #[doc = "The subject of the report. Usually, but not always, this is a patient. However, diagnostic services also perform analyses on specimens collected from a variety of other sources."]
8553 pub subject: Option<Box<Reference>>,
8554 # [reference (targets = ["Encounter"])]
8555 #[doc = "The healthcare event (e.g. a patient and healthcare provider interaction) which this DiagnosticReport is about."]
8556 pub encounter: Option<Box<Reference>>,
8557 # [type_choice_variants (complex = ["effectivePeriod"] , primitive = ["effectiveDateTime"])]
8558 #[doc = "The time or time-period the observed values are related to. When the subject of the report is a patient, this is usually either the time of the procedure or of specimen collection(s), but very often the source of the date/time is not known, only the date/time itself."]
8559 pub effective: Option<DiagnosticReportEffectiveTypeChoice>,
8560 #[primitive]
8561 #[doc = "The date and time that this version of the report was made available to providers, typically after the report was reviewed and verified."]
8562 pub issued: Option<Box<FHIRInstant>>,
8563 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization" , "CareTeam"])]
8564 #[doc = "The diagnostic service that is responsible for issuing the report."]
8565 pub performer: Option<Vec<Box<Reference>>>,
8566 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization" , "CareTeam"])]
8567 #[doc = "The practitioner or organization that is responsible for the report's conclusions and interpretations."]
8568 pub resultsInterpreter: Option<Vec<Box<Reference>>>,
8569 # [reference (targets = ["Specimen"])]
8570 #[doc = "Details about the specimens on which this diagnostic report is based."]
8571 pub specimen: Option<Vec<Box<Reference>>>,
8572 # [reference (targets = ["Observation"])]
8573 #[doc = "[Observations](observation.html) that are part of this diagnostic report."]
8574 pub result: Option<Vec<Box<Reference>>>,
8575 # [reference (targets = ["ImagingStudy"])]
8576 #[doc = "One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images."]
8577 pub imagingStudy: Option<Vec<Box<Reference>>>,
8578 #[doc = "A list of key images associated with this report. The images are generally created during the diagnostic process, and may be directly of the patient, or of treated specimens (i.e. slides of interest)."]
8579 pub media: Option<Vec<DiagnosticReportMedia>>,
8580 #[primitive]
8581 #[doc = "Concise and clinically contextualized summary conclusion (interpretation/impression) of the diagnostic report."]
8582 pub conclusion: Option<Box<FHIRString>>,
8583 #[doc = "One or more codes that represent the summary conclusion (interpretation/impression) of the diagnostic report."]
8584 pub conclusionCode: Option<Vec<Box<CodeableConcept>>>,
8585 #[doc = "Rich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they SHALL be semantically equivalent."]
8586 pub presentedForm: Option<Vec<Box<Attachment>>>,
8587}
8588#[derive(
8589 Clone,
8590 Reflect,
8591 Debug,
8592 Default,
8593 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8594 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8595)]
8596#[fhir_serialize_type = "complex"]
8597#[doc = "Related identifiers or resources associated with the DocumentManifest."]
8598pub struct DocumentManifestRelated {
8599 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
8600 pub id: Option<String>,
8601 #[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 manageable, 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."]
8602 pub extension: Option<Vec<Box<Extension>>>,
8603 #[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 manageable, 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)."]
8604 pub modifierExtension: Option<Vec<Box<Extension>>>,
8605 #[rename_field = "identifier"]
8606 #[doc = "Related identifier to this DocumentManifest. For example, Order numbers, accession numbers, XDW workflow numbers."]
8607 pub identifier_: Option<Box<Identifier>>,
8608 #[rename_field = "ref"]
8609 # [reference (targets = ["Resource"])]
8610 #[doc = "Related Resource to this DocumentManifest. For example, Order, ServiceRequest, Procedure, EligibilityRequest, etc."]
8611 pub ref_: Option<Box<Reference>>,
8612}
8613#[derive(
8614 Clone,
8615 Reflect,
8616 Debug,
8617 Default,
8618 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8619 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8620)]
8621#[fhir_serialize_type = "resource"]
8622#[doc = "A collection of documents compiled for a purpose together with metadata that applies to the collection."]
8623pub struct DocumentManifest {
8624 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
8625 pub id: Option<String>,
8626 #[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."]
8627 pub meta: Option<Box<Meta>>,
8628 #[primitive]
8629 #[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."]
8630 pub implicitRules: Option<Box<FHIRUri>>,
8631 #[primitive]
8632 #[doc = "The base language in which the resource is written."]
8633 pub language: Option<Box<FHIRCode>>,
8634 #[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."]
8635 pub text: Option<Box<Narrative>>,
8636 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
8637 pub contained: Option<Vec<Box<Resource>>>,
8638 #[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 manageable, 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."]
8639 pub extension: Option<Vec<Box<Extension>>>,
8640 #[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 manageable, 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)."]
8641 pub modifierExtension: Option<Vec<Box<Extension>>>,
8642 #[doc = "A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts."]
8643 pub masterIdentifier: Option<Box<Identifier>>,
8644 #[rename_field = "identifier"]
8645 #[doc = "Other identifiers associated with the document manifest, including version independent identifiers."]
8646 pub identifier_: Option<Vec<Box<Identifier>>>,
8647 #[primitive]
8648 #[doc = "The status of this document manifest."]
8649 pub status: Box<terminology::DocumentReferenceStatus>,
8650 #[rename_field = "type"]
8651 #[doc = "The code specifying the type of clinical activity that resulted in placing the associated content into the DocumentManifest."]
8652 pub type_: Option<Box<CodeableConcept>>,
8653 # [reference (targets = ["Patient" , "Practitioner" , "Group" , "Device"])]
8654 #[doc = "Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case)."]
8655 pub subject: Option<Box<Reference>>,
8656 #[primitive]
8657 #[doc = "When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated, etc.)."]
8658 pub created: Option<Box<FHIRDateTime>>,
8659 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization" , "Device" , "Patient" , "RelatedPerson"])]
8660 #[doc = "Identifies who is the author of the manifest. Manifest author is not necessarly the author of the references included."]
8661 pub author: Option<Vec<Box<Reference>>>,
8662 # [reference (targets = ["Patient" , "Practitioner" , "PractitionerRole" , "RelatedPerson" , "Organization"])]
8663 #[doc = "A patient, practitioner, or organization for which this set of documents is intended."]
8664 pub recipient: Option<Vec<Box<Reference>>>,
8665 #[primitive]
8666 #[doc = "Identifies the source system, application, or software that produced the document manifest."]
8667 pub source: Option<Box<FHIRUri>>,
8668 #[primitive]
8669 #[doc = "Human-readable description of the source document. This is sometimes known as the \"title\"."]
8670 pub description: Option<Box<FHIRString>>,
8671 #[cardinality(min = 1usize)]
8672 # [reference (targets = ["Resource"])]
8673 #[doc = "The list of Resources that consist of the parts of this manifest."]
8674 pub content: Vec<Box<Reference>>,
8675 #[doc = "Related identifiers or resources associated with the DocumentManifest."]
8676 pub related: Option<Vec<DocumentManifestRelated>>,
8677}
8678#[derive(
8679 Clone,
8680 Reflect,
8681 Debug,
8682 Default,
8683 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8684 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8685)]
8686#[fhir_serialize_type = "complex"]
8687#[doc = "Relationships that this document has with other document references that already exist."]
8688pub struct DocumentReferenceRelatesTo {
8689 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
8690 pub id: Option<String>,
8691 #[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 manageable, 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."]
8692 pub extension: Option<Vec<Box<Extension>>>,
8693 #[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 manageable, 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)."]
8694 pub modifierExtension: Option<Vec<Box<Extension>>>,
8695 #[primitive]
8696 #[doc = "The type of relationship that this document has with anther document."]
8697 pub code: Box<terminology::DocumentRelationshipType>,
8698 # [reference (targets = ["DocumentReference"])]
8699 #[doc = "The target document of this relationship."]
8700 pub target: Box<Reference>,
8701}
8702#[derive(
8703 Clone,
8704 Reflect,
8705 Debug,
8706 Default,
8707 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8708 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8709)]
8710#[fhir_serialize_type = "complex"]
8711#[doc = "The document and format referenced. There may be multiple content element repetitions, each with a different format."]
8712pub struct DocumentReferenceContent {
8713 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
8714 pub id: Option<String>,
8715 #[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 manageable, 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."]
8716 pub extension: Option<Vec<Box<Extension>>>,
8717 #[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 manageable, 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)."]
8718 pub modifierExtension: Option<Vec<Box<Extension>>>,
8719 #[doc = "The document or URL of the document along with critical metadata to prove content has integrity."]
8720 pub attachment: Box<Attachment>,
8721 #[doc = "An identifier of the document encoding, structure, and template that the document conforms to beyond the base format indicated in the mimeType."]
8722 pub format: Option<Box<Coding>>,
8723}
8724#[derive(
8725 Clone,
8726 Reflect,
8727 Debug,
8728 Default,
8729 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8730 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8731)]
8732#[fhir_serialize_type = "complex"]
8733#[doc = "The clinical context in which the document was prepared."]
8734pub struct DocumentReferenceContext {
8735 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
8736 pub id: Option<String>,
8737 #[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 manageable, 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."]
8738 pub extension: Option<Vec<Box<Extension>>>,
8739 #[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 manageable, 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)."]
8740 pub modifierExtension: Option<Vec<Box<Extension>>>,
8741 # [reference (targets = ["Encounter" , "EpisodeOfCare"])]
8742 #[doc = "Describes the clinical encounter or type of care that the document content is associated with."]
8743 pub encounter: Option<Vec<Box<Reference>>>,
8744 #[doc = "This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the type Code, such as a \"History and Physical Report\" in which the procedure being documented is necessarily a \"History and Physical\" act."]
8745 pub event: Option<Vec<Box<CodeableConcept>>>,
8746 #[doc = "The time period over which the service that is described by the document was provided."]
8747 pub period: Option<Box<Period>>,
8748 #[doc = "The kind of facility where the patient was seen."]
8749 pub facilityType: Option<Box<CodeableConcept>>,
8750 #[doc = "This property may convey specifics about the practice setting where the content was created, often reflecting the clinical specialty."]
8751 pub practiceSetting: Option<Box<CodeableConcept>>,
8752 # [reference (targets = ["Patient"])]
8753 #[doc = "The Patient Information as known when the document was published. May be a reference to a version specific, or contained."]
8754 pub sourcePatientInfo: Option<Box<Reference>>,
8755 # [reference (targets = ["Resource"])]
8756 #[doc = "Related identifiers or resources associated with the DocumentReference."]
8757 pub related: Option<Vec<Box<Reference>>>,
8758}
8759#[derive(
8760 Clone,
8761 Reflect,
8762 Debug,
8763 Default,
8764 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8765 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8766)]
8767#[fhir_serialize_type = "resource"]
8768#[doc = "A reference to a document of any kind for any purpose. Provides metadata about the document so that the document can be discovered and managed. The scope of a document is any seralized object with a mime-type, so includes formal patient centric documents (CDA), cliical notes, scanned paper, and non-patient specific documents like policy text."]
8769pub struct DocumentReference {
8770 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
8771 pub id: Option<String>,
8772 #[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."]
8773 pub meta: Option<Box<Meta>>,
8774 #[primitive]
8775 #[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."]
8776 pub implicitRules: Option<Box<FHIRUri>>,
8777 #[primitive]
8778 #[doc = "The base language in which the resource is written."]
8779 pub language: Option<Box<FHIRCode>>,
8780 #[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."]
8781 pub text: Option<Box<Narrative>>,
8782 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
8783 pub contained: Option<Vec<Box<Resource>>>,
8784 #[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 manageable, 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."]
8785 pub extension: Option<Vec<Box<Extension>>>,
8786 #[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 manageable, 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)."]
8787 pub modifierExtension: Option<Vec<Box<Extension>>>,
8788 #[doc = "Document identifier as assigned by the source of the document. This identifier is specific to this version of the document. This unique identifier may be used elsewhere to identify this version of the document."]
8789 pub masterIdentifier: Option<Box<Identifier>>,
8790 #[rename_field = "identifier"]
8791 #[doc = "Other identifiers associated with the document, including version independent identifiers."]
8792 pub identifier_: Option<Vec<Box<Identifier>>>,
8793 #[primitive]
8794 #[doc = "The status of this document reference."]
8795 pub status: Box<terminology::DocumentReferenceStatus>,
8796 #[primitive]
8797 #[doc = "The status of the underlying document."]
8798 pub docStatus: Option<Box<terminology::CompositionStatus>>,
8799 #[rename_field = "type"]
8800 #[doc = "Specifies the particular kind of document referenced (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the document referenced."]
8801 pub type_: Option<Box<CodeableConcept>>,
8802 #[doc = "A categorization for the type of document referenced - helps for indexing and searching. This may be implied by or derived from the code specified in the DocumentReference.type."]
8803 pub category: Option<Vec<Box<CodeableConcept>>>,
8804 # [reference (targets = ["Patient" , "Practitioner" , "Group" , "Device"])]
8805 #[doc = "Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure)."]
8806 pub subject: Option<Box<Reference>>,
8807 #[primitive]
8808 #[doc = "When the document reference was created."]
8809 pub date: Option<Box<FHIRInstant>>,
8810 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization" , "Device" , "Patient" , "RelatedPerson"])]
8811 #[doc = "Identifies who is responsible for adding the information to the document."]
8812 pub author: Option<Vec<Box<Reference>>>,
8813 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
8814 #[doc = "Which person or organization authenticates that this document is valid."]
8815 pub authenticator: Option<Box<Reference>>,
8816 # [reference (targets = ["Organization"])]
8817 #[doc = "Identifies the organization or group who is responsible for ongoing maintenance of and access to the document."]
8818 pub custodian: Option<Box<Reference>>,
8819 #[doc = "Relationships that this document has with other document references that already exist."]
8820 pub relatesTo: Option<Vec<DocumentReferenceRelatesTo>>,
8821 #[primitive]
8822 #[doc = "Human-readable description of the source document."]
8823 pub description: Option<Box<FHIRString>>,
8824 #[doc = "A set of Security-Tag codes specifying the level of privacy/security of the Document. Note that DocumentReference.meta.security contains the security labels of the \"reference\" to the document, while DocumentReference.securityLabel contains a snapshot of the security labels on the document the reference refers to."]
8825 pub securityLabel: Option<Vec<Box<CodeableConcept>>>,
8826 #[cardinality(min = 1usize)]
8827 #[doc = "The document and format referenced. There may be multiple content element repetitions, each with a different format."]
8828 pub content: Vec<DocumentReferenceContent>,
8829 #[doc = "The clinical context in which the document was prepared."]
8830 pub context: Option<DocumentReferenceContext>,
8831}
8832#[derive(
8833 Clone,
8834 Reflect,
8835 Debug,
8836 Default,
8837 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8838 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8839)]
8840#[fhir_serialize_type = "complex"]
8841#[doc = "A description of the size of the sample involved in the synthesis."]
8842pub struct EffectEvidenceSynthesisSampleSize {
8843 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
8844 pub id: Option<String>,
8845 #[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 manageable, 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."]
8846 pub extension: Option<Vec<Box<Extension>>>,
8847 #[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 manageable, 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)."]
8848 pub modifierExtension: Option<Vec<Box<Extension>>>,
8849 #[primitive]
8850 #[doc = "Human-readable summary of sample size."]
8851 pub description: Option<Box<FHIRString>>,
8852 #[primitive]
8853 #[doc = "Number of studies included in this evidence synthesis."]
8854 pub numberOfStudies: Option<Box<FHIRInteger>>,
8855 #[primitive]
8856 #[doc = "Number of participants included in this evidence synthesis."]
8857 pub numberOfParticipants: Option<Box<FHIRInteger>>,
8858}
8859#[derive(
8860 Clone,
8861 Reflect,
8862 Debug,
8863 Default,
8864 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8865 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8866)]
8867#[fhir_serialize_type = "complex"]
8868#[doc = "A description of the results for each exposure considered in the effect estimate."]
8869pub struct EffectEvidenceSynthesisResultsByExposure {
8870 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
8871 pub id: Option<String>,
8872 #[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 manageable, 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."]
8873 pub extension: Option<Vec<Box<Extension>>>,
8874 #[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 manageable, 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)."]
8875 pub modifierExtension: Option<Vec<Box<Extension>>>,
8876 #[primitive]
8877 #[doc = "Human-readable summary of results by exposure state."]
8878 pub description: Option<Box<FHIRString>>,
8879 #[primitive]
8880 #[doc = "Whether these results are for the exposure state or alternative exposure state."]
8881 pub exposureState: Option<Box<terminology::ExposureState>>,
8882 #[doc = "Used to define variant exposure states such as low-risk state."]
8883 pub variantState: Option<Box<CodeableConcept>>,
8884 # [reference (targets = ["RiskEvidenceSynthesis"])]
8885 #[doc = "Reference to a RiskEvidenceSynthesis resource."]
8886 pub riskEvidenceSynthesis: Box<Reference>,
8887}
8888#[derive(
8889 Clone,
8890 Reflect,
8891 Debug,
8892 Default,
8893 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8894 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8895)]
8896#[fhir_serialize_type = "complex"]
8897#[doc = "A description of the precision of the estimate for the effect."]
8898pub struct EffectEvidenceSynthesisEffectEstimatePrecisionEstimate {
8899 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
8900 pub id: Option<String>,
8901 #[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 manageable, 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."]
8902 pub extension: Option<Vec<Box<Extension>>>,
8903 #[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 manageable, 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)."]
8904 pub modifierExtension: Option<Vec<Box<Extension>>>,
8905 #[rename_field = "type"]
8906 #[doc = "Examples include confidence interval and interquartile range."]
8907 pub type_: Option<Box<CodeableConcept>>,
8908 #[primitive]
8909 #[doc = "Use 95 for a 95% confidence interval."]
8910 pub level: Option<Box<FHIRDecimal>>,
8911 #[primitive]
8912 #[doc = "Lower bound of confidence interval."]
8913 pub from: Option<Box<FHIRDecimal>>,
8914 #[primitive]
8915 #[doc = "Upper bound of confidence interval."]
8916 pub to: Option<Box<FHIRDecimal>>,
8917}
8918#[derive(
8919 Clone,
8920 Reflect,
8921 Debug,
8922 Default,
8923 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8924 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8925)]
8926#[fhir_serialize_type = "complex"]
8927#[doc = "The estimated effect of the exposure variant."]
8928pub struct EffectEvidenceSynthesisEffectEstimate {
8929 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
8930 pub id: Option<String>,
8931 #[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 manageable, 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."]
8932 pub extension: Option<Vec<Box<Extension>>>,
8933 #[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 manageable, 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)."]
8934 pub modifierExtension: Option<Vec<Box<Extension>>>,
8935 #[primitive]
8936 #[doc = "Human-readable summary of effect estimate."]
8937 pub description: Option<Box<FHIRString>>,
8938 #[rename_field = "type"]
8939 #[doc = "Examples include relative risk and mean difference."]
8940 pub type_: Option<Box<CodeableConcept>>,
8941 #[doc = "Used to define variant exposure states such as low-risk state."]
8942 pub variantState: Option<Box<CodeableConcept>>,
8943 #[primitive]
8944 #[doc = "The point estimate of the effect estimate."]
8945 pub value: Option<Box<FHIRDecimal>>,
8946 #[doc = "Specifies the UCUM unit for the outcome."]
8947 pub unitOfMeasure: Option<Box<CodeableConcept>>,
8948 #[doc = "A description of the precision of the estimate for the effect."]
8949 pub precisionEstimate: Option<Vec<EffectEvidenceSynthesisEffectEstimatePrecisionEstimate>>,
8950}
8951#[derive(
8952 Clone,
8953 Reflect,
8954 Debug,
8955 Default,
8956 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8957 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8958)]
8959#[fhir_serialize_type = "complex"]
8960#[doc = "A description of a component of the overall certainty."]
8961pub struct EffectEvidenceSynthesisCertaintyCertaintySubcomponent {
8962 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
8963 pub id: Option<String>,
8964 #[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 manageable, 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."]
8965 pub extension: Option<Vec<Box<Extension>>>,
8966 #[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 manageable, 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)."]
8967 pub modifierExtension: Option<Vec<Box<Extension>>>,
8968 #[rename_field = "type"]
8969 #[doc = "Type of subcomponent of certainty rating."]
8970 pub type_: Option<Box<CodeableConcept>>,
8971 #[doc = "A rating of a subcomponent of rating certainty."]
8972 pub rating: Option<Vec<Box<CodeableConcept>>>,
8973 #[doc = "A human-readable string to clarify or explain concepts about the resource."]
8974 pub note: Option<Vec<Box<Annotation>>>,
8975}
8976#[derive(
8977 Clone,
8978 Reflect,
8979 Debug,
8980 Default,
8981 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
8982 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
8983)]
8984#[fhir_serialize_type = "complex"]
8985#[doc = "A description of the certainty of the effect estimate."]
8986pub struct EffectEvidenceSynthesisCertainty {
8987 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
8988 pub id: Option<String>,
8989 #[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 manageable, 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."]
8990 pub extension: Option<Vec<Box<Extension>>>,
8991 #[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 manageable, 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)."]
8992 pub modifierExtension: Option<Vec<Box<Extension>>>,
8993 #[doc = "A rating of the certainty of the effect estimate."]
8994 pub rating: Option<Vec<Box<CodeableConcept>>>,
8995 #[doc = "A human-readable string to clarify or explain concepts about the resource."]
8996 pub note: Option<Vec<Box<Annotation>>>,
8997 #[doc = "A description of a component of the overall certainty."]
8998 pub certaintySubcomponent: Option<Vec<EffectEvidenceSynthesisCertaintyCertaintySubcomponent>>,
8999}
9000#[derive(
9001 Clone,
9002 Reflect,
9003 Debug,
9004 Default,
9005 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
9006 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
9007)]
9008#[fhir_serialize_type = "resource"]
9009#[doc = "The EffectEvidenceSynthesis resource describes the difference in an outcome between exposures states in a population where the effect estimate is derived from a combination of research studies."]
9010pub struct EffectEvidenceSynthesis {
9011 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
9012 pub id: Option<String>,
9013 #[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."]
9014 pub meta: Option<Box<Meta>>,
9015 #[primitive]
9016 #[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."]
9017 pub implicitRules: Option<Box<FHIRUri>>,
9018 #[primitive]
9019 #[doc = "The base language in which the resource is written."]
9020 pub language: Option<Box<FHIRCode>>,
9021 #[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."]
9022 pub text: Option<Box<Narrative>>,
9023 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
9024 pub contained: Option<Vec<Box<Resource>>>,
9025 #[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 manageable, 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."]
9026 pub extension: Option<Vec<Box<Extension>>>,
9027 #[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 manageable, 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)."]
9028 pub modifierExtension: Option<Vec<Box<Extension>>>,
9029 #[primitive]
9030 #[doc = "An absolute URI that is used to identify this effect evidence synthesis 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 at which an authoritative instance of this effect evidence synthesis is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the effect evidence synthesis is stored on different servers."]
9031 pub url: Option<Box<FHIRUri>>,
9032 #[rename_field = "identifier"]
9033 #[doc = "A formal identifier that is used to identify this effect evidence synthesis when it is represented in other formats, or referenced in a specification, model, design or an instance."]
9034 pub identifier_: Option<Vec<Box<Identifier>>>,
9035 #[primitive]
9036 #[doc = "The identifier that is used to identify this version of the effect evidence synthesis when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the effect evidence synthesis 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."]
9037 pub version: Option<Box<FHIRString>>,
9038 #[primitive]
9039 #[doc = "A natural language name identifying the effect evidence synthesis. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
9040 pub name: Option<Box<FHIRString>>,
9041 #[primitive]
9042 #[doc = "A short, descriptive, user-friendly title for the effect evidence synthesis."]
9043 pub title: Option<Box<FHIRString>>,
9044 #[primitive]
9045 #[doc = "The status of this effect evidence synthesis. Enables tracking the life-cycle of the content."]
9046 pub status: Box<terminology::PublicationStatus>,
9047 #[primitive]
9048 #[doc = "The date (and optionally time) when the effect evidence synthesis was published. 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 effect evidence synthesis changes."]
9049 pub date: Option<Box<FHIRDateTime>>,
9050 #[primitive]
9051 #[doc = "The name of the organization or individual that published the effect evidence synthesis."]
9052 pub publisher: Option<Box<FHIRString>>,
9053 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
9054 pub contact: Option<Vec<Box<ContactDetail>>>,
9055 #[primitive]
9056 #[doc = "A free text natural language description of the effect evidence synthesis from a consumer's perspective."]
9057 pub description: Option<Box<FHIRMarkdown>>,
9058 #[doc = "A human-readable string to clarify or explain concepts about the resource."]
9059 pub note: Option<Vec<Box<Annotation>>>,
9060 #[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 effect evidence synthesis instances."]
9061 pub useContext: Option<Vec<Box<UsageContext>>>,
9062 #[doc = "A legal or geographic region in which the effect evidence synthesis is intended to be used."]
9063 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
9064 #[primitive]
9065 #[doc = "A copyright statement relating to the effect evidence synthesis and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the effect evidence synthesis."]
9066 pub copyright: Option<Box<FHIRMarkdown>>,
9067 #[primitive]
9068 #[doc = "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage."]
9069 pub approvalDate: Option<Box<FHIRDate>>,
9070 #[primitive]
9071 #[doc = "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date."]
9072 pub lastReviewDate: Option<Box<FHIRDate>>,
9073 #[doc = "The period during which the effect evidence synthesis content was or is planned to be in active use."]
9074 pub effectivePeriod: Option<Box<Period>>,
9075 #[doc = "Descriptive topics related to the content of the EffectEvidenceSynthesis. Topics provide a high-level categorization grouping types of EffectEvidenceSynthesiss that can be useful for filtering and searching."]
9076 pub topic: Option<Vec<Box<CodeableConcept>>>,
9077 #[doc = "An individiual or organization primarily involved in the creation and maintenance of the content."]
9078 pub author: Option<Vec<Box<ContactDetail>>>,
9079 #[doc = "An individual or organization primarily responsible for internal coherence of the content."]
9080 pub editor: Option<Vec<Box<ContactDetail>>>,
9081 #[doc = "An individual or organization primarily responsible for review of some aspect of the content."]
9082 pub reviewer: Option<Vec<Box<ContactDetail>>>,
9083 #[doc = "An individual or organization responsible for officially endorsing the content for use in some setting."]
9084 pub endorser: Option<Vec<Box<ContactDetail>>>,
9085 #[doc = "Related artifacts such as additional documentation, justification, or bibliographic references."]
9086 pub relatedArtifact: Option<Vec<Box<RelatedArtifact>>>,
9087 #[doc = "Type of synthesis eg meta-analysis."]
9088 pub synthesisType: Option<Box<CodeableConcept>>,
9089 #[doc = "Type of study eg randomized trial."]
9090 pub studyType: Option<Box<CodeableConcept>>,
9091 # [reference (targets = ["EvidenceVariable"])]
9092 #[doc = "A reference to a EvidenceVariable resource that defines the population for the research."]
9093 pub population: Box<Reference>,
9094 # [reference (targets = ["EvidenceVariable"])]
9095 #[doc = "A reference to a EvidenceVariable resource that defines the exposure for the research."]
9096 pub exposure: Box<Reference>,
9097 # [reference (targets = ["EvidenceVariable"])]
9098 #[doc = "A reference to a EvidenceVariable resource that defines the comparison exposure for the research."]
9099 pub exposureAlternative: Box<Reference>,
9100 # [reference (targets = ["EvidenceVariable"])]
9101 #[doc = "A reference to a EvidenceVariable resomece that defines the outcome for the research."]
9102 pub outcome: Box<Reference>,
9103 #[doc = "A description of the size of the sample involved in the synthesis."]
9104 pub sampleSize: Option<EffectEvidenceSynthesisSampleSize>,
9105 #[doc = "A description of the results for each exposure considered in the effect estimate."]
9106 pub resultsByExposure: Option<Vec<EffectEvidenceSynthesisResultsByExposure>>,
9107 #[doc = "The estimated effect of the exposure variant."]
9108 pub effectEstimate: Option<Vec<EffectEvidenceSynthesisEffectEstimate>>,
9109 #[doc = "A description of the certainty of the effect estimate."]
9110 pub certainty: Option<Vec<EffectEvidenceSynthesisCertainty>>,
9111}
9112#[derive(
9113 Clone,
9114 Reflect,
9115 Debug,
9116 Default,
9117 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
9118 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
9119)]
9120#[fhir_serialize_type = "complex"]
9121#[doc = "The status history permits the encounter resource to contain the status history without needing to read through the historical versions of the resource, or even have the server store them."]
9122pub struct EncounterStatusHistory {
9123 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
9124 pub id: Option<String>,
9125 #[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 manageable, 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."]
9126 pub extension: Option<Vec<Box<Extension>>>,
9127 #[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 manageable, 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)."]
9128 pub modifierExtension: Option<Vec<Box<Extension>>>,
9129 #[primitive]
9130 #[doc = "planned | arrived | triaged | in-progress | onleave | finished | cancelled +."]
9131 pub status: Box<terminology::EncounterStatus>,
9132 #[doc = "The time that the episode was in the specified status."]
9133 pub period: Box<Period>,
9134}
9135#[derive(
9136 Clone,
9137 Reflect,
9138 Debug,
9139 Default,
9140 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
9141 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
9142)]
9143#[fhir_serialize_type = "complex"]
9144#[doc = "The class history permits the tracking of the encounters transitions without needing to go through the resource history. This would be used for a case where an admission starts of as an emergency encounter, then transitions into an inpatient scenario. Doing this and not restarting a new encounter ensures that any lab/diagnostic results can more easily follow the patient and not require re-processing and not get lost or cancelled during a kind of discharge from emergency to inpatient."]
9145pub struct EncounterClassHistory {
9146 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
9147 pub id: Option<String>,
9148 #[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 manageable, 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."]
9149 pub extension: Option<Vec<Box<Extension>>>,
9150 #[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 manageable, 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)."]
9151 pub modifierExtension: Option<Vec<Box<Extension>>>,
9152 #[doc = "inpatient | outpatient | ambulatory | emergency +."]
9153 pub class: Box<Coding>,
9154 #[doc = "The time that the episode was in the specified class."]
9155 pub period: Box<Period>,
9156}
9157#[derive(
9158 Clone,
9159 Reflect,
9160 Debug,
9161 Default,
9162 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
9163 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
9164)]
9165#[fhir_serialize_type = "complex"]
9166#[doc = "The list of people responsible for providing the service."]
9167pub struct EncounterParticipant {
9168 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
9169 pub id: Option<String>,
9170 #[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 manageable, 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."]
9171 pub extension: Option<Vec<Box<Extension>>>,
9172 #[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 manageable, 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)."]
9173 pub modifierExtension: Option<Vec<Box<Extension>>>,
9174 #[rename_field = "type"]
9175 #[doc = "Role of participant in encounter."]
9176 pub type_: Option<Vec<Box<CodeableConcept>>>,
9177 #[doc = "The period of time that the specified participant participated in the encounter. These can overlap or be sub-sets of the overall encounter's period."]
9178 pub period: Option<Box<Period>>,
9179 # [reference (targets = ["Practitioner" , "PractitionerRole" , "RelatedPerson"])]
9180 #[doc = "Persons involved in the encounter other than the patient."]
9181 pub individual: Option<Box<Reference>>,
9182}
9183#[derive(
9184 Clone,
9185 Reflect,
9186 Debug,
9187 Default,
9188 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
9189 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
9190)]
9191#[fhir_serialize_type = "complex"]
9192#[doc = "The list of diagnosis relevant to this encounter."]
9193pub struct EncounterDiagnosis {
9194 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
9195 pub id: Option<String>,
9196 #[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 manageable, 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."]
9197 pub extension: Option<Vec<Box<Extension>>>,
9198 #[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 manageable, 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)."]
9199 pub modifierExtension: Option<Vec<Box<Extension>>>,
9200 # [reference (targets = ["Condition" , "Procedure"])]
9201 #[doc = "Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure."]
9202 pub condition: Box<Reference>,
9203 #[rename_field = "use"]
9204 #[doc = "Role that this diagnosis has within the encounter (e.g. admission, billing, discharge …)."]
9205 pub use_: Option<Box<CodeableConcept>>,
9206 #[primitive]
9207 #[doc = "Ranking of the diagnosis (for each role type)."]
9208 pub rank: Option<Box<FHIRPositiveInt>>,
9209}
9210#[derive(
9211 Clone,
9212 Reflect,
9213 Debug,
9214 Default,
9215 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
9216 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
9217)]
9218#[fhir_serialize_type = "complex"]
9219#[doc = "Details about the admission to a healthcare service."]
9220pub struct EncounterHospitalization {
9221 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
9222 pub id: Option<String>,
9223 #[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 manageable, 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."]
9224 pub extension: Option<Vec<Box<Extension>>>,
9225 #[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 manageable, 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)."]
9226 pub modifierExtension: Option<Vec<Box<Extension>>>,
9227 #[doc = "Pre-admission identifier."]
9228 pub preAdmissionIdentifier: Option<Box<Identifier>>,
9229 # [reference (targets = ["Location" , "Organization"])]
9230 #[doc = "The location/organization from which the patient came before admission."]
9231 pub origin: Option<Box<Reference>>,
9232 #[doc = "From where patient was admitted (physician referral, transfer)."]
9233 pub admitSource: Option<Box<CodeableConcept>>,
9234 #[doc = "Whether this hospitalization is a readmission and why if known."]
9235 pub reAdmission: Option<Box<CodeableConcept>>,
9236 #[doc = "Diet preferences reported by the patient."]
9237 pub dietPreference: Option<Vec<Box<CodeableConcept>>>,
9238 #[doc = "Special courtesies (VIP, board member)."]
9239 pub specialCourtesy: Option<Vec<Box<CodeableConcept>>>,
9240 #[doc = "Any special requests that have been made for this hospitalization encounter, such as the provision of specific equipment or other things."]
9241 pub specialArrangement: Option<Vec<Box<CodeableConcept>>>,
9242 # [reference (targets = ["Location" , "Organization"])]
9243 #[doc = "Location/organization to which the patient is discharged."]
9244 pub destination: Option<Box<Reference>>,
9245 #[doc = "Category or kind of location after discharge."]
9246 pub dischargeDisposition: Option<Box<CodeableConcept>>,
9247}
9248#[derive(
9249 Clone,
9250 Reflect,
9251 Debug,
9252 Default,
9253 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
9254 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
9255)]
9256#[fhir_serialize_type = "complex"]
9257#[doc = "List of locations where the patient has been during this encounter."]
9258pub struct EncounterLocation {
9259 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
9260 pub id: Option<String>,
9261 #[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 manageable, 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."]
9262 pub extension: Option<Vec<Box<Extension>>>,
9263 #[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 manageable, 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)."]
9264 pub modifierExtension: Option<Vec<Box<Extension>>>,
9265 # [reference (targets = ["Location"])]
9266 #[doc = "The location where the encounter takes place."]
9267 pub location: Box<Reference>,
9268 #[primitive]
9269 #[doc = "The status of the participants' presence at the specified location during the period specified. If the participant is no longer at the location, then the period will have an end date/time."]
9270 pub status: Option<Box<terminology::EncounterLocationStatus>>,
9271 #[doc = "This will be used to specify the required levels (bed/ward/room/etc.) desired to be recorded to simplify either messaging or query."]
9272 pub physicalType: Option<Box<CodeableConcept>>,
9273 #[doc = "Time period during which the patient was present at the location."]
9274 pub period: Option<Box<Period>>,
9275}
9276#[derive(
9277 Clone,
9278 Reflect,
9279 Debug,
9280 Default,
9281 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
9282 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
9283)]
9284#[fhir_serialize_type = "resource"]
9285#[doc = "An interaction between a patient and healthcare provider(s) for the purpose of providing healthcare service(s) or assessing the health status of a patient."]
9286pub struct Encounter {
9287 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
9288 pub id: Option<String>,
9289 #[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."]
9290 pub meta: Option<Box<Meta>>,
9291 #[primitive]
9292 #[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."]
9293 pub implicitRules: Option<Box<FHIRUri>>,
9294 #[primitive]
9295 #[doc = "The base language in which the resource is written."]
9296 pub language: Option<Box<FHIRCode>>,
9297 #[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."]
9298 pub text: Option<Box<Narrative>>,
9299 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
9300 pub contained: Option<Vec<Box<Resource>>>,
9301 #[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 manageable, 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."]
9302 pub extension: Option<Vec<Box<Extension>>>,
9303 #[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 manageable, 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)."]
9304 pub modifierExtension: Option<Vec<Box<Extension>>>,
9305 #[rename_field = "identifier"]
9306 #[doc = "Identifier(s) by which this encounter is known."]
9307 pub identifier_: Option<Vec<Box<Identifier>>>,
9308 #[primitive]
9309 #[doc = "planned | arrived | triaged | in-progress | onleave | finished | cancelled +."]
9310 pub status: Box<terminology::EncounterStatus>,
9311 #[doc = "The status history permits the encounter resource to contain the status history without needing to read through the historical versions of the resource, or even have the server store them."]
9312 pub statusHistory: Option<Vec<EncounterStatusHistory>>,
9313 #[doc = "Concepts representing classification of patient encounter such as ambulatory (outpatient), inpatient, emergency, home health or others due to local variations."]
9314 pub class: Box<Coding>,
9315 #[doc = "The class history permits the tracking of the encounters transitions without needing to go through the resource history. This would be used for a case where an admission starts of as an emergency encounter, then transitions into an inpatient scenario. Doing this and not restarting a new encounter ensures that any lab/diagnostic results can more easily follow the patient and not require re-processing and not get lost or cancelled during a kind of discharge from emergency to inpatient."]
9316 pub classHistory: Option<Vec<EncounterClassHistory>>,
9317 #[rename_field = "type"]
9318 #[doc = "Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation)."]
9319 pub type_: Option<Vec<Box<CodeableConcept>>>,
9320 #[doc = "Broad categorization of the service that is to be provided (e.g. cardiology)."]
9321 pub serviceType: Option<Box<CodeableConcept>>,
9322 #[doc = "Indicates the urgency of the encounter."]
9323 pub priority: Option<Box<CodeableConcept>>,
9324 # [reference (targets = ["Patient" , "Group"])]
9325 #[doc = "The patient or group present at the encounter."]
9326 pub subject: Option<Box<Reference>>,
9327 # [reference (targets = ["EpisodeOfCare"])]
9328 #[doc = "Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as government reporting, issue tracking, association via a common problem. The association is recorded on the encounter as these are typically created after the episode of care and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years)."]
9329 pub episodeOfCare: Option<Vec<Box<Reference>>>,
9330 # [reference (targets = ["ServiceRequest"])]
9331 #[doc = "The request this encounter satisfies (e.g. incoming referral or procedure request)."]
9332 pub basedOn: Option<Vec<Box<Reference>>>,
9333 #[doc = "The list of people responsible for providing the service."]
9334 pub participant: Option<Vec<EncounterParticipant>>,
9335 # [reference (targets = ["Appointment"])]
9336 #[doc = "The appointment that scheduled this encounter."]
9337 pub appointment: Option<Vec<Box<Reference>>>,
9338 #[doc = "The start and end time of the encounter."]
9339 pub period: Option<Box<Period>>,
9340 #[doc = "Quantity of time the encounter lasted. This excludes the time during leaves of absence."]
9341 pub length: Option<Box<Duration>>,
9342 #[doc = "Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis."]
9343 pub reasonCode: Option<Vec<Box<CodeableConcept>>>,
9344 # [reference (targets = ["Condition" , "Procedure" , "Observation" , "ImmunizationRecommendation"])]
9345 #[doc = "Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis."]
9346 pub reasonReference: Option<Vec<Box<Reference>>>,
9347 #[doc = "The list of diagnosis relevant to this encounter."]
9348 pub diagnosis: Option<Vec<EncounterDiagnosis>>,
9349 # [reference (targets = ["Account"])]
9350 #[doc = "The set of accounts that may be used for billing for this Encounter."]
9351 pub account: Option<Vec<Box<Reference>>>,
9352 #[doc = "Details about the admission to a healthcare service."]
9353 pub hospitalization: Option<EncounterHospitalization>,
9354 #[doc = "List of locations where the patient has been during this encounter."]
9355 pub location: Option<Vec<EncounterLocation>>,
9356 # [reference (targets = ["Organization"])]
9357 #[doc = "The organization that is primarily responsible for this Encounter's services. This MAY be the same as the organization on the Patient record, however it could be different, such as if the actor performing the services was from an external organization (which may be billed seperately) for an external consultation. Refer to the example bundle showing an abbreviated set of Encounters for a colonoscopy."]
9358 pub serviceProvider: Option<Box<Reference>>,
9359 # [reference (targets = ["Encounter"])]
9360 #[doc = "Another Encounter of which this encounter is a part of (administratively or in time)."]
9361 pub partOf: Option<Box<Reference>>,
9362}
9363#[derive(
9364 Clone,
9365 Reflect,
9366 Debug,
9367 Default,
9368 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
9369 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
9370)]
9371#[fhir_serialize_type = "resource"]
9372#[doc = "The technical details of an endpoint that can be used for electronic services, such as for web services providing XDS.b or a REST endpoint for another FHIR server. This may include any security context information."]
9373pub struct Endpoint {
9374 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
9375 pub id: Option<String>,
9376 #[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."]
9377 pub meta: Option<Box<Meta>>,
9378 #[primitive]
9379 #[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."]
9380 pub implicitRules: Option<Box<FHIRUri>>,
9381 #[primitive]
9382 #[doc = "The base language in which the resource is written."]
9383 pub language: Option<Box<FHIRCode>>,
9384 #[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."]
9385 pub text: Option<Box<Narrative>>,
9386 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
9387 pub contained: Option<Vec<Box<Resource>>>,
9388 #[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 manageable, 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."]
9389 pub extension: Option<Vec<Box<Extension>>>,
9390 #[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 manageable, 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)."]
9391 pub modifierExtension: Option<Vec<Box<Extension>>>,
9392 #[rename_field = "identifier"]
9393 #[doc = "Identifier for the organization that is used to identify the endpoint across multiple disparate systems."]
9394 pub identifier_: Option<Vec<Box<Identifier>>>,
9395 #[primitive]
9396 #[doc = "active | suspended | error | off | test."]
9397 pub status: Box<terminology::EndpointStatus>,
9398 #[doc = "A coded value that represents the technical details of the usage of this endpoint, such as what WSDLs should be used in what way. (e.g. XDS.b/DICOM/cds-hook)."]
9399 pub connectionType: Box<Coding>,
9400 #[primitive]
9401 #[doc = "A friendly name that this endpoint can be referred to with."]
9402 pub name: Option<Box<FHIRString>>,
9403 # [reference (targets = ["Organization"])]
9404 #[doc = "The organization that manages this endpoint (even if technically another organization is hosting this in the cloud, it is the organization associated with the data)."]
9405 pub managingOrganization: Option<Box<Reference>>,
9406 #[doc = "Contact details for a human to contact about the subscription. The primary use of this for system administrator troubleshooting."]
9407 pub contact: Option<Vec<Box<ContactPoint>>>,
9408 #[doc = "The interval during which the endpoint is expected to be operational."]
9409 pub period: Option<Box<Period>>,
9410 #[cardinality(min = 1usize)]
9411 #[doc = "The payload type describes the acceptable content that can be communicated on the endpoint."]
9412 pub payloadType: Vec<Box<CodeableConcept>>,
9413 #[primitive]
9414 #[doc = "The mime type to send the payload in - e.g. application/fhir+xml, application/fhir+json. If the mime type is not specified, then the sender could send any content (including no content depending on the connectionType)."]
9415 pub payloadMimeType: Option<Vec<Box<FHIRCode>>>,
9416 #[primitive]
9417 #[doc = "The uri that describes the actual end-point to connect to."]
9418 pub address: Box<FHIRUrl>,
9419 #[primitive]
9420 #[doc = "Additional headers / information to send as part of the notification."]
9421 pub header: Option<Vec<Box<FHIRString>>>,
9422}
9423#[derive(
9424 Clone,
9425 Reflect,
9426 Debug,
9427 Default,
9428 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
9429 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
9430)]
9431#[fhir_serialize_type = "resource"]
9432#[doc = "This resource provides the insurance enrollment details to the insurer regarding a specified coverage."]
9433pub struct EnrollmentRequest {
9434 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
9435 pub id: Option<String>,
9436 #[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."]
9437 pub meta: Option<Box<Meta>>,
9438 #[primitive]
9439 #[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."]
9440 pub implicitRules: Option<Box<FHIRUri>>,
9441 #[primitive]
9442 #[doc = "The base language in which the resource is written."]
9443 pub language: Option<Box<FHIRCode>>,
9444 #[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."]
9445 pub text: Option<Box<Narrative>>,
9446 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
9447 pub contained: Option<Vec<Box<Resource>>>,
9448 #[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 manageable, 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."]
9449 pub extension: Option<Vec<Box<Extension>>>,
9450 #[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 manageable, 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)."]
9451 pub modifierExtension: Option<Vec<Box<Extension>>>,
9452 #[rename_field = "identifier"]
9453 #[doc = "The Response business identifier."]
9454 pub identifier_: Option<Vec<Box<Identifier>>>,
9455 #[primitive]
9456 #[doc = "The status of the resource instance."]
9457 pub status: Option<Box<terminology::FmStatus>>,
9458 #[primitive]
9459 #[doc = "The date when this resource was created."]
9460 pub created: Option<Box<FHIRDateTime>>,
9461 # [reference (targets = ["Organization"])]
9462 #[doc = "The Insurer who is target of the request."]
9463 pub insurer: Option<Box<Reference>>,
9464 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
9465 #[doc = "The practitioner who is responsible for the services rendered to the patient."]
9466 pub provider: Option<Box<Reference>>,
9467 # [reference (targets = ["Patient"])]
9468 #[doc = "Patient Resource."]
9469 pub candidate: Option<Box<Reference>>,
9470 # [reference (targets = ["Coverage"])]
9471 #[doc = "Reference to the program or plan identification, underwriter or payor."]
9472 pub coverage: Option<Box<Reference>>,
9473}
9474#[derive(
9475 Clone,
9476 Reflect,
9477 Debug,
9478 Default,
9479 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
9480 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
9481)]
9482#[fhir_serialize_type = "resource"]
9483#[doc = "This resource provides enrollment and plan details from the processing of an EnrollmentRequest resource."]
9484pub struct EnrollmentResponse {
9485 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
9486 pub id: Option<String>,
9487 #[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."]
9488 pub meta: Option<Box<Meta>>,
9489 #[primitive]
9490 #[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."]
9491 pub implicitRules: Option<Box<FHIRUri>>,
9492 #[primitive]
9493 #[doc = "The base language in which the resource is written."]
9494 pub language: Option<Box<FHIRCode>>,
9495 #[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."]
9496 pub text: Option<Box<Narrative>>,
9497 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
9498 pub contained: Option<Vec<Box<Resource>>>,
9499 #[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 manageable, 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."]
9500 pub extension: Option<Vec<Box<Extension>>>,
9501 #[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 manageable, 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)."]
9502 pub modifierExtension: Option<Vec<Box<Extension>>>,
9503 #[rename_field = "identifier"]
9504 #[doc = "The Response business identifier."]
9505 pub identifier_: Option<Vec<Box<Identifier>>>,
9506 #[primitive]
9507 #[doc = "The status of the resource instance."]
9508 pub status: Option<Box<terminology::FmStatus>>,
9509 # [reference (targets = ["EnrollmentRequest"])]
9510 #[doc = "Original request resource reference."]
9511 pub request: Option<Box<Reference>>,
9512 #[primitive]
9513 #[doc = "Processing status: error, complete."]
9514 pub outcome: Option<Box<terminology::RemittanceOutcome>>,
9515 #[primitive]
9516 #[doc = "A description of the status of the adjudication."]
9517 pub disposition: Option<Box<FHIRString>>,
9518 #[primitive]
9519 #[doc = "The date when the enclosed suite of services were performed or completed."]
9520 pub created: Option<Box<FHIRDateTime>>,
9521 # [reference (targets = ["Organization"])]
9522 #[doc = "The Insurer who produced this adjudicated response."]
9523 pub organization: Option<Box<Reference>>,
9524 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
9525 #[doc = "The practitioner who is responsible for the services rendered to the patient."]
9526 pub requestProvider: Option<Box<Reference>>,
9527}
9528#[derive(
9529 Clone,
9530 Reflect,
9531 Debug,
9532 Default,
9533 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
9534 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
9535)]
9536#[fhir_serialize_type = "complex"]
9537#[doc = "The history of statuses that the EpisodeOfCare has been through (without requiring processing the history of the resource)."]
9538pub struct EpisodeOfCareStatusHistory {
9539 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
9540 pub id: Option<String>,
9541 #[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 manageable, 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."]
9542 pub extension: Option<Vec<Box<Extension>>>,
9543 #[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 manageable, 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)."]
9544 pub modifierExtension: Option<Vec<Box<Extension>>>,
9545 #[primitive]
9546 #[doc = "planned | waitlist | active | onhold | finished | cancelled."]
9547 pub status: Box<terminology::EpisodeOfCareStatus>,
9548 #[doc = "The period during this EpisodeOfCare that the specific status applied."]
9549 pub period: Box<Period>,
9550}
9551#[derive(
9552 Clone,
9553 Reflect,
9554 Debug,
9555 Default,
9556 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
9557 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
9558)]
9559#[fhir_serialize_type = "complex"]
9560#[doc = "The list of diagnosis relevant to this episode of care."]
9561pub struct EpisodeOfCareDiagnosis {
9562 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
9563 pub id: Option<String>,
9564 #[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 manageable, 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."]
9565 pub extension: Option<Vec<Box<Extension>>>,
9566 #[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 manageable, 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)."]
9567 pub modifierExtension: Option<Vec<Box<Extension>>>,
9568 # [reference (targets = ["Condition"])]
9569 #[doc = "A list of conditions/problems/diagnoses that this episode of care is intended to be providing care for."]
9570 pub condition: Box<Reference>,
9571 #[doc = "Role that this diagnosis has within the episode of care (e.g. admission, billing, discharge …)."]
9572 pub role: Option<Box<CodeableConcept>>,
9573 #[primitive]
9574 #[doc = "Ranking of the diagnosis (for each role type)."]
9575 pub rank: Option<Box<FHIRPositiveInt>>,
9576}
9577#[derive(
9578 Clone,
9579 Reflect,
9580 Debug,
9581 Default,
9582 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
9583 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
9584)]
9585#[fhir_serialize_type = "resource"]
9586#[doc = "An association between a patient and an organization / healthcare provider(s) during which time encounters may occur. The managing organization assumes a level of responsibility for the patient during this time."]
9587pub struct EpisodeOfCare {
9588 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
9589 pub id: Option<String>,
9590 #[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."]
9591 pub meta: Option<Box<Meta>>,
9592 #[primitive]
9593 #[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."]
9594 pub implicitRules: Option<Box<FHIRUri>>,
9595 #[primitive]
9596 #[doc = "The base language in which the resource is written."]
9597 pub language: Option<Box<FHIRCode>>,
9598 #[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."]
9599 pub text: Option<Box<Narrative>>,
9600 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
9601 pub contained: Option<Vec<Box<Resource>>>,
9602 #[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 manageable, 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."]
9603 pub extension: Option<Vec<Box<Extension>>>,
9604 #[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 manageable, 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)."]
9605 pub modifierExtension: Option<Vec<Box<Extension>>>,
9606 #[rename_field = "identifier"]
9607 #[doc = "The EpisodeOfCare may be known by different identifiers for different contexts of use, such as when an external agency is tracking the Episode for funding purposes."]
9608 pub identifier_: Option<Vec<Box<Identifier>>>,
9609 #[primitive]
9610 #[doc = "planned | waitlist | active | onhold | finished | cancelled."]
9611 pub status: Box<terminology::EpisodeOfCareStatus>,
9612 #[doc = "The history of statuses that the EpisodeOfCare has been through (without requiring processing the history of the resource)."]
9613 pub statusHistory: Option<Vec<EpisodeOfCareStatusHistory>>,
9614 #[rename_field = "type"]
9615 #[doc = "A classification of the type of episode of care; e.g. specialist referral, disease management, type of funded care."]
9616 pub type_: Option<Vec<Box<CodeableConcept>>>,
9617 #[doc = "The list of diagnosis relevant to this episode of care."]
9618 pub diagnosis: Option<Vec<EpisodeOfCareDiagnosis>>,
9619 # [reference (targets = ["Patient"])]
9620 #[doc = "The patient who is the focus of this episode of care."]
9621 pub patient: Box<Reference>,
9622 # [reference (targets = ["Organization"])]
9623 #[doc = "The organization that has assumed the specific responsibilities for the specified duration."]
9624 pub managingOrganization: Option<Box<Reference>>,
9625 #[doc = "The interval during which the managing organization assumes the defined responsibility."]
9626 pub period: Option<Box<Period>>,
9627 # [reference (targets = ["ServiceRequest"])]
9628 #[doc = "Referral Request(s) that are fulfilled by this EpisodeOfCare, incoming referrals."]
9629 pub referralRequest: Option<Vec<Box<Reference>>>,
9630 # [reference (targets = ["Practitioner" , "PractitionerRole"])]
9631 #[doc = "The practitioner that is the care manager/care coordinator for this patient."]
9632 pub careManager: Option<Box<Reference>>,
9633 # [reference (targets = ["CareTeam"])]
9634 #[doc = "The list of practitioners that may be facilitating this episode of care for specific purposes."]
9635 pub team: Option<Vec<Box<Reference>>>,
9636 # [reference (targets = ["Account"])]
9637 #[doc = "The set of accounts that may be used for billing for this EpisodeOfCare."]
9638 pub account: Option<Vec<Box<Reference>>>,
9639}
9640#[derive(
9641 Clone,
9642 Reflect,
9643 Debug,
9644 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
9645 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
9646)]
9647#[fhir_serialize_type = "typechoice"]
9648#[type_choice_field_name = "subject"]
9649pub enum EventDefinitionSubjectTypeChoice {
9650 CodeableConcept(Box<CodeableConcept>),
9651 # [reference (targets = ["Group"])]
9652 Reference(Box<Reference>),
9653}
9654impl Default for EventDefinitionSubjectTypeChoice {
9655 fn default() -> Self {
9656 EventDefinitionSubjectTypeChoice::CodeableConcept(Box::new(Default::default()))
9657 }
9658}
9659#[derive(
9660 Clone,
9661 Reflect,
9662 Debug,
9663 Default,
9664 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
9665 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
9666)]
9667#[fhir_serialize_type = "resource"]
9668#[doc = "The EventDefinition resource provides a reusable description of when a particular event can occur."]
9669pub struct EventDefinition {
9670 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
9671 pub id: Option<String>,
9672 #[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."]
9673 pub meta: Option<Box<Meta>>,
9674 #[primitive]
9675 #[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."]
9676 pub implicitRules: Option<Box<FHIRUri>>,
9677 #[primitive]
9678 #[doc = "The base language in which the resource is written."]
9679 pub language: Option<Box<FHIRCode>>,
9680 #[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."]
9681 pub text: Option<Box<Narrative>>,
9682 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
9683 pub contained: Option<Vec<Box<Resource>>>,
9684 #[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 manageable, 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."]
9685 pub extension: Option<Vec<Box<Extension>>>,
9686 #[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 manageable, 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)."]
9687 pub modifierExtension: Option<Vec<Box<Extension>>>,
9688 #[primitive]
9689 #[doc = "An absolute URI that is used to identify this event definition 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 at which an authoritative instance of this event definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the event definition is stored on different servers."]
9690 pub url: Option<Box<FHIRUri>>,
9691 #[rename_field = "identifier"]
9692 #[doc = "A formal identifier that is used to identify this event definition when it is represented in other formats, or referenced in a specification, model, design or an instance."]
9693 pub identifier_: Option<Vec<Box<Identifier>>>,
9694 #[primitive]
9695 #[doc = "The identifier that is used to identify this version of the event definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the event definition 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."]
9696 pub version: Option<Box<FHIRString>>,
9697 #[primitive]
9698 #[doc = "A natural language name identifying the event definition. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
9699 pub name: Option<Box<FHIRString>>,
9700 #[primitive]
9701 #[doc = "A short, descriptive, user-friendly title for the event definition."]
9702 pub title: Option<Box<FHIRString>>,
9703 #[primitive]
9704 #[doc = "An explanatory or alternate title for the event definition giving additional information about its content."]
9705 pub subtitle: Option<Box<FHIRString>>,
9706 #[primitive]
9707 #[doc = "The status of this event definition. Enables tracking the life-cycle of the content."]
9708 pub status: Box<terminology::PublicationStatus>,
9709 #[primitive]
9710 #[doc = "A Boolean value to indicate that this event definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
9711 pub experimental: Option<Box<FHIRBoolean>>,
9712 # [type_choice_variants (complex = ["subjectCodeableConcept" , "subjectReference"] , primitive = [])]
9713 #[doc = "A code or group definition that describes the intended subject of the event definition."]
9714 pub subject: Option<EventDefinitionSubjectTypeChoice>,
9715 #[primitive]
9716 #[doc = "The date (and optionally time) when the event definition was published. 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 event definition changes."]
9717 pub date: Option<Box<FHIRDateTime>>,
9718 #[primitive]
9719 #[doc = "The name of the organization or individual that published the event definition."]
9720 pub publisher: Option<Box<FHIRString>>,
9721 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
9722 pub contact: Option<Vec<Box<ContactDetail>>>,
9723 #[primitive]
9724 #[doc = "A free text natural language description of the event definition from a consumer's perspective."]
9725 pub description: Option<Box<FHIRMarkdown>>,
9726 #[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 event definition instances."]
9727 pub useContext: Option<Vec<Box<UsageContext>>>,
9728 #[doc = "A legal or geographic region in which the event definition is intended to be used."]
9729 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
9730 #[primitive]
9731 #[doc = "Explanation of why this event definition is needed and why it has been designed as it has."]
9732 pub purpose: Option<Box<FHIRMarkdown>>,
9733 #[primitive]
9734 #[doc = "A detailed description of how the event definition is used from a clinical perspective."]
9735 pub usage: Option<Box<FHIRString>>,
9736 #[primitive]
9737 #[doc = "A copyright statement relating to the event definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the event definition."]
9738 pub copyright: Option<Box<FHIRMarkdown>>,
9739 #[primitive]
9740 #[doc = "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage."]
9741 pub approvalDate: Option<Box<FHIRDate>>,
9742 #[primitive]
9743 #[doc = "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date."]
9744 pub lastReviewDate: Option<Box<FHIRDate>>,
9745 #[doc = "The period during which the event definition content was or is planned to be in active use."]
9746 pub effectivePeriod: Option<Box<Period>>,
9747 #[doc = "Descriptive topics related to the module. Topics provide a high-level categorization of the module that can be useful for filtering and searching."]
9748 pub topic: Option<Vec<Box<CodeableConcept>>>,
9749 #[doc = "An individiual or organization primarily involved in the creation and maintenance of the content."]
9750 pub author: Option<Vec<Box<ContactDetail>>>,
9751 #[doc = "An individual or organization primarily responsible for internal coherence of the content."]
9752 pub editor: Option<Vec<Box<ContactDetail>>>,
9753 #[doc = "An individual or organization primarily responsible for review of some aspect of the content."]
9754 pub reviewer: Option<Vec<Box<ContactDetail>>>,
9755 #[doc = "An individual or organization responsible for officially endorsing the content for use in some setting."]
9756 pub endorser: Option<Vec<Box<ContactDetail>>>,
9757 #[doc = "Related resources such as additional documentation, justification, or bibliographic references."]
9758 pub relatedArtifact: Option<Vec<Box<RelatedArtifact>>>,
9759 #[cardinality(min = 1usize)]
9760 #[doc = "The trigger element defines when the event occurs. If more than one trigger condition is specified, the event fires whenever any one of the trigger conditions is met."]
9761 pub trigger: Vec<Box<TriggerDefinition>>,
9762}
9763#[derive(
9764 Clone,
9765 Reflect,
9766 Debug,
9767 Default,
9768 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
9769 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
9770)]
9771#[fhir_serialize_type = "resource"]
9772#[doc = "The Evidence resource describes the conditional state (population and any exposures being compared within the population) and outcome (if specified) that the knowledge (evidence, assertion, recommendation) is about."]
9773pub struct Evidence {
9774 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
9775 pub id: Option<String>,
9776 #[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."]
9777 pub meta: Option<Box<Meta>>,
9778 #[primitive]
9779 #[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."]
9780 pub implicitRules: Option<Box<FHIRUri>>,
9781 #[primitive]
9782 #[doc = "The base language in which the resource is written."]
9783 pub language: Option<Box<FHIRCode>>,
9784 #[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."]
9785 pub text: Option<Box<Narrative>>,
9786 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
9787 pub contained: Option<Vec<Box<Resource>>>,
9788 #[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 manageable, 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."]
9789 pub extension: Option<Vec<Box<Extension>>>,
9790 #[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 manageable, 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)."]
9791 pub modifierExtension: Option<Vec<Box<Extension>>>,
9792 #[primitive]
9793 #[doc = "An absolute URI that is used to identify this evidence 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 at which an authoritative instance of this evidence is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the evidence is stored on different servers."]
9794 pub url: Option<Box<FHIRUri>>,
9795 #[rename_field = "identifier"]
9796 #[doc = "A formal identifier that is used to identify this evidence when it is represented in other formats, or referenced in a specification, model, design or an instance."]
9797 pub identifier_: Option<Vec<Box<Identifier>>>,
9798 #[primitive]
9799 #[doc = "The identifier that is used to identify this version of the evidence when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the evidence 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. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts."]
9800 pub version: Option<Box<FHIRString>>,
9801 #[primitive]
9802 #[doc = "A natural language name identifying the evidence. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
9803 pub name: Option<Box<FHIRString>>,
9804 #[primitive]
9805 #[doc = "A short, descriptive, user-friendly title for the evidence."]
9806 pub title: Option<Box<FHIRString>>,
9807 #[primitive]
9808 #[doc = "The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary."]
9809 pub shortTitle: Option<Box<FHIRString>>,
9810 #[primitive]
9811 #[doc = "An explanatory or alternate title for the Evidence giving additional information about its content."]
9812 pub subtitle: Option<Box<FHIRString>>,
9813 #[primitive]
9814 #[doc = "The status of this evidence. Enables tracking the life-cycle of the content."]
9815 pub status: Box<terminology::PublicationStatus>,
9816 #[primitive]
9817 #[doc = "The date (and optionally time) when the evidence was published. 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 evidence changes."]
9818 pub date: Option<Box<FHIRDateTime>>,
9819 #[primitive]
9820 #[doc = "The name of the organization or individual that published the evidence."]
9821 pub publisher: Option<Box<FHIRString>>,
9822 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
9823 pub contact: Option<Vec<Box<ContactDetail>>>,
9824 #[primitive]
9825 #[doc = "A free text natural language description of the evidence from a consumer's perspective."]
9826 pub description: Option<Box<FHIRMarkdown>>,
9827 #[doc = "A human-readable string to clarify or explain concepts about the resource."]
9828 pub note: Option<Vec<Box<Annotation>>>,
9829 #[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 evidence instances."]
9830 pub useContext: Option<Vec<Box<UsageContext>>>,
9831 #[doc = "A legal or geographic region in which the evidence is intended to be used."]
9832 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
9833 #[primitive]
9834 #[doc = "A copyright statement relating to the evidence and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the evidence."]
9835 pub copyright: Option<Box<FHIRMarkdown>>,
9836 #[primitive]
9837 #[doc = "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage."]
9838 pub approvalDate: Option<Box<FHIRDate>>,
9839 #[primitive]
9840 #[doc = "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date."]
9841 pub lastReviewDate: Option<Box<FHIRDate>>,
9842 #[doc = "The period during which the evidence content was or is planned to be in active use."]
9843 pub effectivePeriod: Option<Box<Period>>,
9844 #[doc = "Descriptive topics related to the content of the Evidence. Topics provide a high-level categorization grouping types of Evidences that can be useful for filtering and searching."]
9845 pub topic: Option<Vec<Box<CodeableConcept>>>,
9846 #[doc = "An individiual or organization primarily involved in the creation and maintenance of the content."]
9847 pub author: Option<Vec<Box<ContactDetail>>>,
9848 #[doc = "An individual or organization primarily responsible for internal coherence of the content."]
9849 pub editor: Option<Vec<Box<ContactDetail>>>,
9850 #[doc = "An individual or organization primarily responsible for review of some aspect of the content."]
9851 pub reviewer: Option<Vec<Box<ContactDetail>>>,
9852 #[doc = "An individual or organization responsible for officially endorsing the content for use in some setting."]
9853 pub endorser: Option<Vec<Box<ContactDetail>>>,
9854 #[doc = "Related artifacts such as additional documentation, justification, or bibliographic references."]
9855 pub relatedArtifact: Option<Vec<Box<RelatedArtifact>>>,
9856 # [reference (targets = ["EvidenceVariable"])]
9857 #[doc = "A reference to a EvidenceVariable resource that defines the population for the research."]
9858 pub exposureBackground: Box<Reference>,
9859 # [reference (targets = ["EvidenceVariable"])]
9860 #[doc = "A reference to a EvidenceVariable resource that defines the exposure for the research."]
9861 pub exposureVariant: Option<Vec<Box<Reference>>>,
9862 # [reference (targets = ["EvidenceVariable"])]
9863 #[doc = "A reference to a EvidenceVariable resomece that defines the outcome for the research."]
9864 pub outcome: Option<Vec<Box<Reference>>>,
9865}
9866#[derive(
9867 Clone,
9868 Reflect,
9869 Debug,
9870 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
9871 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
9872)]
9873#[fhir_serialize_type = "typechoice"]
9874#[type_choice_field_name = "definition"]
9875pub enum EvidenceVariableCharacteristicDefinitionTypeChoice {
9876 # [reference (targets = ["Group"])]
9877 Reference(Box<Reference>),
9878 Canonical(Box<FHIRCanonical>),
9879 CodeableConcept(Box<CodeableConcept>),
9880 Expression(Box<Expression>),
9881 DataRequirement(Box<DataRequirement>),
9882 TriggerDefinition(Box<TriggerDefinition>),
9883}
9884impl Default for EvidenceVariableCharacteristicDefinitionTypeChoice {
9885 fn default() -> Self {
9886 EvidenceVariableCharacteristicDefinitionTypeChoice::Reference(Box::new(Default::default()))
9887 }
9888}
9889#[derive(
9890 Clone,
9891 Reflect,
9892 Debug,
9893 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
9894 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
9895)]
9896#[fhir_serialize_type = "typechoice"]
9897#[type_choice_field_name = "participantEffective"]
9898pub enum EvidenceVariableCharacteristicParticipantEffectiveTypeChoice {
9899 DateTime(Box<FHIRDateTime>),
9900 Period(Box<Period>),
9901 Duration(Box<Duration>),
9902 Timing(Box<Timing>),
9903}
9904impl Default for EvidenceVariableCharacteristicParticipantEffectiveTypeChoice {
9905 fn default() -> Self {
9906 EvidenceVariableCharacteristicParticipantEffectiveTypeChoice::DateTime(Box::new(
9907 Default::default(),
9908 ))
9909 }
9910}
9911#[derive(
9912 Clone,
9913 Reflect,
9914 Debug,
9915 Default,
9916 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
9917 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
9918)]
9919#[fhir_serialize_type = "complex"]
9920#[doc = "A characteristic that defines the members of the evidence element. Multiple characteristics are applied with \"and\" semantics."]
9921pub struct EvidenceVariableCharacteristic {
9922 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
9923 pub id: Option<String>,
9924 #[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 manageable, 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."]
9925 pub extension: Option<Vec<Box<Extension>>>,
9926 #[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 manageable, 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)."]
9927 pub modifierExtension: Option<Vec<Box<Extension>>>,
9928 #[primitive]
9929 #[doc = "A short, natural language description of the characteristic that could be used to communicate the criteria to an end-user."]
9930 pub description: Option<Box<FHIRString>>,
9931 # [type_choice_variants (complex = ["definitionReference" , "definitionCodeableConcept" , "definitionExpression" , "definitionDataRequirement" , "definitionTriggerDefinition"] , primitive = ["definitionCanonical"])]
9932 #[doc = "Define members of the evidence element using Codes (such as condition, medication, or observation), Expressions ( using an expression language such as FHIRPath or CQL) or DataRequirements (such as Diabetes diagnosis onset in the last year)."]
9933 pub definition: EvidenceVariableCharacteristicDefinitionTypeChoice,
9934 #[doc = "Use UsageContext to define the members of the population, such as Age Ranges, Genders, Settings."]
9935 pub usageContext: Option<Vec<Box<UsageContext>>>,
9936 #[primitive]
9937 #[doc = "When true, members with this characteristic are excluded from the element."]
9938 pub exclude: Option<Box<FHIRBoolean>>,
9939 # [type_choice_variants (complex = ["participantEffectivePeriod" , "participantEffectiveDuration" , "participantEffectiveTiming"] , primitive = ["participantEffectiveDateTime"])]
9940 #[doc = "Indicates what effective period the study covers."]
9941 pub participantEffective: Option<EvidenceVariableCharacteristicParticipantEffectiveTypeChoice>,
9942 #[doc = "Indicates duration from the participant's study entry."]
9943 pub timeFromStart: Option<Box<Duration>>,
9944 #[primitive]
9945 #[doc = "Indicates how elements are aggregated within the study effective period."]
9946 pub groupMeasure: Option<Box<terminology::GroupMeasure>>,
9947}
9948#[derive(
9949 Clone,
9950 Reflect,
9951 Debug,
9952 Default,
9953 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
9954 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
9955)]
9956#[fhir_serialize_type = "resource"]
9957#[doc = "The EvidenceVariable resource describes a \"PICO\" element that knowledge (evidence, assertion, recommendation) is about."]
9958pub struct EvidenceVariable {
9959 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
9960 pub id: Option<String>,
9961 #[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."]
9962 pub meta: Option<Box<Meta>>,
9963 #[primitive]
9964 #[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."]
9965 pub implicitRules: Option<Box<FHIRUri>>,
9966 #[primitive]
9967 #[doc = "The base language in which the resource is written."]
9968 pub language: Option<Box<FHIRCode>>,
9969 #[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."]
9970 pub text: Option<Box<Narrative>>,
9971 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
9972 pub contained: Option<Vec<Box<Resource>>>,
9973 #[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 manageable, 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."]
9974 pub extension: Option<Vec<Box<Extension>>>,
9975 #[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 manageable, 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)."]
9976 pub modifierExtension: Option<Vec<Box<Extension>>>,
9977 #[primitive]
9978 #[doc = "An absolute URI that is used to identify this evidence variable 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 at which an authoritative instance of this evidence variable is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the evidence variable is stored on different servers."]
9979 pub url: Option<Box<FHIRUri>>,
9980 #[rename_field = "identifier"]
9981 #[doc = "A formal identifier that is used to identify this evidence variable when it is represented in other formats, or referenced in a specification, model, design or an instance."]
9982 pub identifier_: Option<Vec<Box<Identifier>>>,
9983 #[primitive]
9984 #[doc = "The identifier that is used to identify this version of the evidence variable when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the evidence variable 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. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts."]
9985 pub version: Option<Box<FHIRString>>,
9986 #[primitive]
9987 #[doc = "A natural language name identifying the evidence variable. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
9988 pub name: Option<Box<FHIRString>>,
9989 #[primitive]
9990 #[doc = "A short, descriptive, user-friendly title for the evidence variable."]
9991 pub title: Option<Box<FHIRString>>,
9992 #[primitive]
9993 #[doc = "The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary."]
9994 pub shortTitle: Option<Box<FHIRString>>,
9995 #[primitive]
9996 #[doc = "An explanatory or alternate title for the EvidenceVariable giving additional information about its content."]
9997 pub subtitle: Option<Box<FHIRString>>,
9998 #[primitive]
9999 #[doc = "The status of this evidence variable. Enables tracking the life-cycle of the content."]
10000 pub status: Box<terminology::PublicationStatus>,
10001 #[primitive]
10002 #[doc = "The date (and optionally time) when the evidence variable was published. 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 evidence variable changes."]
10003 pub date: Option<Box<FHIRDateTime>>,
10004 #[primitive]
10005 #[doc = "The name of the organization or individual that published the evidence variable."]
10006 pub publisher: Option<Box<FHIRString>>,
10007 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
10008 pub contact: Option<Vec<Box<ContactDetail>>>,
10009 #[primitive]
10010 #[doc = "A free text natural language description of the evidence variable from a consumer's perspective."]
10011 pub description: Option<Box<FHIRMarkdown>>,
10012 #[doc = "A human-readable string to clarify or explain concepts about the resource."]
10013 pub note: Option<Vec<Box<Annotation>>>,
10014 #[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 evidence variable instances."]
10015 pub useContext: Option<Vec<Box<UsageContext>>>,
10016 #[doc = "A legal or geographic region in which the evidence variable is intended to be used."]
10017 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
10018 #[primitive]
10019 #[doc = "A copyright statement relating to the evidence variable and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the evidence variable."]
10020 pub copyright: Option<Box<FHIRMarkdown>>,
10021 #[primitive]
10022 #[doc = "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage."]
10023 pub approvalDate: Option<Box<FHIRDate>>,
10024 #[primitive]
10025 #[doc = "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date."]
10026 pub lastReviewDate: Option<Box<FHIRDate>>,
10027 #[doc = "The period during which the evidence variable content was or is planned to be in active use."]
10028 pub effectivePeriod: Option<Box<Period>>,
10029 #[doc = "Descriptive topics related to the content of the EvidenceVariable. Topics provide a high-level categorization grouping types of EvidenceVariables that can be useful for filtering and searching."]
10030 pub topic: Option<Vec<Box<CodeableConcept>>>,
10031 #[doc = "An individiual or organization primarily involved in the creation and maintenance of the content."]
10032 pub author: Option<Vec<Box<ContactDetail>>>,
10033 #[doc = "An individual or organization primarily responsible for internal coherence of the content."]
10034 pub editor: Option<Vec<Box<ContactDetail>>>,
10035 #[doc = "An individual or organization primarily responsible for review of some aspect of the content."]
10036 pub reviewer: Option<Vec<Box<ContactDetail>>>,
10037 #[doc = "An individual or organization responsible for officially endorsing the content for use in some setting."]
10038 pub endorser: Option<Vec<Box<ContactDetail>>>,
10039 #[doc = "Related artifacts such as additional documentation, justification, or bibliographic references."]
10040 pub relatedArtifact: Option<Vec<Box<RelatedArtifact>>>,
10041 #[rename_field = "type"]
10042 #[primitive]
10043 #[doc = "The type of evidence element, a population, an exposure, or an outcome."]
10044 pub type_: Option<Box<terminology::VariableType>>,
10045 #[cardinality(min = 1usize)]
10046 #[doc = "A characteristic that defines the members of the evidence element. Multiple characteristics are applied with \"and\" semantics."]
10047 pub characteristic: Vec<EvidenceVariableCharacteristic>,
10048}
10049#[derive(
10050 Clone,
10051 Reflect,
10052 Debug,
10053 Default,
10054 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10055 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10056)]
10057#[fhir_serialize_type = "complex"]
10058#[doc = "Actor participating in the resource."]
10059pub struct ExampleScenarioActor {
10060 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
10061 pub id: Option<String>,
10062 #[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 manageable, 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."]
10063 pub extension: Option<Vec<Box<Extension>>>,
10064 #[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 manageable, 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)."]
10065 pub modifierExtension: Option<Vec<Box<Extension>>>,
10066 #[primitive]
10067 #[doc = "ID or acronym of actor."]
10068 pub actorId: Box<FHIRString>,
10069 #[rename_field = "type"]
10070 #[primitive]
10071 #[doc = "The type of actor - person or system."]
10072 pub type_: Box<terminology::ExamplescenarioActorType>,
10073 #[primitive]
10074 #[doc = "The name of the actor as shown in the page."]
10075 pub name: Option<Box<FHIRString>>,
10076 #[primitive]
10077 #[doc = "The description of the actor."]
10078 pub description: Option<Box<FHIRMarkdown>>,
10079}
10080#[derive(
10081 Clone,
10082 Reflect,
10083 Debug,
10084 Default,
10085 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10086 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10087)]
10088#[fhir_serialize_type = "complex"]
10089#[doc = "A specific version of the resource."]
10090pub struct ExampleScenarioInstanceVersion {
10091 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
10092 pub id: Option<String>,
10093 #[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 manageable, 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."]
10094 pub extension: Option<Vec<Box<Extension>>>,
10095 #[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 manageable, 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)."]
10096 pub modifierExtension: Option<Vec<Box<Extension>>>,
10097 #[primitive]
10098 #[doc = "The identifier of a specific version of a resource."]
10099 pub versionId: Box<FHIRString>,
10100 #[primitive]
10101 #[doc = "The description of the resource version."]
10102 pub description: Box<FHIRMarkdown>,
10103}
10104#[derive(
10105 Clone,
10106 Reflect,
10107 Debug,
10108 Default,
10109 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10110 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10111)]
10112#[fhir_serialize_type = "complex"]
10113#[doc = "Resources contained in the instance (e.g. the observations contained in a bundle)."]
10114pub struct ExampleScenarioInstanceContainedInstance {
10115 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
10116 pub id: Option<String>,
10117 #[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 manageable, 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."]
10118 pub extension: Option<Vec<Box<Extension>>>,
10119 #[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 manageable, 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)."]
10120 pub modifierExtension: Option<Vec<Box<Extension>>>,
10121 #[primitive]
10122 #[doc = "Each resource contained in the instance."]
10123 pub resourceId: Box<FHIRString>,
10124 #[primitive]
10125 #[doc = "A specific version of a resource contained in the instance."]
10126 pub versionId: Option<Box<FHIRString>>,
10127}
10128#[derive(
10129 Clone,
10130 Reflect,
10131 Debug,
10132 Default,
10133 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10134 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10135)]
10136#[fhir_serialize_type = "complex"]
10137#[doc = "Each resource and each version that is present in the workflow."]
10138pub struct ExampleScenarioInstance {
10139 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
10140 pub id: Option<String>,
10141 #[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 manageable, 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."]
10142 pub extension: Option<Vec<Box<Extension>>>,
10143 #[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 manageable, 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)."]
10144 pub modifierExtension: Option<Vec<Box<Extension>>>,
10145 #[primitive]
10146 #[doc = "The id of the resource for referencing."]
10147 pub resourceId: Box<FHIRString>,
10148 #[primitive]
10149 #[doc = "The type of the resource."]
10150 pub resourceType: Box<terminology::ResourceTypes>,
10151 #[primitive]
10152 #[doc = "A short name for the resource instance."]
10153 pub name: Option<Box<FHIRString>>,
10154 #[primitive]
10155 #[doc = "Human-friendly description of the resource instance."]
10156 pub description: Option<Box<FHIRMarkdown>>,
10157 #[doc = "A specific version of the resource."]
10158 pub version: Option<Vec<ExampleScenarioInstanceVersion>>,
10159 #[doc = "Resources contained in the instance (e.g. the observations contained in a bundle)."]
10160 pub containedInstance: Option<Vec<ExampleScenarioInstanceContainedInstance>>,
10161}
10162#[derive(
10163 Clone,
10164 Reflect,
10165 Debug,
10166 Default,
10167 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10168 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10169)]
10170#[fhir_serialize_type = "complex"]
10171#[doc = "Each interaction or action."]
10172pub struct ExampleScenarioProcessStepOperation {
10173 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
10174 pub id: Option<String>,
10175 #[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 manageable, 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."]
10176 pub extension: Option<Vec<Box<Extension>>>,
10177 #[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 manageable, 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)."]
10178 pub modifierExtension: Option<Vec<Box<Extension>>>,
10179 #[primitive]
10180 #[doc = "The sequential number of the interaction, e.g. 1.2.5."]
10181 pub number: Box<FHIRString>,
10182 #[rename_field = "type"]
10183 #[primitive]
10184 #[doc = "The type of operation - CRUD."]
10185 pub type_: Option<Box<FHIRString>>,
10186 #[primitive]
10187 #[doc = "The human-friendly name of the interaction."]
10188 pub name: Option<Box<FHIRString>>,
10189 #[primitive]
10190 #[doc = "Who starts the transaction."]
10191 pub initiator: Option<Box<FHIRString>>,
10192 #[primitive]
10193 #[doc = "Who receives the transaction."]
10194 pub receiver: Option<Box<FHIRString>>,
10195 #[primitive]
10196 #[doc = "A comment to be inserted in the diagram."]
10197 pub description: Option<Box<FHIRMarkdown>>,
10198 #[primitive]
10199 #[doc = "Whether the initiator is deactivated right after the transaction."]
10200 pub initiatorActive: Option<Box<FHIRBoolean>>,
10201 #[primitive]
10202 #[doc = "Whether the receiver is deactivated right after the transaction."]
10203 pub receiverActive: Option<Box<FHIRBoolean>>,
10204 #[doc = "Each resource instance used by the initiator."]
10205 pub request: Option<ExampleScenarioInstanceContainedInstance>,
10206 #[doc = "Each resource instance used by the responder."]
10207 pub response: Option<ExampleScenarioInstanceContainedInstance>,
10208}
10209#[derive(
10210 Clone,
10211 Reflect,
10212 Debug,
10213 Default,
10214 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10215 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10216)]
10217#[fhir_serialize_type = "complex"]
10218#[doc = "Indicates an alternative step that can be taken instead of the operations on the base step in exceptional/atypical circumstances."]
10219pub struct ExampleScenarioProcessStepAlternative {
10220 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
10221 pub id: Option<String>,
10222 #[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 manageable, 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."]
10223 pub extension: Option<Vec<Box<Extension>>>,
10224 #[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 manageable, 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)."]
10225 pub modifierExtension: Option<Vec<Box<Extension>>>,
10226 #[primitive]
10227 #[doc = "The label to display for the alternative that gives a sense of the circumstance in which the alternative should be invoked."]
10228 pub title: Box<FHIRString>,
10229 #[primitive]
10230 #[doc = "A human-readable description of the alternative explaining when the alternative should occur rather than the base step."]
10231 pub description: Option<Box<FHIRMarkdown>>,
10232 #[doc = "What happens in each alternative option."]
10233 pub step: Option<Vec<ExampleScenarioProcessStep>>,
10234}
10235#[derive(
10236 Clone,
10237 Reflect,
10238 Debug,
10239 Default,
10240 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10241 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10242)]
10243#[fhir_serialize_type = "complex"]
10244#[doc = "Each step of the process."]
10245pub struct ExampleScenarioProcessStep {
10246 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
10247 pub id: Option<String>,
10248 #[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 manageable, 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."]
10249 pub extension: Option<Vec<Box<Extension>>>,
10250 #[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 manageable, 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)."]
10251 pub modifierExtension: Option<Vec<Box<Extension>>>,
10252 #[doc = "Nested process."]
10253 pub process: Option<Vec<ExampleScenarioProcess>>,
10254 #[primitive]
10255 #[doc = "If there is a pause in the flow."]
10256 pub pause: Option<Box<FHIRBoolean>>,
10257 #[doc = "Each interaction or action."]
10258 pub operation: Option<ExampleScenarioProcessStepOperation>,
10259 #[doc = "Indicates an alternative step that can be taken instead of the operations on the base step in exceptional/atypical circumstances."]
10260 pub alternative: Option<Vec<ExampleScenarioProcessStepAlternative>>,
10261}
10262#[derive(
10263 Clone,
10264 Reflect,
10265 Debug,
10266 Default,
10267 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10268 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10269)]
10270#[fhir_serialize_type = "complex"]
10271#[doc = "Each major process - a group of operations."]
10272pub struct ExampleScenarioProcess {
10273 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
10274 pub id: Option<String>,
10275 #[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 manageable, 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."]
10276 pub extension: Option<Vec<Box<Extension>>>,
10277 #[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 manageable, 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)."]
10278 pub modifierExtension: Option<Vec<Box<Extension>>>,
10279 #[primitive]
10280 #[doc = "The diagram title of the group of operations."]
10281 pub title: Box<FHIRString>,
10282 #[primitive]
10283 #[doc = "A longer description of the group of operations."]
10284 pub description: Option<Box<FHIRMarkdown>>,
10285 #[primitive]
10286 #[doc = "Description of initial status before the process starts."]
10287 pub preConditions: Option<Box<FHIRMarkdown>>,
10288 #[primitive]
10289 #[doc = "Description of final status after the process ends."]
10290 pub postConditions: Option<Box<FHIRMarkdown>>,
10291 #[doc = "Each step of the process."]
10292 pub step: Option<Vec<ExampleScenarioProcessStep>>,
10293}
10294#[derive(
10295 Clone,
10296 Reflect,
10297 Debug,
10298 Default,
10299 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10300 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10301)]
10302#[fhir_serialize_type = "resource"]
10303#[doc = "Example of workflow instance."]
10304pub struct ExampleScenario {
10305 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
10306 pub id: Option<String>,
10307 #[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."]
10308 pub meta: Option<Box<Meta>>,
10309 #[primitive]
10310 #[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."]
10311 pub implicitRules: Option<Box<FHIRUri>>,
10312 #[primitive]
10313 #[doc = "The base language in which the resource is written."]
10314 pub language: Option<Box<FHIRCode>>,
10315 #[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."]
10316 pub text: Option<Box<Narrative>>,
10317 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
10318 pub contained: Option<Vec<Box<Resource>>>,
10319 #[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 manageable, 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."]
10320 pub extension: Option<Vec<Box<Extension>>>,
10321 #[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 manageable, 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)."]
10322 pub modifierExtension: Option<Vec<Box<Extension>>>,
10323 #[primitive]
10324 #[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 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."]
10325 pub url: Option<Box<FHIRUri>>,
10326 #[rename_field = "identifier"]
10327 #[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."]
10328 pub identifier_: Option<Vec<Box<Identifier>>>,
10329 #[primitive]
10330 #[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."]
10331 pub version: Option<Box<FHIRString>>,
10332 #[primitive]
10333 #[doc = "A natural language name identifying the example scenario. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
10334 pub name: Option<Box<FHIRString>>,
10335 #[primitive]
10336 #[doc = "The status of this example scenario. Enables tracking the life-cycle of the content."]
10337 pub status: Box<terminology::PublicationStatus>,
10338 #[primitive]
10339 #[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."]
10340 pub experimental: Option<Box<FHIRBoolean>>,
10341 #[primitive]
10342 #[doc = "The date (and optionally time) when the example scenario was published. 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')."]
10343 pub date: Option<Box<FHIRDateTime>>,
10344 #[primitive]
10345 #[doc = "The name of the organization or individual that published the example scenario."]
10346 pub publisher: Option<Box<FHIRString>>,
10347 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
10348 pub contact: Option<Vec<Box<ContactDetail>>>,
10349 #[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."]
10350 pub useContext: Option<Vec<Box<UsageContext>>>,
10351 #[doc = "A legal or geographic region in which the example scenario is intended to be used."]
10352 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
10353 #[primitive]
10354 #[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."]
10355 pub copyright: Option<Box<FHIRMarkdown>>,
10356 #[primitive]
10357 #[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."]
10358 pub purpose: Option<Box<FHIRMarkdown>>,
10359 #[doc = "Actor participating in the resource."]
10360 pub actor: Option<Vec<ExampleScenarioActor>>,
10361 #[doc = "Each resource and each version that is present in the workflow."]
10362 pub instance: Option<Vec<ExampleScenarioInstance>>,
10363 #[doc = "Each major process - a group of operations."]
10364 pub process: Option<Vec<ExampleScenarioProcess>>,
10365 #[primitive]
10366 #[doc = "Another nested workflow."]
10367 pub workflow: Option<Vec<Box<FHIRCanonical>>>,
10368}
10369#[derive(
10370 Clone,
10371 Reflect,
10372 Debug,
10373 Default,
10374 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10375 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10376)]
10377#[fhir_serialize_type = "complex"]
10378#[doc = "Other claims which are related to this claim such as prior submissions or claims for related services or for the same event."]
10379pub struct ExplanationOfBenefitRelated {
10380 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
10381 pub id: Option<String>,
10382 #[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 manageable, 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."]
10383 pub extension: Option<Vec<Box<Extension>>>,
10384 #[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 manageable, 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)."]
10385 pub modifierExtension: Option<Vec<Box<Extension>>>,
10386 # [reference (targets = ["Claim"])]
10387 #[doc = "Reference to a related claim."]
10388 pub claim: Option<Box<Reference>>,
10389 #[doc = "A code to convey how the claims are related."]
10390 pub relationship: Option<Box<CodeableConcept>>,
10391 #[doc = "An alternate organizational reference to the case or file to which this particular claim pertains."]
10392 pub reference: Option<Box<Identifier>>,
10393}
10394#[derive(
10395 Clone,
10396 Reflect,
10397 Debug,
10398 Default,
10399 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10400 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10401)]
10402#[fhir_serialize_type = "complex"]
10403#[doc = "The party to be reimbursed for cost of the products and services according to the terms of the policy."]
10404pub struct ExplanationOfBenefitPayee {
10405 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
10406 pub id: Option<String>,
10407 #[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 manageable, 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."]
10408 pub extension: Option<Vec<Box<Extension>>>,
10409 #[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 manageable, 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)."]
10410 pub modifierExtension: Option<Vec<Box<Extension>>>,
10411 #[rename_field = "type"]
10412 #[doc = "Type of Party to be reimbursed: Subscriber, provider, other."]
10413 pub type_: Option<Box<CodeableConcept>>,
10414 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization" , "Patient" , "RelatedPerson"])]
10415 #[doc = "Reference to the individual or organization to whom any payment will be made."]
10416 pub party: Option<Box<Reference>>,
10417}
10418#[derive(
10419 Clone,
10420 Reflect,
10421 Debug,
10422 Default,
10423 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10424 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10425)]
10426#[fhir_serialize_type = "complex"]
10427#[doc = "The members of the team who provided the products and services."]
10428pub struct ExplanationOfBenefitCareTeam {
10429 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
10430 pub id: Option<String>,
10431 #[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 manageable, 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."]
10432 pub extension: Option<Vec<Box<Extension>>>,
10433 #[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 manageable, 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)."]
10434 pub modifierExtension: Option<Vec<Box<Extension>>>,
10435 #[primitive]
10436 #[doc = "A number to uniquely identify care team entries."]
10437 pub sequence: Box<FHIRPositiveInt>,
10438 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
10439 #[doc = "Member of the team who provided the product or service."]
10440 pub provider: Box<Reference>,
10441 #[primitive]
10442 #[doc = "The party who is billing and/or responsible for the claimed products or services."]
10443 pub responsible: Option<Box<FHIRBoolean>>,
10444 #[doc = "The lead, assisting or supervising practitioner and their discipline if a multidisciplinary team."]
10445 pub role: Option<Box<CodeableConcept>>,
10446 #[doc = "The qualification of the practitioner which is applicable for this service."]
10447 pub qualification: Option<Box<CodeableConcept>>,
10448}
10449#[derive(
10450 Clone,
10451 Reflect,
10452 Debug,
10453 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10454 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10455)]
10456#[fhir_serialize_type = "typechoice"]
10457#[type_choice_field_name = "timing"]
10458pub enum ExplanationOfBenefitSupportingInfoTimingTypeChoice {
10459 Date(Box<FHIRDate>),
10460 Period(Box<Period>),
10461}
10462impl Default for ExplanationOfBenefitSupportingInfoTimingTypeChoice {
10463 fn default() -> Self {
10464 ExplanationOfBenefitSupportingInfoTimingTypeChoice::Date(Box::new(Default::default()))
10465 }
10466}
10467#[derive(
10468 Clone,
10469 Reflect,
10470 Debug,
10471 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10472 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10473)]
10474#[fhir_serialize_type = "typechoice"]
10475#[type_choice_field_name = "value"]
10476pub enum ExplanationOfBenefitSupportingInfoValueTypeChoice {
10477 Boolean(Box<FHIRBoolean>),
10478 String(Box<FHIRString>),
10479 Quantity(Box<Quantity>),
10480 Attachment(Box<Attachment>),
10481 # [reference (targets = ["Resource"])]
10482 Reference(Box<Reference>),
10483}
10484impl Default for ExplanationOfBenefitSupportingInfoValueTypeChoice {
10485 fn default() -> Self {
10486 ExplanationOfBenefitSupportingInfoValueTypeChoice::Boolean(Box::new(Default::default()))
10487 }
10488}
10489#[derive(
10490 Clone,
10491 Reflect,
10492 Debug,
10493 Default,
10494 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10495 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10496)]
10497#[fhir_serialize_type = "complex"]
10498#[doc = "Additional information codes regarding exceptions, special considerations, the condition, situation, prior or concurrent issues."]
10499pub struct ExplanationOfBenefitSupportingInfo {
10500 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
10501 pub id: Option<String>,
10502 #[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 manageable, 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."]
10503 pub extension: Option<Vec<Box<Extension>>>,
10504 #[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 manageable, 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)."]
10505 pub modifierExtension: Option<Vec<Box<Extension>>>,
10506 #[primitive]
10507 #[doc = "A number to uniquely identify supporting information entries."]
10508 pub sequence: Box<FHIRPositiveInt>,
10509 #[doc = "The general class of the information supplied: information; exception; accident, employment; onset, etc."]
10510 pub category: Box<CodeableConcept>,
10511 #[doc = "System and code pertaining to the specific information regarding special conditions relating to the setting, treatment or patient for which care is sought."]
10512 pub code: Option<Box<CodeableConcept>>,
10513 # [type_choice_variants (complex = ["timingPeriod"] , primitive = ["timingDate"])]
10514 #[doc = "The date when or period to which this information refers."]
10515 pub timing: Option<ExplanationOfBenefitSupportingInfoTimingTypeChoice>,
10516 # [type_choice_variants (complex = ["valueQuantity" , "valueAttachment" , "valueReference"] , primitive = ["valueBoolean" , "valueString"])]
10517 #[doc = "Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data."]
10518 pub value: Option<ExplanationOfBenefitSupportingInfoValueTypeChoice>,
10519 #[doc = "Provides the reason in the situation where a reason code is required in addition to the content."]
10520 pub reason: Option<Box<Coding>>,
10521}
10522#[derive(
10523 Clone,
10524 Reflect,
10525 Debug,
10526 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10527 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10528)]
10529#[fhir_serialize_type = "typechoice"]
10530#[type_choice_field_name = "diagnosis"]
10531pub enum ExplanationOfBenefitDiagnosisDiagnosisTypeChoice {
10532 CodeableConcept(Box<CodeableConcept>),
10533 # [reference (targets = ["Condition"])]
10534 Reference(Box<Reference>),
10535}
10536impl Default for ExplanationOfBenefitDiagnosisDiagnosisTypeChoice {
10537 fn default() -> Self {
10538 ExplanationOfBenefitDiagnosisDiagnosisTypeChoice::CodeableConcept(Box::new(
10539 Default::default(),
10540 ))
10541 }
10542}
10543#[derive(
10544 Clone,
10545 Reflect,
10546 Debug,
10547 Default,
10548 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10549 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10550)]
10551#[fhir_serialize_type = "complex"]
10552#[doc = "Information about diagnoses relevant to the claim items."]
10553pub struct ExplanationOfBenefitDiagnosis {
10554 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
10555 pub id: Option<String>,
10556 #[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 manageable, 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."]
10557 pub extension: Option<Vec<Box<Extension>>>,
10558 #[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 manageable, 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)."]
10559 pub modifierExtension: Option<Vec<Box<Extension>>>,
10560 #[primitive]
10561 #[doc = "A number to uniquely identify diagnosis entries."]
10562 pub sequence: Box<FHIRPositiveInt>,
10563 # [type_choice_variants (complex = ["diagnosisCodeableConcept" , "diagnosisReference"] , primitive = [])]
10564 #[doc = "The nature of illness or problem in a coded form or as a reference to an external defined Condition."]
10565 pub diagnosis: ExplanationOfBenefitDiagnosisDiagnosisTypeChoice,
10566 #[rename_field = "type"]
10567 #[doc = "When the condition was observed or the relative ranking."]
10568 pub type_: Option<Vec<Box<CodeableConcept>>>,
10569 #[doc = "Indication of whether the diagnosis was present on admission to a facility."]
10570 pub onAdmission: Option<Box<CodeableConcept>>,
10571 #[doc = "A package billing code or bundle code used to group products and services to a particular health condition (such as heart attack) which is based on a predetermined grouping code system."]
10572 pub packageCode: Option<Box<CodeableConcept>>,
10573}
10574#[derive(
10575 Clone,
10576 Reflect,
10577 Debug,
10578 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10579 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10580)]
10581#[fhir_serialize_type = "typechoice"]
10582#[type_choice_field_name = "procedure"]
10583pub enum ExplanationOfBenefitProcedureProcedureTypeChoice {
10584 CodeableConcept(Box<CodeableConcept>),
10585 # [reference (targets = ["Procedure"])]
10586 Reference(Box<Reference>),
10587}
10588impl Default for ExplanationOfBenefitProcedureProcedureTypeChoice {
10589 fn default() -> Self {
10590 ExplanationOfBenefitProcedureProcedureTypeChoice::CodeableConcept(Box::new(
10591 Default::default(),
10592 ))
10593 }
10594}
10595#[derive(
10596 Clone,
10597 Reflect,
10598 Debug,
10599 Default,
10600 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10601 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10602)]
10603#[fhir_serialize_type = "complex"]
10604#[doc = "Procedures performed on the patient relevant to the billing items with the claim."]
10605pub struct ExplanationOfBenefitProcedure {
10606 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
10607 pub id: Option<String>,
10608 #[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 manageable, 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."]
10609 pub extension: Option<Vec<Box<Extension>>>,
10610 #[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 manageable, 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)."]
10611 pub modifierExtension: Option<Vec<Box<Extension>>>,
10612 #[primitive]
10613 #[doc = "A number to uniquely identify procedure entries."]
10614 pub sequence: Box<FHIRPositiveInt>,
10615 #[rename_field = "type"]
10616 #[doc = "When the condition was observed or the relative ranking."]
10617 pub type_: Option<Vec<Box<CodeableConcept>>>,
10618 #[primitive]
10619 #[doc = "Date and optionally time the procedure was performed."]
10620 pub date: Option<Box<FHIRDateTime>>,
10621 # [type_choice_variants (complex = ["procedureCodeableConcept" , "procedureReference"] , primitive = [])]
10622 #[doc = "The code or reference to a Procedure resource which identifies the clinical intervention performed."]
10623 pub procedure: ExplanationOfBenefitProcedureProcedureTypeChoice,
10624 # [reference (targets = ["Device"])]
10625 #[doc = "Unique Device Identifiers associated with this line item."]
10626 pub udi: Option<Vec<Box<Reference>>>,
10627}
10628#[derive(
10629 Clone,
10630 Reflect,
10631 Debug,
10632 Default,
10633 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10634 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10635)]
10636#[fhir_serialize_type = "complex"]
10637#[doc = "Financial instruments for reimbursement for the health care products and services specified on the claim."]
10638pub struct ExplanationOfBenefitInsurance {
10639 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
10640 pub id: Option<String>,
10641 #[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 manageable, 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."]
10642 pub extension: Option<Vec<Box<Extension>>>,
10643 #[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 manageable, 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)."]
10644 pub modifierExtension: Option<Vec<Box<Extension>>>,
10645 #[primitive]
10646 #[doc = "A flag to indicate that this Coverage is to be used for adjudication of this claim when set to true."]
10647 pub focal: Box<FHIRBoolean>,
10648 # [reference (targets = ["Coverage"])]
10649 #[doc = "Reference to the insurance card level information contained in the Coverage resource. The coverage issuing insurer will use these details to locate the patient's actual coverage within the insurer's information system."]
10650 pub coverage: Box<Reference>,
10651 #[primitive]
10652 #[doc = "Reference numbers previously provided by the insurer to the provider to be quoted on subsequent claims containing services or products related to the prior authorization."]
10653 pub preAuthRef: Option<Vec<Box<FHIRString>>>,
10654}
10655#[derive(
10656 Clone,
10657 Reflect,
10658 Debug,
10659 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10660 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10661)]
10662#[fhir_serialize_type = "typechoice"]
10663#[type_choice_field_name = "location"]
10664pub enum ExplanationOfBenefitAccidentLocationTypeChoice {
10665 Address(Box<Address>),
10666 # [reference (targets = ["Location"])]
10667 Reference(Box<Reference>),
10668}
10669impl Default for ExplanationOfBenefitAccidentLocationTypeChoice {
10670 fn default() -> Self {
10671 ExplanationOfBenefitAccidentLocationTypeChoice::Address(Box::new(Default::default()))
10672 }
10673}
10674#[derive(
10675 Clone,
10676 Reflect,
10677 Debug,
10678 Default,
10679 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10680 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10681)]
10682#[fhir_serialize_type = "complex"]
10683#[doc = "Details of a accident which resulted in injuries which required the products and services listed in the claim."]
10684pub struct ExplanationOfBenefitAccident {
10685 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
10686 pub id: Option<String>,
10687 #[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 manageable, 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."]
10688 pub extension: Option<Vec<Box<Extension>>>,
10689 #[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 manageable, 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)."]
10690 pub modifierExtension: Option<Vec<Box<Extension>>>,
10691 #[primitive]
10692 #[doc = "Date of an accident event related to the products and services contained in the claim."]
10693 pub date: Option<Box<FHIRDate>>,
10694 #[rename_field = "type"]
10695 #[doc = "The type or context of the accident event for the purposes of selection of potential insurance coverages and determination of coordination between insurers."]
10696 pub type_: Option<Box<CodeableConcept>>,
10697 # [type_choice_variants (complex = ["locationAddress" , "locationReference"] , primitive = [])]
10698 #[doc = "The physical location of the accident event."]
10699 pub location: Option<ExplanationOfBenefitAccidentLocationTypeChoice>,
10700}
10701#[derive(
10702 Clone,
10703 Reflect,
10704 Debug,
10705 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10706 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10707)]
10708#[fhir_serialize_type = "typechoice"]
10709#[type_choice_field_name = "serviced"]
10710pub enum ExplanationOfBenefitItemServicedTypeChoice {
10711 Date(Box<FHIRDate>),
10712 Period(Box<Period>),
10713}
10714impl Default for ExplanationOfBenefitItemServicedTypeChoice {
10715 fn default() -> Self {
10716 ExplanationOfBenefitItemServicedTypeChoice::Date(Box::new(Default::default()))
10717 }
10718}
10719#[derive(
10720 Clone,
10721 Reflect,
10722 Debug,
10723 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10724 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10725)]
10726#[fhir_serialize_type = "typechoice"]
10727#[type_choice_field_name = "location"]
10728pub enum ExplanationOfBenefitItemLocationTypeChoice {
10729 CodeableConcept(Box<CodeableConcept>),
10730 Address(Box<Address>),
10731 # [reference (targets = ["Location"])]
10732 Reference(Box<Reference>),
10733}
10734impl Default for ExplanationOfBenefitItemLocationTypeChoice {
10735 fn default() -> Self {
10736 ExplanationOfBenefitItemLocationTypeChoice::CodeableConcept(Box::new(Default::default()))
10737 }
10738}
10739#[derive(
10740 Clone,
10741 Reflect,
10742 Debug,
10743 Default,
10744 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10745 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10746)]
10747#[fhir_serialize_type = "complex"]
10748#[doc = "If this item is a group then the values here are a summary of the adjudication of the detail items. If this item is a simple product or service then this is the result of the adjudication of this item."]
10749pub struct ExplanationOfBenefitItemAdjudication {
10750 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
10751 pub id: Option<String>,
10752 #[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 manageable, 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."]
10753 pub extension: Option<Vec<Box<Extension>>>,
10754 #[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 manageable, 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)."]
10755 pub modifierExtension: Option<Vec<Box<Extension>>>,
10756 #[doc = "A code to indicate the information type of this adjudication record. Information types may include: the value submitted, maximum values or percentages allowed or payable under the plan, amounts that the patient is responsible for in-aggregate or pertaining to this item, amounts paid by other coverages, and the benefit payable for this item."]
10757 pub category: Box<CodeableConcept>,
10758 #[doc = "A code supporting the understanding of the adjudication result and explaining variance from expected amount."]
10759 pub reason: Option<Box<CodeableConcept>>,
10760 #[doc = "Monetary amount associated with the category."]
10761 pub amount: Option<Box<Money>>,
10762 #[primitive]
10763 #[doc = "A non-monetary value associated with the category. Mutually exclusive to the amount element above."]
10764 pub value: Option<Box<FHIRDecimal>>,
10765}
10766#[derive(
10767 Clone,
10768 Reflect,
10769 Debug,
10770 Default,
10771 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10772 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10773)]
10774#[fhir_serialize_type = "complex"]
10775#[doc = "Third-tier of goods and services."]
10776pub struct ExplanationOfBenefitItemDetailSubDetail {
10777 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
10778 pub id: Option<String>,
10779 #[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 manageable, 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."]
10780 pub extension: Option<Vec<Box<Extension>>>,
10781 #[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 manageable, 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)."]
10782 pub modifierExtension: Option<Vec<Box<Extension>>>,
10783 #[primitive]
10784 #[doc = "A claim detail line. Either a simple (a product or service) or a 'group' of sub-details which are simple items."]
10785 pub sequence: Box<FHIRPositiveInt>,
10786 #[doc = "The type of revenue or cost center providing the product and/or service."]
10787 pub revenue: Option<Box<CodeableConcept>>,
10788 #[doc = "Code to identify the general type of benefits under which products and services are provided."]
10789 pub category: Option<Box<CodeableConcept>>,
10790 #[doc = "When the value is a group code then this item collects a set of related claim details, otherwise this contains the product, service, drug or other billing code for the item."]
10791 pub productOrService: Box<CodeableConcept>,
10792 #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
10793 pub modifier: Option<Vec<Box<CodeableConcept>>>,
10794 #[doc = "Identifies the program under which this may be recovered."]
10795 pub programCode: Option<Vec<Box<CodeableConcept>>>,
10796 #[doc = "The number of repetitions of a service or product."]
10797 pub quantity: Option<Box<Quantity>>,
10798 #[doc = "If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group."]
10799 pub unitPrice: Option<Box<Money>>,
10800 #[primitive]
10801 #[doc = "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount."]
10802 pub factor: Option<Box<FHIRDecimal>>,
10803 #[doc = "The quantity times the unit price for an additional service or product or charge."]
10804 pub net: Option<Box<Money>>,
10805 # [reference (targets = ["Device"])]
10806 #[doc = "Unique Device Identifiers associated with this line item."]
10807 pub udi: Option<Vec<Box<Reference>>>,
10808 #[primitive]
10809 #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
10810 pub noteNumber: Option<Vec<Box<FHIRPositiveInt>>>,
10811 #[doc = "The adjudication results."]
10812 pub adjudication: Option<Vec<ExplanationOfBenefitItemAdjudication>>,
10813}
10814#[derive(
10815 Clone,
10816 Reflect,
10817 Debug,
10818 Default,
10819 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10820 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10821)]
10822#[fhir_serialize_type = "complex"]
10823#[doc = "Second-tier of goods and services."]
10824pub struct ExplanationOfBenefitItemDetail {
10825 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
10826 pub id: Option<String>,
10827 #[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 manageable, 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."]
10828 pub extension: Option<Vec<Box<Extension>>>,
10829 #[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 manageable, 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)."]
10830 pub modifierExtension: Option<Vec<Box<Extension>>>,
10831 #[primitive]
10832 #[doc = "A claim detail line. Either a simple (a product or service) or a 'group' of sub-details which are simple items."]
10833 pub sequence: Box<FHIRPositiveInt>,
10834 #[doc = "The type of revenue or cost center providing the product and/or service."]
10835 pub revenue: Option<Box<CodeableConcept>>,
10836 #[doc = "Code to identify the general type of benefits under which products and services are provided."]
10837 pub category: Option<Box<CodeableConcept>>,
10838 #[doc = "When the value is a group code then this item collects a set of related claim details, otherwise this contains the product, service, drug or other billing code for the item."]
10839 pub productOrService: Box<CodeableConcept>,
10840 #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
10841 pub modifier: Option<Vec<Box<CodeableConcept>>>,
10842 #[doc = "Identifies the program under which this may be recovered."]
10843 pub programCode: Option<Vec<Box<CodeableConcept>>>,
10844 #[doc = "The number of repetitions of a service or product."]
10845 pub quantity: Option<Box<Quantity>>,
10846 #[doc = "If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group."]
10847 pub unitPrice: Option<Box<Money>>,
10848 #[primitive]
10849 #[doc = "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount."]
10850 pub factor: Option<Box<FHIRDecimal>>,
10851 #[doc = "The quantity times the unit price for an additional service or product or charge."]
10852 pub net: Option<Box<Money>>,
10853 # [reference (targets = ["Device"])]
10854 #[doc = "Unique Device Identifiers associated with this line item."]
10855 pub udi: Option<Vec<Box<Reference>>>,
10856 #[primitive]
10857 #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
10858 pub noteNumber: Option<Vec<Box<FHIRPositiveInt>>>,
10859 #[doc = "The adjudication results."]
10860 pub adjudication: Option<Vec<ExplanationOfBenefitItemAdjudication>>,
10861 #[doc = "Third-tier of goods and services."]
10862 pub subDetail: Option<Vec<ExplanationOfBenefitItemDetailSubDetail>>,
10863}
10864#[derive(
10865 Clone,
10866 Reflect,
10867 Debug,
10868 Default,
10869 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10870 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10871)]
10872#[fhir_serialize_type = "complex"]
10873#[doc = "A claim line. Either a simple (a product or service) or a 'group' of details which can also be a simple items or groups of sub-details."]
10874pub struct ExplanationOfBenefitItem {
10875 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
10876 pub id: Option<String>,
10877 #[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 manageable, 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."]
10878 pub extension: Option<Vec<Box<Extension>>>,
10879 #[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 manageable, 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)."]
10880 pub modifierExtension: Option<Vec<Box<Extension>>>,
10881 #[primitive]
10882 #[doc = "A number to uniquely identify item entries."]
10883 pub sequence: Box<FHIRPositiveInt>,
10884 #[primitive]
10885 #[doc = "Care team members related to this service or product."]
10886 pub careTeamSequence: Option<Vec<Box<FHIRPositiveInt>>>,
10887 #[primitive]
10888 #[doc = "Diagnoses applicable for this service or product."]
10889 pub diagnosisSequence: Option<Vec<Box<FHIRPositiveInt>>>,
10890 #[primitive]
10891 #[doc = "Procedures applicable for this service or product."]
10892 pub procedureSequence: Option<Vec<Box<FHIRPositiveInt>>>,
10893 #[primitive]
10894 #[doc = "Exceptions, special conditions and supporting information applicable for this service or product."]
10895 pub informationSequence: Option<Vec<Box<FHIRPositiveInt>>>,
10896 #[doc = "The type of revenue or cost center providing the product and/or service."]
10897 pub revenue: Option<Box<CodeableConcept>>,
10898 #[doc = "Code to identify the general type of benefits under which products and services are provided."]
10899 pub category: Option<Box<CodeableConcept>>,
10900 #[doc = "When the value is a group code then this item collects a set of related claim details, otherwise this contains the product, service, drug or other billing code for the item."]
10901 pub productOrService: Box<CodeableConcept>,
10902 #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
10903 pub modifier: Option<Vec<Box<CodeableConcept>>>,
10904 #[doc = "Identifies the program under which this may be recovered."]
10905 pub programCode: Option<Vec<Box<CodeableConcept>>>,
10906 # [type_choice_variants (complex = ["servicedPeriod"] , primitive = ["servicedDate"])]
10907 #[doc = "The date or dates when the service or product was supplied, performed or completed."]
10908 pub serviced: Option<ExplanationOfBenefitItemServicedTypeChoice>,
10909 # [type_choice_variants (complex = ["locationCodeableConcept" , "locationAddress" , "locationReference"] , primitive = [])]
10910 #[doc = "Where the product or service was provided."]
10911 pub location: Option<ExplanationOfBenefitItemLocationTypeChoice>,
10912 #[doc = "The number of repetitions of a service or product."]
10913 pub quantity: Option<Box<Quantity>>,
10914 #[doc = "If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group."]
10915 pub unitPrice: Option<Box<Money>>,
10916 #[primitive]
10917 #[doc = "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount."]
10918 pub factor: Option<Box<FHIRDecimal>>,
10919 #[doc = "The quantity times the unit price for an additional service or product or charge."]
10920 pub net: Option<Box<Money>>,
10921 # [reference (targets = ["Device"])]
10922 #[doc = "Unique Device Identifiers associated with this line item."]
10923 pub udi: Option<Vec<Box<Reference>>>,
10924 #[doc = "Physical service site on the patient (limb, tooth, etc.)."]
10925 pub bodySite: Option<Box<CodeableConcept>>,
10926 #[doc = "A region or surface of the bodySite, e.g. limb region or tooth surface(s)."]
10927 pub subSite: Option<Vec<Box<CodeableConcept>>>,
10928 # [reference (targets = ["Encounter"])]
10929 #[doc = "A billed item may include goods or services provided in multiple encounters."]
10930 pub encounter: Option<Vec<Box<Reference>>>,
10931 #[primitive]
10932 #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
10933 pub noteNumber: Option<Vec<Box<FHIRPositiveInt>>>,
10934 #[doc = "If this item is a group then the values here are a summary of the adjudication of the detail items. If this item is a simple product or service then this is the result of the adjudication of this item."]
10935 pub adjudication: Option<Vec<ExplanationOfBenefitItemAdjudication>>,
10936 #[doc = "Second-tier of goods and services."]
10937 pub detail: Option<Vec<ExplanationOfBenefitItemDetail>>,
10938}
10939#[derive(
10940 Clone,
10941 Reflect,
10942 Debug,
10943 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10944 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10945)]
10946#[fhir_serialize_type = "typechoice"]
10947#[type_choice_field_name = "serviced"]
10948pub enum ExplanationOfBenefitAddItemServicedTypeChoice {
10949 Date(Box<FHIRDate>),
10950 Period(Box<Period>),
10951}
10952impl Default for ExplanationOfBenefitAddItemServicedTypeChoice {
10953 fn default() -> Self {
10954 ExplanationOfBenefitAddItemServicedTypeChoice::Date(Box::new(Default::default()))
10955 }
10956}
10957#[derive(
10958 Clone,
10959 Reflect,
10960 Debug,
10961 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10962 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10963)]
10964#[fhir_serialize_type = "typechoice"]
10965#[type_choice_field_name = "location"]
10966pub enum ExplanationOfBenefitAddItemLocationTypeChoice {
10967 CodeableConcept(Box<CodeableConcept>),
10968 Address(Box<Address>),
10969 # [reference (targets = ["Location"])]
10970 Reference(Box<Reference>),
10971}
10972impl Default for ExplanationOfBenefitAddItemLocationTypeChoice {
10973 fn default() -> Self {
10974 ExplanationOfBenefitAddItemLocationTypeChoice::CodeableConcept(Box::new(Default::default()))
10975 }
10976}
10977#[derive(
10978 Clone,
10979 Reflect,
10980 Debug,
10981 Default,
10982 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
10983 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
10984)]
10985#[fhir_serialize_type = "complex"]
10986#[doc = "The third-tier service adjudications for payor added services."]
10987pub struct ExplanationOfBenefitAddItemDetailSubDetail {
10988 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
10989 pub id: Option<String>,
10990 #[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 manageable, 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."]
10991 pub extension: Option<Vec<Box<Extension>>>,
10992 #[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 manageable, 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)."]
10993 pub modifierExtension: Option<Vec<Box<Extension>>>,
10994 #[doc = "When the value is a group code then this item collects a set of related claim details, otherwise this contains the product, service, drug or other billing code for the item."]
10995 pub productOrService: Box<CodeableConcept>,
10996 #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
10997 pub modifier: Option<Vec<Box<CodeableConcept>>>,
10998 #[doc = "The number of repetitions of a service or product."]
10999 pub quantity: Option<Box<Quantity>>,
11000 #[doc = "If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group."]
11001 pub unitPrice: Option<Box<Money>>,
11002 #[primitive]
11003 #[doc = "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount."]
11004 pub factor: Option<Box<FHIRDecimal>>,
11005 #[doc = "The quantity times the unit price for an additional service or product or charge."]
11006 pub net: Option<Box<Money>>,
11007 #[primitive]
11008 #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
11009 pub noteNumber: Option<Vec<Box<FHIRPositiveInt>>>,
11010 #[doc = "The adjudication results."]
11011 pub adjudication: Option<Vec<ExplanationOfBenefitItemAdjudication>>,
11012}
11013#[derive(
11014 Clone,
11015 Reflect,
11016 Debug,
11017 Default,
11018 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11019 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11020)]
11021#[fhir_serialize_type = "complex"]
11022#[doc = "The second-tier service adjudications for payor added services."]
11023pub struct ExplanationOfBenefitAddItemDetail {
11024 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
11025 pub id: Option<String>,
11026 #[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 manageable, 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."]
11027 pub extension: Option<Vec<Box<Extension>>>,
11028 #[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 manageable, 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)."]
11029 pub modifierExtension: Option<Vec<Box<Extension>>>,
11030 #[doc = "When the value is a group code then this item collects a set of related claim details, otherwise this contains the product, service, drug or other billing code for the item."]
11031 pub productOrService: Box<CodeableConcept>,
11032 #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
11033 pub modifier: Option<Vec<Box<CodeableConcept>>>,
11034 #[doc = "The number of repetitions of a service or product."]
11035 pub quantity: Option<Box<Quantity>>,
11036 #[doc = "If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group."]
11037 pub unitPrice: Option<Box<Money>>,
11038 #[primitive]
11039 #[doc = "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount."]
11040 pub factor: Option<Box<FHIRDecimal>>,
11041 #[doc = "The quantity times the unit price for an additional service or product or charge."]
11042 pub net: Option<Box<Money>>,
11043 #[primitive]
11044 #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
11045 pub noteNumber: Option<Vec<Box<FHIRPositiveInt>>>,
11046 #[doc = "The adjudication results."]
11047 pub adjudication: Option<Vec<ExplanationOfBenefitItemAdjudication>>,
11048 #[doc = "The third-tier service adjudications for payor added services."]
11049 pub subDetail: Option<Vec<ExplanationOfBenefitAddItemDetailSubDetail>>,
11050}
11051#[derive(
11052 Clone,
11053 Reflect,
11054 Debug,
11055 Default,
11056 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11057 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11058)]
11059#[fhir_serialize_type = "complex"]
11060#[doc = "The first-tier service adjudications for payor added product or service lines."]
11061pub struct ExplanationOfBenefitAddItem {
11062 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
11063 pub id: Option<String>,
11064 #[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 manageable, 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."]
11065 pub extension: Option<Vec<Box<Extension>>>,
11066 #[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 manageable, 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)."]
11067 pub modifierExtension: Option<Vec<Box<Extension>>>,
11068 #[primitive]
11069 #[doc = "Claim items which this service line is intended to replace."]
11070 pub itemSequence: Option<Vec<Box<FHIRPositiveInt>>>,
11071 #[primitive]
11072 #[doc = "The sequence number of the details within the claim item which this line is intended to replace."]
11073 pub detailSequence: Option<Vec<Box<FHIRPositiveInt>>>,
11074 #[primitive]
11075 #[doc = "The sequence number of the sub-details woithin the details within the claim item which this line is intended to replace."]
11076 pub subDetailSequence: Option<Vec<Box<FHIRPositiveInt>>>,
11077 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
11078 #[doc = "The providers who are authorized for the services rendered to the patient."]
11079 pub provider: Option<Vec<Box<Reference>>>,
11080 #[doc = "When the value is a group code then this item collects a set of related claim details, otherwise this contains the product, service, drug or other billing code for the item."]
11081 pub productOrService: Box<CodeableConcept>,
11082 #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
11083 pub modifier: Option<Vec<Box<CodeableConcept>>>,
11084 #[doc = "Identifies the program under which this may be recovered."]
11085 pub programCode: Option<Vec<Box<CodeableConcept>>>,
11086 # [type_choice_variants (complex = ["servicedPeriod"] , primitive = ["servicedDate"])]
11087 #[doc = "The date or dates when the service or product was supplied, performed or completed."]
11088 pub serviced: Option<ExplanationOfBenefitAddItemServicedTypeChoice>,
11089 # [type_choice_variants (complex = ["locationCodeableConcept" , "locationAddress" , "locationReference"] , primitive = [])]
11090 #[doc = "Where the product or service was provided."]
11091 pub location: Option<ExplanationOfBenefitAddItemLocationTypeChoice>,
11092 #[doc = "The number of repetitions of a service or product."]
11093 pub quantity: Option<Box<Quantity>>,
11094 #[doc = "If the item is not a group then this is the fee for the product or service, otherwise this is the total of the fees for the details of the group."]
11095 pub unitPrice: Option<Box<Money>>,
11096 #[primitive]
11097 #[doc = "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount."]
11098 pub factor: Option<Box<FHIRDecimal>>,
11099 #[doc = "The quantity times the unit price for an additional service or product or charge."]
11100 pub net: Option<Box<Money>>,
11101 #[doc = "Physical service site on the patient (limb, tooth, etc.)."]
11102 pub bodySite: Option<Box<CodeableConcept>>,
11103 #[doc = "A region or surface of the bodySite, e.g. limb region or tooth surface(s)."]
11104 pub subSite: Option<Vec<Box<CodeableConcept>>>,
11105 #[primitive]
11106 #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
11107 pub noteNumber: Option<Vec<Box<FHIRPositiveInt>>>,
11108 #[doc = "The adjudication results."]
11109 pub adjudication: Option<Vec<ExplanationOfBenefitItemAdjudication>>,
11110 #[doc = "The second-tier service adjudications for payor added services."]
11111 pub detail: Option<Vec<ExplanationOfBenefitAddItemDetail>>,
11112}
11113#[derive(
11114 Clone,
11115 Reflect,
11116 Debug,
11117 Default,
11118 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11119 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11120)]
11121#[fhir_serialize_type = "complex"]
11122#[doc = "Categorized monetary totals for the adjudication."]
11123pub struct ExplanationOfBenefitTotal {
11124 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
11125 pub id: Option<String>,
11126 #[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 manageable, 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."]
11127 pub extension: Option<Vec<Box<Extension>>>,
11128 #[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 manageable, 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)."]
11129 pub modifierExtension: Option<Vec<Box<Extension>>>,
11130 #[doc = "A code to indicate the information type of this adjudication record. Information types may include: the value submitted, maximum values or percentages allowed or payable under the plan, amounts that the patient is responsible for in aggregate or pertaining to this item, amounts paid by other coverages, and the benefit payable for this item."]
11131 pub category: Box<CodeableConcept>,
11132 #[doc = "Monetary total amount associated with the category."]
11133 pub amount: Box<Money>,
11134}
11135#[derive(
11136 Clone,
11137 Reflect,
11138 Debug,
11139 Default,
11140 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11141 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11142)]
11143#[fhir_serialize_type = "complex"]
11144#[doc = "Payment details for the adjudication of the claim."]
11145pub struct ExplanationOfBenefitPayment {
11146 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
11147 pub id: Option<String>,
11148 #[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 manageable, 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."]
11149 pub extension: Option<Vec<Box<Extension>>>,
11150 #[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 manageable, 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)."]
11151 pub modifierExtension: Option<Vec<Box<Extension>>>,
11152 #[rename_field = "type"]
11153 #[doc = "Whether this represents partial or complete payment of the benefits payable."]
11154 pub type_: Option<Box<CodeableConcept>>,
11155 #[doc = "Total amount of all adjustments to this payment included in this transaction which are not related to this claim's adjudication."]
11156 pub adjustment: Option<Box<Money>>,
11157 #[doc = "Reason for the payment adjustment."]
11158 pub adjustmentReason: Option<Box<CodeableConcept>>,
11159 #[primitive]
11160 #[doc = "Estimated date the payment will be issued or the actual issue date of payment."]
11161 pub date: Option<Box<FHIRDate>>,
11162 #[doc = "Benefits payable less any payment adjustment."]
11163 pub amount: Option<Box<Money>>,
11164 #[rename_field = "identifier"]
11165 #[doc = "Issuer's unique identifier for the payment instrument."]
11166 pub identifier_: Option<Box<Identifier>>,
11167}
11168#[derive(
11169 Clone,
11170 Reflect,
11171 Debug,
11172 Default,
11173 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11174 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11175)]
11176#[fhir_serialize_type = "complex"]
11177#[doc = "A note that describes or explains adjudication results in a human readable form."]
11178pub struct ExplanationOfBenefitProcessNote {
11179 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
11180 pub id: Option<String>,
11181 #[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 manageable, 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."]
11182 pub extension: Option<Vec<Box<Extension>>>,
11183 #[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 manageable, 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)."]
11184 pub modifierExtension: Option<Vec<Box<Extension>>>,
11185 #[primitive]
11186 #[doc = "A number to uniquely identify a note entry."]
11187 pub number: Option<Box<FHIRPositiveInt>>,
11188 #[rename_field = "type"]
11189 #[primitive]
11190 #[doc = "The business purpose of the note text."]
11191 pub type_: Option<Box<terminology::NoteType>>,
11192 #[primitive]
11193 #[doc = "The explanation or description associated with the processing."]
11194 pub text: Option<Box<FHIRString>>,
11195 #[doc = "A code to define the language used in the text of the note."]
11196 pub language: Option<Box<CodeableConcept>>,
11197}
11198#[derive(
11199 Clone,
11200 Reflect,
11201 Debug,
11202 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11203 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11204)]
11205#[fhir_serialize_type = "typechoice"]
11206#[type_choice_field_name = "allowed"]
11207pub enum ExplanationOfBenefitBenefitBalanceFinancialAllowedTypeChoice {
11208 UnsignedInt(Box<FHIRUnsignedInt>),
11209 String(Box<FHIRString>),
11210 Money(Box<Money>),
11211}
11212impl Default for ExplanationOfBenefitBenefitBalanceFinancialAllowedTypeChoice {
11213 fn default() -> Self {
11214 ExplanationOfBenefitBenefitBalanceFinancialAllowedTypeChoice::UnsignedInt(Box::new(
11215 Default::default(),
11216 ))
11217 }
11218}
11219#[derive(
11220 Clone,
11221 Reflect,
11222 Debug,
11223 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11224 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11225)]
11226#[fhir_serialize_type = "typechoice"]
11227#[type_choice_field_name = "used"]
11228pub enum ExplanationOfBenefitBenefitBalanceFinancialUsedTypeChoice {
11229 UnsignedInt(Box<FHIRUnsignedInt>),
11230 Money(Box<Money>),
11231}
11232impl Default for ExplanationOfBenefitBenefitBalanceFinancialUsedTypeChoice {
11233 fn default() -> Self {
11234 ExplanationOfBenefitBenefitBalanceFinancialUsedTypeChoice::UnsignedInt(Box::new(
11235 Default::default(),
11236 ))
11237 }
11238}
11239#[derive(
11240 Clone,
11241 Reflect,
11242 Debug,
11243 Default,
11244 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11245 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11246)]
11247#[fhir_serialize_type = "complex"]
11248#[doc = "Benefits Used to date."]
11249pub struct ExplanationOfBenefitBenefitBalanceFinancial {
11250 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
11251 pub id: Option<String>,
11252 #[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 manageable, 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."]
11253 pub extension: Option<Vec<Box<Extension>>>,
11254 #[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 manageable, 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)."]
11255 pub modifierExtension: Option<Vec<Box<Extension>>>,
11256 #[rename_field = "type"]
11257 #[doc = "Classification of benefit being provided."]
11258 pub type_: Box<CodeableConcept>,
11259 # [type_choice_variants (complex = ["allowedMoney"] , primitive = ["allowedUnsignedInt" , "allowedString"])]
11260 #[doc = "The quantity of the benefit which is permitted under the coverage."]
11261 pub allowed: Option<ExplanationOfBenefitBenefitBalanceFinancialAllowedTypeChoice>,
11262 # [type_choice_variants (complex = ["usedMoney"] , primitive = ["usedUnsignedInt"])]
11263 #[doc = "The quantity of the benefit which have been consumed to date."]
11264 pub used: Option<ExplanationOfBenefitBenefitBalanceFinancialUsedTypeChoice>,
11265}
11266#[derive(
11267 Clone,
11268 Reflect,
11269 Debug,
11270 Default,
11271 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11272 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11273)]
11274#[fhir_serialize_type = "complex"]
11275#[doc = "Balance by Benefit Category."]
11276pub struct ExplanationOfBenefitBenefitBalance {
11277 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
11278 pub id: Option<String>,
11279 #[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 manageable, 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."]
11280 pub extension: Option<Vec<Box<Extension>>>,
11281 #[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 manageable, 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)."]
11282 pub modifierExtension: Option<Vec<Box<Extension>>>,
11283 #[doc = "Code to identify the general type of benefits under which products and services are provided."]
11284 pub category: Box<CodeableConcept>,
11285 #[primitive]
11286 #[doc = "True if the indicated class of service is excluded from the plan, missing or False indicates the product or service is included in the coverage."]
11287 pub excluded: Option<Box<FHIRBoolean>>,
11288 #[primitive]
11289 #[doc = "A short name or tag for the benefit."]
11290 pub name: Option<Box<FHIRString>>,
11291 #[primitive]
11292 #[doc = "A richer description of the benefit or services covered."]
11293 pub description: Option<Box<FHIRString>>,
11294 #[doc = "Is a flag to indicate whether the benefits refer to in-network providers or out-of-network providers."]
11295 pub network: Option<Box<CodeableConcept>>,
11296 #[doc = "Indicates if the benefits apply to an individual or to the family."]
11297 pub unit: Option<Box<CodeableConcept>>,
11298 #[doc = "The term or period of the values such as 'maximum lifetime benefit' or 'maximum annual visits'."]
11299 pub term: Option<Box<CodeableConcept>>,
11300 #[doc = "Benefits Used to date."]
11301 pub financial: Option<Vec<ExplanationOfBenefitBenefitBalanceFinancial>>,
11302}
11303#[derive(
11304 Clone,
11305 Reflect,
11306 Debug,
11307 Default,
11308 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11309 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11310)]
11311#[fhir_serialize_type = "resource"]
11312#[doc = "This resource provides: the claim details; adjudication details from the processing of a Claim; and optionally account balance information, for informing the subscriber of the benefits provided."]
11313pub struct ExplanationOfBenefit {
11314 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
11315 pub id: Option<String>,
11316 #[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."]
11317 pub meta: Option<Box<Meta>>,
11318 #[primitive]
11319 #[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."]
11320 pub implicitRules: Option<Box<FHIRUri>>,
11321 #[primitive]
11322 #[doc = "The base language in which the resource is written."]
11323 pub language: Option<Box<FHIRCode>>,
11324 #[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."]
11325 pub text: Option<Box<Narrative>>,
11326 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
11327 pub contained: Option<Vec<Box<Resource>>>,
11328 #[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 manageable, 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."]
11329 pub extension: Option<Vec<Box<Extension>>>,
11330 #[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 manageable, 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)."]
11331 pub modifierExtension: Option<Vec<Box<Extension>>>,
11332 #[rename_field = "identifier"]
11333 #[doc = "A unique identifier assigned to this explanation of benefit."]
11334 pub identifier_: Option<Vec<Box<Identifier>>>,
11335 #[primitive]
11336 #[doc = "The status of the resource instance."]
11337 pub status: Box<terminology::ExplanationofbenefitStatus>,
11338 #[rename_field = "type"]
11339 #[doc = "The category of claim, e.g. oral, pharmacy, vision, institutional, professional."]
11340 pub type_: Box<CodeableConcept>,
11341 #[doc = "A finer grained suite of claim type codes which may convey additional information such as Inpatient vs Outpatient and/or a specialty service."]
11342 pub subType: Option<Box<CodeableConcept>>,
11343 #[rename_field = "use"]
11344 #[primitive]
11345 #[doc = "A code to indicate whether the nature of the request is: to request adjudication of products and services previously rendered; or requesting authorization and adjudication for provision in the future; or requesting the non-binding adjudication of the listed products and services which could be provided in the future."]
11346 pub use_: Box<terminology::ClaimUse>,
11347 # [reference (targets = ["Patient"])]
11348 #[doc = "The party to whom the professional services and/or products have been supplied or are being considered and for whom actual for forecast reimbursement is sought."]
11349 pub patient: Box<Reference>,
11350 #[doc = "The period for which charges are being submitted."]
11351 pub billablePeriod: Option<Box<Period>>,
11352 #[primitive]
11353 #[doc = "The date this resource was created."]
11354 pub created: Box<FHIRDateTime>,
11355 # [reference (targets = ["Practitioner" , "PractitionerRole"])]
11356 #[doc = "Individual who created the claim, predetermination or preauthorization."]
11357 pub enterer: Option<Box<Reference>>,
11358 # [reference (targets = ["Organization"])]
11359 #[doc = "The party responsible for authorization, adjudication and reimbursement."]
11360 pub insurer: Box<Reference>,
11361 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
11362 #[doc = "The provider which is responsible for the claim, predetermination or preauthorization."]
11363 pub provider: Box<Reference>,
11364 #[doc = "The provider-required urgency of processing the request. Typical values include: stat, routine deferred."]
11365 pub priority: Option<Box<CodeableConcept>>,
11366 #[doc = "A code to indicate whether and for whom funds are to be reserved for future claims."]
11367 pub fundsReserveRequested: Option<Box<CodeableConcept>>,
11368 #[doc = "A code, used only on a response to a preauthorization, to indicate whether the benefits payable have been reserved and for whom."]
11369 pub fundsReserve: Option<Box<CodeableConcept>>,
11370 #[doc = "Other claims which are related to this claim such as prior submissions or claims for related services or for the same event."]
11371 pub related: Option<Vec<ExplanationOfBenefitRelated>>,
11372 # [reference (targets = ["MedicationRequest" , "VisionPrescription"])]
11373 #[doc = "Prescription to support the dispensing of pharmacy, device or vision products."]
11374 pub prescription: Option<Box<Reference>>,
11375 # [reference (targets = ["MedicationRequest"])]
11376 #[doc = "Original prescription which has been superseded by this prescription to support the dispensing of pharmacy services, medications or products."]
11377 pub originalPrescription: Option<Box<Reference>>,
11378 #[doc = "The party to be reimbursed for cost of the products and services according to the terms of the policy."]
11379 pub payee: Option<ExplanationOfBenefitPayee>,
11380 # [reference (targets = ["ServiceRequest"])]
11381 #[doc = "A reference to a referral resource."]
11382 pub referral: Option<Box<Reference>>,
11383 # [reference (targets = ["Location"])]
11384 #[doc = "Facility where the services were provided."]
11385 pub facility: Option<Box<Reference>>,
11386 # [reference (targets = ["Claim"])]
11387 #[doc = "The business identifier for the instance of the adjudication request: claim predetermination or preauthorization."]
11388 pub claim: Option<Box<Reference>>,
11389 # [reference (targets = ["ClaimResponse"])]
11390 #[doc = "The business identifier for the instance of the adjudication response: claim, predetermination or preauthorization response."]
11391 pub claimResponse: Option<Box<Reference>>,
11392 #[primitive]
11393 #[doc = "The outcome of the claim, predetermination, or preauthorization processing."]
11394 pub outcome: Box<terminology::RemittanceOutcome>,
11395 #[primitive]
11396 #[doc = "A human readable description of the status of the adjudication."]
11397 pub disposition: Option<Box<FHIRString>>,
11398 #[primitive]
11399 #[doc = "Reference from the Insurer which is used in later communications which refers to this adjudication."]
11400 pub preAuthRef: Option<Vec<Box<FHIRString>>>,
11401 #[doc = "The timeframe during which the supplied preauthorization reference may be quoted on claims to obtain the adjudication as provided."]
11402 pub preAuthRefPeriod: Option<Vec<Box<Period>>>,
11403 #[doc = "The members of the team who provided the products and services."]
11404 pub careTeam: Option<Vec<ExplanationOfBenefitCareTeam>>,
11405 #[doc = "Additional information codes regarding exceptions, special considerations, the condition, situation, prior or concurrent issues."]
11406 pub supportingInfo: Option<Vec<ExplanationOfBenefitSupportingInfo>>,
11407 #[doc = "Information about diagnoses relevant to the claim items."]
11408 pub diagnosis: Option<Vec<ExplanationOfBenefitDiagnosis>>,
11409 #[doc = "Procedures performed on the patient relevant to the billing items with the claim."]
11410 pub procedure: Option<Vec<ExplanationOfBenefitProcedure>>,
11411 #[primitive]
11412 #[doc = "This indicates the relative order of a series of EOBs related to different coverages for the same suite of services."]
11413 pub precedence: Option<Box<FHIRPositiveInt>>,
11414 #[cardinality(min = 1usize)]
11415 #[doc = "Financial instruments for reimbursement for the health care products and services specified on the claim."]
11416 pub insurance: Vec<ExplanationOfBenefitInsurance>,
11417 #[doc = "Details of a accident which resulted in injuries which required the products and services listed in the claim."]
11418 pub accident: Option<ExplanationOfBenefitAccident>,
11419 #[doc = "A claim line. Either a simple (a product or service) or a 'group' of details which can also be a simple items or groups of sub-details."]
11420 pub item: Option<Vec<ExplanationOfBenefitItem>>,
11421 #[doc = "The first-tier service adjudications for payor added product or service lines."]
11422 pub addItem: Option<Vec<ExplanationOfBenefitAddItem>>,
11423 #[doc = "The adjudication results which are presented at the header level rather than at the line-item or add-item levels."]
11424 pub adjudication: Option<Vec<ExplanationOfBenefitItemAdjudication>>,
11425 #[doc = "Categorized monetary totals for the adjudication."]
11426 pub total: Option<Vec<ExplanationOfBenefitTotal>>,
11427 #[doc = "Payment details for the adjudication of the claim."]
11428 pub payment: Option<ExplanationOfBenefitPayment>,
11429 #[doc = "A code for the form to be used for printing the content."]
11430 pub formCode: Option<Box<CodeableConcept>>,
11431 #[doc = "The actual form, by reference or inclusion, for printing the content or an EOB."]
11432 pub form: Option<Box<Attachment>>,
11433 #[doc = "A note that describes or explains adjudication results in a human readable form."]
11434 pub processNote: Option<Vec<ExplanationOfBenefitProcessNote>>,
11435 #[doc = "The term of the benefits documented in this response."]
11436 pub benefitPeriod: Option<Box<Period>>,
11437 #[doc = "Balance by Benefit Category."]
11438 pub benefitBalance: Option<Vec<ExplanationOfBenefitBenefitBalance>>,
11439}
11440#[derive(
11441 Clone,
11442 Reflect,
11443 Debug,
11444 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11445 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11446)]
11447#[fhir_serialize_type = "typechoice"]
11448#[type_choice_field_name = "born"]
11449pub enum FamilyMemberHistoryBornTypeChoice {
11450 Period(Box<Period>),
11451 Date(Box<FHIRDate>),
11452 String(Box<FHIRString>),
11453}
11454impl Default for FamilyMemberHistoryBornTypeChoice {
11455 fn default() -> Self {
11456 FamilyMemberHistoryBornTypeChoice::Period(Box::new(Default::default()))
11457 }
11458}
11459#[derive(
11460 Clone,
11461 Reflect,
11462 Debug,
11463 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11464 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11465)]
11466#[fhir_serialize_type = "typechoice"]
11467#[type_choice_field_name = "age"]
11468pub enum FamilyMemberHistoryAgeTypeChoice {
11469 Age(Box<Age>),
11470 Range(Box<Range>),
11471 String(Box<FHIRString>),
11472}
11473impl Default for FamilyMemberHistoryAgeTypeChoice {
11474 fn default() -> Self {
11475 FamilyMemberHistoryAgeTypeChoice::Age(Box::new(Default::default()))
11476 }
11477}
11478#[derive(
11479 Clone,
11480 Reflect,
11481 Debug,
11482 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11483 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11484)]
11485#[fhir_serialize_type = "typechoice"]
11486#[type_choice_field_name = "deceased"]
11487pub enum FamilyMemberHistoryDeceasedTypeChoice {
11488 Boolean(Box<FHIRBoolean>),
11489 Age(Box<Age>),
11490 Range(Box<Range>),
11491 Date(Box<FHIRDate>),
11492 String(Box<FHIRString>),
11493}
11494impl Default for FamilyMemberHistoryDeceasedTypeChoice {
11495 fn default() -> Self {
11496 FamilyMemberHistoryDeceasedTypeChoice::Boolean(Box::new(Default::default()))
11497 }
11498}
11499#[derive(
11500 Clone,
11501 Reflect,
11502 Debug,
11503 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11504 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11505)]
11506#[fhir_serialize_type = "typechoice"]
11507#[type_choice_field_name = "onset"]
11508pub enum FamilyMemberHistoryConditionOnsetTypeChoice {
11509 Age(Box<Age>),
11510 Range(Box<Range>),
11511 Period(Box<Period>),
11512 String(Box<FHIRString>),
11513}
11514impl Default for FamilyMemberHistoryConditionOnsetTypeChoice {
11515 fn default() -> Self {
11516 FamilyMemberHistoryConditionOnsetTypeChoice::Age(Box::new(Default::default()))
11517 }
11518}
11519#[derive(
11520 Clone,
11521 Reflect,
11522 Debug,
11523 Default,
11524 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11525 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11526)]
11527#[fhir_serialize_type = "complex"]
11528#[doc = "The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition."]
11529pub struct FamilyMemberHistoryCondition {
11530 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
11531 pub id: Option<String>,
11532 #[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 manageable, 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."]
11533 pub extension: Option<Vec<Box<Extension>>>,
11534 #[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 manageable, 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)."]
11535 pub modifierExtension: Option<Vec<Box<Extension>>>,
11536 #[doc = "The actual condition specified. Could be a coded condition (like MI or Diabetes) or a less specific string like 'cancer' depending on how much is known about the condition and the capabilities of the creating system."]
11537 pub code: Box<CodeableConcept>,
11538 #[doc = "Indicates what happened following the condition. If the condition resulted in death, deceased date is captured on the relation."]
11539 pub outcome: Option<Box<CodeableConcept>>,
11540 #[primitive]
11541 #[doc = "This condition contributed to the cause of death of the related person. If contributedToDeath is not populated, then it is unknown."]
11542 pub contributedToDeath: Option<Box<FHIRBoolean>>,
11543 # [type_choice_variants (complex = ["onsetAge" , "onsetRange" , "onsetPeriod"] , primitive = ["onsetString"])]
11544 #[doc = "Either the age of onset, range of approximate age or descriptive string can be recorded. For conditions with multiple occurrences, this describes the first known occurrence."]
11545 pub onset: Option<FamilyMemberHistoryConditionOnsetTypeChoice>,
11546 #[doc = "An area where general notes can be placed about this specific condition."]
11547 pub note: Option<Vec<Box<Annotation>>>,
11548}
11549#[derive(
11550 Clone,
11551 Reflect,
11552 Debug,
11553 Default,
11554 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11555 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11556)]
11557#[fhir_serialize_type = "resource"]
11558#[doc = "Significant health conditions for a person related to the patient relevant in the context of care for the patient."]
11559pub struct FamilyMemberHistory {
11560 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
11561 pub id: Option<String>,
11562 #[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."]
11563 pub meta: Option<Box<Meta>>,
11564 #[primitive]
11565 #[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."]
11566 pub implicitRules: Option<Box<FHIRUri>>,
11567 #[primitive]
11568 #[doc = "The base language in which the resource is written."]
11569 pub language: Option<Box<FHIRCode>>,
11570 #[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."]
11571 pub text: Option<Box<Narrative>>,
11572 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
11573 pub contained: Option<Vec<Box<Resource>>>,
11574 #[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 manageable, 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."]
11575 pub extension: Option<Vec<Box<Extension>>>,
11576 #[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 manageable, 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)."]
11577 pub modifierExtension: Option<Vec<Box<Extension>>>,
11578 #[rename_field = "identifier"]
11579 #[doc = "Business identifiers assigned to this family member history by the performer or other systems which remain constant as the resource is updated and propagates from server to server."]
11580 pub identifier_: Option<Vec<Box<Identifier>>>,
11581 #[primitive]
11582 #[doc = "The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this FamilyMemberHistory."]
11583 pub instantiatesCanonical: Option<Vec<Box<FHIRCanonical>>>,
11584 #[primitive]
11585 #[doc = "The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this FamilyMemberHistory."]
11586 pub instantiatesUri: Option<Vec<Box<FHIRUri>>>,
11587 #[primitive]
11588 #[doc = "A code specifying the status of the record of the family history of a specific family member."]
11589 pub status: Box<terminology::HistoryStatus>,
11590 #[doc = "Describes why the family member's history is not available."]
11591 pub dataAbsentReason: Option<Box<CodeableConcept>>,
11592 # [reference (targets = ["Patient"])]
11593 #[doc = "The person who this history concerns."]
11594 pub patient: Box<Reference>,
11595 #[primitive]
11596 #[doc = "The date (and possibly time) when the family member history was recorded or last updated."]
11597 pub date: Option<Box<FHIRDateTime>>,
11598 #[primitive]
11599 #[doc = "This will either be a name or a description; e.g. \"Aunt Susan\", \"my cousin with the red hair\"."]
11600 pub name: Option<Box<FHIRString>>,
11601 #[doc = "The type of relationship this person has to the patient (father, mother, brother etc.)."]
11602 pub relationship: Box<CodeableConcept>,
11603 #[doc = "The birth sex of the family member."]
11604 pub sex: Option<Box<CodeableConcept>>,
11605 # [type_choice_variants (complex = ["bornPeriod"] , primitive = ["bornDate" , "bornString"])]
11606 #[doc = "The actual or approximate date of birth of the relative."]
11607 pub born: Option<FamilyMemberHistoryBornTypeChoice>,
11608 # [type_choice_variants (complex = ["ageAge" , "ageRange"] , primitive = ["ageString"])]
11609 #[doc = "The age of the relative at the time the family member history is recorded."]
11610 pub age: Option<FamilyMemberHistoryAgeTypeChoice>,
11611 #[primitive]
11612 #[doc = "If true, indicates that the age value specified is an estimated value."]
11613 pub estimatedAge: Option<Box<FHIRBoolean>>,
11614 # [type_choice_variants (complex = ["deceasedAge" , "deceasedRange"] , primitive = ["deceasedBoolean" , "deceasedDate" , "deceasedString"])]
11615 #[doc = "Deceased flag or the actual or approximate age of the relative at the time of death for the family member history record."]
11616 pub deceased: Option<FamilyMemberHistoryDeceasedTypeChoice>,
11617 #[doc = "Describes why the family member history occurred in coded or textual form."]
11618 pub reasonCode: Option<Vec<Box<CodeableConcept>>>,
11619 # [reference (targets = ["Condition" , "Observation" , "AllergyIntolerance" , "QuestionnaireResponse" , "DiagnosticReport" , "DocumentReference"])]
11620 #[doc = "Indicates a Condition, Observation, AllergyIntolerance, or QuestionnaireResponse that justifies this family member history event."]
11621 pub reasonReference: Option<Vec<Box<Reference>>>,
11622 #[doc = "This property allows a non condition-specific note to the made about the related person. Ideally, the note would be in the condition property, but this is not always possible."]
11623 pub note: Option<Vec<Box<Annotation>>>,
11624 #[doc = "The significant Conditions (or condition) that the family member had. This is a repeating section to allow a system to represent more than one condition per resource, though there is nothing stopping multiple resources - one per condition."]
11625 pub condition: Option<Vec<FamilyMemberHistoryCondition>>,
11626}
11627#[derive(
11628 Clone,
11629 Reflect,
11630 Debug,
11631 Default,
11632 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11633 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11634)]
11635#[fhir_serialize_type = "resource"]
11636#[doc = "Prospective warnings of potential issues when providing care to the patient."]
11637pub struct Flag {
11638 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
11639 pub id: Option<String>,
11640 #[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."]
11641 pub meta: Option<Box<Meta>>,
11642 #[primitive]
11643 #[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."]
11644 pub implicitRules: Option<Box<FHIRUri>>,
11645 #[primitive]
11646 #[doc = "The base language in which the resource is written."]
11647 pub language: Option<Box<FHIRCode>>,
11648 #[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."]
11649 pub text: Option<Box<Narrative>>,
11650 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
11651 pub contained: Option<Vec<Box<Resource>>>,
11652 #[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 manageable, 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."]
11653 pub extension: Option<Vec<Box<Extension>>>,
11654 #[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 manageable, 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)."]
11655 pub modifierExtension: Option<Vec<Box<Extension>>>,
11656 #[rename_field = "identifier"]
11657 #[doc = "Business identifiers assigned to this flag by the performer or other systems which remain constant as the resource is updated and propagates from server to server."]
11658 pub identifier_: Option<Vec<Box<Identifier>>>,
11659 #[primitive]
11660 #[doc = "Supports basic workflow."]
11661 pub status: Box<terminology::FlagStatus>,
11662 #[doc = "Allows a flag to be divided into different categories like clinical, administrative etc. Intended to be used as a means of filtering which flags are displayed to particular user or in a given context."]
11663 pub category: Option<Vec<Box<CodeableConcept>>>,
11664 #[doc = "The coded value or textual component of the flag to display to the user."]
11665 pub code: Box<CodeableConcept>,
11666 # [reference (targets = ["Patient" , "Location" , "Group" , "Organization" , "Practitioner" , "PlanDefinition" , "Medication" , "Procedure"])]
11667 #[doc = "The patient, location, group, organization, or practitioner etc. this is about record this flag is associated with."]
11668 pub subject: Box<Reference>,
11669 #[doc = "The period of time from the activation of the flag to inactivation of the flag. If the flag is active, the end of the period should be unspecified."]
11670 pub period: Option<Box<Period>>,
11671 # [reference (targets = ["Encounter"])]
11672 #[doc = "This alert is only relevant during the encounter."]
11673 pub encounter: Option<Box<Reference>>,
11674 # [reference (targets = ["Device" , "Organization" , "Patient" , "Practitioner" , "PractitionerRole"])]
11675 #[doc = "The person, organization or device that created the flag."]
11676 pub author: Option<Box<Reference>>,
11677}
11678#[derive(
11679 Clone,
11680 Reflect,
11681 Debug,
11682 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11683 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11684)]
11685#[fhir_serialize_type = "typechoice"]
11686#[type_choice_field_name = "start"]
11687pub enum GoalStartTypeChoice {
11688 Date(Box<FHIRDate>),
11689 CodeableConcept(Box<CodeableConcept>),
11690}
11691impl Default for GoalStartTypeChoice {
11692 fn default() -> Self {
11693 GoalStartTypeChoice::Date(Box::new(Default::default()))
11694 }
11695}
11696#[derive(
11697 Clone,
11698 Reflect,
11699 Debug,
11700 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11701 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11702)]
11703#[fhir_serialize_type = "typechoice"]
11704#[type_choice_field_name = "detail"]
11705pub enum GoalTargetDetailTypeChoice {
11706 Quantity(Box<Quantity>),
11707 Range(Box<Range>),
11708 CodeableConcept(Box<CodeableConcept>),
11709 String(Box<FHIRString>),
11710 Boolean(Box<FHIRBoolean>),
11711 Integer(Box<FHIRInteger>),
11712 Ratio(Box<Ratio>),
11713}
11714impl Default for GoalTargetDetailTypeChoice {
11715 fn default() -> Self {
11716 GoalTargetDetailTypeChoice::Quantity(Box::new(Default::default()))
11717 }
11718}
11719#[derive(
11720 Clone,
11721 Reflect,
11722 Debug,
11723 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11724 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11725)]
11726#[fhir_serialize_type = "typechoice"]
11727#[type_choice_field_name = "due"]
11728pub enum GoalTargetDueTypeChoice {
11729 Date(Box<FHIRDate>),
11730 Duration(Box<Duration>),
11731}
11732impl Default for GoalTargetDueTypeChoice {
11733 fn default() -> Self {
11734 GoalTargetDueTypeChoice::Date(Box::new(Default::default()))
11735 }
11736}
11737#[derive(
11738 Clone,
11739 Reflect,
11740 Debug,
11741 Default,
11742 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11743 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11744)]
11745#[fhir_serialize_type = "complex"]
11746#[doc = "Indicates what should be done by when."]
11747pub struct GoalTarget {
11748 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
11749 pub id: Option<String>,
11750 #[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 manageable, 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."]
11751 pub extension: Option<Vec<Box<Extension>>>,
11752 #[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 manageable, 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)."]
11753 pub modifierExtension: Option<Vec<Box<Extension>>>,
11754 #[doc = "The parameter whose value is being tracked, e.g. body weight, blood pressure, or hemoglobin A1c level."]
11755 pub measure: Option<Box<CodeableConcept>>,
11756 # [type_choice_variants (complex = ["detailQuantity" , "detailRange" , "detailCodeableConcept" , "detailRatio"] , primitive = ["detailString" , "detailBoolean" , "detailInteger"])]
11757 #[doc = "The target value of the focus to be achieved to signify the fulfillment of the goal, e.g. 150 pounds, 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any focus value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any focus value at or above the low value."]
11758 pub detail: Option<GoalTargetDetailTypeChoice>,
11759 # [type_choice_variants (complex = ["dueDuration"] , primitive = ["dueDate"])]
11760 #[doc = "Indicates either the date or the duration after start by which the goal should be met."]
11761 pub due: Option<GoalTargetDueTypeChoice>,
11762}
11763#[derive(
11764 Clone,
11765 Reflect,
11766 Debug,
11767 Default,
11768 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11769 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11770)]
11771#[fhir_serialize_type = "resource"]
11772#[doc = "Describes the intended objective(s) for a patient, group or organization care, for example, weight loss, restoring an activity of daily living, obtaining herd immunity via immunization, meeting a process improvement objective, etc."]
11773pub struct Goal {
11774 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
11775 pub id: Option<String>,
11776 #[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."]
11777 pub meta: Option<Box<Meta>>,
11778 #[primitive]
11779 #[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."]
11780 pub implicitRules: Option<Box<FHIRUri>>,
11781 #[primitive]
11782 #[doc = "The base language in which the resource is written."]
11783 pub language: Option<Box<FHIRCode>>,
11784 #[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."]
11785 pub text: Option<Box<Narrative>>,
11786 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
11787 pub contained: Option<Vec<Box<Resource>>>,
11788 #[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 manageable, 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."]
11789 pub extension: Option<Vec<Box<Extension>>>,
11790 #[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 manageable, 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)."]
11791 pub modifierExtension: Option<Vec<Box<Extension>>>,
11792 #[rename_field = "identifier"]
11793 #[doc = "Business identifiers assigned to this goal by the performer or other systems which remain constant as the resource is updated and propagates from server to server."]
11794 pub identifier_: Option<Vec<Box<Identifier>>>,
11795 #[primitive]
11796 #[doc = "The state of the goal throughout its lifecycle."]
11797 pub lifecycleStatus: Box<terminology::GoalStatus>,
11798 #[doc = "Describes the progression, or lack thereof, towards the goal against the target."]
11799 pub achievementStatus: Option<Box<CodeableConcept>>,
11800 #[doc = "Indicates a category the goal falls within."]
11801 pub category: Option<Vec<Box<CodeableConcept>>>,
11802 #[doc = "Identifies the mutually agreed level of importance associated with reaching/sustaining the goal."]
11803 pub priority: Option<Box<CodeableConcept>>,
11804 #[doc = "Human-readable and/or coded description of a specific desired objective of care, such as \"control blood pressure\" or \"negotiate an obstacle course\" or \"dance with child at wedding\"."]
11805 pub description: Box<CodeableConcept>,
11806 # [reference (targets = ["Patient" , "Group" , "Organization"])]
11807 #[doc = "Identifies the patient, group or organization for whom the goal is being established."]
11808 pub subject: Box<Reference>,
11809 # [type_choice_variants (complex = ["startCodeableConcept"] , primitive = ["startDate"])]
11810 #[doc = "The date or event after which the goal should begin being pursued."]
11811 pub start: Option<GoalStartTypeChoice>,
11812 #[doc = "Indicates what should be done by when."]
11813 pub target: Option<Vec<GoalTarget>>,
11814 #[primitive]
11815 #[doc = "Identifies when the current status. I.e. When initially created, when achieved, when cancelled, etc."]
11816 pub statusDate: Option<Box<FHIRDate>>,
11817 #[primitive]
11818 #[doc = "Captures the reason for the current status."]
11819 pub statusReason: Option<Box<FHIRString>>,
11820 # [reference (targets = ["Patient" , "Practitioner" , "PractitionerRole" , "RelatedPerson"])]
11821 #[doc = "Indicates whose goal this is - patient goal, practitioner goal, etc."]
11822 pub expressedBy: Option<Box<Reference>>,
11823 # [reference (targets = ["Condition" , "Observation" , "MedicationStatement" , "NutritionOrder" , "ServiceRequest" , "RiskAssessment"])]
11824 #[doc = "The identified conditions and other health record elements that are intended to be addressed by the goal."]
11825 pub addresses: Option<Vec<Box<Reference>>>,
11826 #[doc = "Any comments related to the goal."]
11827 pub note: Option<Vec<Box<Annotation>>>,
11828 #[doc = "Identifies the change (or lack of change) at the point when the status of the goal is assessed."]
11829 pub outcomeCode: Option<Vec<Box<CodeableConcept>>>,
11830 # [reference (targets = ["Observation"])]
11831 #[doc = "Details of what's changed (or not changed)."]
11832 pub outcomeReference: Option<Vec<Box<Reference>>>,
11833}
11834#[derive(
11835 Clone,
11836 Reflect,
11837 Debug,
11838 Default,
11839 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11840 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11841)]
11842#[fhir_serialize_type = "complex"]
11843#[doc = "Compartment Consistency Rules."]
11844pub struct GraphDefinitionLinkTargetCompartment {
11845 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
11846 pub id: Option<String>,
11847 #[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 manageable, 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."]
11848 pub extension: Option<Vec<Box<Extension>>>,
11849 #[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 manageable, 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)."]
11850 pub modifierExtension: Option<Vec<Box<Extension>>>,
11851 #[rename_field = "use"]
11852 #[primitive]
11853 #[doc = "Defines how the compartment rule is used - whether it it is used to test whether resources are subject to the rule, or whether it is a rule that must be followed."]
11854 pub use_: Box<terminology::GraphCompartmentUse>,
11855 #[primitive]
11856 #[doc = "Identifies the compartment."]
11857 pub code: Box<terminology::CompartmentType>,
11858 #[primitive]
11859 #[doc = "identical | matching | different | no-rule | custom."]
11860 pub rule: Box<terminology::GraphCompartmentRule>,
11861 #[primitive]
11862 #[doc = "Custom rule, as a FHIRPath expression."]
11863 pub expression: Option<Box<FHIRString>>,
11864 #[primitive]
11865 #[doc = "Documentation for FHIRPath expression."]
11866 pub description: Option<Box<FHIRString>>,
11867}
11868#[derive(
11869 Clone,
11870 Reflect,
11871 Debug,
11872 Default,
11873 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11874 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11875)]
11876#[fhir_serialize_type = "complex"]
11877#[doc = "Potential target for the link."]
11878pub struct GraphDefinitionLinkTarget {
11879 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
11880 pub id: Option<String>,
11881 #[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 manageable, 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."]
11882 pub extension: Option<Vec<Box<Extension>>>,
11883 #[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 manageable, 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)."]
11884 pub modifierExtension: Option<Vec<Box<Extension>>>,
11885 #[rename_field = "type"]
11886 #[primitive]
11887 #[doc = "Type of resource this link refers to."]
11888 pub type_: Box<terminology::ResourceTypes>,
11889 #[primitive]
11890 #[doc = "A set of parameters to look up."]
11891 pub params: Option<Box<FHIRString>>,
11892 #[primitive]
11893 #[doc = "Profile for the target resource."]
11894 pub profile: Option<Box<FHIRCanonical>>,
11895 #[doc = "Compartment Consistency Rules."]
11896 pub compartment: Option<Vec<GraphDefinitionLinkTargetCompartment>>,
11897 #[doc = "Additional links from target resource."]
11898 pub link: Option<Vec<GraphDefinitionLink>>,
11899}
11900#[derive(
11901 Clone,
11902 Reflect,
11903 Debug,
11904 Default,
11905 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11906 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11907)]
11908#[fhir_serialize_type = "complex"]
11909#[doc = "Links this graph makes rules about."]
11910pub struct GraphDefinitionLink {
11911 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
11912 pub id: Option<String>,
11913 #[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 manageable, 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."]
11914 pub extension: Option<Vec<Box<Extension>>>,
11915 #[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 manageable, 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)."]
11916 pub modifierExtension: Option<Vec<Box<Extension>>>,
11917 #[primitive]
11918 #[doc = "A FHIR expression that identifies one of FHIR References to other resources."]
11919 pub path: Option<Box<FHIRString>>,
11920 #[primitive]
11921 #[doc = "Which slice (if profiled)."]
11922 pub sliceName: Option<Box<FHIRString>>,
11923 #[primitive]
11924 #[doc = "Minimum occurrences for this link."]
11925 pub min: Option<Box<FHIRInteger>>,
11926 #[primitive]
11927 #[doc = "Maximum occurrences for this link."]
11928 pub max: Option<Box<FHIRString>>,
11929 #[primitive]
11930 #[doc = "Information about why this link is of interest in this graph definition."]
11931 pub description: Option<Box<FHIRString>>,
11932 #[doc = "Potential target for the link."]
11933 pub target: Option<Vec<GraphDefinitionLinkTarget>>,
11934}
11935#[derive(
11936 Clone,
11937 Reflect,
11938 Debug,
11939 Default,
11940 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
11941 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
11942)]
11943#[fhir_serialize_type = "resource"]
11944#[doc = "A formal computable definition of a graph of resources - that is, a coherent set of resources that form a graph by following references. The Graph Definition resource defines a set and makes rules about the set."]
11945pub struct GraphDefinition {
11946 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
11947 pub id: Option<String>,
11948 #[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."]
11949 pub meta: Option<Box<Meta>>,
11950 #[primitive]
11951 #[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."]
11952 pub implicitRules: Option<Box<FHIRUri>>,
11953 #[primitive]
11954 #[doc = "The base language in which the resource is written."]
11955 pub language: Option<Box<FHIRCode>>,
11956 #[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."]
11957 pub text: Option<Box<Narrative>>,
11958 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
11959 pub contained: Option<Vec<Box<Resource>>>,
11960 #[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 manageable, 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."]
11961 pub extension: Option<Vec<Box<Extension>>>,
11962 #[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 manageable, 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)."]
11963 pub modifierExtension: Option<Vec<Box<Extension>>>,
11964 #[primitive]
11965 #[doc = "An absolute URI that is used to identify this graph definition 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 at which an authoritative instance of this graph definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the graph definition is stored on different servers."]
11966 pub url: Option<Box<FHIRUri>>,
11967 #[primitive]
11968 #[doc = "The identifier that is used to identify this version of the graph definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the graph definition 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."]
11969 pub version: Option<Box<FHIRString>>,
11970 #[primitive]
11971 #[doc = "A natural language name identifying the graph definition. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
11972 pub name: Box<FHIRString>,
11973 #[primitive]
11974 #[doc = "The status of this graph definition. Enables tracking the life-cycle of the content."]
11975 pub status: Box<terminology::PublicationStatus>,
11976 #[primitive]
11977 #[doc = "A Boolean value to indicate that this graph definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
11978 pub experimental: Option<Box<FHIRBoolean>>,
11979 #[primitive]
11980 #[doc = "The date (and optionally time) when the graph definition was published. 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 graph definition changes."]
11981 pub date: Option<Box<FHIRDateTime>>,
11982 #[primitive]
11983 #[doc = "The name of the organization or individual that published the graph definition."]
11984 pub publisher: Option<Box<FHIRString>>,
11985 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
11986 pub contact: Option<Vec<Box<ContactDetail>>>,
11987 #[primitive]
11988 #[doc = "A free text natural language description of the graph definition from a consumer's perspective."]
11989 pub description: Option<Box<FHIRMarkdown>>,
11990 #[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 graph definition instances."]
11991 pub useContext: Option<Vec<Box<UsageContext>>>,
11992 #[doc = "A legal or geographic region in which the graph definition is intended to be used."]
11993 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
11994 #[primitive]
11995 #[doc = "Explanation of why this graph definition is needed and why it has been designed as it has."]
11996 pub purpose: Option<Box<FHIRMarkdown>>,
11997 #[primitive]
11998 #[doc = "The type of FHIR resource at which instances of this graph start."]
11999 pub start: Box<terminology::ResourceTypes>,
12000 #[primitive]
12001 #[doc = "The profile that describes the use of the base resource."]
12002 pub profile: Option<Box<FHIRCanonical>>,
12003 #[doc = "Links this graph makes rules about."]
12004 pub link: Option<Vec<GraphDefinitionLink>>,
12005}
12006#[derive(
12007 Clone,
12008 Reflect,
12009 Debug,
12010 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12011 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12012)]
12013#[fhir_serialize_type = "typechoice"]
12014#[type_choice_field_name = "value"]
12015pub enum GroupCharacteristicValueTypeChoice {
12016 CodeableConcept(Box<CodeableConcept>),
12017 Boolean(Box<FHIRBoolean>),
12018 Quantity(Box<Quantity>),
12019 Range(Box<Range>),
12020 Reference(Box<Reference>),
12021}
12022impl Default for GroupCharacteristicValueTypeChoice {
12023 fn default() -> Self {
12024 GroupCharacteristicValueTypeChoice::CodeableConcept(Box::new(Default::default()))
12025 }
12026}
12027#[derive(
12028 Clone,
12029 Reflect,
12030 Debug,
12031 Default,
12032 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12033 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12034)]
12035#[fhir_serialize_type = "complex"]
12036#[doc = "Identifies traits whose presence r absence is shared by members of the group."]
12037pub struct GroupCharacteristic {
12038 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
12039 pub id: Option<String>,
12040 #[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 manageable, 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."]
12041 pub extension: Option<Vec<Box<Extension>>>,
12042 #[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 manageable, 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)."]
12043 pub modifierExtension: Option<Vec<Box<Extension>>>,
12044 #[doc = "A code that identifies the kind of trait being asserted."]
12045 pub code: Box<CodeableConcept>,
12046 # [type_choice_variants (complex = ["valueCodeableConcept" , "valueQuantity" , "valueRange" , "valueReference"] , primitive = ["valueBoolean"])]
12047 #[doc = "The value of the trait that holds (or does not hold - see 'exclude') for members of the group."]
12048 pub value: GroupCharacteristicValueTypeChoice,
12049 #[primitive]
12050 #[doc = "If true, indicates the characteristic is one that is NOT held by members of the group."]
12051 pub exclude: Box<FHIRBoolean>,
12052 #[doc = "The period over which the characteristic is tested; e.g. the patient had an operation during the month of June."]
12053 pub period: Option<Box<Period>>,
12054}
12055#[derive(
12056 Clone,
12057 Reflect,
12058 Debug,
12059 Default,
12060 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12061 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12062)]
12063#[fhir_serialize_type = "complex"]
12064#[doc = "Identifies the resource instances that are members of the group."]
12065pub struct GroupMember {
12066 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
12067 pub id: Option<String>,
12068 #[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 manageable, 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."]
12069 pub extension: Option<Vec<Box<Extension>>>,
12070 #[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 manageable, 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)."]
12071 pub modifierExtension: Option<Vec<Box<Extension>>>,
12072 # [reference (targets = ["Patient" , "Practitioner" , "PractitionerRole" , "Device" , "Medication" , "Substance" , "Group"])]
12073 #[doc = "A reference to the entity that is a member of the group. Must be consistent with Group.type. If the entity is another group, then the type must be the same."]
12074 pub entity: Box<Reference>,
12075 #[doc = "The period that the member was in the group, if known."]
12076 pub period: Option<Box<Period>>,
12077 #[primitive]
12078 #[doc = "A flag to indicate that the member is no longer in the group, but previously may have been a member."]
12079 pub inactive: Option<Box<FHIRBoolean>>,
12080}
12081#[derive(
12082 Clone,
12083 Reflect,
12084 Debug,
12085 Default,
12086 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12087 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12088)]
12089#[fhir_serialize_type = "resource"]
12090#[doc = "Represents a defined collection of entities that may be discussed or acted upon collectively but which are not expected to act collectively, and are not formally or legally recognized; i.e. a collection of entities that isn't an Organization."]
12091pub struct Group {
12092 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
12093 pub id: Option<String>,
12094 #[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."]
12095 pub meta: Option<Box<Meta>>,
12096 #[primitive]
12097 #[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."]
12098 pub implicitRules: Option<Box<FHIRUri>>,
12099 #[primitive]
12100 #[doc = "The base language in which the resource is written."]
12101 pub language: Option<Box<FHIRCode>>,
12102 #[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."]
12103 pub text: Option<Box<Narrative>>,
12104 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
12105 pub contained: Option<Vec<Box<Resource>>>,
12106 #[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 manageable, 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."]
12107 pub extension: Option<Vec<Box<Extension>>>,
12108 #[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 manageable, 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)."]
12109 pub modifierExtension: Option<Vec<Box<Extension>>>,
12110 #[rename_field = "identifier"]
12111 #[doc = "A unique business identifier for this group."]
12112 pub identifier_: Option<Vec<Box<Identifier>>>,
12113 #[primitive]
12114 #[doc = "Indicates whether the record for the group is available for use or is merely being retained for historical purposes."]
12115 pub active: Option<Box<FHIRBoolean>>,
12116 #[rename_field = "type"]
12117 #[primitive]
12118 #[doc = "Identifies the broad classification of the kind of resources the group includes."]
12119 pub type_: Box<terminology::GroupType>,
12120 #[primitive]
12121 #[doc = "If true, indicates that the resource refers to a specific group of real individuals. If false, the group defines a set of intended individuals."]
12122 pub actual: Box<FHIRBoolean>,
12123 #[doc = "Provides a specific type of resource the group includes; e.g. \"cow\", \"syringe\", etc."]
12124 pub code: Option<Box<CodeableConcept>>,
12125 #[primitive]
12126 #[doc = "A label assigned to the group for human identification and communication."]
12127 pub name: Option<Box<FHIRString>>,
12128 #[primitive]
12129 #[doc = "A count of the number of resource instances that are part of the group."]
12130 pub quantity: Option<Box<FHIRUnsignedInt>>,
12131 # [reference (targets = ["Organization" , "RelatedPerson" , "Practitioner" , "PractitionerRole"])]
12132 #[doc = "Entity responsible for defining and maintaining Group characteristics and/or registered members."]
12133 pub managingEntity: Option<Box<Reference>>,
12134 #[doc = "Identifies traits whose presence r absence is shared by members of the group."]
12135 pub characteristic: Option<Vec<GroupCharacteristic>>,
12136 #[doc = "Identifies the resource instances that are members of the group."]
12137 pub member: Option<Vec<GroupMember>>,
12138}
12139#[derive(
12140 Clone,
12141 Reflect,
12142 Debug,
12143 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12144 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12145)]
12146#[fhir_serialize_type = "typechoice"]
12147#[type_choice_field_name = "module"]
12148pub enum GuidanceResponseModuleTypeChoice {
12149 Uri(Box<FHIRUri>),
12150 Canonical(Box<FHIRCanonical>),
12151 CodeableConcept(Box<CodeableConcept>),
12152}
12153impl Default for GuidanceResponseModuleTypeChoice {
12154 fn default() -> Self {
12155 GuidanceResponseModuleTypeChoice::Uri(Box::new(Default::default()))
12156 }
12157}
12158#[derive(
12159 Clone,
12160 Reflect,
12161 Debug,
12162 Default,
12163 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12164 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12165)]
12166#[fhir_serialize_type = "resource"]
12167#[doc = "A guidance response is the formal response to a guidance request, including any output parameters returned by the evaluation, as well as the description of any proposed actions to be taken."]
12168pub struct GuidanceResponse {
12169 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
12170 pub id: Option<String>,
12171 #[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."]
12172 pub meta: Option<Box<Meta>>,
12173 #[primitive]
12174 #[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."]
12175 pub implicitRules: Option<Box<FHIRUri>>,
12176 #[primitive]
12177 #[doc = "The base language in which the resource is written."]
12178 pub language: Option<Box<FHIRCode>>,
12179 #[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."]
12180 pub text: Option<Box<Narrative>>,
12181 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
12182 pub contained: Option<Vec<Box<Resource>>>,
12183 #[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 manageable, 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."]
12184 pub extension: Option<Vec<Box<Extension>>>,
12185 #[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 manageable, 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)."]
12186 pub modifierExtension: Option<Vec<Box<Extension>>>,
12187 #[doc = "The identifier of the request associated with this response. If an identifier was given as part of the request, it will be reproduced here to enable the requester to more easily identify the response in a multi-request scenario."]
12188 pub requestIdentifier: Option<Box<Identifier>>,
12189 #[rename_field = "identifier"]
12190 #[doc = "Allows a service to provide unique, business identifiers for the response."]
12191 pub identifier_: Option<Vec<Box<Identifier>>>,
12192 # [type_choice_variants (complex = ["moduleCodeableConcept"] , primitive = ["moduleUri" , "moduleCanonical"])]
12193 #[doc = "An identifier, CodeableConcept or canonical reference to the guidance that was requested."]
12194 pub module: GuidanceResponseModuleTypeChoice,
12195 #[primitive]
12196 #[doc = "The status of the response. If the evaluation is completed successfully, the status will indicate success. However, in order to complete the evaluation, the engine may require more information. In this case, the status will be data-required, and the response will contain a description of the additional required information. If the evaluation completed successfully, but the engine determines that a potentially more accurate response could be provided if more data was available, the status will be data-requested, and the response will contain a description of the additional requested information."]
12197 pub status: Box<terminology::GuidanceResponseStatus>,
12198 # [reference (targets = ["Patient" , "Group"])]
12199 #[doc = "The patient for which the request was processed."]
12200 pub subject: Option<Box<Reference>>,
12201 # [reference (targets = ["Encounter"])]
12202 #[doc = "The encounter during which this response was created or to which the creation of this record is tightly associated."]
12203 pub encounter: Option<Box<Reference>>,
12204 #[primitive]
12205 #[doc = "Indicates when the guidance response was processed."]
12206 pub occurrenceDateTime: Option<Box<FHIRDateTime>>,
12207 # [reference (targets = ["Device"])]
12208 #[doc = "Provides a reference to the device that performed the guidance."]
12209 pub performer: Option<Box<Reference>>,
12210 #[doc = "Describes the reason for the guidance response in coded or textual form."]
12211 pub reasonCode: Option<Vec<Box<CodeableConcept>>>,
12212 # [reference (targets = ["Condition" , "Observation" , "DiagnosticReport" , "DocumentReference"])]
12213 #[doc = "Indicates the reason the request was initiated. This is typically provided as a parameter to the evaluation and echoed by the service, although for some use cases, such as subscription- or event-based scenarios, it may provide an indication of the cause for the response."]
12214 pub reasonReference: Option<Vec<Box<Reference>>>,
12215 #[doc = "Provides a mechanism to communicate additional information about the response."]
12216 pub note: Option<Vec<Box<Annotation>>>,
12217 # [reference (targets = ["OperationOutcome"])]
12218 #[doc = "Messages resulting from the evaluation of the artifact or artifacts. As part of evaluating the request, the engine may produce informational or warning messages. These messages will be provided by this element."]
12219 pub evaluationMessage: Option<Vec<Box<Reference>>>,
12220 # [reference (targets = ["Parameters"])]
12221 #[doc = "The output parameters of the evaluation, if any. Many modules will result in the return of specific resources such as procedure or communication requests that are returned as part of the operation result. However, modules may define specific outputs that would be returned as the result of the evaluation, and these would be returned in this element."]
12222 pub outputParameters: Option<Box<Reference>>,
12223 # [reference (targets = ["CarePlan" , "RequestGroup"])]
12224 #[doc = "The actions, if any, produced by the evaluation of the artifact."]
12225 pub result: Option<Box<Reference>>,
12226 #[doc = "If the evaluation could not be completed due to lack of information, or additional information would potentially result in a more accurate response, this element will a description of the data required in order to proceed with the evaluation. A subsequent request to the service should include this data."]
12227 pub dataRequirement: Option<Vec<Box<DataRequirement>>>,
12228}
12229#[derive(
12230 Clone,
12231 Reflect,
12232 Debug,
12233 Default,
12234 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12235 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12236)]
12237#[fhir_serialize_type = "complex"]
12238#[doc = "Does this service have specific eligibility requirements that need to be met in order to use the service?"]
12239pub struct HealthcareServiceEligibility {
12240 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
12241 pub id: Option<String>,
12242 #[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 manageable, 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."]
12243 pub extension: Option<Vec<Box<Extension>>>,
12244 #[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 manageable, 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)."]
12245 pub modifierExtension: Option<Vec<Box<Extension>>>,
12246 #[doc = "Coded value for the eligibility."]
12247 pub code: Option<Box<CodeableConcept>>,
12248 #[primitive]
12249 #[doc = "Describes the eligibility conditions for the service."]
12250 pub comment: Option<Box<FHIRMarkdown>>,
12251}
12252#[derive(
12253 Clone,
12254 Reflect,
12255 Debug,
12256 Default,
12257 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12258 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12259)]
12260#[fhir_serialize_type = "complex"]
12261#[doc = "A collection of times that the Service Site is available."]
12262pub struct HealthcareServiceAvailableTime {
12263 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
12264 pub id: Option<String>,
12265 #[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 manageable, 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."]
12266 pub extension: Option<Vec<Box<Extension>>>,
12267 #[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 manageable, 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)."]
12268 pub modifierExtension: Option<Vec<Box<Extension>>>,
12269 #[primitive]
12270 #[doc = "Indicates which days of the week are available between the start and end Times."]
12271 pub daysOfWeek: Option<Vec<Box<terminology::DaysOfWeek>>>,
12272 #[primitive]
12273 #[doc = "Is this always available? (hence times are irrelevant) e.g. 24 hour service."]
12274 pub allDay: Option<Box<FHIRBoolean>>,
12275 #[primitive]
12276 #[doc = "The opening time of day. Note: If the AllDay flag is set, then this time is ignored."]
12277 pub availableStartTime: Option<Box<FHIRTime>>,
12278 #[primitive]
12279 #[doc = "The closing time of day. Note: If the AllDay flag is set, then this time is ignored."]
12280 pub availableEndTime: Option<Box<FHIRTime>>,
12281}
12282#[derive(
12283 Clone,
12284 Reflect,
12285 Debug,
12286 Default,
12287 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12288 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12289)]
12290#[fhir_serialize_type = "complex"]
12291#[doc = "The HealthcareService is not available during this period of time due to the provided reason."]
12292pub struct HealthcareServiceNotAvailable {
12293 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
12294 pub id: Option<String>,
12295 #[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 manageable, 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."]
12296 pub extension: Option<Vec<Box<Extension>>>,
12297 #[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 manageable, 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)."]
12298 pub modifierExtension: Option<Vec<Box<Extension>>>,
12299 #[primitive]
12300 #[doc = "The reason that can be presented to the user as to why this time is not available."]
12301 pub description: Box<FHIRString>,
12302 #[doc = "Service is not available (seasonally or for a public holiday) from this date."]
12303 pub during: Option<Box<Period>>,
12304}
12305#[derive(
12306 Clone,
12307 Reflect,
12308 Debug,
12309 Default,
12310 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12311 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12312)]
12313#[fhir_serialize_type = "resource"]
12314#[doc = "The details of a healthcare service available at a location."]
12315pub struct HealthcareService {
12316 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
12317 pub id: Option<String>,
12318 #[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."]
12319 pub meta: Option<Box<Meta>>,
12320 #[primitive]
12321 #[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."]
12322 pub implicitRules: Option<Box<FHIRUri>>,
12323 #[primitive]
12324 #[doc = "The base language in which the resource is written."]
12325 pub language: Option<Box<FHIRCode>>,
12326 #[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."]
12327 pub text: Option<Box<Narrative>>,
12328 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
12329 pub contained: Option<Vec<Box<Resource>>>,
12330 #[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 manageable, 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."]
12331 pub extension: Option<Vec<Box<Extension>>>,
12332 #[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 manageable, 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)."]
12333 pub modifierExtension: Option<Vec<Box<Extension>>>,
12334 #[rename_field = "identifier"]
12335 #[doc = "External identifiers for this item."]
12336 pub identifier_: Option<Vec<Box<Identifier>>>,
12337 #[primitive]
12338 #[doc = "This flag is used to mark the record to not be used. This is not used when a center is closed for maintenance, or for holidays, the notAvailable period is to be used for this."]
12339 pub active: Option<Box<FHIRBoolean>>,
12340 # [reference (targets = ["Organization"])]
12341 #[doc = "The organization that provides this healthcare service."]
12342 pub providedBy: Option<Box<Reference>>,
12343 #[doc = "Identifies the broad category of service being performed or delivered."]
12344 pub category: Option<Vec<Box<CodeableConcept>>>,
12345 #[rename_field = "type"]
12346 #[doc = "The specific type of service that may be delivered or performed."]
12347 pub type_: Option<Vec<Box<CodeableConcept>>>,
12348 #[doc = "Collection of specialties handled by the service site. This is more of a medical term."]
12349 pub specialty: Option<Vec<Box<CodeableConcept>>>,
12350 # [reference (targets = ["Location"])]
12351 #[doc = "The location(s) where this healthcare service may be provided."]
12352 pub location: Option<Vec<Box<Reference>>>,
12353 #[primitive]
12354 #[doc = "Further description of the service as it would be presented to a consumer while searching."]
12355 pub name: Option<Box<FHIRString>>,
12356 #[primitive]
12357 #[doc = "Any additional description of the service and/or any specific issues not covered by the other attributes, which can be displayed as further detail under the serviceName."]
12358 pub comment: Option<Box<FHIRString>>,
12359 #[primitive]
12360 #[doc = "Extra details about the service that can't be placed in the other fields."]
12361 pub extraDetails: Option<Box<FHIRMarkdown>>,
12362 #[doc = "If there is a photo/symbol associated with this HealthcareService, it may be included here to facilitate quick identification of the service in a list."]
12363 pub photo: Option<Box<Attachment>>,
12364 #[doc = "List of contacts related to this specific healthcare service."]
12365 pub telecom: Option<Vec<Box<ContactPoint>>>,
12366 # [reference (targets = ["Location"])]
12367 #[doc = "The location(s) that this service is available to (not where the service is provided)."]
12368 pub coverageArea: Option<Vec<Box<Reference>>>,
12369 #[doc = "The code(s) that detail the conditions under which the healthcare service is available/offered."]
12370 pub serviceProvisionCode: Option<Vec<Box<CodeableConcept>>>,
12371 #[doc = "Does this service have specific eligibility requirements that need to be met in order to use the service?"]
12372 pub eligibility: Option<Vec<HealthcareServiceEligibility>>,
12373 #[doc = "Programs that this service is applicable to."]
12374 pub program: Option<Vec<Box<CodeableConcept>>>,
12375 #[doc = "Collection of characteristics (attributes)."]
12376 pub characteristic: Option<Vec<Box<CodeableConcept>>>,
12377 #[doc = "Some services are specifically made available in multiple languages, this property permits a directory to declare the languages this is offered in. Typically this is only provided where a service operates in communities with mixed languages used."]
12378 pub communication: Option<Vec<Box<CodeableConcept>>>,
12379 #[doc = "Ways that the service accepts referrals, if this is not provided then it is implied that no referral is required."]
12380 pub referralMethod: Option<Vec<Box<CodeableConcept>>>,
12381 #[primitive]
12382 #[doc = "Indicates whether or not a prospective consumer will require an appointment for a particular service at a site to be provided by the Organization. Indicates if an appointment is required for access to this service."]
12383 pub appointmentRequired: Option<Box<FHIRBoolean>>,
12384 #[doc = "A collection of times that the Service Site is available."]
12385 pub availableTime: Option<Vec<HealthcareServiceAvailableTime>>,
12386 #[doc = "The HealthcareService is not available during this period of time due to the provided reason."]
12387 pub notAvailable: Option<Vec<HealthcareServiceNotAvailable>>,
12388 #[primitive]
12389 #[doc = "A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times."]
12390 pub availabilityExceptions: Option<Box<FHIRString>>,
12391 # [reference (targets = ["Endpoint"])]
12392 #[doc = "Technical endpoints providing access to services operated for the specific healthcare services defined at this resource."]
12393 pub endpoint: Option<Vec<Box<Reference>>>,
12394}
12395#[derive(
12396 Clone,
12397 Reflect,
12398 Debug,
12399 Default,
12400 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12401 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12402)]
12403#[fhir_serialize_type = "complex"]
12404#[doc = "Indicates who or what performed the series and how they were involved."]
12405pub struct ImagingStudySeriesPerformer {
12406 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
12407 pub id: Option<String>,
12408 #[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 manageable, 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."]
12409 pub extension: Option<Vec<Box<Extension>>>,
12410 #[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 manageable, 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)."]
12411 pub modifierExtension: Option<Vec<Box<Extension>>>,
12412 #[doc = "Distinguishes the type of involvement of the performer in the series."]
12413 pub function: Option<Box<CodeableConcept>>,
12414 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization" , "CareTeam" , "Patient" , "Device" , "RelatedPerson"])]
12415 #[doc = "Indicates who or what performed the series."]
12416 pub actor: Box<Reference>,
12417}
12418#[derive(
12419 Clone,
12420 Reflect,
12421 Debug,
12422 Default,
12423 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12424 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12425)]
12426#[fhir_serialize_type = "complex"]
12427#[doc = "A single SOP instance within the series, e.g. an image, or presentation state."]
12428pub struct ImagingStudySeriesInstance {
12429 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
12430 pub id: Option<String>,
12431 #[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 manageable, 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."]
12432 pub extension: Option<Vec<Box<Extension>>>,
12433 #[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 manageable, 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)."]
12434 pub modifierExtension: Option<Vec<Box<Extension>>>,
12435 #[primitive]
12436 #[doc = "The DICOM SOP Instance UID for this image or other DICOM content."]
12437 pub uid: Box<FHIRId>,
12438 #[doc = "DICOM instance type."]
12439 pub sopClass: Box<Coding>,
12440 #[primitive]
12441 #[doc = "The number of instance in the series."]
12442 pub number: Option<Box<FHIRUnsignedInt>>,
12443 #[primitive]
12444 #[doc = "The description of the instance."]
12445 pub title: Option<Box<FHIRString>>,
12446}
12447#[derive(
12448 Clone,
12449 Reflect,
12450 Debug,
12451 Default,
12452 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12453 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12454)]
12455#[fhir_serialize_type = "complex"]
12456#[doc = "Each study has one or more series of images or other content."]
12457pub struct ImagingStudySeries {
12458 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
12459 pub id: Option<String>,
12460 #[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 manageable, 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."]
12461 pub extension: Option<Vec<Box<Extension>>>,
12462 #[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 manageable, 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)."]
12463 pub modifierExtension: Option<Vec<Box<Extension>>>,
12464 #[primitive]
12465 #[doc = "The DICOM Series Instance UID for the series."]
12466 pub uid: Box<FHIRId>,
12467 #[primitive]
12468 #[doc = "The numeric identifier of this series in the study."]
12469 pub number: Option<Box<FHIRUnsignedInt>>,
12470 #[doc = "The modality of this series sequence."]
12471 pub modality: Box<Coding>,
12472 #[primitive]
12473 #[doc = "A description of the series."]
12474 pub description: Option<Box<FHIRString>>,
12475 #[primitive]
12476 #[doc = "Number of SOP Instances in the Study. The value given may be larger than the number of instance elements this resource contains due to resource availability, security, or other factors. This element should be present if any instance elements are present."]
12477 pub numberOfInstances: Option<Box<FHIRUnsignedInt>>,
12478 # [reference (targets = ["Endpoint"])]
12479 #[doc = "The network service providing access (e.g., query, view, or retrieval) for this series. See implementation notes for information about using DICOM endpoints. A series-level endpoint, if present, has precedence over a study-level endpoint with the same Endpoint.connectionType."]
12480 pub endpoint: Option<Vec<Box<Reference>>>,
12481 #[doc = "The anatomic structures examined. See DICOM Part 16 Annex L (http://dicom.nema.org/medical/dicom/current/output/chtml/part16/chapter_L.html) for DICOM to SNOMED-CT mappings. The bodySite may indicate the laterality of body part imaged; if so, it shall be consistent with any content of ImagingStudy.series.laterality."]
12482 pub bodySite: Option<Box<Coding>>,
12483 #[doc = "The laterality of the (possibly paired) anatomic structures examined. E.g., the left knee, both lungs, or unpaired abdomen. If present, shall be consistent with any laterality information indicated in ImagingStudy.series.bodySite."]
12484 pub laterality: Option<Box<Coding>>,
12485 # [reference (targets = ["Specimen"])]
12486 #[doc = "The specimen imaged, e.g., for whole slide imaging of a biopsy."]
12487 pub specimen: Option<Vec<Box<Reference>>>,
12488 #[primitive]
12489 #[doc = "The date and time the series was started."]
12490 pub started: Option<Box<FHIRDateTime>>,
12491 #[doc = "Indicates who or what performed the series and how they were involved."]
12492 pub performer: Option<Vec<ImagingStudySeriesPerformer>>,
12493 #[doc = "A single SOP instance within the series, e.g. an image, or presentation state."]
12494 pub instance: Option<Vec<ImagingStudySeriesInstance>>,
12495}
12496#[derive(
12497 Clone,
12498 Reflect,
12499 Debug,
12500 Default,
12501 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12502 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12503)]
12504#[fhir_serialize_type = "resource"]
12505#[doc = "Representation of the content produced in a DICOM imaging study. A study comprises a set of series, each of which includes a set of Service-Object Pair Instances (SOP Instances - images or other data) acquired or produced in a common context. A series is of only one modality (e.g. X-ray, CT, MR, ultrasound), but a study may have multiple series of different modalities."]
12506pub struct ImagingStudy {
12507 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
12508 pub id: Option<String>,
12509 #[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."]
12510 pub meta: Option<Box<Meta>>,
12511 #[primitive]
12512 #[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."]
12513 pub implicitRules: Option<Box<FHIRUri>>,
12514 #[primitive]
12515 #[doc = "The base language in which the resource is written."]
12516 pub language: Option<Box<FHIRCode>>,
12517 #[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."]
12518 pub text: Option<Box<Narrative>>,
12519 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
12520 pub contained: Option<Vec<Box<Resource>>>,
12521 #[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 manageable, 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."]
12522 pub extension: Option<Vec<Box<Extension>>>,
12523 #[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 manageable, 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)."]
12524 pub modifierExtension: Option<Vec<Box<Extension>>>,
12525 #[rename_field = "identifier"]
12526 #[doc = "Identifiers for the ImagingStudy such as DICOM Study Instance UID, and Accession Number."]
12527 pub identifier_: Option<Vec<Box<Identifier>>>,
12528 #[primitive]
12529 #[doc = "The current state of the ImagingStudy."]
12530 pub status: Box<terminology::ImagingstudyStatus>,
12531 #[doc = "A list of all the series.modality values that are actual acquisition modalities, i.e. those in the DICOM Context Group 29 (value set OID 1.2.840.10008.6.1.19)."]
12532 pub modality: Option<Vec<Box<Coding>>>,
12533 # [reference (targets = ["Patient" , "Device" , "Group"])]
12534 #[doc = "The subject, typically a patient, of the imaging study."]
12535 pub subject: Box<Reference>,
12536 # [reference (targets = ["Encounter"])]
12537 #[doc = "The healthcare event (e.g. a patient and healthcare provider interaction) during which this ImagingStudy is made."]
12538 pub encounter: Option<Box<Reference>>,
12539 #[primitive]
12540 #[doc = "Date and time the study started."]
12541 pub started: Option<Box<FHIRDateTime>>,
12542 # [reference (targets = ["CarePlan" , "ServiceRequest" , "Appointment" , "AppointmentResponse" , "Task"])]
12543 #[doc = "A list of the diagnostic requests that resulted in this imaging study being performed."]
12544 pub basedOn: Option<Vec<Box<Reference>>>,
12545 # [reference (targets = ["Practitioner" , "PractitionerRole"])]
12546 #[doc = "The requesting/referring physician."]
12547 pub referrer: Option<Box<Reference>>,
12548 # [reference (targets = ["Practitioner" , "PractitionerRole"])]
12549 #[doc = "Who read the study and interpreted the images or other content."]
12550 pub interpreter: Option<Vec<Box<Reference>>>,
12551 # [reference (targets = ["Endpoint"])]
12552 #[doc = "The network service providing access (e.g., query, view, or retrieval) for the study. See implementation notes for information about using DICOM endpoints. A study-level endpoint applies to each series in the study, unless overridden by a series-level endpoint with the same Endpoint.connectionType."]
12553 pub endpoint: Option<Vec<Box<Reference>>>,
12554 #[primitive]
12555 #[doc = "Number of Series in the Study. This value given may be larger than the number of series elements this Resource contains due to resource availability, security, or other factors. This element should be present if any series elements are present."]
12556 pub numberOfSeries: Option<Box<FHIRUnsignedInt>>,
12557 #[primitive]
12558 #[doc = "Number of SOP Instances in Study. This value given may be larger than the number of instance elements this resource contains due to resource availability, security, or other factors. This element should be present if any instance elements are present."]
12559 pub numberOfInstances: Option<Box<FHIRUnsignedInt>>,
12560 # [reference (targets = ["Procedure"])]
12561 #[doc = "The procedure which this ImagingStudy was part of."]
12562 pub procedureReference: Option<Box<Reference>>,
12563 #[doc = "The code for the performed procedure type."]
12564 pub procedureCode: Option<Vec<Box<CodeableConcept>>>,
12565 # [reference (targets = ["Location"])]
12566 #[doc = "The principal physical location where the ImagingStudy was performed."]
12567 pub location: Option<Box<Reference>>,
12568 #[doc = "Description of clinical condition indicating why the ImagingStudy was requested."]
12569 pub reasonCode: Option<Vec<Box<CodeableConcept>>>,
12570 # [reference (targets = ["Condition" , "Observation" , "Media" , "DiagnosticReport" , "DocumentReference"])]
12571 #[doc = "Indicates another resource whose existence justifies this Study."]
12572 pub reasonReference: Option<Vec<Box<Reference>>>,
12573 #[doc = "Per the recommended DICOM mapping, this element is derived from the Study Description attribute (0008,1030). Observations or findings about the imaging study should be recorded in another resource, e.g. Observation, and not in this element."]
12574 pub note: Option<Vec<Box<Annotation>>>,
12575 #[primitive]
12576 #[doc = "The Imaging Manager description of the study. Institution-generated description or classification of the Study (component) performed."]
12577 pub description: Option<Box<FHIRString>>,
12578 #[doc = "Each study has one or more series of images or other content."]
12579 pub series: Option<Vec<ImagingStudySeries>>,
12580}
12581#[derive(
12582 Clone,
12583 Reflect,
12584 Debug,
12585 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12586 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12587)]
12588#[fhir_serialize_type = "typechoice"]
12589#[type_choice_field_name = "occurrence"]
12590pub enum ImmunizationOccurrenceTypeChoice {
12591 DateTime(Box<FHIRDateTime>),
12592 String(Box<FHIRString>),
12593}
12594impl Default for ImmunizationOccurrenceTypeChoice {
12595 fn default() -> Self {
12596 ImmunizationOccurrenceTypeChoice::DateTime(Box::new(Default::default()))
12597 }
12598}
12599#[derive(
12600 Clone,
12601 Reflect,
12602 Debug,
12603 Default,
12604 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12605 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12606)]
12607#[fhir_serialize_type = "complex"]
12608#[doc = "Indicates who performed the immunization event."]
12609pub struct ImmunizationPerformer {
12610 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
12611 pub id: Option<String>,
12612 #[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 manageable, 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."]
12613 pub extension: Option<Vec<Box<Extension>>>,
12614 #[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 manageable, 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)."]
12615 pub modifierExtension: Option<Vec<Box<Extension>>>,
12616 #[doc = "Describes the type of performance (e.g. ordering provider, administering provider, etc.)."]
12617 pub function: Option<Box<CodeableConcept>>,
12618 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
12619 #[doc = "The practitioner or organization who performed the action."]
12620 pub actor: Box<Reference>,
12621}
12622#[derive(
12623 Clone,
12624 Reflect,
12625 Debug,
12626 Default,
12627 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12628 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12629)]
12630#[fhir_serialize_type = "complex"]
12631#[doc = "Educational material presented to the patient (or guardian) at the time of vaccine administration."]
12632pub struct ImmunizationEducation {
12633 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
12634 pub id: Option<String>,
12635 #[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 manageable, 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."]
12636 pub extension: Option<Vec<Box<Extension>>>,
12637 #[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 manageable, 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)."]
12638 pub modifierExtension: Option<Vec<Box<Extension>>>,
12639 #[primitive]
12640 #[doc = "Identifier of the material presented to the patient."]
12641 pub documentType: Option<Box<FHIRString>>,
12642 #[primitive]
12643 #[doc = "Reference pointer to the educational material given to the patient if the information was on line."]
12644 pub reference: Option<Box<FHIRUri>>,
12645 #[primitive]
12646 #[doc = "Date the educational material was published."]
12647 pub publicationDate: Option<Box<FHIRDateTime>>,
12648 #[primitive]
12649 #[doc = "Date the educational material was given to the patient."]
12650 pub presentationDate: Option<Box<FHIRDateTime>>,
12651}
12652#[derive(
12653 Clone,
12654 Reflect,
12655 Debug,
12656 Default,
12657 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12658 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12659)]
12660#[fhir_serialize_type = "complex"]
12661#[doc = "Categorical data indicating that an adverse event is associated in time to an immunization."]
12662pub struct ImmunizationReaction {
12663 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
12664 pub id: Option<String>,
12665 #[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 manageable, 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."]
12666 pub extension: Option<Vec<Box<Extension>>>,
12667 #[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 manageable, 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)."]
12668 pub modifierExtension: Option<Vec<Box<Extension>>>,
12669 #[primitive]
12670 #[doc = "Date of reaction to the immunization."]
12671 pub date: Option<Box<FHIRDateTime>>,
12672 # [reference (targets = ["Observation"])]
12673 #[doc = "Details of the reaction."]
12674 pub detail: Option<Box<Reference>>,
12675 #[primitive]
12676 #[doc = "Self-reported indicator."]
12677 pub reported: Option<Box<FHIRBoolean>>,
12678}
12679#[derive(
12680 Clone,
12681 Reflect,
12682 Debug,
12683 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12684 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12685)]
12686#[fhir_serialize_type = "typechoice"]
12687#[type_choice_field_name = "doseNumber"]
12688pub enum ImmunizationProtocolAppliedDoseNumberTypeChoice {
12689 PositiveInt(Box<FHIRPositiveInt>),
12690 String(Box<FHIRString>),
12691}
12692impl Default for ImmunizationProtocolAppliedDoseNumberTypeChoice {
12693 fn default() -> Self {
12694 ImmunizationProtocolAppliedDoseNumberTypeChoice::PositiveInt(Box::new(Default::default()))
12695 }
12696}
12697#[derive(
12698 Clone,
12699 Reflect,
12700 Debug,
12701 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12702 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12703)]
12704#[fhir_serialize_type = "typechoice"]
12705#[type_choice_field_name = "seriesDoses"]
12706pub enum ImmunizationProtocolAppliedSeriesDosesTypeChoice {
12707 PositiveInt(Box<FHIRPositiveInt>),
12708 String(Box<FHIRString>),
12709}
12710impl Default for ImmunizationProtocolAppliedSeriesDosesTypeChoice {
12711 fn default() -> Self {
12712 ImmunizationProtocolAppliedSeriesDosesTypeChoice::PositiveInt(Box::new(Default::default()))
12713 }
12714}
12715#[derive(
12716 Clone,
12717 Reflect,
12718 Debug,
12719 Default,
12720 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12721 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12722)]
12723#[fhir_serialize_type = "complex"]
12724#[doc = "The protocol (set of recommendations) being followed by the provider who administered the dose."]
12725pub struct ImmunizationProtocolApplied {
12726 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
12727 pub id: Option<String>,
12728 #[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 manageable, 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."]
12729 pub extension: Option<Vec<Box<Extension>>>,
12730 #[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 manageable, 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)."]
12731 pub modifierExtension: Option<Vec<Box<Extension>>>,
12732 #[primitive]
12733 #[doc = "One possible path to achieve presumed immunity against a disease - within the context of an authority."]
12734 pub series: Option<Box<FHIRString>>,
12735 # [reference (targets = ["Organization"])]
12736 #[doc = "Indicates the authority who published the protocol (e.g. ACIP) that is being followed."]
12737 pub authority: Option<Box<Reference>>,
12738 #[doc = "The vaccine preventable disease the dose is being administered against."]
12739 pub targetDisease: Option<Vec<Box<CodeableConcept>>>,
12740 # [type_choice_variants (complex = [] , primitive = ["doseNumberPositiveInt" , "doseNumberString"])]
12741 #[doc = "Nominal position in a series."]
12742 pub doseNumber: ImmunizationProtocolAppliedDoseNumberTypeChoice,
12743 # [type_choice_variants (complex = [] , primitive = ["seriesDosesPositiveInt" , "seriesDosesString"])]
12744 #[doc = "The recommended number of doses to achieve immunity."]
12745 pub seriesDoses: Option<ImmunizationProtocolAppliedSeriesDosesTypeChoice>,
12746}
12747#[derive(
12748 Clone,
12749 Reflect,
12750 Debug,
12751 Default,
12752 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12753 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12754)]
12755#[fhir_serialize_type = "resource"]
12756#[doc = "Describes the event of a patient being administered a vaccine or a record of an immunization as reported by a patient, a clinician or another party."]
12757pub struct Immunization {
12758 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
12759 pub id: Option<String>,
12760 #[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."]
12761 pub meta: Option<Box<Meta>>,
12762 #[primitive]
12763 #[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."]
12764 pub implicitRules: Option<Box<FHIRUri>>,
12765 #[primitive]
12766 #[doc = "The base language in which the resource is written."]
12767 pub language: Option<Box<FHIRCode>>,
12768 #[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."]
12769 pub text: Option<Box<Narrative>>,
12770 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
12771 pub contained: Option<Vec<Box<Resource>>>,
12772 #[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 manageable, 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."]
12773 pub extension: Option<Vec<Box<Extension>>>,
12774 #[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 manageable, 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)."]
12775 pub modifierExtension: Option<Vec<Box<Extension>>>,
12776 #[rename_field = "identifier"]
12777 #[doc = "A unique identifier assigned to this immunization record."]
12778 pub identifier_: Option<Vec<Box<Identifier>>>,
12779 #[primitive]
12780 #[doc = "Indicates the current status of the immunization event."]
12781 pub status: Box<terminology::ImmunizationStatus>,
12782 #[doc = "Indicates the reason the immunization event was not performed."]
12783 pub statusReason: Option<Box<CodeableConcept>>,
12784 #[doc = "Vaccine that was administered or was to be administered."]
12785 pub vaccineCode: Box<CodeableConcept>,
12786 # [reference (targets = ["Patient"])]
12787 #[doc = "The patient who either received or did not receive the immunization."]
12788 pub patient: Box<Reference>,
12789 # [reference (targets = ["Encounter"])]
12790 #[doc = "The visit or admission or other contact between patient and health care provider the immunization was performed as part of."]
12791 pub encounter: Option<Box<Reference>>,
12792 # [type_choice_variants (complex = [] , primitive = ["occurrenceDateTime" , "occurrenceString"])]
12793 #[doc = "Date vaccine administered or was to be administered."]
12794 pub occurrence: ImmunizationOccurrenceTypeChoice,
12795 #[primitive]
12796 #[doc = "The date the occurrence of the immunization was first captured in the record - potentially significantly after the occurrence of the event."]
12797 pub recorded: Option<Box<FHIRDateTime>>,
12798 #[primitive]
12799 #[doc = "An indication that the content of the record is based on information from the person who administered the vaccine. This reflects the context under which the data was originally recorded."]
12800 pub primarySource: Option<Box<FHIRBoolean>>,
12801 #[doc = "The source of the data when the report of the immunization event is not based on information from the person who administered the vaccine."]
12802 pub reportOrigin: Option<Box<CodeableConcept>>,
12803 # [reference (targets = ["Location"])]
12804 #[doc = "The service delivery location where the vaccine administration occurred."]
12805 pub location: Option<Box<Reference>>,
12806 # [reference (targets = ["Organization"])]
12807 #[doc = "Name of vaccine manufacturer."]
12808 pub manufacturer: Option<Box<Reference>>,
12809 #[primitive]
12810 #[doc = "Lot number of the vaccine product."]
12811 pub lotNumber: Option<Box<FHIRString>>,
12812 #[primitive]
12813 #[doc = "Date vaccine batch expires."]
12814 pub expirationDate: Option<Box<FHIRDate>>,
12815 #[doc = "Body site where vaccine was administered."]
12816 pub site: Option<Box<CodeableConcept>>,
12817 #[doc = "The path by which the vaccine product is taken into the body."]
12818 pub route: Option<Box<CodeableConcept>>,
12819 #[doc = "The quantity of vaccine product that was administered."]
12820 pub doseQuantity: Option<Box<Quantity>>,
12821 #[doc = "Indicates who performed the immunization event."]
12822 pub performer: Option<Vec<ImmunizationPerformer>>,
12823 #[doc = "Extra information about the immunization that is not conveyed by the other attributes."]
12824 pub note: Option<Vec<Box<Annotation>>>,
12825 #[doc = "Reasons why the vaccine was administered."]
12826 pub reasonCode: Option<Vec<Box<CodeableConcept>>>,
12827 # [reference (targets = ["Condition" , "Observation" , "DiagnosticReport"])]
12828 #[doc = "Condition, Observation or DiagnosticReport that supports why the immunization was administered."]
12829 pub reasonReference: Option<Vec<Box<Reference>>>,
12830 #[primitive]
12831 #[doc = "Indication if a dose is considered to be subpotent. By default, a dose should be considered to be potent."]
12832 pub isSubpotent: Option<Box<FHIRBoolean>>,
12833 #[doc = "Reason why a dose is considered to be subpotent."]
12834 pub subpotentReason: Option<Vec<Box<CodeableConcept>>>,
12835 #[doc = "Educational material presented to the patient (or guardian) at the time of vaccine administration."]
12836 pub education: Option<Vec<ImmunizationEducation>>,
12837 #[doc = "Indicates a patient's eligibility for a funding program."]
12838 pub programEligibility: Option<Vec<Box<CodeableConcept>>>,
12839 #[doc = "Indicates the source of the vaccine actually administered. This may be different than the patient eligibility (e.g. the patient may be eligible for a publically purchased vaccine but due to inventory issues, vaccine purchased with private funds was actually administered)."]
12840 pub fundingSource: Option<Box<CodeableConcept>>,
12841 #[doc = "Categorical data indicating that an adverse event is associated in time to an immunization."]
12842 pub reaction: Option<Vec<ImmunizationReaction>>,
12843 #[doc = "The protocol (set of recommendations) being followed by the provider who administered the dose."]
12844 pub protocolApplied: Option<Vec<ImmunizationProtocolApplied>>,
12845}
12846#[derive(
12847 Clone,
12848 Reflect,
12849 Debug,
12850 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12851 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12852)]
12853#[fhir_serialize_type = "typechoice"]
12854#[type_choice_field_name = "doseNumber"]
12855pub enum ImmunizationEvaluationDoseNumberTypeChoice {
12856 PositiveInt(Box<FHIRPositiveInt>),
12857 String(Box<FHIRString>),
12858}
12859impl Default for ImmunizationEvaluationDoseNumberTypeChoice {
12860 fn default() -> Self {
12861 ImmunizationEvaluationDoseNumberTypeChoice::PositiveInt(Box::new(Default::default()))
12862 }
12863}
12864#[derive(
12865 Clone,
12866 Reflect,
12867 Debug,
12868 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12869 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12870)]
12871#[fhir_serialize_type = "typechoice"]
12872#[type_choice_field_name = "seriesDoses"]
12873pub enum ImmunizationEvaluationSeriesDosesTypeChoice {
12874 PositiveInt(Box<FHIRPositiveInt>),
12875 String(Box<FHIRString>),
12876}
12877impl Default for ImmunizationEvaluationSeriesDosesTypeChoice {
12878 fn default() -> Self {
12879 ImmunizationEvaluationSeriesDosesTypeChoice::PositiveInt(Box::new(Default::default()))
12880 }
12881}
12882#[derive(
12883 Clone,
12884 Reflect,
12885 Debug,
12886 Default,
12887 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12888 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12889)]
12890#[fhir_serialize_type = "resource"]
12891#[doc = "Describes a comparison of an immunization event against published recommendations to determine if the administration is \"valid\" in relation to those recommendations."]
12892pub struct ImmunizationEvaluation {
12893 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
12894 pub id: Option<String>,
12895 #[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."]
12896 pub meta: Option<Box<Meta>>,
12897 #[primitive]
12898 #[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."]
12899 pub implicitRules: Option<Box<FHIRUri>>,
12900 #[primitive]
12901 #[doc = "The base language in which the resource is written."]
12902 pub language: Option<Box<FHIRCode>>,
12903 #[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."]
12904 pub text: Option<Box<Narrative>>,
12905 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
12906 pub contained: Option<Vec<Box<Resource>>>,
12907 #[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 manageable, 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."]
12908 pub extension: Option<Vec<Box<Extension>>>,
12909 #[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 manageable, 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)."]
12910 pub modifierExtension: Option<Vec<Box<Extension>>>,
12911 #[rename_field = "identifier"]
12912 #[doc = "A unique identifier assigned to this immunization evaluation record."]
12913 pub identifier_: Option<Vec<Box<Identifier>>>,
12914 #[primitive]
12915 #[doc = "Indicates the current status of the evaluation of the vaccination administration event."]
12916 pub status: Box<terminology::ImmunizationEvaluationStatus>,
12917 # [reference (targets = ["Patient"])]
12918 #[doc = "The individual for whom the evaluation is being done."]
12919 pub patient: Box<Reference>,
12920 #[primitive]
12921 #[doc = "The date the evaluation of the vaccine administration event was performed."]
12922 pub date: Option<Box<FHIRDateTime>>,
12923 # [reference (targets = ["Organization"])]
12924 #[doc = "Indicates the authority who published the protocol (e.g. ACIP)."]
12925 pub authority: Option<Box<Reference>>,
12926 #[doc = "The vaccine preventable disease the dose is being evaluated against."]
12927 pub targetDisease: Box<CodeableConcept>,
12928 # [reference (targets = ["Immunization"])]
12929 #[doc = "The vaccine administration event being evaluated."]
12930 pub immunizationEvent: Box<Reference>,
12931 #[doc = "Indicates if the dose is valid or not valid with respect to the published recommendations."]
12932 pub doseStatus: Box<CodeableConcept>,
12933 #[doc = "Provides an explanation as to why the vaccine administration event is valid or not relative to the published recommendations."]
12934 pub doseStatusReason: Option<Vec<Box<CodeableConcept>>>,
12935 #[primitive]
12936 #[doc = "Additional information about the evaluation."]
12937 pub description: Option<Box<FHIRString>>,
12938 #[primitive]
12939 #[doc = "One possible path to achieve presumed immunity against a disease - within the context of an authority."]
12940 pub series: Option<Box<FHIRString>>,
12941 # [type_choice_variants (complex = [] , primitive = ["doseNumberPositiveInt" , "doseNumberString"])]
12942 #[doc = "Nominal position in a series."]
12943 pub doseNumber: Option<ImmunizationEvaluationDoseNumberTypeChoice>,
12944 # [type_choice_variants (complex = [] , primitive = ["seriesDosesPositiveInt" , "seriesDosesString"])]
12945 #[doc = "The recommended number of doses to achieve immunity."]
12946 pub seriesDoses: Option<ImmunizationEvaluationSeriesDosesTypeChoice>,
12947}
12948#[derive(
12949 Clone,
12950 Reflect,
12951 Debug,
12952 Default,
12953 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12954 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12955)]
12956#[fhir_serialize_type = "complex"]
12957#[doc = "Vaccine date recommendations. For example, earliest date to administer, latest date to administer, etc."]
12958pub struct ImmunizationRecommendationRecommendationDateCriterion {
12959 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
12960 pub id: Option<String>,
12961 #[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 manageable, 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."]
12962 pub extension: Option<Vec<Box<Extension>>>,
12963 #[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 manageable, 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)."]
12964 pub modifierExtension: Option<Vec<Box<Extension>>>,
12965 #[doc = "Date classification of recommendation. For example, earliest date to give, latest date to give, etc."]
12966 pub code: Box<CodeableConcept>,
12967 #[primitive]
12968 #[doc = "The date whose meaning is specified by dateCriterion.code."]
12969 pub value: Box<FHIRDateTime>,
12970}
12971#[derive(
12972 Clone,
12973 Reflect,
12974 Debug,
12975 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12976 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12977)]
12978#[fhir_serialize_type = "typechoice"]
12979#[type_choice_field_name = "doseNumber"]
12980pub enum ImmunizationRecommendationRecommendationDoseNumberTypeChoice {
12981 PositiveInt(Box<FHIRPositiveInt>),
12982 String(Box<FHIRString>),
12983}
12984impl Default for ImmunizationRecommendationRecommendationDoseNumberTypeChoice {
12985 fn default() -> Self {
12986 ImmunizationRecommendationRecommendationDoseNumberTypeChoice::PositiveInt(Box::new(
12987 Default::default(),
12988 ))
12989 }
12990}
12991#[derive(
12992 Clone,
12993 Reflect,
12994 Debug,
12995 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
12996 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
12997)]
12998#[fhir_serialize_type = "typechoice"]
12999#[type_choice_field_name = "seriesDoses"]
13000pub enum ImmunizationRecommendationRecommendationSeriesDosesTypeChoice {
13001 PositiveInt(Box<FHIRPositiveInt>),
13002 String(Box<FHIRString>),
13003}
13004impl Default for ImmunizationRecommendationRecommendationSeriesDosesTypeChoice {
13005 fn default() -> Self {
13006 ImmunizationRecommendationRecommendationSeriesDosesTypeChoice::PositiveInt(Box::new(
13007 Default::default(),
13008 ))
13009 }
13010}
13011#[derive(
13012 Clone,
13013 Reflect,
13014 Debug,
13015 Default,
13016 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13017 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13018)]
13019#[fhir_serialize_type = "complex"]
13020#[doc = "Vaccine administration recommendations."]
13021pub struct ImmunizationRecommendationRecommendation {
13022 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13023 pub id: Option<String>,
13024 #[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 manageable, 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."]
13025 pub extension: Option<Vec<Box<Extension>>>,
13026 #[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 manageable, 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)."]
13027 pub modifierExtension: Option<Vec<Box<Extension>>>,
13028 #[doc = "Vaccine(s) or vaccine group that pertain to the recommendation."]
13029 pub vaccineCode: Option<Vec<Box<CodeableConcept>>>,
13030 #[doc = "The targeted disease for the recommendation."]
13031 pub targetDisease: Option<Box<CodeableConcept>>,
13032 #[doc = "Vaccine(s) which should not be used to fulfill the recommendation."]
13033 pub contraindicatedVaccineCode: Option<Vec<Box<CodeableConcept>>>,
13034 #[doc = "Indicates the patient status with respect to the path to immunity for the target disease."]
13035 pub forecastStatus: Box<CodeableConcept>,
13036 #[doc = "The reason for the assigned forecast status."]
13037 pub forecastReason: Option<Vec<Box<CodeableConcept>>>,
13038 #[doc = "Vaccine date recommendations. For example, earliest date to administer, latest date to administer, etc."]
13039 pub dateCriterion: Option<Vec<ImmunizationRecommendationRecommendationDateCriterion>>,
13040 #[primitive]
13041 #[doc = "Contains the description about the protocol under which the vaccine was administered."]
13042 pub description: Option<Box<FHIRString>>,
13043 #[primitive]
13044 #[doc = "One possible path to achieve presumed immunity against a disease - within the context of an authority."]
13045 pub series: Option<Box<FHIRString>>,
13046 # [type_choice_variants (complex = [] , primitive = ["doseNumberPositiveInt" , "doseNumberString"])]
13047 #[doc = "Nominal position of the recommended dose in a series (e.g. dose 2 is the next recommended dose)."]
13048 pub doseNumber: Option<ImmunizationRecommendationRecommendationDoseNumberTypeChoice>,
13049 # [type_choice_variants (complex = [] , primitive = ["seriesDosesPositiveInt" , "seriesDosesString"])]
13050 #[doc = "The recommended number of doses to achieve immunity."]
13051 pub seriesDoses: Option<ImmunizationRecommendationRecommendationSeriesDosesTypeChoice>,
13052 # [reference (targets = ["Immunization" , "ImmunizationEvaluation"])]
13053 #[doc = "Immunization event history and/or evaluation that supports the status and recommendation."]
13054 pub supportingImmunization: Option<Vec<Box<Reference>>>,
13055 # [reference (targets = ["Resource"])]
13056 #[doc = "Patient Information that supports the status and recommendation. This includes patient observations, adverse reactions and allergy/intolerance information."]
13057 pub supportingPatientInformation: Option<Vec<Box<Reference>>>,
13058}
13059#[derive(
13060 Clone,
13061 Reflect,
13062 Debug,
13063 Default,
13064 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13065 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13066)]
13067#[fhir_serialize_type = "resource"]
13068#[doc = "A patient's point-in-time set of recommendations (i.e. forecasting) according to a published schedule with optional supporting justification."]
13069pub struct ImmunizationRecommendation {
13070 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
13071 pub id: Option<String>,
13072 #[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."]
13073 pub meta: Option<Box<Meta>>,
13074 #[primitive]
13075 #[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."]
13076 pub implicitRules: Option<Box<FHIRUri>>,
13077 #[primitive]
13078 #[doc = "The base language in which the resource is written."]
13079 pub language: Option<Box<FHIRCode>>,
13080 #[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."]
13081 pub text: Option<Box<Narrative>>,
13082 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
13083 pub contained: Option<Vec<Box<Resource>>>,
13084 #[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 manageable, 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."]
13085 pub extension: Option<Vec<Box<Extension>>>,
13086 #[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 manageable, 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)."]
13087 pub modifierExtension: Option<Vec<Box<Extension>>>,
13088 #[rename_field = "identifier"]
13089 #[doc = "A unique identifier assigned to this particular recommendation record."]
13090 pub identifier_: Option<Vec<Box<Identifier>>>,
13091 # [reference (targets = ["Patient"])]
13092 #[doc = "The patient the recommendation(s) are for."]
13093 pub patient: Box<Reference>,
13094 #[primitive]
13095 #[doc = "The date the immunization recommendation(s) were created."]
13096 pub date: Box<FHIRDateTime>,
13097 # [reference (targets = ["Organization"])]
13098 #[doc = "Indicates the authority who published the protocol (e.g. ACIP)."]
13099 pub authority: Option<Box<Reference>>,
13100 #[cardinality(min = 1usize)]
13101 #[doc = "Vaccine administration recommendations."]
13102 pub recommendation: Vec<ImmunizationRecommendationRecommendation>,
13103}
13104#[derive(
13105 Clone,
13106 Reflect,
13107 Debug,
13108 Default,
13109 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13110 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13111)]
13112#[fhir_serialize_type = "complex"]
13113#[doc = "Another implementation guide that this implementation depends on. Typically, an implementation guide uses value sets, profiles etc.defined in other implementation guides."]
13114pub struct ImplementationGuideDependsOn {
13115 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13116 pub id: Option<String>,
13117 #[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 manageable, 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."]
13118 pub extension: Option<Vec<Box<Extension>>>,
13119 #[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 manageable, 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)."]
13120 pub modifierExtension: Option<Vec<Box<Extension>>>,
13121 #[primitive]
13122 #[doc = "A canonical reference to the Implementation guide for the dependency."]
13123 pub uri: Box<FHIRCanonical>,
13124 #[primitive]
13125 #[doc = "The NPM package name for the Implementation Guide that this IG depends on."]
13126 pub packageId: Option<Box<FHIRId>>,
13127 #[primitive]
13128 #[doc = "The version of the IG that is depended on, when the correct version is required to understand the IG correctly."]
13129 pub version: Option<Box<FHIRString>>,
13130}
13131#[derive(
13132 Clone,
13133 Reflect,
13134 Debug,
13135 Default,
13136 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13137 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13138)]
13139#[fhir_serialize_type = "complex"]
13140#[doc = "A set of profiles that all resources covered by this implementation guide must conform to."]
13141pub struct ImplementationGuideGlobal {
13142 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13143 pub id: Option<String>,
13144 #[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 manageable, 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."]
13145 pub extension: Option<Vec<Box<Extension>>>,
13146 #[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 manageable, 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)."]
13147 pub modifierExtension: Option<Vec<Box<Extension>>>,
13148 #[rename_field = "type"]
13149 #[primitive]
13150 #[doc = "The type of resource that all instances must conform to."]
13151 pub type_: Box<terminology::ResourceTypes>,
13152 #[primitive]
13153 #[doc = "A reference to the profile that all instances must conform to."]
13154 pub profile: Box<FHIRCanonical>,
13155}
13156#[derive(
13157 Clone,
13158 Reflect,
13159 Debug,
13160 Default,
13161 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13162 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13163)]
13164#[fhir_serialize_type = "complex"]
13165#[doc = "A logical group of resources. Logical groups can be used when building pages."]
13166pub struct ImplementationGuideDefinitionGrouping {
13167 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13168 pub id: Option<String>,
13169 #[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 manageable, 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."]
13170 pub extension: Option<Vec<Box<Extension>>>,
13171 #[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 manageable, 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)."]
13172 pub modifierExtension: Option<Vec<Box<Extension>>>,
13173 #[primitive]
13174 #[doc = "The human-readable title to display for the package of resources when rendering the implementation guide."]
13175 pub name: Box<FHIRString>,
13176 #[primitive]
13177 #[doc = "Human readable text describing the package."]
13178 pub description: Option<Box<FHIRString>>,
13179}
13180#[derive(
13181 Clone,
13182 Reflect,
13183 Debug,
13184 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13185 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13186)]
13187#[fhir_serialize_type = "typechoice"]
13188#[type_choice_field_name = "example"]
13189pub enum ImplementationGuideDefinitionResourceExampleTypeChoice {
13190 Boolean(Box<FHIRBoolean>),
13191 Canonical(Box<FHIRCanonical>),
13192}
13193impl Default for ImplementationGuideDefinitionResourceExampleTypeChoice {
13194 fn default() -> Self {
13195 ImplementationGuideDefinitionResourceExampleTypeChoice::Boolean(
13196 Box::new(Default::default()),
13197 )
13198 }
13199}
13200#[derive(
13201 Clone,
13202 Reflect,
13203 Debug,
13204 Default,
13205 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13206 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13207)]
13208#[fhir_serialize_type = "complex"]
13209#[doc = "A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource."]
13210pub struct ImplementationGuideDefinitionResource {
13211 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13212 pub id: Option<String>,
13213 #[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 manageable, 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."]
13214 pub extension: Option<Vec<Box<Extension>>>,
13215 #[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 manageable, 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)."]
13216 pub modifierExtension: Option<Vec<Box<Extension>>>,
13217 # [reference (targets = ["Resource"])]
13218 #[doc = "Where this resource is found."]
13219 pub reference: Box<Reference>,
13220 #[primitive]
13221 #[doc = "Indicates the FHIR Version(s) this artifact is intended to apply to. If no versions are specified, the resource is assumed to apply to all the versions stated in ImplementationGuide.fhirVersion."]
13222 pub fhirVersion: Option<Vec<Box<terminology::FHIRVersion>>>,
13223 #[primitive]
13224 #[doc = "A human assigned name for the resource. All resources SHOULD have a name, but the name may be extracted from the resource (e.g. ValueSet.name)."]
13225 pub name: Option<Box<FHIRString>>,
13226 #[primitive]
13227 #[doc = "A description of the reason that a resource has been included in the implementation guide."]
13228 pub description: Option<Box<FHIRString>>,
13229 # [type_choice_variants (complex = [] , primitive = ["exampleBoolean" , "exampleCanonical"])]
13230 #[doc = "If true or a reference, indicates the resource is an example instance. If a reference is present, indicates that the example is an example of the specified profile."]
13231 pub example: Option<ImplementationGuideDefinitionResourceExampleTypeChoice>,
13232 #[primitive]
13233 #[doc = "Reference to the id of the grouping this resource appears in."]
13234 pub groupingId: Option<Box<FHIRId>>,
13235}
13236#[derive(
13237 Clone,
13238 Reflect,
13239 Debug,
13240 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13241 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13242)]
13243#[fhir_serialize_type = "typechoice"]
13244#[type_choice_field_name = "name"]
13245pub enum ImplementationGuideDefinitionPageNameTypeChoice {
13246 Url(Box<FHIRUrl>),
13247 # [reference (targets = ["Binary"])]
13248 Reference(Box<Reference>),
13249}
13250impl Default for ImplementationGuideDefinitionPageNameTypeChoice {
13251 fn default() -> Self {
13252 ImplementationGuideDefinitionPageNameTypeChoice::Url(Box::new(Default::default()))
13253 }
13254}
13255#[derive(
13256 Clone,
13257 Reflect,
13258 Debug,
13259 Default,
13260 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13261 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13262)]
13263#[fhir_serialize_type = "complex"]
13264#[doc = "A page / section in the implementation guide. The root page is the implementation guide home page."]
13265pub struct ImplementationGuideDefinitionPage {
13266 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13267 pub id: Option<String>,
13268 #[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 manageable, 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."]
13269 pub extension: Option<Vec<Box<Extension>>>,
13270 #[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 manageable, 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)."]
13271 pub modifierExtension: Option<Vec<Box<Extension>>>,
13272 # [type_choice_variants (complex = ["nameReference"] , primitive = ["nameUrl"])]
13273 #[doc = "The source address for the page."]
13274 pub name: ImplementationGuideDefinitionPageNameTypeChoice,
13275 #[primitive]
13276 #[doc = "A short title used to represent this page in navigational structures such as table of contents, bread crumbs, etc."]
13277 pub title: Box<FHIRString>,
13278 #[primitive]
13279 #[doc = "A code that indicates how the page is generated."]
13280 pub generation: Box<terminology::GuidePageGeneration>,
13281 #[doc = "Nested Pages/Sections under this page."]
13282 pub page: Option<Vec<ImplementationGuideDefinitionPage>>,
13283}
13284#[derive(
13285 Clone,
13286 Reflect,
13287 Debug,
13288 Default,
13289 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13290 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13291)]
13292#[fhir_serialize_type = "complex"]
13293#[doc = "Defines how IG is built by tools."]
13294pub struct ImplementationGuideDefinitionParameter {
13295 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13296 pub id: Option<String>,
13297 #[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 manageable, 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."]
13298 pub extension: Option<Vec<Box<Extension>>>,
13299 #[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 manageable, 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)."]
13300 pub modifierExtension: Option<Vec<Box<Extension>>>,
13301 #[primitive]
13302 #[doc = "apply | path-resource | path-pages | path-tx-cache | expansion-parameter | rule-broken-links | generate-xml | generate-json | generate-turtle | html-template."]
13303 pub code: Box<terminology::GuideParameterCode>,
13304 #[primitive]
13305 #[doc = "Value for named type."]
13306 pub value: Box<FHIRString>,
13307}
13308#[derive(
13309 Clone,
13310 Reflect,
13311 Debug,
13312 Default,
13313 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13314 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13315)]
13316#[fhir_serialize_type = "complex"]
13317#[doc = "A template for building resources."]
13318pub struct ImplementationGuideDefinitionTemplate {
13319 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13320 pub id: Option<String>,
13321 #[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 manageable, 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."]
13322 pub extension: Option<Vec<Box<Extension>>>,
13323 #[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 manageable, 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)."]
13324 pub modifierExtension: Option<Vec<Box<Extension>>>,
13325 #[primitive]
13326 #[doc = "Type of template specified."]
13327 pub code: Box<FHIRCode>,
13328 #[primitive]
13329 #[doc = "The source location for the template."]
13330 pub source: Box<FHIRString>,
13331 #[primitive]
13332 #[doc = "The scope in which the template applies."]
13333 pub scope: Option<Box<FHIRString>>,
13334}
13335#[derive(
13336 Clone,
13337 Reflect,
13338 Debug,
13339 Default,
13340 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13341 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13342)]
13343#[fhir_serialize_type = "complex"]
13344#[doc = "The information needed by an IG publisher tool to publish the whole implementation guide."]
13345pub struct ImplementationGuideDefinition {
13346 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13347 pub id: Option<String>,
13348 #[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 manageable, 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."]
13349 pub extension: Option<Vec<Box<Extension>>>,
13350 #[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 manageable, 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)."]
13351 pub modifierExtension: Option<Vec<Box<Extension>>>,
13352 #[doc = "A logical group of resources. Logical groups can be used when building pages."]
13353 pub grouping: Option<Vec<ImplementationGuideDefinitionGrouping>>,
13354 #[cardinality(min = 1usize)]
13355 #[doc = "A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource."]
13356 pub resource: Vec<ImplementationGuideDefinitionResource>,
13357 #[doc = "A page / section in the implementation guide. The root page is the implementation guide home page."]
13358 pub page: Option<ImplementationGuideDefinitionPage>,
13359 #[doc = "Defines how IG is built by tools."]
13360 pub parameter: Option<Vec<ImplementationGuideDefinitionParameter>>,
13361 #[doc = "A template for building resources."]
13362 pub template: Option<Vec<ImplementationGuideDefinitionTemplate>>,
13363}
13364#[derive(
13365 Clone,
13366 Reflect,
13367 Debug,
13368 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13369 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13370)]
13371#[fhir_serialize_type = "typechoice"]
13372#[type_choice_field_name = "example"]
13373pub enum ImplementationGuideManifestResourceExampleTypeChoice {
13374 Boolean(Box<FHIRBoolean>),
13375 Canonical(Box<FHIRCanonical>),
13376}
13377impl Default for ImplementationGuideManifestResourceExampleTypeChoice {
13378 fn default() -> Self {
13379 ImplementationGuideManifestResourceExampleTypeChoice::Boolean(Box::new(Default::default()))
13380 }
13381}
13382#[derive(
13383 Clone,
13384 Reflect,
13385 Debug,
13386 Default,
13387 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13388 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13389)]
13390#[fhir_serialize_type = "complex"]
13391#[doc = "A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource."]
13392pub struct ImplementationGuideManifestResource {
13393 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13394 pub id: Option<String>,
13395 #[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 manageable, 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."]
13396 pub extension: Option<Vec<Box<Extension>>>,
13397 #[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 manageable, 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)."]
13398 pub modifierExtension: Option<Vec<Box<Extension>>>,
13399 # [reference (targets = ["Resource"])]
13400 #[doc = "Where this resource is found."]
13401 pub reference: Box<Reference>,
13402 # [type_choice_variants (complex = [] , primitive = ["exampleBoolean" , "exampleCanonical"])]
13403 #[doc = "If true or a reference, indicates the resource is an example instance. If a reference is present, indicates that the example is an example of the specified profile."]
13404 pub example: Option<ImplementationGuideManifestResourceExampleTypeChoice>,
13405 #[primitive]
13406 #[doc = "The relative path for primary page for this resource within the IG."]
13407 pub relativePath: Option<Box<FHIRUrl>>,
13408}
13409#[derive(
13410 Clone,
13411 Reflect,
13412 Debug,
13413 Default,
13414 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13415 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13416)]
13417#[fhir_serialize_type = "complex"]
13418#[doc = "Information about a page within the IG."]
13419pub struct ImplementationGuideManifestPage {
13420 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13421 pub id: Option<String>,
13422 #[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 manageable, 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."]
13423 pub extension: Option<Vec<Box<Extension>>>,
13424 #[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 manageable, 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)."]
13425 pub modifierExtension: Option<Vec<Box<Extension>>>,
13426 #[primitive]
13427 #[doc = "Relative path to the page."]
13428 pub name: Box<FHIRString>,
13429 #[primitive]
13430 #[doc = "Label for the page intended for human display."]
13431 pub title: Option<Box<FHIRString>>,
13432 #[primitive]
13433 #[doc = "The name of an anchor available on the page."]
13434 pub anchor: Option<Vec<Box<FHIRString>>>,
13435}
13436#[derive(
13437 Clone,
13438 Reflect,
13439 Debug,
13440 Default,
13441 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13442 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13443)]
13444#[fhir_serialize_type = "complex"]
13445#[doc = "Information about an assembled implementation guide, created by the publication tooling."]
13446pub struct ImplementationGuideManifest {
13447 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13448 pub id: Option<String>,
13449 #[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 manageable, 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."]
13450 pub extension: Option<Vec<Box<Extension>>>,
13451 #[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 manageable, 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)."]
13452 pub modifierExtension: Option<Vec<Box<Extension>>>,
13453 #[primitive]
13454 #[doc = "A pointer to official web page, PDF or other rendering of the implementation guide."]
13455 pub rendering: Option<Box<FHIRUrl>>,
13456 #[cardinality(min = 1usize)]
13457 #[doc = "A resource that is part of the implementation guide. Conformance resources (value set, structure definition, capability statements etc.) are obvious candidates for inclusion, but any kind of resource can be included as an example resource."]
13458 pub resource: Vec<ImplementationGuideManifestResource>,
13459 #[doc = "Information about a page within the IG."]
13460 pub page: Option<Vec<ImplementationGuideManifestPage>>,
13461 #[primitive]
13462 #[doc = "Indicates a relative path to an image that exists within the IG."]
13463 pub image: Option<Vec<Box<FHIRString>>>,
13464 #[primitive]
13465 #[doc = "Indicates the relative path of an additional non-page, non-image file that is part of the IG - e.g. zip, jar and similar files that could be the target of a hyperlink in a derived IG."]
13466 pub other: Option<Vec<Box<FHIRString>>>,
13467}
13468#[derive(
13469 Clone,
13470 Reflect,
13471 Debug,
13472 Default,
13473 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13474 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13475)]
13476#[fhir_serialize_type = "resource"]
13477#[doc = "A set of rules of how a particular interoperability or standards problem is solved - typically through the use of FHIR resources. This resource is used to gather all the parts of an implementation guide into a logical whole and to publish a computable definition of all the parts."]
13478pub struct ImplementationGuide {
13479 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
13480 pub id: Option<String>,
13481 #[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."]
13482 pub meta: Option<Box<Meta>>,
13483 #[primitive]
13484 #[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."]
13485 pub implicitRules: Option<Box<FHIRUri>>,
13486 #[primitive]
13487 #[doc = "The base language in which the resource is written."]
13488 pub language: Option<Box<FHIRCode>>,
13489 #[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."]
13490 pub text: Option<Box<Narrative>>,
13491 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
13492 pub contained: Option<Vec<Box<Resource>>>,
13493 #[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 manageable, 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."]
13494 pub extension: Option<Vec<Box<Extension>>>,
13495 #[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 manageable, 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)."]
13496 pub modifierExtension: Option<Vec<Box<Extension>>>,
13497 #[primitive]
13498 #[doc = "An absolute URI that is used to identify this implementation guide 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 at which an authoritative instance of this implementation guide is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the implementation guide is stored on different servers."]
13499 pub url: Box<FHIRUri>,
13500 #[primitive]
13501 #[doc = "The identifier that is used to identify this version of the implementation guide when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the implementation guide 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."]
13502 pub version: Option<Box<FHIRString>>,
13503 #[primitive]
13504 #[doc = "A natural language name identifying the implementation guide. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
13505 pub name: Box<FHIRString>,
13506 #[primitive]
13507 #[doc = "A short, descriptive, user-friendly title for the implementation guide."]
13508 pub title: Option<Box<FHIRString>>,
13509 #[primitive]
13510 #[doc = "The status of this implementation guide. Enables tracking the life-cycle of the content."]
13511 pub status: Box<terminology::PublicationStatus>,
13512 #[primitive]
13513 #[doc = "A Boolean value to indicate that this implementation guide is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
13514 pub experimental: Option<Box<FHIRBoolean>>,
13515 #[primitive]
13516 #[doc = "The date (and optionally time) when the implementation guide was published. 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 implementation guide changes."]
13517 pub date: Option<Box<FHIRDateTime>>,
13518 #[primitive]
13519 #[doc = "The name of the organization or individual that published the implementation guide."]
13520 pub publisher: Option<Box<FHIRString>>,
13521 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
13522 pub contact: Option<Vec<Box<ContactDetail>>>,
13523 #[primitive]
13524 #[doc = "A free text natural language description of the implementation guide from a consumer's perspective."]
13525 pub description: Option<Box<FHIRMarkdown>>,
13526 #[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 implementation guide instances."]
13527 pub useContext: Option<Vec<Box<UsageContext>>>,
13528 #[doc = "A legal or geographic region in which the implementation guide is intended to be used."]
13529 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
13530 #[primitive]
13531 #[doc = "A copyright statement relating to the implementation guide and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the implementation guide."]
13532 pub copyright: Option<Box<FHIRMarkdown>>,
13533 #[primitive]
13534 #[doc = "The NPM package name for this Implementation Guide, used in the NPM package distribution, which is the primary mechanism by which FHIR based tooling manages IG dependencies. This value must be globally unique, and should be assigned with care."]
13535 pub packageId: Box<FHIRId>,
13536 #[primitive]
13537 #[doc = "The license that applies to this Implementation Guide, using an SPDX license code, or 'not-open-source'."]
13538 pub license: Option<Box<terminology::SpdxLicense>>,
13539 #[primitive]
13540 #[cardinality(min = 1usize)]
13541 #[doc = "The version(s) of the FHIR specification that this ImplementationGuide targets - e.g. describes how to use. The value of this element is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 4.0.1. for this version."]
13542 pub fhirVersion: Vec<Box<terminology::FHIRVersion>>,
13543 #[doc = "Another implementation guide that this implementation depends on. Typically, an implementation guide uses value sets, profiles etc.defined in other implementation guides."]
13544 pub dependsOn: Option<Vec<ImplementationGuideDependsOn>>,
13545 #[doc = "A set of profiles that all resources covered by this implementation guide must conform to."]
13546 pub global: Option<Vec<ImplementationGuideGlobal>>,
13547 #[doc = "The information needed by an IG publisher tool to publish the whole implementation guide."]
13548 pub definition: Option<ImplementationGuideDefinition>,
13549 #[doc = "Information about an assembled implementation guide, created by the publication tooling."]
13550 pub manifest: Option<ImplementationGuideManifest>,
13551}
13552#[derive(
13553 Clone,
13554 Reflect,
13555 Debug,
13556 Default,
13557 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13558 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13559)]
13560#[fhir_serialize_type = "complex"]
13561#[doc = "The contact for the health insurance product for a certain purpose."]
13562pub struct InsurancePlanContact {
13563 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13564 pub id: Option<String>,
13565 #[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 manageable, 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."]
13566 pub extension: Option<Vec<Box<Extension>>>,
13567 #[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 manageable, 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)."]
13568 pub modifierExtension: Option<Vec<Box<Extension>>>,
13569 #[doc = "Indicates a purpose for which the contact can be reached."]
13570 pub purpose: Option<Box<CodeableConcept>>,
13571 #[doc = "A name associated with the contact."]
13572 pub name: Option<Box<HumanName>>,
13573 #[doc = "A contact detail (e.g. a telephone number or an email address) by which the party may be contacted."]
13574 pub telecom: Option<Vec<Box<ContactPoint>>>,
13575 #[doc = "Visiting or postal addresses for the contact."]
13576 pub address: Option<Box<Address>>,
13577}
13578#[derive(
13579 Clone,
13580 Reflect,
13581 Debug,
13582 Default,
13583 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13584 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13585)]
13586#[fhir_serialize_type = "complex"]
13587#[doc = "The specific limits on the benefit."]
13588pub struct InsurancePlanCoverageBenefitLimit {
13589 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13590 pub id: Option<String>,
13591 #[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 manageable, 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."]
13592 pub extension: Option<Vec<Box<Extension>>>,
13593 #[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 manageable, 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)."]
13594 pub modifierExtension: Option<Vec<Box<Extension>>>,
13595 #[doc = "The maximum amount of a service item a plan will pay for a covered benefit. For examples. wellness visits, or eyeglasses."]
13596 pub value: Option<Box<Quantity>>,
13597 #[doc = "The specific limit on the benefit."]
13598 pub code: Option<Box<CodeableConcept>>,
13599}
13600#[derive(
13601 Clone,
13602 Reflect,
13603 Debug,
13604 Default,
13605 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13606 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13607)]
13608#[fhir_serialize_type = "complex"]
13609#[doc = "Specific benefits under this type of coverage."]
13610pub struct InsurancePlanCoverageBenefit {
13611 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13612 pub id: Option<String>,
13613 #[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 manageable, 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."]
13614 pub extension: Option<Vec<Box<Extension>>>,
13615 #[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 manageable, 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)."]
13616 pub modifierExtension: Option<Vec<Box<Extension>>>,
13617 #[rename_field = "type"]
13618 #[doc = "Type of benefit (primary care; speciality care; inpatient; outpatient)."]
13619 pub type_: Box<CodeableConcept>,
13620 #[primitive]
13621 #[doc = "The referral requirements to have access/coverage for this benefit."]
13622 pub requirement: Option<Box<FHIRString>>,
13623 #[doc = "The specific limits on the benefit."]
13624 pub limit: Option<Vec<InsurancePlanCoverageBenefitLimit>>,
13625}
13626#[derive(
13627 Clone,
13628 Reflect,
13629 Debug,
13630 Default,
13631 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13632 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13633)]
13634#[fhir_serialize_type = "complex"]
13635#[doc = "Details about the coverage offered by the insurance product."]
13636pub struct InsurancePlanCoverage {
13637 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13638 pub id: Option<String>,
13639 #[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 manageable, 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."]
13640 pub extension: Option<Vec<Box<Extension>>>,
13641 #[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 manageable, 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)."]
13642 pub modifierExtension: Option<Vec<Box<Extension>>>,
13643 #[rename_field = "type"]
13644 #[doc = "Type of coverage (Medical; Dental; Mental Health; Substance Abuse; Vision; Drug; Short Term; Long Term Care; Hospice; Home Health)."]
13645 pub type_: Box<CodeableConcept>,
13646 # [reference (targets = ["Organization"])]
13647 #[doc = "Reference to the network that providing the type of coverage."]
13648 pub network: Option<Vec<Box<Reference>>>,
13649 #[cardinality(min = 1usize)]
13650 #[doc = "Specific benefits under this type of coverage."]
13651 pub benefit: Vec<InsurancePlanCoverageBenefit>,
13652}
13653#[derive(
13654 Clone,
13655 Reflect,
13656 Debug,
13657 Default,
13658 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13659 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13660)]
13661#[fhir_serialize_type = "complex"]
13662#[doc = "Overall costs associated with the plan."]
13663pub struct InsurancePlanPlanGeneralCost {
13664 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13665 pub id: Option<String>,
13666 #[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 manageable, 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."]
13667 pub extension: Option<Vec<Box<Extension>>>,
13668 #[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 manageable, 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)."]
13669 pub modifierExtension: Option<Vec<Box<Extension>>>,
13670 #[rename_field = "type"]
13671 #[doc = "Type of cost."]
13672 pub type_: Option<Box<CodeableConcept>>,
13673 #[primitive]
13674 #[doc = "Number of participants enrolled in the plan."]
13675 pub groupSize: Option<Box<FHIRPositiveInt>>,
13676 #[doc = "Value of the cost."]
13677 pub cost: Option<Box<Money>>,
13678 #[primitive]
13679 #[doc = "Additional information about the general costs associated with this plan."]
13680 pub comment: Option<Box<FHIRString>>,
13681}
13682#[derive(
13683 Clone,
13684 Reflect,
13685 Debug,
13686 Default,
13687 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13688 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13689)]
13690#[fhir_serialize_type = "complex"]
13691#[doc = "List of the costs associated with a specific benefit."]
13692pub struct InsurancePlanPlanSpecificCostBenefitCost {
13693 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13694 pub id: Option<String>,
13695 #[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 manageable, 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."]
13696 pub extension: Option<Vec<Box<Extension>>>,
13697 #[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 manageable, 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)."]
13698 pub modifierExtension: Option<Vec<Box<Extension>>>,
13699 #[rename_field = "type"]
13700 #[doc = "Type of cost (copay; individual cap; family cap; coinsurance; deductible)."]
13701 pub type_: Box<CodeableConcept>,
13702 #[doc = "Whether the cost applies to in-network or out-of-network providers (in-network; out-of-network; other)."]
13703 pub applicability: Option<Box<CodeableConcept>>,
13704 #[doc = "Additional information about the cost, such as information about funding sources (e.g. HSA, HRA, FSA, RRA)."]
13705 pub qualifiers: Option<Vec<Box<CodeableConcept>>>,
13706 #[doc = "The actual cost value. (some of the costs may be represented as percentages rather than currency, e.g. 10% coinsurance)."]
13707 pub value: Option<Box<Quantity>>,
13708}
13709#[derive(
13710 Clone,
13711 Reflect,
13712 Debug,
13713 Default,
13714 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13715 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13716)]
13717#[fhir_serialize_type = "complex"]
13718#[doc = "List of the specific benefits under this category of benefit."]
13719pub struct InsurancePlanPlanSpecificCostBenefit {
13720 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13721 pub id: Option<String>,
13722 #[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 manageable, 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."]
13723 pub extension: Option<Vec<Box<Extension>>>,
13724 #[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 manageable, 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)."]
13725 pub modifierExtension: Option<Vec<Box<Extension>>>,
13726 #[rename_field = "type"]
13727 #[doc = "Type of specific benefit (preventative; primary care office visit; speciality office visit; hospitalization; emergency room; urgent care)."]
13728 pub type_: Box<CodeableConcept>,
13729 #[doc = "List of the costs associated with a specific benefit."]
13730 pub cost: Option<Vec<InsurancePlanPlanSpecificCostBenefitCost>>,
13731}
13732#[derive(
13733 Clone,
13734 Reflect,
13735 Debug,
13736 Default,
13737 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13738 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13739)]
13740#[fhir_serialize_type = "complex"]
13741#[doc = "Costs associated with the coverage provided by the product."]
13742pub struct InsurancePlanPlanSpecificCost {
13743 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13744 pub id: Option<String>,
13745 #[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 manageable, 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."]
13746 pub extension: Option<Vec<Box<Extension>>>,
13747 #[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 manageable, 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)."]
13748 pub modifierExtension: Option<Vec<Box<Extension>>>,
13749 #[doc = "General category of benefit (Medical; Dental; Vision; Drug; Mental Health; Substance Abuse; Hospice, Home Health)."]
13750 pub category: Box<CodeableConcept>,
13751 #[doc = "List of the specific benefits under this category of benefit."]
13752 pub benefit: Option<Vec<InsurancePlanPlanSpecificCostBenefit>>,
13753}
13754#[derive(
13755 Clone,
13756 Reflect,
13757 Debug,
13758 Default,
13759 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13760 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13761)]
13762#[fhir_serialize_type = "complex"]
13763#[doc = "Details about an insurance plan."]
13764pub struct InsurancePlanPlan {
13765 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13766 pub id: Option<String>,
13767 #[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 manageable, 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."]
13768 pub extension: Option<Vec<Box<Extension>>>,
13769 #[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 manageable, 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)."]
13770 pub modifierExtension: Option<Vec<Box<Extension>>>,
13771 #[rename_field = "identifier"]
13772 #[doc = "Business identifiers assigned to this health insurance plan which remain constant as the resource is updated and propagates from server to server."]
13773 pub identifier_: Option<Vec<Box<Identifier>>>,
13774 #[rename_field = "type"]
13775 #[doc = "Type of plan. For example, \"Platinum\" or \"High Deductable\"."]
13776 pub type_: Option<Box<CodeableConcept>>,
13777 # [reference (targets = ["Location"])]
13778 #[doc = "The geographic region in which a health insurance plan's benefits apply."]
13779 pub coverageArea: Option<Vec<Box<Reference>>>,
13780 # [reference (targets = ["Organization"])]
13781 #[doc = "Reference to the network that providing the type of coverage."]
13782 pub network: Option<Vec<Box<Reference>>>,
13783 #[doc = "Overall costs associated with the plan."]
13784 pub generalCost: Option<Vec<InsurancePlanPlanGeneralCost>>,
13785 #[doc = "Costs associated with the coverage provided by the product."]
13786 pub specificCost: Option<Vec<InsurancePlanPlanSpecificCost>>,
13787}
13788#[derive(
13789 Clone,
13790 Reflect,
13791 Debug,
13792 Default,
13793 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13794 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13795)]
13796#[fhir_serialize_type = "resource"]
13797#[doc = "Details of a Health Insurance product/plan provided by an organization."]
13798pub struct InsurancePlan {
13799 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
13800 pub id: Option<String>,
13801 #[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."]
13802 pub meta: Option<Box<Meta>>,
13803 #[primitive]
13804 #[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."]
13805 pub implicitRules: Option<Box<FHIRUri>>,
13806 #[primitive]
13807 #[doc = "The base language in which the resource is written."]
13808 pub language: Option<Box<FHIRCode>>,
13809 #[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."]
13810 pub text: Option<Box<Narrative>>,
13811 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
13812 pub contained: Option<Vec<Box<Resource>>>,
13813 #[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 manageable, 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."]
13814 pub extension: Option<Vec<Box<Extension>>>,
13815 #[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 manageable, 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)."]
13816 pub modifierExtension: Option<Vec<Box<Extension>>>,
13817 #[rename_field = "identifier"]
13818 #[doc = "Business identifiers assigned to this health insurance product which remain constant as the resource is updated and propagates from server to server."]
13819 pub identifier_: Option<Vec<Box<Identifier>>>,
13820 #[primitive]
13821 #[doc = "The current state of the health insurance product."]
13822 pub status: Option<Box<terminology::PublicationStatus>>,
13823 #[rename_field = "type"]
13824 #[doc = "The kind of health insurance product."]
13825 pub type_: Option<Vec<Box<CodeableConcept>>>,
13826 #[primitive]
13827 #[doc = "Official name of the health insurance product as designated by the owner."]
13828 pub name: Option<Box<FHIRString>>,
13829 #[primitive]
13830 #[doc = "A list of alternate names that the product is known as, or was known as in the past."]
13831 pub alias: Option<Vec<Box<FHIRString>>>,
13832 #[doc = "The period of time that the health insurance product is available."]
13833 pub period: Option<Box<Period>>,
13834 # [reference (targets = ["Organization"])]
13835 #[doc = "The entity that is providing the health insurance product and underwriting the risk. This is typically an insurance carriers, other third-party payers, or health plan sponsors comonly referred to as 'payers'."]
13836 pub ownedBy: Option<Box<Reference>>,
13837 # [reference (targets = ["Organization"])]
13838 #[doc = "An organization which administer other services such as underwriting, customer service and/or claims processing on behalf of the health insurance product owner."]
13839 pub administeredBy: Option<Box<Reference>>,
13840 # [reference (targets = ["Location"])]
13841 #[doc = "The geographic region in which a health insurance product's benefits apply."]
13842 pub coverageArea: Option<Vec<Box<Reference>>>,
13843 #[doc = "The contact for the health insurance product for a certain purpose."]
13844 pub contact: Option<Vec<InsurancePlanContact>>,
13845 # [reference (targets = ["Endpoint"])]
13846 #[doc = "The technical endpoints providing access to services operated for the health insurance product."]
13847 pub endpoint: Option<Vec<Box<Reference>>>,
13848 # [reference (targets = ["Organization"])]
13849 #[doc = "Reference to the network included in the health insurance product."]
13850 pub network: Option<Vec<Box<Reference>>>,
13851 #[doc = "Details about the coverage offered by the insurance product."]
13852 pub coverage: Option<Vec<InsurancePlanCoverage>>,
13853 #[doc = "Details about an insurance plan."]
13854 pub plan: Option<Vec<InsurancePlanPlan>>,
13855}
13856#[derive(
13857 Clone,
13858 Reflect,
13859 Debug,
13860 Default,
13861 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13862 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13863)]
13864#[fhir_serialize_type = "complex"]
13865#[doc = "Indicates who or what performed or participated in the charged service."]
13866pub struct InvoiceParticipant {
13867 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13868 pub id: Option<String>,
13869 #[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 manageable, 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."]
13870 pub extension: Option<Vec<Box<Extension>>>,
13871 #[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 manageable, 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)."]
13872 pub modifierExtension: Option<Vec<Box<Extension>>>,
13873 #[doc = "Describes the type of involvement (e.g. transcriptionist, creator etc.). If the invoice has been created automatically, the Participant may be a billing engine or another kind of device."]
13874 pub role: Option<Box<CodeableConcept>>,
13875 # [reference (targets = ["Practitioner" , "Organization" , "Patient" , "PractitionerRole" , "Device" , "RelatedPerson"])]
13876 #[doc = "The device, practitioner, etc. who performed or participated in the service."]
13877 pub actor: Box<Reference>,
13878}
13879#[derive(
13880 Clone,
13881 Reflect,
13882 Debug,
13883 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13884 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13885)]
13886#[fhir_serialize_type = "typechoice"]
13887#[type_choice_field_name = "chargeItem"]
13888pub enum InvoiceLineItemChargeItemTypeChoice {
13889 # [reference (targets = ["ChargeItem"])]
13890 Reference(Box<Reference>),
13891 CodeableConcept(Box<CodeableConcept>),
13892}
13893impl Default for InvoiceLineItemChargeItemTypeChoice {
13894 fn default() -> Self {
13895 InvoiceLineItemChargeItemTypeChoice::Reference(Box::new(Default::default()))
13896 }
13897}
13898#[derive(
13899 Clone,
13900 Reflect,
13901 Debug,
13902 Default,
13903 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13904 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13905)]
13906#[fhir_serialize_type = "complex"]
13907#[doc = "The price for a ChargeItem may be calculated as a base price with surcharges/deductions that apply in certain conditions. A ChargeItemDefinition resource that defines the prices, factors and conditions that apply to a billing code is currently under development. The priceComponent element can be used to offer transparency to the recipient of the Invoice as to how the prices have been calculated."]
13908pub struct InvoiceLineItemPriceComponent {
13909 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13910 pub id: Option<String>,
13911 #[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 manageable, 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."]
13912 pub extension: Option<Vec<Box<Extension>>>,
13913 #[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 manageable, 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)."]
13914 pub modifierExtension: Option<Vec<Box<Extension>>>,
13915 #[rename_field = "type"]
13916 #[primitive]
13917 #[doc = "This code identifies the type of the component."]
13918 pub type_: Box<terminology::InvoicePriceComponentType>,
13919 #[doc = "A code that identifies the component. Codes may be used to differentiate between kinds of taxes, surcharges, discounts etc."]
13920 pub code: Option<Box<CodeableConcept>>,
13921 #[primitive]
13922 #[doc = "The factor that has been applied on the base price for calculating this component."]
13923 pub factor: Option<Box<FHIRDecimal>>,
13924 #[doc = "The amount calculated for this component."]
13925 pub amount: Option<Box<Money>>,
13926}
13927#[derive(
13928 Clone,
13929 Reflect,
13930 Debug,
13931 Default,
13932 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13933 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13934)]
13935#[fhir_serialize_type = "complex"]
13936#[doc = "Each line item represents one charge for goods and services rendered. Details such as date, code and amount are found in the referenced ChargeItem resource."]
13937pub struct InvoiceLineItem {
13938 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
13939 pub id: Option<String>,
13940 #[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 manageable, 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."]
13941 pub extension: Option<Vec<Box<Extension>>>,
13942 #[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 manageable, 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)."]
13943 pub modifierExtension: Option<Vec<Box<Extension>>>,
13944 #[primitive]
13945 #[doc = "Sequence in which the items appear on the invoice."]
13946 pub sequence: Option<Box<FHIRPositiveInt>>,
13947 # [type_choice_variants (complex = ["chargeItemReference" , "chargeItemCodeableConcept"] , primitive = [])]
13948 #[doc = "The ChargeItem contains information such as the billing code, date, amount etc. If no further details are required for the lineItem, inline billing codes can be added using the CodeableConcept data type instead of the Reference."]
13949 pub chargeItem: InvoiceLineItemChargeItemTypeChoice,
13950 #[doc = "The price for a ChargeItem may be calculated as a base price with surcharges/deductions that apply in certain conditions. A ChargeItemDefinition resource that defines the prices, factors and conditions that apply to a billing code is currently under development. The priceComponent element can be used to offer transparency to the recipient of the Invoice as to how the prices have been calculated."]
13951 pub priceComponent: Option<Vec<InvoiceLineItemPriceComponent>>,
13952}
13953#[derive(
13954 Clone,
13955 Reflect,
13956 Debug,
13957 Default,
13958 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
13959 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
13960)]
13961#[fhir_serialize_type = "resource"]
13962#[doc = "Invoice containing collected ChargeItems from an Account with calculated individual and total price for Billing purpose."]
13963pub struct Invoice {
13964 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
13965 pub id: Option<String>,
13966 #[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."]
13967 pub meta: Option<Box<Meta>>,
13968 #[primitive]
13969 #[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."]
13970 pub implicitRules: Option<Box<FHIRUri>>,
13971 #[primitive]
13972 #[doc = "The base language in which the resource is written."]
13973 pub language: Option<Box<FHIRCode>>,
13974 #[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."]
13975 pub text: Option<Box<Narrative>>,
13976 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
13977 pub contained: Option<Vec<Box<Resource>>>,
13978 #[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 manageable, 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."]
13979 pub extension: Option<Vec<Box<Extension>>>,
13980 #[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 manageable, 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)."]
13981 pub modifierExtension: Option<Vec<Box<Extension>>>,
13982 #[rename_field = "identifier"]
13983 #[doc = "Identifier of this Invoice, often used for reference in correspondence about this invoice or for tracking of payments."]
13984 pub identifier_: Option<Vec<Box<Identifier>>>,
13985 #[primitive]
13986 #[doc = "The current state of the Invoice."]
13987 pub status: Box<terminology::InvoiceStatus>,
13988 #[primitive]
13989 #[doc = "In case of Invoice cancellation a reason must be given (entered in error, superseded by corrected invoice etc.)."]
13990 pub cancelledReason: Option<Box<FHIRString>>,
13991 #[rename_field = "type"]
13992 #[doc = "Type of Invoice depending on domain, realm an usage (e.g. internal/external, dental, preliminary)."]
13993 pub type_: Option<Box<CodeableConcept>>,
13994 # [reference (targets = ["Patient" , "Group"])]
13995 #[doc = "The individual or set of individuals receiving the goods and services billed in this invoice."]
13996 pub subject: Option<Box<Reference>>,
13997 # [reference (targets = ["Organization" , "Patient" , "RelatedPerson"])]
13998 #[doc = "The individual or Organization responsible for balancing of this invoice."]
13999 pub recipient: Option<Box<Reference>>,
14000 #[primitive]
14001 #[doc = "Date/time(s) of when this Invoice was posted."]
14002 pub date: Option<Box<FHIRDateTime>>,
14003 #[doc = "Indicates who or what performed or participated in the charged service."]
14004 pub participant: Option<Vec<InvoiceParticipant>>,
14005 # [reference (targets = ["Organization"])]
14006 #[doc = "The organizationissuing the Invoice."]
14007 pub issuer: Option<Box<Reference>>,
14008 # [reference (targets = ["Account"])]
14009 #[doc = "Account which is supposed to be balanced with this Invoice."]
14010 pub account: Option<Box<Reference>>,
14011 #[doc = "Each line item represents one charge for goods and services rendered. Details such as date, code and amount are found in the referenced ChargeItem resource."]
14012 pub lineItem: Option<Vec<InvoiceLineItem>>,
14013 #[doc = "The total amount for the Invoice may be calculated as the sum of the line items with surcharges/deductions that apply in certain conditions. The priceComponent element can be used to offer transparency to the recipient of the Invoice of how the total price was calculated."]
14014 pub totalPriceComponent: Option<Vec<InvoiceLineItemPriceComponent>>,
14015 #[doc = "Invoice total , taxes excluded."]
14016 pub totalNet: Option<Box<Money>>,
14017 #[doc = "Invoice total, tax included."]
14018 pub totalGross: Option<Box<Money>>,
14019 #[primitive]
14020 #[doc = "Payment details such as banking details, period of payment, deductibles, methods of payment."]
14021 pub paymentTerms: Option<Box<FHIRMarkdown>>,
14022 #[doc = "Comments made about the invoice by the issuer, subject, or other participants."]
14023 pub note: Option<Vec<Box<Annotation>>>,
14024}
14025#[derive(
14026 Clone,
14027 Reflect,
14028 Debug,
14029 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14030 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14031)]
14032#[fhir_serialize_type = "typechoice"]
14033#[type_choice_field_name = "subject"]
14034pub enum LibrarySubjectTypeChoice {
14035 CodeableConcept(Box<CodeableConcept>),
14036 # [reference (targets = ["Group"])]
14037 Reference(Box<Reference>),
14038}
14039impl Default for LibrarySubjectTypeChoice {
14040 fn default() -> Self {
14041 LibrarySubjectTypeChoice::CodeableConcept(Box::new(Default::default()))
14042 }
14043}
14044#[derive(
14045 Clone,
14046 Reflect,
14047 Debug,
14048 Default,
14049 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14050 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14051)]
14052#[fhir_serialize_type = "resource"]
14053#[doc = "The Library resource is a general-purpose container for knowledge asset definitions. It can be used to describe and expose existing knowledge assets such as logic libraries and information model descriptions, as well as to describe a collection of knowledge assets."]
14054pub struct Library {
14055 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
14056 pub id: Option<String>,
14057 #[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."]
14058 pub meta: Option<Box<Meta>>,
14059 #[primitive]
14060 #[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."]
14061 pub implicitRules: Option<Box<FHIRUri>>,
14062 #[primitive]
14063 #[doc = "The base language in which the resource is written."]
14064 pub language: Option<Box<FHIRCode>>,
14065 #[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."]
14066 pub text: Option<Box<Narrative>>,
14067 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
14068 pub contained: Option<Vec<Box<Resource>>>,
14069 #[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 manageable, 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."]
14070 pub extension: Option<Vec<Box<Extension>>>,
14071 #[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 manageable, 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)."]
14072 pub modifierExtension: Option<Vec<Box<Extension>>>,
14073 #[primitive]
14074 #[doc = "An absolute URI that is used to identify this library 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 at which an authoritative instance of this library is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the library is stored on different servers."]
14075 pub url: Option<Box<FHIRUri>>,
14076 #[rename_field = "identifier"]
14077 #[doc = "A formal identifier that is used to identify this library when it is represented in other formats, or referenced in a specification, model, design or an instance. e.g. CMS or NQF identifiers for a measure artifact. Note that at least one identifier is required for non-experimental active artifacts."]
14078 pub identifier_: Option<Vec<Box<Identifier>>>,
14079 #[primitive]
14080 #[doc = "The identifier that is used to identify this version of the library when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the library 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. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts."]
14081 pub version: Option<Box<FHIRString>>,
14082 #[primitive]
14083 #[doc = "A natural language name identifying the library. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
14084 pub name: Option<Box<FHIRString>>,
14085 #[primitive]
14086 #[doc = "A short, descriptive, user-friendly title for the library."]
14087 pub title: Option<Box<FHIRString>>,
14088 #[primitive]
14089 #[doc = "An explanatory or alternate title for the library giving additional information about its content."]
14090 pub subtitle: Option<Box<FHIRString>>,
14091 #[primitive]
14092 #[doc = "The status of this library. Enables tracking the life-cycle of the content."]
14093 pub status: Box<terminology::PublicationStatus>,
14094 #[primitive]
14095 #[doc = "A Boolean value to indicate that this library is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
14096 pub experimental: Option<Box<FHIRBoolean>>,
14097 #[rename_field = "type"]
14098 #[doc = "Identifies the type of library such as a Logic Library, Model Definition, Asset Collection, or Module Definition."]
14099 pub type_: Box<CodeableConcept>,
14100 # [type_choice_variants (complex = ["subjectCodeableConcept" , "subjectReference"] , primitive = [])]
14101 #[doc = "A code or group definition that describes the intended subject of the contents of the library."]
14102 pub subject: Option<LibrarySubjectTypeChoice>,
14103 #[primitive]
14104 #[doc = "The date (and optionally time) when the library was published. 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 library changes."]
14105 pub date: Option<Box<FHIRDateTime>>,
14106 #[primitive]
14107 #[doc = "The name of the organization or individual that published the library."]
14108 pub publisher: Option<Box<FHIRString>>,
14109 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
14110 pub contact: Option<Vec<Box<ContactDetail>>>,
14111 #[primitive]
14112 #[doc = "A free text natural language description of the library from a consumer's perspective."]
14113 pub description: Option<Box<FHIRMarkdown>>,
14114 #[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 library instances."]
14115 pub useContext: Option<Vec<Box<UsageContext>>>,
14116 #[doc = "A legal or geographic region in which the library is intended to be used."]
14117 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
14118 #[primitive]
14119 #[doc = "Explanation of why this library is needed and why it has been designed as it has."]
14120 pub purpose: Option<Box<FHIRMarkdown>>,
14121 #[primitive]
14122 #[doc = "A detailed description of how the library is used from a clinical perspective."]
14123 pub usage: Option<Box<FHIRString>>,
14124 #[primitive]
14125 #[doc = "A copyright statement relating to the library and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the library."]
14126 pub copyright: Option<Box<FHIRMarkdown>>,
14127 #[primitive]
14128 #[doc = "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage."]
14129 pub approvalDate: Option<Box<FHIRDate>>,
14130 #[primitive]
14131 #[doc = "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date."]
14132 pub lastReviewDate: Option<Box<FHIRDate>>,
14133 #[doc = "The period during which the library content was or is planned to be in active use."]
14134 pub effectivePeriod: Option<Box<Period>>,
14135 #[doc = "Descriptive topics related to the content of the library. Topics provide a high-level categorization of the library that can be useful for filtering and searching."]
14136 pub topic: Option<Vec<Box<CodeableConcept>>>,
14137 #[doc = "An individiual or organization primarily involved in the creation and maintenance of the content."]
14138 pub author: Option<Vec<Box<ContactDetail>>>,
14139 #[doc = "An individual or organization primarily responsible for internal coherence of the content."]
14140 pub editor: Option<Vec<Box<ContactDetail>>>,
14141 #[doc = "An individual or organization primarily responsible for review of some aspect of the content."]
14142 pub reviewer: Option<Vec<Box<ContactDetail>>>,
14143 #[doc = "An individual or organization responsible for officially endorsing the content for use in some setting."]
14144 pub endorser: Option<Vec<Box<ContactDetail>>>,
14145 #[doc = "Related artifacts such as additional documentation, justification, or bibliographic references."]
14146 pub relatedArtifact: Option<Vec<Box<RelatedArtifact>>>,
14147 #[doc = "The parameter element defines parameters used by the library."]
14148 pub parameter: Option<Vec<Box<ParameterDefinition>>>,
14149 #[doc = "Describes a set of data that must be provided in order to be able to successfully perform the computations defined by the library."]
14150 pub dataRequirement: Option<Vec<Box<DataRequirement>>>,
14151 #[doc = "The content of the library as an Attachment. The content may be a reference to a url, or may be directly embedded as a base-64 string. Either way, the contentType of the attachment determines how to interpret the content."]
14152 pub content: Option<Vec<Box<Attachment>>>,
14153}
14154#[derive(
14155 Clone,
14156 Reflect,
14157 Debug,
14158 Default,
14159 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14160 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14161)]
14162#[fhir_serialize_type = "complex"]
14163#[doc = "Identifies which record considered as the reference to the same real-world occurrence as well as how the items should be evaluated within the collection of linked items."]
14164pub struct LinkageItem {
14165 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
14166 pub id: Option<String>,
14167 #[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 manageable, 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."]
14168 pub extension: Option<Vec<Box<Extension>>>,
14169 #[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 manageable, 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)."]
14170 pub modifierExtension: Option<Vec<Box<Extension>>>,
14171 #[rename_field = "type"]
14172 #[primitive]
14173 #[doc = "Distinguishes which item is \"source of truth\" (if any) and which items are no longer considered to be current representations."]
14174 pub type_: Box<terminology::LinkageType>,
14175 # [reference (targets = ["Resource"])]
14176 #[doc = "The resource instance being linked as part of the group."]
14177 pub resource: Box<Reference>,
14178}
14179#[derive(
14180 Clone,
14181 Reflect,
14182 Debug,
14183 Default,
14184 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14185 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14186)]
14187#[fhir_serialize_type = "resource"]
14188#[doc = "Identifies two or more records (resource instances) that refer to the same real-world \"occurrence\"."]
14189pub struct Linkage {
14190 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
14191 pub id: Option<String>,
14192 #[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."]
14193 pub meta: Option<Box<Meta>>,
14194 #[primitive]
14195 #[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."]
14196 pub implicitRules: Option<Box<FHIRUri>>,
14197 #[primitive]
14198 #[doc = "The base language in which the resource is written."]
14199 pub language: Option<Box<FHIRCode>>,
14200 #[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."]
14201 pub text: Option<Box<Narrative>>,
14202 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
14203 pub contained: Option<Vec<Box<Resource>>>,
14204 #[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 manageable, 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."]
14205 pub extension: Option<Vec<Box<Extension>>>,
14206 #[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 manageable, 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)."]
14207 pub modifierExtension: Option<Vec<Box<Extension>>>,
14208 #[primitive]
14209 #[doc = "Indicates whether the asserted set of linkages are considered to be \"in effect\"."]
14210 pub active: Option<Box<FHIRBoolean>>,
14211 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
14212 #[doc = "Identifies the user or organization responsible for asserting the linkages as well as the user or organization who establishes the context in which the nature of each linkage is evaluated."]
14213 pub author: Option<Box<Reference>>,
14214 #[cardinality(min = 1usize)]
14215 #[doc = "Identifies which record considered as the reference to the same real-world occurrence as well as how the items should be evaluated within the collection of linked items."]
14216 pub item: Vec<LinkageItem>,
14217}
14218#[derive(
14219 Clone,
14220 Reflect,
14221 Debug,
14222 Default,
14223 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14224 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14225)]
14226#[fhir_serialize_type = "complex"]
14227#[doc = "Entries in this list."]
14228pub struct ListEntry {
14229 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
14230 pub id: Option<String>,
14231 #[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 manageable, 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."]
14232 pub extension: Option<Vec<Box<Extension>>>,
14233 #[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 manageable, 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)."]
14234 pub modifierExtension: Option<Vec<Box<Extension>>>,
14235 #[doc = "The flag allows the system constructing the list to indicate the role and significance of the item in the list."]
14236 pub flag: Option<Box<CodeableConcept>>,
14237 #[primitive]
14238 #[doc = "True if this item is marked as deleted in the list."]
14239 pub deleted: Option<Box<FHIRBoolean>>,
14240 #[primitive]
14241 #[doc = "When this item was added to the list."]
14242 pub date: Option<Box<FHIRDateTime>>,
14243 # [reference (targets = ["Resource"])]
14244 #[doc = "A reference to the actual resource from which data was derived."]
14245 pub item: Box<Reference>,
14246}
14247#[derive(
14248 Clone,
14249 Reflect,
14250 Debug,
14251 Default,
14252 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14253 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14254)]
14255#[fhir_serialize_type = "resource"]
14256#[doc = "A list is a curated collection of resources."]
14257pub struct List {
14258 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
14259 pub id: Option<String>,
14260 #[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."]
14261 pub meta: Option<Box<Meta>>,
14262 #[primitive]
14263 #[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."]
14264 pub implicitRules: Option<Box<FHIRUri>>,
14265 #[primitive]
14266 #[doc = "The base language in which the resource is written."]
14267 pub language: Option<Box<FHIRCode>>,
14268 #[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."]
14269 pub text: Option<Box<Narrative>>,
14270 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
14271 pub contained: Option<Vec<Box<Resource>>>,
14272 #[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 manageable, 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."]
14273 pub extension: Option<Vec<Box<Extension>>>,
14274 #[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 manageable, 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)."]
14275 pub modifierExtension: Option<Vec<Box<Extension>>>,
14276 #[rename_field = "identifier"]
14277 #[doc = "Identifier for the List assigned for business purposes outside the context of FHIR."]
14278 pub identifier_: Option<Vec<Box<Identifier>>>,
14279 #[primitive]
14280 #[doc = "Indicates the current state of this list."]
14281 pub status: Box<terminology::ListStatus>,
14282 #[primitive]
14283 #[doc = "How this list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted."]
14284 pub mode: Box<terminology::ListMode>,
14285 #[primitive]
14286 #[doc = "A label for the list assigned by the author."]
14287 pub title: Option<Box<FHIRString>>,
14288 #[doc = "This code defines the purpose of the list - why it was created."]
14289 pub code: Option<Box<CodeableConcept>>,
14290 # [reference (targets = ["Patient" , "Group" , "Device" , "Location"])]
14291 #[doc = "The common subject (or patient) of the resources that are in the list if there is one."]
14292 pub subject: Option<Box<Reference>>,
14293 # [reference (targets = ["Encounter"])]
14294 #[doc = "The encounter that is the context in which this list was created."]
14295 pub encounter: Option<Box<Reference>>,
14296 #[primitive]
14297 #[doc = "The date that the list was prepared."]
14298 pub date: Option<Box<FHIRDateTime>>,
14299 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Patient" , "Device"])]
14300 #[doc = "The entity responsible for deciding what the contents of the list were. Where the list was created by a human, this is the same as the author of the list."]
14301 pub source: Option<Box<Reference>>,
14302 #[doc = "What order applies to the items in the list."]
14303 pub orderedBy: Option<Box<CodeableConcept>>,
14304 #[doc = "Comments that apply to the overall list."]
14305 pub note: Option<Vec<Box<Annotation>>>,
14306 #[doc = "Entries in this list."]
14307 pub entry: Option<Vec<ListEntry>>,
14308 #[doc = "If the list is empty, why the list is empty."]
14309 pub emptyReason: Option<Box<CodeableConcept>>,
14310}
14311#[derive(
14312 Clone,
14313 Reflect,
14314 Debug,
14315 Default,
14316 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14317 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14318)]
14319#[fhir_serialize_type = "complex"]
14320#[doc = "The absolute geographic location of the Location, expressed using the WGS84 datum (This is the same co-ordinate system used in KML)."]
14321pub struct LocationPosition {
14322 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
14323 pub id: Option<String>,
14324 #[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 manageable, 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."]
14325 pub extension: Option<Vec<Box<Extension>>>,
14326 #[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 manageable, 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)."]
14327 pub modifierExtension: Option<Vec<Box<Extension>>>,
14328 #[primitive]
14329 #[doc = "Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below)."]
14330 pub longitude: Box<FHIRDecimal>,
14331 #[primitive]
14332 #[doc = "Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below)."]
14333 pub latitude: Box<FHIRDecimal>,
14334 #[primitive]
14335 #[doc = "Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below)."]
14336 pub altitude: Option<Box<FHIRDecimal>>,
14337}
14338#[derive(
14339 Clone,
14340 Reflect,
14341 Debug,
14342 Default,
14343 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14344 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14345)]
14346#[fhir_serialize_type = "complex"]
14347#[doc = "What days/times during a week is this location usually open."]
14348pub struct LocationHoursOfOperation {
14349 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
14350 pub id: Option<String>,
14351 #[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 manageable, 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."]
14352 pub extension: Option<Vec<Box<Extension>>>,
14353 #[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 manageable, 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)."]
14354 pub modifierExtension: Option<Vec<Box<Extension>>>,
14355 #[primitive]
14356 #[doc = "Indicates which days of the week are available between the start and end Times."]
14357 pub daysOfWeek: Option<Vec<Box<terminology::DaysOfWeek>>>,
14358 #[primitive]
14359 #[doc = "The Location is open all day."]
14360 pub allDay: Option<Box<FHIRBoolean>>,
14361 #[primitive]
14362 #[doc = "Time that the Location opens."]
14363 pub openingTime: Option<Box<FHIRTime>>,
14364 #[primitive]
14365 #[doc = "Time that the Location closes."]
14366 pub closingTime: Option<Box<FHIRTime>>,
14367}
14368#[derive(
14369 Clone,
14370 Reflect,
14371 Debug,
14372 Default,
14373 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14374 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14375)]
14376#[fhir_serialize_type = "resource"]
14377#[doc = "Details and position information for a physical place where services are provided and resources and participants may be stored, found, contained, or accommodated."]
14378pub struct Location {
14379 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
14380 pub id: Option<String>,
14381 #[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."]
14382 pub meta: Option<Box<Meta>>,
14383 #[primitive]
14384 #[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."]
14385 pub implicitRules: Option<Box<FHIRUri>>,
14386 #[primitive]
14387 #[doc = "The base language in which the resource is written."]
14388 pub language: Option<Box<FHIRCode>>,
14389 #[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."]
14390 pub text: Option<Box<Narrative>>,
14391 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
14392 pub contained: Option<Vec<Box<Resource>>>,
14393 #[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 manageable, 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."]
14394 pub extension: Option<Vec<Box<Extension>>>,
14395 #[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 manageable, 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)."]
14396 pub modifierExtension: Option<Vec<Box<Extension>>>,
14397 #[rename_field = "identifier"]
14398 #[doc = "Unique code or number identifying the location to its users."]
14399 pub identifier_: Option<Vec<Box<Identifier>>>,
14400 #[primitive]
14401 #[doc = "The status property covers the general availability of the resource, not the current value which may be covered by the operationStatus, or by a schedule/slots if they are configured for the location."]
14402 pub status: Option<Box<terminology::LocationStatus>>,
14403 #[doc = "The operational status covers operation values most relevant to beds (but can also apply to rooms/units/chairs/etc. such as an isolation unit/dialysis chair). This typically covers concepts such as contamination, housekeeping, and other activities like maintenance."]
14404 pub operationalStatus: Option<Box<Coding>>,
14405 #[primitive]
14406 #[doc = "Name of the location as used by humans. Does not need to be unique."]
14407 pub name: Option<Box<FHIRString>>,
14408 #[primitive]
14409 #[doc = "A list of alternate names that the location is known as, or was known as, in the past."]
14410 pub alias: Option<Vec<Box<FHIRString>>>,
14411 #[primitive]
14412 #[doc = "Description of the Location, which helps in finding or referencing the place."]
14413 pub description: Option<Box<FHIRString>>,
14414 #[primitive]
14415 #[doc = "Indicates whether a resource instance represents a specific location or a class of locations."]
14416 pub mode: Option<Box<terminology::LocationMode>>,
14417 #[rename_field = "type"]
14418 #[doc = "Indicates the type of function performed at the location."]
14419 pub type_: Option<Vec<Box<CodeableConcept>>>,
14420 #[doc = "The contact details of communication devices available at the location. This can include phone numbers, fax numbers, mobile numbers, email addresses and web sites."]
14421 pub telecom: Option<Vec<Box<ContactPoint>>>,
14422 #[doc = "Physical location."]
14423 pub address: Option<Box<Address>>,
14424 #[doc = "Physical form of the location, e.g. building, room, vehicle, road."]
14425 pub physicalType: Option<Box<CodeableConcept>>,
14426 #[doc = "The absolute geographic location of the Location, expressed using the WGS84 datum (This is the same co-ordinate system used in KML)."]
14427 pub position: Option<LocationPosition>,
14428 # [reference (targets = ["Organization"])]
14429 #[doc = "The organization responsible for the provisioning and upkeep of the location."]
14430 pub managingOrganization: Option<Box<Reference>>,
14431 # [reference (targets = ["Location"])]
14432 #[doc = "Another Location of which this Location is physically a part of."]
14433 pub partOf: Option<Box<Reference>>,
14434 #[doc = "What days/times during a week is this location usually open."]
14435 pub hoursOfOperation: Option<Vec<LocationHoursOfOperation>>,
14436 #[primitive]
14437 #[doc = "A description of when the locations opening ours are different to normal, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as detailed in the opening hours Times."]
14438 pub availabilityExceptions: Option<Box<FHIRString>>,
14439 # [reference (targets = ["Endpoint"])]
14440 #[doc = "Technical endpoints providing access to services operated for the location."]
14441 pub endpoint: Option<Vec<Box<Reference>>>,
14442}
14443#[derive(
14444 Clone,
14445 Reflect,
14446 Debug,
14447 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14448 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14449)]
14450#[fhir_serialize_type = "typechoice"]
14451#[type_choice_field_name = "subject"]
14452pub enum MeasureSubjectTypeChoice {
14453 CodeableConcept(Box<CodeableConcept>),
14454 # [reference (targets = ["Group"])]
14455 Reference(Box<Reference>),
14456}
14457impl Default for MeasureSubjectTypeChoice {
14458 fn default() -> Self {
14459 MeasureSubjectTypeChoice::CodeableConcept(Box::new(Default::default()))
14460 }
14461}
14462#[derive(
14463 Clone,
14464 Reflect,
14465 Debug,
14466 Default,
14467 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14468 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14469)]
14470#[fhir_serialize_type = "complex"]
14471#[doc = "A population criteria for the measure."]
14472pub struct MeasureGroupPopulation {
14473 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
14474 pub id: Option<String>,
14475 #[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 manageable, 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."]
14476 pub extension: Option<Vec<Box<Extension>>>,
14477 #[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 manageable, 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)."]
14478 pub modifierExtension: Option<Vec<Box<Extension>>>,
14479 #[doc = "The type of population criteria."]
14480 pub code: Option<Box<CodeableConcept>>,
14481 #[primitive]
14482 #[doc = "The human readable description of this population criteria."]
14483 pub description: Option<Box<FHIRString>>,
14484 #[doc = "An expression that specifies the criteria for the population, typically the name of an expression in a library."]
14485 pub criteria: Box<Expression>,
14486}
14487#[derive(
14488 Clone,
14489 Reflect,
14490 Debug,
14491 Default,
14492 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14493 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14494)]
14495#[fhir_serialize_type = "complex"]
14496#[doc = "A component of the stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path."]
14497pub struct MeasureGroupStratifierComponent {
14498 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
14499 pub id: Option<String>,
14500 #[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 manageable, 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."]
14501 pub extension: Option<Vec<Box<Extension>>>,
14502 #[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 manageable, 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)."]
14503 pub modifierExtension: Option<Vec<Box<Extension>>>,
14504 #[doc = "Indicates a meaning for the stratifier component. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures."]
14505 pub code: Option<Box<CodeableConcept>>,
14506 #[primitive]
14507 #[doc = "The human readable description of this stratifier criteria component."]
14508 pub description: Option<Box<FHIRString>>,
14509 #[doc = "An expression that specifies the criteria for this component of the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element."]
14510 pub criteria: Box<Expression>,
14511}
14512#[derive(
14513 Clone,
14514 Reflect,
14515 Debug,
14516 Default,
14517 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14518 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14519)]
14520#[fhir_serialize_type = "complex"]
14521#[doc = "The stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path."]
14522pub struct MeasureGroupStratifier {
14523 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
14524 pub id: Option<String>,
14525 #[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 manageable, 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."]
14526 pub extension: Option<Vec<Box<Extension>>>,
14527 #[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 manageable, 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)."]
14528 pub modifierExtension: Option<Vec<Box<Extension>>>,
14529 #[doc = "Indicates a meaning for the stratifier. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing stratifiers to be correlated across measures."]
14530 pub code: Option<Box<CodeableConcept>>,
14531 #[primitive]
14532 #[doc = "The human readable description of this stratifier criteria."]
14533 pub description: Option<Box<FHIRString>>,
14534 #[doc = "An expression that specifies the criteria for the stratifier. This is typically the name of an expression defined within a referenced library, but it may also be a path to a stratifier element."]
14535 pub criteria: Option<Box<Expression>>,
14536 #[doc = "A component of the stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path."]
14537 pub component: Option<Vec<MeasureGroupStratifierComponent>>,
14538}
14539#[derive(
14540 Clone,
14541 Reflect,
14542 Debug,
14543 Default,
14544 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14545 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14546)]
14547#[fhir_serialize_type = "complex"]
14548#[doc = "A group of population criteria for the measure."]
14549pub struct MeasureGroup {
14550 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
14551 pub id: Option<String>,
14552 #[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 manageable, 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."]
14553 pub extension: Option<Vec<Box<Extension>>>,
14554 #[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 manageable, 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)."]
14555 pub modifierExtension: Option<Vec<Box<Extension>>>,
14556 #[doc = "Indicates a meaning for the group. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing groups to be correlated across measures."]
14557 pub code: Option<Box<CodeableConcept>>,
14558 #[primitive]
14559 #[doc = "The human readable description of this population group."]
14560 pub description: Option<Box<FHIRString>>,
14561 #[doc = "A population criteria for the measure."]
14562 pub population: Option<Vec<MeasureGroupPopulation>>,
14563 #[doc = "The stratifier criteria for the measure report, specified as either the name of a valid CQL expression defined within a referenced library or a valid FHIR Resource Path."]
14564 pub stratifier: Option<Vec<MeasureGroupStratifier>>,
14565}
14566#[derive(
14567 Clone,
14568 Reflect,
14569 Debug,
14570 Default,
14571 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14572 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14573)]
14574#[fhir_serialize_type = "complex"]
14575#[doc = "The supplemental data criteria for the measure report, specified as either the name of a valid CQL expression within a referenced library, or a valid FHIR Resource Path."]
14576pub struct MeasureSupplementalData {
14577 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
14578 pub id: Option<String>,
14579 #[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 manageable, 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."]
14580 pub extension: Option<Vec<Box<Extension>>>,
14581 #[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 manageable, 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)."]
14582 pub modifierExtension: Option<Vec<Box<Extension>>>,
14583 #[doc = "Indicates a meaning for the supplemental data. This can be as simple as a unique identifier, or it can establish meaning in a broader context by drawing from a terminology, allowing supplemental data to be correlated across measures."]
14584 pub code: Option<Box<CodeableConcept>>,
14585 #[doc = "An indicator of the intended usage for the supplemental data element. Supplemental data indicates the data is additional information requested to augment the measure information. Risk adjustment factor indicates the data is additional information used to calculate risk adjustment factors when applying a risk model to the measure calculation."]
14586 pub usage: Option<Vec<Box<CodeableConcept>>>,
14587 #[primitive]
14588 #[doc = "The human readable description of this supplemental data."]
14589 pub description: Option<Box<FHIRString>>,
14590 #[doc = "The criteria for the supplemental data. This is typically the name of a valid expression defined within a referenced library, but it may also be a path to a specific data element. The criteria defines the data to be returned for this element."]
14591 pub criteria: Box<Expression>,
14592}
14593#[derive(
14594 Clone,
14595 Reflect,
14596 Debug,
14597 Default,
14598 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14599 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14600)]
14601#[fhir_serialize_type = "resource"]
14602#[doc = "The Measure resource provides the definition of a quality measure."]
14603pub struct Measure {
14604 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
14605 pub id: Option<String>,
14606 #[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."]
14607 pub meta: Option<Box<Meta>>,
14608 #[primitive]
14609 #[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."]
14610 pub implicitRules: Option<Box<FHIRUri>>,
14611 #[primitive]
14612 #[doc = "The base language in which the resource is written."]
14613 pub language: Option<Box<FHIRCode>>,
14614 #[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."]
14615 pub text: Option<Box<Narrative>>,
14616 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
14617 pub contained: Option<Vec<Box<Resource>>>,
14618 #[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 manageable, 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."]
14619 pub extension: Option<Vec<Box<Extension>>>,
14620 #[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 manageable, 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)."]
14621 pub modifierExtension: Option<Vec<Box<Extension>>>,
14622 #[primitive]
14623 #[doc = "An absolute URI that is used to identify this measure 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 at which an authoritative instance of this measure is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the measure is stored on different servers."]
14624 pub url: Option<Box<FHIRUri>>,
14625 #[rename_field = "identifier"]
14626 #[doc = "A formal identifier that is used to identify this measure when it is represented in other formats, or referenced in a specification, model, design or an instance."]
14627 pub identifier_: Option<Vec<Box<Identifier>>>,
14628 #[primitive]
14629 #[doc = "The identifier that is used to identify this version of the measure when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the measure 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. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts."]
14630 pub version: Option<Box<FHIRString>>,
14631 #[primitive]
14632 #[doc = "A natural language name identifying the measure. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
14633 pub name: Option<Box<FHIRString>>,
14634 #[primitive]
14635 #[doc = "A short, descriptive, user-friendly title for the measure."]
14636 pub title: Option<Box<FHIRString>>,
14637 #[primitive]
14638 #[doc = "An explanatory or alternate title for the measure giving additional information about its content."]
14639 pub subtitle: Option<Box<FHIRString>>,
14640 #[primitive]
14641 #[doc = "The status of this measure. Enables tracking the life-cycle of the content."]
14642 pub status: Box<terminology::PublicationStatus>,
14643 #[primitive]
14644 #[doc = "A Boolean value to indicate that this measure is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
14645 pub experimental: Option<Box<FHIRBoolean>>,
14646 # [type_choice_variants (complex = ["subjectCodeableConcept" , "subjectReference"] , primitive = [])]
14647 #[doc = "The intended subjects for the measure. If this element is not provided, a Patient subject is assumed, but the subject of the measure can be anything."]
14648 pub subject: Option<MeasureSubjectTypeChoice>,
14649 #[primitive]
14650 #[doc = "The date (and optionally time) when the measure was published. 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 measure changes."]
14651 pub date: Option<Box<FHIRDateTime>>,
14652 #[primitive]
14653 #[doc = "The name of the organization or individual that published the measure."]
14654 pub publisher: Option<Box<FHIRString>>,
14655 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
14656 pub contact: Option<Vec<Box<ContactDetail>>>,
14657 #[primitive]
14658 #[doc = "A free text natural language description of the measure from a consumer's perspective."]
14659 pub description: Option<Box<FHIRMarkdown>>,
14660 #[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 measure instances."]
14661 pub useContext: Option<Vec<Box<UsageContext>>>,
14662 #[doc = "A legal or geographic region in which the measure is intended to be used."]
14663 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
14664 #[primitive]
14665 #[doc = "Explanation of why this measure is needed and why it has been designed as it has."]
14666 pub purpose: Option<Box<FHIRMarkdown>>,
14667 #[primitive]
14668 #[doc = "A detailed description, from a clinical perspective, of how the measure is used."]
14669 pub usage: Option<Box<FHIRString>>,
14670 #[primitive]
14671 #[doc = "A copyright statement relating to the measure and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the measure."]
14672 pub copyright: Option<Box<FHIRMarkdown>>,
14673 #[primitive]
14674 #[doc = "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage."]
14675 pub approvalDate: Option<Box<FHIRDate>>,
14676 #[primitive]
14677 #[doc = "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date."]
14678 pub lastReviewDate: Option<Box<FHIRDate>>,
14679 #[doc = "The period during which the measure content was or is planned to be in active use."]
14680 pub effectivePeriod: Option<Box<Period>>,
14681 #[doc = "Descriptive topics related to the content of the measure. Topics provide a high-level categorization grouping types of measures that can be useful for filtering and searching."]
14682 pub topic: Option<Vec<Box<CodeableConcept>>>,
14683 #[doc = "An individiual or organization primarily involved in the creation and maintenance of the content."]
14684 pub author: Option<Vec<Box<ContactDetail>>>,
14685 #[doc = "An individual or organization primarily responsible for internal coherence of the content."]
14686 pub editor: Option<Vec<Box<ContactDetail>>>,
14687 #[doc = "An individual or organization primarily responsible for review of some aspect of the content."]
14688 pub reviewer: Option<Vec<Box<ContactDetail>>>,
14689 #[doc = "An individual or organization responsible for officially endorsing the content for use in some setting."]
14690 pub endorser: Option<Vec<Box<ContactDetail>>>,
14691 #[doc = "Related artifacts such as additional documentation, justification, or bibliographic references."]
14692 pub relatedArtifact: Option<Vec<Box<RelatedArtifact>>>,
14693 #[primitive]
14694 #[doc = "A reference to a Library resource containing the formal logic used by the measure."]
14695 pub library: Option<Vec<Box<FHIRCanonical>>>,
14696 #[primitive]
14697 #[doc = "Notices and disclaimers regarding the use of the measure or related to intellectual property (such as code systems) referenced by the measure."]
14698 pub disclaimer: Option<Box<FHIRMarkdown>>,
14699 #[doc = "Indicates how the calculation is performed for the measure, including proportion, ratio, continuous-variable, and cohort. The value set is extensible, allowing additional measure scoring types to be represented."]
14700 pub scoring: Option<Box<CodeableConcept>>,
14701 #[doc = "If this is a composite measure, the scoring method used to combine the component measures to determine the composite score."]
14702 pub compositeScoring: Option<Box<CodeableConcept>>,
14703 #[rename_field = "type"]
14704 #[doc = "Indicates whether the measure is used to examine a process, an outcome over time, a patient-reported outcome, or a structure measure such as utilization."]
14705 pub type_: Option<Vec<Box<CodeableConcept>>>,
14706 #[primitive]
14707 #[doc = "A description of the risk adjustment factors that may impact the resulting score for the measure and how they may be accounted for when computing and reporting measure results."]
14708 pub riskAdjustment: Option<Box<FHIRString>>,
14709 #[primitive]
14710 #[doc = "Describes how to combine the information calculated, based on logic in each of several populations, into one summarized result."]
14711 pub rateAggregation: Option<Box<FHIRString>>,
14712 #[primitive]
14713 #[doc = "Provides a succinct statement of the need for the measure. Usually includes statements pertaining to importance criterion: impact, gap in care, and evidence."]
14714 pub rationale: Option<Box<FHIRMarkdown>>,
14715 #[primitive]
14716 #[doc = "Provides a summary of relevant clinical guidelines or other clinical recommendations supporting the measure."]
14717 pub clinicalRecommendationStatement: Option<Box<FHIRMarkdown>>,
14718 #[doc = "Information on whether an increase or decrease in score is the preferred result (e.g., a higher score indicates better quality OR a lower score indicates better quality OR quality is within a range)."]
14719 pub improvementNotation: Option<Box<CodeableConcept>>,
14720 #[primitive]
14721 #[doc = "Provides a description of an individual term used within the measure."]
14722 pub definition: Option<Vec<Box<FHIRMarkdown>>>,
14723 #[primitive]
14724 #[doc = "Additional guidance for the measure including how it can be used in a clinical context, and the intent of the measure."]
14725 pub guidance: Option<Box<FHIRMarkdown>>,
14726 #[doc = "A group of population criteria for the measure."]
14727 pub group: Option<Vec<MeasureGroup>>,
14728 #[doc = "The supplemental data criteria for the measure report, specified as either the name of a valid CQL expression within a referenced library, or a valid FHIR Resource Path."]
14729 pub supplementalData: Option<Vec<MeasureSupplementalData>>,
14730}
14731#[derive(
14732 Clone,
14733 Reflect,
14734 Debug,
14735 Default,
14736 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14737 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14738)]
14739#[fhir_serialize_type = "complex"]
14740#[doc = "The populations that make up the population group, one for each type of population appropriate for the measure."]
14741pub struct MeasureReportGroupPopulation {
14742 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
14743 pub id: Option<String>,
14744 #[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 manageable, 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."]
14745 pub extension: Option<Vec<Box<Extension>>>,
14746 #[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 manageable, 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)."]
14747 pub modifierExtension: Option<Vec<Box<Extension>>>,
14748 #[doc = "The type of the population."]
14749 pub code: Option<Box<CodeableConcept>>,
14750 #[primitive]
14751 #[doc = "The number of members of the population."]
14752 pub count: Option<Box<FHIRInteger>>,
14753 # [reference (targets = ["List"])]
14754 #[doc = "This element refers to a List of subject level MeasureReport resources, one for each subject in this population."]
14755 pub subjectResults: Option<Box<Reference>>,
14756}
14757#[derive(
14758 Clone,
14759 Reflect,
14760 Debug,
14761 Default,
14762 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14763 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14764)]
14765#[fhir_serialize_type = "complex"]
14766#[doc = "A stratifier component value."]
14767pub struct MeasureReportGroupStratifierStratumComponent {
14768 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
14769 pub id: Option<String>,
14770 #[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 manageable, 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."]
14771 pub extension: Option<Vec<Box<Extension>>>,
14772 #[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 manageable, 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)."]
14773 pub modifierExtension: Option<Vec<Box<Extension>>>,
14774 #[doc = "The code for the stratum component value."]
14775 pub code: Box<CodeableConcept>,
14776 #[doc = "The stratum component value."]
14777 pub value: Box<CodeableConcept>,
14778}
14779#[derive(
14780 Clone,
14781 Reflect,
14782 Debug,
14783 Default,
14784 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14785 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14786)]
14787#[fhir_serialize_type = "complex"]
14788#[doc = "The populations that make up the stratum, one for each type of population appropriate to the measure."]
14789pub struct MeasureReportGroupStratifierStratumPopulation {
14790 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
14791 pub id: Option<String>,
14792 #[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 manageable, 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."]
14793 pub extension: Option<Vec<Box<Extension>>>,
14794 #[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 manageable, 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)."]
14795 pub modifierExtension: Option<Vec<Box<Extension>>>,
14796 #[doc = "The type of the population."]
14797 pub code: Option<Box<CodeableConcept>>,
14798 #[primitive]
14799 #[doc = "The number of members of the population in this stratum."]
14800 pub count: Option<Box<FHIRInteger>>,
14801 # [reference (targets = ["List"])]
14802 #[doc = "This element refers to a List of subject level MeasureReport resources, one for each subject in this population in this stratum."]
14803 pub subjectResults: Option<Box<Reference>>,
14804}
14805#[derive(
14806 Clone,
14807 Reflect,
14808 Debug,
14809 Default,
14810 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14811 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14812)]
14813#[fhir_serialize_type = "complex"]
14814#[doc = "This element contains the results for a single stratum within the stratifier. For example, when stratifying on administrative gender, there will be four strata, one for each possible gender value."]
14815pub struct MeasureReportGroupStratifierStratum {
14816 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
14817 pub id: Option<String>,
14818 #[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 manageable, 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."]
14819 pub extension: Option<Vec<Box<Extension>>>,
14820 #[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 manageable, 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)."]
14821 pub modifierExtension: Option<Vec<Box<Extension>>>,
14822 #[doc = "The value for this stratum, expressed as a CodeableConcept. When defining stratifiers on complex values, the value must be rendered such that the value for each stratum within the stratifier is unique."]
14823 pub value: Option<Box<CodeableConcept>>,
14824 #[doc = "A stratifier component value."]
14825 pub component: Option<Vec<MeasureReportGroupStratifierStratumComponent>>,
14826 #[doc = "The populations that make up the stratum, one for each type of population appropriate to the measure."]
14827 pub population: Option<Vec<MeasureReportGroupStratifierStratumPopulation>>,
14828 #[doc = "The measure score for this stratum, calculated as appropriate for the measure type and scoring method, and based on only the members of this stratum."]
14829 pub measureScore: Option<Box<Quantity>>,
14830}
14831#[derive(
14832 Clone,
14833 Reflect,
14834 Debug,
14835 Default,
14836 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14837 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14838)]
14839#[fhir_serialize_type = "complex"]
14840#[doc = "When a measure includes multiple stratifiers, there will be a stratifier group for each stratifier defined by the measure."]
14841pub struct MeasureReportGroupStratifier {
14842 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
14843 pub id: Option<String>,
14844 #[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 manageable, 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."]
14845 pub extension: Option<Vec<Box<Extension>>>,
14846 #[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 manageable, 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)."]
14847 pub modifierExtension: Option<Vec<Box<Extension>>>,
14848 #[doc = "The meaning of this stratifier, as defined in the measure definition."]
14849 pub code: Option<Vec<Box<CodeableConcept>>>,
14850 #[doc = "This element contains the results for a single stratum within the stratifier. For example, when stratifying on administrative gender, there will be four strata, one for each possible gender value."]
14851 pub stratum: Option<Vec<MeasureReportGroupStratifierStratum>>,
14852}
14853#[derive(
14854 Clone,
14855 Reflect,
14856 Debug,
14857 Default,
14858 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14859 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14860)]
14861#[fhir_serialize_type = "complex"]
14862#[doc = "The results of the calculation, one for each population group in the measure."]
14863pub struct MeasureReportGroup {
14864 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
14865 pub id: Option<String>,
14866 #[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 manageable, 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."]
14867 pub extension: Option<Vec<Box<Extension>>>,
14868 #[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 manageable, 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)."]
14869 pub modifierExtension: Option<Vec<Box<Extension>>>,
14870 #[doc = "The meaning of the population group as defined in the measure definition."]
14871 pub code: Option<Box<CodeableConcept>>,
14872 #[doc = "The populations that make up the population group, one for each type of population appropriate for the measure."]
14873 pub population: Option<Vec<MeasureReportGroupPopulation>>,
14874 #[doc = "The measure score for this population group, calculated as appropriate for the measure type and scoring method, and based on the contents of the populations defined in the group."]
14875 pub measureScore: Option<Box<Quantity>>,
14876 #[doc = "When a measure includes multiple stratifiers, there will be a stratifier group for each stratifier defined by the measure."]
14877 pub stratifier: Option<Vec<MeasureReportGroupStratifier>>,
14878}
14879#[derive(
14880 Clone,
14881 Reflect,
14882 Debug,
14883 Default,
14884 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14885 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14886)]
14887#[fhir_serialize_type = "resource"]
14888#[doc = "The MeasureReport resource contains the results of the calculation of a measure; and optionally a reference to the resources involved in that calculation."]
14889pub struct MeasureReport {
14890 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
14891 pub id: Option<String>,
14892 #[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."]
14893 pub meta: Option<Box<Meta>>,
14894 #[primitive]
14895 #[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."]
14896 pub implicitRules: Option<Box<FHIRUri>>,
14897 #[primitive]
14898 #[doc = "The base language in which the resource is written."]
14899 pub language: Option<Box<FHIRCode>>,
14900 #[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."]
14901 pub text: Option<Box<Narrative>>,
14902 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
14903 pub contained: Option<Vec<Box<Resource>>>,
14904 #[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 manageable, 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."]
14905 pub extension: Option<Vec<Box<Extension>>>,
14906 #[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 manageable, 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)."]
14907 pub modifierExtension: Option<Vec<Box<Extension>>>,
14908 #[rename_field = "identifier"]
14909 #[doc = "A formal identifier that is used to identify this MeasureReport when it is represented in other formats or referenced in a specification, model, design or an instance."]
14910 pub identifier_: Option<Vec<Box<Identifier>>>,
14911 #[primitive]
14912 #[doc = "The MeasureReport status. No data will be available until the MeasureReport status is complete."]
14913 pub status: Box<terminology::MeasureReportStatus>,
14914 #[rename_field = "type"]
14915 #[primitive]
14916 #[doc = "The type of measure report. This may be an individual report, which provides the score for the measure for an individual member of the population; a subject-listing, which returns the list of members that meet the various criteria in the measure; a summary report, which returns a population count for each of the criteria in the measure; or a data-collection, which enables the MeasureReport to be used to exchange the data-of-interest for a quality measure."]
14917 pub type_: Box<terminology::MeasureReportType>,
14918 #[primitive]
14919 #[doc = "A reference to the Measure that was calculated to produce this report."]
14920 pub measure: Box<FHIRCanonical>,
14921 # [reference (targets = ["Patient" , "Practitioner" , "PractitionerRole" , "Location" , "Device" , "RelatedPerson" , "Group"])]
14922 #[doc = "Optional subject identifying the individual or individuals the report is for."]
14923 pub subject: Option<Box<Reference>>,
14924 #[primitive]
14925 #[doc = "The date this measure report was generated."]
14926 pub date: Option<Box<FHIRDateTime>>,
14927 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Location" , "Organization"])]
14928 #[doc = "The individual, location, or organization that is reporting the data."]
14929 pub reporter: Option<Box<Reference>>,
14930 #[doc = "The reporting period for which the report was calculated."]
14931 pub period: Box<Period>,
14932 #[doc = "Whether improvement in the measure is noted by an increase or decrease in the measure score."]
14933 pub improvementNotation: Option<Box<CodeableConcept>>,
14934 #[doc = "The results of the calculation, one for each population group in the measure."]
14935 pub group: Option<Vec<MeasureReportGroup>>,
14936 # [reference (targets = ["Resource"])]
14937 #[doc = "A reference to a Bundle containing the Resources that were used in the calculation of this measure."]
14938 pub evaluatedResource: Option<Vec<Box<Reference>>>,
14939}
14940#[derive(
14941 Clone,
14942 Reflect,
14943 Debug,
14944 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14945 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14946)]
14947#[fhir_serialize_type = "typechoice"]
14948#[type_choice_field_name = "created"]
14949pub enum MediaCreatedTypeChoice {
14950 DateTime(Box<FHIRDateTime>),
14951 Period(Box<Period>),
14952}
14953impl Default for MediaCreatedTypeChoice {
14954 fn default() -> Self {
14955 MediaCreatedTypeChoice::DateTime(Box::new(Default::default()))
14956 }
14957}
14958#[derive(
14959 Clone,
14960 Reflect,
14961 Debug,
14962 Default,
14963 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
14964 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
14965)]
14966#[fhir_serialize_type = "resource"]
14967#[doc = "A photo, video, or audio recording acquired or used in healthcare. The actual content may be inline or provided by direct reference."]
14968pub struct Media {
14969 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
14970 pub id: Option<String>,
14971 #[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."]
14972 pub meta: Option<Box<Meta>>,
14973 #[primitive]
14974 #[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."]
14975 pub implicitRules: Option<Box<FHIRUri>>,
14976 #[primitive]
14977 #[doc = "The base language in which the resource is written."]
14978 pub language: Option<Box<FHIRCode>>,
14979 #[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."]
14980 pub text: Option<Box<Narrative>>,
14981 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
14982 pub contained: Option<Vec<Box<Resource>>>,
14983 #[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 manageable, 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."]
14984 pub extension: Option<Vec<Box<Extension>>>,
14985 #[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 manageable, 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)."]
14986 pub modifierExtension: Option<Vec<Box<Extension>>>,
14987 #[rename_field = "identifier"]
14988 #[doc = "Identifiers associated with the image - these may include identifiers for the image itself, identifiers for the context of its collection (e.g. series ids) and context ids such as accession numbers or other workflow identifiers."]
14989 pub identifier_: Option<Vec<Box<Identifier>>>,
14990 # [reference (targets = ["ServiceRequest" , "CarePlan"])]
14991 #[doc = "A procedure that is fulfilled in whole or in part by the creation of this media."]
14992 pub basedOn: Option<Vec<Box<Reference>>>,
14993 # [reference (targets = ["Resource"])]
14994 #[doc = "A larger event of which this particular event is a component or step."]
14995 pub partOf: Option<Vec<Box<Reference>>>,
14996 #[primitive]
14997 #[doc = "The current state of the {{title}}."]
14998 pub status: Box<terminology::EventStatus>,
14999 #[rename_field = "type"]
15000 #[doc = "A code that classifies whether the media is an image, video or audio recording or some other media category."]
15001 pub type_: Option<Box<CodeableConcept>>,
15002 #[doc = "Details of the type of the media - usually, how it was acquired (what type of device). If images sourced from a DICOM system, are wrapped in a Media resource, then this is the modality."]
15003 pub modality: Option<Box<CodeableConcept>>,
15004 #[doc = "The name of the imaging view e.g. Lateral or Antero-posterior (AP)."]
15005 pub view: Option<Box<CodeableConcept>>,
15006 # [reference (targets = ["Patient" , "Practitioner" , "PractitionerRole" , "Group" , "Device" , "Specimen" , "Location"])]
15007 #[doc = "Who/What this Media is a record of."]
15008 pub subject: Option<Box<Reference>>,
15009 # [reference (targets = ["Encounter"])]
15010 #[doc = "The encounter that establishes the context for this media."]
15011 pub encounter: Option<Box<Reference>>,
15012 # [type_choice_variants (complex = ["createdPeriod"] , primitive = ["createdDateTime"])]
15013 #[doc = "The date and time(s) at which the media was collected."]
15014 pub created: Option<MediaCreatedTypeChoice>,
15015 #[primitive]
15016 #[doc = "The date and time this version of the media was made available to providers, typically after having been reviewed."]
15017 pub issued: Option<Box<FHIRInstant>>,
15018 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization" , "CareTeam" , "Patient" , "Device" , "RelatedPerson"])]
15019 #[doc = "The person who administered the collection of the image."]
15020 pub operator: Option<Box<Reference>>,
15021 #[doc = "Describes why the event occurred in coded or textual form."]
15022 pub reasonCode: Option<Vec<Box<CodeableConcept>>>,
15023 #[doc = "Indicates the site on the subject's body where the observation was made (i.e. the target site)."]
15024 pub bodySite: Option<Box<CodeableConcept>>,
15025 #[primitive]
15026 #[doc = "The name of the device / manufacturer of the device that was used to make the recording."]
15027 pub deviceName: Option<Box<FHIRString>>,
15028 # [reference (targets = ["Device" , "DeviceMetric" , "Device"])]
15029 #[doc = "The device used to collect the media."]
15030 pub device: Option<Box<Reference>>,
15031 #[primitive]
15032 #[doc = "Height of the image in pixels (photo/video)."]
15033 pub height: Option<Box<FHIRPositiveInt>>,
15034 #[primitive]
15035 #[doc = "Width of the image in pixels (photo/video)."]
15036 pub width: Option<Box<FHIRPositiveInt>>,
15037 #[primitive]
15038 #[doc = "The number of frames in a photo. This is used with a multi-page fax, or an imaging acquisition context that takes multiple slices in a single image, or an animated gif. If there is more than one frame, this SHALL have a value in order to alert interface software that a multi-frame capable rendering widget is required."]
15039 pub frames: Option<Box<FHIRPositiveInt>>,
15040 #[primitive]
15041 #[doc = "The duration of the recording in seconds - for audio and video."]
15042 pub duration: Option<Box<FHIRDecimal>>,
15043 #[doc = "The actual content of the media - inline or by direct reference to the media source file."]
15044 pub content: Box<Attachment>,
15045 #[doc = "Comments made about the media by the performer, subject or other participants."]
15046 pub note: Option<Vec<Box<Annotation>>>,
15047}
15048#[derive(
15049 Clone,
15050 Reflect,
15051 Debug,
15052 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15053 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15054)]
15055#[fhir_serialize_type = "typechoice"]
15056#[type_choice_field_name = "item"]
15057pub enum MedicationIngredientItemTypeChoice {
15058 CodeableConcept(Box<CodeableConcept>),
15059 # [reference (targets = ["Substance" , "Medication"])]
15060 Reference(Box<Reference>),
15061}
15062impl Default for MedicationIngredientItemTypeChoice {
15063 fn default() -> Self {
15064 MedicationIngredientItemTypeChoice::CodeableConcept(Box::new(Default::default()))
15065 }
15066}
15067#[derive(
15068 Clone,
15069 Reflect,
15070 Debug,
15071 Default,
15072 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15073 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15074)]
15075#[fhir_serialize_type = "complex"]
15076#[doc = "Identifies a particular constituent of interest in the product."]
15077pub struct MedicationIngredient {
15078 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15079 pub id: Option<String>,
15080 #[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 manageable, 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."]
15081 pub extension: Option<Vec<Box<Extension>>>,
15082 #[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 manageable, 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)."]
15083 pub modifierExtension: Option<Vec<Box<Extension>>>,
15084 # [type_choice_variants (complex = ["itemCodeableConcept" , "itemReference"] , primitive = [])]
15085 #[doc = "The actual ingredient - either a substance (simple ingredient) or another medication of a medication."]
15086 pub item: MedicationIngredientItemTypeChoice,
15087 #[primitive]
15088 #[doc = "Indication of whether this ingredient affects the therapeutic action of the drug."]
15089 pub isActive: Option<Box<FHIRBoolean>>,
15090 #[doc = "Specifies how many (or how much) of the items there are in this Medication. For example, 250 mg per tablet. This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet."]
15091 pub strength: Option<Box<Ratio>>,
15092}
15093#[derive(
15094 Clone,
15095 Reflect,
15096 Debug,
15097 Default,
15098 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15099 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15100)]
15101#[fhir_serialize_type = "complex"]
15102#[doc = "Information that only applies to packages (not products)."]
15103pub struct MedicationBatch {
15104 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15105 pub id: Option<String>,
15106 #[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 manageable, 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."]
15107 pub extension: Option<Vec<Box<Extension>>>,
15108 #[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 manageable, 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)."]
15109 pub modifierExtension: Option<Vec<Box<Extension>>>,
15110 #[primitive]
15111 #[doc = "The assigned lot number of a batch of the specified product."]
15112 pub lotNumber: Option<Box<FHIRString>>,
15113 #[primitive]
15114 #[doc = "When this specific batch of product will expire."]
15115 pub expirationDate: Option<Box<FHIRDateTime>>,
15116}
15117#[derive(
15118 Clone,
15119 Reflect,
15120 Debug,
15121 Default,
15122 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15123 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15124)]
15125#[fhir_serialize_type = "resource"]
15126#[doc = "This resource is primarily used for the identification and definition of a medication for the purposes of prescribing, dispensing, and administering a medication as well as for making statements about medication use."]
15127pub struct Medication {
15128 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
15129 pub id: Option<String>,
15130 #[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."]
15131 pub meta: Option<Box<Meta>>,
15132 #[primitive]
15133 #[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."]
15134 pub implicitRules: Option<Box<FHIRUri>>,
15135 #[primitive]
15136 #[doc = "The base language in which the resource is written."]
15137 pub language: Option<Box<FHIRCode>>,
15138 #[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."]
15139 pub text: Option<Box<Narrative>>,
15140 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
15141 pub contained: Option<Vec<Box<Resource>>>,
15142 #[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 manageable, 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."]
15143 pub extension: Option<Vec<Box<Extension>>>,
15144 #[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 manageable, 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)."]
15145 pub modifierExtension: Option<Vec<Box<Extension>>>,
15146 #[rename_field = "identifier"]
15147 #[doc = "Business identifier for this medication."]
15148 pub identifier_: Option<Vec<Box<Identifier>>>,
15149 #[doc = "A code (or set of codes) that specify this medication, or a textual description if no code is available. Usage note: This could be a standard medication code such as a code from RxNorm, SNOMED CT, IDMP etc. It could also be a national or local formulary code, optionally with translations to other code systems."]
15150 pub code: Option<Box<CodeableConcept>>,
15151 #[primitive]
15152 #[doc = "A code to indicate if the medication is in active use."]
15153 pub status: Option<Box<terminology::MedicationStatus>>,
15154 # [reference (targets = ["Organization"])]
15155 #[doc = "Describes the details of the manufacturer of the medication product. This is not intended to represent the distributor of a medication product."]
15156 pub manufacturer: Option<Box<Reference>>,
15157 #[doc = "Describes the form of the item. Powder; tablets; capsule."]
15158 pub form: Option<Box<CodeableConcept>>,
15159 #[doc = "Specific amount of the drug in the packaged product. For example, when specifying a product that has the same strength (For example, Insulin glargine 100 unit per mL solution for injection), this attribute provides additional clarification of the package amount (For example, 3 mL, 10mL, etc.)."]
15160 pub amount: Option<Box<Ratio>>,
15161 #[doc = "Identifies a particular constituent of interest in the product."]
15162 pub ingredient: Option<Vec<MedicationIngredient>>,
15163 #[doc = "Information that only applies to packages (not products)."]
15164 pub batch: Option<MedicationBatch>,
15165}
15166#[derive(
15167 Clone,
15168 Reflect,
15169 Debug,
15170 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15171 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15172)]
15173#[fhir_serialize_type = "typechoice"]
15174#[type_choice_field_name = "medication"]
15175pub enum MedicationAdministrationMedicationTypeChoice {
15176 CodeableConcept(Box<CodeableConcept>),
15177 # [reference (targets = ["Medication"])]
15178 Reference(Box<Reference>),
15179}
15180impl Default for MedicationAdministrationMedicationTypeChoice {
15181 fn default() -> Self {
15182 MedicationAdministrationMedicationTypeChoice::CodeableConcept(Box::new(Default::default()))
15183 }
15184}
15185#[derive(
15186 Clone,
15187 Reflect,
15188 Debug,
15189 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15190 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15191)]
15192#[fhir_serialize_type = "typechoice"]
15193#[type_choice_field_name = "effective"]
15194pub enum MedicationAdministrationEffectiveTypeChoice {
15195 DateTime(Box<FHIRDateTime>),
15196 Period(Box<Period>),
15197}
15198impl Default for MedicationAdministrationEffectiveTypeChoice {
15199 fn default() -> Self {
15200 MedicationAdministrationEffectiveTypeChoice::DateTime(Box::new(Default::default()))
15201 }
15202}
15203#[derive(
15204 Clone,
15205 Reflect,
15206 Debug,
15207 Default,
15208 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15209 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15210)]
15211#[fhir_serialize_type = "complex"]
15212#[doc = "Indicates who or what performed the medication administration and how they were involved."]
15213pub struct MedicationAdministrationPerformer {
15214 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15215 pub id: Option<String>,
15216 #[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 manageable, 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."]
15217 pub extension: Option<Vec<Box<Extension>>>,
15218 #[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 manageable, 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)."]
15219 pub modifierExtension: Option<Vec<Box<Extension>>>,
15220 #[doc = "Distinguishes the type of involvement of the performer in the medication administration."]
15221 pub function: Option<Box<CodeableConcept>>,
15222 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Patient" , "RelatedPerson" , "Device"])]
15223 #[doc = "Indicates who or what performed the medication administration."]
15224 pub actor: Box<Reference>,
15225}
15226#[derive(
15227 Clone,
15228 Reflect,
15229 Debug,
15230 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15231 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15232)]
15233#[fhir_serialize_type = "typechoice"]
15234#[type_choice_field_name = "rate"]
15235pub enum MedicationAdministrationDosageRateTypeChoice {
15236 Ratio(Box<Ratio>),
15237 Quantity(Box<Quantity>),
15238}
15239impl Default for MedicationAdministrationDosageRateTypeChoice {
15240 fn default() -> Self {
15241 MedicationAdministrationDosageRateTypeChoice::Ratio(Box::new(Default::default()))
15242 }
15243}
15244#[derive(
15245 Clone,
15246 Reflect,
15247 Debug,
15248 Default,
15249 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15250 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15251)]
15252#[fhir_serialize_type = "complex"]
15253#[doc = "Describes the medication dosage information details e.g. dose, rate, site, route, etc."]
15254pub struct MedicationAdministrationDosage {
15255 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15256 pub id: Option<String>,
15257 #[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 manageable, 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."]
15258 pub extension: Option<Vec<Box<Extension>>>,
15259 #[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 manageable, 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)."]
15260 pub modifierExtension: Option<Vec<Box<Extension>>>,
15261 #[primitive]
15262 #[doc = "Free text dosage can be used for cases where the dosage administered is too complex to code. When coded dosage is present, the free text dosage may still be present for display to humans.\r\rThe dosage instructions should reflect the dosage of the medication that was administered."]
15263 pub text: Option<Box<FHIRString>>,
15264 #[doc = "A coded specification of the anatomic site where the medication first entered the body. For example, \"left arm\"."]
15265 pub site: Option<Box<CodeableConcept>>,
15266 #[doc = "A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. For example, topical, intravenous, etc."]
15267 pub route: Option<Box<CodeableConcept>>,
15268 #[doc = "A coded value indicating the method by which the medication is intended to be or was introduced into or on the body. This attribute will most often NOT be populated. It is most commonly used for injections. For example, Slow Push, Deep IV."]
15269 pub method: Option<Box<CodeableConcept>>,
15270 #[doc = "The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection."]
15271 pub dose: Option<Box<Quantity>>,
15272 # [type_choice_variants (complex = ["rateRatio" , "rateQuantity"] , primitive = [])]
15273 #[doc = "Identifies the speed with which the medication was or will be introduced into the patient. Typically, the rate for an infusion e.g. 100 ml per 1 hour or 100 ml/hr. May also be expressed as a rate per unit of time, e.g. 500 ml per 2 hours. Other examples: 200 mcg/min or 200 mcg/1 minute; 1 liter/8 hours."]
15274 pub rate: Option<MedicationAdministrationDosageRateTypeChoice>,
15275}
15276#[derive(
15277 Clone,
15278 Reflect,
15279 Debug,
15280 Default,
15281 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15282 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15283)]
15284#[fhir_serialize_type = "resource"]
15285#[doc = "Describes the event of a patient consuming or otherwise being administered a medication. This may be as simple as swallowing a tablet or it may be a long running infusion. Related resources tie this event to the authorizing prescription, and the specific encounter between patient and health care practitioner."]
15286pub struct MedicationAdministration {
15287 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
15288 pub id: Option<String>,
15289 #[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."]
15290 pub meta: Option<Box<Meta>>,
15291 #[primitive]
15292 #[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."]
15293 pub implicitRules: Option<Box<FHIRUri>>,
15294 #[primitive]
15295 #[doc = "The base language in which the resource is written."]
15296 pub language: Option<Box<FHIRCode>>,
15297 #[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."]
15298 pub text: Option<Box<Narrative>>,
15299 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
15300 pub contained: Option<Vec<Box<Resource>>>,
15301 #[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 manageable, 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."]
15302 pub extension: Option<Vec<Box<Extension>>>,
15303 #[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 manageable, 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)."]
15304 pub modifierExtension: Option<Vec<Box<Extension>>>,
15305 #[rename_field = "identifier"]
15306 #[doc = "Identifiers associated with this Medication Administration that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server."]
15307 pub identifier_: Option<Vec<Box<Identifier>>>,
15308 #[primitive]
15309 #[doc = "A protocol, guideline, orderset, or other definition that was adhered to in whole or in part by this event."]
15310 pub instantiates: Option<Vec<Box<FHIRUri>>>,
15311 # [reference (targets = ["MedicationAdministration" , "Procedure"])]
15312 #[doc = "A larger event of which this particular event is a component or step."]
15313 pub partOf: Option<Vec<Box<Reference>>>,
15314 #[primitive]
15315 #[doc = "Will generally be set to show that the administration has been completed. For some long running administrations such as infusions, it is possible for an administration to be started but not completed or it may be paused while some other process is under way."]
15316 pub status: Box<terminology::MedicationAdminStatus>,
15317 #[doc = "A code indicating why the administration was not performed."]
15318 pub statusReason: Option<Vec<Box<CodeableConcept>>>,
15319 #[doc = "Indicates where the medication is expected to be consumed or administered."]
15320 pub category: Option<Box<CodeableConcept>>,
15321 # [type_choice_variants (complex = ["medicationCodeableConcept" , "medicationReference"] , primitive = [])]
15322 #[doc = "Identifies the medication that was administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications."]
15323 pub medication: MedicationAdministrationMedicationTypeChoice,
15324 # [reference (targets = ["Patient" , "Group"])]
15325 #[doc = "The person or animal or group receiving the medication."]
15326 pub subject: Box<Reference>,
15327 # [reference (targets = ["Encounter" , "EpisodeOfCare"])]
15328 #[doc = "The visit, admission, or other contact between patient and health care provider during which the medication administration was performed."]
15329 pub context: Option<Box<Reference>>,
15330 # [reference (targets = ["Resource"])]
15331 #[doc = "Additional information (for example, patient height and weight) that supports the administration of the medication."]
15332 pub supportingInformation: Option<Vec<Box<Reference>>>,
15333 # [type_choice_variants (complex = ["effectivePeriod"] , primitive = ["effectiveDateTime"])]
15334 #[doc = "A specific date/time or interval of time during which the administration took place (or did not take place, when the 'notGiven' attribute is true). For many administrations, such as swallowing a tablet the use of dateTime is more appropriate."]
15335 pub effective: MedicationAdministrationEffectiveTypeChoice,
15336 #[doc = "Indicates who or what performed the medication administration and how they were involved."]
15337 pub performer: Option<Vec<MedicationAdministrationPerformer>>,
15338 #[doc = "A code indicating why the medication was given."]
15339 pub reasonCode: Option<Vec<Box<CodeableConcept>>>,
15340 # [reference (targets = ["Condition" , "Observation" , "DiagnosticReport"])]
15341 #[doc = "Condition or observation that supports why the medication was administered."]
15342 pub reasonReference: Option<Vec<Box<Reference>>>,
15343 # [reference (targets = ["MedicationRequest"])]
15344 #[doc = "The original request, instruction or authority to perform the administration."]
15345 pub request: Option<Box<Reference>>,
15346 # [reference (targets = ["Device"])]
15347 #[doc = "The device used in administering the medication to the patient. For example, a particular infusion pump."]
15348 pub device: Option<Vec<Box<Reference>>>,
15349 #[doc = "Extra information about the medication administration that is not conveyed by the other attributes."]
15350 pub note: Option<Vec<Box<Annotation>>>,
15351 #[doc = "Describes the medication dosage information details e.g. dose, rate, site, route, etc."]
15352 pub dosage: Option<MedicationAdministrationDosage>,
15353 # [reference (targets = ["Provenance"])]
15354 #[doc = "A summary of the events of interest that have occurred, such as when the administration was verified."]
15355 pub eventHistory: Option<Vec<Box<Reference>>>,
15356}
15357#[derive(
15358 Clone,
15359 Reflect,
15360 Debug,
15361 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15362 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15363)]
15364#[fhir_serialize_type = "typechoice"]
15365#[type_choice_field_name = "statusReason"]
15366pub enum MedicationDispenseStatusReasonTypeChoice {
15367 CodeableConcept(Box<CodeableConcept>),
15368 # [reference (targets = ["DetectedIssue"])]
15369 Reference(Box<Reference>),
15370}
15371impl Default for MedicationDispenseStatusReasonTypeChoice {
15372 fn default() -> Self {
15373 MedicationDispenseStatusReasonTypeChoice::CodeableConcept(Box::new(Default::default()))
15374 }
15375}
15376#[derive(
15377 Clone,
15378 Reflect,
15379 Debug,
15380 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15381 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15382)]
15383#[fhir_serialize_type = "typechoice"]
15384#[type_choice_field_name = "medication"]
15385pub enum MedicationDispenseMedicationTypeChoice {
15386 CodeableConcept(Box<CodeableConcept>),
15387 # [reference (targets = ["Medication"])]
15388 Reference(Box<Reference>),
15389}
15390impl Default for MedicationDispenseMedicationTypeChoice {
15391 fn default() -> Self {
15392 MedicationDispenseMedicationTypeChoice::CodeableConcept(Box::new(Default::default()))
15393 }
15394}
15395#[derive(
15396 Clone,
15397 Reflect,
15398 Debug,
15399 Default,
15400 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15401 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15402)]
15403#[fhir_serialize_type = "complex"]
15404#[doc = "Indicates who or what performed the event."]
15405pub struct MedicationDispensePerformer {
15406 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15407 pub id: Option<String>,
15408 #[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 manageable, 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."]
15409 pub extension: Option<Vec<Box<Extension>>>,
15410 #[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 manageable, 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)."]
15411 pub modifierExtension: Option<Vec<Box<Extension>>>,
15412 #[doc = "Distinguishes the type of performer in the dispense. For example, date enterer, packager, final checker."]
15413 pub function: Option<Box<CodeableConcept>>,
15414 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization" , "Patient" , "Device" , "RelatedPerson"])]
15415 #[doc = "The device, practitioner, etc. who performed the action. It should be assumed that the actor is the dispenser of the medication."]
15416 pub actor: Box<Reference>,
15417}
15418#[derive(
15419 Clone,
15420 Reflect,
15421 Debug,
15422 Default,
15423 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15424 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15425)]
15426#[fhir_serialize_type = "complex"]
15427#[doc = "Indicates whether or not substitution was made as part of the dispense. In some cases, substitution will be expected but does not happen, in other cases substitution is not expected but does happen. This block explains what substitution did or did not happen and why. If nothing is specified, substitution was not done."]
15428pub struct MedicationDispenseSubstitution {
15429 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15430 pub id: Option<String>,
15431 #[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 manageable, 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."]
15432 pub extension: Option<Vec<Box<Extension>>>,
15433 #[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 manageable, 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)."]
15434 pub modifierExtension: Option<Vec<Box<Extension>>>,
15435 #[primitive]
15436 #[doc = "True if the dispenser dispensed a different drug or product from what was prescribed."]
15437 pub wasSubstituted: Box<FHIRBoolean>,
15438 #[rename_field = "type"]
15439 #[doc = "A code signifying whether a different drug was dispensed from what was prescribed."]
15440 pub type_: Option<Box<CodeableConcept>>,
15441 #[doc = "Indicates the reason for the substitution (or lack of substitution) from what was prescribed."]
15442 pub reason: Option<Vec<Box<CodeableConcept>>>,
15443 # [reference (targets = ["Practitioner" , "PractitionerRole"])]
15444 #[doc = "The person or organization that has primary responsibility for the substitution."]
15445 pub responsibleParty: Option<Vec<Box<Reference>>>,
15446}
15447#[derive(
15448 Clone,
15449 Reflect,
15450 Debug,
15451 Default,
15452 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15453 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15454)]
15455#[fhir_serialize_type = "resource"]
15456#[doc = "Indicates that a medication product is to be or has been dispensed for a named person/patient. This includes a description of the medication product (supply) provided and the instructions for administering the medication. The medication dispense is the result of a pharmacy system responding to a medication order."]
15457pub struct MedicationDispense {
15458 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
15459 pub id: Option<String>,
15460 #[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."]
15461 pub meta: Option<Box<Meta>>,
15462 #[primitive]
15463 #[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."]
15464 pub implicitRules: Option<Box<FHIRUri>>,
15465 #[primitive]
15466 #[doc = "The base language in which the resource is written."]
15467 pub language: Option<Box<FHIRCode>>,
15468 #[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."]
15469 pub text: Option<Box<Narrative>>,
15470 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
15471 pub contained: Option<Vec<Box<Resource>>>,
15472 #[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 manageable, 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."]
15473 pub extension: Option<Vec<Box<Extension>>>,
15474 #[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 manageable, 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)."]
15475 pub modifierExtension: Option<Vec<Box<Extension>>>,
15476 #[rename_field = "identifier"]
15477 #[doc = "Identifiers associated with this Medication Dispense that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server."]
15478 pub identifier_: Option<Vec<Box<Identifier>>>,
15479 # [reference (targets = ["Procedure"])]
15480 #[doc = "The procedure that trigger the dispense."]
15481 pub partOf: Option<Vec<Box<Reference>>>,
15482 #[primitive]
15483 #[doc = "A code specifying the state of the set of dispense events."]
15484 pub status: Box<terminology::MedicationdispenseStatus>,
15485 # [type_choice_variants (complex = ["statusReasonCodeableConcept" , "statusReasonReference"] , primitive = [])]
15486 #[doc = "Indicates the reason why a dispense was not performed."]
15487 pub statusReason: Option<MedicationDispenseStatusReasonTypeChoice>,
15488 #[doc = "Indicates the type of medication dispense (for example, where the medication is expected to be consumed or administered (i.e. inpatient or outpatient))."]
15489 pub category: Option<Box<CodeableConcept>>,
15490 # [type_choice_variants (complex = ["medicationCodeableConcept" , "medicationReference"] , primitive = [])]
15491 #[doc = "Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications."]
15492 pub medication: MedicationDispenseMedicationTypeChoice,
15493 # [reference (targets = ["Patient" , "Group"])]
15494 #[doc = "A link to a resource representing the person or the group to whom the medication will be given."]
15495 pub subject: Option<Box<Reference>>,
15496 # [reference (targets = ["Encounter" , "EpisodeOfCare"])]
15497 #[doc = "The encounter or episode of care that establishes the context for this event."]
15498 pub context: Option<Box<Reference>>,
15499 # [reference (targets = ["Resource"])]
15500 #[doc = "Additional information that supports the medication being dispensed."]
15501 pub supportingInformation: Option<Vec<Box<Reference>>>,
15502 #[doc = "Indicates who or what performed the event."]
15503 pub performer: Option<Vec<MedicationDispensePerformer>>,
15504 # [reference (targets = ["Location"])]
15505 #[doc = "The principal physical location where the dispense was performed."]
15506 pub location: Option<Box<Reference>>,
15507 # [reference (targets = ["MedicationRequest"])]
15508 #[doc = "Indicates the medication order that is being dispensed against."]
15509 pub authorizingPrescription: Option<Vec<Box<Reference>>>,
15510 #[rename_field = "type"]
15511 #[doc = "Indicates the type of dispensing event that is performed. For example, Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc."]
15512 pub type_: Option<Box<CodeableConcept>>,
15513 #[doc = "The amount of medication that has been dispensed. Includes unit of measure."]
15514 pub quantity: Option<Box<Quantity>>,
15515 #[doc = "The amount of medication expressed as a timing amount."]
15516 pub daysSupply: Option<Box<Quantity>>,
15517 #[primitive]
15518 #[doc = "The time when the dispensed product was packaged and reviewed."]
15519 pub whenPrepared: Option<Box<FHIRDateTime>>,
15520 #[primitive]
15521 #[doc = "The time the dispensed product was provided to the patient or their representative."]
15522 pub whenHandedOver: Option<Box<FHIRDateTime>>,
15523 # [reference (targets = ["Location"])]
15524 #[doc = "Identification of the facility/location where the medication was shipped to, as part of the dispense event."]
15525 pub destination: Option<Box<Reference>>,
15526 # [reference (targets = ["Patient" , "Practitioner"])]
15527 #[doc = "Identifies the person who picked up the medication. This will usually be a patient or their caregiver, but some cases exist where it can be a healthcare professional."]
15528 pub receiver: Option<Vec<Box<Reference>>>,
15529 #[doc = "Extra information about the dispense that could not be conveyed in the other attributes."]
15530 pub note: Option<Vec<Box<Annotation>>>,
15531 #[doc = "Indicates how the medication is to be used by the patient."]
15532 pub dosageInstruction: Option<Vec<Box<Dosage>>>,
15533 #[doc = "Indicates whether or not substitution was made as part of the dispense. In some cases, substitution will be expected but does not happen, in other cases substitution is not expected but does happen. This block explains what substitution did or did not happen and why. If nothing is specified, substitution was not done."]
15534 pub substitution: Option<MedicationDispenseSubstitution>,
15535 # [reference (targets = ["DetectedIssue"])]
15536 #[doc = "Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. drug-drug interaction, duplicate therapy, dosage alert etc."]
15537 pub detectedIssue: Option<Vec<Box<Reference>>>,
15538 # [reference (targets = ["Provenance"])]
15539 #[doc = "A summary of the events of interest that have occurred, such as when the dispense was verified."]
15540 pub eventHistory: Option<Vec<Box<Reference>>>,
15541}
15542#[derive(
15543 Clone,
15544 Reflect,
15545 Debug,
15546 Default,
15547 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15548 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15549)]
15550#[fhir_serialize_type = "complex"]
15551#[doc = "Associated or related knowledge about a medication."]
15552pub struct MedicationKnowledgeRelatedMedicationKnowledge {
15553 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15554 pub id: Option<String>,
15555 #[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 manageable, 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."]
15556 pub extension: Option<Vec<Box<Extension>>>,
15557 #[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 manageable, 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)."]
15558 pub modifierExtension: Option<Vec<Box<Extension>>>,
15559 #[rename_field = "type"]
15560 #[doc = "The category of the associated medication knowledge reference."]
15561 pub type_: Box<CodeableConcept>,
15562 #[cardinality(min = 1usize)]
15563 # [reference (targets = ["MedicationKnowledge"])]
15564 #[doc = "Associated documentation about the associated medication knowledge."]
15565 pub reference: Vec<Box<Reference>>,
15566}
15567#[derive(
15568 Clone,
15569 Reflect,
15570 Debug,
15571 Default,
15572 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15573 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15574)]
15575#[fhir_serialize_type = "complex"]
15576#[doc = "Associated documentation about the medication."]
15577pub struct MedicationKnowledgeMonograph {
15578 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15579 pub id: Option<String>,
15580 #[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 manageable, 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."]
15581 pub extension: Option<Vec<Box<Extension>>>,
15582 #[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 manageable, 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)."]
15583 pub modifierExtension: Option<Vec<Box<Extension>>>,
15584 #[rename_field = "type"]
15585 #[doc = "The category of documentation about the medication. (e.g. professional monograph, patient education monograph)."]
15586 pub type_: Option<Box<CodeableConcept>>,
15587 # [reference (targets = ["DocumentReference" , "Media"])]
15588 #[doc = "Associated documentation about the medication."]
15589 pub source: Option<Box<Reference>>,
15590}
15591#[derive(
15592 Clone,
15593 Reflect,
15594 Debug,
15595 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15596 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15597)]
15598#[fhir_serialize_type = "typechoice"]
15599#[type_choice_field_name = "item"]
15600pub enum MedicationKnowledgeIngredientItemTypeChoice {
15601 CodeableConcept(Box<CodeableConcept>),
15602 # [reference (targets = ["Substance"])]
15603 Reference(Box<Reference>),
15604}
15605impl Default for MedicationKnowledgeIngredientItemTypeChoice {
15606 fn default() -> Self {
15607 MedicationKnowledgeIngredientItemTypeChoice::CodeableConcept(Box::new(Default::default()))
15608 }
15609}
15610#[derive(
15611 Clone,
15612 Reflect,
15613 Debug,
15614 Default,
15615 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15616 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15617)]
15618#[fhir_serialize_type = "complex"]
15619#[doc = "Identifies a particular constituent of interest in the product."]
15620pub struct MedicationKnowledgeIngredient {
15621 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15622 pub id: Option<String>,
15623 #[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 manageable, 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."]
15624 pub extension: Option<Vec<Box<Extension>>>,
15625 #[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 manageable, 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)."]
15626 pub modifierExtension: Option<Vec<Box<Extension>>>,
15627 # [type_choice_variants (complex = ["itemCodeableConcept" , "itemReference"] , primitive = [])]
15628 #[doc = "The actual ingredient - either a substance (simple ingredient) or another medication."]
15629 pub item: MedicationKnowledgeIngredientItemTypeChoice,
15630 #[primitive]
15631 #[doc = "Indication of whether this ingredient affects the therapeutic action of the drug."]
15632 pub isActive: Option<Box<FHIRBoolean>>,
15633 #[doc = "Specifies how many (or how much) of the items there are in this Medication. For example, 250 mg per tablet. This is expressed as a ratio where the numerator is 250mg and the denominator is 1 tablet."]
15634 pub strength: Option<Box<Ratio>>,
15635}
15636#[derive(
15637 Clone,
15638 Reflect,
15639 Debug,
15640 Default,
15641 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15642 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15643)]
15644#[fhir_serialize_type = "complex"]
15645#[doc = "The price of the medication."]
15646pub struct MedicationKnowledgeCost {
15647 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15648 pub id: Option<String>,
15649 #[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 manageable, 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."]
15650 pub extension: Option<Vec<Box<Extension>>>,
15651 #[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 manageable, 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)."]
15652 pub modifierExtension: Option<Vec<Box<Extension>>>,
15653 #[rename_field = "type"]
15654 #[doc = "The category of the cost information. For example, manufacturers' cost, patient cost, claim reimbursement cost, actual acquisition cost."]
15655 pub type_: Box<CodeableConcept>,
15656 #[primitive]
15657 #[doc = "The source or owner that assigns the price to the medication."]
15658 pub source: Option<Box<FHIRString>>,
15659 #[doc = "The price of the medication."]
15660 pub cost: Box<Money>,
15661}
15662#[derive(
15663 Clone,
15664 Reflect,
15665 Debug,
15666 Default,
15667 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15668 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15669)]
15670#[fhir_serialize_type = "complex"]
15671#[doc = "The program under which the medication is reviewed."]
15672pub struct MedicationKnowledgeMonitoringProgram {
15673 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15674 pub id: Option<String>,
15675 #[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 manageable, 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."]
15676 pub extension: Option<Vec<Box<Extension>>>,
15677 #[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 manageable, 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)."]
15678 pub modifierExtension: Option<Vec<Box<Extension>>>,
15679 #[rename_field = "type"]
15680 #[doc = "Type of program under which the medication is monitored."]
15681 pub type_: Option<Box<CodeableConcept>>,
15682 #[primitive]
15683 #[doc = "Name of the reviewing program."]
15684 pub name: Option<Box<FHIRString>>,
15685}
15686#[derive(
15687 Clone,
15688 Reflect,
15689 Debug,
15690 Default,
15691 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15692 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15693)]
15694#[fhir_serialize_type = "complex"]
15695#[doc = "Dosage for the medication for the specific guidelines."]
15696pub struct MedicationKnowledgeAdministrationGuidelinesDosage {
15697 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15698 pub id: Option<String>,
15699 #[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 manageable, 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."]
15700 pub extension: Option<Vec<Box<Extension>>>,
15701 #[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 manageable, 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)."]
15702 pub modifierExtension: Option<Vec<Box<Extension>>>,
15703 #[rename_field = "type"]
15704 #[doc = "The type of dosage (for example, prophylaxis, maintenance, therapeutic, etc.)."]
15705 pub type_: Box<CodeableConcept>,
15706 #[cardinality(min = 1usize)]
15707 #[doc = "Dosage for the medication for the specific guidelines."]
15708 pub dosage: Vec<Box<Dosage>>,
15709}
15710#[derive(
15711 Clone,
15712 Reflect,
15713 Debug,
15714 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15715 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15716)]
15717#[fhir_serialize_type = "typechoice"]
15718#[type_choice_field_name = "indication"]
15719pub enum MedicationKnowledgeAdministrationGuidelinesIndicationTypeChoice {
15720 CodeableConcept(Box<CodeableConcept>),
15721 # [reference (targets = ["ObservationDefinition"])]
15722 Reference(Box<Reference>),
15723}
15724impl Default for MedicationKnowledgeAdministrationGuidelinesIndicationTypeChoice {
15725 fn default() -> Self {
15726 MedicationKnowledgeAdministrationGuidelinesIndicationTypeChoice::CodeableConcept(Box::new(
15727 Default::default(),
15728 ))
15729 }
15730}
15731#[derive(
15732 Clone,
15733 Reflect,
15734 Debug,
15735 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15736 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15737)]
15738#[fhir_serialize_type = "typechoice"]
15739#[type_choice_field_name = "characteristic"]
15740pub enum MedicationKnowledgeAdministrationGuidelinesPatientCharacteristicsCharacteristicTypeChoice {
15741 CodeableConcept(Box<CodeableConcept>),
15742 Quantity(Box<Quantity>),
15743}
15744impl Default
15745 for MedicationKnowledgeAdministrationGuidelinesPatientCharacteristicsCharacteristicTypeChoice
15746{
15747 fn default() -> Self {
15748 MedicationKnowledgeAdministrationGuidelinesPatientCharacteristicsCharacteristicTypeChoice :: CodeableConcept (Box :: new (Default :: default ()))
15749 }
15750}
15751#[derive(
15752 Clone,
15753 Reflect,
15754 Debug,
15755 Default,
15756 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15757 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15758)]
15759#[fhir_serialize_type = "complex"]
15760#[doc = "Characteristics of the patient that are relevant to the administration guidelines (for example, height, weight, gender, etc.)."]
15761pub struct MedicationKnowledgeAdministrationGuidelinesPatientCharacteristics {
15762 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15763 pub id: Option<String>,
15764 #[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 manageable, 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."]
15765 pub extension: Option<Vec<Box<Extension>>>,
15766 #[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 manageable, 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)."]
15767 pub modifierExtension: Option<Vec<Box<Extension>>>,
15768 # [type_choice_variants (complex = ["characteristicCodeableConcept" , "characteristicQuantity"] , primitive = [])]
15769 #[doc = "Specific characteristic that is relevant to the administration guideline (e.g. height, weight, gender)."]
15770 pub characteristic:
15771 MedicationKnowledgeAdministrationGuidelinesPatientCharacteristicsCharacteristicTypeChoice,
15772 #[primitive]
15773 #[doc = "The specific characteristic (e.g. height, weight, gender, etc.)."]
15774 pub value: Option<Vec<Box<FHIRString>>>,
15775}
15776#[derive(
15777 Clone,
15778 Reflect,
15779 Debug,
15780 Default,
15781 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15782 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15783)]
15784#[fhir_serialize_type = "complex"]
15785#[doc = "Guidelines for the administration of the medication."]
15786pub struct MedicationKnowledgeAdministrationGuidelines {
15787 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15788 pub id: Option<String>,
15789 #[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 manageable, 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."]
15790 pub extension: Option<Vec<Box<Extension>>>,
15791 #[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 manageable, 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)."]
15792 pub modifierExtension: Option<Vec<Box<Extension>>>,
15793 #[doc = "Dosage for the medication for the specific guidelines."]
15794 pub dosage: Option<Vec<MedicationKnowledgeAdministrationGuidelinesDosage>>,
15795 # [type_choice_variants (complex = ["indicationCodeableConcept" , "indicationReference"] , primitive = [])]
15796 #[doc = "Indication for use that apply to the specific administration guidelines."]
15797 pub indication: Option<MedicationKnowledgeAdministrationGuidelinesIndicationTypeChoice>,
15798 #[doc = "Characteristics of the patient that are relevant to the administration guidelines (for example, height, weight, gender, etc.)."]
15799 pub patientCharacteristics:
15800 Option<Vec<MedicationKnowledgeAdministrationGuidelinesPatientCharacteristics>>,
15801}
15802#[derive(
15803 Clone,
15804 Reflect,
15805 Debug,
15806 Default,
15807 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15808 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15809)]
15810#[fhir_serialize_type = "complex"]
15811#[doc = "Categorization of the medication within a formulary or classification system."]
15812pub struct MedicationKnowledgeMedicineClassification {
15813 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15814 pub id: Option<String>,
15815 #[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 manageable, 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."]
15816 pub extension: Option<Vec<Box<Extension>>>,
15817 #[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 manageable, 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)."]
15818 pub modifierExtension: Option<Vec<Box<Extension>>>,
15819 #[rename_field = "type"]
15820 #[doc = "The type of category for the medication (for example, therapeutic classification, therapeutic sub-classification)."]
15821 pub type_: Box<CodeableConcept>,
15822 #[doc = "Specific category assigned to the medication (e.g. anti-infective, anti-hypertensive, antibiotic, etc.)."]
15823 pub classification: Option<Vec<Box<CodeableConcept>>>,
15824}
15825#[derive(
15826 Clone,
15827 Reflect,
15828 Debug,
15829 Default,
15830 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15831 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15832)]
15833#[fhir_serialize_type = "complex"]
15834#[doc = "Information that only applies to packages (not products)."]
15835pub struct MedicationKnowledgePackaging {
15836 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15837 pub id: Option<String>,
15838 #[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 manageable, 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."]
15839 pub extension: Option<Vec<Box<Extension>>>,
15840 #[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 manageable, 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)."]
15841 pub modifierExtension: Option<Vec<Box<Extension>>>,
15842 #[rename_field = "type"]
15843 #[doc = "A code that defines the specific type of packaging that the medication can be found in (e.g. blister sleeve, tube, bottle)."]
15844 pub type_: Option<Box<CodeableConcept>>,
15845 #[doc = "The number of product units the package would contain if fully loaded."]
15846 pub quantity: Option<Box<Quantity>>,
15847}
15848#[derive(
15849 Clone,
15850 Reflect,
15851 Debug,
15852 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15853 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15854)]
15855#[fhir_serialize_type = "typechoice"]
15856#[type_choice_field_name = "value"]
15857pub enum MedicationKnowledgeDrugCharacteristicValueTypeChoice {
15858 CodeableConcept(Box<CodeableConcept>),
15859 String(Box<FHIRString>),
15860 Quantity(Box<Quantity>),
15861 Base64Binary(Box<FHIRBase64Binary>),
15862}
15863impl Default for MedicationKnowledgeDrugCharacteristicValueTypeChoice {
15864 fn default() -> Self {
15865 MedicationKnowledgeDrugCharacteristicValueTypeChoice::CodeableConcept(Box::new(
15866 Default::default(),
15867 ))
15868 }
15869}
15870#[derive(
15871 Clone,
15872 Reflect,
15873 Debug,
15874 Default,
15875 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15876 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15877)]
15878#[fhir_serialize_type = "complex"]
15879#[doc = "Specifies descriptive properties of the medicine, such as color, shape, imprints, etc."]
15880pub struct MedicationKnowledgeDrugCharacteristic {
15881 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15882 pub id: Option<String>,
15883 #[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 manageable, 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."]
15884 pub extension: Option<Vec<Box<Extension>>>,
15885 #[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 manageable, 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)."]
15886 pub modifierExtension: Option<Vec<Box<Extension>>>,
15887 #[rename_field = "type"]
15888 #[doc = "A code specifying which characteristic of the medicine is being described (for example, colour, shape, imprint)."]
15889 pub type_: Option<Box<CodeableConcept>>,
15890 # [type_choice_variants (complex = ["valueCodeableConcept" , "valueQuantity"] , primitive = ["valueString" , "valueBase64Binary"])]
15891 #[doc = "Description of the characteristic."]
15892 pub value: Option<MedicationKnowledgeDrugCharacteristicValueTypeChoice>,
15893}
15894#[derive(
15895 Clone,
15896 Reflect,
15897 Debug,
15898 Default,
15899 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15900 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15901)]
15902#[fhir_serialize_type = "complex"]
15903#[doc = "Specifies if changes are allowed when dispensing a medication from a regulatory perspective."]
15904pub struct MedicationKnowledgeRegulatorySubstitution {
15905 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15906 pub id: Option<String>,
15907 #[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 manageable, 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."]
15908 pub extension: Option<Vec<Box<Extension>>>,
15909 #[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 manageable, 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)."]
15910 pub modifierExtension: Option<Vec<Box<Extension>>>,
15911 #[rename_field = "type"]
15912 #[doc = "Specifies the type of substitution allowed."]
15913 pub type_: Box<CodeableConcept>,
15914 #[primitive]
15915 #[doc = "Specifies if regulation allows for changes in the medication when dispensing."]
15916 pub allowed: Box<FHIRBoolean>,
15917}
15918#[derive(
15919 Clone,
15920 Reflect,
15921 Debug,
15922 Default,
15923 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15924 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15925)]
15926#[fhir_serialize_type = "complex"]
15927#[doc = "Specifies the schedule of a medication in jurisdiction."]
15928pub struct MedicationKnowledgeRegulatorySchedule {
15929 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15930 pub id: Option<String>,
15931 #[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 manageable, 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."]
15932 pub extension: Option<Vec<Box<Extension>>>,
15933 #[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 manageable, 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)."]
15934 pub modifierExtension: Option<Vec<Box<Extension>>>,
15935 #[doc = "Specifies the specific drug schedule."]
15936 pub schedule: Box<CodeableConcept>,
15937}
15938#[derive(
15939 Clone,
15940 Reflect,
15941 Debug,
15942 Default,
15943 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15944 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15945)]
15946#[fhir_serialize_type = "complex"]
15947#[doc = "The maximum number of units of the medication that can be dispensed in a period."]
15948pub struct MedicationKnowledgeRegulatoryMaxDispense {
15949 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15950 pub id: Option<String>,
15951 #[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 manageable, 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."]
15952 pub extension: Option<Vec<Box<Extension>>>,
15953 #[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 manageable, 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)."]
15954 pub modifierExtension: Option<Vec<Box<Extension>>>,
15955 #[doc = "The maximum number of units of the medication that can be dispensed."]
15956 pub quantity: Box<Quantity>,
15957 #[doc = "The period that applies to the maximum number of units."]
15958 pub period: Option<Box<Duration>>,
15959}
15960#[derive(
15961 Clone,
15962 Reflect,
15963 Debug,
15964 Default,
15965 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15966 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15967)]
15968#[fhir_serialize_type = "complex"]
15969#[doc = "Regulatory information about a medication."]
15970pub struct MedicationKnowledgeRegulatory {
15971 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15972 pub id: Option<String>,
15973 #[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 manageable, 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."]
15974 pub extension: Option<Vec<Box<Extension>>>,
15975 #[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 manageable, 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)."]
15976 pub modifierExtension: Option<Vec<Box<Extension>>>,
15977 # [reference (targets = ["Organization"])]
15978 #[doc = "The authority that is specifying the regulations."]
15979 pub regulatoryAuthority: Box<Reference>,
15980 #[doc = "Specifies if changes are allowed when dispensing a medication from a regulatory perspective."]
15981 pub substitution: Option<Vec<MedicationKnowledgeRegulatorySubstitution>>,
15982 #[doc = "Specifies the schedule of a medication in jurisdiction."]
15983 pub schedule: Option<Vec<MedicationKnowledgeRegulatorySchedule>>,
15984 #[doc = "The maximum number of units of the medication that can be dispensed in a period."]
15985 pub maxDispense: Option<MedicationKnowledgeRegulatoryMaxDispense>,
15986}
15987#[derive(
15988 Clone,
15989 Reflect,
15990 Debug,
15991 Default,
15992 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
15993 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
15994)]
15995#[fhir_serialize_type = "complex"]
15996#[doc = "The time course of drug absorption, distribution, metabolism and excretion of a medication from the body."]
15997pub struct MedicationKnowledgeKinetics {
15998 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15999 pub id: Option<String>,
16000 #[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 manageable, 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."]
16001 pub extension: Option<Vec<Box<Extension>>>,
16002 #[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 manageable, 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)."]
16003 pub modifierExtension: Option<Vec<Box<Extension>>>,
16004 #[doc = "The drug concentration measured at certain discrete points in time."]
16005 pub areaUnderCurve: Option<Vec<Box<Quantity>>>,
16006 #[doc = "The median lethal dose of a drug."]
16007 pub lethalDose50: Option<Vec<Box<Quantity>>>,
16008 #[doc = "The time required for any specified property (e.g., the concentration of a substance in the body) to decrease by half."]
16009 pub halfLifePeriod: Option<Box<Duration>>,
16010}
16011#[derive(
16012 Clone,
16013 Reflect,
16014 Debug,
16015 Default,
16016 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16017 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16018)]
16019#[fhir_serialize_type = "resource"]
16020#[doc = "Information about a medication that is used to support knowledge."]
16021pub struct MedicationKnowledge {
16022 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
16023 pub id: Option<String>,
16024 #[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."]
16025 pub meta: Option<Box<Meta>>,
16026 #[primitive]
16027 #[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."]
16028 pub implicitRules: Option<Box<FHIRUri>>,
16029 #[primitive]
16030 #[doc = "The base language in which the resource is written."]
16031 pub language: Option<Box<FHIRCode>>,
16032 #[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."]
16033 pub text: Option<Box<Narrative>>,
16034 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
16035 pub contained: Option<Vec<Box<Resource>>>,
16036 #[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 manageable, 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."]
16037 pub extension: Option<Vec<Box<Extension>>>,
16038 #[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 manageable, 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)."]
16039 pub modifierExtension: Option<Vec<Box<Extension>>>,
16040 #[doc = "A code that specifies this medication, or a textual description if no code is available. Usage note: This could be a standard medication code such as a code from RxNorm, SNOMED CT, IDMP etc. It could also be a national or local formulary code, optionally with translations to other code systems."]
16041 pub code: Option<Box<CodeableConcept>>,
16042 #[primitive]
16043 #[doc = "A code to indicate if the medication is in active use. The status refers to the validity about the information of the medication and not to its medicinal properties."]
16044 pub status: Option<Box<terminology::MedicationknowledgeStatus>>,
16045 # [reference (targets = ["Organization"])]
16046 #[doc = "Describes the details of the manufacturer of the medication product. This is not intended to represent the distributor of a medication product."]
16047 pub manufacturer: Option<Box<Reference>>,
16048 #[doc = "Describes the form of the item. Powder; tablets; capsule."]
16049 pub doseForm: Option<Box<CodeableConcept>>,
16050 #[doc = "Specific amount of the drug in the packaged product. For example, when specifying a product that has the same strength (For example, Insulin glargine 100 unit per mL solution for injection), this attribute provides additional clarification of the package amount (For example, 3 mL, 10mL, etc.)."]
16051 pub amount: Option<Box<Quantity>>,
16052 #[primitive]
16053 #[doc = "Additional names for a medication, for example, the name(s) given to a medication in different countries. For example, acetaminophen and paracetamol or salbutamol and albuterol."]
16054 pub synonym: Option<Vec<Box<FHIRString>>>,
16055 #[doc = "Associated or related knowledge about a medication."]
16056 pub relatedMedicationKnowledge: Option<Vec<MedicationKnowledgeRelatedMedicationKnowledge>>,
16057 # [reference (targets = ["Medication"])]
16058 #[doc = "Associated or related medications. For example, if the medication is a branded product (e.g. Crestor), this is the Therapeutic Moeity (e.g. Rosuvastatin) or if this is a generic medication (e.g. Rosuvastatin), this would link to a branded product (e.g. Crestor)."]
16059 pub associatedMedication: Option<Vec<Box<Reference>>>,
16060 #[doc = "Category of the medication or product (e.g. branded product, therapeutic moeity, generic product, innovator product, etc.)."]
16061 pub productType: Option<Vec<Box<CodeableConcept>>>,
16062 #[doc = "Associated documentation about the medication."]
16063 pub monograph: Option<Vec<MedicationKnowledgeMonograph>>,
16064 #[doc = "Identifies a particular constituent of interest in the product."]
16065 pub ingredient: Option<Vec<MedicationKnowledgeIngredient>>,
16066 #[primitive]
16067 #[doc = "The instructions for preparing the medication."]
16068 pub preparationInstruction: Option<Box<FHIRMarkdown>>,
16069 #[doc = "The intended or approved route of administration."]
16070 pub intendedRoute: Option<Vec<Box<CodeableConcept>>>,
16071 #[doc = "The price of the medication."]
16072 pub cost: Option<Vec<MedicationKnowledgeCost>>,
16073 #[doc = "The program under which the medication is reviewed."]
16074 pub monitoringProgram: Option<Vec<MedicationKnowledgeMonitoringProgram>>,
16075 #[doc = "Guidelines for the administration of the medication."]
16076 pub administrationGuidelines: Option<Vec<MedicationKnowledgeAdministrationGuidelines>>,
16077 #[doc = "Categorization of the medication within a formulary or classification system."]
16078 pub medicineClassification: Option<Vec<MedicationKnowledgeMedicineClassification>>,
16079 #[doc = "Information that only applies to packages (not products)."]
16080 pub packaging: Option<MedicationKnowledgePackaging>,
16081 #[doc = "Specifies descriptive properties of the medicine, such as color, shape, imprints, etc."]
16082 pub drugCharacteristic: Option<Vec<MedicationKnowledgeDrugCharacteristic>>,
16083 # [reference (targets = ["DetectedIssue"])]
16084 #[doc = "Potential clinical issue with or between medication(s) (for example, drug-drug interaction, drug-disease contraindication, drug-allergy interaction, etc.)."]
16085 pub contraindication: Option<Vec<Box<Reference>>>,
16086 #[doc = "Regulatory information about a medication."]
16087 pub regulatory: Option<Vec<MedicationKnowledgeRegulatory>>,
16088 #[doc = "The time course of drug absorption, distribution, metabolism and excretion of a medication from the body."]
16089 pub kinetics: Option<Vec<MedicationKnowledgeKinetics>>,
16090}
16091#[derive(
16092 Clone,
16093 Reflect,
16094 Debug,
16095 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16096 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16097)]
16098#[fhir_serialize_type = "typechoice"]
16099#[type_choice_field_name = "reported"]
16100pub enum MedicationRequestReportedTypeChoice {
16101 Boolean(Box<FHIRBoolean>),
16102 # [reference (targets = ["Patient" , "Practitioner" , "PractitionerRole" , "RelatedPerson" , "Organization"])]
16103 Reference(Box<Reference>),
16104}
16105impl Default for MedicationRequestReportedTypeChoice {
16106 fn default() -> Self {
16107 MedicationRequestReportedTypeChoice::Boolean(Box::new(Default::default()))
16108 }
16109}
16110#[derive(
16111 Clone,
16112 Reflect,
16113 Debug,
16114 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16115 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16116)]
16117#[fhir_serialize_type = "typechoice"]
16118#[type_choice_field_name = "medication"]
16119pub enum MedicationRequestMedicationTypeChoice {
16120 CodeableConcept(Box<CodeableConcept>),
16121 # [reference (targets = ["Medication"])]
16122 Reference(Box<Reference>),
16123}
16124impl Default for MedicationRequestMedicationTypeChoice {
16125 fn default() -> Self {
16126 MedicationRequestMedicationTypeChoice::CodeableConcept(Box::new(Default::default()))
16127 }
16128}
16129#[derive(
16130 Clone,
16131 Reflect,
16132 Debug,
16133 Default,
16134 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16135 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16136)]
16137#[fhir_serialize_type = "complex"]
16138#[doc = "Indicates the quantity or duration for the first dispense of the medication."]
16139pub struct MedicationRequestDispenseRequestInitialFill {
16140 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
16141 pub id: Option<String>,
16142 #[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 manageable, 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."]
16143 pub extension: Option<Vec<Box<Extension>>>,
16144 #[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 manageable, 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)."]
16145 pub modifierExtension: Option<Vec<Box<Extension>>>,
16146 #[doc = "The amount or quantity to provide as part of the first dispense."]
16147 pub quantity: Option<Box<Quantity>>,
16148 #[doc = "The length of time that the first dispense is expected to last."]
16149 pub duration: Option<Box<Duration>>,
16150}
16151#[derive(
16152 Clone,
16153 Reflect,
16154 Debug,
16155 Default,
16156 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16157 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16158)]
16159#[fhir_serialize_type = "complex"]
16160#[doc = "Indicates the specific details for the dispense or medication supply part of a medication request (also known as a Medication Prescription or Medication Order). Note that this information is not always sent with the order. There may be in some settings (e.g. hospitals) institutional or system support for completing the dispense details in the pharmacy department."]
16161pub struct MedicationRequestDispenseRequest {
16162 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
16163 pub id: Option<String>,
16164 #[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 manageable, 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."]
16165 pub extension: Option<Vec<Box<Extension>>>,
16166 #[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 manageable, 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)."]
16167 pub modifierExtension: Option<Vec<Box<Extension>>>,
16168 #[doc = "Indicates the quantity or duration for the first dispense of the medication."]
16169 pub initialFill: Option<MedicationRequestDispenseRequestInitialFill>,
16170 #[doc = "The minimum period of time that must occur between dispenses of the medication."]
16171 pub dispenseInterval: Option<Box<Duration>>,
16172 #[doc = "This indicates the validity period of a prescription (stale dating the Prescription)."]
16173 pub validityPeriod: Option<Box<Period>>,
16174 #[primitive]
16175 #[doc = "An integer indicating the number of times, in addition to the original dispense, (aka refills or repeats) that the patient can receive the prescribed medication. Usage Notes: This integer does not include the original order dispense. This means that if an order indicates dispense 30 tablets plus \"3 repeats\", then the order can be dispensed a total of 4 times and the patient can receive a total of 120 tablets. A prescriber may explicitly say that zero refills are permitted after the initial dispense."]
16176 pub numberOfRepeatsAllowed: Option<Box<FHIRUnsignedInt>>,
16177 #[doc = "The amount that is to be dispensed for one fill."]
16178 pub quantity: Option<Box<Quantity>>,
16179 #[doc = "Identifies the period time over which the supplied product is expected to be used, or the length of time the dispense is expected to last."]
16180 pub expectedSupplyDuration: Option<Box<Duration>>,
16181 # [reference (targets = ["Organization"])]
16182 #[doc = "Indicates the intended dispensing Organization specified by the prescriber."]
16183 pub performer: Option<Box<Reference>>,
16184}
16185#[derive(
16186 Clone,
16187 Reflect,
16188 Debug,
16189 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16190 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16191)]
16192#[fhir_serialize_type = "typechoice"]
16193#[type_choice_field_name = "allowed"]
16194pub enum MedicationRequestSubstitutionAllowedTypeChoice {
16195 Boolean(Box<FHIRBoolean>),
16196 CodeableConcept(Box<CodeableConcept>),
16197}
16198impl Default for MedicationRequestSubstitutionAllowedTypeChoice {
16199 fn default() -> Self {
16200 MedicationRequestSubstitutionAllowedTypeChoice::Boolean(Box::new(Default::default()))
16201 }
16202}
16203#[derive(
16204 Clone,
16205 Reflect,
16206 Debug,
16207 Default,
16208 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16209 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16210)]
16211#[fhir_serialize_type = "complex"]
16212#[doc = "Indicates whether or not substitution can or should be part of the dispense. In some cases, substitution must happen, in other cases substitution must not happen. This block explains the prescriber's intent. If nothing is specified substitution may be done."]
16213pub struct MedicationRequestSubstitution {
16214 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
16215 pub id: Option<String>,
16216 #[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 manageable, 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."]
16217 pub extension: Option<Vec<Box<Extension>>>,
16218 #[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 manageable, 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)."]
16219 pub modifierExtension: Option<Vec<Box<Extension>>>,
16220 # [type_choice_variants (complex = ["allowedCodeableConcept"] , primitive = ["allowedBoolean"])]
16221 #[doc = "True if the prescriber allows a different drug to be dispensed from what was prescribed."]
16222 pub allowed: MedicationRequestSubstitutionAllowedTypeChoice,
16223 #[doc = "Indicates the reason for the substitution, or why substitution must or must not be performed."]
16224 pub reason: Option<Box<CodeableConcept>>,
16225}
16226#[derive(
16227 Clone,
16228 Reflect,
16229 Debug,
16230 Default,
16231 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16232 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16233)]
16234#[fhir_serialize_type = "resource"]
16235#[doc = "An order or request for both supply of the medication and the instructions for administration of the medication to a patient. The resource is called \"MedicationRequest\" rather than \"MedicationPrescription\" or \"MedicationOrder\" to generalize the use across inpatient and outpatient settings, including care plans, etc., and to harmonize with workflow patterns."]
16236pub struct MedicationRequest {
16237 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
16238 pub id: Option<String>,
16239 #[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."]
16240 pub meta: Option<Box<Meta>>,
16241 #[primitive]
16242 #[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."]
16243 pub implicitRules: Option<Box<FHIRUri>>,
16244 #[primitive]
16245 #[doc = "The base language in which the resource is written."]
16246 pub language: Option<Box<FHIRCode>>,
16247 #[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."]
16248 pub text: Option<Box<Narrative>>,
16249 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
16250 pub contained: Option<Vec<Box<Resource>>>,
16251 #[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 manageable, 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."]
16252 pub extension: Option<Vec<Box<Extension>>>,
16253 #[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 manageable, 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)."]
16254 pub modifierExtension: Option<Vec<Box<Extension>>>,
16255 #[rename_field = "identifier"]
16256 #[doc = "Identifiers associated with this medication request that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server."]
16257 pub identifier_: Option<Vec<Box<Identifier>>>,
16258 #[primitive]
16259 #[doc = "A code specifying the current state of the order. Generally, this will be active or completed state."]
16260 pub status: Box<terminology::MedicationrequestStatus>,
16261 #[doc = "Captures the reason for the current state of the MedicationRequest."]
16262 pub statusReason: Option<Box<CodeableConcept>>,
16263 #[primitive]
16264 #[doc = "Whether the request is a proposal, plan, or an original order."]
16265 pub intent: Box<terminology::MedicationrequestIntent>,
16266 #[doc = "Indicates the type of medication request (for example, where the medication is expected to be consumed or administered (i.e. inpatient or outpatient))."]
16267 pub category: Option<Vec<Box<CodeableConcept>>>,
16268 #[primitive]
16269 #[doc = "Indicates how quickly the Medication Request should be addressed with respect to other requests."]
16270 pub priority: Option<Box<terminology::RequestPriority>>,
16271 #[primitive]
16272 #[doc = "If true indicates that the provider is asking for the medication request not to occur."]
16273 pub doNotPerform: Option<Box<FHIRBoolean>>,
16274 # [type_choice_variants (complex = ["reportedReference"] , primitive = ["reportedBoolean"])]
16275 #[doc = "Indicates if this record was captured as a secondary 'reported' record rather than as an original primary source-of-truth record. It may also indicate the source of the report."]
16276 pub reported: Option<MedicationRequestReportedTypeChoice>,
16277 # [type_choice_variants (complex = ["medicationCodeableConcept" , "medicationReference"] , primitive = [])]
16278 #[doc = "Identifies the medication being requested. This is a link to a resource that represents the medication which may be the details of the medication or simply an attribute carrying a code that identifies the medication from a known list of medications."]
16279 pub medication: MedicationRequestMedicationTypeChoice,
16280 # [reference (targets = ["Patient" , "Group"])]
16281 #[doc = "A link to a resource representing the person or set of individuals to whom the medication will be given."]
16282 pub subject: Box<Reference>,
16283 # [reference (targets = ["Encounter"])]
16284 #[doc = "The Encounter during which this [x] was created or to which the creation of this record is tightly associated."]
16285 pub encounter: Option<Box<Reference>>,
16286 # [reference (targets = ["Resource"])]
16287 #[doc = "Include additional information (for example, patient height and weight) that supports the ordering of the medication."]
16288 pub supportingInformation: Option<Vec<Box<Reference>>>,
16289 #[primitive]
16290 #[doc = "The date (and perhaps time) when the prescription was initially written or authored on."]
16291 pub authoredOn: Option<Box<FHIRDateTime>>,
16292 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization" , "Patient" , "RelatedPerson" , "Device"])]
16293 #[doc = "The individual, organization, or device that initiated the request and has responsibility for its activation."]
16294 pub requester: Option<Box<Reference>>,
16295 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization" , "Patient" , "Device" , "RelatedPerson" , "CareTeam"])]
16296 #[doc = "The specified desired performer of the medication treatment (e.g. the performer of the medication administration)."]
16297 pub performer: Option<Box<Reference>>,
16298 #[doc = "Indicates the type of performer of the administration of the medication."]
16299 pub performerType: Option<Box<CodeableConcept>>,
16300 # [reference (targets = ["Practitioner" , "PractitionerRole"])]
16301 #[doc = "The person who entered the order on behalf of another individual for example in the case of a verbal or a telephone order."]
16302 pub recorder: Option<Box<Reference>>,
16303 #[doc = "The reason or the indication for ordering or not ordering the medication."]
16304 pub reasonCode: Option<Vec<Box<CodeableConcept>>>,
16305 # [reference (targets = ["Condition" , "Observation"])]
16306 #[doc = "Condition or observation that supports why the medication was ordered."]
16307 pub reasonReference: Option<Vec<Box<Reference>>>,
16308 #[primitive]
16309 #[doc = "The URL pointing to a protocol, guideline, orderset, or other definition that is adhered to in whole or in part by this MedicationRequest."]
16310 pub instantiatesCanonical: Option<Vec<Box<FHIRCanonical>>>,
16311 #[primitive]
16312 #[doc = "The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this MedicationRequest."]
16313 pub instantiatesUri: Option<Vec<Box<FHIRUri>>>,
16314 # [reference (targets = ["CarePlan" , "MedicationRequest" , "ServiceRequest" , "ImmunizationRecommendation"])]
16315 #[doc = "A plan or request that is fulfilled in whole or in part by this medication request."]
16316 pub basedOn: Option<Vec<Box<Reference>>>,
16317 #[doc = "A shared identifier common to all requests that were authorized more or less simultaneously by a single author, representing the identifier of the requisition or prescription."]
16318 pub groupIdentifier: Option<Box<Identifier>>,
16319 #[doc = "The description of the overall patte3rn of the administration of the medication to the patient."]
16320 pub courseOfTherapyType: Option<Box<CodeableConcept>>,
16321 # [reference (targets = ["Coverage" , "ClaimResponse"])]
16322 #[doc = "Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be required for delivering the requested service."]
16323 pub insurance: Option<Vec<Box<Reference>>>,
16324 #[doc = "Extra information about the prescription that could not be conveyed by the other attributes."]
16325 pub note: Option<Vec<Box<Annotation>>>,
16326 #[doc = "Indicates how the medication is to be used by the patient."]
16327 pub dosageInstruction: Option<Vec<Box<Dosage>>>,
16328 #[doc = "Indicates the specific details for the dispense or medication supply part of a medication request (also known as a Medication Prescription or Medication Order). Note that this information is not always sent with the order. There may be in some settings (e.g. hospitals) institutional or system support for completing the dispense details in the pharmacy department."]
16329 pub dispenseRequest: Option<MedicationRequestDispenseRequest>,
16330 #[doc = "Indicates whether or not substitution can or should be part of the dispense. In some cases, substitution must happen, in other cases substitution must not happen. This block explains the prescriber's intent. If nothing is specified substitution may be done."]
16331 pub substitution: Option<MedicationRequestSubstitution>,
16332 # [reference (targets = ["MedicationRequest"])]
16333 #[doc = "A link to a resource representing an earlier order related order or prescription."]
16334 pub priorPrescription: Option<Box<Reference>>,
16335 # [reference (targets = ["DetectedIssue"])]
16336 #[doc = "Indicates an actual or potential clinical issue with or between one or more active or proposed clinical actions for a patient; e.g. Drug-drug interaction, duplicate therapy, dosage alert etc."]
16337 pub detectedIssue: Option<Vec<Box<Reference>>>,
16338 # [reference (targets = ["Provenance"])]
16339 #[doc = "Links to Provenance records for past versions of this resource or fulfilling request or event resources that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the resource."]
16340 pub eventHistory: Option<Vec<Box<Reference>>>,
16341}
16342#[derive(
16343 Clone,
16344 Reflect,
16345 Debug,
16346 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16347 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16348)]
16349#[fhir_serialize_type = "typechoice"]
16350#[type_choice_field_name = "medication"]
16351pub enum MedicationStatementMedicationTypeChoice {
16352 CodeableConcept(Box<CodeableConcept>),
16353 # [reference (targets = ["Medication"])]
16354 Reference(Box<Reference>),
16355}
16356impl Default for MedicationStatementMedicationTypeChoice {
16357 fn default() -> Self {
16358 MedicationStatementMedicationTypeChoice::CodeableConcept(Box::new(Default::default()))
16359 }
16360}
16361#[derive(
16362 Clone,
16363 Reflect,
16364 Debug,
16365 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16366 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16367)]
16368#[fhir_serialize_type = "typechoice"]
16369#[type_choice_field_name = "effective"]
16370pub enum MedicationStatementEffectiveTypeChoice {
16371 DateTime(Box<FHIRDateTime>),
16372 Period(Box<Period>),
16373}
16374impl Default for MedicationStatementEffectiveTypeChoice {
16375 fn default() -> Self {
16376 MedicationStatementEffectiveTypeChoice::DateTime(Box::new(Default::default()))
16377 }
16378}
16379#[derive(
16380 Clone,
16381 Reflect,
16382 Debug,
16383 Default,
16384 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16385 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16386)]
16387#[fhir_serialize_type = "resource"]
16388#[doc = "A record of a medication that is being consumed by a patient. A MedicationStatement may indicate that the patient may be taking the medication now or has taken the medication in the past or will be taking the medication in the future. The source of this information can be the patient, significant other (such as a family member or spouse), or a clinician. A common scenario where this information is captured is during the history taking process during a patient visit or stay. The medication information may come from sources such as the patient's memory, from a prescription bottle, or from a list of medications the patient, clinician or other party maintains. \n\nThe primary difference between a medication statement and a medication administration is that the medication administration has complete administration information and is based on actual administration information from the person who administered the medication. A medication statement is often, if not always, less specific. There is no required date/time when the medication was administered, in fact we only know that a source has reported the patient is taking this medication, where details such as time, quantity, or rate or even medication product may be incomplete or missing or less precise. As stated earlier, the medication statement information may come from the patient's memory, from a prescription bottle or from a list of medications the patient, clinician or other party maintains. Medication administration is more formal and is not missing detailed information."]
16389pub struct MedicationStatement {
16390 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
16391 pub id: Option<String>,
16392 #[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."]
16393 pub meta: Option<Box<Meta>>,
16394 #[primitive]
16395 #[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."]
16396 pub implicitRules: Option<Box<FHIRUri>>,
16397 #[primitive]
16398 #[doc = "The base language in which the resource is written."]
16399 pub language: Option<Box<FHIRCode>>,
16400 #[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."]
16401 pub text: Option<Box<Narrative>>,
16402 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
16403 pub contained: Option<Vec<Box<Resource>>>,
16404 #[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 manageable, 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."]
16405 pub extension: Option<Vec<Box<Extension>>>,
16406 #[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 manageable, 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)."]
16407 pub modifierExtension: Option<Vec<Box<Extension>>>,
16408 #[rename_field = "identifier"]
16409 #[doc = "Identifiers associated with this Medication Statement that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate. They are business identifiers assigned to this resource by the performer or other systems and remain constant as the resource is updated and propagates from server to server."]
16410 pub identifier_: Option<Vec<Box<Identifier>>>,
16411 # [reference (targets = ["MedicationRequest" , "CarePlan" , "ServiceRequest"])]
16412 #[doc = "A plan, proposal or order that is fulfilled in whole or in part by this event."]
16413 pub basedOn: Option<Vec<Box<Reference>>>,
16414 # [reference (targets = ["MedicationAdministration" , "MedicationDispense" , "MedicationStatement" , "Procedure" , "Observation"])]
16415 #[doc = "A larger event of which this particular event is a component or step."]
16416 pub partOf: Option<Vec<Box<Reference>>>,
16417 #[primitive]
16418 #[doc = "A code representing the patient or other source's judgment about the state of the medication used that this statement is about. Generally, this will be active or completed."]
16419 pub status: Box<terminology::MedicationStatementStatus>,
16420 #[doc = "Captures the reason for the current state of the MedicationStatement."]
16421 pub statusReason: Option<Vec<Box<CodeableConcept>>>,
16422 #[doc = "Indicates where the medication is expected to be consumed or administered."]
16423 pub category: Option<Box<CodeableConcept>>,
16424 # [type_choice_variants (complex = ["medicationCodeableConcept" , "medicationReference"] , primitive = [])]
16425 #[doc = "Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications."]
16426 pub medication: MedicationStatementMedicationTypeChoice,
16427 # [reference (targets = ["Patient" , "Group"])]
16428 #[doc = "The person, animal or group who is/was taking the medication."]
16429 pub subject: Box<Reference>,
16430 # [reference (targets = ["Encounter" , "EpisodeOfCare"])]
16431 #[doc = "The encounter or episode of care that establishes the context for this MedicationStatement."]
16432 pub context: Option<Box<Reference>>,
16433 # [type_choice_variants (complex = ["effectivePeriod"] , primitive = ["effectiveDateTime"])]
16434 #[doc = "The interval of time during which it is being asserted that the patient is/was/will be taking the medication (or was not taking, when the MedicationStatement.taken element is No)."]
16435 pub effective: Option<MedicationStatementEffectiveTypeChoice>,
16436 #[primitive]
16437 #[doc = "The date when the medication statement was asserted by the information source."]
16438 pub dateAsserted: Option<Box<FHIRDateTime>>,
16439 # [reference (targets = ["Patient" , "Practitioner" , "PractitionerRole" , "RelatedPerson" , "Organization"])]
16440 #[doc = "The person or organization that provided the information about the taking of this medication. Note: Use derivedFrom when a MedicationStatement is derived from other resources, e.g. Claim or MedicationRequest."]
16441 pub informationSource: Option<Box<Reference>>,
16442 # [reference (targets = ["Resource"])]
16443 #[doc = "Allows linking the MedicationStatement to the underlying MedicationRequest, or to other information that supports or is used to derive the MedicationStatement."]
16444 pub derivedFrom: Option<Vec<Box<Reference>>>,
16445 #[doc = "A reason for why the medication is being/was taken."]
16446 pub reasonCode: Option<Vec<Box<CodeableConcept>>>,
16447 # [reference (targets = ["Condition" , "Observation" , "DiagnosticReport"])]
16448 #[doc = "Condition or observation that supports why the medication is being/was taken."]
16449 pub reasonReference: Option<Vec<Box<Reference>>>,
16450 #[doc = "Provides extra information about the medication statement that is not conveyed by the other attributes."]
16451 pub note: Option<Vec<Box<Annotation>>>,
16452 #[doc = "Indicates how the medication is/was or should be taken by the patient."]
16453 pub dosage: Option<Vec<Box<Dosage>>>,
16454}
16455#[derive(
16456 Clone,
16457 Reflect,
16458 Debug,
16459 Default,
16460 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16461 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16462)]
16463#[fhir_serialize_type = "complex"]
16464#[doc = "Coding words or phrases of the name."]
16465pub struct MedicinalProductNameNamePart {
16466 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
16467 pub id: Option<String>,
16468 #[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 manageable, 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."]
16469 pub extension: Option<Vec<Box<Extension>>>,
16470 #[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 manageable, 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)."]
16471 pub modifierExtension: Option<Vec<Box<Extension>>>,
16472 #[primitive]
16473 #[doc = "A fragment of a product name."]
16474 pub part: Box<FHIRString>,
16475 #[rename_field = "type"]
16476 #[doc = "Idenifying type for this part of the name (e.g. strength part)."]
16477 pub type_: Box<Coding>,
16478}
16479#[derive(
16480 Clone,
16481 Reflect,
16482 Debug,
16483 Default,
16484 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16485 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16486)]
16487#[fhir_serialize_type = "complex"]
16488#[doc = "Country where the name applies."]
16489pub struct MedicinalProductNameCountryLanguage {
16490 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
16491 pub id: Option<String>,
16492 #[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 manageable, 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."]
16493 pub extension: Option<Vec<Box<Extension>>>,
16494 #[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 manageable, 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)."]
16495 pub modifierExtension: Option<Vec<Box<Extension>>>,
16496 #[doc = "Country code for where this name applies."]
16497 pub country: Box<CodeableConcept>,
16498 #[doc = "Jurisdiction code for where this name applies."]
16499 pub jurisdiction: Option<Box<CodeableConcept>>,
16500 #[doc = "Language code for this name."]
16501 pub language: Box<CodeableConcept>,
16502}
16503#[derive(
16504 Clone,
16505 Reflect,
16506 Debug,
16507 Default,
16508 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16509 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16510)]
16511#[fhir_serialize_type = "complex"]
16512#[doc = "The product's name, including full name and possibly coded parts."]
16513pub struct MedicinalProductName {
16514 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
16515 pub id: Option<String>,
16516 #[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 manageable, 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."]
16517 pub extension: Option<Vec<Box<Extension>>>,
16518 #[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 manageable, 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)."]
16519 pub modifierExtension: Option<Vec<Box<Extension>>>,
16520 #[primitive]
16521 #[doc = "The full product name."]
16522 pub productName: Box<FHIRString>,
16523 #[doc = "Coding words or phrases of the name."]
16524 pub namePart: Option<Vec<MedicinalProductNameNamePart>>,
16525 #[doc = "Country where the name applies."]
16526 pub countryLanguage: Option<Vec<MedicinalProductNameCountryLanguage>>,
16527}
16528#[derive(
16529 Clone,
16530 Reflect,
16531 Debug,
16532 Default,
16533 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16534 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16535)]
16536#[fhir_serialize_type = "complex"]
16537#[doc = "An operation applied to the product, for manufacturing or adminsitrative purpose."]
16538pub struct MedicinalProductManufacturingBusinessOperation {
16539 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
16540 pub id: Option<String>,
16541 #[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 manageable, 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."]
16542 pub extension: Option<Vec<Box<Extension>>>,
16543 #[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 manageable, 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)."]
16544 pub modifierExtension: Option<Vec<Box<Extension>>>,
16545 #[doc = "The type of manufacturing operation."]
16546 pub operationType: Option<Box<CodeableConcept>>,
16547 #[doc = "Regulatory authorization reference number."]
16548 pub authorisationReferenceNumber: Option<Box<Identifier>>,
16549 #[primitive]
16550 #[doc = "Regulatory authorization date."]
16551 pub effectiveDate: Option<Box<FHIRDateTime>>,
16552 #[doc = "To indicate if this proces is commercially confidential."]
16553 pub confidentialityIndicator: Option<Box<CodeableConcept>>,
16554 # [reference (targets = ["Organization"])]
16555 #[doc = "The manufacturer or establishment associated with the process."]
16556 pub manufacturer: Option<Vec<Box<Reference>>>,
16557 # [reference (targets = ["Organization"])]
16558 #[doc = "A regulator which oversees the operation."]
16559 pub regulator: Option<Box<Reference>>,
16560}
16561#[derive(
16562 Clone,
16563 Reflect,
16564 Debug,
16565 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16566 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16567)]
16568#[fhir_serialize_type = "typechoice"]
16569#[type_choice_field_name = "indication"]
16570pub enum MedicinalProductSpecialDesignationIndicationTypeChoice {
16571 CodeableConcept(Box<CodeableConcept>),
16572 # [reference (targets = ["MedicinalProductIndication"])]
16573 Reference(Box<Reference>),
16574}
16575impl Default for MedicinalProductSpecialDesignationIndicationTypeChoice {
16576 fn default() -> Self {
16577 MedicinalProductSpecialDesignationIndicationTypeChoice::CodeableConcept(Box::new(
16578 Default::default(),
16579 ))
16580 }
16581}
16582#[derive(
16583 Clone,
16584 Reflect,
16585 Debug,
16586 Default,
16587 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16588 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16589)]
16590#[fhir_serialize_type = "complex"]
16591#[doc = "Indicates if the medicinal product has an orphan designation for the treatment of a rare disease."]
16592pub struct MedicinalProductSpecialDesignation {
16593 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
16594 pub id: Option<String>,
16595 #[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 manageable, 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."]
16596 pub extension: Option<Vec<Box<Extension>>>,
16597 #[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 manageable, 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)."]
16598 pub modifierExtension: Option<Vec<Box<Extension>>>,
16599 #[rename_field = "identifier"]
16600 #[doc = "Identifier for the designation, or procedure number."]
16601 pub identifier_: Option<Vec<Box<Identifier>>>,
16602 #[rename_field = "type"]
16603 #[doc = "The type of special designation, e.g. orphan drug, minor use."]
16604 pub type_: Option<Box<CodeableConcept>>,
16605 #[doc = "The intended use of the product, e.g. prevention, treatment."]
16606 pub intendedUse: Option<Box<CodeableConcept>>,
16607 # [type_choice_variants (complex = ["indicationCodeableConcept" , "indicationReference"] , primitive = [])]
16608 #[doc = "Condition for which the medicinal use applies."]
16609 pub indication: Option<MedicinalProductSpecialDesignationIndicationTypeChoice>,
16610 #[doc = "For example granted, pending, expired or withdrawn."]
16611 pub status: Option<Box<CodeableConcept>>,
16612 #[primitive]
16613 #[doc = "Date when the designation was granted."]
16614 pub date: Option<Box<FHIRDateTime>>,
16615 #[doc = "Animal species for which this applies."]
16616 pub species: Option<Box<CodeableConcept>>,
16617}
16618#[derive(
16619 Clone,
16620 Reflect,
16621 Debug,
16622 Default,
16623 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16624 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16625)]
16626#[fhir_serialize_type = "resource"]
16627#[doc = "Detailed definition of a medicinal product, typically for uses other than direct patient care (e.g. regulatory use)."]
16628pub struct MedicinalProduct {
16629 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
16630 pub id: Option<String>,
16631 #[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."]
16632 pub meta: Option<Box<Meta>>,
16633 #[primitive]
16634 #[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."]
16635 pub implicitRules: Option<Box<FHIRUri>>,
16636 #[primitive]
16637 #[doc = "The base language in which the resource is written."]
16638 pub language: Option<Box<FHIRCode>>,
16639 #[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."]
16640 pub text: Option<Box<Narrative>>,
16641 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
16642 pub contained: Option<Vec<Box<Resource>>>,
16643 #[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 manageable, 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."]
16644 pub extension: Option<Vec<Box<Extension>>>,
16645 #[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 manageable, 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)."]
16646 pub modifierExtension: Option<Vec<Box<Extension>>>,
16647 #[rename_field = "identifier"]
16648 #[doc = "Business identifier for this product. Could be an MPID."]
16649 pub identifier_: Option<Vec<Box<Identifier>>>,
16650 #[rename_field = "type"]
16651 #[doc = "Regulatory type, e.g. Investigational or Authorized."]
16652 pub type_: Option<Box<CodeableConcept>>,
16653 #[doc = "If this medicine applies to human or veterinary uses."]
16654 pub domain: Option<Box<Coding>>,
16655 #[doc = "The dose form for a single part product, or combined form of a multiple part product."]
16656 pub combinedPharmaceuticalDoseForm: Option<Box<CodeableConcept>>,
16657 #[doc = "The legal status of supply of the medicinal product as classified by the regulator."]
16658 pub legalStatusOfSupply: Option<Box<CodeableConcept>>,
16659 #[doc = "Whether the Medicinal Product is subject to additional monitoring for regulatory reasons."]
16660 pub additionalMonitoringIndicator: Option<Box<CodeableConcept>>,
16661 #[primitive]
16662 #[doc = "Whether the Medicinal Product is subject to special measures for regulatory reasons."]
16663 pub specialMeasures: Option<Vec<Box<FHIRString>>>,
16664 #[doc = "If authorised for use in children."]
16665 pub paediatricUseIndicator: Option<Box<CodeableConcept>>,
16666 #[doc = "Allows the product to be classified by various systems."]
16667 pub productClassification: Option<Vec<Box<CodeableConcept>>>,
16668 #[doc = "Marketing status of the medicinal product, in contrast to marketing authorizaton."]
16669 pub marketingStatus: Option<Vec<Box<MarketingStatus>>>,
16670 # [reference (targets = ["MedicinalProductPharmaceutical"])]
16671 #[doc = "Pharmaceutical aspects of product."]
16672 pub pharmaceuticalProduct: Option<Vec<Box<Reference>>>,
16673 # [reference (targets = ["MedicinalProductPackaged"])]
16674 #[doc = "Package representation for the product."]
16675 pub packagedMedicinalProduct: Option<Vec<Box<Reference>>>,
16676 # [reference (targets = ["DocumentReference"])]
16677 #[doc = "Supporting documentation, typically for regulatory submission."]
16678 pub attachedDocument: Option<Vec<Box<Reference>>>,
16679 # [reference (targets = ["DocumentReference"])]
16680 #[doc = "A master file for to the medicinal product (e.g. Pharmacovigilance System Master File)."]
16681 pub masterFile: Option<Vec<Box<Reference>>>,
16682 # [reference (targets = ["Organization" , "PractitionerRole"])]
16683 #[doc = "A product specific contact, person (in a role), or an organization."]
16684 pub contact: Option<Vec<Box<Reference>>>,
16685 # [reference (targets = ["ResearchStudy"])]
16686 #[doc = "Clinical trials or studies that this product is involved in."]
16687 pub clinicalTrial: Option<Vec<Box<Reference>>>,
16688 #[cardinality(min = 1usize)]
16689 #[doc = "The product's name, including full name and possibly coded parts."]
16690 pub name: Vec<MedicinalProductName>,
16691 #[doc = "Reference to another product, e.g. for linking authorised to investigational product."]
16692 pub crossReference: Option<Vec<Box<Identifier>>>,
16693 #[doc = "An operation applied to the product, for manufacturing or adminsitrative purpose."]
16694 pub manufacturingBusinessOperation: Option<Vec<MedicinalProductManufacturingBusinessOperation>>,
16695 #[doc = "Indicates if the medicinal product has an orphan designation for the treatment of a rare disease."]
16696 pub specialDesignation: Option<Vec<MedicinalProductSpecialDesignation>>,
16697}
16698#[derive(
16699 Clone,
16700 Reflect,
16701 Debug,
16702 Default,
16703 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16704 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16705)]
16706#[fhir_serialize_type = "complex"]
16707#[doc = "Authorization in areas within a country."]
16708pub struct MedicinalProductAuthorizationJurisdictionalAuthorization {
16709 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
16710 pub id: Option<String>,
16711 #[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 manageable, 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."]
16712 pub extension: Option<Vec<Box<Extension>>>,
16713 #[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 manageable, 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)."]
16714 pub modifierExtension: Option<Vec<Box<Extension>>>,
16715 #[rename_field = "identifier"]
16716 #[doc = "The assigned number for the marketing authorization."]
16717 pub identifier_: Option<Vec<Box<Identifier>>>,
16718 #[doc = "Country of authorization."]
16719 pub country: Option<Box<CodeableConcept>>,
16720 #[doc = "Jurisdiction within a country."]
16721 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
16722 #[doc = "The legal status of supply in a jurisdiction or region."]
16723 pub legalStatusOfSupply: Option<Box<CodeableConcept>>,
16724 #[doc = "The start and expected end date of the authorization."]
16725 pub validityPeriod: Option<Box<Period>>,
16726}
16727#[derive(
16728 Clone,
16729 Reflect,
16730 Debug,
16731 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16732 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16733)]
16734#[fhir_serialize_type = "typechoice"]
16735#[type_choice_field_name = "date"]
16736pub enum MedicinalProductAuthorizationProcedureDateTypeChoice {
16737 Period(Box<Period>),
16738 DateTime(Box<FHIRDateTime>),
16739}
16740impl Default for MedicinalProductAuthorizationProcedureDateTypeChoice {
16741 fn default() -> Self {
16742 MedicinalProductAuthorizationProcedureDateTypeChoice::Period(Box::new(Default::default()))
16743 }
16744}
16745#[derive(
16746 Clone,
16747 Reflect,
16748 Debug,
16749 Default,
16750 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16751 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16752)]
16753#[fhir_serialize_type = "complex"]
16754#[doc = "The regulatory procedure for granting or amending a marketing authorization."]
16755pub struct MedicinalProductAuthorizationProcedure {
16756 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
16757 pub id: Option<String>,
16758 #[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 manageable, 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."]
16759 pub extension: Option<Vec<Box<Extension>>>,
16760 #[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 manageable, 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)."]
16761 pub modifierExtension: Option<Vec<Box<Extension>>>,
16762 #[rename_field = "identifier"]
16763 #[doc = "Identifier for this procedure."]
16764 pub identifier_: Option<Box<Identifier>>,
16765 #[rename_field = "type"]
16766 #[doc = "Type of procedure."]
16767 pub type_: Box<CodeableConcept>,
16768 # [type_choice_variants (complex = ["datePeriod"] , primitive = ["dateDateTime"])]
16769 #[doc = "Date of procedure."]
16770 pub date: Option<MedicinalProductAuthorizationProcedureDateTypeChoice>,
16771 #[doc = "Applcations submitted to obtain a marketing authorization."]
16772 pub application: Option<Vec<MedicinalProductAuthorizationProcedure>>,
16773}
16774#[derive(
16775 Clone,
16776 Reflect,
16777 Debug,
16778 Default,
16779 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16780 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16781)]
16782#[fhir_serialize_type = "resource"]
16783#[doc = "The regulatory authorization of a medicinal product."]
16784pub struct MedicinalProductAuthorization {
16785 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
16786 pub id: Option<String>,
16787 #[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."]
16788 pub meta: Option<Box<Meta>>,
16789 #[primitive]
16790 #[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."]
16791 pub implicitRules: Option<Box<FHIRUri>>,
16792 #[primitive]
16793 #[doc = "The base language in which the resource is written."]
16794 pub language: Option<Box<FHIRCode>>,
16795 #[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."]
16796 pub text: Option<Box<Narrative>>,
16797 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
16798 pub contained: Option<Vec<Box<Resource>>>,
16799 #[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 manageable, 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."]
16800 pub extension: Option<Vec<Box<Extension>>>,
16801 #[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 manageable, 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)."]
16802 pub modifierExtension: Option<Vec<Box<Extension>>>,
16803 #[rename_field = "identifier"]
16804 #[doc = "Business identifier for the marketing authorization, as assigned by a regulator."]
16805 pub identifier_: Option<Vec<Box<Identifier>>>,
16806 # [reference (targets = ["MedicinalProduct" , "MedicinalProductPackaged"])]
16807 #[doc = "The medicinal product that is being authorized."]
16808 pub subject: Option<Box<Reference>>,
16809 #[doc = "The country in which the marketing authorization has been granted."]
16810 pub country: Option<Vec<Box<CodeableConcept>>>,
16811 #[doc = "Jurisdiction within a country."]
16812 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
16813 #[doc = "The status of the marketing authorization."]
16814 pub status: Option<Box<CodeableConcept>>,
16815 #[primitive]
16816 #[doc = "The date at which the given status has become applicable."]
16817 pub statusDate: Option<Box<FHIRDateTime>>,
16818 #[primitive]
16819 #[doc = "The date when a suspended the marketing or the marketing authorization of the product is anticipated to be restored."]
16820 pub restoreDate: Option<Box<FHIRDateTime>>,
16821 #[doc = "The beginning of the time period in which the marketing authorization is in the specific status shall be specified A complete date consisting of day, month and year shall be specified using the ISO 8601 date format."]
16822 pub validityPeriod: Option<Box<Period>>,
16823 #[doc = "A period of time after authorization before generic product applicatiosn can be submitted."]
16824 pub dataExclusivityPeriod: Option<Box<Period>>,
16825 #[primitive]
16826 #[doc = "The date when the first authorization was granted by a Medicines Regulatory Agency."]
16827 pub dateOfFirstAuthorization: Option<Box<FHIRDateTime>>,
16828 #[primitive]
16829 #[doc = "Date of first marketing authorization for a company's new medicinal product in any country in the World."]
16830 pub internationalBirthDate: Option<Box<FHIRDateTime>>,
16831 #[doc = "The legal framework against which this authorization is granted."]
16832 pub legalBasis: Option<Box<CodeableConcept>>,
16833 #[doc = "Authorization in areas within a country."]
16834 pub jurisdictionalAuthorization:
16835 Option<Vec<MedicinalProductAuthorizationJurisdictionalAuthorization>>,
16836 # [reference (targets = ["Organization"])]
16837 #[doc = "Marketing Authorization Holder."]
16838 pub holder: Option<Box<Reference>>,
16839 # [reference (targets = ["Organization"])]
16840 #[doc = "Medicines Regulatory Agency."]
16841 pub regulator: Option<Box<Reference>>,
16842 #[doc = "The regulatory procedure for granting or amending a marketing authorization."]
16843 pub procedure: Option<MedicinalProductAuthorizationProcedure>,
16844}
16845#[derive(
16846 Clone,
16847 Reflect,
16848 Debug,
16849 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16850 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16851)]
16852#[fhir_serialize_type = "typechoice"]
16853#[type_choice_field_name = "medication"]
16854pub enum MedicinalProductContraindicationOtherTherapyMedicationTypeChoice {
16855 CodeableConcept(Box<CodeableConcept>),
16856 # [reference (targets = ["MedicinalProduct" , "Medication" , "Substance" , "SubstanceSpecification"])]
16857 Reference(Box<Reference>),
16858}
16859impl Default for MedicinalProductContraindicationOtherTherapyMedicationTypeChoice {
16860 fn default() -> Self {
16861 MedicinalProductContraindicationOtherTherapyMedicationTypeChoice::CodeableConcept(Box::new(
16862 Default::default(),
16863 ))
16864 }
16865}
16866#[derive(
16867 Clone,
16868 Reflect,
16869 Debug,
16870 Default,
16871 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16872 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16873)]
16874#[fhir_serialize_type = "complex"]
16875#[doc = "Information about the use of the medicinal product in relation to other therapies described as part of the indication."]
16876pub struct MedicinalProductContraindicationOtherTherapy {
16877 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
16878 pub id: Option<String>,
16879 #[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 manageable, 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."]
16880 pub extension: Option<Vec<Box<Extension>>>,
16881 #[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 manageable, 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)."]
16882 pub modifierExtension: Option<Vec<Box<Extension>>>,
16883 #[doc = "The type of relationship between the medicinal product indication or contraindication and another therapy."]
16884 pub therapyRelationshipType: Box<CodeableConcept>,
16885 # [type_choice_variants (complex = ["medicationCodeableConcept" , "medicationReference"] , primitive = [])]
16886 #[doc = "Reference to a specific medication (active substance, medicinal product or class of products) as part of an indication or contraindication."]
16887 pub medication: MedicinalProductContraindicationOtherTherapyMedicationTypeChoice,
16888}
16889#[derive(
16890 Clone,
16891 Reflect,
16892 Debug,
16893 Default,
16894 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16895 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16896)]
16897#[fhir_serialize_type = "resource"]
16898#[doc = "The clinical particulars - indications, contraindications etc. of a medicinal product, including for regulatory purposes."]
16899pub struct MedicinalProductContraindication {
16900 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
16901 pub id: Option<String>,
16902 #[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."]
16903 pub meta: Option<Box<Meta>>,
16904 #[primitive]
16905 #[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."]
16906 pub implicitRules: Option<Box<FHIRUri>>,
16907 #[primitive]
16908 #[doc = "The base language in which the resource is written."]
16909 pub language: Option<Box<FHIRCode>>,
16910 #[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."]
16911 pub text: Option<Box<Narrative>>,
16912 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
16913 pub contained: Option<Vec<Box<Resource>>>,
16914 #[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 manageable, 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."]
16915 pub extension: Option<Vec<Box<Extension>>>,
16916 #[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 manageable, 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)."]
16917 pub modifierExtension: Option<Vec<Box<Extension>>>,
16918 # [reference (targets = ["MedicinalProduct" , "Medication"])]
16919 #[doc = "The medication for which this is an indication."]
16920 pub subject: Option<Vec<Box<Reference>>>,
16921 #[doc = "The disease, symptom or procedure for the contraindication."]
16922 pub disease: Option<Box<CodeableConcept>>,
16923 #[doc = "The status of the disease or symptom for the contraindication."]
16924 pub diseaseStatus: Option<Box<CodeableConcept>>,
16925 #[doc = "A comorbidity (concurrent condition) or coinfection."]
16926 pub comorbidity: Option<Vec<Box<CodeableConcept>>>,
16927 # [reference (targets = ["MedicinalProductIndication"])]
16928 #[doc = "Information about the use of the medicinal product in relation to other therapies as part of the indication."]
16929 pub therapeuticIndication: Option<Vec<Box<Reference>>>,
16930 #[doc = "Information about the use of the medicinal product in relation to other therapies described as part of the indication."]
16931 pub otherTherapy: Option<Vec<MedicinalProductContraindicationOtherTherapy>>,
16932 #[doc = "The population group to which this applies."]
16933 pub population: Option<Vec<Box<Population>>>,
16934}
16935#[derive(
16936 Clone,
16937 Reflect,
16938 Debug,
16939 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16940 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16941)]
16942#[fhir_serialize_type = "typechoice"]
16943#[type_choice_field_name = "medication"]
16944pub enum MedicinalProductIndicationOtherTherapyMedicationTypeChoice {
16945 CodeableConcept(Box<CodeableConcept>),
16946 # [reference (targets = ["MedicinalProduct" , "Medication" , "Substance" , "SubstanceSpecification"])]
16947 Reference(Box<Reference>),
16948}
16949impl Default for MedicinalProductIndicationOtherTherapyMedicationTypeChoice {
16950 fn default() -> Self {
16951 MedicinalProductIndicationOtherTherapyMedicationTypeChoice::CodeableConcept(Box::new(
16952 Default::default(),
16953 ))
16954 }
16955}
16956#[derive(
16957 Clone,
16958 Reflect,
16959 Debug,
16960 Default,
16961 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16962 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16963)]
16964#[fhir_serialize_type = "complex"]
16965#[doc = "Information about the use of the medicinal product in relation to other therapies described as part of the indication."]
16966pub struct MedicinalProductIndicationOtherTherapy {
16967 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
16968 pub id: Option<String>,
16969 #[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 manageable, 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."]
16970 pub extension: Option<Vec<Box<Extension>>>,
16971 #[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 manageable, 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)."]
16972 pub modifierExtension: Option<Vec<Box<Extension>>>,
16973 #[doc = "The type of relationship between the medicinal product indication or contraindication and another therapy."]
16974 pub therapyRelationshipType: Box<CodeableConcept>,
16975 # [type_choice_variants (complex = ["medicationCodeableConcept" , "medicationReference"] , primitive = [])]
16976 #[doc = "Reference to a specific medication (active substance, medicinal product or class of products) as part of an indication or contraindication."]
16977 pub medication: MedicinalProductIndicationOtherTherapyMedicationTypeChoice,
16978}
16979#[derive(
16980 Clone,
16981 Reflect,
16982 Debug,
16983 Default,
16984 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
16985 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
16986)]
16987#[fhir_serialize_type = "resource"]
16988#[doc = "Indication for the Medicinal Product."]
16989pub struct MedicinalProductIndication {
16990 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
16991 pub id: Option<String>,
16992 #[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."]
16993 pub meta: Option<Box<Meta>>,
16994 #[primitive]
16995 #[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."]
16996 pub implicitRules: Option<Box<FHIRUri>>,
16997 #[primitive]
16998 #[doc = "The base language in which the resource is written."]
16999 pub language: Option<Box<FHIRCode>>,
17000 #[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."]
17001 pub text: Option<Box<Narrative>>,
17002 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
17003 pub contained: Option<Vec<Box<Resource>>>,
17004 #[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 manageable, 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."]
17005 pub extension: Option<Vec<Box<Extension>>>,
17006 #[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 manageable, 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)."]
17007 pub modifierExtension: Option<Vec<Box<Extension>>>,
17008 # [reference (targets = ["MedicinalProduct" , "Medication"])]
17009 #[doc = "The medication for which this is an indication."]
17010 pub subject: Option<Vec<Box<Reference>>>,
17011 #[doc = "The disease, symptom or procedure that is the indication for treatment."]
17012 pub diseaseSymptomProcedure: Option<Box<CodeableConcept>>,
17013 #[doc = "The status of the disease or symptom for which the indication applies."]
17014 pub diseaseStatus: Option<Box<CodeableConcept>>,
17015 #[doc = "Comorbidity (concurrent condition) or co-infection as part of the indication."]
17016 pub comorbidity: Option<Vec<Box<CodeableConcept>>>,
17017 #[doc = "The intended effect, aim or strategy to be achieved by the indication."]
17018 pub intendedEffect: Option<Box<CodeableConcept>>,
17019 #[doc = "Timing or duration information as part of the indication."]
17020 pub duration: Option<Box<Quantity>>,
17021 #[doc = "Information about the use of the medicinal product in relation to other therapies described as part of the indication."]
17022 pub otherTherapy: Option<Vec<MedicinalProductIndicationOtherTherapy>>,
17023 # [reference (targets = ["MedicinalProductUndesirableEffect"])]
17024 #[doc = "Describe the undesirable effects of the medicinal product."]
17025 pub undesirableEffect: Option<Vec<Box<Reference>>>,
17026 #[doc = "The population group to which this applies."]
17027 pub population: Option<Vec<Box<Population>>>,
17028}
17029#[derive(
17030 Clone,
17031 Reflect,
17032 Debug,
17033 Default,
17034 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17035 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17036)]
17037#[fhir_serialize_type = "complex"]
17038#[doc = "Strength expressed in terms of a reference substance."]
17039pub struct MedicinalProductIngredientSpecifiedSubstanceStrengthReferenceStrength {
17040 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
17041 pub id: Option<String>,
17042 #[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 manageable, 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."]
17043 pub extension: Option<Vec<Box<Extension>>>,
17044 #[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 manageable, 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)."]
17045 pub modifierExtension: Option<Vec<Box<Extension>>>,
17046 #[doc = "Relevant reference substance."]
17047 pub substance: Option<Box<CodeableConcept>>,
17048 #[doc = "Strength expressed in terms of a reference substance."]
17049 pub strength: Box<Ratio>,
17050 #[doc = "Strength expressed in terms of a reference substance."]
17051 pub strengthLowLimit: Option<Box<Ratio>>,
17052 #[primitive]
17053 #[doc = "For when strength is measured at a particular point or distance."]
17054 pub measurementPoint: Option<Box<FHIRString>>,
17055 #[doc = "The country or countries for which the strength range applies."]
17056 pub country: Option<Vec<Box<CodeableConcept>>>,
17057}
17058#[derive(
17059 Clone,
17060 Reflect,
17061 Debug,
17062 Default,
17063 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17064 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17065)]
17066#[fhir_serialize_type = "complex"]
17067#[doc = "Quantity of the substance or specified substance present in the manufactured item or pharmaceutical product."]
17068pub struct MedicinalProductIngredientSpecifiedSubstanceStrength {
17069 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
17070 pub id: Option<String>,
17071 #[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 manageable, 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."]
17072 pub extension: Option<Vec<Box<Extension>>>,
17073 #[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 manageable, 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)."]
17074 pub modifierExtension: Option<Vec<Box<Extension>>>,
17075 #[doc = "The quantity of substance in the unit of presentation, or in the volume (or mass) of the single pharmaceutical product or manufactured item."]
17076 pub presentation: Box<Ratio>,
17077 #[doc = "A lower limit for the quantity of substance in the unit of presentation. For use when there is a range of strengths, this is the lower limit, with the presentation attribute becoming the upper limit."]
17078 pub presentationLowLimit: Option<Box<Ratio>>,
17079 #[doc = "The strength per unitary volume (or mass)."]
17080 pub concentration: Option<Box<Ratio>>,
17081 #[doc = "A lower limit for the strength per unitary volume (or mass), for when there is a range. The concentration attribute then becomes the upper limit."]
17082 pub concentrationLowLimit: Option<Box<Ratio>>,
17083 #[primitive]
17084 #[doc = "For when strength is measured at a particular point or distance."]
17085 pub measurementPoint: Option<Box<FHIRString>>,
17086 #[doc = "The country or countries for which the strength range applies."]
17087 pub country: Option<Vec<Box<CodeableConcept>>>,
17088 #[doc = "Strength expressed in terms of a reference substance."]
17089 pub referenceStrength:
17090 Option<Vec<MedicinalProductIngredientSpecifiedSubstanceStrengthReferenceStrength>>,
17091}
17092#[derive(
17093 Clone,
17094 Reflect,
17095 Debug,
17096 Default,
17097 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17098 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17099)]
17100#[fhir_serialize_type = "complex"]
17101#[doc = "A specified substance that comprises this ingredient."]
17102pub struct MedicinalProductIngredientSpecifiedSubstance {
17103 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
17104 pub id: Option<String>,
17105 #[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 manageable, 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."]
17106 pub extension: Option<Vec<Box<Extension>>>,
17107 #[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 manageable, 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)."]
17108 pub modifierExtension: Option<Vec<Box<Extension>>>,
17109 #[doc = "The specified substance."]
17110 pub code: Box<CodeableConcept>,
17111 #[doc = "The group of specified substance, e.g. group 1 to 4."]
17112 pub group: Box<CodeableConcept>,
17113 #[doc = "Confidentiality level of the specified substance as the ingredient."]
17114 pub confidentiality: Option<Box<CodeableConcept>>,
17115 #[doc = "Quantity of the substance or specified substance present in the manufactured item or pharmaceutical product."]
17116 pub strength: Option<Vec<MedicinalProductIngredientSpecifiedSubstanceStrength>>,
17117}
17118#[derive(
17119 Clone,
17120 Reflect,
17121 Debug,
17122 Default,
17123 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17124 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17125)]
17126#[fhir_serialize_type = "complex"]
17127#[doc = "The ingredient substance."]
17128pub struct MedicinalProductIngredientSubstance {
17129 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
17130 pub id: Option<String>,
17131 #[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 manageable, 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."]
17132 pub extension: Option<Vec<Box<Extension>>>,
17133 #[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 manageable, 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)."]
17134 pub modifierExtension: Option<Vec<Box<Extension>>>,
17135 #[doc = "The ingredient substance."]
17136 pub code: Box<CodeableConcept>,
17137 #[doc = "Quantity of the substance or specified substance present in the manufactured item or pharmaceutical product."]
17138 pub strength: Option<Vec<MedicinalProductIngredientSpecifiedSubstanceStrength>>,
17139}
17140#[derive(
17141 Clone,
17142 Reflect,
17143 Debug,
17144 Default,
17145 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17146 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17147)]
17148#[fhir_serialize_type = "resource"]
17149#[doc = "An ingredient of a manufactured item or pharmaceutical product."]
17150pub struct MedicinalProductIngredient {
17151 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
17152 pub id: Option<String>,
17153 #[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."]
17154 pub meta: Option<Box<Meta>>,
17155 #[primitive]
17156 #[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."]
17157 pub implicitRules: Option<Box<FHIRUri>>,
17158 #[primitive]
17159 #[doc = "The base language in which the resource is written."]
17160 pub language: Option<Box<FHIRCode>>,
17161 #[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."]
17162 pub text: Option<Box<Narrative>>,
17163 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
17164 pub contained: Option<Vec<Box<Resource>>>,
17165 #[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 manageable, 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."]
17166 pub extension: Option<Vec<Box<Extension>>>,
17167 #[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 manageable, 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)."]
17168 pub modifierExtension: Option<Vec<Box<Extension>>>,
17169 #[rename_field = "identifier"]
17170 #[doc = "The identifier(s) of this Ingredient that are assigned by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate."]
17171 pub identifier_: Option<Box<Identifier>>,
17172 #[doc = "Ingredient role e.g. Active ingredient, excipient."]
17173 pub role: Box<CodeableConcept>,
17174 #[primitive]
17175 #[doc = "If the ingredient is a known or suspected allergen."]
17176 pub allergenicIndicator: Option<Box<FHIRBoolean>>,
17177 # [reference (targets = ["Organization"])]
17178 #[doc = "Manufacturer of this Ingredient."]
17179 pub manufacturer: Option<Vec<Box<Reference>>>,
17180 #[doc = "A specified substance that comprises this ingredient."]
17181 pub specifiedSubstance: Option<Vec<MedicinalProductIngredientSpecifiedSubstance>>,
17182 #[doc = "The ingredient substance."]
17183 pub substance: Option<MedicinalProductIngredientSubstance>,
17184}
17185#[derive(
17186 Clone,
17187 Reflect,
17188 Debug,
17189 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17190 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17191)]
17192#[fhir_serialize_type = "typechoice"]
17193#[type_choice_field_name = "item"]
17194pub enum MedicinalProductInteractionInteractantItemTypeChoice {
17195 # [reference (targets = ["MedicinalProduct" , "Medication" , "Substance" , "ObservationDefinition"])]
17196 Reference(Box<Reference>),
17197 CodeableConcept(Box<CodeableConcept>),
17198}
17199impl Default for MedicinalProductInteractionInteractantItemTypeChoice {
17200 fn default() -> Self {
17201 MedicinalProductInteractionInteractantItemTypeChoice::Reference(
17202 Box::new(Default::default()),
17203 )
17204 }
17205}
17206#[derive(
17207 Clone,
17208 Reflect,
17209 Debug,
17210 Default,
17211 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17212 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17213)]
17214#[fhir_serialize_type = "complex"]
17215#[doc = "The specific medication, food or laboratory test that interacts."]
17216pub struct MedicinalProductInteractionInteractant {
17217 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
17218 pub id: Option<String>,
17219 #[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 manageable, 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."]
17220 pub extension: Option<Vec<Box<Extension>>>,
17221 #[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 manageable, 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)."]
17222 pub modifierExtension: Option<Vec<Box<Extension>>>,
17223 # [type_choice_variants (complex = ["itemReference" , "itemCodeableConcept"] , primitive = [])]
17224 #[doc = "The specific medication, food or laboratory test that interacts."]
17225 pub item: MedicinalProductInteractionInteractantItemTypeChoice,
17226}
17227#[derive(
17228 Clone,
17229 Reflect,
17230 Debug,
17231 Default,
17232 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17233 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17234)]
17235#[fhir_serialize_type = "resource"]
17236#[doc = "The interactions of the medicinal product with other medicinal products, or other forms of interactions."]
17237pub struct MedicinalProductInteraction {
17238 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
17239 pub id: Option<String>,
17240 #[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."]
17241 pub meta: Option<Box<Meta>>,
17242 #[primitive]
17243 #[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."]
17244 pub implicitRules: Option<Box<FHIRUri>>,
17245 #[primitive]
17246 #[doc = "The base language in which the resource is written."]
17247 pub language: Option<Box<FHIRCode>>,
17248 #[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."]
17249 pub text: Option<Box<Narrative>>,
17250 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
17251 pub contained: Option<Vec<Box<Resource>>>,
17252 #[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 manageable, 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."]
17253 pub extension: Option<Vec<Box<Extension>>>,
17254 #[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 manageable, 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)."]
17255 pub modifierExtension: Option<Vec<Box<Extension>>>,
17256 # [reference (targets = ["MedicinalProduct" , "Medication" , "Substance"])]
17257 #[doc = "The medication for which this is a described interaction."]
17258 pub subject: Option<Vec<Box<Reference>>>,
17259 #[primitive]
17260 #[doc = "The interaction described."]
17261 pub description: Option<Box<FHIRString>>,
17262 #[doc = "The specific medication, food or laboratory test that interacts."]
17263 pub interactant: Option<Vec<MedicinalProductInteractionInteractant>>,
17264 #[rename_field = "type"]
17265 #[doc = "The type of the interaction e.g. drug-drug interaction, drug-food interaction, drug-lab test interaction."]
17266 pub type_: Option<Box<CodeableConcept>>,
17267 #[doc = "The effect of the interaction, for example \"reduced gastric absorption of primary medication\"."]
17268 pub effect: Option<Box<CodeableConcept>>,
17269 #[doc = "The incidence of the interaction, e.g. theoretical, observed."]
17270 pub incidence: Option<Box<CodeableConcept>>,
17271 #[doc = "Actions for managing the interaction."]
17272 pub management: Option<Box<CodeableConcept>>,
17273}
17274#[derive(
17275 Clone,
17276 Reflect,
17277 Debug,
17278 Default,
17279 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17280 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17281)]
17282#[fhir_serialize_type = "resource"]
17283#[doc = "The manufactured item as contained in the packaged medicinal product."]
17284pub struct MedicinalProductManufactured {
17285 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
17286 pub id: Option<String>,
17287 #[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."]
17288 pub meta: Option<Box<Meta>>,
17289 #[primitive]
17290 #[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."]
17291 pub implicitRules: Option<Box<FHIRUri>>,
17292 #[primitive]
17293 #[doc = "The base language in which the resource is written."]
17294 pub language: Option<Box<FHIRCode>>,
17295 #[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."]
17296 pub text: Option<Box<Narrative>>,
17297 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
17298 pub contained: Option<Vec<Box<Resource>>>,
17299 #[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 manageable, 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."]
17300 pub extension: Option<Vec<Box<Extension>>>,
17301 #[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 manageable, 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)."]
17302 pub modifierExtension: Option<Vec<Box<Extension>>>,
17303 #[doc = "Dose form as manufactured and before any transformation into the pharmaceutical product."]
17304 pub manufacturedDoseForm: Box<CodeableConcept>,
17305 #[doc = "The “real world” units in which the quantity of the manufactured item is described."]
17306 pub unitOfPresentation: Option<Box<CodeableConcept>>,
17307 #[doc = "The quantity or \"count number\" of the manufactured item."]
17308 pub quantity: Box<Quantity>,
17309 # [reference (targets = ["Organization"])]
17310 #[doc = "Manufacturer of the item (Note that this should be named \"manufacturer\" but it currently causes technical issues)."]
17311 pub manufacturer: Option<Vec<Box<Reference>>>,
17312 # [reference (targets = ["MedicinalProductIngredient"])]
17313 #[doc = "Ingredient."]
17314 pub ingredient: Option<Vec<Box<Reference>>>,
17315 #[doc = "Dimensions, color etc."]
17316 pub physicalCharacteristics: Option<Box<ProdCharacteristic>>,
17317 #[doc = "Other codeable characteristics."]
17318 pub otherCharacteristics: Option<Vec<Box<CodeableConcept>>>,
17319}
17320#[derive(
17321 Clone,
17322 Reflect,
17323 Debug,
17324 Default,
17325 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17326 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17327)]
17328#[fhir_serialize_type = "complex"]
17329#[doc = "Batch numbering."]
17330pub struct MedicinalProductPackagedBatchIdentifier {
17331 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
17332 pub id: Option<String>,
17333 #[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 manageable, 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."]
17334 pub extension: Option<Vec<Box<Extension>>>,
17335 #[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 manageable, 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)."]
17336 pub modifierExtension: Option<Vec<Box<Extension>>>,
17337 #[doc = "A number appearing on the outer packaging of a specific batch."]
17338 pub outerPackaging: Box<Identifier>,
17339 #[doc = "A number appearing on the immediate packaging (and not the outer packaging)."]
17340 pub immediatePackaging: Option<Box<Identifier>>,
17341}
17342#[derive(
17343 Clone,
17344 Reflect,
17345 Debug,
17346 Default,
17347 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17348 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17349)]
17350#[fhir_serialize_type = "complex"]
17351#[doc = "A packaging item, as a contained for medicine, possibly with other packaging items within."]
17352pub struct MedicinalProductPackagedPackageItem {
17353 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
17354 pub id: Option<String>,
17355 #[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 manageable, 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."]
17356 pub extension: Option<Vec<Box<Extension>>>,
17357 #[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 manageable, 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)."]
17358 pub modifierExtension: Option<Vec<Box<Extension>>>,
17359 #[rename_field = "identifier"]
17360 #[doc = "Including possibly Data Carrier Identifier."]
17361 pub identifier_: Option<Vec<Box<Identifier>>>,
17362 #[rename_field = "type"]
17363 #[doc = "The physical type of the container of the medicine."]
17364 pub type_: Box<CodeableConcept>,
17365 #[doc = "The quantity of this package in the medicinal product, at the current level of packaging. The outermost is always 1."]
17366 pub quantity: Box<Quantity>,
17367 #[doc = "Material type of the package item."]
17368 pub material: Option<Vec<Box<CodeableConcept>>>,
17369 #[doc = "A possible alternate material for the packaging."]
17370 pub alternateMaterial: Option<Vec<Box<CodeableConcept>>>,
17371 # [reference (targets = ["DeviceDefinition"])]
17372 #[doc = "A device accompanying a medicinal product."]
17373 pub device: Option<Vec<Box<Reference>>>,
17374 # [reference (targets = ["MedicinalProductManufactured"])]
17375 #[doc = "The manufactured item as contained in the packaged medicinal product."]
17376 pub manufacturedItem: Option<Vec<Box<Reference>>>,
17377 #[doc = "Allows containers within containers."]
17378 pub packageItem: Option<Vec<MedicinalProductPackagedPackageItem>>,
17379 #[doc = "Dimensions, color etc."]
17380 pub physicalCharacteristics: Option<Box<ProdCharacteristic>>,
17381 #[doc = "Other codeable characteristics."]
17382 pub otherCharacteristics: Option<Vec<Box<CodeableConcept>>>,
17383 #[doc = "Shelf Life and storage information."]
17384 pub shelfLifeStorage: Option<Vec<Box<ProductShelfLife>>>,
17385 # [reference (targets = ["Organization"])]
17386 #[doc = "Manufacturer of this Package Item."]
17387 pub manufacturer: Option<Vec<Box<Reference>>>,
17388}
17389#[derive(
17390 Clone,
17391 Reflect,
17392 Debug,
17393 Default,
17394 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17395 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17396)]
17397#[fhir_serialize_type = "resource"]
17398#[doc = "A medicinal product in a container or package."]
17399pub struct MedicinalProductPackaged {
17400 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
17401 pub id: Option<String>,
17402 #[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."]
17403 pub meta: Option<Box<Meta>>,
17404 #[primitive]
17405 #[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."]
17406 pub implicitRules: Option<Box<FHIRUri>>,
17407 #[primitive]
17408 #[doc = "The base language in which the resource is written."]
17409 pub language: Option<Box<FHIRCode>>,
17410 #[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."]
17411 pub text: Option<Box<Narrative>>,
17412 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
17413 pub contained: Option<Vec<Box<Resource>>>,
17414 #[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 manageable, 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."]
17415 pub extension: Option<Vec<Box<Extension>>>,
17416 #[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 manageable, 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)."]
17417 pub modifierExtension: Option<Vec<Box<Extension>>>,
17418 #[rename_field = "identifier"]
17419 #[doc = "Unique identifier."]
17420 pub identifier_: Option<Vec<Box<Identifier>>>,
17421 # [reference (targets = ["MedicinalProduct"])]
17422 #[doc = "The product with this is a pack for."]
17423 pub subject: Option<Vec<Box<Reference>>>,
17424 #[primitive]
17425 #[doc = "Textual description."]
17426 pub description: Option<Box<FHIRString>>,
17427 #[doc = "The legal status of supply of the medicinal product as classified by the regulator."]
17428 pub legalStatusOfSupply: Option<Box<CodeableConcept>>,
17429 #[doc = "Marketing information."]
17430 pub marketingStatus: Option<Vec<Box<MarketingStatus>>>,
17431 # [reference (targets = ["MedicinalProductAuthorization"])]
17432 #[doc = "Manufacturer of this Package Item."]
17433 pub marketingAuthorization: Option<Box<Reference>>,
17434 # [reference (targets = ["Organization"])]
17435 #[doc = "Manufacturer of this Package Item."]
17436 pub manufacturer: Option<Vec<Box<Reference>>>,
17437 #[doc = "Batch numbering."]
17438 pub batchIdentifier: Option<Vec<MedicinalProductPackagedBatchIdentifier>>,
17439 #[cardinality(min = 1usize)]
17440 #[doc = "A packaging item, as a contained for medicine, possibly with other packaging items within."]
17441 pub packageItem: Vec<MedicinalProductPackagedPackageItem>,
17442}
17443#[derive(
17444 Clone,
17445 Reflect,
17446 Debug,
17447 Default,
17448 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17449 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17450)]
17451#[fhir_serialize_type = "complex"]
17452#[doc = "Characteristics e.g. a products onset of action."]
17453pub struct MedicinalProductPharmaceuticalCharacteristics {
17454 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
17455 pub id: Option<String>,
17456 #[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 manageable, 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."]
17457 pub extension: Option<Vec<Box<Extension>>>,
17458 #[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 manageable, 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)."]
17459 pub modifierExtension: Option<Vec<Box<Extension>>>,
17460 #[doc = "A coded characteristic."]
17461 pub code: Box<CodeableConcept>,
17462 #[doc = "The status of characteristic e.g. assigned or pending."]
17463 pub status: Option<Box<CodeableConcept>>,
17464}
17465#[derive(
17466 Clone,
17467 Reflect,
17468 Debug,
17469 Default,
17470 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17471 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17472)]
17473#[fhir_serialize_type = "complex"]
17474#[doc = "A species specific time during which consumption of animal product is not appropriate."]
17475pub struct MedicinalProductPharmaceuticalRouteOfAdministrationTargetSpeciesWithdrawalPeriod {
17476 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
17477 pub id: Option<String>,
17478 #[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 manageable, 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."]
17479 pub extension: Option<Vec<Box<Extension>>>,
17480 #[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 manageable, 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)."]
17481 pub modifierExtension: Option<Vec<Box<Extension>>>,
17482 #[doc = "Coded expression for the type of tissue for which the withdrawal period applues, e.g. meat, milk."]
17483 pub tissue: Box<CodeableConcept>,
17484 #[doc = "A value for the time."]
17485 pub value: Box<Quantity>,
17486 #[primitive]
17487 #[doc = "Extra information about the withdrawal period."]
17488 pub supportingInformation: Option<Box<FHIRString>>,
17489}
17490#[derive(
17491 Clone,
17492 Reflect,
17493 Debug,
17494 Default,
17495 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17496 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17497)]
17498#[fhir_serialize_type = "complex"]
17499#[doc = "A species for which this route applies."]
17500pub struct MedicinalProductPharmaceuticalRouteOfAdministrationTargetSpecies {
17501 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
17502 pub id: Option<String>,
17503 #[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 manageable, 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."]
17504 pub extension: Option<Vec<Box<Extension>>>,
17505 #[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 manageable, 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)."]
17506 pub modifierExtension: Option<Vec<Box<Extension>>>,
17507 #[doc = "Coded expression for the species."]
17508 pub code: Box<CodeableConcept>,
17509 #[doc = "A species specific time during which consumption of animal product is not appropriate."]
17510 pub withdrawalPeriod: Option<
17511 Vec<MedicinalProductPharmaceuticalRouteOfAdministrationTargetSpeciesWithdrawalPeriod>,
17512 >,
17513}
17514#[derive(
17515 Clone,
17516 Reflect,
17517 Debug,
17518 Default,
17519 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17520 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17521)]
17522#[fhir_serialize_type = "complex"]
17523#[doc = "The path by which the pharmaceutical product is taken into or makes contact with the body."]
17524pub struct MedicinalProductPharmaceuticalRouteOfAdministration {
17525 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
17526 pub id: Option<String>,
17527 #[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 manageable, 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."]
17528 pub extension: Option<Vec<Box<Extension>>>,
17529 #[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 manageable, 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)."]
17530 pub modifierExtension: Option<Vec<Box<Extension>>>,
17531 #[doc = "Coded expression for the route."]
17532 pub code: Box<CodeableConcept>,
17533 #[doc = "The first dose (dose quantity) administered in humans can be specified, for a product under investigation, using a numerical value and its unit of measurement."]
17534 pub firstDose: Option<Box<Quantity>>,
17535 #[doc = "The maximum single dose that can be administered as per the protocol of a clinical trial can be specified using a numerical value and its unit of measurement."]
17536 pub maxSingleDose: Option<Box<Quantity>>,
17537 #[doc = "The maximum dose per day (maximum dose quantity to be administered in any one 24-h period) that can be administered as per the protocol referenced in the clinical trial authorisation."]
17538 pub maxDosePerDay: Option<Box<Quantity>>,
17539 #[doc = "The maximum dose per treatment period that can be administered as per the protocol referenced in the clinical trial authorisation."]
17540 pub maxDosePerTreatmentPeriod: Option<Box<Ratio>>,
17541 #[doc = "The maximum treatment period during which an Investigational Medicinal Product can be administered as per the protocol referenced in the clinical trial authorisation."]
17542 pub maxTreatmentPeriod: Option<Box<Duration>>,
17543 #[doc = "A species for which this route applies."]
17544 pub targetSpecies:
17545 Option<Vec<MedicinalProductPharmaceuticalRouteOfAdministrationTargetSpecies>>,
17546}
17547#[derive(
17548 Clone,
17549 Reflect,
17550 Debug,
17551 Default,
17552 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17553 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17554)]
17555#[fhir_serialize_type = "resource"]
17556#[doc = "A pharmaceutical product described in terms of its composition and dose form."]
17557pub struct MedicinalProductPharmaceutical {
17558 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
17559 pub id: Option<String>,
17560 #[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."]
17561 pub meta: Option<Box<Meta>>,
17562 #[primitive]
17563 #[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."]
17564 pub implicitRules: Option<Box<FHIRUri>>,
17565 #[primitive]
17566 #[doc = "The base language in which the resource is written."]
17567 pub language: Option<Box<FHIRCode>>,
17568 #[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."]
17569 pub text: Option<Box<Narrative>>,
17570 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
17571 pub contained: Option<Vec<Box<Resource>>>,
17572 #[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 manageable, 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."]
17573 pub extension: Option<Vec<Box<Extension>>>,
17574 #[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 manageable, 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)."]
17575 pub modifierExtension: Option<Vec<Box<Extension>>>,
17576 #[rename_field = "identifier"]
17577 #[doc = "An identifier for the pharmaceutical medicinal product."]
17578 pub identifier_: Option<Vec<Box<Identifier>>>,
17579 #[doc = "The administrable dose form, after necessary reconstitution."]
17580 pub administrableDoseForm: Box<CodeableConcept>,
17581 #[doc = "Todo."]
17582 pub unitOfPresentation: Option<Box<CodeableConcept>>,
17583 # [reference (targets = ["MedicinalProductIngredient"])]
17584 #[doc = "Ingredient."]
17585 pub ingredient: Option<Vec<Box<Reference>>>,
17586 # [reference (targets = ["DeviceDefinition"])]
17587 #[doc = "Accompanying device."]
17588 pub device: Option<Vec<Box<Reference>>>,
17589 #[doc = "Characteristics e.g. a products onset of action."]
17590 pub characteristics: Option<Vec<MedicinalProductPharmaceuticalCharacteristics>>,
17591 #[cardinality(min = 1usize)]
17592 #[doc = "The path by which the pharmaceutical product is taken into or makes contact with the body."]
17593 pub routeOfAdministration: Vec<MedicinalProductPharmaceuticalRouteOfAdministration>,
17594}
17595#[derive(
17596 Clone,
17597 Reflect,
17598 Debug,
17599 Default,
17600 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17601 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17602)]
17603#[fhir_serialize_type = "resource"]
17604#[doc = "Describe the undesirable effects of the medicinal product."]
17605pub struct MedicinalProductUndesirableEffect {
17606 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
17607 pub id: Option<String>,
17608 #[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."]
17609 pub meta: Option<Box<Meta>>,
17610 #[primitive]
17611 #[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."]
17612 pub implicitRules: Option<Box<FHIRUri>>,
17613 #[primitive]
17614 #[doc = "The base language in which the resource is written."]
17615 pub language: Option<Box<FHIRCode>>,
17616 #[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."]
17617 pub text: Option<Box<Narrative>>,
17618 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
17619 pub contained: Option<Vec<Box<Resource>>>,
17620 #[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 manageable, 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."]
17621 pub extension: Option<Vec<Box<Extension>>>,
17622 #[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 manageable, 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)."]
17623 pub modifierExtension: Option<Vec<Box<Extension>>>,
17624 # [reference (targets = ["MedicinalProduct" , "Medication"])]
17625 #[doc = "The medication for which this is an indication."]
17626 pub subject: Option<Vec<Box<Reference>>>,
17627 #[doc = "The symptom, condition or undesirable effect."]
17628 pub symptomConditionEffect: Option<Box<CodeableConcept>>,
17629 #[doc = "Classification of the effect."]
17630 pub classification: Option<Box<CodeableConcept>>,
17631 #[doc = "The frequency of occurrence of the effect."]
17632 pub frequencyOfOccurrence: Option<Box<CodeableConcept>>,
17633 #[doc = "The population group to which this applies."]
17634 pub population: Option<Vec<Box<Population>>>,
17635}
17636#[derive(
17637 Clone,
17638 Reflect,
17639 Debug,
17640 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17641 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17642)]
17643#[fhir_serialize_type = "typechoice"]
17644#[type_choice_field_name = "event"]
17645pub enum MessageDefinitionEventTypeChoice {
17646 Coding(Box<Coding>),
17647 Uri(Box<FHIRUri>),
17648}
17649impl Default for MessageDefinitionEventTypeChoice {
17650 fn default() -> Self {
17651 MessageDefinitionEventTypeChoice::Coding(Box::new(Default::default()))
17652 }
17653}
17654#[derive(
17655 Clone,
17656 Reflect,
17657 Debug,
17658 Default,
17659 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17660 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17661)]
17662#[fhir_serialize_type = "complex"]
17663#[doc = "Identifies the resource (or resources) that are being addressed by the event. For example, the Encounter for an admit message or two Account records for a merge."]
17664pub struct MessageDefinitionFocus {
17665 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
17666 pub id: Option<String>,
17667 #[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 manageable, 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."]
17668 pub extension: Option<Vec<Box<Extension>>>,
17669 #[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 manageable, 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)."]
17670 pub modifierExtension: Option<Vec<Box<Extension>>>,
17671 #[primitive]
17672 #[doc = "The kind of resource that must be the focus for this message."]
17673 pub code: Box<terminology::ResourceTypes>,
17674 #[primitive]
17675 #[doc = "A profile that reflects constraints for the focal resource (and potentially for related resources)."]
17676 pub profile: Option<Box<FHIRCanonical>>,
17677 #[primitive]
17678 #[doc = "Identifies the minimum number of resources of this type that must be pointed to by a message in order for it to be valid against this MessageDefinition."]
17679 pub min: Box<FHIRUnsignedInt>,
17680 #[primitive]
17681 #[doc = "Identifies the maximum number of resources of this type that must be pointed to by a message in order for it to be valid against this MessageDefinition."]
17682 pub max: Option<Box<FHIRString>>,
17683}
17684#[derive(
17685 Clone,
17686 Reflect,
17687 Debug,
17688 Default,
17689 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17690 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17691)]
17692#[fhir_serialize_type = "complex"]
17693#[doc = "Indicates what types of messages may be sent as an application-level response to this message."]
17694pub struct MessageDefinitionAllowedResponse {
17695 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
17696 pub id: Option<String>,
17697 #[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 manageable, 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."]
17698 pub extension: Option<Vec<Box<Extension>>>,
17699 #[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 manageable, 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)."]
17700 pub modifierExtension: Option<Vec<Box<Extension>>>,
17701 #[primitive]
17702 #[doc = "A reference to the message definition that must be adhered to by this supported response."]
17703 pub message: Box<FHIRCanonical>,
17704 #[primitive]
17705 #[doc = "Provides a description of the circumstances in which this response should be used (as opposed to one of the alternative responses)."]
17706 pub situation: Option<Box<FHIRMarkdown>>,
17707}
17708#[derive(
17709 Clone,
17710 Reflect,
17711 Debug,
17712 Default,
17713 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17714 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17715)]
17716#[fhir_serialize_type = "resource"]
17717#[doc = "Defines the characteristics of a message that can be shared between systems, including the type of event that initiates the message, the content to be transmitted and what response(s), if any, are permitted."]
17718pub struct MessageDefinition {
17719 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
17720 pub id: Option<String>,
17721 #[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."]
17722 pub meta: Option<Box<Meta>>,
17723 #[primitive]
17724 #[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."]
17725 pub implicitRules: Option<Box<FHIRUri>>,
17726 #[primitive]
17727 #[doc = "The base language in which the resource is written."]
17728 pub language: Option<Box<FHIRCode>>,
17729 #[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."]
17730 pub text: Option<Box<Narrative>>,
17731 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
17732 pub contained: Option<Vec<Box<Resource>>>,
17733 #[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 manageable, 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."]
17734 pub extension: Option<Vec<Box<Extension>>>,
17735 #[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 manageable, 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)."]
17736 pub modifierExtension: Option<Vec<Box<Extension>>>,
17737 #[primitive]
17738 #[doc = "The business identifier that is used to reference the MessageDefinition and *is* expected to be consistent from server to server."]
17739 pub url: Option<Box<FHIRUri>>,
17740 #[rename_field = "identifier"]
17741 #[doc = "A formal identifier that is used to identify this message definition when it is represented in other formats, or referenced in a specification, model, design or an instance."]
17742 pub identifier_: Option<Vec<Box<Identifier>>>,
17743 #[primitive]
17744 #[doc = "The identifier that is used to identify this version of the message definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the message definition 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."]
17745 pub version: Option<Box<FHIRString>>,
17746 #[primitive]
17747 #[doc = "A natural language name identifying the message definition. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
17748 pub name: Option<Box<FHIRString>>,
17749 #[primitive]
17750 #[doc = "A short, descriptive, user-friendly title for the message definition."]
17751 pub title: Option<Box<FHIRString>>,
17752 #[primitive]
17753 #[doc = "A MessageDefinition that is superseded by this definition."]
17754 pub replaces: Option<Vec<Box<FHIRCanonical>>>,
17755 #[primitive]
17756 #[doc = "The status of this message definition. Enables tracking the life-cycle of the content."]
17757 pub status: Box<terminology::PublicationStatus>,
17758 #[primitive]
17759 #[doc = "A Boolean value to indicate that this message definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
17760 pub experimental: Option<Box<FHIRBoolean>>,
17761 #[primitive]
17762 #[doc = "The date (and optionally time) when the message definition was published. 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 message definition changes."]
17763 pub date: Box<FHIRDateTime>,
17764 #[primitive]
17765 #[doc = "The name of the organization or individual that published the message definition."]
17766 pub publisher: Option<Box<FHIRString>>,
17767 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
17768 pub contact: Option<Vec<Box<ContactDetail>>>,
17769 #[primitive]
17770 #[doc = "A free text natural language description of the message definition from a consumer's perspective."]
17771 pub description: Option<Box<FHIRMarkdown>>,
17772 #[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 message definition instances."]
17773 pub useContext: Option<Vec<Box<UsageContext>>>,
17774 #[doc = "A legal or geographic region in which the message definition is intended to be used."]
17775 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
17776 #[primitive]
17777 #[doc = "Explanation of why this message definition is needed and why it has been designed as it has."]
17778 pub purpose: Option<Box<FHIRMarkdown>>,
17779 #[primitive]
17780 #[doc = "A copyright statement relating to the message definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the message definition."]
17781 pub copyright: Option<Box<FHIRMarkdown>>,
17782 #[primitive]
17783 #[doc = "The MessageDefinition that is the basis for the contents of this resource."]
17784 pub base: Option<Box<FHIRCanonical>>,
17785 #[primitive]
17786 #[doc = "Identifies a protocol or workflow that this MessageDefinition represents a step in."]
17787 pub parent: Option<Vec<Box<FHIRCanonical>>>,
17788 # [type_choice_variants (complex = ["eventCoding"] , primitive = ["eventUri"])]
17789 #[doc = "Event code or link to the EventDefinition."]
17790 pub event: MessageDefinitionEventTypeChoice,
17791 #[primitive]
17792 #[doc = "The impact of the content of the message."]
17793 pub category: Option<Box<terminology::MessageSignificanceCategory>>,
17794 #[doc = "Identifies the resource (or resources) that are being addressed by the event. For example, the Encounter for an admit message or two Account records for a merge."]
17795 pub focus: Option<Vec<MessageDefinitionFocus>>,
17796 #[primitive]
17797 #[doc = "Declare at a message definition level whether a response is required or only upon error or success, or never."]
17798 pub responseRequired: Option<Box<terminology::MessageheaderResponseRequest>>,
17799 #[doc = "Indicates what types of messages may be sent as an application-level response to this message."]
17800 pub allowedResponse: Option<Vec<MessageDefinitionAllowedResponse>>,
17801 #[primitive]
17802 #[doc = "Canonical reference to a GraphDefinition. If a URL is provided, it is the canonical reference to a [GraphDefinition](graphdefinition.html) that it controls what resources are to be added to the bundle when building the document. The GraphDefinition can also specify profiles that apply to the various resources."]
17803 pub graph: Option<Vec<Box<FHIRCanonical>>>,
17804}
17805#[derive(
17806 Clone,
17807 Reflect,
17808 Debug,
17809 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17810 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17811)]
17812#[fhir_serialize_type = "typechoice"]
17813#[type_choice_field_name = "event"]
17814pub enum MessageHeaderEventTypeChoice {
17815 Coding(Box<Coding>),
17816 Uri(Box<FHIRUri>),
17817}
17818impl Default for MessageHeaderEventTypeChoice {
17819 fn default() -> Self {
17820 MessageHeaderEventTypeChoice::Coding(Box::new(Default::default()))
17821 }
17822}
17823#[derive(
17824 Clone,
17825 Reflect,
17826 Debug,
17827 Default,
17828 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17829 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17830)]
17831#[fhir_serialize_type = "complex"]
17832#[doc = "The destination application which the message is intended for."]
17833pub struct MessageHeaderDestination {
17834 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
17835 pub id: Option<String>,
17836 #[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 manageable, 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."]
17837 pub extension: Option<Vec<Box<Extension>>>,
17838 #[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 manageable, 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)."]
17839 pub modifierExtension: Option<Vec<Box<Extension>>>,
17840 #[primitive]
17841 #[doc = "Human-readable name for the target system."]
17842 pub name: Option<Box<FHIRString>>,
17843 # [reference (targets = ["Device"])]
17844 #[doc = "Identifies the target end system in situations where the initial message transmission is to an intermediary system."]
17845 pub target: Option<Box<Reference>>,
17846 #[primitive]
17847 #[doc = "Indicates where the message should be routed to."]
17848 pub endpoint: Box<FHIRUrl>,
17849 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
17850 #[doc = "Allows data conveyed by a message to be addressed to a particular person or department when routing to a specific application isn't sufficient."]
17851 pub receiver: Option<Box<Reference>>,
17852}
17853#[derive(
17854 Clone,
17855 Reflect,
17856 Debug,
17857 Default,
17858 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17859 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17860)]
17861#[fhir_serialize_type = "complex"]
17862#[doc = "The source application from which this message originated."]
17863pub struct MessageHeaderSource {
17864 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
17865 pub id: Option<String>,
17866 #[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 manageable, 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."]
17867 pub extension: Option<Vec<Box<Extension>>>,
17868 #[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 manageable, 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)."]
17869 pub modifierExtension: Option<Vec<Box<Extension>>>,
17870 #[primitive]
17871 #[doc = "Human-readable name for the source system."]
17872 pub name: Option<Box<FHIRString>>,
17873 #[primitive]
17874 #[doc = "May include configuration or other information useful in debugging."]
17875 pub software: Option<Box<FHIRString>>,
17876 #[primitive]
17877 #[doc = "Can convey versions of multiple systems in situations where a message passes through multiple hands."]
17878 pub version: Option<Box<FHIRString>>,
17879 #[doc = "An e-mail, phone, website or other contact point to use to resolve issues with message communications."]
17880 pub contact: Option<Box<ContactPoint>>,
17881 #[primitive]
17882 #[doc = "Identifies the routing target to send acknowledgements to."]
17883 pub endpoint: Box<FHIRUrl>,
17884}
17885#[derive(
17886 Clone,
17887 Reflect,
17888 Debug,
17889 Default,
17890 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17891 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17892)]
17893#[fhir_serialize_type = "complex"]
17894#[doc = "Information about the message that this message is a response to. Only present if this message is a response."]
17895pub struct MessageHeaderResponse {
17896 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
17897 pub id: Option<String>,
17898 #[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 manageable, 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."]
17899 pub extension: Option<Vec<Box<Extension>>>,
17900 #[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 manageable, 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)."]
17901 pub modifierExtension: Option<Vec<Box<Extension>>>,
17902 #[rename_field = "identifier"]
17903 #[primitive]
17904 #[doc = "The MessageHeader.id of the message to which this message is a response."]
17905 pub identifier_: Box<FHIRId>,
17906 #[primitive]
17907 #[doc = "Code that identifies the type of response to the message - whether it was successful or not, and whether it should be resent or not."]
17908 pub code: Box<terminology::ResponseCode>,
17909 # [reference (targets = ["OperationOutcome"])]
17910 #[doc = "Full details of any issues found in the message."]
17911 pub details: Option<Box<Reference>>,
17912}
17913#[derive(
17914 Clone,
17915 Reflect,
17916 Debug,
17917 Default,
17918 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17919 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17920)]
17921#[fhir_serialize_type = "resource"]
17922#[doc = "The header for a message exchange that is either requesting or responding to an action. The reference(s) that are the subject of the action as well as other information related to the action are typically transmitted in a bundle in which the MessageHeader resource instance is the first resource in the bundle."]
17923pub struct MessageHeader {
17924 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
17925 pub id: Option<String>,
17926 #[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."]
17927 pub meta: Option<Box<Meta>>,
17928 #[primitive]
17929 #[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."]
17930 pub implicitRules: Option<Box<FHIRUri>>,
17931 #[primitive]
17932 #[doc = "The base language in which the resource is written."]
17933 pub language: Option<Box<FHIRCode>>,
17934 #[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."]
17935 pub text: Option<Box<Narrative>>,
17936 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
17937 pub contained: Option<Vec<Box<Resource>>>,
17938 #[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 manageable, 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."]
17939 pub extension: Option<Vec<Box<Extension>>>,
17940 #[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 manageable, 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)."]
17941 pub modifierExtension: Option<Vec<Box<Extension>>>,
17942 # [type_choice_variants (complex = ["eventCoding"] , primitive = ["eventUri"])]
17943 #[doc = "Code that identifies the event this message represents and connects it with its definition. Events defined as part of the FHIR specification have the system value \"http://terminology.hl7.org/CodeSystem/message-events\". Alternatively uri to the EventDefinition."]
17944 pub event: MessageHeaderEventTypeChoice,
17945 #[doc = "The destination application which the message is intended for."]
17946 pub destination: Option<Vec<MessageHeaderDestination>>,
17947 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
17948 #[doc = "Identifies the sending system to allow the use of a trust relationship."]
17949 pub sender: Option<Box<Reference>>,
17950 # [reference (targets = ["Practitioner" , "PractitionerRole"])]
17951 #[doc = "The person or device that performed the data entry leading to this message. When there is more than one candidate, pick the most proximal to the message. Can provide other enterers in extensions."]
17952 pub enterer: Option<Box<Reference>>,
17953 # [reference (targets = ["Practitioner" , "PractitionerRole"])]
17954 #[doc = "The logical author of the message - the person or device that decided the described event should happen. When there is more than one candidate, pick the most proximal to the MessageHeader. Can provide other authors in extensions."]
17955 pub author: Option<Box<Reference>>,
17956 #[doc = "The source application from which this message originated."]
17957 pub source: MessageHeaderSource,
17958 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
17959 #[doc = "The person or organization that accepts overall responsibility for the contents of the message. The implication is that the message event happened under the policies of the responsible party."]
17960 pub responsible: Option<Box<Reference>>,
17961 #[doc = "Coded indication of the cause for the event - indicates a reason for the occurrence of the event that is a focus of this message."]
17962 pub reason: Option<Box<CodeableConcept>>,
17963 #[doc = "Information about the message that this message is a response to. Only present if this message is a response."]
17964 pub response: Option<MessageHeaderResponse>,
17965 # [reference (targets = ["Resource"])]
17966 #[doc = "The actual data of the message - a reference to the root/focus class of the event."]
17967 pub focus: Option<Vec<Box<Reference>>>,
17968 #[primitive]
17969 #[doc = "Permanent link to the MessageDefinition for this message."]
17970 pub definition: Option<Box<FHIRCanonical>>,
17971}
17972#[derive(
17973 Clone,
17974 Reflect,
17975 Debug,
17976 Default,
17977 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
17978 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
17979)]
17980#[fhir_serialize_type = "complex"]
17981#[doc = "A sequence that is used as a reference to describe variants that are present in a sequence analyzed."]
17982pub struct MolecularSequenceReferenceSeq {
17983 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
17984 pub id: Option<String>,
17985 #[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 manageable, 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."]
17986 pub extension: Option<Vec<Box<Extension>>>,
17987 #[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 manageable, 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)."]
17988 pub modifierExtension: Option<Vec<Box<Extension>>>,
17989 #[doc = "Structural unit composed of a nucleic acid molecule which controls its own replication through the interaction of specific proteins at one or more origins of replication ([SO:0000340](http://www.sequenceontology.org/browser/current_svn/term/SO:0000340))."]
17990 pub chromosome: Option<Box<CodeableConcept>>,
17991 #[primitive]
17992 #[doc = "The Genome Build used for reference, following GRCh build versions e.g. 'GRCh 37'. Version number must be included if a versioned release of a primary build was used."]
17993 pub genomeBuild: Option<Box<FHIRString>>,
17994 #[primitive]
17995 #[doc = "A relative reference to a DNA strand based on gene orientation. The strand that contains the open reading frame of the gene is the \"sense\" strand, and the opposite complementary strand is the \"antisense\" strand."]
17996 pub orientation: Option<Box<terminology::OrientationType>>,
17997 #[doc = "Reference identifier of reference sequence submitted to NCBI. It must match the type in the MolecularSequence.type field. For example, the prefix, “NG_” identifies reference sequence for genes, “NM_” for messenger RNA transcripts, and “NP_” for amino acid sequences."]
17998 pub referenceSeqId: Option<Box<CodeableConcept>>,
17999 # [reference (targets = ["MolecularSequence"])]
18000 #[doc = "A pointer to another MolecularSequence entity as reference sequence."]
18001 pub referenceSeqPointer: Option<Box<Reference>>,
18002 #[primitive]
18003 #[doc = "A string like \"ACGT\"."]
18004 pub referenceSeqString: Option<Box<FHIRString>>,
18005 #[primitive]
18006 #[doc = "An absolute reference to a strand. The Watson strand is the strand whose 5'-end is on the short arm of the chromosome, and the Crick strand as the one whose 5'-end is on the long arm."]
18007 pub strand: Option<Box<terminology::StrandType>>,
18008 #[primitive]
18009 #[doc = "Start position of the window on the reference sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive."]
18010 pub windowStart: Option<Box<FHIRInteger>>,
18011 #[primitive]
18012 #[doc = "End position of the window on the reference sequence. If the coordinate system is 0-based then end is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position."]
18013 pub windowEnd: Option<Box<FHIRInteger>>,
18014}
18015#[derive(
18016 Clone,
18017 Reflect,
18018 Debug,
18019 Default,
18020 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18021 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18022)]
18023#[fhir_serialize_type = "complex"]
18024#[doc = "The definition of variant here originates from Sequence ontology ([variant_of](http://www.sequenceontology.org/browser/current_svn/term/variant_of)). This element can represent amino acid or nucleic sequence change(including insertion,deletion,SNP,etc.) It can represent some complex mutation or segment variation with the assist of CIGAR string."]
18025pub struct MolecularSequenceVariant {
18026 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
18027 pub id: Option<String>,
18028 #[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 manageable, 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."]
18029 pub extension: Option<Vec<Box<Extension>>>,
18030 #[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 manageable, 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)."]
18031 pub modifierExtension: Option<Vec<Box<Extension>>>,
18032 #[primitive]
18033 #[doc = "Start position of the variant on the reference sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive."]
18034 pub start: Option<Box<FHIRInteger>>,
18035 #[primitive]
18036 #[doc = "End position of the variant on the reference sequence. If the coordinate system is 0-based then end is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position."]
18037 pub end: Option<Box<FHIRInteger>>,
18038 #[primitive]
18039 #[doc = "An allele is one of a set of coexisting sequence variants of a gene ([SO:0001023](http://www.sequenceontology.org/browser/current_svn/term/SO:0001023)). Nucleotide(s)/amino acids from start position of sequence to stop position of sequence on the positive (+) strand of the observed sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end."]
18040 pub observedAllele: Option<Box<FHIRString>>,
18041 #[primitive]
18042 #[doc = "An allele is one of a set of coexisting sequence variants of a gene ([SO:0001023](http://www.sequenceontology.org/browser/current_svn/term/SO:0001023)). Nucleotide(s)/amino acids from start position of sequence to stop position of sequence on the positive (+) strand of the reference sequence. When the sequence type is DNA, it should be the sequence on the positive (+) strand. This will lay in the range between variant.start and variant.end."]
18043 pub referenceAllele: Option<Box<FHIRString>>,
18044 #[primitive]
18045 #[doc = "Extended CIGAR string for aligning the sequence with reference bases. See detailed documentation [here](http://support.illumina.com/help/SequencingAnalysisWorkflow/Content/Vault/Informatics/Sequencing_Analysis/CASAVA/swSEQ_mCA_ExtendedCIGARFormat.htm)."]
18046 pub cigar: Option<Box<FHIRString>>,
18047 # [reference (targets = ["Observation"])]
18048 #[doc = "A pointer to an Observation containing variant information."]
18049 pub variantPointer: Option<Box<Reference>>,
18050}
18051#[derive(
18052 Clone,
18053 Reflect,
18054 Debug,
18055 Default,
18056 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18057 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18058)]
18059#[fhir_serialize_type = "complex"]
18060#[doc = "Receiver Operator Characteristic (ROC) Curve to give sensitivity/specificity tradeoff."]
18061pub struct MolecularSequenceQualityRoc {
18062 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
18063 pub id: Option<String>,
18064 #[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 manageable, 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."]
18065 pub extension: Option<Vec<Box<Extension>>>,
18066 #[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 manageable, 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)."]
18067 pub modifierExtension: Option<Vec<Box<Extension>>>,
18068 #[primitive]
18069 #[doc = "Invidual data point representing the GQ (genotype quality) score threshold."]
18070 pub score: Option<Vec<Box<FHIRInteger>>>,
18071 #[primitive]
18072 #[doc = "The number of true positives if the GQ score threshold was set to \"score\" field value."]
18073 pub numTP: Option<Vec<Box<FHIRInteger>>>,
18074 #[primitive]
18075 #[doc = "The number of false positives if the GQ score threshold was set to \"score\" field value."]
18076 pub numFP: Option<Vec<Box<FHIRInteger>>>,
18077 #[primitive]
18078 #[doc = "The number of false negatives if the GQ score threshold was set to \"score\" field value."]
18079 pub numFN: Option<Vec<Box<FHIRInteger>>>,
18080 #[primitive]
18081 #[doc = "Calculated precision if the GQ score threshold was set to \"score\" field value."]
18082 pub precision: Option<Vec<Box<FHIRDecimal>>>,
18083 #[primitive]
18084 #[doc = "Calculated sensitivity if the GQ score threshold was set to \"score\" field value."]
18085 pub sensitivity: Option<Vec<Box<FHIRDecimal>>>,
18086 #[primitive]
18087 #[doc = "Calculated fScore if the GQ score threshold was set to \"score\" field value."]
18088 pub fMeasure: Option<Vec<Box<FHIRDecimal>>>,
18089}
18090#[derive(
18091 Clone,
18092 Reflect,
18093 Debug,
18094 Default,
18095 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18096 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18097)]
18098#[fhir_serialize_type = "complex"]
18099#[doc = "An experimental feature attribute that defines the quality of the feature in a quantitative way, such as a phred quality score ([SO:0001686](http://www.sequenceontology.org/browser/current_svn/term/SO:0001686))."]
18100pub struct MolecularSequenceQuality {
18101 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
18102 pub id: Option<String>,
18103 #[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 manageable, 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."]
18104 pub extension: Option<Vec<Box<Extension>>>,
18105 #[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 manageable, 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)."]
18106 pub modifierExtension: Option<Vec<Box<Extension>>>,
18107 #[rename_field = "type"]
18108 #[primitive]
18109 #[doc = "INDEL / SNP / Undefined variant."]
18110 pub type_: Box<terminology::QualityType>,
18111 #[doc = "Gold standard sequence used for comparing against."]
18112 pub standardSequence: Option<Box<CodeableConcept>>,
18113 #[primitive]
18114 #[doc = "Start position of the sequence. If the coordinate system is either 0-based or 1-based, then start position is inclusive."]
18115 pub start: Option<Box<FHIRInteger>>,
18116 #[primitive]
18117 #[doc = "End position of the sequence. If the coordinate system is 0-based then end is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position."]
18118 pub end: Option<Box<FHIRInteger>>,
18119 #[doc = "The score of an experimentally derived feature such as a p-value ([SO:0001685](http://www.sequenceontology.org/browser/current_svn/term/SO:0001685))."]
18120 pub score: Option<Box<Quantity>>,
18121 #[doc = "Which method is used to get sequence quality."]
18122 pub method: Option<Box<CodeableConcept>>,
18123 #[primitive]
18124 #[doc = "True positives, from the perspective of the truth data, i.e. the number of sites in the Truth Call Set for which there are paths through the Query Call Set that are consistent with all of the alleles at this site, and for which there is an accurate genotype call for the event."]
18125 pub truthTP: Option<Box<FHIRDecimal>>,
18126 #[primitive]
18127 #[doc = "True positives, from the perspective of the query data, i.e. the number of sites in the Query Call Set for which there are paths through the Truth Call Set that are consistent with all of the alleles at this site, and for which there is an accurate genotype call for the event."]
18128 pub queryTP: Option<Box<FHIRDecimal>>,
18129 #[primitive]
18130 #[doc = "False negatives, i.e. the number of sites in the Truth Call Set for which there is no path through the Query Call Set that is consistent with all of the alleles at this site, or sites for which there is an inaccurate genotype call for the event. Sites with correct variant but incorrect genotype are counted here."]
18131 pub truthFN: Option<Box<FHIRDecimal>>,
18132 #[primitive]
18133 #[doc = "False positives, i.e. the number of sites in the Query Call Set for which there is no path through the Truth Call Set that is consistent with this site. Sites with correct variant but incorrect genotype are counted here."]
18134 pub queryFP: Option<Box<FHIRDecimal>>,
18135 #[primitive]
18136 #[doc = "The number of false positives where the non-REF alleles in the Truth and Query Call Sets match (i.e. cases where the truth is 1/1 and the query is 0/1 or similar)."]
18137 pub gtFP: Option<Box<FHIRDecimal>>,
18138 #[primitive]
18139 #[doc = "QUERY.TP / (QUERY.TP + QUERY.FP)."]
18140 pub precision: Option<Box<FHIRDecimal>>,
18141 #[primitive]
18142 #[doc = "TRUTH.TP / (TRUTH.TP + TRUTH.FN)."]
18143 pub recall: Option<Box<FHIRDecimal>>,
18144 #[primitive]
18145 #[doc = "Harmonic mean of Recall and Precision, computed as: 2 * precision * recall / (precision + recall)."]
18146 pub fScore: Option<Box<FHIRDecimal>>,
18147 #[doc = "Receiver Operator Characteristic (ROC) Curve to give sensitivity/specificity tradeoff."]
18148 pub roc: Option<MolecularSequenceQualityRoc>,
18149}
18150#[derive(
18151 Clone,
18152 Reflect,
18153 Debug,
18154 Default,
18155 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18156 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18157)]
18158#[fhir_serialize_type = "complex"]
18159#[doc = "Configurations of the external repository. The repository shall store target's observedSeq or records related with target's observedSeq."]
18160pub struct MolecularSequenceRepository {
18161 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
18162 pub id: Option<String>,
18163 #[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 manageable, 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."]
18164 pub extension: Option<Vec<Box<Extension>>>,
18165 #[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 manageable, 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)."]
18166 pub modifierExtension: Option<Vec<Box<Extension>>>,
18167 #[rename_field = "type"]
18168 #[primitive]
18169 #[doc = "Click and see / RESTful API / Need login to see / RESTful API with authentication / Other ways to see resource."]
18170 pub type_: Box<terminology::RepositoryType>,
18171 #[primitive]
18172 #[doc = "URI of an external repository which contains further details about the genetics data."]
18173 pub url: Option<Box<FHIRUri>>,
18174 #[primitive]
18175 #[doc = "URI of an external repository which contains further details about the genetics data."]
18176 pub name: Option<Box<FHIRString>>,
18177 #[primitive]
18178 #[doc = "Id of the variant in this external repository. The server will understand how to use this id to call for more info about datasets in external repository."]
18179 pub datasetId: Option<Box<FHIRString>>,
18180 #[primitive]
18181 #[doc = "Id of the variantset in this external repository. The server will understand how to use this id to call for more info about variantsets in external repository."]
18182 pub variantsetId: Option<Box<FHIRString>>,
18183 #[primitive]
18184 #[doc = "Id of the read in this external repository."]
18185 pub readsetId: Option<Box<FHIRString>>,
18186}
18187#[derive(
18188 Clone,
18189 Reflect,
18190 Debug,
18191 Default,
18192 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18193 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18194)]
18195#[fhir_serialize_type = "complex"]
18196#[doc = "Structural variant outer."]
18197pub struct MolecularSequenceStructureVariantOuter {
18198 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
18199 pub id: Option<String>,
18200 #[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 manageable, 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."]
18201 pub extension: Option<Vec<Box<Extension>>>,
18202 #[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 manageable, 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)."]
18203 pub modifierExtension: Option<Vec<Box<Extension>>>,
18204 #[primitive]
18205 #[doc = "Structural variant outer start. If the coordinate system is either 0-based or 1-based, then start position is inclusive."]
18206 pub start: Option<Box<FHIRInteger>>,
18207 #[primitive]
18208 #[doc = "Structural variant outer end. If the coordinate system is 0-based then end is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position."]
18209 pub end: Option<Box<FHIRInteger>>,
18210}
18211#[derive(
18212 Clone,
18213 Reflect,
18214 Debug,
18215 Default,
18216 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18217 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18218)]
18219#[fhir_serialize_type = "complex"]
18220#[doc = "Structural variant inner."]
18221pub struct MolecularSequenceStructureVariantInner {
18222 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
18223 pub id: Option<String>,
18224 #[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 manageable, 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."]
18225 pub extension: Option<Vec<Box<Extension>>>,
18226 #[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 manageable, 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)."]
18227 pub modifierExtension: Option<Vec<Box<Extension>>>,
18228 #[primitive]
18229 #[doc = "Structural variant inner start. If the coordinate system is either 0-based or 1-based, then start position is inclusive."]
18230 pub start: Option<Box<FHIRInteger>>,
18231 #[primitive]
18232 #[doc = "Structural variant inner end. If the coordinate system is 0-based then end is exclusive and does not include the last position. If the coordinate system is 1-base, then end is inclusive and includes the last position."]
18233 pub end: Option<Box<FHIRInteger>>,
18234}
18235#[derive(
18236 Clone,
18237 Reflect,
18238 Debug,
18239 Default,
18240 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18241 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18242)]
18243#[fhir_serialize_type = "complex"]
18244#[doc = "Information about chromosome structure variation."]
18245pub struct MolecularSequenceStructureVariant {
18246 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
18247 pub id: Option<String>,
18248 #[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 manageable, 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."]
18249 pub extension: Option<Vec<Box<Extension>>>,
18250 #[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 manageable, 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)."]
18251 pub modifierExtension: Option<Vec<Box<Extension>>>,
18252 #[doc = "Information about chromosome structure variation DNA change type."]
18253 pub variantType: Option<Box<CodeableConcept>>,
18254 #[primitive]
18255 #[doc = "Used to indicate if the outer and inner start-end values have the same meaning."]
18256 pub exact: Option<Box<FHIRBoolean>>,
18257 #[primitive]
18258 #[doc = "Length of the variant chromosome."]
18259 pub length: Option<Box<FHIRInteger>>,
18260 #[doc = "Structural variant outer."]
18261 pub outer: Option<MolecularSequenceStructureVariantOuter>,
18262 #[doc = "Structural variant inner."]
18263 pub inner: Option<MolecularSequenceStructureVariantInner>,
18264}
18265#[derive(
18266 Clone,
18267 Reflect,
18268 Debug,
18269 Default,
18270 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18271 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18272)]
18273#[fhir_serialize_type = "resource"]
18274#[doc = "Raw data describing a biological sequence."]
18275pub struct MolecularSequence {
18276 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
18277 pub id: Option<String>,
18278 #[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."]
18279 pub meta: Option<Box<Meta>>,
18280 #[primitive]
18281 #[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."]
18282 pub implicitRules: Option<Box<FHIRUri>>,
18283 #[primitive]
18284 #[doc = "The base language in which the resource is written."]
18285 pub language: Option<Box<FHIRCode>>,
18286 #[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."]
18287 pub text: Option<Box<Narrative>>,
18288 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
18289 pub contained: Option<Vec<Box<Resource>>>,
18290 #[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 manageable, 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."]
18291 pub extension: Option<Vec<Box<Extension>>>,
18292 #[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 manageable, 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)."]
18293 pub modifierExtension: Option<Vec<Box<Extension>>>,
18294 #[rename_field = "identifier"]
18295 #[doc = "A unique identifier for this particular sequence instance. This is a FHIR-defined id."]
18296 pub identifier_: Option<Vec<Box<Identifier>>>,
18297 #[rename_field = "type"]
18298 #[primitive]
18299 #[doc = "Amino Acid Sequence/ DNA Sequence / RNA Sequence."]
18300 pub type_: Option<Box<terminology::SequenceType>>,
18301 #[primitive]
18302 #[doc = "Whether the sequence is numbered starting at 0 (0-based numbering or coordinates, inclusive start, exclusive end) or starting at 1 (1-based numbering, inclusive start and inclusive end)."]
18303 pub coordinateSystem: Box<FHIRInteger>,
18304 # [reference (targets = ["Patient"])]
18305 #[doc = "The patient whose sequencing results are described by this resource."]
18306 pub patient: Option<Box<Reference>>,
18307 # [reference (targets = ["Specimen"])]
18308 #[doc = "Specimen used for sequencing."]
18309 pub specimen: Option<Box<Reference>>,
18310 # [reference (targets = ["Device"])]
18311 #[doc = "The method for sequencing, for example, chip information."]
18312 pub device: Option<Box<Reference>>,
18313 # [reference (targets = ["Organization"])]
18314 #[doc = "The organization or lab that should be responsible for this result."]
18315 pub performer: Option<Box<Reference>>,
18316 #[doc = "The number of copies of the sequence of interest. (RNASeq)."]
18317 pub quantity: Option<Box<Quantity>>,
18318 #[doc = "A sequence that is used as a reference to describe variants that are present in a sequence analyzed."]
18319 pub referenceSeq: Option<MolecularSequenceReferenceSeq>,
18320 #[doc = "The definition of variant here originates from Sequence ontology ([variant_of](http://www.sequenceontology.org/browser/current_svn/term/variant_of)). This element can represent amino acid or nucleic sequence change(including insertion,deletion,SNP,etc.) It can represent some complex mutation or segment variation with the assist of CIGAR string."]
18321 pub variant: Option<Vec<MolecularSequenceVariant>>,
18322 #[primitive]
18323 #[doc = "Sequence that was observed. It is the result marked by referenceSeq along with variant records on referenceSeq. This shall start from referenceSeq.windowStart and end by referenceSeq.windowEnd."]
18324 pub observedSeq: Option<Box<FHIRString>>,
18325 #[doc = "An experimental feature attribute that defines the quality of the feature in a quantitative way, such as a phred quality score ([SO:0001686](http://www.sequenceontology.org/browser/current_svn/term/SO:0001686))."]
18326 pub quality: Option<Vec<MolecularSequenceQuality>>,
18327 #[primitive]
18328 #[doc = "Coverage (read depth or depth) is the average number of reads representing a given nucleotide in the reconstructed sequence."]
18329 pub readCoverage: Option<Box<FHIRInteger>>,
18330 #[doc = "Configurations of the external repository. The repository shall store target's observedSeq or records related with target's observedSeq."]
18331 pub repository: Option<Vec<MolecularSequenceRepository>>,
18332 # [reference (targets = ["MolecularSequence"])]
18333 #[doc = "Pointer to next atomic sequence which at most contains one variant."]
18334 pub pointer: Option<Vec<Box<Reference>>>,
18335 #[doc = "Information about chromosome structure variation."]
18336 pub structureVariant: Option<Vec<MolecularSequenceStructureVariant>>,
18337}
18338#[derive(
18339 Clone,
18340 Reflect,
18341 Debug,
18342 Default,
18343 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18344 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18345)]
18346#[fhir_serialize_type = "complex"]
18347#[doc = "Indicates how the system may be identified when referenced in electronic exchange."]
18348pub struct NamingSystemUniqueId {
18349 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
18350 pub id: Option<String>,
18351 #[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 manageable, 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."]
18352 pub extension: Option<Vec<Box<Extension>>>,
18353 #[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 manageable, 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)."]
18354 pub modifierExtension: Option<Vec<Box<Extension>>>,
18355 #[rename_field = "type"]
18356 #[primitive]
18357 #[doc = "Identifies the unique identifier scheme used for this particular identifier."]
18358 pub type_: Box<terminology::NamingsystemIdentifierType>,
18359 #[primitive]
18360 #[doc = "The string that should be sent over the wire to identify the code system or identifier system."]
18361 pub value: Box<FHIRString>,
18362 #[primitive]
18363 #[doc = "Indicates whether this identifier is the \"preferred\" identifier of this type."]
18364 pub preferred: Option<Box<FHIRBoolean>>,
18365 #[primitive]
18366 #[doc = "Notes about the past or intended usage of this identifier."]
18367 pub comment: Option<Box<FHIRString>>,
18368 #[doc = "Identifies the period of time over which this identifier is considered appropriate to refer to the naming system. Outside of this window, the identifier might be non-deterministic."]
18369 pub period: Option<Box<Period>>,
18370}
18371#[derive(
18372 Clone,
18373 Reflect,
18374 Debug,
18375 Default,
18376 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18377 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18378)]
18379#[fhir_serialize_type = "resource"]
18380#[doc = "A curated namespace that issues unique symbols within that namespace for the identification of concepts, people, devices, etc. Represents a \"System\" used within the Identifier and Coding data types."]
18381pub struct NamingSystem {
18382 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
18383 pub id: Option<String>,
18384 #[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."]
18385 pub meta: Option<Box<Meta>>,
18386 #[primitive]
18387 #[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."]
18388 pub implicitRules: Option<Box<FHIRUri>>,
18389 #[primitive]
18390 #[doc = "The base language in which the resource is written."]
18391 pub language: Option<Box<FHIRCode>>,
18392 #[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."]
18393 pub text: Option<Box<Narrative>>,
18394 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
18395 pub contained: Option<Vec<Box<Resource>>>,
18396 #[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 manageable, 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."]
18397 pub extension: Option<Vec<Box<Extension>>>,
18398 #[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 manageable, 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)."]
18399 pub modifierExtension: Option<Vec<Box<Extension>>>,
18400 #[primitive]
18401 #[doc = "A natural language name identifying the naming system. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
18402 pub name: Box<FHIRString>,
18403 #[primitive]
18404 #[doc = "The status of this naming system. Enables tracking the life-cycle of the content."]
18405 pub status: Box<terminology::PublicationStatus>,
18406 #[primitive]
18407 #[doc = "Indicates the purpose for the naming system - what kinds of things does it make unique?"]
18408 pub kind: Box<terminology::NamingsystemType>,
18409 #[primitive]
18410 #[doc = "The date (and optionally time) when the naming system was published. 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 naming system changes."]
18411 pub date: Box<FHIRDateTime>,
18412 #[primitive]
18413 #[doc = "The name of the organization or individual that published the naming system."]
18414 pub publisher: Option<Box<FHIRString>>,
18415 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
18416 pub contact: Option<Vec<Box<ContactDetail>>>,
18417 #[primitive]
18418 #[doc = "The name of the organization that is responsible for issuing identifiers or codes for this namespace and ensuring their non-collision."]
18419 pub responsible: Option<Box<FHIRString>>,
18420 #[rename_field = "type"]
18421 #[doc = "Categorizes a naming system for easier search by grouping related naming systems."]
18422 pub type_: Option<Box<CodeableConcept>>,
18423 #[primitive]
18424 #[doc = "A free text natural language description of the naming system from a consumer's perspective. Details about what the namespace identifies including scope, granularity, version labeling, etc."]
18425 pub description: Option<Box<FHIRMarkdown>>,
18426 #[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 naming system instances."]
18427 pub useContext: Option<Vec<Box<UsageContext>>>,
18428 #[doc = "A legal or geographic region in which the naming system is intended to be used."]
18429 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
18430 #[primitive]
18431 #[doc = "Provides guidance on the use of the namespace, including the handling of formatting characters, use of upper vs. lower case, etc."]
18432 pub usage: Option<Box<FHIRString>>,
18433 #[cardinality(min = 1usize)]
18434 #[doc = "Indicates how the system may be identified when referenced in electronic exchange."]
18435 pub uniqueId: Vec<NamingSystemUniqueId>,
18436}
18437#[derive(
18438 Clone,
18439 Reflect,
18440 Debug,
18441 Default,
18442 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18443 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18444)]
18445#[fhir_serialize_type = "complex"]
18446#[doc = "Class that defines the quantity and type of nutrient modifications (for example carbohydrate, fiber or sodium) required for the oral diet."]
18447pub struct NutritionOrderOralDietNutrient {
18448 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
18449 pub id: Option<String>,
18450 #[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 manageable, 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."]
18451 pub extension: Option<Vec<Box<Extension>>>,
18452 #[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 manageable, 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)."]
18453 pub modifierExtension: Option<Vec<Box<Extension>>>,
18454 #[doc = "The nutrient that is being modified such as carbohydrate or sodium."]
18455 pub modifier: Option<Box<CodeableConcept>>,
18456 #[doc = "The quantity of the specified nutrient to include in diet."]
18457 pub amount: Option<Box<Quantity>>,
18458}
18459#[derive(
18460 Clone,
18461 Reflect,
18462 Debug,
18463 Default,
18464 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18465 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18466)]
18467#[fhir_serialize_type = "complex"]
18468#[doc = "Class that describes any texture modifications required for the patient to safely consume various types of solid foods."]
18469pub struct NutritionOrderOralDietTexture {
18470 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
18471 pub id: Option<String>,
18472 #[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 manageable, 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."]
18473 pub extension: Option<Vec<Box<Extension>>>,
18474 #[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 manageable, 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)."]
18475 pub modifierExtension: Option<Vec<Box<Extension>>>,
18476 #[doc = "Any texture modifications (for solid foods) that should be made, e.g. easy to chew, chopped, ground, and pureed."]
18477 pub modifier: Option<Box<CodeableConcept>>,
18478 #[doc = "The food type(s) (e.g. meats, all foods) that the texture modification applies to. This could be all foods types."]
18479 pub foodType: Option<Box<CodeableConcept>>,
18480}
18481#[derive(
18482 Clone,
18483 Reflect,
18484 Debug,
18485 Default,
18486 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18487 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18488)]
18489#[fhir_serialize_type = "complex"]
18490#[doc = "Diet given orally in contrast to enteral (tube) feeding."]
18491pub struct NutritionOrderOralDiet {
18492 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
18493 pub id: Option<String>,
18494 #[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 manageable, 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."]
18495 pub extension: Option<Vec<Box<Extension>>>,
18496 #[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 manageable, 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)."]
18497 pub modifierExtension: Option<Vec<Box<Extension>>>,
18498 #[rename_field = "type"]
18499 #[doc = "The kind of diet or dietary restriction such as fiber restricted diet or diabetic diet."]
18500 pub type_: Option<Vec<Box<CodeableConcept>>>,
18501 #[doc = "The time period and frequency at which the diet should be given. The diet should be given for the combination of all schedules if more than one schedule is present."]
18502 pub schedule: Option<Vec<Box<Timing>>>,
18503 #[doc = "Class that defines the quantity and type of nutrient modifications (for example carbohydrate, fiber or sodium) required for the oral diet."]
18504 pub nutrient: Option<Vec<NutritionOrderOralDietNutrient>>,
18505 #[doc = "Class that describes any texture modifications required for the patient to safely consume various types of solid foods."]
18506 pub texture: Option<Vec<NutritionOrderOralDietTexture>>,
18507 #[doc = "The required consistency (e.g. honey-thick, nectar-thick, thin, thickened.) of liquids or fluids served to the patient."]
18508 pub fluidConsistencyType: Option<Vec<Box<CodeableConcept>>>,
18509 #[primitive]
18510 #[doc = "Free text or additional instructions or information pertaining to the oral diet."]
18511 pub instruction: Option<Box<FHIRString>>,
18512}
18513#[derive(
18514 Clone,
18515 Reflect,
18516 Debug,
18517 Default,
18518 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18519 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18520)]
18521#[fhir_serialize_type = "complex"]
18522#[doc = "Oral nutritional products given in order to add further nutritional value to the patient's diet."]
18523pub struct NutritionOrderSupplement {
18524 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
18525 pub id: Option<String>,
18526 #[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 manageable, 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."]
18527 pub extension: Option<Vec<Box<Extension>>>,
18528 #[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 manageable, 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)."]
18529 pub modifierExtension: Option<Vec<Box<Extension>>>,
18530 #[rename_field = "type"]
18531 #[doc = "The kind of nutritional supplement product required such as a high protein or pediatric clear liquid supplement."]
18532 pub type_: Option<Box<CodeableConcept>>,
18533 #[primitive]
18534 #[doc = "The product or brand name of the nutritional supplement such as \"Acme Protein Shake\"."]
18535 pub productName: Option<Box<FHIRString>>,
18536 #[doc = "The time period and frequency at which the supplement(s) should be given. The supplement should be given for the combination of all schedules if more than one schedule is present."]
18537 pub schedule: Option<Vec<Box<Timing>>>,
18538 #[doc = "The amount of the nutritional supplement to be given."]
18539 pub quantity: Option<Box<Quantity>>,
18540 #[primitive]
18541 #[doc = "Free text or additional instructions or information pertaining to the oral supplement."]
18542 pub instruction: Option<Box<FHIRString>>,
18543}
18544#[derive(
18545 Clone,
18546 Reflect,
18547 Debug,
18548 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18549 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18550)]
18551#[fhir_serialize_type = "typechoice"]
18552#[type_choice_field_name = "rate"]
18553pub enum NutritionOrderEnteralFormulaAdministrationRateTypeChoice {
18554 Quantity(Box<Quantity>),
18555 Ratio(Box<Ratio>),
18556}
18557impl Default for NutritionOrderEnteralFormulaAdministrationRateTypeChoice {
18558 fn default() -> Self {
18559 NutritionOrderEnteralFormulaAdministrationRateTypeChoice::Quantity(Box::new(
18560 Default::default(),
18561 ))
18562 }
18563}
18564#[derive(
18565 Clone,
18566 Reflect,
18567 Debug,
18568 Default,
18569 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18570 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18571)]
18572#[fhir_serialize_type = "complex"]
18573#[doc = "Formula administration instructions as structured data. This repeating structure allows for changing the administration rate or volume over time for both bolus and continuous feeding. An example of this would be an instruction to increase the rate of continuous feeding every 2 hours."]
18574pub struct NutritionOrderEnteralFormulaAdministration {
18575 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
18576 pub id: Option<String>,
18577 #[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 manageable, 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."]
18578 pub extension: Option<Vec<Box<Extension>>>,
18579 #[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 manageable, 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)."]
18580 pub modifierExtension: Option<Vec<Box<Extension>>>,
18581 #[doc = "The time period and frequency at which the enteral formula should be delivered to the patient."]
18582 pub schedule: Option<Box<Timing>>,
18583 #[doc = "The volume of formula to provide to the patient per the specified administration schedule."]
18584 pub quantity: Option<Box<Quantity>>,
18585 # [type_choice_variants (complex = ["rateQuantity" , "rateRatio"] , primitive = [])]
18586 #[doc = "The rate of administration of formula via a feeding pump, e.g. 60 mL per hour, according to the specified schedule."]
18587 pub rate: Option<NutritionOrderEnteralFormulaAdministrationRateTypeChoice>,
18588}
18589#[derive(
18590 Clone,
18591 Reflect,
18592 Debug,
18593 Default,
18594 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18595 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18596)]
18597#[fhir_serialize_type = "complex"]
18598#[doc = "Feeding provided through the gastrointestinal tract via a tube, catheter, or stoma that delivers nutrition distal to the oral cavity."]
18599pub struct NutritionOrderEnteralFormula {
18600 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
18601 pub id: Option<String>,
18602 #[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 manageable, 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."]
18603 pub extension: Option<Vec<Box<Extension>>>,
18604 #[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 manageable, 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)."]
18605 pub modifierExtension: Option<Vec<Box<Extension>>>,
18606 #[doc = "The type of enteral or infant formula such as an adult standard formula with fiber or a soy-based infant formula."]
18607 pub baseFormulaType: Option<Box<CodeableConcept>>,
18608 #[primitive]
18609 #[doc = "The product or brand name of the enteral or infant formula product such as \"ACME Adult Standard Formula\"."]
18610 pub baseFormulaProductName: Option<Box<FHIRString>>,
18611 #[doc = "Indicates the type of modular component such as protein, carbohydrate, fat or fiber to be provided in addition to or mixed with the base formula."]
18612 pub additiveType: Option<Box<CodeableConcept>>,
18613 #[primitive]
18614 #[doc = "The product or brand name of the type of modular component to be added to the formula."]
18615 pub additiveProductName: Option<Box<FHIRString>>,
18616 #[doc = "The amount of energy (calories) that the formula should provide per specified volume, typically per mL or fluid oz. For example, an infant may require a formula that provides 24 calories per fluid ounce or an adult may require an enteral formula that provides 1.5 calorie/mL."]
18617 pub caloricDensity: Option<Box<Quantity>>,
18618 #[doc = "The route or physiological path of administration into the patient's gastrointestinal tract for purposes of providing the formula feeding, e.g. nasogastric tube."]
18619 pub routeofAdministration: Option<Box<CodeableConcept>>,
18620 #[doc = "Formula administration instructions as structured data. This repeating structure allows for changing the administration rate or volume over time for both bolus and continuous feeding. An example of this would be an instruction to increase the rate of continuous feeding every 2 hours."]
18621 pub administration: Option<Vec<NutritionOrderEnteralFormulaAdministration>>,
18622 #[doc = "The maximum total quantity of formula that may be administered to a subject over the period of time, e.g. 1440 mL over 24 hours."]
18623 pub maxVolumeToDeliver: Option<Box<Quantity>>,
18624 #[primitive]
18625 #[doc = "Free text formula administration, feeding instructions or additional instructions or information."]
18626 pub administrationInstruction: Option<Box<FHIRString>>,
18627}
18628#[derive(
18629 Clone,
18630 Reflect,
18631 Debug,
18632 Default,
18633 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18634 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18635)]
18636#[fhir_serialize_type = "resource"]
18637#[doc = "A request to supply a diet, formula feeding (enteral) or oral nutritional supplement to a patient/resident."]
18638pub struct NutritionOrder {
18639 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
18640 pub id: Option<String>,
18641 #[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."]
18642 pub meta: Option<Box<Meta>>,
18643 #[primitive]
18644 #[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."]
18645 pub implicitRules: Option<Box<FHIRUri>>,
18646 #[primitive]
18647 #[doc = "The base language in which the resource is written."]
18648 pub language: Option<Box<FHIRCode>>,
18649 #[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."]
18650 pub text: Option<Box<Narrative>>,
18651 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
18652 pub contained: Option<Vec<Box<Resource>>>,
18653 #[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 manageable, 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."]
18654 pub extension: Option<Vec<Box<Extension>>>,
18655 #[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 manageable, 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)."]
18656 pub modifierExtension: Option<Vec<Box<Extension>>>,
18657 #[rename_field = "identifier"]
18658 #[doc = "Identifiers assigned to this order by the order sender or by the order receiver."]
18659 pub identifier_: Option<Vec<Box<Identifier>>>,
18660 #[primitive]
18661 #[doc = "The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this NutritionOrder."]
18662 pub instantiatesCanonical: Option<Vec<Box<FHIRCanonical>>>,
18663 #[primitive]
18664 #[doc = "The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this NutritionOrder."]
18665 pub instantiatesUri: Option<Vec<Box<FHIRUri>>>,
18666 #[primitive]
18667 #[doc = "The URL pointing to a protocol, guideline, orderset or other definition that is adhered to in whole or in part by this NutritionOrder."]
18668 pub instantiates: Option<Vec<Box<FHIRUri>>>,
18669 #[primitive]
18670 #[doc = "The workflow status of the nutrition order/request."]
18671 pub status: Box<terminology::RequestStatus>,
18672 #[primitive]
18673 #[doc = "Indicates the level of authority/intentionality associated with the NutrionOrder and where the request fits into the workflow chain."]
18674 pub intent: Box<terminology::RequestIntent>,
18675 # [reference (targets = ["Patient"])]
18676 #[doc = "The person (patient) who needs the nutrition order for an oral diet, nutritional supplement and/or enteral or formula feeding."]
18677 pub patient: Box<Reference>,
18678 # [reference (targets = ["Encounter"])]
18679 #[doc = "An encounter that provides additional information about the healthcare context in which this request is made."]
18680 pub encounter: Option<Box<Reference>>,
18681 #[primitive]
18682 #[doc = "The date and time that this nutrition order was requested."]
18683 pub dateTime: Box<FHIRDateTime>,
18684 # [reference (targets = ["Practitioner" , "PractitionerRole"])]
18685 #[doc = "The practitioner that holds legal responsibility for ordering the diet, nutritional supplement, or formula feedings."]
18686 pub orderer: Option<Box<Reference>>,
18687 # [reference (targets = ["AllergyIntolerance"])]
18688 #[doc = "A link to a record of allergies or intolerances which should be included in the nutrition order."]
18689 pub allergyIntolerance: Option<Vec<Box<Reference>>>,
18690 #[doc = "This modifier is used to convey order-specific modifiers about the type of food that should be given. These can be derived from patient allergies, intolerances, or preferences such as Halal, Vegan or Kosher. This modifier applies to the entire nutrition order inclusive of the oral diet, nutritional supplements and enteral formula feedings."]
18691 pub foodPreferenceModifier: Option<Vec<Box<CodeableConcept>>>,
18692 #[doc = "This modifier is used to convey Order-specific modifier about the type of oral food or oral fluids that should not be given. These can be derived from patient allergies, intolerances, or preferences such as No Red Meat, No Soy or No Wheat or Gluten-Free. While it should not be necessary to repeat allergy or intolerance information captured in the referenced AllergyIntolerance resource in the excludeFoodModifier, this element may be used to convey additional specificity related to foods that should be eliminated from the patient’s diet for any reason. This modifier applies to the entire nutrition order inclusive of the oral diet, nutritional supplements and enteral formula feedings."]
18693 pub excludeFoodModifier: Option<Vec<Box<CodeableConcept>>>,
18694 #[doc = "Diet given orally in contrast to enteral (tube) feeding."]
18695 pub oralDiet: Option<NutritionOrderOralDiet>,
18696 #[doc = "Oral nutritional products given in order to add further nutritional value to the patient's diet."]
18697 pub supplement: Option<Vec<NutritionOrderSupplement>>,
18698 #[doc = "Feeding provided through the gastrointestinal tract via a tube, catheter, or stoma that delivers nutrition distal to the oral cavity."]
18699 pub enteralFormula: Option<NutritionOrderEnteralFormula>,
18700 #[doc = "Comments made about the {{title}} by the requester, performer, subject or other participants."]
18701 pub note: Option<Vec<Box<Annotation>>>,
18702}
18703#[derive(
18704 Clone,
18705 Reflect,
18706 Debug,
18707 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18708 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18709)]
18710#[fhir_serialize_type = "typechoice"]
18711#[type_choice_field_name = "effective"]
18712pub enum ObservationEffectiveTypeChoice {
18713 DateTime(Box<FHIRDateTime>),
18714 Period(Box<Period>),
18715 Timing(Box<Timing>),
18716 Instant(Box<FHIRInstant>),
18717}
18718impl Default for ObservationEffectiveTypeChoice {
18719 fn default() -> Self {
18720 ObservationEffectiveTypeChoice::DateTime(Box::new(Default::default()))
18721 }
18722}
18723#[derive(
18724 Clone,
18725 Reflect,
18726 Debug,
18727 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18728 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18729)]
18730#[fhir_serialize_type = "typechoice"]
18731#[type_choice_field_name = "value"]
18732pub enum ObservationValueTypeChoice {
18733 Quantity(Box<Quantity>),
18734 CodeableConcept(Box<CodeableConcept>),
18735 String(Box<FHIRString>),
18736 Boolean(Box<FHIRBoolean>),
18737 Integer(Box<FHIRInteger>),
18738 Range(Box<Range>),
18739 Ratio(Box<Ratio>),
18740 SampledData(Box<SampledData>),
18741 Time(Box<FHIRTime>),
18742 DateTime(Box<FHIRDateTime>),
18743 Period(Box<Period>),
18744}
18745impl Default for ObservationValueTypeChoice {
18746 fn default() -> Self {
18747 ObservationValueTypeChoice::Quantity(Box::new(Default::default()))
18748 }
18749}
18750#[derive(
18751 Clone,
18752 Reflect,
18753 Debug,
18754 Default,
18755 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18756 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18757)]
18758#[fhir_serialize_type = "complex"]
18759#[doc = "Guidance on how to interpret the value by comparison to a normal or recommended range. Multiple reference ranges are interpreted as an \"OR\". In other words, to represent two distinct target populations, two `referenceRange` elements would be used."]
18760pub struct ObservationReferenceRange {
18761 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
18762 pub id: Option<String>,
18763 #[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 manageable, 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."]
18764 pub extension: Option<Vec<Box<Extension>>>,
18765 #[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 manageable, 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)."]
18766 pub modifierExtension: Option<Vec<Box<Extension>>>,
18767 #[doc = "The value of the low bound of the reference range. The low bound of the reference range endpoint is inclusive of the value (e.g. reference range is >=5 - <=9). If the low bound is omitted, it is assumed to be meaningless (e.g. reference range is <=2.3)."]
18768 pub low: Option<Box<Quantity>>,
18769 #[doc = "The value of the high bound of the reference range. The high bound of the reference range endpoint is inclusive of the value (e.g. reference range is >=5 - <=9). If the high bound is omitted, it is assumed to be meaningless (e.g. reference range is >= 2.3)."]
18770 pub high: Option<Box<Quantity>>,
18771 #[rename_field = "type"]
18772 #[doc = "Codes to indicate the what part of the targeted reference population it applies to. For example, the normal or therapeutic range."]
18773 pub type_: Option<Box<CodeableConcept>>,
18774 #[doc = "Codes to indicate the target population this reference range applies to. For example, a reference range may be based on the normal population or a particular sex or race. Multiple `appliesTo` are interpreted as an \"AND\" of the target populations. For example, to represent a target population of African American females, both a code of female and a code for African American would be used."]
18775 pub appliesTo: Option<Vec<Box<CodeableConcept>>>,
18776 #[doc = "The age at which this reference range is applicable. This is a neonatal age (e.g. number of weeks at term) if the meaning says so."]
18777 pub age: Option<Box<Range>>,
18778 #[primitive]
18779 #[doc = "Text based reference range in an observation which may be used when a quantitative range is not appropriate for an observation. An example would be a reference value of \"Negative\" or a list or table of \"normals\"."]
18780 pub text: Option<Box<FHIRString>>,
18781}
18782#[derive(
18783 Clone,
18784 Reflect,
18785 Debug,
18786 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18787 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18788)]
18789#[fhir_serialize_type = "typechoice"]
18790#[type_choice_field_name = "value"]
18791pub enum ObservationComponentValueTypeChoice {
18792 Quantity(Box<Quantity>),
18793 CodeableConcept(Box<CodeableConcept>),
18794 String(Box<FHIRString>),
18795 Boolean(Box<FHIRBoolean>),
18796 Integer(Box<FHIRInteger>),
18797 Range(Box<Range>),
18798 Ratio(Box<Ratio>),
18799 SampledData(Box<SampledData>),
18800 Time(Box<FHIRTime>),
18801 DateTime(Box<FHIRDateTime>),
18802 Period(Box<Period>),
18803}
18804impl Default for ObservationComponentValueTypeChoice {
18805 fn default() -> Self {
18806 ObservationComponentValueTypeChoice::Quantity(Box::new(Default::default()))
18807 }
18808}
18809#[derive(
18810 Clone,
18811 Reflect,
18812 Debug,
18813 Default,
18814 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18815 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18816)]
18817#[fhir_serialize_type = "complex"]
18818#[doc = "Some observations have multiple component observations. These component observations are expressed as separate code value pairs that share the same attributes. Examples include systolic and diastolic component observations for blood pressure measurement and multiple component observations for genetics observations."]
18819pub struct ObservationComponent {
18820 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
18821 pub id: Option<String>,
18822 #[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 manageable, 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."]
18823 pub extension: Option<Vec<Box<Extension>>>,
18824 #[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 manageable, 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)."]
18825 pub modifierExtension: Option<Vec<Box<Extension>>>,
18826 #[doc = "Describes what was observed. Sometimes this is called the observation \"code\"."]
18827 pub code: Box<CodeableConcept>,
18828 # [type_choice_variants (complex = ["valueQuantity" , "valueCodeableConcept" , "valueRange" , "valueRatio" , "valueSampledData" , "valuePeriod"] , primitive = ["valueString" , "valueBoolean" , "valueInteger" , "valueTime" , "valueDateTime"])]
18829 #[doc = "The information determined as a result of making the observation, if the information has a simple value."]
18830 pub value: Option<ObservationComponentValueTypeChoice>,
18831 #[doc = "Provides a reason why the expected value in the element Observation.component.value[x] is missing."]
18832 pub dataAbsentReason: Option<Box<CodeableConcept>>,
18833 #[doc = "A categorical assessment of an observation value. For example, high, low, normal."]
18834 pub interpretation: Option<Vec<Box<CodeableConcept>>>,
18835 #[doc = "Guidance on how to interpret the value by comparison to a normal or recommended range."]
18836 pub referenceRange: Option<Vec<ObservationReferenceRange>>,
18837}
18838#[derive(
18839 Clone,
18840 Reflect,
18841 Debug,
18842 Default,
18843 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18844 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18845)]
18846#[fhir_serialize_type = "resource"]
18847#[doc = "Measurements and simple assertions made about a patient, device or other subject."]
18848pub struct Observation {
18849 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
18850 pub id: Option<String>,
18851 #[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."]
18852 pub meta: Option<Box<Meta>>,
18853 #[primitive]
18854 #[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."]
18855 pub implicitRules: Option<Box<FHIRUri>>,
18856 #[primitive]
18857 #[doc = "The base language in which the resource is written."]
18858 pub language: Option<Box<FHIRCode>>,
18859 #[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."]
18860 pub text: Option<Box<Narrative>>,
18861 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
18862 pub contained: Option<Vec<Box<Resource>>>,
18863 #[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 manageable, 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."]
18864 pub extension: Option<Vec<Box<Extension>>>,
18865 #[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 manageable, 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)."]
18866 pub modifierExtension: Option<Vec<Box<Extension>>>,
18867 #[rename_field = "identifier"]
18868 #[doc = "A unique identifier assigned to this observation."]
18869 pub identifier_: Option<Vec<Box<Identifier>>>,
18870 # [reference (targets = ["CarePlan" , "DeviceRequest" , "ImmunizationRecommendation" , "MedicationRequest" , "NutritionOrder" , "ServiceRequest"])]
18871 #[doc = "A plan, proposal or order that is fulfilled in whole or in part by this event. For example, a MedicationRequest may require a patient to have laboratory test performed before it is dispensed."]
18872 pub basedOn: Option<Vec<Box<Reference>>>,
18873 # [reference (targets = ["MedicationAdministration" , "MedicationDispense" , "MedicationStatement" , "Procedure" , "Immunization" , "ImagingStudy"])]
18874 #[doc = "A larger event of which this particular Observation is a component or step. For example, an observation as part of a procedure."]
18875 pub partOf: Option<Vec<Box<Reference>>>,
18876 #[primitive]
18877 #[doc = "The status of the result value."]
18878 pub status: Box<terminology::ObservationStatus>,
18879 #[doc = "A code that classifies the general type of observation being made."]
18880 pub category: Option<Vec<Box<CodeableConcept>>>,
18881 #[doc = "Describes what was observed. Sometimes this is called the observation \"name\"."]
18882 pub code: Box<CodeableConcept>,
18883 # [reference (targets = ["Patient" , "Group" , "Device" , "Location"])]
18884 #[doc = "The patient, or group of patients, location, or device this observation is about and into whose record the observation is placed. If the actual focus of the observation is different from the subject (or a sample of, part, or region of the subject), the `focus` element or the `code` itself specifies the actual focus of the observation."]
18885 pub subject: Option<Box<Reference>>,
18886 # [reference (targets = ["Resource"])]
18887 #[doc = "The actual focus of an observation when it is not the patient of record representing something or someone associated with the patient such as a spouse, parent, fetus, or donor. For example, fetus observations in a mother's record. The focus of an observation could also be an existing condition, an intervention, the subject's diet, another observation of the subject, or a body structure such as tumor or implanted device. An example use case would be using the Observation resource to capture whether the mother is trained to change her child's tracheostomy tube. In this example, the child is the patient of record and the mother is the focus."]
18888 pub focus: Option<Vec<Box<Reference>>>,
18889 # [reference (targets = ["Encounter"])]
18890 #[doc = "The healthcare event (e.g. a patient and healthcare provider interaction) during which this observation is made."]
18891 pub encounter: Option<Box<Reference>>,
18892 # [type_choice_variants (complex = ["effectivePeriod" , "effectiveTiming"] , primitive = ["effectiveDateTime" , "effectiveInstant"])]
18893 #[doc = "The time or time-period the observed value is asserted as being true. For biological subjects - e.g. human patients - this is usually called the \"physiologically relevant time\". This is usually either the time of the procedure or of specimen collection, but very often the source of the date/time is not known, only the date/time itself."]
18894 pub effective: Option<ObservationEffectiveTypeChoice>,
18895 #[primitive]
18896 #[doc = "The date and time this version of the observation was made available to providers, typically after the results have been reviewed and verified."]
18897 pub issued: Option<Box<FHIRInstant>>,
18898 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization" , "CareTeam" , "Patient" , "RelatedPerson"])]
18899 #[doc = "Who was responsible for asserting the observed value as \"true\"."]
18900 pub performer: Option<Vec<Box<Reference>>>,
18901 # [type_choice_variants (complex = ["valueQuantity" , "valueCodeableConcept" , "valueRange" , "valueRatio" , "valueSampledData" , "valuePeriod"] , primitive = ["valueString" , "valueBoolean" , "valueInteger" , "valueTime" , "valueDateTime"])]
18902 #[doc = "The information determined as a result of making the observation, if the information has a simple value."]
18903 pub value: Option<ObservationValueTypeChoice>,
18904 #[doc = "Provides a reason why the expected value in the element Observation.value[x] is missing."]
18905 pub dataAbsentReason: Option<Box<CodeableConcept>>,
18906 #[doc = "A categorical assessment of an observation value. For example, high, low, normal."]
18907 pub interpretation: Option<Vec<Box<CodeableConcept>>>,
18908 #[doc = "Comments about the observation or the results."]
18909 pub note: Option<Vec<Box<Annotation>>>,
18910 #[doc = "Indicates the site on the subject's body where the observation was made (i.e. the target site)."]
18911 pub bodySite: Option<Box<CodeableConcept>>,
18912 #[doc = "Indicates the mechanism used to perform the observation."]
18913 pub method: Option<Box<CodeableConcept>>,
18914 # [reference (targets = ["Specimen"])]
18915 #[doc = "The specimen that was used when this observation was made."]
18916 pub specimen: Option<Box<Reference>>,
18917 # [reference (targets = ["Device" , "DeviceMetric"])]
18918 #[doc = "The device used to generate the observation data."]
18919 pub device: Option<Box<Reference>>,
18920 #[doc = "Guidance on how to interpret the value by comparison to a normal or recommended range. Multiple reference ranges are interpreted as an \"OR\". In other words, to represent two distinct target populations, two `referenceRange` elements would be used."]
18921 pub referenceRange: Option<Vec<ObservationReferenceRange>>,
18922 # [reference (targets = ["Observation" , "QuestionnaireResponse" , "MolecularSequence"])]
18923 #[doc = "This observation is a group observation (e.g. a battery, a panel of tests, a set of vital sign measurements) that includes the target as a member of the group."]
18924 pub hasMember: Option<Vec<Box<Reference>>>,
18925 # [reference (targets = ["DocumentReference" , "ImagingStudy" , "Media" , "QuestionnaireResponse" , "Observation" , "MolecularSequence"])]
18926 #[doc = "The target resource that represents a measurement from which this observation value is derived. For example, a calculated anion gap or a fetal measurement based on an ultrasound image."]
18927 pub derivedFrom: Option<Vec<Box<Reference>>>,
18928 #[doc = "Some observations have multiple component observations. These component observations are expressed as separate code value pairs that share the same attributes. Examples include systolic and diastolic component observations for blood pressure measurement and multiple component observations for genetics observations."]
18929 pub component: Option<Vec<ObservationComponent>>,
18930}
18931#[derive(
18932 Clone,
18933 Reflect,
18934 Debug,
18935 Default,
18936 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18937 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18938)]
18939#[fhir_serialize_type = "complex"]
18940#[doc = "Characteristics for quantitative results of this observation."]
18941pub struct ObservationDefinitionQuantitativeDetails {
18942 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
18943 pub id: Option<String>,
18944 #[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 manageable, 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."]
18945 pub extension: Option<Vec<Box<Extension>>>,
18946 #[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 manageable, 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)."]
18947 pub modifierExtension: Option<Vec<Box<Extension>>>,
18948 #[doc = "Customary unit used to report quantitative results of observations conforming to this ObservationDefinition."]
18949 pub customaryUnit: Option<Box<CodeableConcept>>,
18950 #[doc = "SI unit used to report quantitative results of observations conforming to this ObservationDefinition."]
18951 pub unit: Option<Box<CodeableConcept>>,
18952 #[primitive]
18953 #[doc = "Factor for converting value expressed with SI unit to value expressed with customary unit."]
18954 pub conversionFactor: Option<Box<FHIRDecimal>>,
18955 #[primitive]
18956 #[doc = "Number of digits after decimal separator when the results of such observations are of type Quantity."]
18957 pub decimalPrecision: Option<Box<FHIRInteger>>,
18958}
18959#[derive(
18960 Clone,
18961 Reflect,
18962 Debug,
18963 Default,
18964 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
18965 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
18966)]
18967#[fhir_serialize_type = "complex"]
18968#[doc = "Multiple ranges of results qualified by different contexts for ordinal or continuous observations conforming to this ObservationDefinition."]
18969pub struct ObservationDefinitionQualifiedInterval {
18970 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
18971 pub id: Option<String>,
18972 #[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 manageable, 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."]
18973 pub extension: Option<Vec<Box<Extension>>>,
18974 #[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 manageable, 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)."]
18975 pub modifierExtension: Option<Vec<Box<Extension>>>,
18976 #[primitive]
18977 #[doc = "The category of interval of values for continuous or ordinal observations conforming to this ObservationDefinition."]
18978 pub category: Option<Box<terminology::ObservationRangeCategory>>,
18979 #[doc = "The low and high values determining the interval. There may be only one of the two."]
18980 pub range: Option<Box<Range>>,
18981 #[doc = "Codes to indicate the health context the range applies to. For example, the normal or therapeutic range."]
18982 pub context: Option<Box<CodeableConcept>>,
18983 #[doc = "Codes to indicate the target population this reference range applies to."]
18984 pub appliesTo: Option<Vec<Box<CodeableConcept>>>,
18985 #[primitive]
18986 #[doc = "Sex of the population the range applies to."]
18987 pub gender: Option<Box<terminology::AdministrativeGender>>,
18988 #[doc = "The age at which this reference range is applicable. This is a neonatal age (e.g. number of weeks at term) if the meaning says so."]
18989 pub age: Option<Box<Range>>,
18990 #[doc = "The gestational age to which this reference range is applicable, in the context of pregnancy."]
18991 pub gestationalAge: Option<Box<Range>>,
18992 #[primitive]
18993 #[doc = "Text based condition for which the reference range is valid."]
18994 pub condition: Option<Box<FHIRString>>,
18995}
18996#[derive(
18997 Clone,
18998 Reflect,
18999 Debug,
19000 Default,
19001 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19002 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19003)]
19004#[fhir_serialize_type = "resource"]
19005#[doc = "Set of definitional characteristics for a kind of observation or measurement produced or consumed by an orderable health care service."]
19006pub struct ObservationDefinition {
19007 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
19008 pub id: Option<String>,
19009 #[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."]
19010 pub meta: Option<Box<Meta>>,
19011 #[primitive]
19012 #[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."]
19013 pub implicitRules: Option<Box<FHIRUri>>,
19014 #[primitive]
19015 #[doc = "The base language in which the resource is written."]
19016 pub language: Option<Box<FHIRCode>>,
19017 #[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."]
19018 pub text: Option<Box<Narrative>>,
19019 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
19020 pub contained: Option<Vec<Box<Resource>>>,
19021 #[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 manageable, 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."]
19022 pub extension: Option<Vec<Box<Extension>>>,
19023 #[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 manageable, 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)."]
19024 pub modifierExtension: Option<Vec<Box<Extension>>>,
19025 #[doc = "A code that classifies the general type of observation."]
19026 pub category: Option<Vec<Box<CodeableConcept>>>,
19027 #[doc = "Describes what will be observed. Sometimes this is called the observation \"name\"."]
19028 pub code: Box<CodeableConcept>,
19029 #[rename_field = "identifier"]
19030 #[doc = "A unique identifier assigned to this ObservationDefinition artifact."]
19031 pub identifier_: Option<Vec<Box<Identifier>>>,
19032 #[primitive]
19033 #[doc = "The data types allowed for the value element of the instance observations conforming to this ObservationDefinition."]
19034 pub permittedDataType: Option<Vec<Box<terminology::PermittedDataType>>>,
19035 #[primitive]
19036 #[doc = "Multiple results allowed for observations conforming to this ObservationDefinition."]
19037 pub multipleResultsAllowed: Option<Box<FHIRBoolean>>,
19038 #[doc = "The method or technique used to perform the observation."]
19039 pub method: Option<Box<CodeableConcept>>,
19040 #[primitive]
19041 #[doc = "The preferred name to be used when reporting the results of observations conforming to this ObservationDefinition."]
19042 pub preferredReportName: Option<Box<FHIRString>>,
19043 #[doc = "Characteristics for quantitative results of this observation."]
19044 pub quantitativeDetails: Option<ObservationDefinitionQuantitativeDetails>,
19045 #[doc = "Multiple ranges of results qualified by different contexts for ordinal or continuous observations conforming to this ObservationDefinition."]
19046 pub qualifiedInterval: Option<Vec<ObservationDefinitionQualifiedInterval>>,
19047 # [reference (targets = ["ValueSet"])]
19048 #[doc = "The set of valid coded results for the observations conforming to this ObservationDefinition."]
19049 pub validCodedValueSet: Option<Box<Reference>>,
19050 # [reference (targets = ["ValueSet"])]
19051 #[doc = "The set of normal coded results for the observations conforming to this ObservationDefinition."]
19052 pub normalCodedValueSet: Option<Box<Reference>>,
19053 # [reference (targets = ["ValueSet"])]
19054 #[doc = "The set of abnormal coded results for the observation conforming to this ObservationDefinition."]
19055 pub abnormalCodedValueSet: Option<Box<Reference>>,
19056 # [reference (targets = ["ValueSet"])]
19057 #[doc = "The set of critical coded results for the observation conforming to this ObservationDefinition."]
19058 pub criticalCodedValueSet: Option<Box<Reference>>,
19059}
19060#[derive(
19061 Clone,
19062 Reflect,
19063 Debug,
19064 Default,
19065 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19066 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19067)]
19068#[fhir_serialize_type = "complex"]
19069#[doc = "Binds to a value set if this parameter is coded (code, Coding, CodeableConcept)."]
19070pub struct OperationDefinitionParameterBinding {
19071 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
19072 pub id: Option<String>,
19073 #[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 manageable, 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."]
19074 pub extension: Option<Vec<Box<Extension>>>,
19075 #[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 manageable, 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)."]
19076 pub modifierExtension: Option<Vec<Box<Extension>>>,
19077 #[primitive]
19078 #[doc = "Indicates the degree of conformance expectations associated with this binding - that is, the degree to which the provided value set must be adhered to in the instances."]
19079 pub strength: Box<terminology::BindingStrength>,
19080 #[primitive]
19081 #[doc = "Points to the value set or external definition (e.g. implicit value set) that identifies the set of codes to be used."]
19082 pub valueSet: Box<FHIRCanonical>,
19083}
19084#[derive(
19085 Clone,
19086 Reflect,
19087 Debug,
19088 Default,
19089 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19090 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19091)]
19092#[fhir_serialize_type = "complex"]
19093#[doc = "Identifies other resource parameters within the operation invocation that are expected to resolve to this resource."]
19094pub struct OperationDefinitionParameterReferencedFrom {
19095 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
19096 pub id: Option<String>,
19097 #[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 manageable, 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."]
19098 pub extension: Option<Vec<Box<Extension>>>,
19099 #[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 manageable, 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)."]
19100 pub modifierExtension: Option<Vec<Box<Extension>>>,
19101 #[primitive]
19102 #[doc = "The name of the parameter or dot-separated path of parameter names pointing to the resource parameter that is expected to contain a reference to this resource."]
19103 pub source: Box<FHIRString>,
19104 #[primitive]
19105 #[doc = "The id of the element in the referencing resource that is expected to resolve to this resource."]
19106 pub sourceId: Option<Box<FHIRString>>,
19107}
19108#[derive(
19109 Clone,
19110 Reflect,
19111 Debug,
19112 Default,
19113 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19114 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19115)]
19116#[fhir_serialize_type = "complex"]
19117#[doc = "The parameters for the operation/query."]
19118pub struct OperationDefinitionParameter {
19119 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
19120 pub id: Option<String>,
19121 #[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 manageable, 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."]
19122 pub extension: Option<Vec<Box<Extension>>>,
19123 #[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 manageable, 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)."]
19124 pub modifierExtension: Option<Vec<Box<Extension>>>,
19125 #[primitive]
19126 #[doc = "The name of used to identify the parameter."]
19127 pub name: Box<FHIRCode>,
19128 #[rename_field = "use"]
19129 #[primitive]
19130 #[doc = "Whether this is an input or an output parameter."]
19131 pub use_: Box<terminology::OperationParameterUse>,
19132 #[primitive]
19133 #[doc = "The minimum number of times this parameter SHALL appear in the request or response."]
19134 pub min: Box<FHIRInteger>,
19135 #[primitive]
19136 #[doc = "The maximum number of times this element is permitted to appear in the request or response."]
19137 pub max: Box<FHIRString>,
19138 #[primitive]
19139 #[doc = "Describes the meaning or use of this parameter."]
19140 pub documentation: Option<Box<FHIRString>>,
19141 #[rename_field = "type"]
19142 #[primitive]
19143 #[doc = "The type for this parameter."]
19144 pub type_: Option<Box<terminology::AllTypes>>,
19145 #[primitive]
19146 #[doc = "Used when the type is \"Reference\" or \"canonical\", and identifies a profile structure or implementation Guide that applies to the target of the reference this parameter refers to. If any profiles are specified, then the content must conform to at least one of them. The URL can be a local reference - to a contained StructureDefinition, or a reference to another StructureDefinition or Implementation Guide by a canonical URL. When an implementation guide is specified, the target resource SHALL conform to at least one profile defined in the implementation guide."]
19147 pub targetProfile: Option<Vec<Box<FHIRCanonical>>>,
19148 #[primitive]
19149 #[doc = "How the parameter is understood as a search parameter. This is only used if the parameter type is 'string'."]
19150 pub searchType: Option<Box<terminology::SearchParamType>>,
19151 #[doc = "Binds to a value set if this parameter is coded (code, Coding, CodeableConcept)."]
19152 pub binding: Option<OperationDefinitionParameterBinding>,
19153 #[doc = "Identifies other resource parameters within the operation invocation that are expected to resolve to this resource."]
19154 pub referencedFrom: Option<Vec<OperationDefinitionParameterReferencedFrom>>,
19155 #[doc = "The parts of a nested Parameter."]
19156 pub part: Option<Vec<OperationDefinitionParameter>>,
19157}
19158#[derive(
19159 Clone,
19160 Reflect,
19161 Debug,
19162 Default,
19163 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19164 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19165)]
19166#[fhir_serialize_type = "complex"]
19167#[doc = "Defines an appropriate combination of parameters to use when invoking this operation, to help code generators when generating overloaded parameter sets for this operation."]
19168pub struct OperationDefinitionOverload {
19169 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
19170 pub id: Option<String>,
19171 #[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 manageable, 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."]
19172 pub extension: Option<Vec<Box<Extension>>>,
19173 #[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 manageable, 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)."]
19174 pub modifierExtension: Option<Vec<Box<Extension>>>,
19175 #[primitive]
19176 #[doc = "Name of parameter to include in overload."]
19177 pub parameterName: Option<Vec<Box<FHIRString>>>,
19178 #[primitive]
19179 #[doc = "Comments to go on overload."]
19180 pub comment: Option<Box<FHIRString>>,
19181}
19182#[derive(
19183 Clone,
19184 Reflect,
19185 Debug,
19186 Default,
19187 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19188 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19189)]
19190#[fhir_serialize_type = "resource"]
19191#[doc = "A formal computable definition of an operation (on the RESTful interface) or a named query (using the search interaction)."]
19192pub struct OperationDefinition {
19193 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
19194 pub id: Option<String>,
19195 #[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."]
19196 pub meta: Option<Box<Meta>>,
19197 #[primitive]
19198 #[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."]
19199 pub implicitRules: Option<Box<FHIRUri>>,
19200 #[primitive]
19201 #[doc = "The base language in which the resource is written."]
19202 pub language: Option<Box<FHIRCode>>,
19203 #[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."]
19204 pub text: Option<Box<Narrative>>,
19205 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
19206 pub contained: Option<Vec<Box<Resource>>>,
19207 #[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 manageable, 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."]
19208 pub extension: Option<Vec<Box<Extension>>>,
19209 #[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 manageable, 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)."]
19210 pub modifierExtension: Option<Vec<Box<Extension>>>,
19211 #[primitive]
19212 #[doc = "An absolute URI that is used to identify this operation definition 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 at which an authoritative instance of this operation definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the operation definition is stored on different servers."]
19213 pub url: Option<Box<FHIRUri>>,
19214 #[primitive]
19215 #[doc = "The identifier that is used to identify this version of the operation definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the operation definition 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."]
19216 pub version: Option<Box<FHIRString>>,
19217 #[primitive]
19218 #[doc = "A natural language name identifying the operation definition. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
19219 pub name: Box<FHIRString>,
19220 #[primitive]
19221 #[doc = "A short, descriptive, user-friendly title for the operation definition."]
19222 pub title: Option<Box<FHIRString>>,
19223 #[primitive]
19224 #[doc = "The status of this operation definition. Enables tracking the life-cycle of the content."]
19225 pub status: Box<terminology::PublicationStatus>,
19226 #[primitive]
19227 #[doc = "Whether this is an operation or a named query."]
19228 pub kind: Box<terminology::OperationKind>,
19229 #[primitive]
19230 #[doc = "A Boolean value to indicate that this operation definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
19231 pub experimental: Option<Box<FHIRBoolean>>,
19232 #[primitive]
19233 #[doc = "The date (and optionally time) when the operation definition was published. 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 operation definition changes."]
19234 pub date: Option<Box<FHIRDateTime>>,
19235 #[primitive]
19236 #[doc = "The name of the organization or individual that published the operation definition."]
19237 pub publisher: Option<Box<FHIRString>>,
19238 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
19239 pub contact: Option<Vec<Box<ContactDetail>>>,
19240 #[primitive]
19241 #[doc = "A free text natural language description of the operation definition from a consumer's perspective."]
19242 pub description: Option<Box<FHIRMarkdown>>,
19243 #[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 operation definition instances."]
19244 pub useContext: Option<Vec<Box<UsageContext>>>,
19245 #[doc = "A legal or geographic region in which the operation definition is intended to be used."]
19246 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
19247 #[primitive]
19248 #[doc = "Explanation of why this operation definition is needed and why it has been designed as it has."]
19249 pub purpose: Option<Box<FHIRMarkdown>>,
19250 #[primitive]
19251 #[doc = "Whether the operation affects state. Side effects such as producing audit trail entries do not count as 'affecting state'."]
19252 pub affectsState: Option<Box<FHIRBoolean>>,
19253 #[primitive]
19254 #[doc = "The name used to invoke the operation."]
19255 pub code: Box<FHIRCode>,
19256 #[primitive]
19257 #[doc = "Additional information about how to use this operation or named query."]
19258 pub comment: Option<Box<FHIRMarkdown>>,
19259 #[primitive]
19260 #[doc = "Indicates that this operation definition is a constraining profile on the base."]
19261 pub base: Option<Box<FHIRCanonical>>,
19262 #[primitive]
19263 #[doc = "The types on which this operation can be executed."]
19264 pub resource: Option<Vec<Box<terminology::ResourceTypes>>>,
19265 #[primitive]
19266 #[doc = "Indicates whether this operation or named query can be invoked at the system level (e.g. without needing to choose a resource type for the context)."]
19267 pub system: Box<FHIRBoolean>,
19268 #[rename_field = "type"]
19269 #[primitive]
19270 #[doc = "Indicates whether this operation or named query can be invoked at the resource type level for any given resource type level (e.g. without needing to choose a specific resource id for the context)."]
19271 pub type_: Box<FHIRBoolean>,
19272 #[primitive]
19273 #[doc = "Indicates whether this operation can be invoked on a particular instance of one of the given types."]
19274 pub instance: Box<FHIRBoolean>,
19275 #[primitive]
19276 #[doc = "Additional validation information for the in parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource as a whole."]
19277 pub inputProfile: Option<Box<FHIRCanonical>>,
19278 #[primitive]
19279 #[doc = "Additional validation information for the out parameters - a single profile that covers all the parameters. The profile is a constraint on the parameters resource."]
19280 pub outputProfile: Option<Box<FHIRCanonical>>,
19281 #[doc = "The parameters for the operation/query."]
19282 pub parameter: Option<Vec<OperationDefinitionParameter>>,
19283 #[doc = "Defines an appropriate combination of parameters to use when invoking this operation, to help code generators when generating overloaded parameter sets for this operation."]
19284 pub overload: Option<Vec<OperationDefinitionOverload>>,
19285}
19286#[derive(
19287 Clone,
19288 Reflect,
19289 Debug,
19290 Default,
19291 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19292 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19293)]
19294#[fhir_serialize_type = "complex"]
19295#[doc = "An error, warning, or information message that results from a system action."]
19296pub struct OperationOutcomeIssue {
19297 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
19298 pub id: Option<String>,
19299 #[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 manageable, 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."]
19300 pub extension: Option<Vec<Box<Extension>>>,
19301 #[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 manageable, 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)."]
19302 pub modifierExtension: Option<Vec<Box<Extension>>>,
19303 #[primitive]
19304 #[doc = "Indicates whether the issue indicates a variation from successful processing."]
19305 pub severity: Box<terminology::IssueSeverity>,
19306 #[primitive]
19307 #[doc = "Describes the type of the issue. The system that creates an OperationOutcome SHALL choose the most applicable code from the IssueType value set, and may additional provide its own code for the error in the details element."]
19308 pub code: Box<terminology::IssueType>,
19309 #[doc = "Additional details about the error. This may be a text description of the error or a system code that identifies the error."]
19310 pub details: Option<Box<CodeableConcept>>,
19311 #[primitive]
19312 #[doc = "Additional diagnostic information about the issue."]
19313 pub diagnostics: Option<Box<FHIRString>>,
19314 #[primitive]
19315 #[doc = "This element is deprecated because it is XML specific. It is replaced by issue.expression, which is format independent, and simpler to parse. \n\nFor resource issues, this will be a simple XPath limited to element names, repetition indicators and the default child accessor that identifies one of the elements in the resource that caused this issue to be raised. For HTTP errors, will be \"http.\" + the parameter name."]
19316 pub location: Option<Vec<Box<FHIRString>>>,
19317 #[primitive]
19318 #[doc = "A [simple subset of FHIRPath](fhirpath.html#simple) limited to element names, repetition indicators and the default child accessor that identifies one of the elements in the resource that caused this issue to be raised."]
19319 pub expression: Option<Vec<Box<FHIRString>>>,
19320}
19321#[derive(
19322 Clone,
19323 Reflect,
19324 Debug,
19325 Default,
19326 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19327 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19328)]
19329#[fhir_serialize_type = "resource"]
19330#[doc = "A collection of error, warning, or information messages that result from a system action."]
19331pub struct OperationOutcome {
19332 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
19333 pub id: Option<String>,
19334 #[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."]
19335 pub meta: Option<Box<Meta>>,
19336 #[primitive]
19337 #[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."]
19338 pub implicitRules: Option<Box<FHIRUri>>,
19339 #[primitive]
19340 #[doc = "The base language in which the resource is written."]
19341 pub language: Option<Box<FHIRCode>>,
19342 #[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."]
19343 pub text: Option<Box<Narrative>>,
19344 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
19345 pub contained: Option<Vec<Box<Resource>>>,
19346 #[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 manageable, 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."]
19347 pub extension: Option<Vec<Box<Extension>>>,
19348 #[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 manageable, 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)."]
19349 pub modifierExtension: Option<Vec<Box<Extension>>>,
19350 #[cardinality(min = 1usize)]
19351 #[doc = "An error, warning, or information message that results from a system action."]
19352 pub issue: Vec<OperationOutcomeIssue>,
19353}
19354#[derive(
19355 Clone,
19356 Reflect,
19357 Debug,
19358 Default,
19359 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19360 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19361)]
19362#[fhir_serialize_type = "complex"]
19363#[doc = "Contact for the organization for a certain purpose."]
19364pub struct OrganizationContact {
19365 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
19366 pub id: Option<String>,
19367 #[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 manageable, 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."]
19368 pub extension: Option<Vec<Box<Extension>>>,
19369 #[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 manageable, 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)."]
19370 pub modifierExtension: Option<Vec<Box<Extension>>>,
19371 #[doc = "Indicates a purpose for which the contact can be reached."]
19372 pub purpose: Option<Box<CodeableConcept>>,
19373 #[doc = "A name associated with the contact."]
19374 pub name: Option<Box<HumanName>>,
19375 #[doc = "A contact detail (e.g. a telephone number or an email address) by which the party may be contacted."]
19376 pub telecom: Option<Vec<Box<ContactPoint>>>,
19377 #[doc = "Visiting or postal addresses for the contact."]
19378 pub address: Option<Box<Address>>,
19379}
19380#[derive(
19381 Clone,
19382 Reflect,
19383 Debug,
19384 Default,
19385 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19386 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19387)]
19388#[fhir_serialize_type = "resource"]
19389#[doc = "A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, payer/insurer, etc."]
19390pub struct Organization {
19391 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
19392 pub id: Option<String>,
19393 #[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."]
19394 pub meta: Option<Box<Meta>>,
19395 #[primitive]
19396 #[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."]
19397 pub implicitRules: Option<Box<FHIRUri>>,
19398 #[primitive]
19399 #[doc = "The base language in which the resource is written."]
19400 pub language: Option<Box<FHIRCode>>,
19401 #[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."]
19402 pub text: Option<Box<Narrative>>,
19403 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
19404 pub contained: Option<Vec<Box<Resource>>>,
19405 #[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 manageable, 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."]
19406 pub extension: Option<Vec<Box<Extension>>>,
19407 #[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 manageable, 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)."]
19408 pub modifierExtension: Option<Vec<Box<Extension>>>,
19409 #[rename_field = "identifier"]
19410 #[doc = "Identifier for the organization that is used to identify the organization across multiple disparate systems."]
19411 pub identifier_: Option<Vec<Box<Identifier>>>,
19412 #[primitive]
19413 #[doc = "Whether the organization's record is still in active use."]
19414 pub active: Option<Box<FHIRBoolean>>,
19415 #[rename_field = "type"]
19416 #[doc = "The kind(s) of organization that this is."]
19417 pub type_: Option<Vec<Box<CodeableConcept>>>,
19418 #[primitive]
19419 #[doc = "A name associated with the organization."]
19420 pub name: Option<Box<FHIRString>>,
19421 #[primitive]
19422 #[doc = "A list of alternate names that the organization is known as, or was known as in the past."]
19423 pub alias: Option<Vec<Box<FHIRString>>>,
19424 #[doc = "A contact detail for the organization."]
19425 pub telecom: Option<Vec<Box<ContactPoint>>>,
19426 #[doc = "An address for the organization."]
19427 pub address: Option<Vec<Box<Address>>>,
19428 # [reference (targets = ["Organization"])]
19429 #[doc = "The organization of which this organization forms a part."]
19430 pub partOf: Option<Box<Reference>>,
19431 #[doc = "Contact for the organization for a certain purpose."]
19432 pub contact: Option<Vec<OrganizationContact>>,
19433 # [reference (targets = ["Endpoint"])]
19434 #[doc = "Technical endpoints providing access to services operated for the organization."]
19435 pub endpoint: Option<Vec<Box<Reference>>>,
19436}
19437#[derive(
19438 Clone,
19439 Reflect,
19440 Debug,
19441 Default,
19442 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19443 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19444)]
19445#[fhir_serialize_type = "resource"]
19446#[doc = "Defines an affiliation/assotiation/relationship between 2 distinct oganizations, that is not a part-of relationship/sub-division relationship."]
19447pub struct OrganizationAffiliation {
19448 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
19449 pub id: Option<String>,
19450 #[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."]
19451 pub meta: Option<Box<Meta>>,
19452 #[primitive]
19453 #[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."]
19454 pub implicitRules: Option<Box<FHIRUri>>,
19455 #[primitive]
19456 #[doc = "The base language in which the resource is written."]
19457 pub language: Option<Box<FHIRCode>>,
19458 #[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."]
19459 pub text: Option<Box<Narrative>>,
19460 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
19461 pub contained: Option<Vec<Box<Resource>>>,
19462 #[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 manageable, 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."]
19463 pub extension: Option<Vec<Box<Extension>>>,
19464 #[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 manageable, 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)."]
19465 pub modifierExtension: Option<Vec<Box<Extension>>>,
19466 #[rename_field = "identifier"]
19467 #[doc = "Business identifiers that are specific to this role."]
19468 pub identifier_: Option<Vec<Box<Identifier>>>,
19469 #[primitive]
19470 #[doc = "Whether this organization affiliation record is in active use."]
19471 pub active: Option<Box<FHIRBoolean>>,
19472 #[doc = "The period during which the participatingOrganization is affiliated with the primary organization."]
19473 pub period: Option<Box<Period>>,
19474 # [reference (targets = ["Organization"])]
19475 #[doc = "Organization where the role is available (primary organization/has members)."]
19476 pub organization: Option<Box<Reference>>,
19477 # [reference (targets = ["Organization"])]
19478 #[doc = "The Participating Organization provides/performs the role(s) defined by the code to the Primary Organization (e.g. providing services or is a member of)."]
19479 pub participatingOrganization: Option<Box<Reference>>,
19480 # [reference (targets = ["Organization"])]
19481 #[doc = "Health insurance provider network in which the participatingOrganization provides the role's services (if defined) at the indicated locations (if defined)."]
19482 pub network: Option<Vec<Box<Reference>>>,
19483 #[doc = "Definition of the role the participatingOrganization plays in the association."]
19484 pub code: Option<Vec<Box<CodeableConcept>>>,
19485 #[doc = "Specific specialty of the participatingOrganization in the context of the role."]
19486 pub specialty: Option<Vec<Box<CodeableConcept>>>,
19487 # [reference (targets = ["Location"])]
19488 #[doc = "The location(s) at which the role occurs."]
19489 pub location: Option<Vec<Box<Reference>>>,
19490 # [reference (targets = ["HealthcareService"])]
19491 #[doc = "Healthcare services provided through the role."]
19492 pub healthcareService: Option<Vec<Box<Reference>>>,
19493 #[doc = "Contact details at the participatingOrganization relevant to this Affiliation."]
19494 pub telecom: Option<Vec<Box<ContactPoint>>>,
19495 # [reference (targets = ["Endpoint"])]
19496 #[doc = "Technical endpoints providing access to services operated for this role."]
19497 pub endpoint: Option<Vec<Box<Reference>>>,
19498}
19499#[derive(
19500 Clone,
19501 Reflect,
19502 Debug,
19503 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19504 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19505)]
19506#[fhir_serialize_type = "typechoice"]
19507#[type_choice_field_name = "value"]
19508pub enum ParametersParameterValueTypeChoice {
19509 Base64Binary(Box<FHIRBase64Binary>),
19510 Boolean(Box<FHIRBoolean>),
19511 Canonical(Box<FHIRCanonical>),
19512 Code(Box<FHIRCode>),
19513 Date(Box<FHIRDate>),
19514 DateTime(Box<FHIRDateTime>),
19515 Decimal(Box<FHIRDecimal>),
19516 Id(Box<FHIRId>),
19517 Instant(Box<FHIRInstant>),
19518 Integer(Box<FHIRInteger>),
19519 Markdown(Box<FHIRMarkdown>),
19520 Oid(Box<FHIROid>),
19521 PositiveInt(Box<FHIRPositiveInt>),
19522 String(Box<FHIRString>),
19523 Time(Box<FHIRTime>),
19524 UnsignedInt(Box<FHIRUnsignedInt>),
19525 Uri(Box<FHIRUri>),
19526 Url(Box<FHIRUrl>),
19527 Uuid(Box<FHIRUuid>),
19528 Address(Box<Address>),
19529 Age(Box<Age>),
19530 Annotation(Box<Annotation>),
19531 Attachment(Box<Attachment>),
19532 CodeableConcept(Box<CodeableConcept>),
19533 Coding(Box<Coding>),
19534 ContactPoint(Box<ContactPoint>),
19535 Count(Box<Count>),
19536 Distance(Box<Distance>),
19537 Duration(Box<Duration>),
19538 HumanName(Box<HumanName>),
19539 Identifier(Box<Identifier>),
19540 Money(Box<Money>),
19541 Period(Box<Period>),
19542 Quantity(Box<Quantity>),
19543 Range(Box<Range>),
19544 Ratio(Box<Ratio>),
19545 Reference(Box<Reference>),
19546 SampledData(Box<SampledData>),
19547 Signature(Box<Signature>),
19548 Timing(Box<Timing>),
19549 ContactDetail(Box<ContactDetail>),
19550 Contributor(Box<Contributor>),
19551 DataRequirement(Box<DataRequirement>),
19552 Expression(Box<Expression>),
19553 ParameterDefinition(Box<ParameterDefinition>),
19554 RelatedArtifact(Box<RelatedArtifact>),
19555 TriggerDefinition(Box<TriggerDefinition>),
19556 UsageContext(Box<UsageContext>),
19557 Dosage(Box<Dosage>),
19558 Meta(Box<Meta>),
19559}
19560impl Default for ParametersParameterValueTypeChoice {
19561 fn default() -> Self {
19562 ParametersParameterValueTypeChoice::Base64Binary(Box::new(Default::default()))
19563 }
19564}
19565#[derive(
19566 Clone,
19567 Reflect,
19568 Debug,
19569 Default,
19570 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19571 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19572)]
19573#[fhir_serialize_type = "complex"]
19574#[doc = "A parameter passed to or received from the operation."]
19575pub struct ParametersParameter {
19576 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
19577 pub id: Option<String>,
19578 #[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 manageable, 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."]
19579 pub extension: Option<Vec<Box<Extension>>>,
19580 #[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 manageable, 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)."]
19581 pub modifierExtension: Option<Vec<Box<Extension>>>,
19582 #[primitive]
19583 #[doc = "The name of the parameter (reference to the operation definition)."]
19584 pub name: Box<FHIRString>,
19585 # [type_choice_variants (complex = ["valueAddress" , "valueAge" , "valueAnnotation" , "valueAttachment" , "valueCodeableConcept" , "valueCoding" , "valueContactPoint" , "valueCount" , "valueDistance" , "valueDuration" , "valueHumanName" , "valueIdentifier" , "valueMoney" , "valuePeriod" , "valueQuantity" , "valueRange" , "valueRatio" , "valueReference" , "valueSampledData" , "valueSignature" , "valueTiming" , "valueContactDetail" , "valueContributor" , "valueDataRequirement" , "valueExpression" , "valueParameterDefinition" , "valueRelatedArtifact" , "valueTriggerDefinition" , "valueUsageContext" , "valueDosage" , "valueMeta"] , primitive = ["valueBase64Binary" , "valueBoolean" , "valueCanonical" , "valueCode" , "valueDate" , "valueDateTime" , "valueDecimal" , "valueId" , "valueInstant" , "valueInteger" , "valueMarkdown" , "valueOid" , "valuePositiveInt" , "valueString" , "valueTime" , "valueUnsignedInt" , "valueUri" , "valueUrl" , "valueUuid"])]
19586 #[doc = "If the parameter is a data type."]
19587 pub value: Option<ParametersParameterValueTypeChoice>,
19588 #[doc = "If the parameter is a whole resource."]
19589 pub resource: Option<Box<Resource>>,
19590 #[doc = "A named part of a multi-part parameter."]
19591 pub part: Option<Vec<ParametersParameter>>,
19592}
19593#[derive(
19594 Clone,
19595 Reflect,
19596 Debug,
19597 Default,
19598 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19599 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19600)]
19601#[fhir_serialize_type = "resource"]
19602#[doc = "This resource is a non-persisted resource used to pass information into and back from an [operation](operations.html). It has no other use, and there is no RESTful endpoint associated with it."]
19603pub struct Parameters {
19604 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
19605 pub id: Option<String>,
19606 #[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."]
19607 pub meta: Option<Box<Meta>>,
19608 #[primitive]
19609 #[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."]
19610 pub implicitRules: Option<Box<FHIRUri>>,
19611 #[primitive]
19612 #[doc = "The base language in which the resource is written."]
19613 pub language: Option<Box<FHIRCode>>,
19614 #[doc = "A parameter passed to or received from the operation."]
19615 pub parameter: Option<Vec<ParametersParameter>>,
19616}
19617#[derive(
19618 Clone,
19619 Reflect,
19620 Debug,
19621 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19622 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19623)]
19624#[fhir_serialize_type = "typechoice"]
19625#[type_choice_field_name = "deceased"]
19626pub enum PatientDeceasedTypeChoice {
19627 Boolean(Box<FHIRBoolean>),
19628 DateTime(Box<FHIRDateTime>),
19629}
19630impl Default for PatientDeceasedTypeChoice {
19631 fn default() -> Self {
19632 PatientDeceasedTypeChoice::Boolean(Box::new(Default::default()))
19633 }
19634}
19635#[derive(
19636 Clone,
19637 Reflect,
19638 Debug,
19639 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19640 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19641)]
19642#[fhir_serialize_type = "typechoice"]
19643#[type_choice_field_name = "multipleBirth"]
19644pub enum PatientMultipleBirthTypeChoice {
19645 Boolean(Box<FHIRBoolean>),
19646 Integer(Box<FHIRInteger>),
19647}
19648impl Default for PatientMultipleBirthTypeChoice {
19649 fn default() -> Self {
19650 PatientMultipleBirthTypeChoice::Boolean(Box::new(Default::default()))
19651 }
19652}
19653#[derive(
19654 Clone,
19655 Reflect,
19656 Debug,
19657 Default,
19658 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19659 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19660)]
19661#[fhir_serialize_type = "complex"]
19662#[doc = "A contact party (e.g. guardian, partner, friend) for the patient."]
19663pub struct PatientContact {
19664 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
19665 pub id: Option<String>,
19666 #[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 manageable, 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."]
19667 pub extension: Option<Vec<Box<Extension>>>,
19668 #[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 manageable, 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)."]
19669 pub modifierExtension: Option<Vec<Box<Extension>>>,
19670 #[doc = "The nature of the relationship between the patient and the contact person."]
19671 pub relationship: Option<Vec<Box<CodeableConcept>>>,
19672 #[doc = "A name associated with the contact person."]
19673 pub name: Option<Box<HumanName>>,
19674 #[doc = "A contact detail for the person, e.g. a telephone number or an email address."]
19675 pub telecom: Option<Vec<Box<ContactPoint>>>,
19676 #[doc = "Address for the contact person."]
19677 pub address: Option<Box<Address>>,
19678 #[primitive]
19679 #[doc = "Administrative Gender - the gender that the contact person is considered to have for administration and record keeping purposes."]
19680 pub gender: Option<Box<terminology::AdministrativeGender>>,
19681 # [reference (targets = ["Organization"])]
19682 #[doc = "Organization on behalf of which the contact is acting or for which the contact is working."]
19683 pub organization: Option<Box<Reference>>,
19684 #[doc = "The period during which this contact person or organization is valid to be contacted relating to this patient."]
19685 pub period: Option<Box<Period>>,
19686}
19687#[derive(
19688 Clone,
19689 Reflect,
19690 Debug,
19691 Default,
19692 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19693 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19694)]
19695#[fhir_serialize_type = "complex"]
19696#[doc = "A language which may be used to communicate with the patient about his or her health."]
19697pub struct PatientCommunication {
19698 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
19699 pub id: Option<String>,
19700 #[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 manageable, 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."]
19701 pub extension: Option<Vec<Box<Extension>>>,
19702 #[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 manageable, 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)."]
19703 pub modifierExtension: Option<Vec<Box<Extension>>>,
19704 #[doc = "The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. \"en\" for English, or \"en-US\" for American English versus \"en-EN\" for England English."]
19705 pub language: Box<CodeableConcept>,
19706 #[primitive]
19707 #[doc = "Indicates whether or not the patient prefers this language (over other languages he masters up a certain level)."]
19708 pub preferred: Option<Box<FHIRBoolean>>,
19709}
19710#[derive(
19711 Clone,
19712 Reflect,
19713 Debug,
19714 Default,
19715 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19716 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19717)]
19718#[fhir_serialize_type = "complex"]
19719#[doc = "Link to another patient resource that concerns the same actual patient."]
19720pub struct PatientLink {
19721 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
19722 pub id: Option<String>,
19723 #[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 manageable, 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."]
19724 pub extension: Option<Vec<Box<Extension>>>,
19725 #[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 manageable, 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)."]
19726 pub modifierExtension: Option<Vec<Box<Extension>>>,
19727 # [reference (targets = ["Patient" , "RelatedPerson"])]
19728 #[doc = "The other patient resource that the link refers to."]
19729 pub other: Box<Reference>,
19730 #[rename_field = "type"]
19731 #[primitive]
19732 #[doc = "The type of link between this patient resource and another patient resource."]
19733 pub type_: Box<terminology::LinkType>,
19734}
19735#[derive(
19736 Clone,
19737 Reflect,
19738 Debug,
19739 Default,
19740 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19741 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19742)]
19743#[fhir_serialize_type = "resource"]
19744#[doc = "Demographics and other administrative information about an individual or animal receiving care or other health-related services."]
19745pub struct Patient {
19746 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
19747 pub id: Option<String>,
19748 #[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."]
19749 pub meta: Option<Box<Meta>>,
19750 #[primitive]
19751 #[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."]
19752 pub implicitRules: Option<Box<FHIRUri>>,
19753 #[primitive]
19754 #[doc = "The base language in which the resource is written."]
19755 pub language: Option<Box<FHIRCode>>,
19756 #[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."]
19757 pub text: Option<Box<Narrative>>,
19758 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
19759 pub contained: Option<Vec<Box<Resource>>>,
19760 #[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 manageable, 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."]
19761 pub extension: Option<Vec<Box<Extension>>>,
19762 #[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 manageable, 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)."]
19763 pub modifierExtension: Option<Vec<Box<Extension>>>,
19764 #[rename_field = "identifier"]
19765 #[doc = "An identifier for this patient."]
19766 pub identifier_: Option<Vec<Box<Identifier>>>,
19767 #[primitive]
19768 #[doc = "Whether this patient record is in active use. \nMany systems use this property to mark as non-current patients, such as those that have not been seen for a period of time based on an organization's business rules.\n\nIt is often used to filter patient lists to exclude inactive patients\n\nDeceased patients may also be marked as inactive for the same reasons, but may be active for some time after death."]
19769 pub active: Option<Box<FHIRBoolean>>,
19770 #[doc = "A name associated with the individual."]
19771 pub name: Option<Vec<Box<HumanName>>>,
19772 #[doc = "A contact detail (e.g. a telephone number or an email address) by which the individual may be contacted."]
19773 pub telecom: Option<Vec<Box<ContactPoint>>>,
19774 #[primitive]
19775 #[doc = "Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes."]
19776 pub gender: Option<Box<terminology::AdministrativeGender>>,
19777 #[primitive]
19778 #[doc = "The date of birth for the individual."]
19779 pub birthDate: Option<Box<FHIRDate>>,
19780 # [type_choice_variants (complex = [] , primitive = ["deceasedBoolean" , "deceasedDateTime"])]
19781 #[doc = "Indicates if the individual is deceased or not."]
19782 pub deceased: Option<PatientDeceasedTypeChoice>,
19783 #[doc = "An address for the individual."]
19784 pub address: Option<Vec<Box<Address>>>,
19785 #[doc = "This field contains a patient's most recent marital (civil) status."]
19786 pub maritalStatus: Option<Box<CodeableConcept>>,
19787 # [type_choice_variants (complex = [] , primitive = ["multipleBirthBoolean" , "multipleBirthInteger"])]
19788 #[doc = "Indicates whether the patient is part of a multiple (boolean) or indicates the actual birth order (integer)."]
19789 pub multipleBirth: Option<PatientMultipleBirthTypeChoice>,
19790 #[doc = "Image of the patient."]
19791 pub photo: Option<Vec<Box<Attachment>>>,
19792 #[doc = "A contact party (e.g. guardian, partner, friend) for the patient."]
19793 pub contact: Option<Vec<PatientContact>>,
19794 #[doc = "A language which may be used to communicate with the patient about his or her health."]
19795 pub communication: Option<Vec<PatientCommunication>>,
19796 # [reference (targets = ["Organization" , "Practitioner" , "PractitionerRole"])]
19797 #[doc = "Patient's nominated care provider."]
19798 pub generalPractitioner: Option<Vec<Box<Reference>>>,
19799 # [reference (targets = ["Organization"])]
19800 #[doc = "Organization that is the custodian of the patient record."]
19801 pub managingOrganization: Option<Box<Reference>>,
19802 #[doc = "Link to another patient resource that concerns the same actual patient."]
19803 pub link: Option<Vec<PatientLink>>,
19804}
19805#[derive(
19806 Clone,
19807 Reflect,
19808 Debug,
19809 Default,
19810 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19811 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19812)]
19813#[fhir_serialize_type = "resource"]
19814#[doc = "This resource provides the status of the payment for goods and services rendered, and the request and response resource references."]
19815pub struct PaymentNotice {
19816 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
19817 pub id: Option<String>,
19818 #[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."]
19819 pub meta: Option<Box<Meta>>,
19820 #[primitive]
19821 #[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."]
19822 pub implicitRules: Option<Box<FHIRUri>>,
19823 #[primitive]
19824 #[doc = "The base language in which the resource is written."]
19825 pub language: Option<Box<FHIRCode>>,
19826 #[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."]
19827 pub text: Option<Box<Narrative>>,
19828 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
19829 pub contained: Option<Vec<Box<Resource>>>,
19830 #[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 manageable, 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."]
19831 pub extension: Option<Vec<Box<Extension>>>,
19832 #[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 manageable, 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)."]
19833 pub modifierExtension: Option<Vec<Box<Extension>>>,
19834 #[rename_field = "identifier"]
19835 #[doc = "A unique identifier assigned to this payment notice."]
19836 pub identifier_: Option<Vec<Box<Identifier>>>,
19837 #[primitive]
19838 #[doc = "The status of the resource instance."]
19839 pub status: Box<terminology::FmStatus>,
19840 # [reference (targets = ["Resource"])]
19841 #[doc = "Reference of resource for which payment is being made."]
19842 pub request: Option<Box<Reference>>,
19843 # [reference (targets = ["Resource"])]
19844 #[doc = "Reference of response to resource for which payment is being made."]
19845 pub response: Option<Box<Reference>>,
19846 #[primitive]
19847 #[doc = "The date when this resource was created."]
19848 pub created: Box<FHIRDateTime>,
19849 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
19850 #[doc = "The practitioner who is responsible for the services rendered to the patient."]
19851 pub provider: Option<Box<Reference>>,
19852 # [reference (targets = ["PaymentReconciliation"])]
19853 #[doc = "A reference to the payment which is the subject of this notice."]
19854 pub payment: Box<Reference>,
19855 #[primitive]
19856 #[doc = "The date when the above payment action occurred."]
19857 pub paymentDate: Option<Box<FHIRDate>>,
19858 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
19859 #[doc = "The party who will receive or has received payment that is the subject of this notification."]
19860 pub payee: Option<Box<Reference>>,
19861 # [reference (targets = ["Organization"])]
19862 #[doc = "The party who is notified of the payment status."]
19863 pub recipient: Box<Reference>,
19864 #[doc = "The amount sent to the payee."]
19865 pub amount: Box<Money>,
19866 #[doc = "A code indicating whether payment has been sent or cleared."]
19867 pub paymentStatus: Option<Box<CodeableConcept>>,
19868}
19869#[derive(
19870 Clone,
19871 Reflect,
19872 Debug,
19873 Default,
19874 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19875 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19876)]
19877#[fhir_serialize_type = "complex"]
19878#[doc = "Distribution of the payment amount for a previously acknowledged payable."]
19879pub struct PaymentReconciliationDetail {
19880 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
19881 pub id: Option<String>,
19882 #[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 manageable, 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."]
19883 pub extension: Option<Vec<Box<Extension>>>,
19884 #[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 manageable, 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)."]
19885 pub modifierExtension: Option<Vec<Box<Extension>>>,
19886 #[rename_field = "identifier"]
19887 #[doc = "Unique identifier for the current payment item for the referenced payable."]
19888 pub identifier_: Option<Box<Identifier>>,
19889 #[doc = "Unique identifier for the prior payment item for the referenced payable."]
19890 pub predecessor: Option<Box<Identifier>>,
19891 #[rename_field = "type"]
19892 #[doc = "Code to indicate the nature of the payment."]
19893 pub type_: Box<CodeableConcept>,
19894 # [reference (targets = ["Resource"])]
19895 #[doc = "A resource, such as a Claim, the evaluation of which could lead to payment."]
19896 pub request: Option<Box<Reference>>,
19897 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
19898 #[doc = "The party which submitted the claim or financial transaction."]
19899 pub submitter: Option<Box<Reference>>,
19900 # [reference (targets = ["Resource"])]
19901 #[doc = "A resource, such as a ClaimResponse, which contains a commitment to payment."]
19902 pub response: Option<Box<Reference>>,
19903 #[primitive]
19904 #[doc = "The date from the response resource containing a commitment to pay."]
19905 pub date: Option<Box<FHIRDate>>,
19906 # [reference (targets = ["PractitionerRole"])]
19907 #[doc = "A reference to the individual who is responsible for inquiries regarding the response and its payment."]
19908 pub responsible: Option<Box<Reference>>,
19909 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
19910 #[doc = "The party which is receiving the payment."]
19911 pub payee: Option<Box<Reference>>,
19912 #[doc = "The monetary amount allocated from the total payment to the payable."]
19913 pub amount: Option<Box<Money>>,
19914}
19915#[derive(
19916 Clone,
19917 Reflect,
19918 Debug,
19919 Default,
19920 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19921 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19922)]
19923#[fhir_serialize_type = "complex"]
19924#[doc = "A note that describes or explains the processing in a human readable form."]
19925pub struct PaymentReconciliationProcessNote {
19926 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
19927 pub id: Option<String>,
19928 #[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 manageable, 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."]
19929 pub extension: Option<Vec<Box<Extension>>>,
19930 #[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 manageable, 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)."]
19931 pub modifierExtension: Option<Vec<Box<Extension>>>,
19932 #[rename_field = "type"]
19933 #[primitive]
19934 #[doc = "The business purpose of the note text."]
19935 pub type_: Option<Box<terminology::NoteType>>,
19936 #[primitive]
19937 #[doc = "The explanation or description associated with the processing."]
19938 pub text: Option<Box<FHIRString>>,
19939}
19940#[derive(
19941 Clone,
19942 Reflect,
19943 Debug,
19944 Default,
19945 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
19946 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
19947)]
19948#[fhir_serialize_type = "resource"]
19949#[doc = "This resource provides the details including amount of a payment and allocates the payment items being paid."]
19950pub struct PaymentReconciliation {
19951 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
19952 pub id: Option<String>,
19953 #[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."]
19954 pub meta: Option<Box<Meta>>,
19955 #[primitive]
19956 #[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."]
19957 pub implicitRules: Option<Box<FHIRUri>>,
19958 #[primitive]
19959 #[doc = "The base language in which the resource is written."]
19960 pub language: Option<Box<FHIRCode>>,
19961 #[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."]
19962 pub text: Option<Box<Narrative>>,
19963 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
19964 pub contained: Option<Vec<Box<Resource>>>,
19965 #[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 manageable, 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."]
19966 pub extension: Option<Vec<Box<Extension>>>,
19967 #[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 manageable, 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)."]
19968 pub modifierExtension: Option<Vec<Box<Extension>>>,
19969 #[rename_field = "identifier"]
19970 #[doc = "A unique identifier assigned to this payment reconciliation."]
19971 pub identifier_: Option<Vec<Box<Identifier>>>,
19972 #[primitive]
19973 #[doc = "The status of the resource instance."]
19974 pub status: Box<terminology::FmStatus>,
19975 #[doc = "The period of time for which payments have been gathered into this bulk payment for settlement."]
19976 pub period: Option<Box<Period>>,
19977 #[primitive]
19978 #[doc = "The date when the resource was created."]
19979 pub created: Box<FHIRDateTime>,
19980 # [reference (targets = ["Organization"])]
19981 #[doc = "The party who generated the payment."]
19982 pub paymentIssuer: Option<Box<Reference>>,
19983 # [reference (targets = ["Task"])]
19984 #[doc = "Original request resource reference."]
19985 pub request: Option<Box<Reference>>,
19986 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
19987 #[doc = "The practitioner who is responsible for the services rendered to the patient."]
19988 pub requestor: Option<Box<Reference>>,
19989 #[primitive]
19990 #[doc = "The outcome of a request for a reconciliation."]
19991 pub outcome: Option<Box<terminology::RemittanceOutcome>>,
19992 #[primitive]
19993 #[doc = "A human readable description of the status of the request for the reconciliation."]
19994 pub disposition: Option<Box<FHIRString>>,
19995 #[primitive]
19996 #[doc = "The date of payment as indicated on the financial instrument."]
19997 pub paymentDate: Box<FHIRDate>,
19998 #[doc = "Total payment amount as indicated on the financial instrument."]
19999 pub paymentAmount: Box<Money>,
20000 #[doc = "Issuer's unique identifier for the payment instrument."]
20001 pub paymentIdentifier: Option<Box<Identifier>>,
20002 #[doc = "Distribution of the payment amount for a previously acknowledged payable."]
20003 pub detail: Option<Vec<PaymentReconciliationDetail>>,
20004 #[doc = "A code for the form to be used for printing the content."]
20005 pub formCode: Option<Box<CodeableConcept>>,
20006 #[doc = "A note that describes or explains the processing in a human readable form."]
20007 pub processNote: Option<Vec<PaymentReconciliationProcessNote>>,
20008}
20009#[derive(
20010 Clone,
20011 Reflect,
20012 Debug,
20013 Default,
20014 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20015 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20016)]
20017#[fhir_serialize_type = "complex"]
20018#[doc = "Link to a resource that concerns the same actual person."]
20019pub struct PersonLink {
20020 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
20021 pub id: Option<String>,
20022 #[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 manageable, 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."]
20023 pub extension: Option<Vec<Box<Extension>>>,
20024 #[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 manageable, 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)."]
20025 pub modifierExtension: Option<Vec<Box<Extension>>>,
20026 # [reference (targets = ["Patient" , "Practitioner" , "RelatedPerson" , "Person"])]
20027 #[doc = "The resource to which this actual person is associated."]
20028 pub target: Box<Reference>,
20029 #[primitive]
20030 #[doc = "Level of assurance that this link is associated with the target resource."]
20031 pub assurance: Option<Box<terminology::IdentityAssuranceLevel>>,
20032}
20033#[derive(
20034 Clone,
20035 Reflect,
20036 Debug,
20037 Default,
20038 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20039 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20040)]
20041#[fhir_serialize_type = "resource"]
20042#[doc = "Demographics and administrative information about a person independent of a specific health-related context."]
20043pub struct Person {
20044 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
20045 pub id: Option<String>,
20046 #[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."]
20047 pub meta: Option<Box<Meta>>,
20048 #[primitive]
20049 #[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."]
20050 pub implicitRules: Option<Box<FHIRUri>>,
20051 #[primitive]
20052 #[doc = "The base language in which the resource is written."]
20053 pub language: Option<Box<FHIRCode>>,
20054 #[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."]
20055 pub text: Option<Box<Narrative>>,
20056 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
20057 pub contained: Option<Vec<Box<Resource>>>,
20058 #[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 manageable, 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."]
20059 pub extension: Option<Vec<Box<Extension>>>,
20060 #[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 manageable, 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)."]
20061 pub modifierExtension: Option<Vec<Box<Extension>>>,
20062 #[rename_field = "identifier"]
20063 #[doc = "Identifier for a person within a particular scope."]
20064 pub identifier_: Option<Vec<Box<Identifier>>>,
20065 #[doc = "A name associated with the person."]
20066 pub name: Option<Vec<Box<HumanName>>>,
20067 #[doc = "A contact detail for the person, e.g. a telephone number or an email address."]
20068 pub telecom: Option<Vec<Box<ContactPoint>>>,
20069 #[primitive]
20070 #[doc = "Administrative Gender."]
20071 pub gender: Option<Box<terminology::AdministrativeGender>>,
20072 #[primitive]
20073 #[doc = "The birth date for the person."]
20074 pub birthDate: Option<Box<FHIRDate>>,
20075 #[doc = "One or more addresses for the person."]
20076 pub address: Option<Vec<Box<Address>>>,
20077 #[doc = "An image that can be displayed as a thumbnail of the person to enhance the identification of the individual."]
20078 pub photo: Option<Box<Attachment>>,
20079 # [reference (targets = ["Organization"])]
20080 #[doc = "The organization that is the custodian of the person record."]
20081 pub managingOrganization: Option<Box<Reference>>,
20082 #[primitive]
20083 #[doc = "Whether this person's record is in active use."]
20084 pub active: Option<Box<FHIRBoolean>>,
20085 #[doc = "Link to a resource that concerns the same actual person."]
20086 pub link: Option<Vec<PersonLink>>,
20087}
20088#[derive(
20089 Clone,
20090 Reflect,
20091 Debug,
20092 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20093 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20094)]
20095#[fhir_serialize_type = "typechoice"]
20096#[type_choice_field_name = "subject"]
20097pub enum PlanDefinitionSubjectTypeChoice {
20098 CodeableConcept(Box<CodeableConcept>),
20099 # [reference (targets = ["Group"])]
20100 Reference(Box<Reference>),
20101}
20102impl Default for PlanDefinitionSubjectTypeChoice {
20103 fn default() -> Self {
20104 PlanDefinitionSubjectTypeChoice::CodeableConcept(Box::new(Default::default()))
20105 }
20106}
20107#[derive(
20108 Clone,
20109 Reflect,
20110 Debug,
20111 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20112 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20113)]
20114#[fhir_serialize_type = "typechoice"]
20115#[type_choice_field_name = "detail"]
20116pub enum PlanDefinitionGoalTargetDetailTypeChoice {
20117 Quantity(Box<Quantity>),
20118 Range(Box<Range>),
20119 CodeableConcept(Box<CodeableConcept>),
20120}
20121impl Default for PlanDefinitionGoalTargetDetailTypeChoice {
20122 fn default() -> Self {
20123 PlanDefinitionGoalTargetDetailTypeChoice::Quantity(Box::new(Default::default()))
20124 }
20125}
20126#[derive(
20127 Clone,
20128 Reflect,
20129 Debug,
20130 Default,
20131 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20132 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20133)]
20134#[fhir_serialize_type = "complex"]
20135#[doc = "Indicates what should be done and within what timeframe."]
20136pub struct PlanDefinitionGoalTarget {
20137 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
20138 pub id: Option<String>,
20139 #[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 manageable, 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."]
20140 pub extension: Option<Vec<Box<Extension>>>,
20141 #[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 manageable, 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)."]
20142 pub modifierExtension: Option<Vec<Box<Extension>>>,
20143 #[doc = "The parameter whose value is to be tracked, e.g. body weight, blood pressure, or hemoglobin A1c level."]
20144 pub measure: Option<Box<CodeableConcept>>,
20145 # [type_choice_variants (complex = ["detailQuantity" , "detailRange" , "detailCodeableConcept"] , primitive = [])]
20146 #[doc = "The target value of the measure to be achieved to signify fulfillment of the goal, e.g. 150 pounds or 7.0%. Either the high or low or both values of the range can be specified. When a low value is missing, it indicates that the goal is achieved at any value at or below the high value. Similarly, if the high value is missing, it indicates that the goal is achieved at any value at or above the low value."]
20147 pub detail: Option<PlanDefinitionGoalTargetDetailTypeChoice>,
20148 #[doc = "Indicates the timeframe after the start of the goal in which the goal should be met."]
20149 pub due: Option<Box<Duration>>,
20150}
20151#[derive(
20152 Clone,
20153 Reflect,
20154 Debug,
20155 Default,
20156 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20157 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20158)]
20159#[fhir_serialize_type = "complex"]
20160#[doc = "Goals that describe what the activities within the plan are intended to achieve. For example, weight loss, restoring an activity of daily living, obtaining herd immunity via immunization, meeting a process improvement objective, etc."]
20161pub struct PlanDefinitionGoal {
20162 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
20163 pub id: Option<String>,
20164 #[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 manageable, 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."]
20165 pub extension: Option<Vec<Box<Extension>>>,
20166 #[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 manageable, 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)."]
20167 pub modifierExtension: Option<Vec<Box<Extension>>>,
20168 #[doc = "Indicates a category the goal falls within."]
20169 pub category: Option<Box<CodeableConcept>>,
20170 #[doc = "Human-readable and/or coded description of a specific desired objective of care, such as \"control blood pressure\" or \"negotiate an obstacle course\" or \"dance with child at wedding\"."]
20171 pub description: Box<CodeableConcept>,
20172 #[doc = "Identifies the expected level of importance associated with reaching/sustaining the defined goal."]
20173 pub priority: Option<Box<CodeableConcept>>,
20174 #[doc = "The event after which the goal should begin being pursued."]
20175 pub start: Option<Box<CodeableConcept>>,
20176 #[doc = "Identifies problems, conditions, issues, or concerns the goal is intended to address."]
20177 pub addresses: Option<Vec<Box<CodeableConcept>>>,
20178 #[doc = "Didactic or other informational resources associated with the goal that provide further supporting information about the goal. Information resources can include inline text commentary and links to web resources."]
20179 pub documentation: Option<Vec<Box<RelatedArtifact>>>,
20180 #[doc = "Indicates what should be done and within what timeframe."]
20181 pub target: Option<Vec<PlanDefinitionGoalTarget>>,
20182}
20183#[derive(
20184 Clone,
20185 Reflect,
20186 Debug,
20187 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20188 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20189)]
20190#[fhir_serialize_type = "typechoice"]
20191#[type_choice_field_name = "subject"]
20192pub enum PlanDefinitionActionSubjectTypeChoice {
20193 CodeableConcept(Box<CodeableConcept>),
20194 # [reference (targets = ["Group"])]
20195 Reference(Box<Reference>),
20196}
20197impl Default for PlanDefinitionActionSubjectTypeChoice {
20198 fn default() -> Self {
20199 PlanDefinitionActionSubjectTypeChoice::CodeableConcept(Box::new(Default::default()))
20200 }
20201}
20202#[derive(
20203 Clone,
20204 Reflect,
20205 Debug,
20206 Default,
20207 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20208 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20209)]
20210#[fhir_serialize_type = "complex"]
20211#[doc = "An expression that describes applicability criteria or start/stop conditions for the action."]
20212pub struct PlanDefinitionActionCondition {
20213 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
20214 pub id: Option<String>,
20215 #[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 manageable, 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."]
20216 pub extension: Option<Vec<Box<Extension>>>,
20217 #[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 manageable, 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)."]
20218 pub modifierExtension: Option<Vec<Box<Extension>>>,
20219 #[primitive]
20220 #[doc = "The kind of condition."]
20221 pub kind: Box<terminology::ActionConditionKind>,
20222 #[doc = "An expression that returns true or false, indicating whether the condition is satisfied."]
20223 pub expression: Option<Box<Expression>>,
20224}
20225#[derive(
20226 Clone,
20227 Reflect,
20228 Debug,
20229 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20230 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20231)]
20232#[fhir_serialize_type = "typechoice"]
20233#[type_choice_field_name = "offset"]
20234pub enum PlanDefinitionActionRelatedActionOffsetTypeChoice {
20235 Duration(Box<Duration>),
20236 Range(Box<Range>),
20237}
20238impl Default for PlanDefinitionActionRelatedActionOffsetTypeChoice {
20239 fn default() -> Self {
20240 PlanDefinitionActionRelatedActionOffsetTypeChoice::Duration(Box::new(Default::default()))
20241 }
20242}
20243#[derive(
20244 Clone,
20245 Reflect,
20246 Debug,
20247 Default,
20248 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20249 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20250)]
20251#[fhir_serialize_type = "complex"]
20252#[doc = "A relationship to another action such as \"before\" or \"30-60 minutes after start of\"."]
20253pub struct PlanDefinitionActionRelatedAction {
20254 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
20255 pub id: Option<String>,
20256 #[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 manageable, 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."]
20257 pub extension: Option<Vec<Box<Extension>>>,
20258 #[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 manageable, 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)."]
20259 pub modifierExtension: Option<Vec<Box<Extension>>>,
20260 #[primitive]
20261 #[doc = "The element id of the related action."]
20262 pub actionId: Box<FHIRId>,
20263 #[primitive]
20264 #[doc = "The relationship of this action to the related action."]
20265 pub relationship: Box<terminology::ActionRelationshipType>,
20266 # [type_choice_variants (complex = ["offsetDuration" , "offsetRange"] , primitive = [])]
20267 #[doc = "A duration or range of durations to apply to the relationship. For example, 30-60 minutes before."]
20268 pub offset: Option<PlanDefinitionActionRelatedActionOffsetTypeChoice>,
20269}
20270#[derive(
20271 Clone,
20272 Reflect,
20273 Debug,
20274 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20275 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20276)]
20277#[fhir_serialize_type = "typechoice"]
20278#[type_choice_field_name = "timing"]
20279pub enum PlanDefinitionActionTimingTypeChoice {
20280 DateTime(Box<FHIRDateTime>),
20281 Age(Box<Age>),
20282 Period(Box<Period>),
20283 Duration(Box<Duration>),
20284 Range(Box<Range>),
20285 Timing(Box<Timing>),
20286}
20287impl Default for PlanDefinitionActionTimingTypeChoice {
20288 fn default() -> Self {
20289 PlanDefinitionActionTimingTypeChoice::DateTime(Box::new(Default::default()))
20290 }
20291}
20292#[derive(
20293 Clone,
20294 Reflect,
20295 Debug,
20296 Default,
20297 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20298 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20299)]
20300#[fhir_serialize_type = "complex"]
20301#[doc = "Indicates who should participate in performing the action described."]
20302pub struct PlanDefinitionActionParticipant {
20303 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
20304 pub id: Option<String>,
20305 #[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 manageable, 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."]
20306 pub extension: Option<Vec<Box<Extension>>>,
20307 #[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 manageable, 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)."]
20308 pub modifierExtension: Option<Vec<Box<Extension>>>,
20309 #[rename_field = "type"]
20310 #[primitive]
20311 #[doc = "The type of participant in the action."]
20312 pub type_: Box<terminology::ActionParticipantType>,
20313 #[doc = "The role the participant should play in performing the described action."]
20314 pub role: Option<Box<CodeableConcept>>,
20315}
20316#[derive(
20317 Clone,
20318 Reflect,
20319 Debug,
20320 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20321 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20322)]
20323#[fhir_serialize_type = "typechoice"]
20324#[type_choice_field_name = "definition"]
20325pub enum PlanDefinitionActionDefinitionTypeChoice {
20326 Canonical(Box<FHIRCanonical>),
20327 Uri(Box<FHIRUri>),
20328}
20329impl Default for PlanDefinitionActionDefinitionTypeChoice {
20330 fn default() -> Self {
20331 PlanDefinitionActionDefinitionTypeChoice::Canonical(Box::new(Default::default()))
20332 }
20333}
20334#[derive(
20335 Clone,
20336 Reflect,
20337 Debug,
20338 Default,
20339 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20340 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20341)]
20342#[fhir_serialize_type = "complex"]
20343#[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."]
20344pub struct PlanDefinitionActionDynamicValue {
20345 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
20346 pub id: Option<String>,
20347 #[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 manageable, 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."]
20348 pub extension: Option<Vec<Box<Extension>>>,
20349 #[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 manageable, 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)."]
20350 pub modifierExtension: Option<Vec<Box<Extension>>>,
20351 #[primitive]
20352 #[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 resolveable 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)."]
20353 pub path: Option<Box<FHIRString>>,
20354 #[doc = "An expression specifying the value of the customized element."]
20355 pub expression: Option<Box<Expression>>,
20356}
20357#[derive(
20358 Clone,
20359 Reflect,
20360 Debug,
20361 Default,
20362 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20363 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20364)]
20365#[fhir_serialize_type = "complex"]
20366#[doc = "An action or group of actions to be taken as part of the plan."]
20367pub struct PlanDefinitionAction {
20368 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
20369 pub id: Option<String>,
20370 #[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 manageable, 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."]
20371 pub extension: Option<Vec<Box<Extension>>>,
20372 #[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 manageable, 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)."]
20373 pub modifierExtension: Option<Vec<Box<Extension>>>,
20374 #[primitive]
20375 #[doc = "A user-visible prefix for the action."]
20376 pub prefix: Option<Box<FHIRString>>,
20377 #[primitive]
20378 #[doc = "The title of the action displayed to a user."]
20379 pub title: Option<Box<FHIRString>>,
20380 #[primitive]
20381 #[doc = "A brief description of the action used to provide a summary to display to the user."]
20382 pub description: Option<Box<FHIRString>>,
20383 #[primitive]
20384 #[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."]
20385 pub textEquivalent: Option<Box<FHIRString>>,
20386 #[primitive]
20387 #[doc = "Indicates how quickly the action should be addressed with respect to other actions."]
20388 pub priority: Option<Box<terminology::RequestPriority>>,
20389 #[doc = "A code that provides meaning for the action or action group. For example, a section may have a LOINC code for the section of a documentation template."]
20390 pub code: Option<Vec<Box<CodeableConcept>>>,
20391 #[doc = "A description of why this action is necessary or appropriate."]
20392 pub reason: Option<Vec<Box<CodeableConcept>>>,
20393 #[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."]
20394 pub documentation: Option<Vec<Box<RelatedArtifact>>>,
20395 #[primitive]
20396 #[doc = "Identifies goals that this action supports. The reference must be to a goal element defined within this plan definition."]
20397 pub goalId: Option<Vec<Box<FHIRId>>>,
20398 # [type_choice_variants (complex = ["subjectCodeableConcept" , "subjectReference"] , primitive = [])]
20399 #[doc = "A code or group definition that describes the intended subject of the action and its children, if any."]
20400 pub subject: Option<PlanDefinitionActionSubjectTypeChoice>,
20401 #[doc = "A description of when the action should be triggered."]
20402 pub trigger: Option<Vec<Box<TriggerDefinition>>>,
20403 #[doc = "An expression that describes applicability criteria or start/stop conditions for the action."]
20404 pub condition: Option<Vec<PlanDefinitionActionCondition>>,
20405 #[doc = "Defines input data requirements for the action."]
20406 pub input: Option<Vec<Box<DataRequirement>>>,
20407 #[doc = "Defines the outputs of the action, if any."]
20408 pub output: Option<Vec<Box<DataRequirement>>>,
20409 #[doc = "A relationship to another action such as \"before\" or \"30-60 minutes after start of\"."]
20410 pub relatedAction: Option<Vec<PlanDefinitionActionRelatedAction>>,
20411 # [type_choice_variants (complex = ["timingAge" , "timingPeriod" , "timingDuration" , "timingRange" , "timingTiming"] , primitive = ["timingDateTime"])]
20412 #[doc = "An optional value describing when the action should be performed."]
20413 pub timing: Option<PlanDefinitionActionTimingTypeChoice>,
20414 #[doc = "Indicates who should participate in performing the action described."]
20415 pub participant: Option<Vec<PlanDefinitionActionParticipant>>,
20416 #[rename_field = "type"]
20417 #[doc = "The type of action to perform (create, update, remove)."]
20418 pub type_: Option<Box<CodeableConcept>>,
20419 #[primitive]
20420 #[doc = "Defines the grouping behavior for the action and its children."]
20421 pub groupingBehavior: Option<Box<terminology::ActionGroupingBehavior>>,
20422 #[primitive]
20423 #[doc = "Defines the selection behavior for the action and its children."]
20424 pub selectionBehavior: Option<Box<terminology::ActionSelectionBehavior>>,
20425 #[primitive]
20426 #[doc = "Defines the required behavior for the action."]
20427 pub requiredBehavior: Option<Box<terminology::ActionRequiredBehavior>>,
20428 #[primitive]
20429 #[doc = "Defines whether the action should usually be preselected."]
20430 pub precheckBehavior: Option<Box<terminology::ActionPrecheckBehavior>>,
20431 #[primitive]
20432 #[doc = "Defines whether the action can be selected multiple times."]
20433 pub cardinalityBehavior: Option<Box<terminology::ActionCardinalityBehavior>>,
20434 # [type_choice_variants (complex = [] , primitive = ["definitionCanonical" , "definitionUri"])]
20435 #[doc = "A reference to an ActivityDefinition that describes the action to be taken in detail, or a PlanDefinition that describes a series of actions to be taken."]
20436 pub definition: Option<PlanDefinitionActionDefinitionTypeChoice>,
20437 #[primitive]
20438 #[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."]
20439 pub transform: Option<Box<FHIRCanonical>>,
20440 #[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."]
20441 pub dynamicValue: Option<Vec<PlanDefinitionActionDynamicValue>>,
20442 #[doc = "Sub actions that are contained within the action. The behavior of this action determines the functionality of the sub-actions. For example, a selection behavior of at-most-one indicates that of the sub-actions, at most one may be chosen as part of realizing the action definition."]
20443 pub action: Option<Vec<PlanDefinitionAction>>,
20444}
20445#[derive(
20446 Clone,
20447 Reflect,
20448 Debug,
20449 Default,
20450 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20451 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20452)]
20453#[fhir_serialize_type = "resource"]
20454#[doc = "This resource allows for the definition of various types of plans as a sharable, consumable, and executable artifact. The resource is general enough to support the description of a broad range of clinical artifacts such as clinical decision support rules, order sets and protocols."]
20455pub struct PlanDefinition {
20456 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
20457 pub id: Option<String>,
20458 #[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."]
20459 pub meta: Option<Box<Meta>>,
20460 #[primitive]
20461 #[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."]
20462 pub implicitRules: Option<Box<FHIRUri>>,
20463 #[primitive]
20464 #[doc = "The base language in which the resource is written."]
20465 pub language: Option<Box<FHIRCode>>,
20466 #[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."]
20467 pub text: Option<Box<Narrative>>,
20468 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
20469 pub contained: Option<Vec<Box<Resource>>>,
20470 #[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 manageable, 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."]
20471 pub extension: Option<Vec<Box<Extension>>>,
20472 #[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 manageable, 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)."]
20473 pub modifierExtension: Option<Vec<Box<Extension>>>,
20474 #[primitive]
20475 #[doc = "An absolute URI that is used to identify this plan definition 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 at which an authoritative instance of this plan definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the plan definition is stored on different servers."]
20476 pub url: Option<Box<FHIRUri>>,
20477 #[rename_field = "identifier"]
20478 #[doc = "A formal identifier that is used to identify this plan definition when it is represented in other formats, or referenced in a specification, model, design or an instance."]
20479 pub identifier_: Option<Vec<Box<Identifier>>>,
20480 #[primitive]
20481 #[doc = "The identifier that is used to identify this version of the plan definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the plan definition 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. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts."]
20482 pub version: Option<Box<FHIRString>>,
20483 #[primitive]
20484 #[doc = "A natural language name identifying the plan definition. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
20485 pub name: Option<Box<FHIRString>>,
20486 #[primitive]
20487 #[doc = "A short, descriptive, user-friendly title for the plan definition."]
20488 pub title: Option<Box<FHIRString>>,
20489 #[primitive]
20490 #[doc = "An explanatory or alternate title for the plan definition giving additional information about its content."]
20491 pub subtitle: Option<Box<FHIRString>>,
20492 #[rename_field = "type"]
20493 #[doc = "A high-level category for the plan definition that distinguishes the kinds of systems that would be interested in the plan definition."]
20494 pub type_: Option<Box<CodeableConcept>>,
20495 #[primitive]
20496 #[doc = "The status of this plan definition. Enables tracking the life-cycle of the content."]
20497 pub status: Box<terminology::PublicationStatus>,
20498 #[primitive]
20499 #[doc = "A Boolean value to indicate that this plan definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
20500 pub experimental: Option<Box<FHIRBoolean>>,
20501 # [type_choice_variants (complex = ["subjectCodeableConcept" , "subjectReference"] , primitive = [])]
20502 #[doc = "A code or group definition that describes the intended subject of the plan definition."]
20503 pub subject: Option<PlanDefinitionSubjectTypeChoice>,
20504 #[primitive]
20505 #[doc = "The date (and optionally time) when the plan definition was published. 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 plan definition changes."]
20506 pub date: Option<Box<FHIRDateTime>>,
20507 #[primitive]
20508 #[doc = "The name of the organization or individual that published the plan definition."]
20509 pub publisher: Option<Box<FHIRString>>,
20510 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
20511 pub contact: Option<Vec<Box<ContactDetail>>>,
20512 #[primitive]
20513 #[doc = "A free text natural language description of the plan definition from a consumer's perspective."]
20514 pub description: Option<Box<FHIRMarkdown>>,
20515 #[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 plan definition instances."]
20516 pub useContext: Option<Vec<Box<UsageContext>>>,
20517 #[doc = "A legal or geographic region in which the plan definition is intended to be used."]
20518 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
20519 #[primitive]
20520 #[doc = "Explanation of why this plan definition is needed and why it has been designed as it has."]
20521 pub purpose: Option<Box<FHIRMarkdown>>,
20522 #[primitive]
20523 #[doc = "A detailed description of how the plan definition is used from a clinical perspective."]
20524 pub usage: Option<Box<FHIRString>>,
20525 #[primitive]
20526 #[doc = "A copyright statement relating to the plan definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the plan definition."]
20527 pub copyright: Option<Box<FHIRMarkdown>>,
20528 #[primitive]
20529 #[doc = "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage."]
20530 pub approvalDate: Option<Box<FHIRDate>>,
20531 #[primitive]
20532 #[doc = "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date."]
20533 pub lastReviewDate: Option<Box<FHIRDate>>,
20534 #[doc = "The period during which the plan definition content was or is planned to be in active use."]
20535 pub effectivePeriod: Option<Box<Period>>,
20536 #[doc = "Descriptive topics related to the content of the plan definition. Topics provide a high-level categorization of the definition that can be useful for filtering and searching."]
20537 pub topic: Option<Vec<Box<CodeableConcept>>>,
20538 #[doc = "An individiual or organization primarily involved in the creation and maintenance of the content."]
20539 pub author: Option<Vec<Box<ContactDetail>>>,
20540 #[doc = "An individual or organization primarily responsible for internal coherence of the content."]
20541 pub editor: Option<Vec<Box<ContactDetail>>>,
20542 #[doc = "An individual or organization primarily responsible for review of some aspect of the content."]
20543 pub reviewer: Option<Vec<Box<ContactDetail>>>,
20544 #[doc = "An individual or organization responsible for officially endorsing the content for use in some setting."]
20545 pub endorser: Option<Vec<Box<ContactDetail>>>,
20546 #[doc = "Related artifacts such as additional documentation, justification, or bibliographic references."]
20547 pub relatedArtifact: Option<Vec<Box<RelatedArtifact>>>,
20548 #[primitive]
20549 #[doc = "A reference to a Library resource containing any formal logic used by the plan definition."]
20550 pub library: Option<Vec<Box<FHIRCanonical>>>,
20551 #[doc = "Goals that describe what the activities within the plan are intended to achieve. For example, weight loss, restoring an activity of daily living, obtaining herd immunity via immunization, meeting a process improvement objective, etc."]
20552 pub goal: Option<Vec<PlanDefinitionGoal>>,
20553 #[doc = "An action or group of actions to be taken as part of the plan."]
20554 pub action: Option<Vec<PlanDefinitionAction>>,
20555}
20556#[derive(
20557 Clone,
20558 Reflect,
20559 Debug,
20560 Default,
20561 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20562 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20563)]
20564#[fhir_serialize_type = "complex"]
20565#[doc = "The official certifications, training, and licenses that authorize or otherwise pertain to the provision of care by the practitioner. For example, a medical license issued by a medical board authorizing the practitioner to practice medicine within a certian locality."]
20566pub struct PractitionerQualification {
20567 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
20568 pub id: Option<String>,
20569 #[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 manageable, 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."]
20570 pub extension: Option<Vec<Box<Extension>>>,
20571 #[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 manageable, 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)."]
20572 pub modifierExtension: Option<Vec<Box<Extension>>>,
20573 #[rename_field = "identifier"]
20574 #[doc = "An identifier that applies to this person's qualification in this role."]
20575 pub identifier_: Option<Vec<Box<Identifier>>>,
20576 #[doc = "Coded representation of the qualification."]
20577 pub code: Box<CodeableConcept>,
20578 #[doc = "Period during which the qualification is valid."]
20579 pub period: Option<Box<Period>>,
20580 # [reference (targets = ["Organization"])]
20581 #[doc = "Organization that regulates and issues the qualification."]
20582 pub issuer: Option<Box<Reference>>,
20583}
20584#[derive(
20585 Clone,
20586 Reflect,
20587 Debug,
20588 Default,
20589 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20590 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20591)]
20592#[fhir_serialize_type = "resource"]
20593#[doc = "A person who is directly or indirectly involved in the provisioning of healthcare."]
20594pub struct Practitioner {
20595 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
20596 pub id: Option<String>,
20597 #[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."]
20598 pub meta: Option<Box<Meta>>,
20599 #[primitive]
20600 #[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."]
20601 pub implicitRules: Option<Box<FHIRUri>>,
20602 #[primitive]
20603 #[doc = "The base language in which the resource is written."]
20604 pub language: Option<Box<FHIRCode>>,
20605 #[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."]
20606 pub text: Option<Box<Narrative>>,
20607 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
20608 pub contained: Option<Vec<Box<Resource>>>,
20609 #[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 manageable, 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."]
20610 pub extension: Option<Vec<Box<Extension>>>,
20611 #[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 manageable, 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)."]
20612 pub modifierExtension: Option<Vec<Box<Extension>>>,
20613 #[rename_field = "identifier"]
20614 #[doc = "An identifier that applies to this person in this role."]
20615 pub identifier_: Option<Vec<Box<Identifier>>>,
20616 #[primitive]
20617 #[doc = "Whether this practitioner's record is in active use."]
20618 pub active: Option<Box<FHIRBoolean>>,
20619 #[doc = "The name(s) associated with the practitioner."]
20620 pub name: Option<Vec<Box<HumanName>>>,
20621 #[doc = "A contact detail for the practitioner, e.g. a telephone number or an email address."]
20622 pub telecom: Option<Vec<Box<ContactPoint>>>,
20623 #[doc = "Address(es) of the practitioner that are not role specific (typically home address). \rWork addresses are not typically entered in this property as they are usually role dependent."]
20624 pub address: Option<Vec<Box<Address>>>,
20625 #[primitive]
20626 #[doc = "Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes."]
20627 pub gender: Option<Box<terminology::AdministrativeGender>>,
20628 #[primitive]
20629 #[doc = "The date of birth for the practitioner."]
20630 pub birthDate: Option<Box<FHIRDate>>,
20631 #[doc = "Image of the person."]
20632 pub photo: Option<Vec<Box<Attachment>>>,
20633 #[doc = "The official certifications, training, and licenses that authorize or otherwise pertain to the provision of care by the practitioner. For example, a medical license issued by a medical board authorizing the practitioner to practice medicine within a certian locality."]
20634 pub qualification: Option<Vec<PractitionerQualification>>,
20635 #[doc = "A language the practitioner can use in patient communication."]
20636 pub communication: Option<Vec<Box<CodeableConcept>>>,
20637}
20638#[derive(
20639 Clone,
20640 Reflect,
20641 Debug,
20642 Default,
20643 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20644 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20645)]
20646#[fhir_serialize_type = "complex"]
20647#[doc = "A collection of times the practitioner is available or performing this role at the location and/or healthcareservice."]
20648pub struct PractitionerRoleAvailableTime {
20649 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
20650 pub id: Option<String>,
20651 #[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 manageable, 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."]
20652 pub extension: Option<Vec<Box<Extension>>>,
20653 #[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 manageable, 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)."]
20654 pub modifierExtension: Option<Vec<Box<Extension>>>,
20655 #[primitive]
20656 #[doc = "Indicates which days of the week are available between the start and end Times."]
20657 pub daysOfWeek: Option<Vec<Box<terminology::DaysOfWeek>>>,
20658 #[primitive]
20659 #[doc = "Is this always available? (hence times are irrelevant) e.g. 24 hour service."]
20660 pub allDay: Option<Box<FHIRBoolean>>,
20661 #[primitive]
20662 #[doc = "The opening time of day. Note: If the AllDay flag is set, then this time is ignored."]
20663 pub availableStartTime: Option<Box<FHIRTime>>,
20664 #[primitive]
20665 #[doc = "The closing time of day. Note: If the AllDay flag is set, then this time is ignored."]
20666 pub availableEndTime: Option<Box<FHIRTime>>,
20667}
20668#[derive(
20669 Clone,
20670 Reflect,
20671 Debug,
20672 Default,
20673 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20674 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20675)]
20676#[fhir_serialize_type = "complex"]
20677#[doc = "The practitioner is not available or performing this role during this period of time due to the provided reason."]
20678pub struct PractitionerRoleNotAvailable {
20679 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
20680 pub id: Option<String>,
20681 #[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 manageable, 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."]
20682 pub extension: Option<Vec<Box<Extension>>>,
20683 #[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 manageable, 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)."]
20684 pub modifierExtension: Option<Vec<Box<Extension>>>,
20685 #[primitive]
20686 #[doc = "The reason that can be presented to the user as to why this time is not available."]
20687 pub description: Box<FHIRString>,
20688 #[doc = "Service is not available (seasonally or for a public holiday) from this date."]
20689 pub during: Option<Box<Period>>,
20690}
20691#[derive(
20692 Clone,
20693 Reflect,
20694 Debug,
20695 Default,
20696 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20697 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20698)]
20699#[fhir_serialize_type = "resource"]
20700#[doc = "A specific set of Roles/Locations/specialties/services that a practitioner may perform at an organization for a period of time."]
20701pub struct PractitionerRole {
20702 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
20703 pub id: Option<String>,
20704 #[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."]
20705 pub meta: Option<Box<Meta>>,
20706 #[primitive]
20707 #[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."]
20708 pub implicitRules: Option<Box<FHIRUri>>,
20709 #[primitive]
20710 #[doc = "The base language in which the resource is written."]
20711 pub language: Option<Box<FHIRCode>>,
20712 #[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."]
20713 pub text: Option<Box<Narrative>>,
20714 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
20715 pub contained: Option<Vec<Box<Resource>>>,
20716 #[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 manageable, 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."]
20717 pub extension: Option<Vec<Box<Extension>>>,
20718 #[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 manageable, 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)."]
20719 pub modifierExtension: Option<Vec<Box<Extension>>>,
20720 #[rename_field = "identifier"]
20721 #[doc = "Business Identifiers that are specific to a role/location."]
20722 pub identifier_: Option<Vec<Box<Identifier>>>,
20723 #[primitive]
20724 #[doc = "Whether this practitioner role record is in active use."]
20725 pub active: Option<Box<FHIRBoolean>>,
20726 #[doc = "The period during which the person is authorized to act as a practitioner in these role(s) for the organization."]
20727 pub period: Option<Box<Period>>,
20728 # [reference (targets = ["Practitioner"])]
20729 #[doc = "Practitioner that is able to provide the defined services for the organization."]
20730 pub practitioner: Option<Box<Reference>>,
20731 # [reference (targets = ["Organization"])]
20732 #[doc = "The organization where the Practitioner performs the roles associated."]
20733 pub organization: Option<Box<Reference>>,
20734 #[doc = "Roles which this practitioner is authorized to perform for the organization."]
20735 pub code: Option<Vec<Box<CodeableConcept>>>,
20736 #[doc = "Specific specialty of the practitioner."]
20737 pub specialty: Option<Vec<Box<CodeableConcept>>>,
20738 # [reference (targets = ["Location"])]
20739 #[doc = "The location(s) at which this practitioner provides care."]
20740 pub location: Option<Vec<Box<Reference>>>,
20741 # [reference (targets = ["HealthcareService"])]
20742 #[doc = "The list of healthcare services that this worker provides for this role's Organization/Location(s)."]
20743 pub healthcareService: Option<Vec<Box<Reference>>>,
20744 #[doc = "Contact details that are specific to the role/location/service."]
20745 pub telecom: Option<Vec<Box<ContactPoint>>>,
20746 #[doc = "A collection of times the practitioner is available or performing this role at the location and/or healthcareservice."]
20747 pub availableTime: Option<Vec<PractitionerRoleAvailableTime>>,
20748 #[doc = "The practitioner is not available or performing this role during this period of time due to the provided reason."]
20749 pub notAvailable: Option<Vec<PractitionerRoleNotAvailable>>,
20750 #[primitive]
20751 #[doc = "A description of site availability exceptions, e.g. public holiday availability. Succinctly describing all possible exceptions to normal site availability as details in the available Times and not available Times."]
20752 pub availabilityExceptions: Option<Box<FHIRString>>,
20753 # [reference (targets = ["Endpoint"])]
20754 #[doc = "Technical endpoints providing access to services operated for the practitioner with this role."]
20755 pub endpoint: Option<Vec<Box<Reference>>>,
20756}
20757#[derive(
20758 Clone,
20759 Reflect,
20760 Debug,
20761 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20762 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20763)]
20764#[fhir_serialize_type = "typechoice"]
20765#[type_choice_field_name = "performed"]
20766pub enum ProcedurePerformedTypeChoice {
20767 DateTime(Box<FHIRDateTime>),
20768 Period(Box<Period>),
20769 String(Box<FHIRString>),
20770 Age(Box<Age>),
20771 Range(Box<Range>),
20772}
20773impl Default for ProcedurePerformedTypeChoice {
20774 fn default() -> Self {
20775 ProcedurePerformedTypeChoice::DateTime(Box::new(Default::default()))
20776 }
20777}
20778#[derive(
20779 Clone,
20780 Reflect,
20781 Debug,
20782 Default,
20783 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20784 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20785)]
20786#[fhir_serialize_type = "complex"]
20787#[doc = "Limited to \"real\" people rather than equipment."]
20788pub struct ProcedurePerformer {
20789 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
20790 pub id: Option<String>,
20791 #[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 manageable, 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."]
20792 pub extension: Option<Vec<Box<Extension>>>,
20793 #[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 manageable, 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)."]
20794 pub modifierExtension: Option<Vec<Box<Extension>>>,
20795 #[doc = "Distinguishes the type of involvement of the performer in the procedure. For example, surgeon, anaesthetist, endoscopist."]
20796 pub function: Option<Box<CodeableConcept>>,
20797 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization" , "Patient" , "RelatedPerson" , "Device"])]
20798 #[doc = "The practitioner who was involved in the procedure."]
20799 pub actor: Box<Reference>,
20800 # [reference (targets = ["Organization"])]
20801 #[doc = "The organization the device or practitioner was acting on behalf of."]
20802 pub onBehalfOf: Option<Box<Reference>>,
20803}
20804#[derive(
20805 Clone,
20806 Reflect,
20807 Debug,
20808 Default,
20809 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20810 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20811)]
20812#[fhir_serialize_type = "complex"]
20813#[doc = "A device that is implanted, removed or otherwise manipulated (calibration, battery replacement, fitting a prosthesis, attaching a wound-vac, etc.) as a focal portion of the Procedure."]
20814pub struct ProcedureFocalDevice {
20815 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
20816 pub id: Option<String>,
20817 #[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 manageable, 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."]
20818 pub extension: Option<Vec<Box<Extension>>>,
20819 #[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 manageable, 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)."]
20820 pub modifierExtension: Option<Vec<Box<Extension>>>,
20821 #[doc = "The kind of change that happened to the device during the procedure."]
20822 pub action: Option<Box<CodeableConcept>>,
20823 # [reference (targets = ["Device"])]
20824 #[doc = "The device that was manipulated (changed) during the procedure."]
20825 pub manipulated: Box<Reference>,
20826}
20827#[derive(
20828 Clone,
20829 Reflect,
20830 Debug,
20831 Default,
20832 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20833 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20834)]
20835#[fhir_serialize_type = "resource"]
20836#[doc = "An action that is or was performed on or for a patient. This can be a physical intervention like an operation, or less invasive like long term services, counseling, or hypnotherapy."]
20837pub struct Procedure {
20838 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
20839 pub id: Option<String>,
20840 #[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."]
20841 pub meta: Option<Box<Meta>>,
20842 #[primitive]
20843 #[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."]
20844 pub implicitRules: Option<Box<FHIRUri>>,
20845 #[primitive]
20846 #[doc = "The base language in which the resource is written."]
20847 pub language: Option<Box<FHIRCode>>,
20848 #[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."]
20849 pub text: Option<Box<Narrative>>,
20850 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
20851 pub contained: Option<Vec<Box<Resource>>>,
20852 #[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 manageable, 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."]
20853 pub extension: Option<Vec<Box<Extension>>>,
20854 #[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 manageable, 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)."]
20855 pub modifierExtension: Option<Vec<Box<Extension>>>,
20856 #[rename_field = "identifier"]
20857 #[doc = "Business identifiers assigned to this procedure by the performer or other systems which remain constant as the resource is updated and is propagated from server to server."]
20858 pub identifier_: Option<Vec<Box<Identifier>>>,
20859 #[primitive]
20860 #[doc = "The URL pointing to a FHIR-defined protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure."]
20861 pub instantiatesCanonical: Option<Vec<Box<FHIRCanonical>>>,
20862 #[primitive]
20863 #[doc = "The URL pointing to an externally maintained protocol, guideline, order set or other definition that is adhered to in whole or in part by this Procedure."]
20864 pub instantiatesUri: Option<Vec<Box<FHIRUri>>>,
20865 # [reference (targets = ["CarePlan" , "ServiceRequest"])]
20866 #[doc = "A reference to a resource that contains details of the request for this procedure."]
20867 pub basedOn: Option<Vec<Box<Reference>>>,
20868 # [reference (targets = ["Procedure" , "Observation" , "MedicationAdministration"])]
20869 #[doc = "A larger event of which this particular procedure is a component or step."]
20870 pub partOf: Option<Vec<Box<Reference>>>,
20871 #[primitive]
20872 #[doc = "A code specifying the state of the procedure. Generally, this will be the in-progress or completed state."]
20873 pub status: Box<terminology::EventStatus>,
20874 #[doc = "Captures the reason for the current state of the procedure."]
20875 pub statusReason: Option<Box<CodeableConcept>>,
20876 #[doc = "A code that classifies the procedure for searching, sorting and display purposes (e.g. \"Surgical Procedure\")."]
20877 pub category: Option<Box<CodeableConcept>>,
20878 #[doc = "The specific procedure that is performed. Use text if the exact nature of the procedure cannot be coded (e.g. \"Laparoscopic Appendectomy\")."]
20879 pub code: Option<Box<CodeableConcept>>,
20880 # [reference (targets = ["Patient" , "Group"])]
20881 #[doc = "The person, animal or group on which the procedure was performed."]
20882 pub subject: Box<Reference>,
20883 # [reference (targets = ["Encounter"])]
20884 #[doc = "The Encounter during which this Procedure was created or performed or to which the creation of this record is tightly associated."]
20885 pub encounter: Option<Box<Reference>>,
20886 # [type_choice_variants (complex = ["performedPeriod" , "performedAge" , "performedRange"] , primitive = ["performedDateTime" , "performedString"])]
20887 #[doc = "Estimated or actual date, date-time, period, or age when the procedure was performed. Allows a period to support complex procedures that span more than one date, and also allows for the length of the procedure to be captured."]
20888 pub performed: Option<ProcedurePerformedTypeChoice>,
20889 # [reference (targets = ["Patient" , "RelatedPerson" , "Practitioner" , "PractitionerRole"])]
20890 #[doc = "Individual who recorded the record and takes responsibility for its content."]
20891 pub recorder: Option<Box<Reference>>,
20892 # [reference (targets = ["Patient" , "RelatedPerson" , "Practitioner" , "PractitionerRole"])]
20893 #[doc = "Individual who is making the procedure statement."]
20894 pub asserter: Option<Box<Reference>>,
20895 #[doc = "Limited to \"real\" people rather than equipment."]
20896 pub performer: Option<Vec<ProcedurePerformer>>,
20897 # [reference (targets = ["Location"])]
20898 #[doc = "The location where the procedure actually happened. E.g. a newborn at home, a tracheostomy at a restaurant."]
20899 pub location: Option<Box<Reference>>,
20900 #[doc = "The coded reason why the procedure was performed. This may be a coded entity of some type, or may simply be present as text."]
20901 pub reasonCode: Option<Vec<Box<CodeableConcept>>>,
20902 # [reference (targets = ["Condition" , "Observation" , "Procedure" , "DiagnosticReport" , "DocumentReference"])]
20903 #[doc = "The justification of why the procedure was performed."]
20904 pub reasonReference: Option<Vec<Box<Reference>>>,
20905 #[doc = "Detailed and structured anatomical location information. Multiple locations are allowed - e.g. multiple punch biopsies of a lesion."]
20906 pub bodySite: Option<Vec<Box<CodeableConcept>>>,
20907 #[doc = "The outcome of the procedure - did it resolve the reasons for the procedure being performed?"]
20908 pub outcome: Option<Box<CodeableConcept>>,
20909 # [reference (targets = ["DiagnosticReport" , "DocumentReference" , "Composition"])]
20910 #[doc = "This could be a histology result, pathology report, surgical report, etc."]
20911 pub report: Option<Vec<Box<Reference>>>,
20912 #[doc = "Any complications that occurred during the procedure, or in the immediate post-performance period. These are generally tracked separately from the notes, which will typically describe the procedure itself rather than any 'post procedure' issues."]
20913 pub complication: Option<Vec<Box<CodeableConcept>>>,
20914 # [reference (targets = ["Condition"])]
20915 #[doc = "Any complications that occurred during the procedure, or in the immediate post-performance period."]
20916 pub complicationDetail: Option<Vec<Box<Reference>>>,
20917 #[doc = "If the procedure required specific follow up - e.g. removal of sutures. The follow up may be represented as a simple note or could potentially be more complex, in which case the CarePlan resource can be used."]
20918 pub followUp: Option<Vec<Box<CodeableConcept>>>,
20919 #[doc = "Any other notes and comments about the procedure."]
20920 pub note: Option<Vec<Box<Annotation>>>,
20921 #[doc = "A device that is implanted, removed or otherwise manipulated (calibration, battery replacement, fitting a prosthesis, attaching a wound-vac, etc.) as a focal portion of the Procedure."]
20922 pub focalDevice: Option<Vec<ProcedureFocalDevice>>,
20923 # [reference (targets = ["Device" , "Medication" , "Substance"])]
20924 #[doc = "Identifies medications, devices and any other substance used as part of the procedure."]
20925 pub usedReference: Option<Vec<Box<Reference>>>,
20926 #[doc = "Identifies coded items that were used as part of the procedure."]
20927 pub usedCode: Option<Vec<Box<CodeableConcept>>>,
20928}
20929#[derive(
20930 Clone,
20931 Reflect,
20932 Debug,
20933 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20934 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20935)]
20936#[fhir_serialize_type = "typechoice"]
20937#[type_choice_field_name = "occurred"]
20938pub enum ProvenanceOccurredTypeChoice {
20939 Period(Box<Period>),
20940 DateTime(Box<FHIRDateTime>),
20941}
20942impl Default for ProvenanceOccurredTypeChoice {
20943 fn default() -> Self {
20944 ProvenanceOccurredTypeChoice::Period(Box::new(Default::default()))
20945 }
20946}
20947#[derive(
20948 Clone,
20949 Reflect,
20950 Debug,
20951 Default,
20952 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20953 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20954)]
20955#[fhir_serialize_type = "complex"]
20956#[doc = "An actor taking a role in an activity for which it can be assigned some degree of responsibility for the activity taking place."]
20957pub struct ProvenanceAgent {
20958 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
20959 pub id: Option<String>,
20960 #[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 manageable, 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."]
20961 pub extension: Option<Vec<Box<Extension>>>,
20962 #[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 manageable, 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)."]
20963 pub modifierExtension: Option<Vec<Box<Extension>>>,
20964 #[rename_field = "type"]
20965 #[doc = "The participation the agent had with respect to the activity."]
20966 pub type_: Option<Box<CodeableConcept>>,
20967 #[doc = "The function of the agent with respect to the activity. The security role enabling the agent with respect to the activity."]
20968 pub role: Option<Vec<Box<CodeableConcept>>>,
20969 # [reference (targets = ["Practitioner" , "PractitionerRole" , "RelatedPerson" , "Patient" , "Device" , "Organization"])]
20970 #[doc = "The individual, device or organization that participated in the event."]
20971 pub who: Box<Reference>,
20972 # [reference (targets = ["Practitioner" , "PractitionerRole" , "RelatedPerson" , "Patient" , "Device" , "Organization"])]
20973 #[doc = "The individual, device, or organization for whom the change was made."]
20974 pub onBehalfOf: Option<Box<Reference>>,
20975}
20976#[derive(
20977 Clone,
20978 Reflect,
20979 Debug,
20980 Default,
20981 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
20982 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
20983)]
20984#[fhir_serialize_type = "complex"]
20985#[doc = "An entity used in this activity."]
20986pub struct ProvenanceEntity {
20987 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
20988 pub id: Option<String>,
20989 #[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 manageable, 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."]
20990 pub extension: Option<Vec<Box<Extension>>>,
20991 #[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 manageable, 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)."]
20992 pub modifierExtension: Option<Vec<Box<Extension>>>,
20993 #[primitive]
20994 #[doc = "How the entity was used during the activity."]
20995 pub role: Box<terminology::ProvenanceEntityRole>,
20996 # [reference (targets = ["Resource"])]
20997 #[doc = "Identity of the Entity used. May be a logical or physical uri and maybe absolute or relative."]
20998 pub what: Box<Reference>,
20999 #[doc = "The entity is attributed to an agent to express the agent's responsibility for that entity, possibly along with other agents. This description can be understood as shorthand for saying that the agent was responsible for the activity which generated the entity."]
21000 pub agent: Option<Vec<ProvenanceAgent>>,
21001}
21002#[derive(
21003 Clone,
21004 Reflect,
21005 Debug,
21006 Default,
21007 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21008 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21009)]
21010#[fhir_serialize_type = "resource"]
21011#[doc = "Provenance of a resource is a record that describes entities and processes involved in producing and delivering or otherwise influencing that resource. Provenance provides a critical foundation for assessing authenticity, enabling trust, and allowing reproducibility. Provenance assertions are a form of contextual metadata and can themselves become important records with their own provenance. Provenance statement indicates clinical significance in terms of confidence in authenticity, reliability, and trustworthiness, integrity, and stage in lifecycle (e.g. Document Completion - has the artifact been legally authenticated), all of which may impact security, privacy, and trust policies."]
21012pub struct Provenance {
21013 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
21014 pub id: Option<String>,
21015 #[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."]
21016 pub meta: Option<Box<Meta>>,
21017 #[primitive]
21018 #[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."]
21019 pub implicitRules: Option<Box<FHIRUri>>,
21020 #[primitive]
21021 #[doc = "The base language in which the resource is written."]
21022 pub language: Option<Box<FHIRCode>>,
21023 #[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."]
21024 pub text: Option<Box<Narrative>>,
21025 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
21026 pub contained: Option<Vec<Box<Resource>>>,
21027 #[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 manageable, 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."]
21028 pub extension: Option<Vec<Box<Extension>>>,
21029 #[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 manageable, 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)."]
21030 pub modifierExtension: Option<Vec<Box<Extension>>>,
21031 #[cardinality(min = 1usize)]
21032 # [reference (targets = ["Resource"])]
21033 #[doc = "The Reference(s) that were generated or updated by the activity described in this resource. A provenance can point to more than one target if multiple resources were created/updated by the same activity."]
21034 pub target: Vec<Box<Reference>>,
21035 # [type_choice_variants (complex = ["occurredPeriod"] , primitive = ["occurredDateTime"])]
21036 #[doc = "The period during which the activity occurred."]
21037 pub occurred: Option<ProvenanceOccurredTypeChoice>,
21038 #[primitive]
21039 #[doc = "The instant of time at which the activity was recorded."]
21040 pub recorded: Box<FHIRInstant>,
21041 #[primitive]
21042 #[doc = "Policy or plan the activity was defined by. Typically, a single activity may have multiple applicable policy documents, such as patient consent, guarantor funding, etc."]
21043 pub policy: Option<Vec<Box<FHIRUri>>>,
21044 # [reference (targets = ["Location"])]
21045 #[doc = "Where the activity occurred, if relevant."]
21046 pub location: Option<Box<Reference>>,
21047 #[doc = "The reason that the activity was taking place."]
21048 pub reason: Option<Vec<Box<CodeableConcept>>>,
21049 #[doc = "An activity is something that occurs over a period of time and acts upon or with entities; it may include consuming, processing, transforming, modifying, relocating, using, or generating entities."]
21050 pub activity: Option<Box<CodeableConcept>>,
21051 #[cardinality(min = 1usize)]
21052 #[doc = "An actor taking a role in an activity for which it can be assigned some degree of responsibility for the activity taking place."]
21053 pub agent: Vec<ProvenanceAgent>,
21054 #[doc = "An entity used in this activity."]
21055 pub entity: Option<Vec<ProvenanceEntity>>,
21056 #[doc = "A digital signature on the target Reference(s). The signer should match a Provenance.agent. The purpose of the signature is indicated."]
21057 pub signature: Option<Vec<Box<Signature>>>,
21058}
21059#[derive(
21060 Clone,
21061 Reflect,
21062 Debug,
21063 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21064 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21065)]
21066#[fhir_serialize_type = "typechoice"]
21067#[type_choice_field_name = "answer"]
21068pub enum QuestionnaireItemEnableWhenAnswerTypeChoice {
21069 Boolean(Box<FHIRBoolean>),
21070 Decimal(Box<FHIRDecimal>),
21071 Integer(Box<FHIRInteger>),
21072 Date(Box<FHIRDate>),
21073 DateTime(Box<FHIRDateTime>),
21074 Time(Box<FHIRTime>),
21075 String(Box<FHIRString>),
21076 Coding(Box<Coding>),
21077 Quantity(Box<Quantity>),
21078 # [reference (targets = ["Resource"])]
21079 Reference(Box<Reference>),
21080}
21081impl Default for QuestionnaireItemEnableWhenAnswerTypeChoice {
21082 fn default() -> Self {
21083 QuestionnaireItemEnableWhenAnswerTypeChoice::Boolean(Box::new(Default::default()))
21084 }
21085}
21086#[derive(
21087 Clone,
21088 Reflect,
21089 Debug,
21090 Default,
21091 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21092 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21093)]
21094#[fhir_serialize_type = "complex"]
21095#[doc = "A constraint indicating that this item should only be enabled (displayed/allow answers to be captured) when the specified condition is true."]
21096pub struct QuestionnaireItemEnableWhen {
21097 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
21098 pub id: Option<String>,
21099 #[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 manageable, 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."]
21100 pub extension: Option<Vec<Box<Extension>>>,
21101 #[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 manageable, 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)."]
21102 pub modifierExtension: Option<Vec<Box<Extension>>>,
21103 #[primitive]
21104 #[doc = "The linkId for the question whose answer (or lack of answer) governs whether this item is enabled."]
21105 pub question: Box<FHIRString>,
21106 #[primitive]
21107 #[doc = "Specifies the criteria by which the question is enabled."]
21108 pub operator: Box<terminology::QuestionnaireEnableOperator>,
21109 # [type_choice_variants (complex = ["answerCoding" , "answerQuantity" , "answerReference"] , primitive = ["answerBoolean" , "answerDecimal" , "answerInteger" , "answerDate" , "answerDateTime" , "answerTime" , "answerString"])]
21110 #[doc = "A value that the referenced question is tested using the specified operator in order for the item to be enabled."]
21111 pub answer: QuestionnaireItemEnableWhenAnswerTypeChoice,
21112}
21113#[derive(
21114 Clone,
21115 Reflect,
21116 Debug,
21117 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21118 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21119)]
21120#[fhir_serialize_type = "typechoice"]
21121#[type_choice_field_name = "value"]
21122pub enum QuestionnaireItemAnswerOptionValueTypeChoice {
21123 Integer(Box<FHIRInteger>),
21124 Date(Box<FHIRDate>),
21125 Time(Box<FHIRTime>),
21126 String(Box<FHIRString>),
21127 Coding(Box<Coding>),
21128 # [reference (targets = ["Resource"])]
21129 Reference(Box<Reference>),
21130}
21131impl Default for QuestionnaireItemAnswerOptionValueTypeChoice {
21132 fn default() -> Self {
21133 QuestionnaireItemAnswerOptionValueTypeChoice::Integer(Box::new(Default::default()))
21134 }
21135}
21136#[derive(
21137 Clone,
21138 Reflect,
21139 Debug,
21140 Default,
21141 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21142 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21143)]
21144#[fhir_serialize_type = "complex"]
21145#[doc = "One of the permitted answers for a \"choice\" or \"open-choice\" question."]
21146pub struct QuestionnaireItemAnswerOption {
21147 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
21148 pub id: Option<String>,
21149 #[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 manageable, 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."]
21150 pub extension: Option<Vec<Box<Extension>>>,
21151 #[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 manageable, 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)."]
21152 pub modifierExtension: Option<Vec<Box<Extension>>>,
21153 # [type_choice_variants (complex = ["valueCoding" , "valueReference"] , primitive = ["valueInteger" , "valueDate" , "valueTime" , "valueString"])]
21154 #[doc = "A potential answer that's allowed as the answer to this question."]
21155 pub value: QuestionnaireItemAnswerOptionValueTypeChoice,
21156 #[primitive]
21157 #[doc = "Indicates whether the answer value is selected when the list of possible answers is initially shown."]
21158 pub initialSelected: Option<Box<FHIRBoolean>>,
21159}
21160#[derive(
21161 Clone,
21162 Reflect,
21163 Debug,
21164 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21165 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21166)]
21167#[fhir_serialize_type = "typechoice"]
21168#[type_choice_field_name = "value"]
21169pub enum QuestionnaireItemInitialValueTypeChoice {
21170 Boolean(Box<FHIRBoolean>),
21171 Decimal(Box<FHIRDecimal>),
21172 Integer(Box<FHIRInteger>),
21173 Date(Box<FHIRDate>),
21174 DateTime(Box<FHIRDateTime>),
21175 Time(Box<FHIRTime>),
21176 String(Box<FHIRString>),
21177 Uri(Box<FHIRUri>),
21178 Attachment(Box<Attachment>),
21179 Coding(Box<Coding>),
21180 Quantity(Box<Quantity>),
21181 # [reference (targets = ["Resource"])]
21182 Reference(Box<Reference>),
21183}
21184impl Default for QuestionnaireItemInitialValueTypeChoice {
21185 fn default() -> Self {
21186 QuestionnaireItemInitialValueTypeChoice::Boolean(Box::new(Default::default()))
21187 }
21188}
21189#[derive(
21190 Clone,
21191 Reflect,
21192 Debug,
21193 Default,
21194 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21195 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21196)]
21197#[fhir_serialize_type = "complex"]
21198#[doc = "One or more values that should be pre-populated in the answer when initially rendering the questionnaire for user input."]
21199pub struct QuestionnaireItemInitial {
21200 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
21201 pub id: Option<String>,
21202 #[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 manageable, 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."]
21203 pub extension: Option<Vec<Box<Extension>>>,
21204 #[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 manageable, 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)."]
21205 pub modifierExtension: Option<Vec<Box<Extension>>>,
21206 # [type_choice_variants (complex = ["valueAttachment" , "valueCoding" , "valueQuantity" , "valueReference"] , primitive = ["valueBoolean" , "valueDecimal" , "valueInteger" , "valueDate" , "valueDateTime" , "valueTime" , "valueString" , "valueUri"])]
21207 #[doc = "The actual value to for an initial answer."]
21208 pub value: QuestionnaireItemInitialValueTypeChoice,
21209}
21210#[derive(
21211 Clone,
21212 Reflect,
21213 Debug,
21214 Default,
21215 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21216 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21217)]
21218#[fhir_serialize_type = "complex"]
21219#[doc = "A particular question, question grouping or display text that is part of the questionnaire."]
21220pub struct QuestionnaireItem {
21221 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
21222 pub id: Option<String>,
21223 #[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 manageable, 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."]
21224 pub extension: Option<Vec<Box<Extension>>>,
21225 #[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 manageable, 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)."]
21226 pub modifierExtension: Option<Vec<Box<Extension>>>,
21227 #[primitive]
21228 #[doc = "An identifier that is unique within the Questionnaire allowing linkage to the equivalent item in a QuestionnaireResponse resource."]
21229 pub linkId: Box<FHIRString>,
21230 #[primitive]
21231 #[doc = "This element is a URI that refers to an [ElementDefinition](elementdefinition.html) that provides information about this item, including information that might otherwise be included in the instance of the Questionnaire resource. A detailed description of the construction of the URI is shown in Comments, below. If this element is present then the following element values MAY be derived from the Element Definition if the corresponding elements of this Questionnaire resource instance have no value:\n\n* code (ElementDefinition.code) \n* type (ElementDefinition.type) \n* required (ElementDefinition.min) \n* repeats (ElementDefinition.max) \n* maxLength (ElementDefinition.maxLength) \n* answerValueSet (ElementDefinition.binding)\n* options (ElementDefinition.binding)."]
21232 pub definition: Option<Box<FHIRUri>>,
21233 #[doc = "A terminology code that corresponds to this group or question (e.g. a code from LOINC, which defines many questions and answers)."]
21234 pub code: Option<Vec<Box<Coding>>>,
21235 #[primitive]
21236 #[doc = "A short label for a particular group, question or set of display text within the questionnaire used for reference by the individual completing the questionnaire."]
21237 pub prefix: Option<Box<FHIRString>>,
21238 #[primitive]
21239 #[doc = "The name of a section, the text of a question or text content for a display item."]
21240 pub text: Option<Box<FHIRString>>,
21241 #[rename_field = "type"]
21242 #[primitive]
21243 #[doc = "The type of questionnaire item this is - whether text for display, a grouping of other items or a particular type of data to be captured (string, integer, coded choice, etc.)."]
21244 pub type_: Box<terminology::ItemType>,
21245 #[doc = "A constraint indicating that this item should only be enabled (displayed/allow answers to be captured) when the specified condition is true."]
21246 pub enableWhen: Option<Vec<QuestionnaireItemEnableWhen>>,
21247 #[primitive]
21248 #[doc = "Controls how multiple enableWhen values are interpreted - whether all or any must be true."]
21249 pub enableBehavior: Option<Box<terminology::QuestionnaireEnableBehavior>>,
21250 #[primitive]
21251 #[doc = "An indication, if true, that the item must be present in a \"completed\" QuestionnaireResponse. If false, the item may be skipped when answering the questionnaire."]
21252 pub required: Option<Box<FHIRBoolean>>,
21253 #[primitive]
21254 #[doc = "An indication, if true, that the item may occur multiple times in the response, collecting multiple answers for questions or multiple sets of answers for groups."]
21255 pub repeats: Option<Box<FHIRBoolean>>,
21256 #[primitive]
21257 #[doc = "An indication, when true, that the value cannot be changed by a human respondent to the Questionnaire."]
21258 pub readOnly: Option<Box<FHIRBoolean>>,
21259 #[primitive]
21260 #[doc = "The maximum number of characters that are permitted in the answer to be considered a \"valid\" QuestionnaireResponse."]
21261 pub maxLength: Option<Box<FHIRInteger>>,
21262 #[primitive]
21263 #[doc = "A reference to a value set containing a list of codes representing permitted answers for a \"choice\" or \"open-choice\" question."]
21264 pub answerValueSet: Option<Box<FHIRCanonical>>,
21265 #[doc = "One of the permitted answers for a \"choice\" or \"open-choice\" question."]
21266 pub answerOption: Option<Vec<QuestionnaireItemAnswerOption>>,
21267 #[doc = "One or more values that should be pre-populated in the answer when initially rendering the questionnaire for user input."]
21268 pub initial: Option<Vec<QuestionnaireItemInitial>>,
21269 #[doc = "Text, questions and other groups to be nested beneath a question or group."]
21270 pub item: Option<Vec<QuestionnaireItem>>,
21271}
21272#[derive(
21273 Clone,
21274 Reflect,
21275 Debug,
21276 Default,
21277 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21278 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21279)]
21280#[fhir_serialize_type = "resource"]
21281#[doc = "A structured set of questions intended to guide the collection of answers from end-users. Questionnaires provide detailed control over order, presentation, phraseology and grouping to allow coherent, consistent data collection."]
21282pub struct Questionnaire {
21283 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
21284 pub id: Option<String>,
21285 #[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."]
21286 pub meta: Option<Box<Meta>>,
21287 #[primitive]
21288 #[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."]
21289 pub implicitRules: Option<Box<FHIRUri>>,
21290 #[primitive]
21291 #[doc = "The base language in which the resource is written."]
21292 pub language: Option<Box<FHIRCode>>,
21293 #[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."]
21294 pub text: Option<Box<Narrative>>,
21295 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
21296 pub contained: Option<Vec<Box<Resource>>>,
21297 #[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 manageable, 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."]
21298 pub extension: Option<Vec<Box<Extension>>>,
21299 #[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 manageable, 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)."]
21300 pub modifierExtension: Option<Vec<Box<Extension>>>,
21301 #[primitive]
21302 #[doc = "An absolute URI that is used to identify this questionnaire 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 at which an authoritative instance of this questionnaire is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the questionnaire is stored on different servers."]
21303 pub url: Option<Box<FHIRUri>>,
21304 #[rename_field = "identifier"]
21305 #[doc = "A formal identifier that is used to identify this questionnaire when it is represented in other formats, or referenced in a specification, model, design or an instance."]
21306 pub identifier_: Option<Vec<Box<Identifier>>>,
21307 #[primitive]
21308 #[doc = "The identifier that is used to identify this version of the questionnaire when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the questionnaire 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."]
21309 pub version: Option<Box<FHIRString>>,
21310 #[primitive]
21311 #[doc = "A natural language name identifying the questionnaire. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
21312 pub name: Option<Box<FHIRString>>,
21313 #[primitive]
21314 #[doc = "A short, descriptive, user-friendly title for the questionnaire."]
21315 pub title: Option<Box<FHIRString>>,
21316 #[primitive]
21317 #[doc = "The URL of a Questionnaire that this Questionnaire is based on."]
21318 pub derivedFrom: Option<Vec<Box<FHIRCanonical>>>,
21319 #[primitive]
21320 #[doc = "The status of this questionnaire. Enables tracking the life-cycle of the content."]
21321 pub status: Box<terminology::PublicationStatus>,
21322 #[primitive]
21323 #[doc = "A Boolean value to indicate that this questionnaire is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
21324 pub experimental: Option<Box<FHIRBoolean>>,
21325 #[primitive]
21326 #[doc = "The types of subjects that can be the subject of responses created for the questionnaire."]
21327 pub subjectType: Option<Vec<Box<terminology::ResourceTypes>>>,
21328 #[primitive]
21329 #[doc = "The date (and optionally time) when the questionnaire was published. 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 questionnaire changes."]
21330 pub date: Option<Box<FHIRDateTime>>,
21331 #[primitive]
21332 #[doc = "The name of the organization or individual that published the questionnaire."]
21333 pub publisher: Option<Box<FHIRString>>,
21334 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
21335 pub contact: Option<Vec<Box<ContactDetail>>>,
21336 #[primitive]
21337 #[doc = "A free text natural language description of the questionnaire from a consumer's perspective."]
21338 pub description: Option<Box<FHIRMarkdown>>,
21339 #[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 questionnaire instances."]
21340 pub useContext: Option<Vec<Box<UsageContext>>>,
21341 #[doc = "A legal or geographic region in which the questionnaire is intended to be used."]
21342 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
21343 #[primitive]
21344 #[doc = "Explanation of why this questionnaire is needed and why it has been designed as it has."]
21345 pub purpose: Option<Box<FHIRMarkdown>>,
21346 #[primitive]
21347 #[doc = "A copyright statement relating to the questionnaire and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the questionnaire."]
21348 pub copyright: Option<Box<FHIRMarkdown>>,
21349 #[primitive]
21350 #[doc = "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage."]
21351 pub approvalDate: Option<Box<FHIRDate>>,
21352 #[primitive]
21353 #[doc = "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date."]
21354 pub lastReviewDate: Option<Box<FHIRDate>>,
21355 #[doc = "The period during which the questionnaire content was or is planned to be in active use."]
21356 pub effectivePeriod: Option<Box<Period>>,
21357 #[doc = "An identifier for this question or group of questions in a particular terminology such as LOINC."]
21358 pub code: Option<Vec<Box<Coding>>>,
21359 #[doc = "A particular question, question grouping or display text that is part of the questionnaire."]
21360 pub item: Option<Vec<QuestionnaireItem>>,
21361}
21362#[derive(
21363 Clone,
21364 Reflect,
21365 Debug,
21366 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21367 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21368)]
21369#[fhir_serialize_type = "typechoice"]
21370#[type_choice_field_name = "value"]
21371pub enum QuestionnaireResponseItemAnswerValueTypeChoice {
21372 Boolean(Box<FHIRBoolean>),
21373 Decimal(Box<FHIRDecimal>),
21374 Integer(Box<FHIRInteger>),
21375 Date(Box<FHIRDate>),
21376 DateTime(Box<FHIRDateTime>),
21377 Time(Box<FHIRTime>),
21378 String(Box<FHIRString>),
21379 Uri(Box<FHIRUri>),
21380 Attachment(Box<Attachment>),
21381 Coding(Box<Coding>),
21382 Quantity(Box<Quantity>),
21383 # [reference (targets = ["Resource"])]
21384 Reference(Box<Reference>),
21385}
21386impl Default for QuestionnaireResponseItemAnswerValueTypeChoice {
21387 fn default() -> Self {
21388 QuestionnaireResponseItemAnswerValueTypeChoice::Boolean(Box::new(Default::default()))
21389 }
21390}
21391#[derive(
21392 Clone,
21393 Reflect,
21394 Debug,
21395 Default,
21396 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21397 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21398)]
21399#[fhir_serialize_type = "complex"]
21400#[doc = "The respondent's answer(s) to the question."]
21401pub struct QuestionnaireResponseItemAnswer {
21402 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
21403 pub id: Option<String>,
21404 #[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 manageable, 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."]
21405 pub extension: Option<Vec<Box<Extension>>>,
21406 #[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 manageable, 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)."]
21407 pub modifierExtension: Option<Vec<Box<Extension>>>,
21408 # [type_choice_variants (complex = ["valueAttachment" , "valueCoding" , "valueQuantity" , "valueReference"] , primitive = ["valueBoolean" , "valueDecimal" , "valueInteger" , "valueDate" , "valueDateTime" , "valueTime" , "valueString" , "valueUri"])]
21409 #[doc = "The answer (or one of the answers) provided by the respondent to the question."]
21410 pub value: Option<QuestionnaireResponseItemAnswerValueTypeChoice>,
21411 #[doc = "Nested groups and/or questions found within this particular answer."]
21412 pub item: Option<Vec<QuestionnaireResponseItem>>,
21413}
21414#[derive(
21415 Clone,
21416 Reflect,
21417 Debug,
21418 Default,
21419 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21420 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21421)]
21422#[fhir_serialize_type = "complex"]
21423#[doc = "A group or question item from the original questionnaire for which answers are provided."]
21424pub struct QuestionnaireResponseItem {
21425 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
21426 pub id: Option<String>,
21427 #[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 manageable, 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."]
21428 pub extension: Option<Vec<Box<Extension>>>,
21429 #[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 manageable, 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)."]
21430 pub modifierExtension: Option<Vec<Box<Extension>>>,
21431 #[primitive]
21432 #[doc = "The item from the Questionnaire that corresponds to this item in the QuestionnaireResponse resource."]
21433 pub linkId: Box<FHIRString>,
21434 #[primitive]
21435 #[doc = "A reference to an [ElementDefinition](elementdefinition.html) that provides the details for the item."]
21436 pub definition: Option<Box<FHIRUri>>,
21437 #[primitive]
21438 #[doc = "Text that is displayed above the contents of the group or as the text of the question being answered."]
21439 pub text: Option<Box<FHIRString>>,
21440 #[doc = "The respondent's answer(s) to the question."]
21441 pub answer: Option<Vec<QuestionnaireResponseItemAnswer>>,
21442 #[doc = "Questions or sub-groups nested beneath a question or group."]
21443 pub item: Option<Vec<QuestionnaireResponseItem>>,
21444}
21445#[derive(
21446 Clone,
21447 Reflect,
21448 Debug,
21449 Default,
21450 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21451 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21452)]
21453#[fhir_serialize_type = "resource"]
21454#[doc = "A structured set of questions and their answers. The questions are ordered and grouped into coherent subsets, corresponding to the structure of the grouping of the questionnaire being responded to."]
21455pub struct QuestionnaireResponse {
21456 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
21457 pub id: Option<String>,
21458 #[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."]
21459 pub meta: Option<Box<Meta>>,
21460 #[primitive]
21461 #[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."]
21462 pub implicitRules: Option<Box<FHIRUri>>,
21463 #[primitive]
21464 #[doc = "The base language in which the resource is written."]
21465 pub language: Option<Box<FHIRCode>>,
21466 #[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."]
21467 pub text: Option<Box<Narrative>>,
21468 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
21469 pub contained: Option<Vec<Box<Resource>>>,
21470 #[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 manageable, 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."]
21471 pub extension: Option<Vec<Box<Extension>>>,
21472 #[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 manageable, 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)."]
21473 pub modifierExtension: Option<Vec<Box<Extension>>>,
21474 #[rename_field = "identifier"]
21475 #[doc = "A business identifier assigned to a particular completed (or partially completed) questionnaire."]
21476 pub identifier_: Option<Box<Identifier>>,
21477 # [reference (targets = ["CarePlan" , "ServiceRequest"])]
21478 #[doc = "The order, proposal or plan that is fulfilled in whole or in part by this QuestionnaireResponse. For example, a ServiceRequest seeking an intake assessment or a decision support recommendation to assess for post-partum depression."]
21479 pub basedOn: Option<Vec<Box<Reference>>>,
21480 # [reference (targets = ["Observation" , "Procedure"])]
21481 #[doc = "A procedure or observation that this questionnaire was performed as part of the execution of. For example, the surgery a checklist was executed as part of."]
21482 pub partOf: Option<Vec<Box<Reference>>>,
21483 #[primitive]
21484 #[doc = "The Questionnaire that defines and organizes the questions for which answers are being provided."]
21485 pub questionnaire: Option<Box<FHIRCanonical>>,
21486 #[primitive]
21487 #[doc = "The position of the questionnaire response within its overall lifecycle."]
21488 pub status: Box<terminology::QuestionnaireAnswersStatus>,
21489 # [reference (targets = ["Resource"])]
21490 #[doc = "The subject of the questionnaire response. This could be a patient, organization, practitioner, device, etc. This is who/what the answers apply to, but is not necessarily the source of information."]
21491 pub subject: Option<Box<Reference>>,
21492 # [reference (targets = ["Encounter"])]
21493 #[doc = "The Encounter during which this questionnaire response was created or to which the creation of this record is tightly associated."]
21494 pub encounter: Option<Box<Reference>>,
21495 #[primitive]
21496 #[doc = "The date and/or time that this set of answers were last changed."]
21497 pub authored: Option<Box<FHIRDateTime>>,
21498 # [reference (targets = ["Device" , "Practitioner" , "PractitionerRole" , "Patient" , "RelatedPerson" , "Organization"])]
21499 #[doc = "Person who received the answers to the questions in the QuestionnaireResponse and recorded them in the system."]
21500 pub author: Option<Box<Reference>>,
21501 # [reference (targets = ["Patient" , "Practitioner" , "PractitionerRole" , "RelatedPerson"])]
21502 #[doc = "The person who answered the questions about the subject."]
21503 pub source: Option<Box<Reference>>,
21504 #[doc = "A group or question item from the original questionnaire for which answers are provided."]
21505 pub item: Option<Vec<QuestionnaireResponseItem>>,
21506}
21507#[derive(
21508 Clone,
21509 Reflect,
21510 Debug,
21511 Default,
21512 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21513 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21514)]
21515#[fhir_serialize_type = "complex"]
21516#[doc = "A language which may be used to communicate with about the patient's health."]
21517pub struct RelatedPersonCommunication {
21518 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
21519 pub id: Option<String>,
21520 #[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 manageable, 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."]
21521 pub extension: Option<Vec<Box<Extension>>>,
21522 #[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 manageable, 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)."]
21523 pub modifierExtension: Option<Vec<Box<Extension>>>,
21524 #[doc = "The ISO-639-1 alpha 2 code in lower case for the language, optionally followed by a hyphen and the ISO-3166-1 alpha 2 code for the region in upper case; e.g. \"en\" for English, or \"en-US\" for American English versus \"en-EN\" for England English."]
21525 pub language: Box<CodeableConcept>,
21526 #[primitive]
21527 #[doc = "Indicates whether or not the patient prefers this language (over other languages he masters up a certain level)."]
21528 pub preferred: Option<Box<FHIRBoolean>>,
21529}
21530#[derive(
21531 Clone,
21532 Reflect,
21533 Debug,
21534 Default,
21535 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21536 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21537)]
21538#[fhir_serialize_type = "resource"]
21539#[doc = "Information about a person that is involved in the care for a patient, but who is not the target of healthcare, nor has a formal responsibility in the care process."]
21540pub struct RelatedPerson {
21541 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
21542 pub id: Option<String>,
21543 #[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."]
21544 pub meta: Option<Box<Meta>>,
21545 #[primitive]
21546 #[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."]
21547 pub implicitRules: Option<Box<FHIRUri>>,
21548 #[primitive]
21549 #[doc = "The base language in which the resource is written."]
21550 pub language: Option<Box<FHIRCode>>,
21551 #[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."]
21552 pub text: Option<Box<Narrative>>,
21553 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
21554 pub contained: Option<Vec<Box<Resource>>>,
21555 #[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 manageable, 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."]
21556 pub extension: Option<Vec<Box<Extension>>>,
21557 #[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 manageable, 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)."]
21558 pub modifierExtension: Option<Vec<Box<Extension>>>,
21559 #[rename_field = "identifier"]
21560 #[doc = "Identifier for a person within a particular scope."]
21561 pub identifier_: Option<Vec<Box<Identifier>>>,
21562 #[primitive]
21563 #[doc = "Whether this related person record is in active use."]
21564 pub active: Option<Box<FHIRBoolean>>,
21565 # [reference (targets = ["Patient"])]
21566 #[doc = "The patient this person is related to."]
21567 pub patient: Box<Reference>,
21568 #[doc = "The nature of the relationship between a patient and the related person."]
21569 pub relationship: Option<Vec<Box<CodeableConcept>>>,
21570 #[doc = "A name associated with the person."]
21571 pub name: Option<Vec<Box<HumanName>>>,
21572 #[doc = "A contact detail for the person, e.g. a telephone number or an email address."]
21573 pub telecom: Option<Vec<Box<ContactPoint>>>,
21574 #[primitive]
21575 #[doc = "Administrative Gender - the gender that the person is considered to have for administration and record keeping purposes."]
21576 pub gender: Option<Box<terminology::AdministrativeGender>>,
21577 #[primitive]
21578 #[doc = "The date on which the related person was born."]
21579 pub birthDate: Option<Box<FHIRDate>>,
21580 #[doc = "Address where the related person can be contacted or visited."]
21581 pub address: Option<Vec<Box<Address>>>,
21582 #[doc = "Image of the person."]
21583 pub photo: Option<Vec<Box<Attachment>>>,
21584 #[doc = "The period of time during which this relationship is or was active. If there are no dates defined, then the interval is unknown."]
21585 pub period: Option<Box<Period>>,
21586 #[doc = "A language which may be used to communicate with about the patient's health."]
21587 pub communication: Option<Vec<RelatedPersonCommunication>>,
21588}
21589#[derive(
21590 Clone,
21591 Reflect,
21592 Debug,
21593 Default,
21594 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21595 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21596)]
21597#[fhir_serialize_type = "complex"]
21598#[doc = "An expression that describes applicability criteria, or start/stop conditions for the action."]
21599pub struct RequestGroupActionCondition {
21600 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
21601 pub id: Option<String>,
21602 #[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 manageable, 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."]
21603 pub extension: Option<Vec<Box<Extension>>>,
21604 #[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 manageable, 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)."]
21605 pub modifierExtension: Option<Vec<Box<Extension>>>,
21606 #[primitive]
21607 #[doc = "The kind of condition."]
21608 pub kind: Box<terminology::ActionConditionKind>,
21609 #[doc = "An expression that returns true or false, indicating whether or not the condition is satisfied."]
21610 pub expression: Option<Box<Expression>>,
21611}
21612#[derive(
21613 Clone,
21614 Reflect,
21615 Debug,
21616 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21617 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21618)]
21619#[fhir_serialize_type = "typechoice"]
21620#[type_choice_field_name = "offset"]
21621pub enum RequestGroupActionRelatedActionOffsetTypeChoice {
21622 Duration(Box<Duration>),
21623 Range(Box<Range>),
21624}
21625impl Default for RequestGroupActionRelatedActionOffsetTypeChoice {
21626 fn default() -> Self {
21627 RequestGroupActionRelatedActionOffsetTypeChoice::Duration(Box::new(Default::default()))
21628 }
21629}
21630#[derive(
21631 Clone,
21632 Reflect,
21633 Debug,
21634 Default,
21635 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21636 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21637)]
21638#[fhir_serialize_type = "complex"]
21639#[doc = "A relationship to another action such as \"before\" or \"30-60 minutes after start of\"."]
21640pub struct RequestGroupActionRelatedAction {
21641 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
21642 pub id: Option<String>,
21643 #[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 manageable, 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."]
21644 pub extension: Option<Vec<Box<Extension>>>,
21645 #[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 manageable, 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)."]
21646 pub modifierExtension: Option<Vec<Box<Extension>>>,
21647 #[primitive]
21648 #[doc = "The element id of the action this is related to."]
21649 pub actionId: Box<FHIRId>,
21650 #[primitive]
21651 #[doc = "The relationship of this action to the related action."]
21652 pub relationship: Box<terminology::ActionRelationshipType>,
21653 # [type_choice_variants (complex = ["offsetDuration" , "offsetRange"] , primitive = [])]
21654 #[doc = "A duration or range of durations to apply to the relationship. For example, 30-60 minutes before."]
21655 pub offset: Option<RequestGroupActionRelatedActionOffsetTypeChoice>,
21656}
21657#[derive(
21658 Clone,
21659 Reflect,
21660 Debug,
21661 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21662 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21663)]
21664#[fhir_serialize_type = "typechoice"]
21665#[type_choice_field_name = "timing"]
21666pub enum RequestGroupActionTimingTypeChoice {
21667 DateTime(Box<FHIRDateTime>),
21668 Age(Box<Age>),
21669 Period(Box<Period>),
21670 Duration(Box<Duration>),
21671 Range(Box<Range>),
21672 Timing(Box<Timing>),
21673}
21674impl Default for RequestGroupActionTimingTypeChoice {
21675 fn default() -> Self {
21676 RequestGroupActionTimingTypeChoice::DateTime(Box::new(Default::default()))
21677 }
21678}
21679#[derive(
21680 Clone,
21681 Reflect,
21682 Debug,
21683 Default,
21684 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21685 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21686)]
21687#[fhir_serialize_type = "complex"]
21688#[doc = "The actions, if any, produced by the evaluation of the artifact."]
21689pub struct RequestGroupAction {
21690 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
21691 pub id: Option<String>,
21692 #[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 manageable, 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."]
21693 pub extension: Option<Vec<Box<Extension>>>,
21694 #[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 manageable, 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)."]
21695 pub modifierExtension: Option<Vec<Box<Extension>>>,
21696 #[primitive]
21697 #[doc = "A user-visible prefix for the action."]
21698 pub prefix: Option<Box<FHIRString>>,
21699 #[primitive]
21700 #[doc = "The title of the action displayed to a user."]
21701 pub title: Option<Box<FHIRString>>,
21702 #[primitive]
21703 #[doc = "A short description of the action used to provide a summary to display to the user."]
21704 pub description: Option<Box<FHIRString>>,
21705 #[primitive]
21706 #[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."]
21707 pub textEquivalent: Option<Box<FHIRString>>,
21708 #[primitive]
21709 #[doc = "Indicates how quickly the action should be addressed with respect to other actions."]
21710 pub priority: Option<Box<terminology::RequestPriority>>,
21711 #[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."]
21712 pub code: Option<Vec<Box<CodeableConcept>>>,
21713 #[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."]
21714 pub documentation: Option<Vec<Box<RelatedArtifact>>>,
21715 #[doc = "An expression that describes applicability criteria, or start/stop conditions for the action."]
21716 pub condition: Option<Vec<RequestGroupActionCondition>>,
21717 #[doc = "A relationship to another action such as \"before\" or \"30-60 minutes after start of\"."]
21718 pub relatedAction: Option<Vec<RequestGroupActionRelatedAction>>,
21719 # [type_choice_variants (complex = ["timingAge" , "timingPeriod" , "timingDuration" , "timingRange" , "timingTiming"] , primitive = ["timingDateTime"])]
21720 #[doc = "An optional value describing when the action should be performed."]
21721 pub timing: Option<RequestGroupActionTimingTypeChoice>,
21722 # [reference (targets = ["Patient" , "Practitioner" , "PractitionerRole" , "RelatedPerson" , "Device"])]
21723 #[doc = "The participant that should perform or be responsible for this action."]
21724 pub participant: Option<Vec<Box<Reference>>>,
21725 #[rename_field = "type"]
21726 #[doc = "The type of action to perform (create, update, remove)."]
21727 pub type_: Option<Box<CodeableConcept>>,
21728 #[primitive]
21729 #[doc = "Defines the grouping behavior for the action and its children."]
21730 pub groupingBehavior: Option<Box<terminology::ActionGroupingBehavior>>,
21731 #[primitive]
21732 #[doc = "Defines the selection behavior for the action and its children."]
21733 pub selectionBehavior: Option<Box<terminology::ActionSelectionBehavior>>,
21734 #[primitive]
21735 #[doc = "Defines expectations around whether an action is required."]
21736 pub requiredBehavior: Option<Box<terminology::ActionRequiredBehavior>>,
21737 #[primitive]
21738 #[doc = "Defines whether the action should usually be preselected."]
21739 pub precheckBehavior: Option<Box<terminology::ActionPrecheckBehavior>>,
21740 #[primitive]
21741 #[doc = "Defines whether the action can be selected multiple times."]
21742 pub cardinalityBehavior: Option<Box<terminology::ActionCardinalityBehavior>>,
21743 # [reference (targets = ["Resource"])]
21744 #[doc = "The resource that is the target of the action (e.g. CommunicationRequest)."]
21745 pub resource: Option<Box<Reference>>,
21746 #[doc = "Sub actions."]
21747 pub action: Option<Vec<RequestGroupAction>>,
21748}
21749#[derive(
21750 Clone,
21751 Reflect,
21752 Debug,
21753 Default,
21754 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21755 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21756)]
21757#[fhir_serialize_type = "resource"]
21758#[doc = "A group of related requests that can be used to capture intended activities that have inter-dependencies such as \"give this medication after that one\"."]
21759pub struct RequestGroup {
21760 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
21761 pub id: Option<String>,
21762 #[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."]
21763 pub meta: Option<Box<Meta>>,
21764 #[primitive]
21765 #[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."]
21766 pub implicitRules: Option<Box<FHIRUri>>,
21767 #[primitive]
21768 #[doc = "The base language in which the resource is written."]
21769 pub language: Option<Box<FHIRCode>>,
21770 #[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."]
21771 pub text: Option<Box<Narrative>>,
21772 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
21773 pub contained: Option<Vec<Box<Resource>>>,
21774 #[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 manageable, 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."]
21775 pub extension: Option<Vec<Box<Extension>>>,
21776 #[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 manageable, 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)."]
21777 pub modifierExtension: Option<Vec<Box<Extension>>>,
21778 #[rename_field = "identifier"]
21779 #[doc = "Allows a service to provide a unique, business identifier for the request."]
21780 pub identifier_: Option<Vec<Box<Identifier>>>,
21781 #[primitive]
21782 #[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."]
21783 pub instantiatesCanonical: Option<Vec<Box<FHIRCanonical>>>,
21784 #[primitive]
21785 #[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."]
21786 pub instantiatesUri: Option<Vec<Box<FHIRUri>>>,
21787 # [reference (targets = ["Resource"])]
21788 #[doc = "A plan, proposal or order that is fulfilled in whole or in part by this request."]
21789 pub basedOn: Option<Vec<Box<Reference>>>,
21790 # [reference (targets = ["Resource"])]
21791 #[doc = "Completed or terminated request(s) whose function is taken by this new request."]
21792 pub replaces: Option<Vec<Box<Reference>>>,
21793 #[doc = "A shared identifier common to all requests that were authorized more or less simultaneously by a single author, representing the identifier of the requisition, prescription or similar form."]
21794 pub groupIdentifier: Option<Box<Identifier>>,
21795 #[primitive]
21796 #[doc = "The current state of the request. For request groups, the status reflects the status of all the requests in the group."]
21797 pub status: Box<terminology::RequestStatus>,
21798 #[primitive]
21799 #[doc = "Indicates the level of authority/intentionality associated with the request and where the request fits into the workflow chain."]
21800 pub intent: Box<terminology::RequestIntent>,
21801 #[primitive]
21802 #[doc = "Indicates how quickly the request should be addressed with respect to other requests."]
21803 pub priority: Option<Box<terminology::RequestPriority>>,
21804 #[doc = "A code that identifies what the overall request group is."]
21805 pub code: Option<Box<CodeableConcept>>,
21806 # [reference (targets = ["Patient" , "Group"])]
21807 #[doc = "The subject for which the request group was created."]
21808 pub subject: Option<Box<Reference>>,
21809 # [reference (targets = ["Encounter"])]
21810 #[doc = "Describes the context of the request group, if any."]
21811 pub encounter: Option<Box<Reference>>,
21812 #[primitive]
21813 #[doc = "Indicates when the request group was created."]
21814 pub authoredOn: Option<Box<FHIRDateTime>>,
21815 # [reference (targets = ["Device" , "Practitioner" , "PractitionerRole"])]
21816 #[doc = "Provides a reference to the author of the request group."]
21817 pub author: Option<Box<Reference>>,
21818 #[doc = "Describes the reason for the request group in coded or textual form."]
21819 pub reasonCode: Option<Vec<Box<CodeableConcept>>>,
21820 # [reference (targets = ["Condition" , "Observation" , "DiagnosticReport" , "DocumentReference"])]
21821 #[doc = "Indicates another resource whose existence justifies this request group."]
21822 pub reasonReference: Option<Vec<Box<Reference>>>,
21823 #[doc = "Provides a mechanism to communicate additional information about the response."]
21824 pub note: Option<Vec<Box<Annotation>>>,
21825 #[doc = "The actions, if any, produced by the evaluation of the artifact."]
21826 pub action: Option<Vec<RequestGroupAction>>,
21827}
21828#[derive(
21829 Clone,
21830 Reflect,
21831 Debug,
21832 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21833 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21834)]
21835#[fhir_serialize_type = "typechoice"]
21836#[type_choice_field_name = "subject"]
21837pub enum ResearchDefinitionSubjectTypeChoice {
21838 CodeableConcept(Box<CodeableConcept>),
21839 # [reference (targets = ["Group"])]
21840 Reference(Box<Reference>),
21841}
21842impl Default for ResearchDefinitionSubjectTypeChoice {
21843 fn default() -> Self {
21844 ResearchDefinitionSubjectTypeChoice::CodeableConcept(Box::new(Default::default()))
21845 }
21846}
21847#[derive(
21848 Clone,
21849 Reflect,
21850 Debug,
21851 Default,
21852 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21853 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21854)]
21855#[fhir_serialize_type = "resource"]
21856#[doc = "The ResearchDefinition resource describes the conditional state (population and any exposures being compared within the population) and outcome (if specified) that the knowledge (evidence, assertion, recommendation) is about."]
21857pub struct ResearchDefinition {
21858 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
21859 pub id: Option<String>,
21860 #[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."]
21861 pub meta: Option<Box<Meta>>,
21862 #[primitive]
21863 #[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."]
21864 pub implicitRules: Option<Box<FHIRUri>>,
21865 #[primitive]
21866 #[doc = "The base language in which the resource is written."]
21867 pub language: Option<Box<FHIRCode>>,
21868 #[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."]
21869 pub text: Option<Box<Narrative>>,
21870 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
21871 pub contained: Option<Vec<Box<Resource>>>,
21872 #[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 manageable, 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."]
21873 pub extension: Option<Vec<Box<Extension>>>,
21874 #[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 manageable, 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)."]
21875 pub modifierExtension: Option<Vec<Box<Extension>>>,
21876 #[primitive]
21877 #[doc = "An absolute URI that is used to identify this research definition 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 at which an authoritative instance of this research definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the research definition is stored on different servers."]
21878 pub url: Option<Box<FHIRUri>>,
21879 #[rename_field = "identifier"]
21880 #[doc = "A formal identifier that is used to identify this research definition when it is represented in other formats, or referenced in a specification, model, design or an instance."]
21881 pub identifier_: Option<Vec<Box<Identifier>>>,
21882 #[primitive]
21883 #[doc = "The identifier that is used to identify this version of the research definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the research definition 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. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts."]
21884 pub version: Option<Box<FHIRString>>,
21885 #[primitive]
21886 #[doc = "A natural language name identifying the research definition. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
21887 pub name: Option<Box<FHIRString>>,
21888 #[primitive]
21889 #[doc = "A short, descriptive, user-friendly title for the research definition."]
21890 pub title: Option<Box<FHIRString>>,
21891 #[primitive]
21892 #[doc = "The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary."]
21893 pub shortTitle: Option<Box<FHIRString>>,
21894 #[primitive]
21895 #[doc = "An explanatory or alternate title for the ResearchDefinition giving additional information about its content."]
21896 pub subtitle: Option<Box<FHIRString>>,
21897 #[primitive]
21898 #[doc = "The status of this research definition. Enables tracking the life-cycle of the content."]
21899 pub status: Box<terminology::PublicationStatus>,
21900 #[primitive]
21901 #[doc = "A Boolean value to indicate that this research definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
21902 pub experimental: Option<Box<FHIRBoolean>>,
21903 # [type_choice_variants (complex = ["subjectCodeableConcept" , "subjectReference"] , primitive = [])]
21904 #[doc = "The intended subjects for the ResearchDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchDefinition can be anything."]
21905 pub subject: Option<ResearchDefinitionSubjectTypeChoice>,
21906 #[primitive]
21907 #[doc = "The date (and optionally time) when the research definition was published. 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 research definition changes."]
21908 pub date: Option<Box<FHIRDateTime>>,
21909 #[primitive]
21910 #[doc = "The name of the organization or individual that published the research definition."]
21911 pub publisher: Option<Box<FHIRString>>,
21912 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
21913 pub contact: Option<Vec<Box<ContactDetail>>>,
21914 #[primitive]
21915 #[doc = "A free text natural language description of the research definition from a consumer's perspective."]
21916 pub description: Option<Box<FHIRMarkdown>>,
21917 #[primitive]
21918 #[doc = "A human-readable string to clarify or explain concepts about the resource."]
21919 pub comment: Option<Vec<Box<FHIRString>>>,
21920 #[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 research definition instances."]
21921 pub useContext: Option<Vec<Box<UsageContext>>>,
21922 #[doc = "A legal or geographic region in which the research definition is intended to be used."]
21923 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
21924 #[primitive]
21925 #[doc = "Explanation of why this research definition is needed and why it has been designed as it has."]
21926 pub purpose: Option<Box<FHIRMarkdown>>,
21927 #[primitive]
21928 #[doc = "A detailed description, from a clinical perspective, of how the ResearchDefinition is used."]
21929 pub usage: Option<Box<FHIRString>>,
21930 #[primitive]
21931 #[doc = "A copyright statement relating to the research definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the research definition."]
21932 pub copyright: Option<Box<FHIRMarkdown>>,
21933 #[primitive]
21934 #[doc = "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage."]
21935 pub approvalDate: Option<Box<FHIRDate>>,
21936 #[primitive]
21937 #[doc = "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date."]
21938 pub lastReviewDate: Option<Box<FHIRDate>>,
21939 #[doc = "The period during which the research definition content was or is planned to be in active use."]
21940 pub effectivePeriod: Option<Box<Period>>,
21941 #[doc = "Descriptive topics related to the content of the ResearchDefinition. Topics provide a high-level categorization grouping types of ResearchDefinitions that can be useful for filtering and searching."]
21942 pub topic: Option<Vec<Box<CodeableConcept>>>,
21943 #[doc = "An individiual or organization primarily involved in the creation and maintenance of the content."]
21944 pub author: Option<Vec<Box<ContactDetail>>>,
21945 #[doc = "An individual or organization primarily responsible for internal coherence of the content."]
21946 pub editor: Option<Vec<Box<ContactDetail>>>,
21947 #[doc = "An individual or organization primarily responsible for review of some aspect of the content."]
21948 pub reviewer: Option<Vec<Box<ContactDetail>>>,
21949 #[doc = "An individual or organization responsible for officially endorsing the content for use in some setting."]
21950 pub endorser: Option<Vec<Box<ContactDetail>>>,
21951 #[doc = "Related artifacts such as additional documentation, justification, or bibliographic references."]
21952 pub relatedArtifact: Option<Vec<Box<RelatedArtifact>>>,
21953 #[primitive]
21954 #[doc = "A reference to a Library resource containing the formal logic used by the ResearchDefinition."]
21955 pub library: Option<Vec<Box<FHIRCanonical>>>,
21956 # [reference (targets = ["ResearchElementDefinition"])]
21957 #[doc = "A reference to a ResearchElementDefinition resource that defines the population for the research."]
21958 pub population: Box<Reference>,
21959 # [reference (targets = ["ResearchElementDefinition"])]
21960 #[doc = "A reference to a ResearchElementDefinition resource that defines the exposure for the research."]
21961 pub exposure: Option<Box<Reference>>,
21962 # [reference (targets = ["ResearchElementDefinition"])]
21963 #[doc = "A reference to a ResearchElementDefinition resource that defines the exposureAlternative for the research."]
21964 pub exposureAlternative: Option<Box<Reference>>,
21965 # [reference (targets = ["ResearchElementDefinition"])]
21966 #[doc = "A reference to a ResearchElementDefinition resomece that defines the outcome for the research."]
21967 pub outcome: Option<Box<Reference>>,
21968}
21969#[derive(
21970 Clone,
21971 Reflect,
21972 Debug,
21973 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21974 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21975)]
21976#[fhir_serialize_type = "typechoice"]
21977#[type_choice_field_name = "subject"]
21978pub enum ResearchElementDefinitionSubjectTypeChoice {
21979 CodeableConcept(Box<CodeableConcept>),
21980 # [reference (targets = ["Group"])]
21981 Reference(Box<Reference>),
21982}
21983impl Default for ResearchElementDefinitionSubjectTypeChoice {
21984 fn default() -> Self {
21985 ResearchElementDefinitionSubjectTypeChoice::CodeableConcept(Box::new(Default::default()))
21986 }
21987}
21988#[derive(
21989 Clone,
21990 Reflect,
21991 Debug,
21992 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
21993 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
21994)]
21995#[fhir_serialize_type = "typechoice"]
21996#[type_choice_field_name = "definition"]
21997pub enum ResearchElementDefinitionCharacteristicDefinitionTypeChoice {
21998 CodeableConcept(Box<CodeableConcept>),
21999 Canonical(Box<FHIRCanonical>),
22000 Expression(Box<Expression>),
22001 DataRequirement(Box<DataRequirement>),
22002}
22003impl Default for ResearchElementDefinitionCharacteristicDefinitionTypeChoice {
22004 fn default() -> Self {
22005 ResearchElementDefinitionCharacteristicDefinitionTypeChoice::CodeableConcept(Box::new(
22006 Default::default(),
22007 ))
22008 }
22009}
22010#[derive(
22011 Clone,
22012 Reflect,
22013 Debug,
22014 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
22015 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
22016)]
22017#[fhir_serialize_type = "typechoice"]
22018#[type_choice_field_name = "studyEffective"]
22019pub enum ResearchElementDefinitionCharacteristicStudyEffectiveTypeChoice {
22020 DateTime(Box<FHIRDateTime>),
22021 Period(Box<Period>),
22022 Duration(Box<Duration>),
22023 Timing(Box<Timing>),
22024}
22025impl Default for ResearchElementDefinitionCharacteristicStudyEffectiveTypeChoice {
22026 fn default() -> Self {
22027 ResearchElementDefinitionCharacteristicStudyEffectiveTypeChoice::DateTime(Box::new(
22028 Default::default(),
22029 ))
22030 }
22031}
22032#[derive(
22033 Clone,
22034 Reflect,
22035 Debug,
22036 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
22037 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
22038)]
22039#[fhir_serialize_type = "typechoice"]
22040#[type_choice_field_name = "participantEffective"]
22041pub enum ResearchElementDefinitionCharacteristicParticipantEffectiveTypeChoice {
22042 DateTime(Box<FHIRDateTime>),
22043 Period(Box<Period>),
22044 Duration(Box<Duration>),
22045 Timing(Box<Timing>),
22046}
22047impl Default for ResearchElementDefinitionCharacteristicParticipantEffectiveTypeChoice {
22048 fn default() -> Self {
22049 ResearchElementDefinitionCharacteristicParticipantEffectiveTypeChoice::DateTime(Box::new(
22050 Default::default(),
22051 ))
22052 }
22053}
22054#[derive(
22055 Clone,
22056 Reflect,
22057 Debug,
22058 Default,
22059 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
22060 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
22061)]
22062#[fhir_serialize_type = "complex"]
22063#[doc = "A characteristic that defines the members of the research element. Multiple characteristics are applied with \"and\" semantics."]
22064pub struct ResearchElementDefinitionCharacteristic {
22065 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
22066 pub id: Option<String>,
22067 #[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 manageable, 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."]
22068 pub extension: Option<Vec<Box<Extension>>>,
22069 #[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 manageable, 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)."]
22070 pub modifierExtension: Option<Vec<Box<Extension>>>,
22071 # [type_choice_variants (complex = ["definitionCodeableConcept" , "definitionExpression" , "definitionDataRequirement"] , primitive = ["definitionCanonical"])]
22072 #[doc = "Define members of the research element using Codes (such as condition, medication, or observation), Expressions ( using an expression language such as FHIRPath or CQL) or DataRequirements (such as Diabetes diagnosis onset in the last year)."]
22073 pub definition: ResearchElementDefinitionCharacteristicDefinitionTypeChoice,
22074 #[doc = "Use UsageContext to define the members of the population, such as Age Ranges, Genders, Settings."]
22075 pub usageContext: Option<Vec<Box<UsageContext>>>,
22076 #[primitive]
22077 #[doc = "When true, members with this characteristic are excluded from the element."]
22078 pub exclude: Option<Box<FHIRBoolean>>,
22079 #[doc = "Specifies the UCUM unit for the outcome."]
22080 pub unitOfMeasure: Option<Box<CodeableConcept>>,
22081 #[primitive]
22082 #[doc = "A narrative description of the time period the study covers."]
22083 pub studyEffectiveDescription: Option<Box<FHIRString>>,
22084 # [type_choice_variants (complex = ["studyEffectivePeriod" , "studyEffectiveDuration" , "studyEffectiveTiming"] , primitive = ["studyEffectiveDateTime"])]
22085 #[doc = "Indicates what effective period the study covers."]
22086 pub studyEffective: Option<ResearchElementDefinitionCharacteristicStudyEffectiveTypeChoice>,
22087 #[doc = "Indicates duration from the study initiation."]
22088 pub studyEffectiveTimeFromStart: Option<Box<Duration>>,
22089 #[primitive]
22090 #[doc = "Indicates how elements are aggregated within the study effective period."]
22091 pub studyEffectiveGroupMeasure: Option<Box<terminology::GroupMeasure>>,
22092 #[primitive]
22093 #[doc = "A narrative description of the time period the study covers."]
22094 pub participantEffectiveDescription: Option<Box<FHIRString>>,
22095 # [type_choice_variants (complex = ["participantEffectivePeriod" , "participantEffectiveDuration" , "participantEffectiveTiming"] , primitive = ["participantEffectiveDateTime"])]
22096 #[doc = "Indicates what effective period the study covers."]
22097 pub participantEffective:
22098 Option<ResearchElementDefinitionCharacteristicParticipantEffectiveTypeChoice>,
22099 #[doc = "Indicates duration from the participant's study entry."]
22100 pub participantEffectiveTimeFromStart: Option<Box<Duration>>,
22101 #[primitive]
22102 #[doc = "Indicates how elements are aggregated within the study effective period."]
22103 pub participantEffectiveGroupMeasure: Option<Box<terminology::GroupMeasure>>,
22104}
22105#[derive(
22106 Clone,
22107 Reflect,
22108 Debug,
22109 Default,
22110 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
22111 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
22112)]
22113#[fhir_serialize_type = "resource"]
22114#[doc = "The ResearchElementDefinition resource describes a \"PICO\" element that knowledge (evidence, assertion, recommendation) is about."]
22115pub struct ResearchElementDefinition {
22116 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
22117 pub id: Option<String>,
22118 #[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."]
22119 pub meta: Option<Box<Meta>>,
22120 #[primitive]
22121 #[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."]
22122 pub implicitRules: Option<Box<FHIRUri>>,
22123 #[primitive]
22124 #[doc = "The base language in which the resource is written."]
22125 pub language: Option<Box<FHIRCode>>,
22126 #[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."]
22127 pub text: Option<Box<Narrative>>,
22128 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
22129 pub contained: Option<Vec<Box<Resource>>>,
22130 #[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 manageable, 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."]
22131 pub extension: Option<Vec<Box<Extension>>>,
22132 #[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 manageable, 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)."]
22133 pub modifierExtension: Option<Vec<Box<Extension>>>,
22134 #[primitive]
22135 #[doc = "An absolute URI that is used to identify this research element definition 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 at which an authoritative instance of this research element definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the research element definition is stored on different servers."]
22136 pub url: Option<Box<FHIRUri>>,
22137 #[rename_field = "identifier"]
22138 #[doc = "A formal identifier that is used to identify this research element definition when it is represented in other formats, or referenced in a specification, model, design or an instance."]
22139 pub identifier_: Option<Vec<Box<Identifier>>>,
22140 #[primitive]
22141 #[doc = "The identifier that is used to identify this version of the research element definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the research element definition 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. To provide a version consistent with the Decision Support Service specification, use the format Major.Minor.Revision (e.g. 1.0.0). For more information on versioning knowledge assets, refer to the Decision Support Service specification. Note that a version is required for non-experimental active artifacts."]
22142 pub version: Option<Box<FHIRString>>,
22143 #[primitive]
22144 #[doc = "A natural language name identifying the research element definition. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
22145 pub name: Option<Box<FHIRString>>,
22146 #[primitive]
22147 #[doc = "A short, descriptive, user-friendly title for the research element definition."]
22148 pub title: Option<Box<FHIRString>>,
22149 #[primitive]
22150 #[doc = "The short title provides an alternate title for use in informal descriptive contexts where the full, formal title is not necessary."]
22151 pub shortTitle: Option<Box<FHIRString>>,
22152 #[primitive]
22153 #[doc = "An explanatory or alternate title for the ResearchElementDefinition giving additional information about its content."]
22154 pub subtitle: Option<Box<FHIRString>>,
22155 #[primitive]
22156 #[doc = "The status of this research element definition. Enables tracking the life-cycle of the content."]
22157 pub status: Box<terminology::PublicationStatus>,
22158 #[primitive]
22159 #[doc = "A Boolean value to indicate that this research element definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
22160 pub experimental: Option<Box<FHIRBoolean>>,
22161 # [type_choice_variants (complex = ["subjectCodeableConcept" , "subjectReference"] , primitive = [])]
22162 #[doc = "The intended subjects for the ResearchElementDefinition. If this element is not provided, a Patient subject is assumed, but the subject of the ResearchElementDefinition can be anything."]
22163 pub subject: Option<ResearchElementDefinitionSubjectTypeChoice>,
22164 #[primitive]
22165 #[doc = "The date (and optionally time) when the research element definition was published. 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 research element definition changes."]
22166 pub date: Option<Box<FHIRDateTime>>,
22167 #[primitive]
22168 #[doc = "The name of the organization or individual that published the research element definition."]
22169 pub publisher: Option<Box<FHIRString>>,
22170 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
22171 pub contact: Option<Vec<Box<ContactDetail>>>,
22172 #[primitive]
22173 #[doc = "A free text natural language description of the research element definition from a consumer's perspective."]
22174 pub description: Option<Box<FHIRMarkdown>>,
22175 #[primitive]
22176 #[doc = "A human-readable string to clarify or explain concepts about the resource."]
22177 pub comment: Option<Vec<Box<FHIRString>>>,
22178 #[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 research element definition instances."]
22179 pub useContext: Option<Vec<Box<UsageContext>>>,
22180 #[doc = "A legal or geographic region in which the research element definition is intended to be used."]
22181 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
22182 #[primitive]
22183 #[doc = "Explanation of why this research element definition is needed and why it has been designed as it has."]
22184 pub purpose: Option<Box<FHIRMarkdown>>,
22185 #[primitive]
22186 #[doc = "A detailed description, from a clinical perspective, of how the ResearchElementDefinition is used."]
22187 pub usage: Option<Box<FHIRString>>,
22188 #[primitive]
22189 #[doc = "A copyright statement relating to the research element definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the research element definition."]
22190 pub copyright: Option<Box<FHIRMarkdown>>,
22191 #[primitive]
22192 #[doc = "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage."]
22193 pub approvalDate: Option<Box<FHIRDate>>,
22194 #[primitive]
22195 #[doc = "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date."]
22196 pub lastReviewDate: Option<Box<FHIRDate>>,
22197 #[doc = "The period during which the research element definition content was or is planned to be in active use."]
22198 pub effectivePeriod: Option<Box<Period>>,
22199 #[doc = "Descriptive topics related to the content of the ResearchElementDefinition. Topics provide a high-level categorization grouping types of ResearchElementDefinitions that can be useful for filtering and searching."]
22200 pub topic: Option<Vec<Box<CodeableConcept>>>,
22201 #[doc = "An individiual or organization primarily involved in the creation and maintenance of the content."]
22202 pub author: Option<Vec<Box<ContactDetail>>>,
22203 #[doc = "An individual or organization primarily responsible for internal coherence of the content."]
22204 pub editor: Option<Vec<Box<ContactDetail>>>,
22205 #[doc = "An individual or organization primarily responsible for review of some aspect of the content."]
22206 pub reviewer: Option<Vec<Box<ContactDetail>>>,
22207 #[doc = "An individual or organization responsible for officially endorsing the content for use in some setting."]
22208 pub endorser: Option<Vec<Box<ContactDetail>>>,
22209 #[doc = "Related artifacts such as additional documentation, justification, or bibliographic references."]
22210 pub relatedArtifact: Option<Vec<Box<RelatedArtifact>>>,
22211 #[primitive]
22212 #[doc = "A reference to a Library resource containing the formal logic used by the ResearchElementDefinition."]
22213 pub library: Option<Vec<Box<FHIRCanonical>>>,
22214 #[rename_field = "type"]
22215 #[primitive]
22216 #[doc = "The type of research element, a population, an exposure, or an outcome."]
22217 pub type_: Box<terminology::ResearchElementType>,
22218 #[primitive]
22219 #[doc = "The type of the outcome (e.g. Dichotomous, Continuous, or Descriptive)."]
22220 pub variableType: Option<Box<terminology::VariableType>>,
22221 #[cardinality(min = 1usize)]
22222 #[doc = "A characteristic that defines the members of the research element. Multiple characteristics are applied with \"and\" semantics."]
22223 pub characteristic: Vec<ResearchElementDefinitionCharacteristic>,
22224}
22225#[derive(
22226 Clone,
22227 Reflect,
22228 Debug,
22229 Default,
22230 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
22231 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
22232)]
22233#[fhir_serialize_type = "complex"]
22234#[doc = "Describes an expected sequence of events for one of the participants of a study. E.g. Exposure to drug A, wash-out, exposure to drug B, wash-out, follow-up."]
22235pub struct ResearchStudyArm {
22236 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
22237 pub id: Option<String>,
22238 #[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 manageable, 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."]
22239 pub extension: Option<Vec<Box<Extension>>>,
22240 #[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 manageable, 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)."]
22241 pub modifierExtension: Option<Vec<Box<Extension>>>,
22242 #[primitive]
22243 #[doc = "Unique, human-readable label for this arm of the study."]
22244 pub name: Box<FHIRString>,
22245 #[rename_field = "type"]
22246 #[doc = "Categorization of study arm, e.g. experimental, active comparator, placebo comparater."]
22247 pub type_: Option<Box<CodeableConcept>>,
22248 #[primitive]
22249 #[doc = "A succinct description of the path through the study that would be followed by a subject adhering to this arm."]
22250 pub description: Option<Box<FHIRString>>,
22251}
22252#[derive(
22253 Clone,
22254 Reflect,
22255 Debug,
22256 Default,
22257 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
22258 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
22259)]
22260#[fhir_serialize_type = "complex"]
22261#[doc = "A goal that the study is aiming to achieve in terms of a scientific question to be answered by the analysis of data collected during the study."]
22262pub struct ResearchStudyObjective {
22263 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
22264 pub id: Option<String>,
22265 #[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 manageable, 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."]
22266 pub extension: Option<Vec<Box<Extension>>>,
22267 #[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 manageable, 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)."]
22268 pub modifierExtension: Option<Vec<Box<Extension>>>,
22269 #[primitive]
22270 #[doc = "Unique, human-readable label for this objective of the study."]
22271 pub name: Option<Box<FHIRString>>,
22272 #[rename_field = "type"]
22273 #[doc = "The kind of study objective."]
22274 pub type_: Option<Box<CodeableConcept>>,
22275}
22276#[derive(
22277 Clone,
22278 Reflect,
22279 Debug,
22280 Default,
22281 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
22282 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
22283)]
22284#[fhir_serialize_type = "resource"]
22285#[doc = "A process where a researcher or organization plans and then executes a series of steps intended to increase the field of healthcare-related knowledge. This includes studies of safety, efficacy, comparative effectiveness and other information about medications, devices, therapies and other interventional and investigative techniques. A ResearchStudy involves the gathering of information about human or animal subjects."]
22286pub struct ResearchStudy {
22287 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
22288 pub id: Option<String>,
22289 #[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."]
22290 pub meta: Option<Box<Meta>>,
22291 #[primitive]
22292 #[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."]
22293 pub implicitRules: Option<Box<FHIRUri>>,
22294 #[primitive]
22295 #[doc = "The base language in which the resource is written."]
22296 pub language: Option<Box<FHIRCode>>,
22297 #[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."]
22298 pub text: Option<Box<Narrative>>,
22299 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
22300 pub contained: Option<Vec<Box<Resource>>>,
22301 #[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 manageable, 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."]
22302 pub extension: Option<Vec<Box<Extension>>>,
22303 #[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 manageable, 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)."]
22304 pub modifierExtension: Option<Vec<Box<Extension>>>,
22305 #[rename_field = "identifier"]
22306 #[doc = "Identifiers assigned to this research study by the sponsor or other systems."]
22307 pub identifier_: Option<Vec<Box<Identifier>>>,
22308 #[primitive]
22309 #[doc = "A short, descriptive user-friendly label for the study."]
22310 pub title: Option<Box<FHIRString>>,
22311 # [reference (targets = ["PlanDefinition"])]
22312 #[doc = "The set of steps expected to be performed as part of the execution of the study."]
22313 pub protocol: Option<Vec<Box<Reference>>>,
22314 # [reference (targets = ["ResearchStudy"])]
22315 #[doc = "A larger research study of which this particular study is a component or step."]
22316 pub partOf: Option<Vec<Box<Reference>>>,
22317 #[primitive]
22318 #[doc = "The current state of the study."]
22319 pub status: Box<terminology::ResearchStudyStatus>,
22320 #[doc = "The type of study based upon the intent of the study's activities. A classification of the intent of the study."]
22321 pub primaryPurposeType: Option<Box<CodeableConcept>>,
22322 #[doc = "The stage in the progression of a therapy from initial experimental use in humans in clinical trials to post-market evaluation."]
22323 pub phase: Option<Box<CodeableConcept>>,
22324 #[doc = "Codes categorizing the type of study such as investigational vs. observational, type of blinding, type of randomization, safety vs. efficacy, etc."]
22325 pub category: Option<Vec<Box<CodeableConcept>>>,
22326 #[doc = "The medication(s), food(s), therapy(ies), device(s) or other concerns or interventions that the study is seeking to gain more information about."]
22327 pub focus: Option<Vec<Box<CodeableConcept>>>,
22328 #[doc = "The condition that is the focus of the study. For example, In a study to examine risk factors for Lupus, might have as an inclusion criterion \"healthy volunteer\", but the target condition code would be a Lupus SNOMED code."]
22329 pub condition: Option<Vec<Box<CodeableConcept>>>,
22330 #[doc = "Contact details to assist a user in learning more about or engaging with the study."]
22331 pub contact: Option<Vec<Box<ContactDetail>>>,
22332 #[doc = "Citations, references and other related documents."]
22333 pub relatedArtifact: Option<Vec<Box<RelatedArtifact>>>,
22334 #[doc = "Key terms to aid in searching for or filtering the study."]
22335 pub keyword: Option<Vec<Box<CodeableConcept>>>,
22336 #[doc = "Indicates a country, state or other region where the study is taking place."]
22337 pub location: Option<Vec<Box<CodeableConcept>>>,
22338 #[primitive]
22339 #[doc = "A full description of how the study is being conducted."]
22340 pub description: Option<Box<FHIRMarkdown>>,
22341 # [reference (targets = ["Group"])]
22342 #[doc = "Reference to a Group that defines the criteria for and quantity of subjects participating in the study. E.g. \" 200 female Europeans between the ages of 20 and 45 with early onset diabetes\"."]
22343 pub enrollment: Option<Vec<Box<Reference>>>,
22344 #[doc = "Identifies the start date and the expected (or actual, depending on status) end date for the study."]
22345 pub period: Option<Box<Period>>,
22346 # [reference (targets = ["Organization"])]
22347 #[doc = "An organization that initiates the investigation and is legally responsible for the study."]
22348 pub sponsor: Option<Box<Reference>>,
22349 # [reference (targets = ["Practitioner" , "PractitionerRole"])]
22350 #[doc = "A researcher in a study who oversees multiple aspects of the study, such as concept development, protocol writing, protocol submission for IRB approval, participant recruitment, informed consent, data collection, analysis, interpretation and presentation."]
22351 pub principalInvestigator: Option<Box<Reference>>,
22352 # [reference (targets = ["Location"])]
22353 #[doc = "A facility in which study activities are conducted."]
22354 pub site: Option<Vec<Box<Reference>>>,
22355 #[doc = "A description and/or code explaining the premature termination of the study."]
22356 pub reasonStopped: Option<Box<CodeableConcept>>,
22357 #[doc = "Comments made about the study by the performer, subject or other participants."]
22358 pub note: Option<Vec<Box<Annotation>>>,
22359 #[doc = "Describes an expected sequence of events for one of the participants of a study. E.g. Exposure to drug A, wash-out, exposure to drug B, wash-out, follow-up."]
22360 pub arm: Option<Vec<ResearchStudyArm>>,
22361 #[doc = "A goal that the study is aiming to achieve in terms of a scientific question to be answered by the analysis of data collected during the study."]
22362 pub objective: Option<Vec<ResearchStudyObjective>>,
22363}
22364#[derive(
22365 Clone,
22366 Reflect,
22367 Debug,
22368 Default,
22369 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
22370 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
22371)]
22372#[fhir_serialize_type = "resource"]
22373#[doc = "A physical entity which is the primary unit of operational and/or administrative interest in a study."]
22374pub struct ResearchSubject {
22375 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
22376 pub id: Option<String>,
22377 #[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."]
22378 pub meta: Option<Box<Meta>>,
22379 #[primitive]
22380 #[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."]
22381 pub implicitRules: Option<Box<FHIRUri>>,
22382 #[primitive]
22383 #[doc = "The base language in which the resource is written."]
22384 pub language: Option<Box<FHIRCode>>,
22385 #[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."]
22386 pub text: Option<Box<Narrative>>,
22387 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
22388 pub contained: Option<Vec<Box<Resource>>>,
22389 #[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 manageable, 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."]
22390 pub extension: Option<Vec<Box<Extension>>>,
22391 #[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 manageable, 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)."]
22392 pub modifierExtension: Option<Vec<Box<Extension>>>,
22393 #[rename_field = "identifier"]
22394 #[doc = "Identifiers assigned to this research subject for a study."]
22395 pub identifier_: Option<Vec<Box<Identifier>>>,
22396 #[primitive]
22397 #[doc = "The current state of the subject."]
22398 pub status: Box<terminology::ResearchSubjectStatus>,
22399 #[doc = "The dates the subject began and ended their participation in the study."]
22400 pub period: Option<Box<Period>>,
22401 # [reference (targets = ["ResearchStudy"])]
22402 #[doc = "Reference to the study the subject is participating in."]
22403 pub study: Box<Reference>,
22404 # [reference (targets = ["Patient"])]
22405 #[doc = "The record of the person or animal who is involved in the study."]
22406 pub individual: Box<Reference>,
22407 #[primitive]
22408 #[doc = "The name of the arm in the study the subject is expected to follow as part of this study."]
22409 pub assignedArm: Option<Box<FHIRString>>,
22410 #[primitive]
22411 #[doc = "The name of the arm in the study the subject actually followed as part of this study."]
22412 pub actualArm: Option<Box<FHIRString>>,
22413 # [reference (targets = ["Consent"])]
22414 #[doc = "A record of the patient's informed agreement to participate in the study."]
22415 pub consent: Option<Box<Reference>>,
22416}
22417#[derive(
22418 Clone,
22419 Reflect,
22420 Debug,
22421 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
22422 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
22423)]
22424#[fhir_serialize_type = "typechoice"]
22425#[type_choice_field_name = "occurrence"]
22426pub enum RiskAssessmentOccurrenceTypeChoice {
22427 DateTime(Box<FHIRDateTime>),
22428 Period(Box<Period>),
22429}
22430impl Default for RiskAssessmentOccurrenceTypeChoice {
22431 fn default() -> Self {
22432 RiskAssessmentOccurrenceTypeChoice::DateTime(Box::new(Default::default()))
22433 }
22434}
22435#[derive(
22436 Clone,
22437 Reflect,
22438 Debug,
22439 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
22440 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
22441)]
22442#[fhir_serialize_type = "typechoice"]
22443#[type_choice_field_name = "probability"]
22444pub enum RiskAssessmentPredictionProbabilityTypeChoice {
22445 Decimal(Box<FHIRDecimal>),
22446 Range(Box<Range>),
22447}
22448impl Default for RiskAssessmentPredictionProbabilityTypeChoice {
22449 fn default() -> Self {
22450 RiskAssessmentPredictionProbabilityTypeChoice::Decimal(Box::new(Default::default()))
22451 }
22452}
22453#[derive(
22454 Clone,
22455 Reflect,
22456 Debug,
22457 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
22458 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
22459)]
22460#[fhir_serialize_type = "typechoice"]
22461#[type_choice_field_name = "when"]
22462pub enum RiskAssessmentPredictionWhenTypeChoice {
22463 Period(Box<Period>),
22464 Range(Box<Range>),
22465}
22466impl Default for RiskAssessmentPredictionWhenTypeChoice {
22467 fn default() -> Self {
22468 RiskAssessmentPredictionWhenTypeChoice::Period(Box::new(Default::default()))
22469 }
22470}
22471#[derive(
22472 Clone,
22473 Reflect,
22474 Debug,
22475 Default,
22476 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
22477 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
22478)]
22479#[fhir_serialize_type = "complex"]
22480#[doc = "Describes the expected outcome for the subject."]
22481pub struct RiskAssessmentPrediction {
22482 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
22483 pub id: Option<String>,
22484 #[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 manageable, 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."]
22485 pub extension: Option<Vec<Box<Extension>>>,
22486 #[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 manageable, 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)."]
22487 pub modifierExtension: Option<Vec<Box<Extension>>>,
22488 #[doc = "One of the potential outcomes for the patient (e.g. remission, death, a particular condition)."]
22489 pub outcome: Option<Box<CodeableConcept>>,
22490 # [type_choice_variants (complex = ["probabilityRange"] , primitive = ["probabilityDecimal"])]
22491 #[doc = "Indicates how likely the outcome is (in the specified timeframe)."]
22492 pub probability: Option<RiskAssessmentPredictionProbabilityTypeChoice>,
22493 #[doc = "Indicates how likely the outcome is (in the specified timeframe), expressed as a qualitative value (e.g. low, medium, or high)."]
22494 pub qualitativeRisk: Option<Box<CodeableConcept>>,
22495 #[primitive]
22496 #[doc = "Indicates the risk for this particular subject (with their specific characteristics) divided by the risk of the population in general. (Numbers greater than 1 = higher risk than the population, numbers less than 1 = lower risk.)."]
22497 pub relativeRisk: Option<Box<FHIRDecimal>>,
22498 # [type_choice_variants (complex = ["whenPeriod" , "whenRange"] , primitive = [])]
22499 #[doc = "Indicates the period of time or age range of the subject to which the specified probability applies."]
22500 pub when: Option<RiskAssessmentPredictionWhenTypeChoice>,
22501 #[primitive]
22502 #[doc = "Additional information explaining the basis for the prediction."]
22503 pub rationale: Option<Box<FHIRString>>,
22504}
22505#[derive(
22506 Clone,
22507 Reflect,
22508 Debug,
22509 Default,
22510 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
22511 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
22512)]
22513#[fhir_serialize_type = "resource"]
22514#[doc = "An assessment of the likely outcome(s) for a patient or other subject as well as the likelihood of each outcome."]
22515pub struct RiskAssessment {
22516 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
22517 pub id: Option<String>,
22518 #[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."]
22519 pub meta: Option<Box<Meta>>,
22520 #[primitive]
22521 #[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."]
22522 pub implicitRules: Option<Box<FHIRUri>>,
22523 #[primitive]
22524 #[doc = "The base language in which the resource is written."]
22525 pub language: Option<Box<FHIRCode>>,
22526 #[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."]
22527 pub text: Option<Box<Narrative>>,
22528 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
22529 pub contained: Option<Vec<Box<Resource>>>,
22530 #[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 manageable, 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."]
22531 pub extension: Option<Vec<Box<Extension>>>,
22532 #[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 manageable, 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)."]
22533 pub modifierExtension: Option<Vec<Box<Extension>>>,
22534 #[rename_field = "identifier"]
22535 #[doc = "Business identifier assigned to the risk assessment."]
22536 pub identifier_: Option<Vec<Box<Identifier>>>,
22537 # [reference (targets = ["Resource"])]
22538 #[doc = "A reference to the request that is fulfilled by this risk assessment."]
22539 pub basedOn: Option<Box<Reference>>,
22540 # [reference (targets = ["Resource"])]
22541 #[doc = "A reference to a resource that this risk assessment is part of, such as a Procedure."]
22542 pub parent: Option<Box<Reference>>,
22543 #[primitive]
22544 #[doc = "The status of the RiskAssessment, using the same statuses as an Observation."]
22545 pub status: Box<terminology::ObservationStatus>,
22546 #[doc = "The algorithm, process or mechanism used to evaluate the risk."]
22547 pub method: Option<Box<CodeableConcept>>,
22548 #[doc = "The type of the risk assessment performed."]
22549 pub code: Option<Box<CodeableConcept>>,
22550 # [reference (targets = ["Patient" , "Group"])]
22551 #[doc = "The patient or group the risk assessment applies to."]
22552 pub subject: Box<Reference>,
22553 # [reference (targets = ["Encounter"])]
22554 #[doc = "The encounter where the assessment was performed."]
22555 pub encounter: Option<Box<Reference>>,
22556 # [type_choice_variants (complex = ["occurrencePeriod"] , primitive = ["occurrenceDateTime"])]
22557 #[doc = "The date (and possibly time) the risk assessment was performed."]
22558 pub occurrence: Option<RiskAssessmentOccurrenceTypeChoice>,
22559 # [reference (targets = ["Condition"])]
22560 #[doc = "For assessments or prognosis specific to a particular condition, indicates the condition being assessed."]
22561 pub condition: Option<Box<Reference>>,
22562 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Device"])]
22563 #[doc = "The provider or software application that performed the assessment."]
22564 pub performer: Option<Box<Reference>>,
22565 #[doc = "The reason the risk assessment was performed."]
22566 pub reasonCode: Option<Vec<Box<CodeableConcept>>>,
22567 # [reference (targets = ["Condition" , "Observation" , "DiagnosticReport" , "DocumentReference"])]
22568 #[doc = "Resources supporting the reason the risk assessment was performed."]
22569 pub reasonReference: Option<Vec<Box<Reference>>>,
22570 # [reference (targets = ["Resource"])]
22571 #[doc = "Indicates the source data considered as part of the assessment (for example, FamilyHistory, Observations, Procedures, Conditions, etc.)."]
22572 pub basis: Option<Vec<Box<Reference>>>,
22573 #[doc = "Describes the expected outcome for the subject."]
22574 pub prediction: Option<Vec<RiskAssessmentPrediction>>,
22575 #[primitive]
22576 #[doc = "A description of the steps that might be taken to reduce the identified risk(s)."]
22577 pub mitigation: Option<Box<FHIRString>>,
22578 #[doc = "Additional comments about the risk assessment."]
22579 pub note: Option<Vec<Box<Annotation>>>,
22580}
22581#[derive(
22582 Clone,
22583 Reflect,
22584 Debug,
22585 Default,
22586 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
22587 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
22588)]
22589#[fhir_serialize_type = "complex"]
22590#[doc = "A description of the size of the sample involved in the synthesis."]
22591pub struct RiskEvidenceSynthesisSampleSize {
22592 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
22593 pub id: Option<String>,
22594 #[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 manageable, 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."]
22595 pub extension: Option<Vec<Box<Extension>>>,
22596 #[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 manageable, 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)."]
22597 pub modifierExtension: Option<Vec<Box<Extension>>>,
22598 #[primitive]
22599 #[doc = "Human-readable summary of sample size."]
22600 pub description: Option<Box<FHIRString>>,
22601 #[primitive]
22602 #[doc = "Number of studies included in this evidence synthesis."]
22603 pub numberOfStudies: Option<Box<FHIRInteger>>,
22604 #[primitive]
22605 #[doc = "Number of participants included in this evidence synthesis."]
22606 pub numberOfParticipants: Option<Box<FHIRInteger>>,
22607}
22608#[derive(
22609 Clone,
22610 Reflect,
22611 Debug,
22612 Default,
22613 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
22614 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
22615)]
22616#[fhir_serialize_type = "complex"]
22617#[doc = "A description of the precision of the estimate for the effect."]
22618pub struct RiskEvidenceSynthesisRiskEstimatePrecisionEstimate {
22619 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
22620 pub id: Option<String>,
22621 #[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 manageable, 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."]
22622 pub extension: Option<Vec<Box<Extension>>>,
22623 #[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 manageable, 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)."]
22624 pub modifierExtension: Option<Vec<Box<Extension>>>,
22625 #[rename_field = "type"]
22626 #[doc = "Examples include confidence interval and interquartile range."]
22627 pub type_: Option<Box<CodeableConcept>>,
22628 #[primitive]
22629 #[doc = "Use 95 for a 95% confidence interval."]
22630 pub level: Option<Box<FHIRDecimal>>,
22631 #[primitive]
22632 #[doc = "Lower bound of confidence interval."]
22633 pub from: Option<Box<FHIRDecimal>>,
22634 #[primitive]
22635 #[doc = "Upper bound of confidence interval."]
22636 pub to: Option<Box<FHIRDecimal>>,
22637}
22638#[derive(
22639 Clone,
22640 Reflect,
22641 Debug,
22642 Default,
22643 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
22644 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
22645)]
22646#[fhir_serialize_type = "complex"]
22647#[doc = "The estimated risk of the outcome."]
22648pub struct RiskEvidenceSynthesisRiskEstimate {
22649 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
22650 pub id: Option<String>,
22651 #[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 manageable, 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."]
22652 pub extension: Option<Vec<Box<Extension>>>,
22653 #[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 manageable, 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)."]
22654 pub modifierExtension: Option<Vec<Box<Extension>>>,
22655 #[primitive]
22656 #[doc = "Human-readable summary of risk estimate."]
22657 pub description: Option<Box<FHIRString>>,
22658 #[rename_field = "type"]
22659 #[doc = "Examples include proportion and mean."]
22660 pub type_: Option<Box<CodeableConcept>>,
22661 #[primitive]
22662 #[doc = "The point estimate of the risk estimate."]
22663 pub value: Option<Box<FHIRDecimal>>,
22664 #[doc = "Specifies the UCUM unit for the outcome."]
22665 pub unitOfMeasure: Option<Box<CodeableConcept>>,
22666 #[primitive]
22667 #[doc = "The sample size for the group that was measured for this risk estimate."]
22668 pub denominatorCount: Option<Box<FHIRInteger>>,
22669 #[primitive]
22670 #[doc = "The number of group members with the outcome of interest."]
22671 pub numeratorCount: Option<Box<FHIRInteger>>,
22672 #[doc = "A description of the precision of the estimate for the effect."]
22673 pub precisionEstimate: Option<Vec<RiskEvidenceSynthesisRiskEstimatePrecisionEstimate>>,
22674}
22675#[derive(
22676 Clone,
22677 Reflect,
22678 Debug,
22679 Default,
22680 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
22681 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
22682)]
22683#[fhir_serialize_type = "complex"]
22684#[doc = "A description of a component of the overall certainty."]
22685pub struct RiskEvidenceSynthesisCertaintyCertaintySubcomponent {
22686 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
22687 pub id: Option<String>,
22688 #[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 manageable, 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."]
22689 pub extension: Option<Vec<Box<Extension>>>,
22690 #[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 manageable, 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)."]
22691 pub modifierExtension: Option<Vec<Box<Extension>>>,
22692 #[rename_field = "type"]
22693 #[doc = "Type of subcomponent of certainty rating."]
22694 pub type_: Option<Box<CodeableConcept>>,
22695 #[doc = "A rating of a subcomponent of rating certainty."]
22696 pub rating: Option<Vec<Box<CodeableConcept>>>,
22697 #[doc = "A human-readable string to clarify or explain concepts about the resource."]
22698 pub note: Option<Vec<Box<Annotation>>>,
22699}
22700#[derive(
22701 Clone,
22702 Reflect,
22703 Debug,
22704 Default,
22705 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
22706 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
22707)]
22708#[fhir_serialize_type = "complex"]
22709#[doc = "A description of the certainty of the risk estimate."]
22710pub struct RiskEvidenceSynthesisCertainty {
22711 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
22712 pub id: Option<String>,
22713 #[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 manageable, 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."]
22714 pub extension: Option<Vec<Box<Extension>>>,
22715 #[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 manageable, 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)."]
22716 pub modifierExtension: Option<Vec<Box<Extension>>>,
22717 #[doc = "A rating of the certainty of the effect estimate."]
22718 pub rating: Option<Vec<Box<CodeableConcept>>>,
22719 #[doc = "A human-readable string to clarify or explain concepts about the resource."]
22720 pub note: Option<Vec<Box<Annotation>>>,
22721 #[doc = "A description of a component of the overall certainty."]
22722 pub certaintySubcomponent: Option<Vec<RiskEvidenceSynthesisCertaintyCertaintySubcomponent>>,
22723}
22724#[derive(
22725 Clone,
22726 Reflect,
22727 Debug,
22728 Default,
22729 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
22730 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
22731)]
22732#[fhir_serialize_type = "resource"]
22733#[doc = "The RiskEvidenceSynthesis resource describes the likelihood of an outcome in a population plus exposure state where the risk estimate is derived from a combination of research studies."]
22734pub struct RiskEvidenceSynthesis {
22735 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
22736 pub id: Option<String>,
22737 #[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."]
22738 pub meta: Option<Box<Meta>>,
22739 #[primitive]
22740 #[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."]
22741 pub implicitRules: Option<Box<FHIRUri>>,
22742 #[primitive]
22743 #[doc = "The base language in which the resource is written."]
22744 pub language: Option<Box<FHIRCode>>,
22745 #[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."]
22746 pub text: Option<Box<Narrative>>,
22747 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
22748 pub contained: Option<Vec<Box<Resource>>>,
22749 #[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 manageable, 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."]
22750 pub extension: Option<Vec<Box<Extension>>>,
22751 #[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 manageable, 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)."]
22752 pub modifierExtension: Option<Vec<Box<Extension>>>,
22753 #[primitive]
22754 #[doc = "An absolute URI that is used to identify this risk evidence synthesis 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 at which an authoritative instance of this risk evidence synthesis is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the risk evidence synthesis is stored on different servers."]
22755 pub url: Option<Box<FHIRUri>>,
22756 #[rename_field = "identifier"]
22757 #[doc = "A formal identifier that is used to identify this risk evidence synthesis when it is represented in other formats, or referenced in a specification, model, design or an instance."]
22758 pub identifier_: Option<Vec<Box<Identifier>>>,
22759 #[primitive]
22760 #[doc = "The identifier that is used to identify this version of the risk evidence synthesis when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the risk evidence synthesis 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."]
22761 pub version: Option<Box<FHIRString>>,
22762 #[primitive]
22763 #[doc = "A natural language name identifying the risk evidence synthesis. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
22764 pub name: Option<Box<FHIRString>>,
22765 #[primitive]
22766 #[doc = "A short, descriptive, user-friendly title for the risk evidence synthesis."]
22767 pub title: Option<Box<FHIRString>>,
22768 #[primitive]
22769 #[doc = "The status of this risk evidence synthesis. Enables tracking the life-cycle of the content."]
22770 pub status: Box<terminology::PublicationStatus>,
22771 #[primitive]
22772 #[doc = "The date (and optionally time) when the risk evidence synthesis was published. 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 risk evidence synthesis changes."]
22773 pub date: Option<Box<FHIRDateTime>>,
22774 #[primitive]
22775 #[doc = "The name of the organization or individual that published the risk evidence synthesis."]
22776 pub publisher: Option<Box<FHIRString>>,
22777 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
22778 pub contact: Option<Vec<Box<ContactDetail>>>,
22779 #[primitive]
22780 #[doc = "A free text natural language description of the risk evidence synthesis from a consumer's perspective."]
22781 pub description: Option<Box<FHIRMarkdown>>,
22782 #[doc = "A human-readable string to clarify or explain concepts about the resource."]
22783 pub note: Option<Vec<Box<Annotation>>>,
22784 #[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 risk evidence synthesis instances."]
22785 pub useContext: Option<Vec<Box<UsageContext>>>,
22786 #[doc = "A legal or geographic region in which the risk evidence synthesis is intended to be used."]
22787 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
22788 #[primitive]
22789 #[doc = "A copyright statement relating to the risk evidence synthesis and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the risk evidence synthesis."]
22790 pub copyright: Option<Box<FHIRMarkdown>>,
22791 #[primitive]
22792 #[doc = "The date on which the resource content was approved by the publisher. Approval happens once when the content is officially approved for usage."]
22793 pub approvalDate: Option<Box<FHIRDate>>,
22794 #[primitive]
22795 #[doc = "The date on which the resource content was last reviewed. Review happens periodically after approval but does not change the original approval date."]
22796 pub lastReviewDate: Option<Box<FHIRDate>>,
22797 #[doc = "The period during which the risk evidence synthesis content was or is planned to be in active use."]
22798 pub effectivePeriod: Option<Box<Period>>,
22799 #[doc = "Descriptive topics related to the content of the RiskEvidenceSynthesis. Topics provide a high-level categorization grouping types of EffectEvidenceSynthesiss that can be useful for filtering and searching."]
22800 pub topic: Option<Vec<Box<CodeableConcept>>>,
22801 #[doc = "An individiual or organization primarily involved in the creation and maintenance of the content."]
22802 pub author: Option<Vec<Box<ContactDetail>>>,
22803 #[doc = "An individual or organization primarily responsible for internal coherence of the content."]
22804 pub editor: Option<Vec<Box<ContactDetail>>>,
22805 #[doc = "An individual or organization primarily responsible for review of some aspect of the content."]
22806 pub reviewer: Option<Vec<Box<ContactDetail>>>,
22807 #[doc = "An individual or organization responsible for officially endorsing the content for use in some setting."]
22808 pub endorser: Option<Vec<Box<ContactDetail>>>,
22809 #[doc = "Related artifacts such as additional documentation, justification, or bibliographic references."]
22810 pub relatedArtifact: Option<Vec<Box<RelatedArtifact>>>,
22811 #[doc = "Type of synthesis eg meta-analysis."]
22812 pub synthesisType: Option<Box<CodeableConcept>>,
22813 #[doc = "Type of study eg randomized trial."]
22814 pub studyType: Option<Box<CodeableConcept>>,
22815 # [reference (targets = ["EvidenceVariable"])]
22816 #[doc = "A reference to a EvidenceVariable resource that defines the population for the research."]
22817 pub population: Box<Reference>,
22818 # [reference (targets = ["EvidenceVariable"])]
22819 #[doc = "A reference to a EvidenceVariable resource that defines the exposure for the research."]
22820 pub exposure: Option<Box<Reference>>,
22821 # [reference (targets = ["EvidenceVariable"])]
22822 #[doc = "A reference to a EvidenceVariable resomece that defines the outcome for the research."]
22823 pub outcome: Box<Reference>,
22824 #[doc = "A description of the size of the sample involved in the synthesis."]
22825 pub sampleSize: Option<RiskEvidenceSynthesisSampleSize>,
22826 #[doc = "The estimated risk of the outcome."]
22827 pub riskEstimate: Option<RiskEvidenceSynthesisRiskEstimate>,
22828 #[doc = "A description of the certainty of the risk estimate."]
22829 pub certainty: Option<Vec<RiskEvidenceSynthesisCertainty>>,
22830}
22831#[derive(
22832 Clone,
22833 Reflect,
22834 Debug,
22835 Default,
22836 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
22837 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
22838)]
22839#[fhir_serialize_type = "resource"]
22840#[doc = "A container for slots of time that may be available for booking appointments."]
22841pub struct Schedule {
22842 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
22843 pub id: Option<String>,
22844 #[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."]
22845 pub meta: Option<Box<Meta>>,
22846 #[primitive]
22847 #[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."]
22848 pub implicitRules: Option<Box<FHIRUri>>,
22849 #[primitive]
22850 #[doc = "The base language in which the resource is written."]
22851 pub language: Option<Box<FHIRCode>>,
22852 #[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."]
22853 pub text: Option<Box<Narrative>>,
22854 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
22855 pub contained: Option<Vec<Box<Resource>>>,
22856 #[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 manageable, 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."]
22857 pub extension: Option<Vec<Box<Extension>>>,
22858 #[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 manageable, 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)."]
22859 pub modifierExtension: Option<Vec<Box<Extension>>>,
22860 #[rename_field = "identifier"]
22861 #[doc = "External Ids for this item."]
22862 pub identifier_: Option<Vec<Box<Identifier>>>,
22863 #[primitive]
22864 #[doc = "Whether this schedule record is in active use or should not be used (such as was entered in error)."]
22865 pub active: Option<Box<FHIRBoolean>>,
22866 #[doc = "A broad categorization of the service that is to be performed during this appointment."]
22867 pub serviceCategory: Option<Vec<Box<CodeableConcept>>>,
22868 #[doc = "The specific service that is to be performed during this appointment."]
22869 pub serviceType: Option<Vec<Box<CodeableConcept>>>,
22870 #[doc = "The specialty of a practitioner that would be required to perform the service requested in this appointment."]
22871 pub specialty: Option<Vec<Box<CodeableConcept>>>,
22872 #[cardinality(min = 1usize)]
22873 # [reference (targets = ["Patient" , "Practitioner" , "PractitionerRole" , "RelatedPerson" , "Device" , "HealthcareService" , "Location"])]
22874 #[doc = "Slots that reference this schedule resource provide the availability details to these referenced resource(s)."]
22875 pub actor: Vec<Box<Reference>>,
22876 #[doc = "The period of time that the slots that reference this Schedule resource cover (even if none exist). These cover the amount of time that an organization's planning horizon; the interval for which they are currently accepting appointments. This does not define a \"template\" for planning outside these dates."]
22877 pub planningHorizon: Option<Box<Period>>,
22878 #[primitive]
22879 #[doc = "Comments on the availability to describe any extended information. Such as custom constraints on the slots that may be associated."]
22880 pub comment: Option<Box<FHIRString>>,
22881}
22882#[derive(
22883 Clone,
22884 Reflect,
22885 Debug,
22886 Default,
22887 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
22888 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
22889)]
22890#[fhir_serialize_type = "complex"]
22891#[doc = "Used to define the parts of a composite search parameter."]
22892pub struct SearchParameterComponent {
22893 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
22894 pub id: Option<String>,
22895 #[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 manageable, 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."]
22896 pub extension: Option<Vec<Box<Extension>>>,
22897 #[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 manageable, 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)."]
22898 pub modifierExtension: Option<Vec<Box<Extension>>>,
22899 #[primitive]
22900 #[doc = "The definition of the search parameter that describes this part."]
22901 pub definition: Box<FHIRCanonical>,
22902 #[primitive]
22903 #[doc = "A sub-expression that defines how to extract values for this component from the output of the main SearchParameter.expression."]
22904 pub expression: Box<FHIRString>,
22905}
22906#[derive(
22907 Clone,
22908 Reflect,
22909 Debug,
22910 Default,
22911 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
22912 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
22913)]
22914#[fhir_serialize_type = "resource"]
22915#[doc = "A search parameter that defines a named search item that can be used to search/filter on a resource."]
22916pub struct SearchParameter {
22917 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
22918 pub id: Option<String>,
22919 #[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."]
22920 pub meta: Option<Box<Meta>>,
22921 #[primitive]
22922 #[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."]
22923 pub implicitRules: Option<Box<FHIRUri>>,
22924 #[primitive]
22925 #[doc = "The base language in which the resource is written."]
22926 pub language: Option<Box<FHIRCode>>,
22927 #[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."]
22928 pub text: Option<Box<Narrative>>,
22929 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
22930 pub contained: Option<Vec<Box<Resource>>>,
22931 #[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 manageable, 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."]
22932 pub extension: Option<Vec<Box<Extension>>>,
22933 #[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 manageable, 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)."]
22934 pub modifierExtension: Option<Vec<Box<Extension>>>,
22935 #[primitive]
22936 #[doc = "An absolute URI that is used to identify this search parameter 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 at which an authoritative instance of this search parameter is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the search parameter is stored on different servers."]
22937 pub url: Box<FHIRUri>,
22938 #[primitive]
22939 #[doc = "The identifier that is used to identify this version of the search parameter when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the search parameter 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."]
22940 pub version: Option<Box<FHIRString>>,
22941 #[primitive]
22942 #[doc = "A natural language name identifying the search parameter. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
22943 pub name: Box<FHIRString>,
22944 #[primitive]
22945 #[doc = "Where this search parameter is originally defined. If a derivedFrom is provided, then the details in the search parameter must be consistent with the definition from which it is defined. i.e. the parameter should have the same meaning, and (usually) the functionality should be a proper subset of the underlying search parameter."]
22946 pub derivedFrom: Option<Box<FHIRCanonical>>,
22947 #[primitive]
22948 #[doc = "The status of this search parameter. Enables tracking the life-cycle of the content."]
22949 pub status: Box<terminology::PublicationStatus>,
22950 #[primitive]
22951 #[doc = "A Boolean value to indicate that this search parameter is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
22952 pub experimental: Option<Box<FHIRBoolean>>,
22953 #[primitive]
22954 #[doc = "The date (and optionally time) when the search parameter was published. 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 search parameter changes."]
22955 pub date: Option<Box<FHIRDateTime>>,
22956 #[primitive]
22957 #[doc = "The name of the organization or individual that published the search parameter."]
22958 pub publisher: Option<Box<FHIRString>>,
22959 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
22960 pub contact: Option<Vec<Box<ContactDetail>>>,
22961 #[primitive]
22962 #[doc = "And how it used."]
22963 pub description: Box<FHIRMarkdown>,
22964 #[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 search parameter instances."]
22965 pub useContext: Option<Vec<Box<UsageContext>>>,
22966 #[doc = "A legal or geographic region in which the search parameter is intended to be used."]
22967 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
22968 #[primitive]
22969 #[doc = "Explanation of why this search parameter is needed and why it has been designed as it has."]
22970 pub purpose: Option<Box<FHIRMarkdown>>,
22971 #[primitive]
22972 #[doc = "The code used in the URL or the parameter name in a parameters resource for this search parameter."]
22973 pub code: Box<FHIRCode>,
22974 #[primitive]
22975 #[cardinality(min = 1usize)]
22976 #[doc = "The base resource type(s) that this search parameter can be used against."]
22977 pub base: Vec<Box<terminology::ResourceTypes>>,
22978 #[rename_field = "type"]
22979 #[primitive]
22980 #[doc = "The type of value that a search parameter may contain, and how the content is interpreted."]
22981 pub type_: Box<terminology::SearchParamType>,
22982 #[primitive]
22983 #[doc = "A FHIRPath expression that returns a set of elements for the search parameter."]
22984 pub expression: Option<Box<FHIRString>>,
22985 #[primitive]
22986 #[doc = "An XPath expression that returns a set of elements for the search parameter."]
22987 pub xpath: Option<Box<FHIRString>>,
22988 #[primitive]
22989 #[doc = "How the search parameter relates to the set of elements returned by evaluating the xpath query."]
22990 pub xpathUsage: Option<Box<terminology::SearchXpathUsage>>,
22991 #[primitive]
22992 #[doc = "Types of resource (if a resource is referenced)."]
22993 pub target: Option<Vec<Box<terminology::ResourceTypes>>>,
22994 #[primitive]
22995 #[doc = "Whether multiple values are allowed for each time the parameter exists. Values are separated by commas, and the parameter matches if any of the values match."]
22996 pub multipleOr: Option<Box<FHIRBoolean>>,
22997 #[primitive]
22998 #[doc = "Whether multiple parameters are allowed - e.g. more than one parameter with the same name. The search matches if all the parameters match."]
22999 pub multipleAnd: Option<Box<FHIRBoolean>>,
23000 #[primitive]
23001 #[doc = "Comparators supported for the search parameter."]
23002 pub comparator: Option<Vec<Box<terminology::SearchComparator>>>,
23003 #[primitive]
23004 #[doc = "A modifier supported for the search parameter."]
23005 pub modifier: Option<Vec<Box<terminology::SearchModifierCode>>>,
23006 #[primitive]
23007 #[doc = "Contains the names of any search parameters which may be chained to the containing search parameter. Chained parameters may be added to search parameters of type reference and specify that resources will only be returned if they contain a reference to a resource which matches the chained parameter value. Values for this field should be drawn from SearchParameter.code for a parameter on the target resource type."]
23008 pub chain: Option<Vec<Box<FHIRString>>>,
23009 #[doc = "Used to define the parts of a composite search parameter."]
23010 pub component: Option<Vec<SearchParameterComponent>>,
23011}
23012#[derive(
23013 Clone,
23014 Reflect,
23015 Debug,
23016 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23017 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23018)]
23019#[fhir_serialize_type = "typechoice"]
23020#[type_choice_field_name = "quantity"]
23021pub enum ServiceRequestQuantityTypeChoice {
23022 Quantity(Box<Quantity>),
23023 Ratio(Box<Ratio>),
23024 Range(Box<Range>),
23025}
23026impl Default for ServiceRequestQuantityTypeChoice {
23027 fn default() -> Self {
23028 ServiceRequestQuantityTypeChoice::Quantity(Box::new(Default::default()))
23029 }
23030}
23031#[derive(
23032 Clone,
23033 Reflect,
23034 Debug,
23035 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23036 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23037)]
23038#[fhir_serialize_type = "typechoice"]
23039#[type_choice_field_name = "occurrence"]
23040pub enum ServiceRequestOccurrenceTypeChoice {
23041 DateTime(Box<FHIRDateTime>),
23042 Period(Box<Period>),
23043 Timing(Box<Timing>),
23044}
23045impl Default for ServiceRequestOccurrenceTypeChoice {
23046 fn default() -> Self {
23047 ServiceRequestOccurrenceTypeChoice::DateTime(Box::new(Default::default()))
23048 }
23049}
23050#[derive(
23051 Clone,
23052 Reflect,
23053 Debug,
23054 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23055 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23056)]
23057#[fhir_serialize_type = "typechoice"]
23058#[type_choice_field_name = "asNeeded"]
23059pub enum ServiceRequestAsNeededTypeChoice {
23060 Boolean(Box<FHIRBoolean>),
23061 CodeableConcept(Box<CodeableConcept>),
23062}
23063impl Default for ServiceRequestAsNeededTypeChoice {
23064 fn default() -> Self {
23065 ServiceRequestAsNeededTypeChoice::Boolean(Box::new(Default::default()))
23066 }
23067}
23068#[derive(
23069 Clone,
23070 Reflect,
23071 Debug,
23072 Default,
23073 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23074 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23075)]
23076#[fhir_serialize_type = "resource"]
23077#[doc = "A record of a request for service such as diagnostic investigations, treatments, or operations to be performed."]
23078pub struct ServiceRequest {
23079 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
23080 pub id: Option<String>,
23081 #[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."]
23082 pub meta: Option<Box<Meta>>,
23083 #[primitive]
23084 #[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."]
23085 pub implicitRules: Option<Box<FHIRUri>>,
23086 #[primitive]
23087 #[doc = "The base language in which the resource is written."]
23088 pub language: Option<Box<FHIRCode>>,
23089 #[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."]
23090 pub text: Option<Box<Narrative>>,
23091 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
23092 pub contained: Option<Vec<Box<Resource>>>,
23093 #[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 manageable, 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."]
23094 pub extension: Option<Vec<Box<Extension>>>,
23095 #[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 manageable, 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)."]
23096 pub modifierExtension: Option<Vec<Box<Extension>>>,
23097 #[rename_field = "identifier"]
23098 #[doc = "Identifiers assigned to this order instance by the orderer and/or the receiver and/or order fulfiller."]
23099 pub identifier_: Option<Vec<Box<Identifier>>>,
23100 #[primitive]
23101 #[doc = "The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest."]
23102 pub instantiatesCanonical: Option<Vec<Box<FHIRCanonical>>>,
23103 #[primitive]
23104 #[doc = "The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest."]
23105 pub instantiatesUri: Option<Vec<Box<FHIRUri>>>,
23106 # [reference (targets = ["CarePlan" , "ServiceRequest" , "MedicationRequest"])]
23107 #[doc = "Plan/proposal/order fulfilled by this request."]
23108 pub basedOn: Option<Vec<Box<Reference>>>,
23109 # [reference (targets = ["ServiceRequest"])]
23110 #[doc = "The request takes the place of the referenced completed or terminated request(s)."]
23111 pub replaces: Option<Vec<Box<Reference>>>,
23112 #[doc = "A shared identifier common to all service requests that were authorized more or less simultaneously by a single author, representing the composite or group identifier."]
23113 pub requisition: Option<Box<Identifier>>,
23114 #[primitive]
23115 #[doc = "The status of the order."]
23116 pub status: Box<terminology::RequestStatus>,
23117 #[primitive]
23118 #[doc = "Whether the request is a proposal, plan, an original order or a reflex order."]
23119 pub intent: Box<terminology::RequestIntent>,
23120 #[doc = "A code that classifies the service for searching, sorting and display purposes (e.g. \"Surgical Procedure\")."]
23121 pub category: Option<Vec<Box<CodeableConcept>>>,
23122 #[primitive]
23123 #[doc = "Indicates how quickly the ServiceRequest should be addressed with respect to other requests."]
23124 pub priority: Option<Box<terminology::RequestPriority>>,
23125 #[primitive]
23126 #[doc = "Set this to true if the record is saying that the service/procedure should NOT be performed."]
23127 pub doNotPerform: Option<Box<FHIRBoolean>>,
23128 #[doc = "A code that identifies a particular service (i.e., procedure, diagnostic investigation, or panel of investigations) that have been requested."]
23129 pub code: Option<Box<CodeableConcept>>,
23130 #[doc = "Additional details and instructions about the how the services are to be delivered. For example, and order for a urinary catheter may have an order detail for an external or indwelling catheter, or an order for a bandage may require additional instructions specifying how the bandage should be applied."]
23131 pub orderDetail: Option<Vec<Box<CodeableConcept>>>,
23132 # [type_choice_variants (complex = ["quantityQuantity" , "quantityRatio" , "quantityRange"] , primitive = [])]
23133 #[doc = "An amount of service being requested which can be a quantity ( for example $1,500 home modification), a ratio ( for example, 20 half day visits per month), or a range (2.0 to 1.8 Gy per fraction)."]
23134 pub quantity: Option<ServiceRequestQuantityTypeChoice>,
23135 # [reference (targets = ["Patient" , "Group" , "Location" , "Device"])]
23136 #[doc = "On whom or what the service is to be performed. This is usually a human patient, but can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans)."]
23137 pub subject: Box<Reference>,
23138 # [reference (targets = ["Encounter"])]
23139 #[doc = "An encounter that provides additional information about the healthcare context in which this request is made."]
23140 pub encounter: Option<Box<Reference>>,
23141 # [type_choice_variants (complex = ["occurrencePeriod" , "occurrenceTiming"] , primitive = ["occurrenceDateTime"])]
23142 #[doc = "The date/time at which the requested service should occur."]
23143 pub occurrence: Option<ServiceRequestOccurrenceTypeChoice>,
23144 # [type_choice_variants (complex = ["asNeededCodeableConcept"] , primitive = ["asNeededBoolean"])]
23145 #[doc = "If a CodeableConcept is present, it indicates the pre-condition for performing the service. For example \"pain\", \"on flare-up\", etc."]
23146 pub asNeeded: Option<ServiceRequestAsNeededTypeChoice>,
23147 #[primitive]
23148 #[doc = "When the request transitioned to being actionable."]
23149 pub authoredOn: Option<Box<FHIRDateTime>>,
23150 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization" , "Patient" , "RelatedPerson" , "Device"])]
23151 #[doc = "The individual who initiated the request and has responsibility for its activation."]
23152 pub requester: Option<Box<Reference>>,
23153 #[doc = "Desired type of performer for doing the requested service."]
23154 pub performerType: Option<Box<CodeableConcept>>,
23155 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization" , "CareTeam" , "HealthcareService" , "Patient" , "Device" , "RelatedPerson"])]
23156 #[doc = "The desired performer for doing the requested service. For example, the surgeon, dermatopathologist, endoscopist, etc."]
23157 pub performer: Option<Vec<Box<Reference>>>,
23158 #[doc = "The preferred location(s) where the procedure should actually happen in coded or free text form. E.g. at home or nursing day care center."]
23159 pub locationCode: Option<Vec<Box<CodeableConcept>>>,
23160 # [reference (targets = ["Location"])]
23161 #[doc = "A reference to the the preferred location(s) where the procedure should actually happen. E.g. at home or nursing day care center."]
23162 pub locationReference: Option<Vec<Box<Reference>>>,
23163 #[doc = "An explanation or justification for why this service is being requested in coded or textual form. This is often for billing purposes. May relate to the resources referred to in `supportingInfo`."]
23164 pub reasonCode: Option<Vec<Box<CodeableConcept>>>,
23165 # [reference (targets = ["Condition" , "Observation" , "DiagnosticReport" , "DocumentReference"])]
23166 #[doc = "Indicates another resource that provides a justification for why this service is being requested. May relate to the resources referred to in `supportingInfo`."]
23167 pub reasonReference: Option<Vec<Box<Reference>>>,
23168 # [reference (targets = ["Coverage" , "ClaimResponse"])]
23169 #[doc = "Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be needed for delivering the requested service."]
23170 pub insurance: Option<Vec<Box<Reference>>>,
23171 # [reference (targets = ["Resource"])]
23172 #[doc = "Additional clinical information about the patient or specimen that may influence the services or their interpretations. This information includes diagnosis, clinical findings and other observations. In laboratory ordering these are typically referred to as \"ask at order entry questions (AOEs)\". This includes observations explicitly requested by the producer (filler) to provide context or supporting information needed to complete the order. For example, reporting the amount of inspired oxygen for blood gas measurements."]
23173 pub supportingInfo: Option<Vec<Box<Reference>>>,
23174 # [reference (targets = ["Specimen"])]
23175 #[doc = "One or more specimens that the laboratory procedure will use."]
23176 pub specimen: Option<Vec<Box<Reference>>>,
23177 #[doc = "Anatomic location where the procedure should be performed. This is the target site."]
23178 pub bodySite: Option<Vec<Box<CodeableConcept>>>,
23179 #[doc = "Any other notes and comments made about the service request. For example, internal billing notes."]
23180 pub note: Option<Vec<Box<Annotation>>>,
23181 #[primitive]
23182 #[doc = "Instructions in terms that are understood by the patient or consumer."]
23183 pub patientInstruction: Option<Box<FHIRString>>,
23184 # [reference (targets = ["Provenance"])]
23185 #[doc = "Key events in the history of the request."]
23186 pub relevantHistory: Option<Vec<Box<Reference>>>,
23187}
23188#[derive(
23189 Clone,
23190 Reflect,
23191 Debug,
23192 Default,
23193 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23194 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23195)]
23196#[fhir_serialize_type = "resource"]
23197#[doc = "A slot of time on a schedule that may be available for booking appointments."]
23198pub struct Slot {
23199 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
23200 pub id: Option<String>,
23201 #[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."]
23202 pub meta: Option<Box<Meta>>,
23203 #[primitive]
23204 #[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."]
23205 pub implicitRules: Option<Box<FHIRUri>>,
23206 #[primitive]
23207 #[doc = "The base language in which the resource is written."]
23208 pub language: Option<Box<FHIRCode>>,
23209 #[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."]
23210 pub text: Option<Box<Narrative>>,
23211 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
23212 pub contained: Option<Vec<Box<Resource>>>,
23213 #[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 manageable, 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."]
23214 pub extension: Option<Vec<Box<Extension>>>,
23215 #[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 manageable, 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)."]
23216 pub modifierExtension: Option<Vec<Box<Extension>>>,
23217 #[rename_field = "identifier"]
23218 #[doc = "External Ids for this item."]
23219 pub identifier_: Option<Vec<Box<Identifier>>>,
23220 #[doc = "A broad categorization of the service that is to be performed during this appointment."]
23221 pub serviceCategory: Option<Vec<Box<CodeableConcept>>>,
23222 #[doc = "The type of appointments that can be booked into this slot (ideally this would be an identifiable service - which is at a location, rather than the location itself). If provided then this overrides the value provided on the availability resource."]
23223 pub serviceType: Option<Vec<Box<CodeableConcept>>>,
23224 #[doc = "The specialty of a practitioner that would be required to perform the service requested in this appointment."]
23225 pub specialty: Option<Vec<Box<CodeableConcept>>>,
23226 #[doc = "The style of appointment or patient that may be booked in the slot (not service type)."]
23227 pub appointmentType: Option<Box<CodeableConcept>>,
23228 # [reference (targets = ["Schedule"])]
23229 #[doc = "The schedule resource that this slot defines an interval of status information."]
23230 pub schedule: Box<Reference>,
23231 #[primitive]
23232 #[doc = "busy | free | busy-unavailable | busy-tentative | entered-in-error."]
23233 pub status: Box<terminology::Slotstatus>,
23234 #[primitive]
23235 #[doc = "Date/Time that the slot is to begin."]
23236 pub start: Box<FHIRInstant>,
23237 #[primitive]
23238 #[doc = "Date/Time that the slot is to conclude."]
23239 pub end: Box<FHIRInstant>,
23240 #[primitive]
23241 #[doc = "This slot has already been overbooked, appointments are unlikely to be accepted for this time."]
23242 pub overbooked: Option<Box<FHIRBoolean>>,
23243 #[primitive]
23244 #[doc = "Comments on the slot to describe any extended information. Such as custom constraints on the slot."]
23245 pub comment: Option<Box<FHIRString>>,
23246}
23247#[derive(
23248 Clone,
23249 Reflect,
23250 Debug,
23251 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23252 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23253)]
23254#[fhir_serialize_type = "typechoice"]
23255#[type_choice_field_name = "collected"]
23256pub enum SpecimenCollectionCollectedTypeChoice {
23257 DateTime(Box<FHIRDateTime>),
23258 Period(Box<Period>),
23259}
23260impl Default for SpecimenCollectionCollectedTypeChoice {
23261 fn default() -> Self {
23262 SpecimenCollectionCollectedTypeChoice::DateTime(Box::new(Default::default()))
23263 }
23264}
23265#[derive(
23266 Clone,
23267 Reflect,
23268 Debug,
23269 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23270 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23271)]
23272#[fhir_serialize_type = "typechoice"]
23273#[type_choice_field_name = "fastingStatus"]
23274pub enum SpecimenCollectionFastingStatusTypeChoice {
23275 CodeableConcept(Box<CodeableConcept>),
23276 Duration(Box<Duration>),
23277}
23278impl Default for SpecimenCollectionFastingStatusTypeChoice {
23279 fn default() -> Self {
23280 SpecimenCollectionFastingStatusTypeChoice::CodeableConcept(Box::new(Default::default()))
23281 }
23282}
23283#[derive(
23284 Clone,
23285 Reflect,
23286 Debug,
23287 Default,
23288 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23289 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23290)]
23291#[fhir_serialize_type = "complex"]
23292#[doc = "Details concerning the specimen collection."]
23293pub struct SpecimenCollection {
23294 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
23295 pub id: Option<String>,
23296 #[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 manageable, 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."]
23297 pub extension: Option<Vec<Box<Extension>>>,
23298 #[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 manageable, 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)."]
23299 pub modifierExtension: Option<Vec<Box<Extension>>>,
23300 # [reference (targets = ["Practitioner" , "PractitionerRole"])]
23301 #[doc = "Person who collected the specimen."]
23302 pub collector: Option<Box<Reference>>,
23303 # [type_choice_variants (complex = ["collectedPeriod"] , primitive = ["collectedDateTime"])]
23304 #[doc = "Time when specimen was collected from subject - the physiologically relevant time."]
23305 pub collected: Option<SpecimenCollectionCollectedTypeChoice>,
23306 #[doc = "The span of time over which the collection of a specimen occurred."]
23307 pub duration: Option<Box<Duration>>,
23308 #[doc = "The quantity of specimen collected; for instance the volume of a blood sample, or the physical measurement of an anatomic pathology sample."]
23309 pub quantity: Option<Box<Quantity>>,
23310 #[doc = "A coded value specifying the technique that is used to perform the procedure."]
23311 pub method: Option<Box<CodeableConcept>>,
23312 #[doc = "Anatomical location from which the specimen was collected (if subject is a patient). This is the target site. This element is not used for environmental specimens."]
23313 pub bodySite: Option<Box<CodeableConcept>>,
23314 # [type_choice_variants (complex = ["fastingStatusCodeableConcept" , "fastingStatusDuration"] , primitive = [])]
23315 #[doc = "Abstinence or reduction from some or all food, drink, or both, for a period of time prior to sample collection."]
23316 pub fastingStatus: Option<SpecimenCollectionFastingStatusTypeChoice>,
23317}
23318#[derive(
23319 Clone,
23320 Reflect,
23321 Debug,
23322 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23323 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23324)]
23325#[fhir_serialize_type = "typechoice"]
23326#[type_choice_field_name = "time"]
23327pub enum SpecimenProcessingTimeTypeChoice {
23328 DateTime(Box<FHIRDateTime>),
23329 Period(Box<Period>),
23330}
23331impl Default for SpecimenProcessingTimeTypeChoice {
23332 fn default() -> Self {
23333 SpecimenProcessingTimeTypeChoice::DateTime(Box::new(Default::default()))
23334 }
23335}
23336#[derive(
23337 Clone,
23338 Reflect,
23339 Debug,
23340 Default,
23341 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23342 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23343)]
23344#[fhir_serialize_type = "complex"]
23345#[doc = "Details concerning processing and processing steps for the specimen."]
23346pub struct SpecimenProcessing {
23347 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
23348 pub id: Option<String>,
23349 #[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 manageable, 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."]
23350 pub extension: Option<Vec<Box<Extension>>>,
23351 #[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 manageable, 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)."]
23352 pub modifierExtension: Option<Vec<Box<Extension>>>,
23353 #[primitive]
23354 #[doc = "Textual description of procedure."]
23355 pub description: Option<Box<FHIRString>>,
23356 #[doc = "A coded value specifying the procedure used to process the specimen."]
23357 pub procedure: Option<Box<CodeableConcept>>,
23358 # [reference (targets = ["Substance"])]
23359 #[doc = "Material used in the processing step."]
23360 pub additive: Option<Vec<Box<Reference>>>,
23361 # [type_choice_variants (complex = ["timePeriod"] , primitive = ["timeDateTime"])]
23362 #[doc = "A record of the time or period when the specimen processing occurred. For example the time of sample fixation or the period of time the sample was in formalin."]
23363 pub time: Option<SpecimenProcessingTimeTypeChoice>,
23364}
23365#[derive(
23366 Clone,
23367 Reflect,
23368 Debug,
23369 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23370 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23371)]
23372#[fhir_serialize_type = "typechoice"]
23373#[type_choice_field_name = "additive"]
23374pub enum SpecimenContainerAdditiveTypeChoice {
23375 CodeableConcept(Box<CodeableConcept>),
23376 # [reference (targets = ["Substance"])]
23377 Reference(Box<Reference>),
23378}
23379impl Default for SpecimenContainerAdditiveTypeChoice {
23380 fn default() -> Self {
23381 SpecimenContainerAdditiveTypeChoice::CodeableConcept(Box::new(Default::default()))
23382 }
23383}
23384#[derive(
23385 Clone,
23386 Reflect,
23387 Debug,
23388 Default,
23389 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23390 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23391)]
23392#[fhir_serialize_type = "complex"]
23393#[doc = "The container holding the specimen. The recursive nature of containers; i.e. blood in tube in tray in rack is not addressed here."]
23394pub struct SpecimenContainer {
23395 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
23396 pub id: Option<String>,
23397 #[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 manageable, 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."]
23398 pub extension: Option<Vec<Box<Extension>>>,
23399 #[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 manageable, 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)."]
23400 pub modifierExtension: Option<Vec<Box<Extension>>>,
23401 #[rename_field = "identifier"]
23402 #[doc = "Id for container. There may be multiple; a manufacturer's bar code, lab assigned identifier, etc. The container ID may differ from the specimen id in some circumstances."]
23403 pub identifier_: Option<Vec<Box<Identifier>>>,
23404 #[primitive]
23405 #[doc = "Textual description of the container."]
23406 pub description: Option<Box<FHIRString>>,
23407 #[rename_field = "type"]
23408 #[doc = "The type of container associated with the specimen (e.g. slide, aliquot, etc.)."]
23409 pub type_: Option<Box<CodeableConcept>>,
23410 #[doc = "The capacity (volume or other measure) the container may contain."]
23411 pub capacity: Option<Box<Quantity>>,
23412 #[doc = "The quantity of specimen in the container; may be volume, dimensions, or other appropriate measurements, depending on the specimen type."]
23413 pub specimenQuantity: Option<Box<Quantity>>,
23414 # [type_choice_variants (complex = ["additiveCodeableConcept" , "additiveReference"] , primitive = [])]
23415 #[doc = "Introduced substance to preserve, maintain or enhance the specimen. Examples: Formalin, Citrate, EDTA."]
23416 pub additive: Option<SpecimenContainerAdditiveTypeChoice>,
23417}
23418#[derive(
23419 Clone,
23420 Reflect,
23421 Debug,
23422 Default,
23423 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23424 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23425)]
23426#[fhir_serialize_type = "resource"]
23427#[doc = "A sample to be used for analysis."]
23428pub struct Specimen {
23429 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
23430 pub id: Option<String>,
23431 #[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."]
23432 pub meta: Option<Box<Meta>>,
23433 #[primitive]
23434 #[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."]
23435 pub implicitRules: Option<Box<FHIRUri>>,
23436 #[primitive]
23437 #[doc = "The base language in which the resource is written."]
23438 pub language: Option<Box<FHIRCode>>,
23439 #[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."]
23440 pub text: Option<Box<Narrative>>,
23441 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
23442 pub contained: Option<Vec<Box<Resource>>>,
23443 #[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 manageable, 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."]
23444 pub extension: Option<Vec<Box<Extension>>>,
23445 #[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 manageable, 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)."]
23446 pub modifierExtension: Option<Vec<Box<Extension>>>,
23447 #[rename_field = "identifier"]
23448 #[doc = "Id for specimen."]
23449 pub identifier_: Option<Vec<Box<Identifier>>>,
23450 #[doc = "The identifier assigned by the lab when accessioning specimen(s). This is not necessarily the same as the specimen identifier, depending on local lab procedures."]
23451 pub accessionIdentifier: Option<Box<Identifier>>,
23452 #[primitive]
23453 #[doc = "The availability of the specimen."]
23454 pub status: Option<Box<terminology::SpecimenStatus>>,
23455 #[rename_field = "type"]
23456 #[doc = "The kind of material that forms the specimen."]
23457 pub type_: Option<Box<CodeableConcept>>,
23458 # [reference (targets = ["Patient" , "Group" , "Device" , "Substance" , "Location"])]
23459 #[doc = "Where the specimen came from. This may be from patient(s), from a location (e.g., the source of an environmental sample), or a sampling of a substance or a device."]
23460 pub subject: Option<Box<Reference>>,
23461 #[primitive]
23462 #[doc = "Time when specimen was received for processing or testing."]
23463 pub receivedTime: Option<Box<FHIRDateTime>>,
23464 # [reference (targets = ["Specimen"])]
23465 #[doc = "Reference to the parent (source) specimen which is used when the specimen was either derived from or a component of another specimen."]
23466 pub parent: Option<Vec<Box<Reference>>>,
23467 # [reference (targets = ["ServiceRequest"])]
23468 #[doc = "Details concerning a service request that required a specimen to be collected."]
23469 pub request: Option<Vec<Box<Reference>>>,
23470 #[doc = "Details concerning the specimen collection."]
23471 pub collection: Option<SpecimenCollection>,
23472 #[doc = "Details concerning processing and processing steps for the specimen."]
23473 pub processing: Option<Vec<SpecimenProcessing>>,
23474 #[doc = "The container holding the specimen. The recursive nature of containers; i.e. blood in tube in tray in rack is not addressed here."]
23475 pub container: Option<Vec<SpecimenContainer>>,
23476 #[doc = "A mode or state of being that describes the nature of the specimen."]
23477 pub condition: Option<Vec<Box<CodeableConcept>>>,
23478 #[doc = "To communicate any details or issues about the specimen or during the specimen collection. (for example: broken vial, sent with patient, frozen)."]
23479 pub note: Option<Vec<Box<Annotation>>>,
23480}
23481#[derive(
23482 Clone,
23483 Reflect,
23484 Debug,
23485 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23486 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23487)]
23488#[fhir_serialize_type = "typechoice"]
23489#[type_choice_field_name = "minimumVolume"]
23490pub enum SpecimenDefinitionTypeTestedContainerMinimumVolumeTypeChoice {
23491 Quantity(Box<Quantity>),
23492 String(Box<FHIRString>),
23493}
23494impl Default for SpecimenDefinitionTypeTestedContainerMinimumVolumeTypeChoice {
23495 fn default() -> Self {
23496 SpecimenDefinitionTypeTestedContainerMinimumVolumeTypeChoice::Quantity(Box::new(
23497 Default::default(),
23498 ))
23499 }
23500}
23501#[derive(
23502 Clone,
23503 Reflect,
23504 Debug,
23505 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23506 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23507)]
23508#[fhir_serialize_type = "typechoice"]
23509#[type_choice_field_name = "additive"]
23510pub enum SpecimenDefinitionTypeTestedContainerAdditiveAdditiveTypeChoice {
23511 CodeableConcept(Box<CodeableConcept>),
23512 # [reference (targets = ["Substance"])]
23513 Reference(Box<Reference>),
23514}
23515impl Default for SpecimenDefinitionTypeTestedContainerAdditiveAdditiveTypeChoice {
23516 fn default() -> Self {
23517 SpecimenDefinitionTypeTestedContainerAdditiveAdditiveTypeChoice::CodeableConcept(Box::new(
23518 Default::default(),
23519 ))
23520 }
23521}
23522#[derive(
23523 Clone,
23524 Reflect,
23525 Debug,
23526 Default,
23527 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23528 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23529)]
23530#[fhir_serialize_type = "complex"]
23531#[doc = "Substance introduced in the kind of container to preserve, maintain or enhance the specimen. Examples: Formalin, Citrate, EDTA."]
23532pub struct SpecimenDefinitionTypeTestedContainerAdditive {
23533 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
23534 pub id: Option<String>,
23535 #[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 manageable, 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."]
23536 pub extension: Option<Vec<Box<Extension>>>,
23537 #[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 manageable, 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)."]
23538 pub modifierExtension: Option<Vec<Box<Extension>>>,
23539 # [type_choice_variants (complex = ["additiveCodeableConcept" , "additiveReference"] , primitive = [])]
23540 #[doc = "Substance introduced in the kind of container to preserve, maintain or enhance the specimen. Examples: Formalin, Citrate, EDTA."]
23541 pub additive: SpecimenDefinitionTypeTestedContainerAdditiveAdditiveTypeChoice,
23542}
23543#[derive(
23544 Clone,
23545 Reflect,
23546 Debug,
23547 Default,
23548 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23549 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23550)]
23551#[fhir_serialize_type = "complex"]
23552#[doc = "The specimen's container."]
23553pub struct SpecimenDefinitionTypeTestedContainer {
23554 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
23555 pub id: Option<String>,
23556 #[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 manageable, 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."]
23557 pub extension: Option<Vec<Box<Extension>>>,
23558 #[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 manageable, 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)."]
23559 pub modifierExtension: Option<Vec<Box<Extension>>>,
23560 #[doc = "The type of material of the container."]
23561 pub material: Option<Box<CodeableConcept>>,
23562 #[rename_field = "type"]
23563 #[doc = "The type of container used to contain this kind of specimen."]
23564 pub type_: Option<Box<CodeableConcept>>,
23565 #[doc = "Color of container cap."]
23566 pub cap: Option<Box<CodeableConcept>>,
23567 #[primitive]
23568 #[doc = "The textual description of the kind of container."]
23569 pub description: Option<Box<FHIRString>>,
23570 #[doc = "The capacity (volume or other measure) of this kind of container."]
23571 pub capacity: Option<Box<Quantity>>,
23572 # [type_choice_variants (complex = ["minimumVolumeQuantity"] , primitive = ["minimumVolumeString"])]
23573 #[doc = "The minimum volume to be conditioned in the container."]
23574 pub minimumVolume: Option<SpecimenDefinitionTypeTestedContainerMinimumVolumeTypeChoice>,
23575 #[doc = "Substance introduced in the kind of container to preserve, maintain or enhance the specimen. Examples: Formalin, Citrate, EDTA."]
23576 pub additive: Option<Vec<SpecimenDefinitionTypeTestedContainerAdditive>>,
23577 #[primitive]
23578 #[doc = "Special processing that should be applied to the container for this kind of specimen."]
23579 pub preparation: Option<Box<FHIRString>>,
23580}
23581#[derive(
23582 Clone,
23583 Reflect,
23584 Debug,
23585 Default,
23586 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23587 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23588)]
23589#[fhir_serialize_type = "complex"]
23590#[doc = "Set of instructions for preservation/transport of the specimen at a defined temperature interval, prior the testing process."]
23591pub struct SpecimenDefinitionTypeTestedHandling {
23592 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
23593 pub id: Option<String>,
23594 #[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 manageable, 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."]
23595 pub extension: Option<Vec<Box<Extension>>>,
23596 #[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 manageable, 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)."]
23597 pub modifierExtension: Option<Vec<Box<Extension>>>,
23598 #[doc = "It qualifies the interval of temperature, which characterizes an occurrence of handling. Conditions that are not related to temperature may be handled in the instruction element."]
23599 pub temperatureQualifier: Option<Box<CodeableConcept>>,
23600 #[doc = "The temperature interval for this set of handling instructions."]
23601 pub temperatureRange: Option<Box<Range>>,
23602 #[doc = "The maximum time interval of preservation of the specimen with these conditions."]
23603 pub maxDuration: Option<Box<Duration>>,
23604 #[primitive]
23605 #[doc = "Additional textual instructions for the preservation or transport of the specimen. For instance, 'Protect from light exposure'."]
23606 pub instruction: Option<Box<FHIRString>>,
23607}
23608#[derive(
23609 Clone,
23610 Reflect,
23611 Debug,
23612 Default,
23613 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23614 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23615)]
23616#[fhir_serialize_type = "complex"]
23617#[doc = "Specimen conditioned in a container as expected by the testing laboratory."]
23618pub struct SpecimenDefinitionTypeTested {
23619 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
23620 pub id: Option<String>,
23621 #[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 manageable, 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."]
23622 pub extension: Option<Vec<Box<Extension>>>,
23623 #[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 manageable, 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)."]
23624 pub modifierExtension: Option<Vec<Box<Extension>>>,
23625 #[primitive]
23626 #[doc = "Primary of secondary specimen."]
23627 pub isDerived: Option<Box<FHIRBoolean>>,
23628 #[rename_field = "type"]
23629 #[doc = "The kind of specimen conditioned for testing expected by lab."]
23630 pub type_: Option<Box<CodeableConcept>>,
23631 #[primitive]
23632 #[doc = "The preference for this type of conditioned specimen."]
23633 pub preference: Box<terminology::SpecimenContainedPreference>,
23634 #[doc = "The specimen's container."]
23635 pub container: Option<SpecimenDefinitionTypeTestedContainer>,
23636 #[primitive]
23637 #[doc = "Requirements for delivery and special handling of this kind of conditioned specimen."]
23638 pub requirement: Option<Box<FHIRString>>,
23639 #[doc = "The usual time that a specimen of this kind is retained after the ordered tests are completed, for the purpose of additional testing."]
23640 pub retentionTime: Option<Box<Duration>>,
23641 #[doc = "Criterion for rejection of the specimen in its container by the laboratory."]
23642 pub rejectionCriterion: Option<Vec<Box<CodeableConcept>>>,
23643 #[doc = "Set of instructions for preservation/transport of the specimen at a defined temperature interval, prior the testing process."]
23644 pub handling: Option<Vec<SpecimenDefinitionTypeTestedHandling>>,
23645}
23646#[derive(
23647 Clone,
23648 Reflect,
23649 Debug,
23650 Default,
23651 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23652 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23653)]
23654#[fhir_serialize_type = "resource"]
23655#[doc = "A kind of specimen with associated set of requirements."]
23656pub struct SpecimenDefinition {
23657 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
23658 pub id: Option<String>,
23659 #[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."]
23660 pub meta: Option<Box<Meta>>,
23661 #[primitive]
23662 #[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."]
23663 pub implicitRules: Option<Box<FHIRUri>>,
23664 #[primitive]
23665 #[doc = "The base language in which the resource is written."]
23666 pub language: Option<Box<FHIRCode>>,
23667 #[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."]
23668 pub text: Option<Box<Narrative>>,
23669 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
23670 pub contained: Option<Vec<Box<Resource>>>,
23671 #[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 manageable, 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."]
23672 pub extension: Option<Vec<Box<Extension>>>,
23673 #[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 manageable, 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)."]
23674 pub modifierExtension: Option<Vec<Box<Extension>>>,
23675 #[rename_field = "identifier"]
23676 #[doc = "A business identifier associated with the kind of specimen."]
23677 pub identifier_: Option<Box<Identifier>>,
23678 #[doc = "The kind of material to be collected."]
23679 pub typeCollected: Option<Box<CodeableConcept>>,
23680 #[doc = "Preparation of the patient for specimen collection."]
23681 pub patientPreparation: Option<Vec<Box<CodeableConcept>>>,
23682 #[primitive]
23683 #[doc = "Time aspect of specimen collection (duration or offset)."]
23684 pub timeAspect: Option<Box<FHIRString>>,
23685 #[doc = "The action to be performed for collecting the specimen."]
23686 pub collection: Option<Vec<Box<CodeableConcept>>>,
23687 #[doc = "Specimen conditioned in a container as expected by the testing laboratory."]
23688 pub typeTested: Option<Vec<SpecimenDefinitionTypeTested>>,
23689}
23690#[derive(
23691 Clone,
23692 Reflect,
23693 Debug,
23694 Default,
23695 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23696 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23697)]
23698#[fhir_serialize_type = "complex"]
23699#[doc = "An external specification that the content is mapped to."]
23700pub struct StructureDefinitionMapping {
23701 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
23702 pub id: Option<String>,
23703 #[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 manageable, 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."]
23704 pub extension: Option<Vec<Box<Extension>>>,
23705 #[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 manageable, 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)."]
23706 pub modifierExtension: Option<Vec<Box<Extension>>>,
23707 #[primitive]
23708 #[doc = "An Internal id that is used to identify this mapping set when specific mappings are made."]
23709 pub identity: Box<FHIRId>,
23710 #[primitive]
23711 #[doc = "An absolute URI that identifies the specification that this mapping is expressed to."]
23712 pub uri: Option<Box<FHIRUri>>,
23713 #[primitive]
23714 #[doc = "A name for the specification that is being mapped to."]
23715 pub name: Option<Box<FHIRString>>,
23716 #[primitive]
23717 #[doc = "Comments about this mapping, including version notes, issues, scope limitations, and other important notes for usage."]
23718 pub comment: Option<Box<FHIRString>>,
23719}
23720#[derive(
23721 Clone,
23722 Reflect,
23723 Debug,
23724 Default,
23725 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23726 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23727)]
23728#[fhir_serialize_type = "complex"]
23729#[doc = "Identifies the types of resource or data type elements to which the extension can be applied."]
23730pub struct StructureDefinitionContext {
23731 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
23732 pub id: Option<String>,
23733 #[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 manageable, 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."]
23734 pub extension: Option<Vec<Box<Extension>>>,
23735 #[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 manageable, 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)."]
23736 pub modifierExtension: Option<Vec<Box<Extension>>>,
23737 #[rename_field = "type"]
23738 #[primitive]
23739 #[doc = "Defines how to interpret the expression that defines what the context of the extension is."]
23740 pub type_: Box<terminology::ExtensionContextType>,
23741 #[primitive]
23742 #[doc = "An expression that defines where an extension can be used in resources."]
23743 pub expression: Box<FHIRString>,
23744}
23745#[derive(
23746 Clone,
23747 Reflect,
23748 Debug,
23749 Default,
23750 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23751 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23752)]
23753#[fhir_serialize_type = "complex"]
23754#[doc = "A snapshot view is expressed in a standalone form that can be used and interpreted without considering the base StructureDefinition."]
23755pub struct StructureDefinitionSnapshot {
23756 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
23757 pub id: Option<String>,
23758 #[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 manageable, 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."]
23759 pub extension: Option<Vec<Box<Extension>>>,
23760 #[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 manageable, 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)."]
23761 pub modifierExtension: Option<Vec<Box<Extension>>>,
23762 #[cardinality(min = 1usize)]
23763 #[doc = "Captures constraints on each element within the resource."]
23764 pub element: Vec<Box<ElementDefinition>>,
23765}
23766#[derive(
23767 Clone,
23768 Reflect,
23769 Debug,
23770 Default,
23771 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23772 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23773)]
23774#[fhir_serialize_type = "complex"]
23775#[doc = "A differential view is expressed relative to the base StructureDefinition - a statement of differences that it applies."]
23776pub struct StructureDefinitionDifferential {
23777 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
23778 pub id: Option<String>,
23779 #[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 manageable, 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."]
23780 pub extension: Option<Vec<Box<Extension>>>,
23781 #[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 manageable, 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)."]
23782 pub modifierExtension: Option<Vec<Box<Extension>>>,
23783 #[cardinality(min = 1usize)]
23784 #[doc = "Captures constraints on each element within the resource."]
23785 pub element: Vec<Box<ElementDefinition>>,
23786}
23787#[derive(
23788 Clone,
23789 Reflect,
23790 Debug,
23791 Default,
23792 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23793 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23794)]
23795#[fhir_serialize_type = "resource"]
23796#[doc = "A definition of a FHIR structure. This resource is used to describe the underlying resources, data types defined in FHIR, and also for describing extensions and constraints on resources and data types."]
23797pub struct StructureDefinition {
23798 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
23799 pub id: Option<String>,
23800 #[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."]
23801 pub meta: Option<Box<Meta>>,
23802 #[primitive]
23803 #[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."]
23804 pub implicitRules: Option<Box<FHIRUri>>,
23805 #[primitive]
23806 #[doc = "The base language in which the resource is written."]
23807 pub language: Option<Box<FHIRCode>>,
23808 #[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."]
23809 pub text: Option<Box<Narrative>>,
23810 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
23811 pub contained: Option<Vec<Box<Resource>>>,
23812 #[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 manageable, 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."]
23813 pub extension: Option<Vec<Box<Extension>>>,
23814 #[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 manageable, 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)."]
23815 pub modifierExtension: Option<Vec<Box<Extension>>>,
23816 #[primitive]
23817 #[doc = "An absolute URI that is used to identify this structure definition 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 at which an authoritative instance of this structure definition is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the structure definition is stored on different servers."]
23818 pub url: Box<FHIRUri>,
23819 #[rename_field = "identifier"]
23820 #[doc = "A formal identifier that is used to identify this structure definition when it is represented in other formats, or referenced in a specification, model, design or an instance."]
23821 pub identifier_: Option<Vec<Box<Identifier>>>,
23822 #[primitive]
23823 #[doc = "The identifier that is used to identify this version of the structure definition when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the structure definition 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."]
23824 pub version: Option<Box<FHIRString>>,
23825 #[primitive]
23826 #[doc = "A natural language name identifying the structure definition. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
23827 pub name: Box<FHIRString>,
23828 #[primitive]
23829 #[doc = "A short, descriptive, user-friendly title for the structure definition."]
23830 pub title: Option<Box<FHIRString>>,
23831 #[primitive]
23832 #[doc = "The status of this structure definition. Enables tracking the life-cycle of the content."]
23833 pub status: Box<terminology::PublicationStatus>,
23834 #[primitive]
23835 #[doc = "A Boolean value to indicate that this structure definition is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
23836 pub experimental: Option<Box<FHIRBoolean>>,
23837 #[primitive]
23838 #[doc = "The date (and optionally time) when the structure definition was published. 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 structure definition changes."]
23839 pub date: Option<Box<FHIRDateTime>>,
23840 #[primitive]
23841 #[doc = "The name of the organization or individual that published the structure definition."]
23842 pub publisher: Option<Box<FHIRString>>,
23843 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
23844 pub contact: Option<Vec<Box<ContactDetail>>>,
23845 #[primitive]
23846 #[doc = "A free text natural language description of the structure definition from a consumer's perspective."]
23847 pub description: Option<Box<FHIRMarkdown>>,
23848 #[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 structure definition instances."]
23849 pub useContext: Option<Vec<Box<UsageContext>>>,
23850 #[doc = "A legal or geographic region in which the structure definition is intended to be used."]
23851 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
23852 #[primitive]
23853 #[doc = "Explanation of why this structure definition is needed and why it has been designed as it has."]
23854 pub purpose: Option<Box<FHIRMarkdown>>,
23855 #[primitive]
23856 #[doc = "A copyright statement relating to the structure definition and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the structure definition."]
23857 pub copyright: Option<Box<FHIRMarkdown>>,
23858 #[doc = "A set of key words or terms from external terminologies that may be used to assist with indexing and searching of templates nby describing the use of this structure definition, or the content it describes."]
23859 pub keyword: Option<Vec<Box<Coding>>>,
23860 #[primitive]
23861 #[doc = "The version of the FHIR specification on which this StructureDefinition is based - this is the formal version of the specification, without the revision number, e.g. [publication].[major].[minor], which is 4.0.1. for this version."]
23862 pub fhirVersion: Option<Box<terminology::FHIRVersion>>,
23863 #[doc = "An external specification that the content is mapped to."]
23864 pub mapping: Option<Vec<StructureDefinitionMapping>>,
23865 #[primitive]
23866 #[doc = "Defines the kind of structure that this definition is describing."]
23867 pub kind: Box<terminology::StructureDefinitionKind>,
23868 #[rename_field = "abstract"]
23869 #[primitive]
23870 #[doc = "Whether structure this definition describes is abstract or not - that is, whether the structure is not intended to be instantiated. For Resources and Data types, abstract types will never be exchanged between systems."]
23871 pub abstract_: Box<FHIRBoolean>,
23872 #[doc = "Identifies the types of resource or data type elements to which the extension can be applied."]
23873 pub context: Option<Vec<StructureDefinitionContext>>,
23874 #[primitive]
23875 #[doc = "A set of rules as FHIRPath Invariants about when the extension can be used (e.g. co-occurrence variants for the extension). All the rules must be true."]
23876 pub contextInvariant: Option<Vec<Box<FHIRString>>>,
23877 #[rename_field = "type"]
23878 #[primitive]
23879 #[doc = "The type this structure describes. If the derivation kind is 'specialization' then this is the master definition for a type, and there is always one of these (a data type, an extension, a resource, including abstract ones). Otherwise the structure definition is a constraint on the stated type (and in this case, the type cannot be an abstract type). References are URLs that are relative to http://hl7.org/fhir/StructureDefinition e.g. \"string\" is a reference to http://hl7.org/fhir/StructureDefinition/string. Absolute URLs are only allowed in logical models."]
23880 pub type_: Box<FHIRUri>,
23881 #[primitive]
23882 #[doc = "An absolute URI that is the base structure from which this type is derived, either by specialization or constraint."]
23883 pub baseDefinition: Option<Box<FHIRCanonical>>,
23884 #[primitive]
23885 #[doc = "How the type relates to the baseDefinition."]
23886 pub derivation: Option<Box<terminology::TypeDerivationRule>>,
23887 #[doc = "A snapshot view is expressed in a standalone form that can be used and interpreted without considering the base StructureDefinition."]
23888 pub snapshot: Option<StructureDefinitionSnapshot>,
23889 #[doc = "A differential view is expressed relative to the base StructureDefinition - a statement of differences that it applies."]
23890 pub differential: Option<StructureDefinitionDifferential>,
23891}
23892#[derive(
23893 Clone,
23894 Reflect,
23895 Debug,
23896 Default,
23897 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23898 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23899)]
23900#[fhir_serialize_type = "complex"]
23901#[doc = "A structure definition used by this map. The structure definition may describe instances that are converted, or the instances that are produced."]
23902pub struct StructureMapStructure {
23903 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
23904 pub id: Option<String>,
23905 #[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 manageable, 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."]
23906 pub extension: Option<Vec<Box<Extension>>>,
23907 #[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 manageable, 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)."]
23908 pub modifierExtension: Option<Vec<Box<Extension>>>,
23909 #[primitive]
23910 #[doc = "The canonical reference to the structure."]
23911 pub url: Box<FHIRCanonical>,
23912 #[primitive]
23913 #[doc = "How the referenced structure is used in this mapping."]
23914 pub mode: Box<terminology::MapModelMode>,
23915 #[primitive]
23916 #[doc = "The name used for this type in the map."]
23917 pub alias: Option<Box<FHIRString>>,
23918 #[primitive]
23919 #[doc = "Documentation that describes how the structure is used in the mapping."]
23920 pub documentation: Option<Box<FHIRString>>,
23921}
23922#[derive(
23923 Clone,
23924 Reflect,
23925 Debug,
23926 Default,
23927 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23928 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23929)]
23930#[fhir_serialize_type = "complex"]
23931#[doc = "A name assigned to an instance of data. The instance must be provided when the mapping is invoked."]
23932pub struct StructureMapGroupInput {
23933 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
23934 pub id: Option<String>,
23935 #[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 manageable, 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."]
23936 pub extension: Option<Vec<Box<Extension>>>,
23937 #[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 manageable, 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)."]
23938 pub modifierExtension: Option<Vec<Box<Extension>>>,
23939 #[primitive]
23940 #[doc = "Name for this instance of data."]
23941 pub name: Box<FHIRId>,
23942 #[rename_field = "type"]
23943 #[primitive]
23944 #[doc = "Type for this instance of data."]
23945 pub type_: Option<Box<FHIRString>>,
23946 #[primitive]
23947 #[doc = "Mode for this instance of data."]
23948 pub mode: Box<terminology::MapInputMode>,
23949 #[primitive]
23950 #[doc = "Documentation for this instance of data."]
23951 pub documentation: Option<Box<FHIRString>>,
23952}
23953#[derive(
23954 Clone,
23955 Reflect,
23956 Debug,
23957 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
23958 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
23959)]
23960#[fhir_serialize_type = "typechoice"]
23961#[type_choice_field_name = "defaultValue"]
23962pub enum StructureMapGroupRuleSourceDefaultValueTypeChoice {
23963 Base64Binary(Box<FHIRBase64Binary>),
23964 Boolean(Box<FHIRBoolean>),
23965 Canonical(Box<FHIRCanonical>),
23966 Code(Box<FHIRCode>),
23967 Date(Box<FHIRDate>),
23968 DateTime(Box<FHIRDateTime>),
23969 Decimal(Box<FHIRDecimal>),
23970 Id(Box<FHIRId>),
23971 Instant(Box<FHIRInstant>),
23972 Integer(Box<FHIRInteger>),
23973 Markdown(Box<FHIRMarkdown>),
23974 Oid(Box<FHIROid>),
23975 PositiveInt(Box<FHIRPositiveInt>),
23976 String(Box<FHIRString>),
23977 Time(Box<FHIRTime>),
23978 UnsignedInt(Box<FHIRUnsignedInt>),
23979 Uri(Box<FHIRUri>),
23980 Url(Box<FHIRUrl>),
23981 Uuid(Box<FHIRUuid>),
23982 Address(Box<Address>),
23983 Age(Box<Age>),
23984 Annotation(Box<Annotation>),
23985 Attachment(Box<Attachment>),
23986 CodeableConcept(Box<CodeableConcept>),
23987 Coding(Box<Coding>),
23988 ContactPoint(Box<ContactPoint>),
23989 Count(Box<Count>),
23990 Distance(Box<Distance>),
23991 Duration(Box<Duration>),
23992 HumanName(Box<HumanName>),
23993 Identifier(Box<Identifier>),
23994 Money(Box<Money>),
23995 Period(Box<Period>),
23996 Quantity(Box<Quantity>),
23997 Range(Box<Range>),
23998 Ratio(Box<Ratio>),
23999 Reference(Box<Reference>),
24000 SampledData(Box<SampledData>),
24001 Signature(Box<Signature>),
24002 Timing(Box<Timing>),
24003 ContactDetail(Box<ContactDetail>),
24004 Contributor(Box<Contributor>),
24005 DataRequirement(Box<DataRequirement>),
24006 Expression(Box<Expression>),
24007 ParameterDefinition(Box<ParameterDefinition>),
24008 RelatedArtifact(Box<RelatedArtifact>),
24009 TriggerDefinition(Box<TriggerDefinition>),
24010 UsageContext(Box<UsageContext>),
24011 Dosage(Box<Dosage>),
24012 Meta(Box<Meta>),
24013}
24014impl Default for StructureMapGroupRuleSourceDefaultValueTypeChoice {
24015 fn default() -> Self {
24016 StructureMapGroupRuleSourceDefaultValueTypeChoice::Base64Binary(
24017 Box::new(Default::default()),
24018 )
24019 }
24020}
24021#[derive(
24022 Clone,
24023 Reflect,
24024 Debug,
24025 Default,
24026 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24027 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24028)]
24029#[fhir_serialize_type = "complex"]
24030#[doc = "Source inputs to the mapping."]
24031pub struct StructureMapGroupRuleSource {
24032 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
24033 pub id: Option<String>,
24034 #[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 manageable, 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."]
24035 pub extension: Option<Vec<Box<Extension>>>,
24036 #[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 manageable, 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)."]
24037 pub modifierExtension: Option<Vec<Box<Extension>>>,
24038 #[primitive]
24039 #[doc = "Type or variable this rule applies to."]
24040 pub context: Box<FHIRId>,
24041 #[primitive]
24042 #[doc = "Specified minimum cardinality for the element. This is optional; if present, it acts an implicit check on the input content."]
24043 pub min: Option<Box<FHIRInteger>>,
24044 #[primitive]
24045 #[doc = "Specified maximum cardinality for the element - a number or a \"*\". This is optional; if present, it acts an implicit check on the input content (* just serves as documentation; it's the default value)."]
24046 pub max: Option<Box<FHIRString>>,
24047 #[rename_field = "type"]
24048 #[primitive]
24049 #[doc = "Specified type for the element. This works as a condition on the mapping - use for polymorphic elements."]
24050 pub type_: Option<Box<FHIRString>>,
24051 # [type_choice_variants (complex = ["defaultValueAddress" , "defaultValueAge" , "defaultValueAnnotation" , "defaultValueAttachment" , "defaultValueCodeableConcept" , "defaultValueCoding" , "defaultValueContactPoint" , "defaultValueCount" , "defaultValueDistance" , "defaultValueDuration" , "defaultValueHumanName" , "defaultValueIdentifier" , "defaultValueMoney" , "defaultValuePeriod" , "defaultValueQuantity" , "defaultValueRange" , "defaultValueRatio" , "defaultValueReference" , "defaultValueSampledData" , "defaultValueSignature" , "defaultValueTiming" , "defaultValueContactDetail" , "defaultValueContributor" , "defaultValueDataRequirement" , "defaultValueExpression" , "defaultValueParameterDefinition" , "defaultValueRelatedArtifact" , "defaultValueTriggerDefinition" , "defaultValueUsageContext" , "defaultValueDosage" , "defaultValueMeta"] , primitive = ["defaultValueBase64Binary" , "defaultValueBoolean" , "defaultValueCanonical" , "defaultValueCode" , "defaultValueDate" , "defaultValueDateTime" , "defaultValueDecimal" , "defaultValueId" , "defaultValueInstant" , "defaultValueInteger" , "defaultValueMarkdown" , "defaultValueOid" , "defaultValuePositiveInt" , "defaultValueString" , "defaultValueTime" , "defaultValueUnsignedInt" , "defaultValueUri" , "defaultValueUrl" , "defaultValueUuid"])]
24052 #[doc = "A value to use if there is no existing value in the source object."]
24053 pub defaultValue: Option<StructureMapGroupRuleSourceDefaultValueTypeChoice>,
24054 #[primitive]
24055 #[doc = "Optional field for this source."]
24056 pub element: Option<Box<FHIRString>>,
24057 #[primitive]
24058 #[doc = "How to handle the list mode for this element."]
24059 pub listMode: Option<Box<terminology::MapSourceListMode>>,
24060 #[primitive]
24061 #[doc = "Named context for field, if a field is specified."]
24062 pub variable: Option<Box<FHIRId>>,
24063 #[primitive]
24064 #[doc = "FHIRPath expression - must be true or the rule does not apply."]
24065 pub condition: Option<Box<FHIRString>>,
24066 #[primitive]
24067 #[doc = "FHIRPath expression - must be true or the mapping engine throws an error instead of completing."]
24068 pub check: Option<Box<FHIRString>>,
24069 #[primitive]
24070 #[doc = "A FHIRPath expression which specifies a message to put in the transform log when content matching the source rule is found."]
24071 pub logMessage: Option<Box<FHIRString>>,
24072}
24073#[derive(
24074 Clone,
24075 Reflect,
24076 Debug,
24077 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24078 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24079)]
24080#[fhir_serialize_type = "typechoice"]
24081#[type_choice_field_name = "value"]
24082pub enum StructureMapGroupRuleTargetParameterValueTypeChoice {
24083 Id(Box<FHIRId>),
24084 String(Box<FHIRString>),
24085 Boolean(Box<FHIRBoolean>),
24086 Integer(Box<FHIRInteger>),
24087 Decimal(Box<FHIRDecimal>),
24088}
24089impl Default for StructureMapGroupRuleTargetParameterValueTypeChoice {
24090 fn default() -> Self {
24091 StructureMapGroupRuleTargetParameterValueTypeChoice::Id(Box::new(Default::default()))
24092 }
24093}
24094#[derive(
24095 Clone,
24096 Reflect,
24097 Debug,
24098 Default,
24099 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24100 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24101)]
24102#[fhir_serialize_type = "complex"]
24103#[doc = "Parameters to the transform."]
24104pub struct StructureMapGroupRuleTargetParameter {
24105 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
24106 pub id: Option<String>,
24107 #[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 manageable, 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."]
24108 pub extension: Option<Vec<Box<Extension>>>,
24109 #[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 manageable, 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)."]
24110 pub modifierExtension: Option<Vec<Box<Extension>>>,
24111 # [type_choice_variants (complex = [] , primitive = ["valueId" , "valueString" , "valueBoolean" , "valueInteger" , "valueDecimal"])]
24112 #[doc = "Parameter value - variable or literal."]
24113 pub value: StructureMapGroupRuleTargetParameterValueTypeChoice,
24114}
24115#[derive(
24116 Clone,
24117 Reflect,
24118 Debug,
24119 Default,
24120 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24121 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24122)]
24123#[fhir_serialize_type = "complex"]
24124#[doc = "Content to create because of this mapping rule."]
24125pub struct StructureMapGroupRuleTarget {
24126 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
24127 pub id: Option<String>,
24128 #[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 manageable, 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."]
24129 pub extension: Option<Vec<Box<Extension>>>,
24130 #[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 manageable, 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)."]
24131 pub modifierExtension: Option<Vec<Box<Extension>>>,
24132 #[primitive]
24133 #[doc = "Type or variable this rule applies to."]
24134 pub context: Option<Box<FHIRId>>,
24135 #[primitive]
24136 #[doc = "How to interpret the context."]
24137 pub contextType: Option<Box<terminology::MapContextType>>,
24138 #[primitive]
24139 #[doc = "Field to create in the context."]
24140 pub element: Option<Box<FHIRString>>,
24141 #[primitive]
24142 #[doc = "Named context for field, if desired, and a field is specified."]
24143 pub variable: Option<Box<FHIRId>>,
24144 #[primitive]
24145 #[doc = "If field is a list, how to manage the list."]
24146 pub listMode: Option<Vec<Box<terminology::MapTargetListMode>>>,
24147 #[primitive]
24148 #[doc = "Internal rule reference for shared list items."]
24149 pub listRuleId: Option<Box<FHIRId>>,
24150 #[primitive]
24151 #[doc = "How the data is copied / created."]
24152 pub transform: Option<Box<terminology::MapTransform>>,
24153 #[doc = "Parameters to the transform."]
24154 pub parameter: Option<Vec<StructureMapGroupRuleTargetParameter>>,
24155}
24156#[derive(
24157 Clone,
24158 Reflect,
24159 Debug,
24160 Default,
24161 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24162 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24163)]
24164#[fhir_serialize_type = "complex"]
24165#[doc = "Which other rules to apply in the context of this rule."]
24166pub struct StructureMapGroupRuleDependent {
24167 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
24168 pub id: Option<String>,
24169 #[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 manageable, 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."]
24170 pub extension: Option<Vec<Box<Extension>>>,
24171 #[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 manageable, 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)."]
24172 pub modifierExtension: Option<Vec<Box<Extension>>>,
24173 #[primitive]
24174 #[doc = "Name of a rule or group to apply."]
24175 pub name: Box<FHIRId>,
24176 #[primitive]
24177 #[cardinality(min = 1usize)]
24178 #[doc = "Variable to pass to the rule or group."]
24179 pub variable: Vec<Box<FHIRString>>,
24180}
24181#[derive(
24182 Clone,
24183 Reflect,
24184 Debug,
24185 Default,
24186 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24187 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24188)]
24189#[fhir_serialize_type = "complex"]
24190#[doc = "Transform Rule from source to target."]
24191pub struct StructureMapGroupRule {
24192 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
24193 pub id: Option<String>,
24194 #[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 manageable, 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."]
24195 pub extension: Option<Vec<Box<Extension>>>,
24196 #[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 manageable, 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)."]
24197 pub modifierExtension: Option<Vec<Box<Extension>>>,
24198 #[primitive]
24199 #[doc = "Name of the rule for internal references."]
24200 pub name: Box<FHIRId>,
24201 #[cardinality(min = 1usize)]
24202 #[doc = "Source inputs to the mapping."]
24203 pub source: Vec<StructureMapGroupRuleSource>,
24204 #[doc = "Content to create because of this mapping rule."]
24205 pub target: Option<Vec<StructureMapGroupRuleTarget>>,
24206 #[doc = "Rules contained in this rule."]
24207 pub rule: Option<Vec<StructureMapGroupRule>>,
24208 #[doc = "Which other rules to apply in the context of this rule."]
24209 pub dependent: Option<Vec<StructureMapGroupRuleDependent>>,
24210 #[primitive]
24211 #[doc = "Documentation for this instance of data."]
24212 pub documentation: Option<Box<FHIRString>>,
24213}
24214#[derive(
24215 Clone,
24216 Reflect,
24217 Debug,
24218 Default,
24219 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24220 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24221)]
24222#[fhir_serialize_type = "complex"]
24223#[doc = "Organizes the mapping into manageable chunks for human review/ease of maintenance."]
24224pub struct StructureMapGroup {
24225 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
24226 pub id: Option<String>,
24227 #[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 manageable, 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."]
24228 pub extension: Option<Vec<Box<Extension>>>,
24229 #[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 manageable, 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)."]
24230 pub modifierExtension: Option<Vec<Box<Extension>>>,
24231 #[primitive]
24232 #[doc = "A unique name for the group for the convenience of human readers."]
24233 pub name: Box<FHIRId>,
24234 #[primitive]
24235 #[doc = "Another group that this group adds rules to."]
24236 pub extends: Option<Box<FHIRId>>,
24237 #[primitive]
24238 #[doc = "If this is the default rule set to apply for the source type or this combination of types."]
24239 pub typeMode: Box<terminology::MapGroupTypeMode>,
24240 #[primitive]
24241 #[doc = "Additional supporting documentation that explains the purpose of the group and the types of mappings within it."]
24242 pub documentation: Option<Box<FHIRString>>,
24243 #[cardinality(min = 1usize)]
24244 #[doc = "A name assigned to an instance of data. The instance must be provided when the mapping is invoked."]
24245 pub input: Vec<StructureMapGroupInput>,
24246 #[cardinality(min = 1usize)]
24247 #[doc = "Transform Rule from source to target."]
24248 pub rule: Vec<StructureMapGroupRule>,
24249}
24250#[derive(
24251 Clone,
24252 Reflect,
24253 Debug,
24254 Default,
24255 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24256 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24257)]
24258#[fhir_serialize_type = "resource"]
24259#[doc = "A Map of relationships between 2 structures that can be used to transform data."]
24260pub struct StructureMap {
24261 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
24262 pub id: Option<String>,
24263 #[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."]
24264 pub meta: Option<Box<Meta>>,
24265 #[primitive]
24266 #[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."]
24267 pub implicitRules: Option<Box<FHIRUri>>,
24268 #[primitive]
24269 #[doc = "The base language in which the resource is written."]
24270 pub language: Option<Box<FHIRCode>>,
24271 #[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."]
24272 pub text: Option<Box<Narrative>>,
24273 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
24274 pub contained: Option<Vec<Box<Resource>>>,
24275 #[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 manageable, 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."]
24276 pub extension: Option<Vec<Box<Extension>>>,
24277 #[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 manageable, 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)."]
24278 pub modifierExtension: Option<Vec<Box<Extension>>>,
24279 #[primitive]
24280 #[doc = "An absolute URI that is used to identify this structure map 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 at which an authoritative instance of this structure map is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the structure map is stored on different servers."]
24281 pub url: Box<FHIRUri>,
24282 #[rename_field = "identifier"]
24283 #[doc = "A formal identifier that is used to identify this structure map when it is represented in other formats, or referenced in a specification, model, design or an instance."]
24284 pub identifier_: Option<Vec<Box<Identifier>>>,
24285 #[primitive]
24286 #[doc = "The identifier that is used to identify this version of the structure map when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the structure map 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."]
24287 pub version: Option<Box<FHIRString>>,
24288 #[primitive]
24289 #[doc = "A natural language name identifying the structure map. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
24290 pub name: Box<FHIRString>,
24291 #[primitive]
24292 #[doc = "A short, descriptive, user-friendly title for the structure map."]
24293 pub title: Option<Box<FHIRString>>,
24294 #[primitive]
24295 #[doc = "The status of this structure map. Enables tracking the life-cycle of the content."]
24296 pub status: Box<terminology::PublicationStatus>,
24297 #[primitive]
24298 #[doc = "A Boolean value to indicate that this structure map is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
24299 pub experimental: Option<Box<FHIRBoolean>>,
24300 #[primitive]
24301 #[doc = "The date (and optionally time) when the structure map was published. 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 structure map changes."]
24302 pub date: Option<Box<FHIRDateTime>>,
24303 #[primitive]
24304 #[doc = "The name of the organization or individual that published the structure map."]
24305 pub publisher: Option<Box<FHIRString>>,
24306 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
24307 pub contact: Option<Vec<Box<ContactDetail>>>,
24308 #[primitive]
24309 #[doc = "A free text natural language description of the structure map from a consumer's perspective."]
24310 pub description: Option<Box<FHIRMarkdown>>,
24311 #[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 structure map instances."]
24312 pub useContext: Option<Vec<Box<UsageContext>>>,
24313 #[doc = "A legal or geographic region in which the structure map is intended to be used."]
24314 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
24315 #[primitive]
24316 #[doc = "Explanation of why this structure map is needed and why it has been designed as it has."]
24317 pub purpose: Option<Box<FHIRMarkdown>>,
24318 #[primitive]
24319 #[doc = "A copyright statement relating to the structure map and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the structure map."]
24320 pub copyright: Option<Box<FHIRMarkdown>>,
24321 #[doc = "A structure definition used by this map. The structure definition may describe instances that are converted, or the instances that are produced."]
24322 pub structure: Option<Vec<StructureMapStructure>>,
24323 #[primitive]
24324 #[doc = "Other maps used by this map (canonical URLs)."]
24325 pub import: Option<Vec<Box<FHIRCanonical>>>,
24326 #[cardinality(min = 1usize)]
24327 #[doc = "Organizes the mapping into manageable chunks for human review/ease of maintenance."]
24328 pub group: Vec<StructureMapGroup>,
24329}
24330#[derive(
24331 Clone,
24332 Reflect,
24333 Debug,
24334 Default,
24335 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24336 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24337)]
24338#[fhir_serialize_type = "complex"]
24339#[doc = "Details where to send notifications when resources are received that meet the criteria."]
24340pub struct SubscriptionChannel {
24341 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
24342 pub id: Option<String>,
24343 #[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 manageable, 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."]
24344 pub extension: Option<Vec<Box<Extension>>>,
24345 #[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 manageable, 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)."]
24346 pub modifierExtension: Option<Vec<Box<Extension>>>,
24347 #[rename_field = "type"]
24348 #[primitive]
24349 #[doc = "The type of channel to send notifications on."]
24350 pub type_: Box<terminology::SubscriptionChannelType>,
24351 #[primitive]
24352 #[doc = "The url that describes the actual end-point to send messages to."]
24353 pub endpoint: Option<Box<FHIRUrl>>,
24354 #[primitive]
24355 #[doc = "The mime type to send the payload in - either application/fhir+xml, or application/fhir+json. If the payload is not present, then there is no payload in the notification, just a notification. The mime type \"text/plain\" may also be used for Email and SMS subscriptions."]
24356 pub payload: Option<Box<FHIRCode>>,
24357 #[primitive]
24358 #[doc = "Additional headers / information to send as part of the notification."]
24359 pub header: Option<Vec<Box<FHIRString>>>,
24360}
24361#[derive(
24362 Clone,
24363 Reflect,
24364 Debug,
24365 Default,
24366 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24367 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24368)]
24369#[fhir_serialize_type = "resource"]
24370#[doc = "The subscription resource is used to define a push-based subscription from a server to another system. Once a subscription is registered with the server, the server checks every resource that is created or updated, and if the resource matches the given criteria, it sends a message on the defined \"channel\" so that another system can take an appropriate action."]
24371pub struct Subscription {
24372 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
24373 pub id: Option<String>,
24374 #[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."]
24375 pub meta: Option<Box<Meta>>,
24376 #[primitive]
24377 #[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."]
24378 pub implicitRules: Option<Box<FHIRUri>>,
24379 #[primitive]
24380 #[doc = "The base language in which the resource is written."]
24381 pub language: Option<Box<FHIRCode>>,
24382 #[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."]
24383 pub text: Option<Box<Narrative>>,
24384 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
24385 pub contained: Option<Vec<Box<Resource>>>,
24386 #[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 manageable, 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."]
24387 pub extension: Option<Vec<Box<Extension>>>,
24388 #[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 manageable, 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)."]
24389 pub modifierExtension: Option<Vec<Box<Extension>>>,
24390 #[primitive]
24391 #[doc = "The status of the subscription, which marks the server state for managing the subscription."]
24392 pub status: Box<terminology::SubscriptionStatus>,
24393 #[doc = "Contact details for a human to contact about the subscription. The primary use of this for system administrator troubleshooting."]
24394 pub contact: Option<Vec<Box<ContactPoint>>>,
24395 #[primitive]
24396 #[doc = "The time for the server to turn the subscription off."]
24397 pub end: Option<Box<FHIRInstant>>,
24398 #[primitive]
24399 #[doc = "A description of why this subscription is defined."]
24400 pub reason: Box<FHIRString>,
24401 #[primitive]
24402 #[doc = "The rules that the server should use to determine when to generate notifications for this subscription."]
24403 pub criteria: Box<FHIRString>,
24404 #[primitive]
24405 #[doc = "A record of the last error that occurred when the server processed a notification."]
24406 pub error: Option<Box<FHIRString>>,
24407 #[doc = "Details where to send notifications when resources are received that meet the criteria."]
24408 pub channel: SubscriptionChannel,
24409}
24410#[derive(
24411 Clone,
24412 Reflect,
24413 Debug,
24414 Default,
24415 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24416 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24417)]
24418#[fhir_serialize_type = "complex"]
24419#[doc = "Substance may be used to describe a kind of substance, or a specific package/container of the substance: an instance."]
24420pub struct SubstanceInstance {
24421 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
24422 pub id: Option<String>,
24423 #[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 manageable, 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."]
24424 pub extension: Option<Vec<Box<Extension>>>,
24425 #[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 manageable, 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)."]
24426 pub modifierExtension: Option<Vec<Box<Extension>>>,
24427 #[rename_field = "identifier"]
24428 #[doc = "Identifier associated with the package/container (usually a label affixed directly)."]
24429 pub identifier_: Option<Box<Identifier>>,
24430 #[primitive]
24431 #[doc = "When the substance is no longer valid to use. For some substances, a single arbitrary date is used for expiry."]
24432 pub expiry: Option<Box<FHIRDateTime>>,
24433 #[doc = "The amount of the substance."]
24434 pub quantity: Option<Box<Quantity>>,
24435}
24436#[derive(
24437 Clone,
24438 Reflect,
24439 Debug,
24440 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24441 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24442)]
24443#[fhir_serialize_type = "typechoice"]
24444#[type_choice_field_name = "substance"]
24445pub enum SubstanceIngredientSubstanceTypeChoice {
24446 CodeableConcept(Box<CodeableConcept>),
24447 # [reference (targets = ["Substance"])]
24448 Reference(Box<Reference>),
24449}
24450impl Default for SubstanceIngredientSubstanceTypeChoice {
24451 fn default() -> Self {
24452 SubstanceIngredientSubstanceTypeChoice::CodeableConcept(Box::new(Default::default()))
24453 }
24454}
24455#[derive(
24456 Clone,
24457 Reflect,
24458 Debug,
24459 Default,
24460 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24461 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24462)]
24463#[fhir_serialize_type = "complex"]
24464#[doc = "A substance can be composed of other substances."]
24465pub struct SubstanceIngredient {
24466 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
24467 pub id: Option<String>,
24468 #[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 manageable, 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."]
24469 pub extension: Option<Vec<Box<Extension>>>,
24470 #[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 manageable, 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)."]
24471 pub modifierExtension: Option<Vec<Box<Extension>>>,
24472 #[doc = "The amount of the ingredient in the substance - a concentration ratio."]
24473 pub quantity: Option<Box<Ratio>>,
24474 # [type_choice_variants (complex = ["substanceCodeableConcept" , "substanceReference"] , primitive = [])]
24475 #[doc = "Another substance that is a component of this substance."]
24476 pub substance: SubstanceIngredientSubstanceTypeChoice,
24477}
24478#[derive(
24479 Clone,
24480 Reflect,
24481 Debug,
24482 Default,
24483 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24484 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24485)]
24486#[fhir_serialize_type = "resource"]
24487#[doc = "A homogeneous material with a definite composition."]
24488pub struct Substance {
24489 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
24490 pub id: Option<String>,
24491 #[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."]
24492 pub meta: Option<Box<Meta>>,
24493 #[primitive]
24494 #[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."]
24495 pub implicitRules: Option<Box<FHIRUri>>,
24496 #[primitive]
24497 #[doc = "The base language in which the resource is written."]
24498 pub language: Option<Box<FHIRCode>>,
24499 #[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."]
24500 pub text: Option<Box<Narrative>>,
24501 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
24502 pub contained: Option<Vec<Box<Resource>>>,
24503 #[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 manageable, 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."]
24504 pub extension: Option<Vec<Box<Extension>>>,
24505 #[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 manageable, 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)."]
24506 pub modifierExtension: Option<Vec<Box<Extension>>>,
24507 #[rename_field = "identifier"]
24508 #[doc = "Unique identifier for the substance."]
24509 pub identifier_: Option<Vec<Box<Identifier>>>,
24510 #[primitive]
24511 #[doc = "A code to indicate if the substance is actively used."]
24512 pub status: Option<Box<terminology::SubstanceStatus>>,
24513 #[doc = "A code that classifies the general type of substance. This is used for searching, sorting and display purposes."]
24514 pub category: Option<Vec<Box<CodeableConcept>>>,
24515 #[doc = "A code (or set of codes) that identify this substance."]
24516 pub code: Box<CodeableConcept>,
24517 #[primitive]
24518 #[doc = "A description of the substance - its appearance, handling requirements, and other usage notes."]
24519 pub description: Option<Box<FHIRString>>,
24520 #[doc = "Substance may be used to describe a kind of substance, or a specific package/container of the substance: an instance."]
24521 pub instance: Option<Vec<SubstanceInstance>>,
24522 #[doc = "A substance can be composed of other substances."]
24523 pub ingredient: Option<Vec<SubstanceIngredient>>,
24524}
24525#[derive(
24526 Clone,
24527 Reflect,
24528 Debug,
24529 Default,
24530 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24531 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24532)]
24533#[fhir_serialize_type = "complex"]
24534#[doc = "The linkages between sugar residues will also be captured."]
24535pub struct SubstanceNucleicAcidSubunitLinkage {
24536 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
24537 pub id: Option<String>,
24538 #[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 manageable, 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."]
24539 pub extension: Option<Vec<Box<Extension>>>,
24540 #[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 manageable, 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)."]
24541 pub modifierExtension: Option<Vec<Box<Extension>>>,
24542 #[primitive]
24543 #[doc = "The entity that links the sugar residues together should also be captured for nearly all naturally occurring nucleic acid the linkage is a phosphate group. For many synthetic oligonucleotides phosphorothioate linkages are often seen. Linkage connectivity is assumed to be 3’-5’. If the linkage is either 3’-3’ or 5’-5’ this should be specified."]
24544 pub connectivity: Option<Box<FHIRString>>,
24545 #[rename_field = "identifier"]
24546 #[doc = "Each linkage will be registered as a fragment and have an ID."]
24547 pub identifier_: Option<Box<Identifier>>,
24548 #[primitive]
24549 #[doc = "Each linkage will be registered as a fragment and have at least one name. A single name shall be assigned to each linkage."]
24550 pub name: Option<Box<FHIRString>>,
24551 #[primitive]
24552 #[doc = "Residues shall be captured as described in 5.3.6.8.3."]
24553 pub residueSite: Option<Box<FHIRString>>,
24554}
24555#[derive(
24556 Clone,
24557 Reflect,
24558 Debug,
24559 Default,
24560 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24561 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24562)]
24563#[fhir_serialize_type = "complex"]
24564#[doc = "5.3.6.8.1 Sugar ID (Mandatory)."]
24565pub struct SubstanceNucleicAcidSubunitSugar {
24566 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
24567 pub id: Option<String>,
24568 #[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 manageable, 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."]
24569 pub extension: Option<Vec<Box<Extension>>>,
24570 #[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 manageable, 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)."]
24571 pub modifierExtension: Option<Vec<Box<Extension>>>,
24572 #[rename_field = "identifier"]
24573 #[doc = "The Substance ID of the sugar or sugar-like component that make up the nucleotide."]
24574 pub identifier_: Option<Box<Identifier>>,
24575 #[primitive]
24576 #[doc = "The name of the sugar or sugar-like component that make up the nucleotide."]
24577 pub name: Option<Box<FHIRString>>,
24578 #[primitive]
24579 #[doc = "The residues that contain a given sugar will be captured. The order of given residues will be captured in the 5‘-3‘direction consistent with the base sequences listed above."]
24580 pub residueSite: Option<Box<FHIRString>>,
24581}
24582#[derive(
24583 Clone,
24584 Reflect,
24585 Debug,
24586 Default,
24587 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24588 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24589)]
24590#[fhir_serialize_type = "complex"]
24591#[doc = "Subunits are listed in order of decreasing length; sequences of the same length will be ordered by molecular weight; subunits that have identical sequences will be repeated multiple times."]
24592pub struct SubstanceNucleicAcidSubunit {
24593 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
24594 pub id: Option<String>,
24595 #[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 manageable, 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."]
24596 pub extension: Option<Vec<Box<Extension>>>,
24597 #[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 manageable, 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)."]
24598 pub modifierExtension: Option<Vec<Box<Extension>>>,
24599 #[primitive]
24600 #[doc = "Index of linear sequences of nucleic acids in order of decreasing length. Sequences of the same length will be ordered by molecular weight. Subunits that have identical sequences will be repeated and have sequential subscripts."]
24601 pub subunit: Option<Box<FHIRInteger>>,
24602 #[primitive]
24603 #[doc = "Actual nucleotide sequence notation from 5' to 3' end using standard single letter codes. In addition to the base sequence, sugar and type of phosphate or non-phosphate linkage should also be captured."]
24604 pub sequence: Option<Box<FHIRString>>,
24605 #[primitive]
24606 #[doc = "The length of the sequence shall be captured."]
24607 pub length: Option<Box<FHIRInteger>>,
24608 #[doc = "(TBC)."]
24609 pub sequenceAttachment: Option<Box<Attachment>>,
24610 #[doc = "The nucleotide present at the 5’ terminal shall be specified based on a controlled vocabulary. Since the sequence is represented from the 5' to the 3' end, the 5’ prime nucleotide is the letter at the first position in the sequence. A separate representation would be redundant."]
24611 pub fivePrime: Option<Box<CodeableConcept>>,
24612 #[doc = "The nucleotide present at the 3’ terminal shall be specified based on a controlled vocabulary. Since the sequence is represented from the 5' to the 3' end, the 5’ prime nucleotide is the letter at the last position in the sequence. A separate representation would be redundant."]
24613 pub threePrime: Option<Box<CodeableConcept>>,
24614 #[doc = "The linkages between sugar residues will also be captured."]
24615 pub linkage: Option<Vec<SubstanceNucleicAcidSubunitLinkage>>,
24616 #[doc = "5.3.6.8.1 Sugar ID (Mandatory)."]
24617 pub sugar: Option<Vec<SubstanceNucleicAcidSubunitSugar>>,
24618}
24619#[derive(
24620 Clone,
24621 Reflect,
24622 Debug,
24623 Default,
24624 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24625 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24626)]
24627#[fhir_serialize_type = "resource"]
24628#[doc = "Nucleic acids are defined by three distinct elements: the base, sugar and linkage. Individual substance/moiety IDs will be created for each of these elements. The nucleotide sequence will be always entered in the 5’-3’ direction."]
24629pub struct SubstanceNucleicAcid {
24630 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
24631 pub id: Option<String>,
24632 #[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."]
24633 pub meta: Option<Box<Meta>>,
24634 #[primitive]
24635 #[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."]
24636 pub implicitRules: Option<Box<FHIRUri>>,
24637 #[primitive]
24638 #[doc = "The base language in which the resource is written."]
24639 pub language: Option<Box<FHIRCode>>,
24640 #[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."]
24641 pub text: Option<Box<Narrative>>,
24642 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
24643 pub contained: Option<Vec<Box<Resource>>>,
24644 #[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 manageable, 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."]
24645 pub extension: Option<Vec<Box<Extension>>>,
24646 #[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 manageable, 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)."]
24647 pub modifierExtension: Option<Vec<Box<Extension>>>,
24648 #[doc = "The type of the sequence shall be specified based on a controlled vocabulary."]
24649 pub sequenceType: Option<Box<CodeableConcept>>,
24650 #[primitive]
24651 #[doc = "The number of linear sequences of nucleotides linked through phosphodiester bonds shall be described. Subunits would be strands of nucleic acids that are tightly associated typically through Watson-Crick base pairing. NOTE: If not specified in the reference source, the assumption is that there is 1 subunit."]
24652 pub numberOfSubunits: Option<Box<FHIRInteger>>,
24653 #[primitive]
24654 #[doc = "The area of hybridisation shall be described if applicable for double stranded RNA or DNA. The number associated with the subunit followed by the number associated to the residue shall be specified in increasing order. The underscore “” shall be used as separator as follows: “Subunitnumber Residue”."]
24655 pub areaOfHybridisation: Option<Box<FHIRString>>,
24656 #[doc = "(TBC)."]
24657 pub oligoNucleotideType: Option<Box<CodeableConcept>>,
24658 #[doc = "Subunits are listed in order of decreasing length; sequences of the same length will be ordered by molecular weight; subunits that have identical sequences will be repeated multiple times."]
24659 pub subunit: Option<Vec<SubstanceNucleicAcidSubunit>>,
24660}
24661#[derive(
24662 Clone,
24663 Reflect,
24664 Debug,
24665 Default,
24666 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24667 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24668)]
24669#[fhir_serialize_type = "complex"]
24670#[doc = "Todo."]
24671pub struct SubstancePolymerMonomerSetStartingMaterial {
24672 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
24673 pub id: Option<String>,
24674 #[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 manageable, 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."]
24675 pub extension: Option<Vec<Box<Extension>>>,
24676 #[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 manageable, 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)."]
24677 pub modifierExtension: Option<Vec<Box<Extension>>>,
24678 #[doc = "Todo."]
24679 pub material: Option<Box<CodeableConcept>>,
24680 #[rename_field = "type"]
24681 #[doc = "Todo."]
24682 pub type_: Option<Box<CodeableConcept>>,
24683 #[primitive]
24684 #[doc = "Todo."]
24685 pub isDefining: Option<Box<FHIRBoolean>>,
24686 #[doc = "Todo."]
24687 pub amount: Option<Box<SubstanceAmount>>,
24688}
24689#[derive(
24690 Clone,
24691 Reflect,
24692 Debug,
24693 Default,
24694 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24695 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24696)]
24697#[fhir_serialize_type = "complex"]
24698#[doc = "Todo."]
24699pub struct SubstancePolymerMonomerSet {
24700 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
24701 pub id: Option<String>,
24702 #[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 manageable, 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."]
24703 pub extension: Option<Vec<Box<Extension>>>,
24704 #[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 manageable, 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)."]
24705 pub modifierExtension: Option<Vec<Box<Extension>>>,
24706 #[doc = "Todo."]
24707 pub ratioType: Option<Box<CodeableConcept>>,
24708 #[doc = "Todo."]
24709 pub startingMaterial: Option<Vec<SubstancePolymerMonomerSetStartingMaterial>>,
24710}
24711#[derive(
24712 Clone,
24713 Reflect,
24714 Debug,
24715 Default,
24716 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24717 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24718)]
24719#[fhir_serialize_type = "complex"]
24720#[doc = "Todo."]
24721pub struct SubstancePolymerRepeatRepeatUnitDegreeOfPolymerisation {
24722 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
24723 pub id: Option<String>,
24724 #[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 manageable, 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."]
24725 pub extension: Option<Vec<Box<Extension>>>,
24726 #[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 manageable, 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)."]
24727 pub modifierExtension: Option<Vec<Box<Extension>>>,
24728 #[doc = "Todo."]
24729 pub degree: Option<Box<CodeableConcept>>,
24730 #[doc = "Todo."]
24731 pub amount: Option<Box<SubstanceAmount>>,
24732}
24733#[derive(
24734 Clone,
24735 Reflect,
24736 Debug,
24737 Default,
24738 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24739 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24740)]
24741#[fhir_serialize_type = "complex"]
24742#[doc = "Todo."]
24743pub struct SubstancePolymerRepeatRepeatUnitStructuralRepresentation {
24744 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
24745 pub id: Option<String>,
24746 #[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 manageable, 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."]
24747 pub extension: Option<Vec<Box<Extension>>>,
24748 #[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 manageable, 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)."]
24749 pub modifierExtension: Option<Vec<Box<Extension>>>,
24750 #[rename_field = "type"]
24751 #[doc = "Todo."]
24752 pub type_: Option<Box<CodeableConcept>>,
24753 #[primitive]
24754 #[doc = "Todo."]
24755 pub representation: Option<Box<FHIRString>>,
24756 #[doc = "Todo."]
24757 pub attachment: Option<Box<Attachment>>,
24758}
24759#[derive(
24760 Clone,
24761 Reflect,
24762 Debug,
24763 Default,
24764 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24765 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24766)]
24767#[fhir_serialize_type = "complex"]
24768#[doc = "Todo."]
24769pub struct SubstancePolymerRepeatRepeatUnit {
24770 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
24771 pub id: Option<String>,
24772 #[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 manageable, 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."]
24773 pub extension: Option<Vec<Box<Extension>>>,
24774 #[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 manageable, 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)."]
24775 pub modifierExtension: Option<Vec<Box<Extension>>>,
24776 #[doc = "Todo."]
24777 pub orientationOfPolymerisation: Option<Box<CodeableConcept>>,
24778 #[primitive]
24779 #[doc = "Todo."]
24780 pub repeatUnit: Option<Box<FHIRString>>,
24781 #[doc = "Todo."]
24782 pub amount: Option<Box<SubstanceAmount>>,
24783 #[doc = "Todo."]
24784 pub degreeOfPolymerisation: Option<Vec<SubstancePolymerRepeatRepeatUnitDegreeOfPolymerisation>>,
24785 #[doc = "Todo."]
24786 pub structuralRepresentation:
24787 Option<Vec<SubstancePolymerRepeatRepeatUnitStructuralRepresentation>>,
24788}
24789#[derive(
24790 Clone,
24791 Reflect,
24792 Debug,
24793 Default,
24794 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24795 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24796)]
24797#[fhir_serialize_type = "complex"]
24798#[doc = "Todo."]
24799pub struct SubstancePolymerRepeat {
24800 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
24801 pub id: Option<String>,
24802 #[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 manageable, 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."]
24803 pub extension: Option<Vec<Box<Extension>>>,
24804 #[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 manageable, 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)."]
24805 pub modifierExtension: Option<Vec<Box<Extension>>>,
24806 #[primitive]
24807 #[doc = "Todo."]
24808 pub numberOfUnits: Option<Box<FHIRInteger>>,
24809 #[primitive]
24810 #[doc = "Todo."]
24811 pub averageMolecularFormula: Option<Box<FHIRString>>,
24812 #[doc = "Todo."]
24813 pub repeatUnitAmountType: Option<Box<CodeableConcept>>,
24814 #[doc = "Todo."]
24815 pub repeatUnit: Option<Vec<SubstancePolymerRepeatRepeatUnit>>,
24816}
24817#[derive(
24818 Clone,
24819 Reflect,
24820 Debug,
24821 Default,
24822 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24823 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24824)]
24825#[fhir_serialize_type = "resource"]
24826#[doc = "Todo."]
24827pub struct SubstancePolymer {
24828 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
24829 pub id: Option<String>,
24830 #[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."]
24831 pub meta: Option<Box<Meta>>,
24832 #[primitive]
24833 #[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."]
24834 pub implicitRules: Option<Box<FHIRUri>>,
24835 #[primitive]
24836 #[doc = "The base language in which the resource is written."]
24837 pub language: Option<Box<FHIRCode>>,
24838 #[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."]
24839 pub text: Option<Box<Narrative>>,
24840 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
24841 pub contained: Option<Vec<Box<Resource>>>,
24842 #[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 manageable, 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."]
24843 pub extension: Option<Vec<Box<Extension>>>,
24844 #[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 manageable, 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)."]
24845 pub modifierExtension: Option<Vec<Box<Extension>>>,
24846 #[doc = "Todo."]
24847 pub class: Option<Box<CodeableConcept>>,
24848 #[doc = "Todo."]
24849 pub geometry: Option<Box<CodeableConcept>>,
24850 #[doc = "Todo."]
24851 pub copolymerConnectivity: Option<Vec<Box<CodeableConcept>>>,
24852 #[primitive]
24853 #[doc = "Todo."]
24854 pub modification: Option<Vec<Box<FHIRString>>>,
24855 #[doc = "Todo."]
24856 pub monomerSet: Option<Vec<SubstancePolymerMonomerSet>>,
24857 #[doc = "Todo."]
24858 pub repeat: Option<Vec<SubstancePolymerRepeat>>,
24859}
24860#[derive(
24861 Clone,
24862 Reflect,
24863 Debug,
24864 Default,
24865 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24866 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24867)]
24868#[fhir_serialize_type = "complex"]
24869#[doc = "This subclause refers to the description of each subunit constituting the SubstanceProtein. A subunit is a linear sequence of amino acids linked through peptide bonds. The Subunit information shall be provided when the finished SubstanceProtein is a complex of multiple sequences; subunits are not used to delineate domains within a single sequence. Subunits are listed in order of decreasing length; sequences of the same length will be ordered by decreasing molecular weight; subunits that have identical sequences will be repeated multiple times."]
24870pub struct SubstanceProteinSubunit {
24871 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
24872 pub id: Option<String>,
24873 #[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 manageable, 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."]
24874 pub extension: Option<Vec<Box<Extension>>>,
24875 #[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 manageable, 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)."]
24876 pub modifierExtension: Option<Vec<Box<Extension>>>,
24877 #[primitive]
24878 #[doc = "Index of primary sequences of amino acids linked through peptide bonds in order of decreasing length. Sequences of the same length will be ordered by molecular weight. Subunits that have identical sequences will be repeated and have sequential subscripts."]
24879 pub subunit: Option<Box<FHIRInteger>>,
24880 #[primitive]
24881 #[doc = "The sequence information shall be provided enumerating the amino acids from N- to C-terminal end using standard single-letter amino acid codes. Uppercase shall be used for L-amino acids and lowercase for D-amino acids. Transcribed SubstanceProteins will always be described using the translated sequence; for synthetic peptide containing amino acids that are not represented with a single letter code an X should be used within the sequence. The modified amino acids will be distinguished by their position in the sequence."]
24882 pub sequence: Option<Box<FHIRString>>,
24883 #[primitive]
24884 #[doc = "Length of linear sequences of amino acids contained in the subunit."]
24885 pub length: Option<Box<FHIRInteger>>,
24886 #[doc = "The sequence information shall be provided enumerating the amino acids from N- to C-terminal end using standard single-letter amino acid codes. Uppercase shall be used for L-amino acids and lowercase for D-amino acids. Transcribed SubstanceProteins will always be described using the translated sequence; for synthetic peptide containing amino acids that are not represented with a single letter code an X should be used within the sequence. The modified amino acids will be distinguished by their position in the sequence."]
24887 pub sequenceAttachment: Option<Box<Attachment>>,
24888 #[doc = "Unique identifier for molecular fragment modification based on the ISO 11238 Substance ID."]
24889 pub nTerminalModificationId: Option<Box<Identifier>>,
24890 #[primitive]
24891 #[doc = "The name of the fragment modified at the N-terminal of the SubstanceProtein shall be specified."]
24892 pub nTerminalModification: Option<Box<FHIRString>>,
24893 #[doc = "Unique identifier for molecular fragment modification based on the ISO 11238 Substance ID."]
24894 pub cTerminalModificationId: Option<Box<Identifier>>,
24895 #[primitive]
24896 #[doc = "The modification at the C-terminal shall be specified."]
24897 pub cTerminalModification: Option<Box<FHIRString>>,
24898}
24899#[derive(
24900 Clone,
24901 Reflect,
24902 Debug,
24903 Default,
24904 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24905 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24906)]
24907#[fhir_serialize_type = "resource"]
24908#[doc = "A SubstanceProtein is defined as a single unit of a linear amino acid sequence, or a combination of subunits that are either covalently linked or have a defined invariant stoichiometric relationship. This includes all synthetic, recombinant and purified SubstanceProteins of defined sequence, whether the use is therapeutic or prophylactic. This set of elements will be used to describe albumins, coagulation factors, cytokines, growth factors, peptide/SubstanceProtein hormones, enzymes, toxins, toxoids, recombinant vaccines, and immunomodulators."]
24909pub struct SubstanceProtein {
24910 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
24911 pub id: Option<String>,
24912 #[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."]
24913 pub meta: Option<Box<Meta>>,
24914 #[primitive]
24915 #[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."]
24916 pub implicitRules: Option<Box<FHIRUri>>,
24917 #[primitive]
24918 #[doc = "The base language in which the resource is written."]
24919 pub language: Option<Box<FHIRCode>>,
24920 #[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."]
24921 pub text: Option<Box<Narrative>>,
24922 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
24923 pub contained: Option<Vec<Box<Resource>>>,
24924 #[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 manageable, 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."]
24925 pub extension: Option<Vec<Box<Extension>>>,
24926 #[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 manageable, 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)."]
24927 pub modifierExtension: Option<Vec<Box<Extension>>>,
24928 #[doc = "The SubstanceProtein descriptive elements will only be used when a complete or partial amino acid sequence is available or derivable from a nucleic acid sequence."]
24929 pub sequenceType: Option<Box<CodeableConcept>>,
24930 #[primitive]
24931 #[doc = "Number of linear sequences of amino acids linked through peptide bonds. The number of subunits constituting the SubstanceProtein shall be described. It is possible that the number of subunits can be variable."]
24932 pub numberOfSubunits: Option<Box<FHIRInteger>>,
24933 #[primitive]
24934 #[doc = "The disulphide bond between two cysteine residues either on the same subunit or on two different subunits shall be described. The position of the disulfide bonds in the SubstanceProtein shall be listed in increasing order of subunit number and position within subunit followed by the abbreviation of the amino acids involved. The disulfide linkage positions shall actually contain the amino acid Cysteine at the respective positions."]
24935 pub disulfideLinkage: Option<Vec<Box<FHIRString>>>,
24936 #[doc = "This subclause refers to the description of each subunit constituting the SubstanceProtein. A subunit is a linear sequence of amino acids linked through peptide bonds. The Subunit information shall be provided when the finished SubstanceProtein is a complex of multiple sequences; subunits are not used to delineate domains within a single sequence. Subunits are listed in order of decreasing length; sequences of the same length will be ordered by decreasing molecular weight; subunits that have identical sequences will be repeated multiple times."]
24937 pub subunit: Option<Vec<SubstanceProteinSubunit>>,
24938}
24939#[derive(
24940 Clone,
24941 Reflect,
24942 Debug,
24943 Default,
24944 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24945 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24946)]
24947#[fhir_serialize_type = "complex"]
24948#[doc = "Todo."]
24949pub struct SubstanceReferenceInformationGene {
24950 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
24951 pub id: Option<String>,
24952 #[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 manageable, 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."]
24953 pub extension: Option<Vec<Box<Extension>>>,
24954 #[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 manageable, 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)."]
24955 pub modifierExtension: Option<Vec<Box<Extension>>>,
24956 #[doc = "Todo."]
24957 pub geneSequenceOrigin: Option<Box<CodeableConcept>>,
24958 #[doc = "Todo."]
24959 pub gene: Option<Box<CodeableConcept>>,
24960 # [reference (targets = ["DocumentReference"])]
24961 #[doc = "Todo."]
24962 pub source: Option<Vec<Box<Reference>>>,
24963}
24964#[derive(
24965 Clone,
24966 Reflect,
24967 Debug,
24968 Default,
24969 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24970 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24971)]
24972#[fhir_serialize_type = "complex"]
24973#[doc = "Todo."]
24974pub struct SubstanceReferenceInformationGeneElement {
24975 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
24976 pub id: Option<String>,
24977 #[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 manageable, 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."]
24978 pub extension: Option<Vec<Box<Extension>>>,
24979 #[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 manageable, 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)."]
24980 pub modifierExtension: Option<Vec<Box<Extension>>>,
24981 #[rename_field = "type"]
24982 #[doc = "Todo."]
24983 pub type_: Option<Box<CodeableConcept>>,
24984 #[doc = "Todo."]
24985 pub element: Option<Box<Identifier>>,
24986 # [reference (targets = ["DocumentReference"])]
24987 #[doc = "Todo."]
24988 pub source: Option<Vec<Box<Reference>>>,
24989}
24990#[derive(
24991 Clone,
24992 Reflect,
24993 Debug,
24994 Default,
24995 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
24996 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
24997)]
24998#[fhir_serialize_type = "complex"]
24999#[doc = "Todo."]
25000pub struct SubstanceReferenceInformationClassification {
25001 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
25002 pub id: Option<String>,
25003 #[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 manageable, 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."]
25004 pub extension: Option<Vec<Box<Extension>>>,
25005 #[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 manageable, 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)."]
25006 pub modifierExtension: Option<Vec<Box<Extension>>>,
25007 #[doc = "Todo."]
25008 pub domain: Option<Box<CodeableConcept>>,
25009 #[doc = "Todo."]
25010 pub classification: Option<Box<CodeableConcept>>,
25011 #[doc = "Todo."]
25012 pub subtype: Option<Vec<Box<CodeableConcept>>>,
25013 # [reference (targets = ["DocumentReference"])]
25014 #[doc = "Todo."]
25015 pub source: Option<Vec<Box<Reference>>>,
25016}
25017#[derive(
25018 Clone,
25019 Reflect,
25020 Debug,
25021 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25022 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25023)]
25024#[fhir_serialize_type = "typechoice"]
25025#[type_choice_field_name = "amount"]
25026pub enum SubstanceReferenceInformationTargetAmountTypeChoice {
25027 Quantity(Box<Quantity>),
25028 Range(Box<Range>),
25029 String(Box<FHIRString>),
25030}
25031impl Default for SubstanceReferenceInformationTargetAmountTypeChoice {
25032 fn default() -> Self {
25033 SubstanceReferenceInformationTargetAmountTypeChoice::Quantity(Box::new(Default::default()))
25034 }
25035}
25036#[derive(
25037 Clone,
25038 Reflect,
25039 Debug,
25040 Default,
25041 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25042 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25043)]
25044#[fhir_serialize_type = "complex"]
25045#[doc = "Todo."]
25046pub struct SubstanceReferenceInformationTarget {
25047 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
25048 pub id: Option<String>,
25049 #[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 manageable, 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."]
25050 pub extension: Option<Vec<Box<Extension>>>,
25051 #[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 manageable, 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)."]
25052 pub modifierExtension: Option<Vec<Box<Extension>>>,
25053 #[doc = "Todo."]
25054 pub target: Option<Box<Identifier>>,
25055 #[rename_field = "type"]
25056 #[doc = "Todo."]
25057 pub type_: Option<Box<CodeableConcept>>,
25058 #[doc = "Todo."]
25059 pub interaction: Option<Box<CodeableConcept>>,
25060 #[doc = "Todo."]
25061 pub organism: Option<Box<CodeableConcept>>,
25062 #[doc = "Todo."]
25063 pub organismType: Option<Box<CodeableConcept>>,
25064 # [type_choice_variants (complex = ["amountQuantity" , "amountRange"] , primitive = ["amountString"])]
25065 #[doc = "Todo."]
25066 pub amount: Option<SubstanceReferenceInformationTargetAmountTypeChoice>,
25067 #[doc = "Todo."]
25068 pub amountType: Option<Box<CodeableConcept>>,
25069 # [reference (targets = ["DocumentReference"])]
25070 #[doc = "Todo."]
25071 pub source: Option<Vec<Box<Reference>>>,
25072}
25073#[derive(
25074 Clone,
25075 Reflect,
25076 Debug,
25077 Default,
25078 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25079 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25080)]
25081#[fhir_serialize_type = "resource"]
25082#[doc = "Todo."]
25083pub struct SubstanceReferenceInformation {
25084 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
25085 pub id: Option<String>,
25086 #[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."]
25087 pub meta: Option<Box<Meta>>,
25088 #[primitive]
25089 #[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."]
25090 pub implicitRules: Option<Box<FHIRUri>>,
25091 #[primitive]
25092 #[doc = "The base language in which the resource is written."]
25093 pub language: Option<Box<FHIRCode>>,
25094 #[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."]
25095 pub text: Option<Box<Narrative>>,
25096 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
25097 pub contained: Option<Vec<Box<Resource>>>,
25098 #[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 manageable, 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."]
25099 pub extension: Option<Vec<Box<Extension>>>,
25100 #[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 manageable, 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)."]
25101 pub modifierExtension: Option<Vec<Box<Extension>>>,
25102 #[primitive]
25103 #[doc = "Todo."]
25104 pub comment: Option<Box<FHIRString>>,
25105 #[doc = "Todo."]
25106 pub gene: Option<Vec<SubstanceReferenceInformationGene>>,
25107 #[doc = "Todo."]
25108 pub geneElement: Option<Vec<SubstanceReferenceInformationGeneElement>>,
25109 #[doc = "Todo."]
25110 pub classification: Option<Vec<SubstanceReferenceInformationClassification>>,
25111 #[doc = "Todo."]
25112 pub target: Option<Vec<SubstanceReferenceInformationTarget>>,
25113}
25114#[derive(
25115 Clone,
25116 Reflect,
25117 Debug,
25118 Default,
25119 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25120 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25121)]
25122#[fhir_serialize_type = "complex"]
25123#[doc = "Many complex materials are fractions of parts of plants, animals, or minerals. Fraction elements are often necessary to define both Substances and Specified Group 1 Substances. For substances derived from Plants, fraction information will be captured at the Substance information level ( . Oils, Juices and Exudates). Additional information for Extracts, such as extraction solvent composition, will be captured at the Specified Substance Group 1 information level. For plasma-derived products fraction information will be captured at the Substance and the Specified Substance Group 1 levels."]
25124pub struct SubstanceSourceMaterialFractionDescription {
25125 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
25126 pub id: Option<String>,
25127 #[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 manageable, 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."]
25128 pub extension: Option<Vec<Box<Extension>>>,
25129 #[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 manageable, 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)."]
25130 pub modifierExtension: Option<Vec<Box<Extension>>>,
25131 #[primitive]
25132 #[doc = "This element is capturing information about the fraction of a plant part, or human plasma for fractionation."]
25133 pub fraction: Option<Box<FHIRString>>,
25134 #[doc = "The specific type of the material constituting the component. For Herbal preparations the particulars of the extracts (liquid/dry) is described in Specified Substance Group 1."]
25135 pub materialType: Option<Box<CodeableConcept>>,
25136}
25137#[derive(
25138 Clone,
25139 Reflect,
25140 Debug,
25141 Default,
25142 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25143 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25144)]
25145#[fhir_serialize_type = "complex"]
25146#[doc = "4.9.13.6.1 Author type (Conditional)."]
25147pub struct SubstanceSourceMaterialOrganismAuthor {
25148 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
25149 pub id: Option<String>,
25150 #[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 manageable, 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."]
25151 pub extension: Option<Vec<Box<Extension>>>,
25152 #[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 manageable, 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)."]
25153 pub modifierExtension: Option<Vec<Box<Extension>>>,
25154 #[doc = "The type of author of an organism species shall be specified. The parenthetical author of an organism species refers to the first author who published the plant/animal name (of any rank). The primary author of an organism species refers to the first author(s), who validly published the plant/animal name."]
25155 pub authorType: Option<Box<CodeableConcept>>,
25156 #[primitive]
25157 #[doc = "The author of an organism species shall be specified. The author year of an organism shall also be specified when applicable; refers to the year in which the first author(s) published the infraspecific plant/animal name (of any rank)."]
25158 pub authorDescription: Option<Box<FHIRString>>,
25159}
25160#[derive(
25161 Clone,
25162 Reflect,
25163 Debug,
25164 Default,
25165 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25166 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25167)]
25168#[fhir_serialize_type = "complex"]
25169#[doc = "4.9.13.8.1 Hybrid species maternal organism ID (Optional)."]
25170pub struct SubstanceSourceMaterialOrganismHybrid {
25171 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
25172 pub id: Option<String>,
25173 #[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 manageable, 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."]
25174 pub extension: Option<Vec<Box<Extension>>>,
25175 #[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 manageable, 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)."]
25176 pub modifierExtension: Option<Vec<Box<Extension>>>,
25177 #[primitive]
25178 #[doc = "The identifier of the maternal species constituting the hybrid organism shall be specified based on a controlled vocabulary. For plants, the parents aren’t always known, and it is unlikely that it will be known which is maternal and which is paternal."]
25179 pub maternalOrganismId: Option<Box<FHIRString>>,
25180 #[primitive]
25181 #[doc = "The name of the maternal species constituting the hybrid organism shall be specified. For plants, the parents aren’t always known, and it is unlikely that it will be known which is maternal and which is paternal."]
25182 pub maternalOrganismName: Option<Box<FHIRString>>,
25183 #[primitive]
25184 #[doc = "The identifier of the paternal species constituting the hybrid organism shall be specified based on a controlled vocabulary."]
25185 pub paternalOrganismId: Option<Box<FHIRString>>,
25186 #[primitive]
25187 #[doc = "The name of the paternal species constituting the hybrid organism shall be specified."]
25188 pub paternalOrganismName: Option<Box<FHIRString>>,
25189 #[doc = "The hybrid type of an organism shall be specified."]
25190 pub hybridType: Option<Box<CodeableConcept>>,
25191}
25192#[derive(
25193 Clone,
25194 Reflect,
25195 Debug,
25196 Default,
25197 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25198 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25199)]
25200#[fhir_serialize_type = "complex"]
25201#[doc = "4.9.13.7.1 Kingdom (Conditional)."]
25202pub struct SubstanceSourceMaterialOrganismOrganismGeneral {
25203 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
25204 pub id: Option<String>,
25205 #[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 manageable, 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."]
25206 pub extension: Option<Vec<Box<Extension>>>,
25207 #[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 manageable, 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)."]
25208 pub modifierExtension: Option<Vec<Box<Extension>>>,
25209 #[doc = "The kingdom of an organism shall be specified."]
25210 pub kingdom: Option<Box<CodeableConcept>>,
25211 #[doc = "The phylum of an organism shall be specified."]
25212 pub phylum: Option<Box<CodeableConcept>>,
25213 #[doc = "The class of an organism shall be specified."]
25214 pub class: Option<Box<CodeableConcept>>,
25215 #[doc = "The order of an organism shall be specified,."]
25216 pub order: Option<Box<CodeableConcept>>,
25217}
25218#[derive(
25219 Clone,
25220 Reflect,
25221 Debug,
25222 Default,
25223 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25224 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25225)]
25226#[fhir_serialize_type = "complex"]
25227#[doc = "This subclause describes the organism which the substance is derived from. For vaccines, the parent organism shall be specified based on these subclause elements. As an example, full taxonomy will be described for the Substance Name: ., Leaf."]
25228pub struct SubstanceSourceMaterialOrganism {
25229 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
25230 pub id: Option<String>,
25231 #[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 manageable, 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."]
25232 pub extension: Option<Vec<Box<Extension>>>,
25233 #[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 manageable, 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)."]
25234 pub modifierExtension: Option<Vec<Box<Extension>>>,
25235 #[doc = "The family of an organism shall be specified."]
25236 pub family: Option<Box<CodeableConcept>>,
25237 #[doc = "The genus of an organism shall be specified; refers to the Latin epithet of the genus element of the plant/animal scientific name; it is present in names for genera, species and infraspecies."]
25238 pub genus: Option<Box<CodeableConcept>>,
25239 #[doc = "The species of an organism shall be specified; refers to the Latin epithet of the species of the plant/animal; it is present in names for species and infraspecies."]
25240 pub species: Option<Box<CodeableConcept>>,
25241 #[doc = "The Intraspecific type of an organism shall be specified."]
25242 pub intraspecificType: Option<Box<CodeableConcept>>,
25243 #[primitive]
25244 #[doc = "The intraspecific description of an organism shall be specified based on a controlled vocabulary. For Influenza Vaccine, the intraspecific description shall contain the syntax of the antigen in line with the WHO convention."]
25245 pub intraspecificDescription: Option<Box<FHIRString>>,
25246 #[doc = "4.9.13.6.1 Author type (Conditional)."]
25247 pub author: Option<Vec<SubstanceSourceMaterialOrganismAuthor>>,
25248 #[doc = "4.9.13.8.1 Hybrid species maternal organism ID (Optional)."]
25249 pub hybrid: Option<SubstanceSourceMaterialOrganismHybrid>,
25250 #[doc = "4.9.13.7.1 Kingdom (Conditional)."]
25251 pub organismGeneral: Option<SubstanceSourceMaterialOrganismOrganismGeneral>,
25252}
25253#[derive(
25254 Clone,
25255 Reflect,
25256 Debug,
25257 Default,
25258 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25259 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25260)]
25261#[fhir_serialize_type = "complex"]
25262#[doc = "To do."]
25263pub struct SubstanceSourceMaterialPartDescription {
25264 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
25265 pub id: Option<String>,
25266 #[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 manageable, 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."]
25267 pub extension: Option<Vec<Box<Extension>>>,
25268 #[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 manageable, 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)."]
25269 pub modifierExtension: Option<Vec<Box<Extension>>>,
25270 #[doc = "Entity of anatomical origin of source material within an organism."]
25271 pub part: Option<Box<CodeableConcept>>,
25272 #[doc = "The detailed anatomic location when the part can be extracted from different anatomical locations of the organism. Multiple alternative locations may apply."]
25273 pub partLocation: Option<Box<CodeableConcept>>,
25274}
25275#[derive(
25276 Clone,
25277 Reflect,
25278 Debug,
25279 Default,
25280 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25281 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25282)]
25283#[fhir_serialize_type = "resource"]
25284#[doc = "Source material shall capture information on the taxonomic and anatomical origins as well as the fraction of a material that can result in or can be modified to form a substance. This set of data elements shall be used to define polymer substances isolated from biological matrices. Taxonomic and anatomical origins shall be described using a controlled vocabulary as required. This information is captured for naturally derived polymers ( . starch) and structurally diverse substances. For Organisms belonging to the Kingdom Plantae the Substance level defines the fresh material of a single species or infraspecies, the Herbal Drug and the Herbal preparation. For Herbal preparations, the fraction information will be captured at the Substance information level and additional information for herbal extracts will be captured at the Specified Substance Group 1 information level. See for further explanation the Substance Class: Structurally Diverse and the herbal annex."]
25285pub struct SubstanceSourceMaterial {
25286 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
25287 pub id: Option<String>,
25288 #[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."]
25289 pub meta: Option<Box<Meta>>,
25290 #[primitive]
25291 #[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."]
25292 pub implicitRules: Option<Box<FHIRUri>>,
25293 #[primitive]
25294 #[doc = "The base language in which the resource is written."]
25295 pub language: Option<Box<FHIRCode>>,
25296 #[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."]
25297 pub text: Option<Box<Narrative>>,
25298 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
25299 pub contained: Option<Vec<Box<Resource>>>,
25300 #[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 manageable, 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."]
25301 pub extension: Option<Vec<Box<Extension>>>,
25302 #[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 manageable, 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)."]
25303 pub modifierExtension: Option<Vec<Box<Extension>>>,
25304 #[doc = "General high level classification of the source material specific to the origin of the material."]
25305 pub sourceMaterialClass: Option<Box<CodeableConcept>>,
25306 #[doc = "The type of the source material shall be specified based on a controlled vocabulary. For vaccines, this subclause refers to the class of infectious agent."]
25307 pub sourceMaterialType: Option<Box<CodeableConcept>>,
25308 #[doc = "The state of the source material when extracted."]
25309 pub sourceMaterialState: Option<Box<CodeableConcept>>,
25310 #[doc = "The unique identifier associated with the source material parent organism shall be specified."]
25311 pub organismId: Option<Box<Identifier>>,
25312 #[primitive]
25313 #[doc = "The organism accepted Scientific name shall be provided based on the organism taxonomy."]
25314 pub organismName: Option<Box<FHIRString>>,
25315 #[doc = "The parent of the herbal drug Ginkgo biloba, Leaf is the substance ID of the substance (fresh) of Ginkgo biloba L. or Ginkgo biloba L. (Whole plant)."]
25316 pub parentSubstanceId: Option<Vec<Box<Identifier>>>,
25317 #[primitive]
25318 #[doc = "The parent substance of the Herbal Drug, or Herbal preparation."]
25319 pub parentSubstanceName: Option<Vec<Box<FHIRString>>>,
25320 #[doc = "The country where the plant material is harvested or the countries where the plasma is sourced from as laid down in accordance with the Plasma Master File. For “Plasma-derived substances” the attribute country of origin provides information about the countries used for the manufacturing of the Cryopoor plama or Crioprecipitate."]
25321 pub countryOfOrigin: Option<Vec<Box<CodeableConcept>>>,
25322 #[primitive]
25323 #[doc = "The place/region where the plant is harvested or the places/regions where the animal source material has its habitat."]
25324 pub geographicalLocation: Option<Vec<Box<FHIRString>>>,
25325 #[doc = "Stage of life for animals, plants, insects and microorganisms. This information shall be provided only when the substance is significantly different in these stages (e.g. foetal bovine serum)."]
25326 pub developmentStage: Option<Box<CodeableConcept>>,
25327 #[doc = "Many complex materials are fractions of parts of plants, animals, or minerals. Fraction elements are often necessary to define both Substances and Specified Group 1 Substances. For substances derived from Plants, fraction information will be captured at the Substance information level ( . Oils, Juices and Exudates). Additional information for Extracts, such as extraction solvent composition, will be captured at the Specified Substance Group 1 information level. For plasma-derived products fraction information will be captured at the Substance and the Specified Substance Group 1 levels."]
25328 pub fractionDescription: Option<Vec<SubstanceSourceMaterialFractionDescription>>,
25329 #[doc = "This subclause describes the organism which the substance is derived from. For vaccines, the parent organism shall be specified based on these subclause elements. As an example, full taxonomy will be described for the Substance Name: ., Leaf."]
25330 pub organism: Option<SubstanceSourceMaterialOrganism>,
25331 #[doc = "To do."]
25332 pub partDescription: Option<Vec<SubstanceSourceMaterialPartDescription>>,
25333}
25334#[derive(
25335 Clone,
25336 Reflect,
25337 Debug,
25338 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25339 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25340)]
25341#[fhir_serialize_type = "typechoice"]
25342#[type_choice_field_name = "amount"]
25343pub enum SubstanceSpecificationMoietyAmountTypeChoice {
25344 Quantity(Box<Quantity>),
25345 String(Box<FHIRString>),
25346}
25347impl Default for SubstanceSpecificationMoietyAmountTypeChoice {
25348 fn default() -> Self {
25349 SubstanceSpecificationMoietyAmountTypeChoice::Quantity(Box::new(Default::default()))
25350 }
25351}
25352#[derive(
25353 Clone,
25354 Reflect,
25355 Debug,
25356 Default,
25357 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25358 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25359)]
25360#[fhir_serialize_type = "complex"]
25361#[doc = "Moiety, for structural modifications."]
25362pub struct SubstanceSpecificationMoiety {
25363 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
25364 pub id: Option<String>,
25365 #[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 manageable, 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."]
25366 pub extension: Option<Vec<Box<Extension>>>,
25367 #[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 manageable, 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)."]
25368 pub modifierExtension: Option<Vec<Box<Extension>>>,
25369 #[doc = "Role that the moiety is playing."]
25370 pub role: Option<Box<CodeableConcept>>,
25371 #[rename_field = "identifier"]
25372 #[doc = "Identifier by which this moiety substance is known."]
25373 pub identifier_: Option<Box<Identifier>>,
25374 #[primitive]
25375 #[doc = "Textual name for this moiety substance."]
25376 pub name: Option<Box<FHIRString>>,
25377 #[doc = "Stereochemistry type."]
25378 pub stereochemistry: Option<Box<CodeableConcept>>,
25379 #[doc = "Optical activity type."]
25380 pub opticalActivity: Option<Box<CodeableConcept>>,
25381 #[primitive]
25382 #[doc = "Molecular formula."]
25383 pub molecularFormula: Option<Box<FHIRString>>,
25384 # [type_choice_variants (complex = ["amountQuantity"] , primitive = ["amountString"])]
25385 #[doc = "Quantitative value for this moiety."]
25386 pub amount: Option<SubstanceSpecificationMoietyAmountTypeChoice>,
25387}
25388#[derive(
25389 Clone,
25390 Reflect,
25391 Debug,
25392 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25393 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25394)]
25395#[fhir_serialize_type = "typechoice"]
25396#[type_choice_field_name = "definingSubstance"]
25397pub enum SubstanceSpecificationPropertyDefiningSubstanceTypeChoice {
25398 # [reference (targets = ["SubstanceSpecification" , "Substance"])]
25399 Reference(Box<Reference>),
25400 CodeableConcept(Box<CodeableConcept>),
25401}
25402impl Default for SubstanceSpecificationPropertyDefiningSubstanceTypeChoice {
25403 fn default() -> Self {
25404 SubstanceSpecificationPropertyDefiningSubstanceTypeChoice::Reference(Box::new(
25405 Default::default(),
25406 ))
25407 }
25408}
25409#[derive(
25410 Clone,
25411 Reflect,
25412 Debug,
25413 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25414 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25415)]
25416#[fhir_serialize_type = "typechoice"]
25417#[type_choice_field_name = "amount"]
25418pub enum SubstanceSpecificationPropertyAmountTypeChoice {
25419 Quantity(Box<Quantity>),
25420 String(Box<FHIRString>),
25421}
25422impl Default for SubstanceSpecificationPropertyAmountTypeChoice {
25423 fn default() -> Self {
25424 SubstanceSpecificationPropertyAmountTypeChoice::Quantity(Box::new(Default::default()))
25425 }
25426}
25427#[derive(
25428 Clone,
25429 Reflect,
25430 Debug,
25431 Default,
25432 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25433 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25434)]
25435#[fhir_serialize_type = "complex"]
25436#[doc = "General specifications for this substance, including how it is related to other substances."]
25437pub struct SubstanceSpecificationProperty {
25438 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
25439 pub id: Option<String>,
25440 #[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 manageable, 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."]
25441 pub extension: Option<Vec<Box<Extension>>>,
25442 #[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 manageable, 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)."]
25443 pub modifierExtension: Option<Vec<Box<Extension>>>,
25444 #[doc = "A category for this property, e.g. Physical, Chemical, Enzymatic."]
25445 pub category: Option<Box<CodeableConcept>>,
25446 #[doc = "Property type e.g. viscosity, pH, isoelectric point."]
25447 pub code: Option<Box<CodeableConcept>>,
25448 #[primitive]
25449 #[doc = "Parameters that were used in the measurement of a property (e.g. for viscosity: measured at 20C with a pH of 7.1)."]
25450 pub parameters: Option<Box<FHIRString>>,
25451 # [type_choice_variants (complex = ["definingSubstanceReference" , "definingSubstanceCodeableConcept"] , primitive = [])]
25452 #[doc = "A substance upon which a defining property depends (e.g. for solubility: in water, in alcohol)."]
25453 pub definingSubstance: Option<SubstanceSpecificationPropertyDefiningSubstanceTypeChoice>,
25454 # [type_choice_variants (complex = ["amountQuantity"] , primitive = ["amountString"])]
25455 #[doc = "Quantitative value for this property."]
25456 pub amount: Option<SubstanceSpecificationPropertyAmountTypeChoice>,
25457}
25458#[derive(
25459 Clone,
25460 Reflect,
25461 Debug,
25462 Default,
25463 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25464 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25465)]
25466#[fhir_serialize_type = "complex"]
25467#[doc = "The molecular weight or weight range (for proteins, polymers or nucleic acids)."]
25468pub struct SubstanceSpecificationStructureIsotopeMolecularWeight {
25469 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
25470 pub id: Option<String>,
25471 #[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 manageable, 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."]
25472 pub extension: Option<Vec<Box<Extension>>>,
25473 #[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 manageable, 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)."]
25474 pub modifierExtension: Option<Vec<Box<Extension>>>,
25475 #[doc = "The method by which the molecular weight was determined."]
25476 pub method: Option<Box<CodeableConcept>>,
25477 #[rename_field = "type"]
25478 #[doc = "Type of molecular weight such as exact, average (also known as. number average), weight average."]
25479 pub type_: Option<Box<CodeableConcept>>,
25480 #[doc = "Used to capture quantitative values for a variety of elements. If only limits are given, the arithmetic mean would be the average. If only a single definite value for a given element is given, it would be captured in this field."]
25481 pub amount: Option<Box<Quantity>>,
25482}
25483#[derive(
25484 Clone,
25485 Reflect,
25486 Debug,
25487 Default,
25488 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25489 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25490)]
25491#[fhir_serialize_type = "complex"]
25492#[doc = "Applicable for single substances that contain a radionuclide or a non-natural isotopic ratio."]
25493pub struct SubstanceSpecificationStructureIsotope {
25494 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
25495 pub id: Option<String>,
25496 #[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 manageable, 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."]
25497 pub extension: Option<Vec<Box<Extension>>>,
25498 #[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 manageable, 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)."]
25499 pub modifierExtension: Option<Vec<Box<Extension>>>,
25500 #[rename_field = "identifier"]
25501 #[doc = "Substance identifier for each non-natural or radioisotope."]
25502 pub identifier_: Option<Box<Identifier>>,
25503 #[doc = "Substance name for each non-natural or radioisotope."]
25504 pub name: Option<Box<CodeableConcept>>,
25505 #[doc = "The type of isotopic substitution present in a single substance."]
25506 pub substitution: Option<Box<CodeableConcept>>,
25507 #[doc = "Half life - for a non-natural nuclide."]
25508 pub halfLife: Option<Box<Quantity>>,
25509 #[doc = "The molecular weight or weight range (for proteins, polymers or nucleic acids)."]
25510 pub molecularWeight: Option<SubstanceSpecificationStructureIsotopeMolecularWeight>,
25511}
25512#[derive(
25513 Clone,
25514 Reflect,
25515 Debug,
25516 Default,
25517 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25518 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25519)]
25520#[fhir_serialize_type = "complex"]
25521#[doc = "Molecular structural representation."]
25522pub struct SubstanceSpecificationStructureRepresentation {
25523 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
25524 pub id: Option<String>,
25525 #[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 manageable, 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."]
25526 pub extension: Option<Vec<Box<Extension>>>,
25527 #[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 manageable, 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)."]
25528 pub modifierExtension: Option<Vec<Box<Extension>>>,
25529 #[rename_field = "type"]
25530 #[doc = "The type of structure (e.g. Full, Partial, Representative)."]
25531 pub type_: Option<Box<CodeableConcept>>,
25532 #[primitive]
25533 #[doc = "The structural representation as text string in a format e.g. InChI, SMILES, MOLFILE, CDX."]
25534 pub representation: Option<Box<FHIRString>>,
25535 #[doc = "An attached file with the structural representation."]
25536 pub attachment: Option<Box<Attachment>>,
25537}
25538#[derive(
25539 Clone,
25540 Reflect,
25541 Debug,
25542 Default,
25543 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25544 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25545)]
25546#[fhir_serialize_type = "complex"]
25547#[doc = "Structural information."]
25548pub struct SubstanceSpecificationStructure {
25549 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
25550 pub id: Option<String>,
25551 #[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 manageable, 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."]
25552 pub extension: Option<Vec<Box<Extension>>>,
25553 #[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 manageable, 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)."]
25554 pub modifierExtension: Option<Vec<Box<Extension>>>,
25555 #[doc = "Stereochemistry type."]
25556 pub stereochemistry: Option<Box<CodeableConcept>>,
25557 #[doc = "Optical activity type."]
25558 pub opticalActivity: Option<Box<CodeableConcept>>,
25559 #[primitive]
25560 #[doc = "Molecular formula."]
25561 pub molecularFormula: Option<Box<FHIRString>>,
25562 #[primitive]
25563 #[doc = "Specified per moiety according to the Hill system, i.e. first C, then H, then alphabetical, each moiety separated by a dot."]
25564 pub molecularFormulaByMoiety: Option<Box<FHIRString>>,
25565 #[doc = "Applicable for single substances that contain a radionuclide or a non-natural isotopic ratio."]
25566 pub isotope: Option<Vec<SubstanceSpecificationStructureIsotope>>,
25567 #[doc = "The molecular weight or weight range (for proteins, polymers or nucleic acids)."]
25568 pub molecularWeight: Option<SubstanceSpecificationStructureIsotopeMolecularWeight>,
25569 # [reference (targets = ["DocumentReference"])]
25570 #[doc = "Supporting literature."]
25571 pub source: Option<Vec<Box<Reference>>>,
25572 #[doc = "Molecular structural representation."]
25573 pub representation: Option<Vec<SubstanceSpecificationStructureRepresentation>>,
25574}
25575#[derive(
25576 Clone,
25577 Reflect,
25578 Debug,
25579 Default,
25580 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25581 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25582)]
25583#[fhir_serialize_type = "complex"]
25584#[doc = "Codes associated with the substance."]
25585pub struct SubstanceSpecificationCode {
25586 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
25587 pub id: Option<String>,
25588 #[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 manageable, 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."]
25589 pub extension: Option<Vec<Box<Extension>>>,
25590 #[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 manageable, 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)."]
25591 pub modifierExtension: Option<Vec<Box<Extension>>>,
25592 #[doc = "The specific code."]
25593 pub code: Option<Box<CodeableConcept>>,
25594 #[doc = "Status of the code assignment."]
25595 pub status: Option<Box<CodeableConcept>>,
25596 #[primitive]
25597 #[doc = "The date at which the code status is changed as part of the terminology maintenance."]
25598 pub statusDate: Option<Box<FHIRDateTime>>,
25599 #[primitive]
25600 #[doc = "Any comment can be provided in this field, if necessary."]
25601 pub comment: Option<Box<FHIRString>>,
25602 # [reference (targets = ["DocumentReference"])]
25603 #[doc = "Supporting literature."]
25604 pub source: Option<Vec<Box<Reference>>>,
25605}
25606#[derive(
25607 Clone,
25608 Reflect,
25609 Debug,
25610 Default,
25611 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25612 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25613)]
25614#[fhir_serialize_type = "complex"]
25615#[doc = "Details of the official nature of this name."]
25616pub struct SubstanceSpecificationNameOfficial {
25617 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
25618 pub id: Option<String>,
25619 #[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 manageable, 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."]
25620 pub extension: Option<Vec<Box<Extension>>>,
25621 #[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 manageable, 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)."]
25622 pub modifierExtension: Option<Vec<Box<Extension>>>,
25623 #[doc = "Which authority uses this official name."]
25624 pub authority: Option<Box<CodeableConcept>>,
25625 #[doc = "The status of the official name."]
25626 pub status: Option<Box<CodeableConcept>>,
25627 #[primitive]
25628 #[doc = "Date of official name change."]
25629 pub date: Option<Box<FHIRDateTime>>,
25630}
25631#[derive(
25632 Clone,
25633 Reflect,
25634 Debug,
25635 Default,
25636 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25637 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25638)]
25639#[fhir_serialize_type = "complex"]
25640#[doc = "Names applicable to this substance."]
25641pub struct SubstanceSpecificationName {
25642 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
25643 pub id: Option<String>,
25644 #[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 manageable, 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."]
25645 pub extension: Option<Vec<Box<Extension>>>,
25646 #[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 manageable, 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)."]
25647 pub modifierExtension: Option<Vec<Box<Extension>>>,
25648 #[primitive]
25649 #[doc = "The actual name."]
25650 pub name: Box<FHIRString>,
25651 #[rename_field = "type"]
25652 #[doc = "Name type."]
25653 pub type_: Option<Box<CodeableConcept>>,
25654 #[doc = "The status of the name."]
25655 pub status: Option<Box<CodeableConcept>>,
25656 #[primitive]
25657 #[doc = "If this is the preferred name for this substance."]
25658 pub preferred: Option<Box<FHIRBoolean>>,
25659 #[doc = "Language of the name."]
25660 pub language: Option<Vec<Box<CodeableConcept>>>,
25661 #[doc = "The use context of this name for example if there is a different name a drug active ingredient as opposed to a food colour additive."]
25662 pub domain: Option<Vec<Box<CodeableConcept>>>,
25663 #[doc = "The jurisdiction where this name applies."]
25664 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
25665 #[doc = "A synonym of this name."]
25666 pub synonym: Option<Vec<SubstanceSpecificationName>>,
25667 #[doc = "A translation for this name."]
25668 pub translation: Option<Vec<SubstanceSpecificationName>>,
25669 #[doc = "Details of the official nature of this name."]
25670 pub official: Option<Vec<SubstanceSpecificationNameOfficial>>,
25671 # [reference (targets = ["DocumentReference"])]
25672 #[doc = "Supporting literature."]
25673 pub source: Option<Vec<Box<Reference>>>,
25674}
25675#[derive(
25676 Clone,
25677 Reflect,
25678 Debug,
25679 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25680 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25681)]
25682#[fhir_serialize_type = "typechoice"]
25683#[type_choice_field_name = "substance"]
25684pub enum SubstanceSpecificationRelationshipSubstanceTypeChoice {
25685 # [reference (targets = ["SubstanceSpecification"])]
25686 Reference(Box<Reference>),
25687 CodeableConcept(Box<CodeableConcept>),
25688}
25689impl Default for SubstanceSpecificationRelationshipSubstanceTypeChoice {
25690 fn default() -> Self {
25691 SubstanceSpecificationRelationshipSubstanceTypeChoice::Reference(Box::new(
25692 Default::default(),
25693 ))
25694 }
25695}
25696#[derive(
25697 Clone,
25698 Reflect,
25699 Debug,
25700 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25701 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25702)]
25703#[fhir_serialize_type = "typechoice"]
25704#[type_choice_field_name = "amount"]
25705pub enum SubstanceSpecificationRelationshipAmountTypeChoice {
25706 Quantity(Box<Quantity>),
25707 Range(Box<Range>),
25708 Ratio(Box<Ratio>),
25709 String(Box<FHIRString>),
25710}
25711impl Default for SubstanceSpecificationRelationshipAmountTypeChoice {
25712 fn default() -> Self {
25713 SubstanceSpecificationRelationshipAmountTypeChoice::Quantity(Box::new(Default::default()))
25714 }
25715}
25716#[derive(
25717 Clone,
25718 Reflect,
25719 Debug,
25720 Default,
25721 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25722 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25723)]
25724#[fhir_serialize_type = "complex"]
25725#[doc = "A link between this substance and another, with details of the relationship."]
25726pub struct SubstanceSpecificationRelationship {
25727 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
25728 pub id: Option<String>,
25729 #[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 manageable, 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."]
25730 pub extension: Option<Vec<Box<Extension>>>,
25731 #[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 manageable, 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)."]
25732 pub modifierExtension: Option<Vec<Box<Extension>>>,
25733 # [type_choice_variants (complex = ["substanceReference" , "substanceCodeableConcept"] , primitive = [])]
25734 #[doc = "A pointer to another substance, as a resource or just a representational code."]
25735 pub substance: Option<SubstanceSpecificationRelationshipSubstanceTypeChoice>,
25736 #[doc = "For example \"salt to parent\", \"active moiety\", \"starting material\"."]
25737 pub relationship: Option<Box<CodeableConcept>>,
25738 #[primitive]
25739 #[doc = "For example where an enzyme strongly bonds with a particular substance, this is a defining relationship for that enzyme, out of several possible substance relationships."]
25740 pub isDefining: Option<Box<FHIRBoolean>>,
25741 # [type_choice_variants (complex = ["amountQuantity" , "amountRange" , "amountRatio"] , primitive = ["amountString"])]
25742 #[doc = "A numeric factor for the relationship, for instance to express that the salt of a substance has some percentage of the active substance in relation to some other."]
25743 pub amount: Option<SubstanceSpecificationRelationshipAmountTypeChoice>,
25744 #[doc = "For use when the numeric."]
25745 pub amountRatioLowLimit: Option<Box<Ratio>>,
25746 #[doc = "An operator for the amount, for example \"average\", \"approximately\", \"less than\"."]
25747 pub amountType: Option<Box<CodeableConcept>>,
25748 # [reference (targets = ["DocumentReference"])]
25749 #[doc = "Supporting literature."]
25750 pub source: Option<Vec<Box<Reference>>>,
25751}
25752#[derive(
25753 Clone,
25754 Reflect,
25755 Debug,
25756 Default,
25757 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25758 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25759)]
25760#[fhir_serialize_type = "resource"]
25761#[doc = "The detailed description of a substance, typically at a level beyond what is used for prescribing."]
25762pub struct SubstanceSpecification {
25763 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
25764 pub id: Option<String>,
25765 #[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."]
25766 pub meta: Option<Box<Meta>>,
25767 #[primitive]
25768 #[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."]
25769 pub implicitRules: Option<Box<FHIRUri>>,
25770 #[primitive]
25771 #[doc = "The base language in which the resource is written."]
25772 pub language: Option<Box<FHIRCode>>,
25773 #[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."]
25774 pub text: Option<Box<Narrative>>,
25775 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
25776 pub contained: Option<Vec<Box<Resource>>>,
25777 #[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 manageable, 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."]
25778 pub extension: Option<Vec<Box<Extension>>>,
25779 #[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 manageable, 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)."]
25780 pub modifierExtension: Option<Vec<Box<Extension>>>,
25781 #[rename_field = "identifier"]
25782 #[doc = "Identifier by which this substance is known."]
25783 pub identifier_: Option<Box<Identifier>>,
25784 #[rename_field = "type"]
25785 #[doc = "High level categorization, e.g. polymer or nucleic acid."]
25786 pub type_: Option<Box<CodeableConcept>>,
25787 #[doc = "Status of substance within the catalogue e.g. approved."]
25788 pub status: Option<Box<CodeableConcept>>,
25789 #[doc = "If the substance applies to only human or veterinary use."]
25790 pub domain: Option<Box<CodeableConcept>>,
25791 #[primitive]
25792 #[doc = "Textual description of the substance."]
25793 pub description: Option<Box<FHIRString>>,
25794 # [reference (targets = ["DocumentReference"])]
25795 #[doc = "Supporting literature."]
25796 pub source: Option<Vec<Box<Reference>>>,
25797 #[primitive]
25798 #[doc = "Textual comment about this record of a substance."]
25799 pub comment: Option<Box<FHIRString>>,
25800 #[doc = "Moiety, for structural modifications."]
25801 pub moiety: Option<Vec<SubstanceSpecificationMoiety>>,
25802 #[doc = "General specifications for this substance, including how it is related to other substances."]
25803 pub property: Option<Vec<SubstanceSpecificationProperty>>,
25804 # [reference (targets = ["SubstanceReferenceInformation"])]
25805 #[doc = "General information detailing this substance."]
25806 pub referenceInformation: Option<Box<Reference>>,
25807 #[doc = "Structural information."]
25808 pub structure: Option<SubstanceSpecificationStructure>,
25809 #[doc = "Codes associated with the substance."]
25810 pub code: Option<Vec<SubstanceSpecificationCode>>,
25811 #[doc = "Names applicable to this substance."]
25812 pub name: Option<Vec<SubstanceSpecificationName>>,
25813 #[doc = "The molecular weight or weight range (for proteins, polymers or nucleic acids)."]
25814 pub molecularWeight: Option<Vec<SubstanceSpecificationStructureIsotopeMolecularWeight>>,
25815 #[doc = "A link between this substance and another, with details of the relationship."]
25816 pub relationship: Option<Vec<SubstanceSpecificationRelationship>>,
25817 # [reference (targets = ["SubstanceNucleicAcid"])]
25818 #[doc = "Data items specific to nucleic acids."]
25819 pub nucleicAcid: Option<Box<Reference>>,
25820 # [reference (targets = ["SubstancePolymer"])]
25821 #[doc = "Data items specific to polymers."]
25822 pub polymer: Option<Box<Reference>>,
25823 # [reference (targets = ["SubstanceProtein"])]
25824 #[doc = "Data items specific to proteins."]
25825 pub protein: Option<Box<Reference>>,
25826 # [reference (targets = ["SubstanceSourceMaterial"])]
25827 #[doc = "Material or taxonomic/anatomical source for the substance."]
25828 pub sourceMaterial: Option<Box<Reference>>,
25829}
25830#[derive(
25831 Clone,
25832 Reflect,
25833 Debug,
25834 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25835 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25836)]
25837#[fhir_serialize_type = "typechoice"]
25838#[type_choice_field_name = "item"]
25839pub enum SupplyDeliverySuppliedItemItemTypeChoice {
25840 CodeableConcept(Box<CodeableConcept>),
25841 # [reference (targets = ["Medication" , "Substance" , "Device"])]
25842 Reference(Box<Reference>),
25843}
25844impl Default for SupplyDeliverySuppliedItemItemTypeChoice {
25845 fn default() -> Self {
25846 SupplyDeliverySuppliedItemItemTypeChoice::CodeableConcept(Box::new(Default::default()))
25847 }
25848}
25849#[derive(
25850 Clone,
25851 Reflect,
25852 Debug,
25853 Default,
25854 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25855 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25856)]
25857#[fhir_serialize_type = "complex"]
25858#[doc = "The item that is being delivered or has been supplied."]
25859pub struct SupplyDeliverySuppliedItem {
25860 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
25861 pub id: Option<String>,
25862 #[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 manageable, 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."]
25863 pub extension: Option<Vec<Box<Extension>>>,
25864 #[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 manageable, 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)."]
25865 pub modifierExtension: Option<Vec<Box<Extension>>>,
25866 #[doc = "The amount of supply that has been dispensed. Includes unit of measure."]
25867 pub quantity: Option<Box<Quantity>>,
25868 # [type_choice_variants (complex = ["itemCodeableConcept" , "itemReference"] , primitive = [])]
25869 #[doc = "Identifies the medication, substance or device being dispensed. This is either a link to a resource representing the details of the item or a code that identifies the item from a known list."]
25870 pub item: Option<SupplyDeliverySuppliedItemItemTypeChoice>,
25871}
25872#[derive(
25873 Clone,
25874 Reflect,
25875 Debug,
25876 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25877 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25878)]
25879#[fhir_serialize_type = "typechoice"]
25880#[type_choice_field_name = "occurrence"]
25881pub enum SupplyDeliveryOccurrenceTypeChoice {
25882 DateTime(Box<FHIRDateTime>),
25883 Period(Box<Period>),
25884 Timing(Box<Timing>),
25885}
25886impl Default for SupplyDeliveryOccurrenceTypeChoice {
25887 fn default() -> Self {
25888 SupplyDeliveryOccurrenceTypeChoice::DateTime(Box::new(Default::default()))
25889 }
25890}
25891#[derive(
25892 Clone,
25893 Reflect,
25894 Debug,
25895 Default,
25896 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25897 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25898)]
25899#[fhir_serialize_type = "resource"]
25900#[doc = "Record of delivery of what is supplied."]
25901pub struct SupplyDelivery {
25902 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
25903 pub id: Option<String>,
25904 #[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."]
25905 pub meta: Option<Box<Meta>>,
25906 #[primitive]
25907 #[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."]
25908 pub implicitRules: Option<Box<FHIRUri>>,
25909 #[primitive]
25910 #[doc = "The base language in which the resource is written."]
25911 pub language: Option<Box<FHIRCode>>,
25912 #[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."]
25913 pub text: Option<Box<Narrative>>,
25914 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
25915 pub contained: Option<Vec<Box<Resource>>>,
25916 #[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 manageable, 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."]
25917 pub extension: Option<Vec<Box<Extension>>>,
25918 #[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 manageable, 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)."]
25919 pub modifierExtension: Option<Vec<Box<Extension>>>,
25920 #[rename_field = "identifier"]
25921 #[doc = "Identifier for the supply delivery event that is used to identify it across multiple disparate systems."]
25922 pub identifier_: Option<Vec<Box<Identifier>>>,
25923 # [reference (targets = ["SupplyRequest"])]
25924 #[doc = "A plan, proposal or order that is fulfilled in whole or in part by this event."]
25925 pub basedOn: Option<Vec<Box<Reference>>>,
25926 # [reference (targets = ["SupplyDelivery" , "Contract"])]
25927 #[doc = "A larger event of which this particular event is a component or step."]
25928 pub partOf: Option<Vec<Box<Reference>>>,
25929 #[primitive]
25930 #[doc = "A code specifying the state of the dispense event."]
25931 pub status: Option<Box<terminology::SupplydeliveryStatus>>,
25932 # [reference (targets = ["Patient"])]
25933 #[doc = "A link to a resource representing the person whom the delivered item is for."]
25934 pub patient: Option<Box<Reference>>,
25935 #[rename_field = "type"]
25936 #[doc = "Indicates the type of dispensing event that is performed. Examples include: Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc."]
25937 pub type_: Option<Box<CodeableConcept>>,
25938 #[doc = "The item that is being delivered or has been supplied."]
25939 pub suppliedItem: Option<SupplyDeliverySuppliedItem>,
25940 # [type_choice_variants (complex = ["occurrencePeriod" , "occurrenceTiming"] , primitive = ["occurrenceDateTime"])]
25941 #[doc = "The date or time(s) the activity occurred."]
25942 pub occurrence: Option<SupplyDeliveryOccurrenceTypeChoice>,
25943 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
25944 #[doc = "The individual responsible for dispensing the medication, supplier or device."]
25945 pub supplier: Option<Box<Reference>>,
25946 # [reference (targets = ["Location"])]
25947 #[doc = "Identification of the facility/location where the Supply was shipped to, as part of the dispense event."]
25948 pub destination: Option<Box<Reference>>,
25949 # [reference (targets = ["Practitioner" , "PractitionerRole"])]
25950 #[doc = "Identifies the person who picked up the Supply."]
25951 pub receiver: Option<Vec<Box<Reference>>>,
25952}
25953#[derive(
25954 Clone,
25955 Reflect,
25956 Debug,
25957 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25958 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25959)]
25960#[fhir_serialize_type = "typechoice"]
25961#[type_choice_field_name = "item"]
25962pub enum SupplyRequestItemTypeChoice {
25963 CodeableConcept(Box<CodeableConcept>),
25964 # [reference (targets = ["Medication" , "Substance" , "Device"])]
25965 Reference(Box<Reference>),
25966}
25967impl Default for SupplyRequestItemTypeChoice {
25968 fn default() -> Self {
25969 SupplyRequestItemTypeChoice::CodeableConcept(Box::new(Default::default()))
25970 }
25971}
25972#[derive(
25973 Clone,
25974 Reflect,
25975 Debug,
25976 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25977 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25978)]
25979#[fhir_serialize_type = "typechoice"]
25980#[type_choice_field_name = "value"]
25981pub enum SupplyRequestParameterValueTypeChoice {
25982 CodeableConcept(Box<CodeableConcept>),
25983 Quantity(Box<Quantity>),
25984 Range(Box<Range>),
25985 Boolean(Box<FHIRBoolean>),
25986}
25987impl Default for SupplyRequestParameterValueTypeChoice {
25988 fn default() -> Self {
25989 SupplyRequestParameterValueTypeChoice::CodeableConcept(Box::new(Default::default()))
25990 }
25991}
25992#[derive(
25993 Clone,
25994 Reflect,
25995 Debug,
25996 Default,
25997 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
25998 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
25999)]
26000#[fhir_serialize_type = "complex"]
26001#[doc = "Specific parameters for the ordered item. For example, the size of the indicated item."]
26002pub struct SupplyRequestParameter {
26003 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26004 pub id: Option<String>,
26005 #[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 manageable, 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."]
26006 pub extension: Option<Vec<Box<Extension>>>,
26007 #[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 manageable, 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)."]
26008 pub modifierExtension: Option<Vec<Box<Extension>>>,
26009 #[doc = "A code or string that identifies the device detail being asserted."]
26010 pub code: Option<Box<CodeableConcept>>,
26011 # [type_choice_variants (complex = ["valueCodeableConcept" , "valueQuantity" , "valueRange"] , primitive = ["valueBoolean"])]
26012 #[doc = "The value of the device detail."]
26013 pub value: Option<SupplyRequestParameterValueTypeChoice>,
26014}
26015#[derive(
26016 Clone,
26017 Reflect,
26018 Debug,
26019 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26020 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26021)]
26022#[fhir_serialize_type = "typechoice"]
26023#[type_choice_field_name = "occurrence"]
26024pub enum SupplyRequestOccurrenceTypeChoice {
26025 DateTime(Box<FHIRDateTime>),
26026 Period(Box<Period>),
26027 Timing(Box<Timing>),
26028}
26029impl Default for SupplyRequestOccurrenceTypeChoice {
26030 fn default() -> Self {
26031 SupplyRequestOccurrenceTypeChoice::DateTime(Box::new(Default::default()))
26032 }
26033}
26034#[derive(
26035 Clone,
26036 Reflect,
26037 Debug,
26038 Default,
26039 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26040 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26041)]
26042#[fhir_serialize_type = "resource"]
26043#[doc = "A record of a request for a medication, substance or device used in the healthcare setting."]
26044pub struct SupplyRequest {
26045 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
26046 pub id: Option<String>,
26047 #[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."]
26048 pub meta: Option<Box<Meta>>,
26049 #[primitive]
26050 #[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."]
26051 pub implicitRules: Option<Box<FHIRUri>>,
26052 #[primitive]
26053 #[doc = "The base language in which the resource is written."]
26054 pub language: Option<Box<FHIRCode>>,
26055 #[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."]
26056 pub text: Option<Box<Narrative>>,
26057 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
26058 pub contained: Option<Vec<Box<Resource>>>,
26059 #[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 manageable, 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."]
26060 pub extension: Option<Vec<Box<Extension>>>,
26061 #[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 manageable, 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)."]
26062 pub modifierExtension: Option<Vec<Box<Extension>>>,
26063 #[rename_field = "identifier"]
26064 #[doc = "Business identifiers assigned to this SupplyRequest by the author and/or other systems. These identifiers remain constant as the resource is updated and propagates from server to server."]
26065 pub identifier_: Option<Vec<Box<Identifier>>>,
26066 #[primitive]
26067 #[doc = "Status of the supply request."]
26068 pub status: Option<Box<terminology::SupplyrequestStatus>>,
26069 #[doc = "Category of supply, e.g. central, non-stock, etc. This is used to support work flows associated with the supply process."]
26070 pub category: Option<Box<CodeableConcept>>,
26071 #[primitive]
26072 #[doc = "Indicates how quickly this SupplyRequest should be addressed with respect to other requests."]
26073 pub priority: Option<Box<terminology::RequestPriority>>,
26074 # [type_choice_variants (complex = ["itemCodeableConcept" , "itemReference"] , primitive = [])]
26075 #[doc = "The item that is requested to be supplied. This is either a link to a resource representing the details of the item or a code that identifies the item from a known list."]
26076 pub item: SupplyRequestItemTypeChoice,
26077 #[doc = "The amount that is being ordered of the indicated item."]
26078 pub quantity: Box<Quantity>,
26079 #[doc = "Specific parameters for the ordered item. For example, the size of the indicated item."]
26080 pub parameter: Option<Vec<SupplyRequestParameter>>,
26081 # [type_choice_variants (complex = ["occurrencePeriod" , "occurrenceTiming"] , primitive = ["occurrenceDateTime"])]
26082 #[doc = "When the request should be fulfilled."]
26083 pub occurrence: Option<SupplyRequestOccurrenceTypeChoice>,
26084 #[primitive]
26085 #[doc = "When the request was made."]
26086 pub authoredOn: Option<Box<FHIRDateTime>>,
26087 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization" , "Patient" , "RelatedPerson" , "Device"])]
26088 #[doc = "The device, practitioner, etc. who initiated the request."]
26089 pub requester: Option<Box<Reference>>,
26090 # [reference (targets = ["Organization" , "HealthcareService"])]
26091 #[doc = "Who is intended to fulfill the request."]
26092 pub supplier: Option<Vec<Box<Reference>>>,
26093 #[doc = "The reason why the supply item was requested."]
26094 pub reasonCode: Option<Vec<Box<CodeableConcept>>>,
26095 # [reference (targets = ["Condition" , "Observation" , "DiagnosticReport" , "DocumentReference"])]
26096 #[doc = "The reason why the supply item was requested."]
26097 pub reasonReference: Option<Vec<Box<Reference>>>,
26098 # [reference (targets = ["Organization" , "Location"])]
26099 #[doc = "Where the supply is expected to come from."]
26100 pub deliverFrom: Option<Box<Reference>>,
26101 # [reference (targets = ["Organization" , "Location" , "Patient"])]
26102 #[doc = "Where the supply is destined to go."]
26103 pub deliverTo: Option<Box<Reference>>,
26104}
26105#[derive(
26106 Clone,
26107 Reflect,
26108 Debug,
26109 Default,
26110 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26111 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26112)]
26113#[fhir_serialize_type = "complex"]
26114#[doc = "If the Task.focus is a request resource and the task is seeking fulfillment (i.e. is asking for the request to be actioned), this element identifies any limitations on what parts of the referenced request should be actioned."]
26115pub struct TaskRestriction {
26116 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26117 pub id: Option<String>,
26118 #[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 manageable, 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."]
26119 pub extension: Option<Vec<Box<Extension>>>,
26120 #[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 manageable, 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)."]
26121 pub modifierExtension: Option<Vec<Box<Extension>>>,
26122 #[primitive]
26123 #[doc = "Indicates the number of times the requested action should occur."]
26124 pub repetitions: Option<Box<FHIRPositiveInt>>,
26125 #[doc = "Over what time-period is fulfillment sought."]
26126 pub period: Option<Box<Period>>,
26127 # [reference (targets = ["Patient" , "Practitioner" , "PractitionerRole" , "RelatedPerson" , "Group" , "Organization"])]
26128 #[doc = "For requests that are targeted to more than on potential recipient/target, for whom is fulfillment sought?"]
26129 pub recipient: Option<Vec<Box<Reference>>>,
26130}
26131#[derive(
26132 Clone,
26133 Reflect,
26134 Debug,
26135 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26136 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26137)]
26138#[fhir_serialize_type = "typechoice"]
26139#[type_choice_field_name = "value"]
26140pub enum TaskInputValueTypeChoice {
26141 Base64Binary(Box<FHIRBase64Binary>),
26142 Boolean(Box<FHIRBoolean>),
26143 Canonical(Box<FHIRCanonical>),
26144 Code(Box<FHIRCode>),
26145 Date(Box<FHIRDate>),
26146 DateTime(Box<FHIRDateTime>),
26147 Decimal(Box<FHIRDecimal>),
26148 Id(Box<FHIRId>),
26149 Instant(Box<FHIRInstant>),
26150 Integer(Box<FHIRInteger>),
26151 Markdown(Box<FHIRMarkdown>),
26152 Oid(Box<FHIROid>),
26153 PositiveInt(Box<FHIRPositiveInt>),
26154 String(Box<FHIRString>),
26155 Time(Box<FHIRTime>),
26156 UnsignedInt(Box<FHIRUnsignedInt>),
26157 Uri(Box<FHIRUri>),
26158 Url(Box<FHIRUrl>),
26159 Uuid(Box<FHIRUuid>),
26160 Address(Box<Address>),
26161 Age(Box<Age>),
26162 Annotation(Box<Annotation>),
26163 Attachment(Box<Attachment>),
26164 CodeableConcept(Box<CodeableConcept>),
26165 Coding(Box<Coding>),
26166 ContactPoint(Box<ContactPoint>),
26167 Count(Box<Count>),
26168 Distance(Box<Distance>),
26169 Duration(Box<Duration>),
26170 HumanName(Box<HumanName>),
26171 Identifier(Box<Identifier>),
26172 Money(Box<Money>),
26173 Period(Box<Period>),
26174 Quantity(Box<Quantity>),
26175 Range(Box<Range>),
26176 Ratio(Box<Ratio>),
26177 Reference(Box<Reference>),
26178 SampledData(Box<SampledData>),
26179 Signature(Box<Signature>),
26180 Timing(Box<Timing>),
26181 ContactDetail(Box<ContactDetail>),
26182 Contributor(Box<Contributor>),
26183 DataRequirement(Box<DataRequirement>),
26184 Expression(Box<Expression>),
26185 ParameterDefinition(Box<ParameterDefinition>),
26186 RelatedArtifact(Box<RelatedArtifact>),
26187 TriggerDefinition(Box<TriggerDefinition>),
26188 UsageContext(Box<UsageContext>),
26189 Dosage(Box<Dosage>),
26190 Meta(Box<Meta>),
26191}
26192impl Default for TaskInputValueTypeChoice {
26193 fn default() -> Self {
26194 TaskInputValueTypeChoice::Base64Binary(Box::new(Default::default()))
26195 }
26196}
26197#[derive(
26198 Clone,
26199 Reflect,
26200 Debug,
26201 Default,
26202 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26203 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26204)]
26205#[fhir_serialize_type = "complex"]
26206#[doc = "Additional information that may be needed in the execution of the task."]
26207pub struct TaskInput {
26208 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26209 pub id: Option<String>,
26210 #[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 manageable, 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."]
26211 pub extension: Option<Vec<Box<Extension>>>,
26212 #[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 manageable, 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)."]
26213 pub modifierExtension: Option<Vec<Box<Extension>>>,
26214 #[rename_field = "type"]
26215 #[doc = "A code or description indicating how the input is intended to be used as part of the task execution."]
26216 pub type_: Box<CodeableConcept>,
26217 # [type_choice_variants (complex = ["valueAddress" , "valueAge" , "valueAnnotation" , "valueAttachment" , "valueCodeableConcept" , "valueCoding" , "valueContactPoint" , "valueCount" , "valueDistance" , "valueDuration" , "valueHumanName" , "valueIdentifier" , "valueMoney" , "valuePeriod" , "valueQuantity" , "valueRange" , "valueRatio" , "valueReference" , "valueSampledData" , "valueSignature" , "valueTiming" , "valueContactDetail" , "valueContributor" , "valueDataRequirement" , "valueExpression" , "valueParameterDefinition" , "valueRelatedArtifact" , "valueTriggerDefinition" , "valueUsageContext" , "valueDosage" , "valueMeta"] , primitive = ["valueBase64Binary" , "valueBoolean" , "valueCanonical" , "valueCode" , "valueDate" , "valueDateTime" , "valueDecimal" , "valueId" , "valueInstant" , "valueInteger" , "valueMarkdown" , "valueOid" , "valuePositiveInt" , "valueString" , "valueTime" , "valueUnsignedInt" , "valueUri" , "valueUrl" , "valueUuid"])]
26218 #[doc = "The value of the input parameter as a basic type."]
26219 pub value: TaskInputValueTypeChoice,
26220}
26221#[derive(
26222 Clone,
26223 Reflect,
26224 Debug,
26225 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26226 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26227)]
26228#[fhir_serialize_type = "typechoice"]
26229#[type_choice_field_name = "value"]
26230pub enum TaskOutputValueTypeChoice {
26231 Base64Binary(Box<FHIRBase64Binary>),
26232 Boolean(Box<FHIRBoolean>),
26233 Canonical(Box<FHIRCanonical>),
26234 Code(Box<FHIRCode>),
26235 Date(Box<FHIRDate>),
26236 DateTime(Box<FHIRDateTime>),
26237 Decimal(Box<FHIRDecimal>),
26238 Id(Box<FHIRId>),
26239 Instant(Box<FHIRInstant>),
26240 Integer(Box<FHIRInteger>),
26241 Markdown(Box<FHIRMarkdown>),
26242 Oid(Box<FHIROid>),
26243 PositiveInt(Box<FHIRPositiveInt>),
26244 String(Box<FHIRString>),
26245 Time(Box<FHIRTime>),
26246 UnsignedInt(Box<FHIRUnsignedInt>),
26247 Uri(Box<FHIRUri>),
26248 Url(Box<FHIRUrl>),
26249 Uuid(Box<FHIRUuid>),
26250 Address(Box<Address>),
26251 Age(Box<Age>),
26252 Annotation(Box<Annotation>),
26253 Attachment(Box<Attachment>),
26254 CodeableConcept(Box<CodeableConcept>),
26255 Coding(Box<Coding>),
26256 ContactPoint(Box<ContactPoint>),
26257 Count(Box<Count>),
26258 Distance(Box<Distance>),
26259 Duration(Box<Duration>),
26260 HumanName(Box<HumanName>),
26261 Identifier(Box<Identifier>),
26262 Money(Box<Money>),
26263 Period(Box<Period>),
26264 Quantity(Box<Quantity>),
26265 Range(Box<Range>),
26266 Ratio(Box<Ratio>),
26267 Reference(Box<Reference>),
26268 SampledData(Box<SampledData>),
26269 Signature(Box<Signature>),
26270 Timing(Box<Timing>),
26271 ContactDetail(Box<ContactDetail>),
26272 Contributor(Box<Contributor>),
26273 DataRequirement(Box<DataRequirement>),
26274 Expression(Box<Expression>),
26275 ParameterDefinition(Box<ParameterDefinition>),
26276 RelatedArtifact(Box<RelatedArtifact>),
26277 TriggerDefinition(Box<TriggerDefinition>),
26278 UsageContext(Box<UsageContext>),
26279 Dosage(Box<Dosage>),
26280 Meta(Box<Meta>),
26281}
26282impl Default for TaskOutputValueTypeChoice {
26283 fn default() -> Self {
26284 TaskOutputValueTypeChoice::Base64Binary(Box::new(Default::default()))
26285 }
26286}
26287#[derive(
26288 Clone,
26289 Reflect,
26290 Debug,
26291 Default,
26292 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26293 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26294)]
26295#[fhir_serialize_type = "complex"]
26296#[doc = "Outputs produced by the Task."]
26297pub struct TaskOutput {
26298 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26299 pub id: Option<String>,
26300 #[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 manageable, 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."]
26301 pub extension: Option<Vec<Box<Extension>>>,
26302 #[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 manageable, 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)."]
26303 pub modifierExtension: Option<Vec<Box<Extension>>>,
26304 #[rename_field = "type"]
26305 #[doc = "The name of the Output parameter."]
26306 pub type_: Box<CodeableConcept>,
26307 # [type_choice_variants (complex = ["valueAddress" , "valueAge" , "valueAnnotation" , "valueAttachment" , "valueCodeableConcept" , "valueCoding" , "valueContactPoint" , "valueCount" , "valueDistance" , "valueDuration" , "valueHumanName" , "valueIdentifier" , "valueMoney" , "valuePeriod" , "valueQuantity" , "valueRange" , "valueRatio" , "valueReference" , "valueSampledData" , "valueSignature" , "valueTiming" , "valueContactDetail" , "valueContributor" , "valueDataRequirement" , "valueExpression" , "valueParameterDefinition" , "valueRelatedArtifact" , "valueTriggerDefinition" , "valueUsageContext" , "valueDosage" , "valueMeta"] , primitive = ["valueBase64Binary" , "valueBoolean" , "valueCanonical" , "valueCode" , "valueDate" , "valueDateTime" , "valueDecimal" , "valueId" , "valueInstant" , "valueInteger" , "valueMarkdown" , "valueOid" , "valuePositiveInt" , "valueString" , "valueTime" , "valueUnsignedInt" , "valueUri" , "valueUrl" , "valueUuid"])]
26308 #[doc = "The value of the Output parameter as a basic type."]
26309 pub value: TaskOutputValueTypeChoice,
26310}
26311#[derive(
26312 Clone,
26313 Reflect,
26314 Debug,
26315 Default,
26316 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26317 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26318)]
26319#[fhir_serialize_type = "resource"]
26320#[doc = "A task to be performed."]
26321pub struct Task {
26322 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
26323 pub id: Option<String>,
26324 #[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."]
26325 pub meta: Option<Box<Meta>>,
26326 #[primitive]
26327 #[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."]
26328 pub implicitRules: Option<Box<FHIRUri>>,
26329 #[primitive]
26330 #[doc = "The base language in which the resource is written."]
26331 pub language: Option<Box<FHIRCode>>,
26332 #[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."]
26333 pub text: Option<Box<Narrative>>,
26334 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
26335 pub contained: Option<Vec<Box<Resource>>>,
26336 #[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 manageable, 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."]
26337 pub extension: Option<Vec<Box<Extension>>>,
26338 #[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 manageable, 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)."]
26339 pub modifierExtension: Option<Vec<Box<Extension>>>,
26340 #[rename_field = "identifier"]
26341 #[doc = "The business identifier for this task."]
26342 pub identifier_: Option<Vec<Box<Identifier>>>,
26343 #[primitive]
26344 #[doc = "The URL pointing to a *FHIR*-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Task."]
26345 pub instantiatesCanonical: Option<Box<FHIRCanonical>>,
26346 #[primitive]
26347 #[doc = "The URL pointing to an *externally* maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this Task."]
26348 pub instantiatesUri: Option<Box<FHIRUri>>,
26349 # [reference (targets = ["Resource"])]
26350 #[doc = "BasedOn refers to a higher-level authorization that triggered the creation of the task. It references a \"request\" resource such as a ServiceRequest, MedicationRequest, ServiceRequest, CarePlan, etc. which is distinct from the \"request\" resource the task is seeking to fulfill. This latter resource is referenced by FocusOn. For example, based on a ServiceRequest (= BasedOn), a task is created to fulfill a procedureRequest ( = FocusOn ) to collect a specimen from a patient."]
26351 pub basedOn: Option<Vec<Box<Reference>>>,
26352 #[doc = "An identifier that links together multiple tasks and other requests that were created in the same context."]
26353 pub groupIdentifier: Option<Box<Identifier>>,
26354 # [reference (targets = ["Task"])]
26355 #[doc = "Task that this particular task is part of."]
26356 pub partOf: Option<Vec<Box<Reference>>>,
26357 #[primitive]
26358 #[doc = "The current status of the task."]
26359 pub status: Box<terminology::TaskStatus>,
26360 #[doc = "An explanation as to why this task is held, failed, was refused, etc."]
26361 pub statusReason: Option<Box<CodeableConcept>>,
26362 #[doc = "Contains business-specific nuances of the business state."]
26363 pub businessStatus: Option<Box<CodeableConcept>>,
26364 #[primitive]
26365 #[doc = "Indicates the \"level\" of actionability associated with the Task, i.e. i+R[9]Cs this a proposed task, a planned task, an actionable task, etc."]
26366 pub intent: Box<terminology::TaskIntent>,
26367 #[primitive]
26368 #[doc = "Indicates how quickly the Task should be addressed with respect to other requests."]
26369 pub priority: Option<Box<terminology::RequestPriority>>,
26370 #[doc = "A name or code (or both) briefly describing what the task involves."]
26371 pub code: Option<Box<CodeableConcept>>,
26372 #[primitive]
26373 #[doc = "A free-text description of what is to be performed."]
26374 pub description: Option<Box<FHIRString>>,
26375 # [reference (targets = ["Resource"])]
26376 #[doc = "The request being actioned or the resource being manipulated by this task."]
26377 pub focus: Option<Box<Reference>>,
26378 #[rename_field = "for"]
26379 # [reference (targets = ["Resource"])]
26380 #[doc = "The entity who benefits from the performance of the service specified in the task (e.g., the patient)."]
26381 pub for_: Option<Box<Reference>>,
26382 # [reference (targets = ["Encounter"])]
26383 #[doc = "The healthcare event (e.g. a patient and healthcare provider interaction) during which this task was created."]
26384 pub encounter: Option<Box<Reference>>,
26385 #[doc = "Identifies the time action was first taken against the task (start) and/or the time final action was taken against the task prior to marking it as completed (end)."]
26386 pub executionPeriod: Option<Box<Period>>,
26387 #[primitive]
26388 #[doc = "The date and time this task was created."]
26389 pub authoredOn: Option<Box<FHIRDateTime>>,
26390 #[primitive]
26391 #[doc = "The date and time of last modification to this task."]
26392 pub lastModified: Option<Box<FHIRDateTime>>,
26393 # [reference (targets = ["Device" , "Organization" , "Patient" , "Practitioner" , "PractitionerRole" , "RelatedPerson"])]
26394 #[doc = "The creator of the task."]
26395 pub requester: Option<Box<Reference>>,
26396 #[doc = "The kind of participant that should perform the task."]
26397 pub performerType: Option<Vec<Box<CodeableConcept>>>,
26398 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization" , "CareTeam" , "HealthcareService" , "Patient" , "Device" , "RelatedPerson"])]
26399 #[doc = "Individual organization or Device currently responsible for task execution."]
26400 pub owner: Option<Box<Reference>>,
26401 # [reference (targets = ["Location"])]
26402 #[doc = "Principal physical location where the this task is performed."]
26403 pub location: Option<Box<Reference>>,
26404 #[doc = "A description or code indicating why this task needs to be performed."]
26405 pub reasonCode: Option<Box<CodeableConcept>>,
26406 # [reference (targets = ["Resource"])]
26407 #[doc = "A resource reference indicating why this task needs to be performed."]
26408 pub reasonReference: Option<Box<Reference>>,
26409 # [reference (targets = ["Coverage" , "ClaimResponse"])]
26410 #[doc = "Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be relevant to the Task."]
26411 pub insurance: Option<Vec<Box<Reference>>>,
26412 #[doc = "Free-text information captured about the task as it progresses."]
26413 pub note: Option<Vec<Box<Annotation>>>,
26414 # [reference (targets = ["Provenance"])]
26415 #[doc = "Links to Provenance records for past versions of this Task that identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the task."]
26416 pub relevantHistory: Option<Vec<Box<Reference>>>,
26417 #[doc = "If the Task.focus is a request resource and the task is seeking fulfillment (i.e. is asking for the request to be actioned), this element identifies any limitations on what parts of the referenced request should be actioned."]
26418 pub restriction: Option<TaskRestriction>,
26419 #[doc = "Additional information that may be needed in the execution of the task."]
26420 pub input: Option<Vec<TaskInput>>,
26421 #[doc = "Outputs produced by the Task."]
26422 pub output: Option<Vec<TaskOutput>>,
26423}
26424#[derive(
26425 Clone,
26426 Reflect,
26427 Debug,
26428 Default,
26429 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26430 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26431)]
26432#[fhir_serialize_type = "complex"]
26433#[doc = "Software that is covered by this terminology capability statement. It is used when the statement describes the capabilities of a particular software version, independent of an installation."]
26434pub struct TerminologyCapabilitiesSoftware {
26435 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26436 pub id: Option<String>,
26437 #[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 manageable, 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."]
26438 pub extension: Option<Vec<Box<Extension>>>,
26439 #[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 manageable, 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)."]
26440 pub modifierExtension: Option<Vec<Box<Extension>>>,
26441 #[primitive]
26442 #[doc = "Name the software is known by."]
26443 pub name: Box<FHIRString>,
26444 #[primitive]
26445 #[doc = "The version identifier for the software covered by this statement."]
26446 pub version: Option<Box<FHIRString>>,
26447}
26448#[derive(
26449 Clone,
26450 Reflect,
26451 Debug,
26452 Default,
26453 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26454 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26455)]
26456#[fhir_serialize_type = "complex"]
26457#[doc = "Identifies a specific implementation instance that is described by the terminology capability statement - i.e. a particular installation, rather than the capabilities of a software program."]
26458pub struct TerminologyCapabilitiesImplementation {
26459 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26460 pub id: Option<String>,
26461 #[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 manageable, 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."]
26462 pub extension: Option<Vec<Box<Extension>>>,
26463 #[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 manageable, 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)."]
26464 pub modifierExtension: Option<Vec<Box<Extension>>>,
26465 #[primitive]
26466 #[doc = "Information about the specific installation that this terminology capability statement relates to."]
26467 pub description: Box<FHIRString>,
26468 #[primitive]
26469 #[doc = "An absolute base URL for the implementation."]
26470 pub url: Option<Box<FHIRUrl>>,
26471}
26472#[derive(
26473 Clone,
26474 Reflect,
26475 Debug,
26476 Default,
26477 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26478 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26479)]
26480#[fhir_serialize_type = "complex"]
26481#[doc = "Filter Properties supported."]
26482pub struct TerminologyCapabilitiesCodeSystemVersionFilter {
26483 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26484 pub id: Option<String>,
26485 #[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 manageable, 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."]
26486 pub extension: Option<Vec<Box<Extension>>>,
26487 #[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 manageable, 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)."]
26488 pub modifierExtension: Option<Vec<Box<Extension>>>,
26489 #[primitive]
26490 #[doc = "Code of the property supported."]
26491 pub code: Box<FHIRCode>,
26492 #[primitive]
26493 #[cardinality(min = 1usize)]
26494 #[doc = "Operations supported for the property."]
26495 pub op: Vec<Box<FHIRCode>>,
26496}
26497#[derive(
26498 Clone,
26499 Reflect,
26500 Debug,
26501 Default,
26502 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26503 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26504)]
26505#[fhir_serialize_type = "complex"]
26506#[doc = "For the code system, a list of versions that are supported by the server."]
26507pub struct TerminologyCapabilitiesCodeSystemVersion {
26508 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26509 pub id: Option<String>,
26510 #[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 manageable, 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."]
26511 pub extension: Option<Vec<Box<Extension>>>,
26512 #[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 manageable, 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)."]
26513 pub modifierExtension: Option<Vec<Box<Extension>>>,
26514 #[primitive]
26515 #[doc = "For version-less code systems, there should be a single version with no identifier."]
26516 pub code: Option<Box<FHIRString>>,
26517 #[primitive]
26518 #[doc = "If this is the default version for this code system."]
26519 pub isDefault: Option<Box<FHIRBoolean>>,
26520 #[primitive]
26521 #[doc = "If the compositional grammar defined by the code system is supported."]
26522 pub compositional: Option<Box<FHIRBoolean>>,
26523 #[primitive]
26524 #[doc = "Language Displays supported."]
26525 pub language: Option<Vec<Box<FHIRCode>>>,
26526 #[doc = "Filter Properties supported."]
26527 pub filter: Option<Vec<TerminologyCapabilitiesCodeSystemVersionFilter>>,
26528 #[primitive]
26529 #[doc = "Properties supported for $lookup."]
26530 pub property: Option<Vec<Box<FHIRCode>>>,
26531}
26532#[derive(
26533 Clone,
26534 Reflect,
26535 Debug,
26536 Default,
26537 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26538 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26539)]
26540#[fhir_serialize_type = "complex"]
26541#[doc = "Identifies a code system that is supported by the server. If there is a no code system URL, then this declares the general assumptions a client can make about support for any CodeSystem resource."]
26542pub struct TerminologyCapabilitiesCodeSystem {
26543 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26544 pub id: Option<String>,
26545 #[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 manageable, 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."]
26546 pub extension: Option<Vec<Box<Extension>>>,
26547 #[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 manageable, 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)."]
26548 pub modifierExtension: Option<Vec<Box<Extension>>>,
26549 #[primitive]
26550 #[doc = "URI for the Code System."]
26551 pub uri: Option<Box<FHIRCanonical>>,
26552 #[doc = "For the code system, a list of versions that are supported by the server."]
26553 pub version: Option<Vec<TerminologyCapabilitiesCodeSystemVersion>>,
26554 #[primitive]
26555 #[doc = "True if subsumption is supported for this version of the code system."]
26556 pub subsumption: Option<Box<FHIRBoolean>>,
26557}
26558#[derive(
26559 Clone,
26560 Reflect,
26561 Debug,
26562 Default,
26563 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26564 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26565)]
26566#[fhir_serialize_type = "complex"]
26567#[doc = "Supported expansion parameter."]
26568pub struct TerminologyCapabilitiesExpansionParameter {
26569 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26570 pub id: Option<String>,
26571 #[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 manageable, 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."]
26572 pub extension: Option<Vec<Box<Extension>>>,
26573 #[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 manageable, 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)."]
26574 pub modifierExtension: Option<Vec<Box<Extension>>>,
26575 #[primitive]
26576 #[doc = "Expansion Parameter name."]
26577 pub name: Box<FHIRCode>,
26578 #[primitive]
26579 #[doc = "Description of support for parameter."]
26580 pub documentation: Option<Box<FHIRString>>,
26581}
26582#[derive(
26583 Clone,
26584 Reflect,
26585 Debug,
26586 Default,
26587 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26588 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26589)]
26590#[fhir_serialize_type = "complex"]
26591#[doc = "Information about the [ValueSet/$expand](valueset-operation-expand.html) operation."]
26592pub struct TerminologyCapabilitiesExpansion {
26593 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26594 pub id: Option<String>,
26595 #[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 manageable, 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."]
26596 pub extension: Option<Vec<Box<Extension>>>,
26597 #[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 manageable, 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)."]
26598 pub modifierExtension: Option<Vec<Box<Extension>>>,
26599 #[primitive]
26600 #[doc = "Whether the server can return nested value sets."]
26601 pub hierarchical: Option<Box<FHIRBoolean>>,
26602 #[primitive]
26603 #[doc = "Whether the server supports paging on expansion."]
26604 pub paging: Option<Box<FHIRBoolean>>,
26605 #[primitive]
26606 #[doc = "Allow request for incomplete expansions?"]
26607 pub incomplete: Option<Box<FHIRBoolean>>,
26608 #[doc = "Supported expansion parameter."]
26609 pub parameter: Option<Vec<TerminologyCapabilitiesExpansionParameter>>,
26610 #[primitive]
26611 #[doc = "Documentation about text searching works."]
26612 pub textFilter: Option<Box<FHIRMarkdown>>,
26613}
26614#[derive(
26615 Clone,
26616 Reflect,
26617 Debug,
26618 Default,
26619 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26620 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26621)]
26622#[fhir_serialize_type = "complex"]
26623#[doc = "Information about the [ValueSet/$validate-code](valueset-operation-validate-code.html) operation."]
26624pub struct TerminologyCapabilitiesValidateCode {
26625 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26626 pub id: Option<String>,
26627 #[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 manageable, 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."]
26628 pub extension: Option<Vec<Box<Extension>>>,
26629 #[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 manageable, 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)."]
26630 pub modifierExtension: Option<Vec<Box<Extension>>>,
26631 #[primitive]
26632 #[doc = "Whether translations are validated."]
26633 pub translations: Box<FHIRBoolean>,
26634}
26635#[derive(
26636 Clone,
26637 Reflect,
26638 Debug,
26639 Default,
26640 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26641 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26642)]
26643#[fhir_serialize_type = "complex"]
26644#[doc = "Information about the [ConceptMap/$translate](conceptmap-operation-translate.html) operation."]
26645pub struct TerminologyCapabilitiesTranslation {
26646 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26647 pub id: Option<String>,
26648 #[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 manageable, 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."]
26649 pub extension: Option<Vec<Box<Extension>>>,
26650 #[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 manageable, 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)."]
26651 pub modifierExtension: Option<Vec<Box<Extension>>>,
26652 #[primitive]
26653 #[doc = "Whether the client must identify the map."]
26654 pub needsMap: Box<FHIRBoolean>,
26655}
26656#[derive(
26657 Clone,
26658 Reflect,
26659 Debug,
26660 Default,
26661 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26662 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26663)]
26664#[fhir_serialize_type = "complex"]
26665#[doc = "Whether the $closure operation is supported."]
26666pub struct TerminologyCapabilitiesClosure {
26667 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26668 pub id: Option<String>,
26669 #[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 manageable, 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."]
26670 pub extension: Option<Vec<Box<Extension>>>,
26671 #[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 manageable, 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)."]
26672 pub modifierExtension: Option<Vec<Box<Extension>>>,
26673 #[primitive]
26674 #[doc = "If cross-system closure is supported."]
26675 pub translation: Option<Box<FHIRBoolean>>,
26676}
26677#[derive(
26678 Clone,
26679 Reflect,
26680 Debug,
26681 Default,
26682 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26683 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26684)]
26685#[fhir_serialize_type = "resource"]
26686#[doc = "A TerminologyCapabilities resource documents a set of capabilities (behaviors) of a FHIR Terminology Server that may be used as a statement of actual server functionality or a statement of required or desired server implementation."]
26687pub struct TerminologyCapabilities {
26688 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
26689 pub id: Option<String>,
26690 #[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."]
26691 pub meta: Option<Box<Meta>>,
26692 #[primitive]
26693 #[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."]
26694 pub implicitRules: Option<Box<FHIRUri>>,
26695 #[primitive]
26696 #[doc = "The base language in which the resource is written."]
26697 pub language: Option<Box<FHIRCode>>,
26698 #[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."]
26699 pub text: Option<Box<Narrative>>,
26700 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
26701 pub contained: Option<Vec<Box<Resource>>>,
26702 #[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 manageable, 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."]
26703 pub extension: Option<Vec<Box<Extension>>>,
26704 #[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 manageable, 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)."]
26705 pub modifierExtension: Option<Vec<Box<Extension>>>,
26706 #[primitive]
26707 #[doc = "An absolute URI that is used to identify this terminology capabilities 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 at which an authoritative instance of this terminology capabilities is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the terminology capabilities is stored on different servers."]
26708 pub url: Option<Box<FHIRUri>>,
26709 #[primitive]
26710 #[doc = "The identifier that is used to identify this version of the terminology capabilities when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the terminology capabilities 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."]
26711 pub version: Option<Box<FHIRString>>,
26712 #[primitive]
26713 #[doc = "A natural language name identifying the terminology capabilities. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
26714 pub name: Option<Box<FHIRString>>,
26715 #[primitive]
26716 #[doc = "A short, descriptive, user-friendly title for the terminology capabilities."]
26717 pub title: Option<Box<FHIRString>>,
26718 #[primitive]
26719 #[doc = "The status of this terminology capabilities. Enables tracking the life-cycle of the content."]
26720 pub status: Box<terminology::PublicationStatus>,
26721 #[primitive]
26722 #[doc = "A Boolean value to indicate that this terminology capabilities is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
26723 pub experimental: Option<Box<FHIRBoolean>>,
26724 #[primitive]
26725 #[doc = "The date (and optionally time) when the terminology capabilities was published. 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 terminology capabilities changes."]
26726 pub date: Box<FHIRDateTime>,
26727 #[primitive]
26728 #[doc = "The name of the organization or individual that published the terminology capabilities."]
26729 pub publisher: Option<Box<FHIRString>>,
26730 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
26731 pub contact: Option<Vec<Box<ContactDetail>>>,
26732 #[primitive]
26733 #[doc = "A free text natural language description of the terminology capabilities from a consumer's perspective. Typically, this is used when the capability statement describes a desired rather than an actual solution, for example as a formal expression of requirements as part of an RFP."]
26734 pub description: Option<Box<FHIRMarkdown>>,
26735 #[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 terminology capabilities instances."]
26736 pub useContext: Option<Vec<Box<UsageContext>>>,
26737 #[doc = "A legal or geographic region in which the terminology capabilities is intended to be used."]
26738 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
26739 #[primitive]
26740 #[doc = "Explanation of why this terminology capabilities is needed and why it has been designed as it has."]
26741 pub purpose: Option<Box<FHIRMarkdown>>,
26742 #[primitive]
26743 #[doc = "A copyright statement relating to the terminology capabilities and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the terminology capabilities."]
26744 pub copyright: Option<Box<FHIRMarkdown>>,
26745 #[primitive]
26746 #[doc = "The way that this statement is intended to be used, to describe an actual running instance of software, a particular product (kind, not instance of software) or a class of implementation (e.g. a desired purchase)."]
26747 pub kind: Box<terminology::CapabilityStatementKind>,
26748 #[doc = "Software that is covered by this terminology capability statement. It is used when the statement describes the capabilities of a particular software version, independent of an installation."]
26749 pub software: Option<TerminologyCapabilitiesSoftware>,
26750 #[doc = "Identifies a specific implementation instance that is described by the terminology capability statement - i.e. a particular installation, rather than the capabilities of a software program."]
26751 pub implementation: Option<TerminologyCapabilitiesImplementation>,
26752 #[primitive]
26753 #[doc = "Whether the server supports lockedDate."]
26754 pub lockedDate: Option<Box<FHIRBoolean>>,
26755 #[doc = "Identifies a code system that is supported by the server. If there is a no code system URL, then this declares the general assumptions a client can make about support for any CodeSystem resource."]
26756 pub codeSystem: Option<Vec<TerminologyCapabilitiesCodeSystem>>,
26757 #[doc = "Information about the [ValueSet/$expand](valueset-operation-expand.html) operation."]
26758 pub expansion: Option<TerminologyCapabilitiesExpansion>,
26759 #[primitive]
26760 #[doc = "The degree to which the server supports the code search parameter on ValueSet, if it is supported."]
26761 pub codeSearch: Option<Box<terminology::CodeSearchSupport>>,
26762 #[doc = "Information about the [ValueSet/$validate-code](valueset-operation-validate-code.html) operation."]
26763 pub validateCode: Option<TerminologyCapabilitiesValidateCode>,
26764 #[doc = "Information about the [ConceptMap/$translate](conceptmap-operation-translate.html) operation."]
26765 pub translation: Option<TerminologyCapabilitiesTranslation>,
26766 #[doc = "Whether the $closure operation is supported."]
26767 pub closure: Option<TerminologyCapabilitiesClosure>,
26768}
26769#[derive(
26770 Clone,
26771 Reflect,
26772 Debug,
26773 Default,
26774 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26775 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26776)]
26777#[fhir_serialize_type = "complex"]
26778#[doc = "A participant in the test execution, either the execution engine, a client, or a server."]
26779pub struct TestReportParticipant {
26780 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26781 pub id: Option<String>,
26782 #[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 manageable, 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."]
26783 pub extension: Option<Vec<Box<Extension>>>,
26784 #[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 manageable, 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)."]
26785 pub modifierExtension: Option<Vec<Box<Extension>>>,
26786 #[rename_field = "type"]
26787 #[primitive]
26788 #[doc = "The type of participant."]
26789 pub type_: Box<terminology::ReportParticipantType>,
26790 #[primitive]
26791 #[doc = "The uri of the participant. An absolute URL is preferred."]
26792 pub uri: Box<FHIRUri>,
26793 #[primitive]
26794 #[doc = "The display name of the participant."]
26795 pub display: Option<Box<FHIRString>>,
26796}
26797#[derive(
26798 Clone,
26799 Reflect,
26800 Debug,
26801 Default,
26802 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26803 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26804)]
26805#[fhir_serialize_type = "complex"]
26806#[doc = "The operation performed."]
26807pub struct TestReportSetupActionOperation {
26808 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26809 pub id: Option<String>,
26810 #[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 manageable, 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."]
26811 pub extension: Option<Vec<Box<Extension>>>,
26812 #[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 manageable, 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)."]
26813 pub modifierExtension: Option<Vec<Box<Extension>>>,
26814 #[primitive]
26815 #[doc = "The result of this operation."]
26816 pub result: Box<terminology::ReportActionResultCodes>,
26817 #[primitive]
26818 #[doc = "An explanatory message associated with the result."]
26819 pub message: Option<Box<FHIRMarkdown>>,
26820 #[primitive]
26821 #[doc = "A link to further details on the result."]
26822 pub detail: Option<Box<FHIRUri>>,
26823}
26824#[derive(
26825 Clone,
26826 Reflect,
26827 Debug,
26828 Default,
26829 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26830 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26831)]
26832#[fhir_serialize_type = "complex"]
26833#[doc = "The results of the assertion performed on the previous operations."]
26834pub struct TestReportSetupActionAssert {
26835 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26836 pub id: Option<String>,
26837 #[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 manageable, 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."]
26838 pub extension: Option<Vec<Box<Extension>>>,
26839 #[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 manageable, 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)."]
26840 pub modifierExtension: Option<Vec<Box<Extension>>>,
26841 #[primitive]
26842 #[doc = "The result of this assertion."]
26843 pub result: Box<terminology::ReportActionResultCodes>,
26844 #[primitive]
26845 #[doc = "An explanatory message associated with the result."]
26846 pub message: Option<Box<FHIRMarkdown>>,
26847 #[primitive]
26848 #[doc = "A link to further details on the result."]
26849 pub detail: Option<Box<FHIRString>>,
26850}
26851#[derive(
26852 Clone,
26853 Reflect,
26854 Debug,
26855 Default,
26856 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26857 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26858)]
26859#[fhir_serialize_type = "complex"]
26860#[doc = "Action would contain either an operation or an assertion."]
26861pub struct TestReportSetupAction {
26862 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26863 pub id: Option<String>,
26864 #[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 manageable, 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."]
26865 pub extension: Option<Vec<Box<Extension>>>,
26866 #[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 manageable, 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)."]
26867 pub modifierExtension: Option<Vec<Box<Extension>>>,
26868 #[doc = "The operation performed."]
26869 pub operation: Option<TestReportSetupActionOperation>,
26870 #[doc = "The results of the assertion performed on the previous operations."]
26871 pub assert: Option<TestReportSetupActionAssert>,
26872}
26873#[derive(
26874 Clone,
26875 Reflect,
26876 Debug,
26877 Default,
26878 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26879 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26880)]
26881#[fhir_serialize_type = "complex"]
26882#[doc = "The results of the series of required setup operations before the tests were executed."]
26883pub struct TestReportSetup {
26884 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26885 pub id: Option<String>,
26886 #[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 manageable, 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."]
26887 pub extension: Option<Vec<Box<Extension>>>,
26888 #[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 manageable, 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)."]
26889 pub modifierExtension: Option<Vec<Box<Extension>>>,
26890 #[cardinality(min = 1usize)]
26891 #[doc = "Action would contain either an operation or an assertion."]
26892 pub action: Vec<TestReportSetupAction>,
26893}
26894#[derive(
26895 Clone,
26896 Reflect,
26897 Debug,
26898 Default,
26899 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26900 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26901)]
26902#[fhir_serialize_type = "complex"]
26903#[doc = "Action would contain either an operation or an assertion."]
26904pub struct TestReportTestAction {
26905 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26906 pub id: Option<String>,
26907 #[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 manageable, 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."]
26908 pub extension: Option<Vec<Box<Extension>>>,
26909 #[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 manageable, 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)."]
26910 pub modifierExtension: Option<Vec<Box<Extension>>>,
26911 #[doc = "An operation would involve a REST request to a server."]
26912 pub operation: Option<TestReportSetupActionOperation>,
26913 #[doc = "The results of the assertion performed on the previous operations."]
26914 pub assert: Option<TestReportSetupActionAssert>,
26915}
26916#[derive(
26917 Clone,
26918 Reflect,
26919 Debug,
26920 Default,
26921 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26922 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26923)]
26924#[fhir_serialize_type = "complex"]
26925#[doc = "A test executed from the test script."]
26926pub struct TestReportTest {
26927 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26928 pub id: Option<String>,
26929 #[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 manageable, 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."]
26930 pub extension: Option<Vec<Box<Extension>>>,
26931 #[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 manageable, 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)."]
26932 pub modifierExtension: Option<Vec<Box<Extension>>>,
26933 #[primitive]
26934 #[doc = "The name of this test used for tracking/logging purposes by test engines."]
26935 pub name: Option<Box<FHIRString>>,
26936 #[primitive]
26937 #[doc = "A short description of the test used by test engines for tracking and reporting purposes."]
26938 pub description: Option<Box<FHIRString>>,
26939 #[cardinality(min = 1usize)]
26940 #[doc = "Action would contain either an operation or an assertion."]
26941 pub action: Vec<TestReportTestAction>,
26942}
26943#[derive(
26944 Clone,
26945 Reflect,
26946 Debug,
26947 Default,
26948 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26949 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26950)]
26951#[fhir_serialize_type = "complex"]
26952#[doc = "The teardown action will only contain an operation."]
26953pub struct TestReportTeardownAction {
26954 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26955 pub id: Option<String>,
26956 #[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 manageable, 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."]
26957 pub extension: Option<Vec<Box<Extension>>>,
26958 #[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 manageable, 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)."]
26959 pub modifierExtension: Option<Vec<Box<Extension>>>,
26960 #[doc = "An operation would involve a REST request to a server."]
26961 pub operation: TestReportSetupActionOperation,
26962}
26963#[derive(
26964 Clone,
26965 Reflect,
26966 Debug,
26967 Default,
26968 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26969 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26970)]
26971#[fhir_serialize_type = "complex"]
26972#[doc = "The results of the series of operations required to clean up after all the tests were executed (successfully or otherwise)."]
26973pub struct TestReportTeardown {
26974 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
26975 pub id: Option<String>,
26976 #[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 manageable, 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."]
26977 pub extension: Option<Vec<Box<Extension>>>,
26978 #[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 manageable, 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)."]
26979 pub modifierExtension: Option<Vec<Box<Extension>>>,
26980 #[cardinality(min = 1usize)]
26981 #[doc = "The teardown action will only contain an operation."]
26982 pub action: Vec<TestReportTeardownAction>,
26983}
26984#[derive(
26985 Clone,
26986 Reflect,
26987 Debug,
26988 Default,
26989 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
26990 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
26991)]
26992#[fhir_serialize_type = "resource"]
26993#[doc = "A summary of information based on the results of executing a TestScript."]
26994pub struct TestReport {
26995 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
26996 pub id: Option<String>,
26997 #[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."]
26998 pub meta: Option<Box<Meta>>,
26999 #[primitive]
27000 #[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."]
27001 pub implicitRules: Option<Box<FHIRUri>>,
27002 #[primitive]
27003 #[doc = "The base language in which the resource is written."]
27004 pub language: Option<Box<FHIRCode>>,
27005 #[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."]
27006 pub text: Option<Box<Narrative>>,
27007 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
27008 pub contained: Option<Vec<Box<Resource>>>,
27009 #[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 manageable, 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."]
27010 pub extension: Option<Vec<Box<Extension>>>,
27011 #[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 manageable, 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)."]
27012 pub modifierExtension: Option<Vec<Box<Extension>>>,
27013 #[rename_field = "identifier"]
27014 #[doc = "Identifier for the TestScript assigned for external purposes outside the context of FHIR."]
27015 pub identifier_: Option<Box<Identifier>>,
27016 #[primitive]
27017 #[doc = "A free text natural language name identifying the executed TestScript."]
27018 pub name: Option<Box<FHIRString>>,
27019 #[primitive]
27020 #[doc = "The current state of this test report."]
27021 pub status: Box<terminology::ReportStatusCodes>,
27022 # [reference (targets = ["TestScript"])]
27023 #[doc = "Ideally this is an absolute URL that is used to identify the version-specific TestScript that was executed, matching the `TestScript.url`."]
27024 pub testScript: Box<Reference>,
27025 #[primitive]
27026 #[doc = "The overall result from the execution of the TestScript."]
27027 pub result: Box<terminology::ReportResultCodes>,
27028 #[primitive]
27029 #[doc = "The final score (percentage of tests passed) resulting from the execution of the TestScript."]
27030 pub score: Option<Box<FHIRDecimal>>,
27031 #[primitive]
27032 #[doc = "Name of the tester producing this report (Organization or individual)."]
27033 pub tester: Option<Box<FHIRString>>,
27034 #[primitive]
27035 #[doc = "When the TestScript was executed and this TestReport was generated."]
27036 pub issued: Option<Box<FHIRDateTime>>,
27037 #[doc = "A participant in the test execution, either the execution engine, a client, or a server."]
27038 pub participant: Option<Vec<TestReportParticipant>>,
27039 #[doc = "The results of the series of required setup operations before the tests were executed."]
27040 pub setup: Option<TestReportSetup>,
27041 #[doc = "A test executed from the test script."]
27042 pub test: Option<Vec<TestReportTest>>,
27043 #[doc = "The results of the series of operations required to clean up after all the tests were executed (successfully or otherwise)."]
27044 pub teardown: Option<TestReportTeardown>,
27045}
27046#[derive(
27047 Clone,
27048 Reflect,
27049 Debug,
27050 Default,
27051 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27052 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27053)]
27054#[fhir_serialize_type = "complex"]
27055#[doc = "An abstract server used in operations within this test script in the origin element."]
27056pub struct TestScriptOrigin {
27057 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27058 pub id: Option<String>,
27059 #[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 manageable, 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."]
27060 pub extension: Option<Vec<Box<Extension>>>,
27061 #[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 manageable, 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)."]
27062 pub modifierExtension: Option<Vec<Box<Extension>>>,
27063 #[primitive]
27064 #[doc = "Abstract name given to an origin server in this test script. The name is provided as a number starting at 1."]
27065 pub index: Box<FHIRInteger>,
27066 #[doc = "The type of origin profile the test system supports."]
27067 pub profile: Box<Coding>,
27068}
27069#[derive(
27070 Clone,
27071 Reflect,
27072 Debug,
27073 Default,
27074 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27075 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27076)]
27077#[fhir_serialize_type = "complex"]
27078#[doc = "An abstract server used in operations within this test script in the destination element."]
27079pub struct TestScriptDestination {
27080 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27081 pub id: Option<String>,
27082 #[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 manageable, 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."]
27083 pub extension: Option<Vec<Box<Extension>>>,
27084 #[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 manageable, 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)."]
27085 pub modifierExtension: Option<Vec<Box<Extension>>>,
27086 #[primitive]
27087 #[doc = "Abstract name given to a destination server in this test script. The name is provided as a number starting at 1."]
27088 pub index: Box<FHIRInteger>,
27089 #[doc = "The type of destination profile the test system supports."]
27090 pub profile: Box<Coding>,
27091}
27092#[derive(
27093 Clone,
27094 Reflect,
27095 Debug,
27096 Default,
27097 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27098 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27099)]
27100#[fhir_serialize_type = "complex"]
27101#[doc = "A link to the FHIR specification that this test is covering."]
27102pub struct TestScriptMetadataLink {
27103 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27104 pub id: Option<String>,
27105 #[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 manageable, 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."]
27106 pub extension: Option<Vec<Box<Extension>>>,
27107 #[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 manageable, 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)."]
27108 pub modifierExtension: Option<Vec<Box<Extension>>>,
27109 #[primitive]
27110 #[doc = "URL to a particular requirement or feature within the FHIR specification."]
27111 pub url: Box<FHIRUri>,
27112 #[primitive]
27113 #[doc = "Short description of the link."]
27114 pub description: Option<Box<FHIRString>>,
27115}
27116#[derive(
27117 Clone,
27118 Reflect,
27119 Debug,
27120 Default,
27121 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27122 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27123)]
27124#[fhir_serialize_type = "complex"]
27125#[doc = "Capabilities that must exist and are assumed to function correctly on the FHIR server being tested."]
27126pub struct TestScriptMetadataCapability {
27127 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27128 pub id: Option<String>,
27129 #[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 manageable, 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."]
27130 pub extension: Option<Vec<Box<Extension>>>,
27131 #[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 manageable, 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)."]
27132 pub modifierExtension: Option<Vec<Box<Extension>>>,
27133 #[primitive]
27134 #[doc = "Whether or not the test execution will require the given capabilities of the server in order for this test script to execute."]
27135 pub required: Box<FHIRBoolean>,
27136 #[primitive]
27137 #[doc = "Whether or not the test execution will validate the given capabilities of the server in order for this test script to execute."]
27138 pub validated: Box<FHIRBoolean>,
27139 #[primitive]
27140 #[doc = "Description of the capabilities that this test script is requiring the server to support."]
27141 pub description: Option<Box<FHIRString>>,
27142 #[primitive]
27143 #[doc = "Which origin server these requirements apply to."]
27144 pub origin: Option<Vec<Box<FHIRInteger>>>,
27145 #[primitive]
27146 #[doc = "Which server these requirements apply to."]
27147 pub destination: Option<Box<FHIRInteger>>,
27148 #[primitive]
27149 #[doc = "Links to the FHIR specification that describes this interaction and the resources involved in more detail."]
27150 pub link: Option<Vec<Box<FHIRUri>>>,
27151 #[primitive]
27152 #[doc = "Minimum capabilities required of server for test script to execute successfully. If server does not meet at a minimum the referenced capability statement, then all tests in this script are skipped."]
27153 pub capabilities: Box<FHIRCanonical>,
27154}
27155#[derive(
27156 Clone,
27157 Reflect,
27158 Debug,
27159 Default,
27160 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27161 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27162)]
27163#[fhir_serialize_type = "complex"]
27164#[doc = "The required capability must exist and are assumed to function correctly on the FHIR server being tested."]
27165pub struct TestScriptMetadata {
27166 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27167 pub id: Option<String>,
27168 #[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 manageable, 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."]
27169 pub extension: Option<Vec<Box<Extension>>>,
27170 #[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 manageable, 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)."]
27171 pub modifierExtension: Option<Vec<Box<Extension>>>,
27172 #[doc = "A link to the FHIR specification that this test is covering."]
27173 pub link: Option<Vec<TestScriptMetadataLink>>,
27174 #[cardinality(min = 1usize)]
27175 #[doc = "Capabilities that must exist and are assumed to function correctly on the FHIR server being tested."]
27176 pub capability: Vec<TestScriptMetadataCapability>,
27177}
27178#[derive(
27179 Clone,
27180 Reflect,
27181 Debug,
27182 Default,
27183 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27184 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27185)]
27186#[fhir_serialize_type = "complex"]
27187#[doc = "Fixture in the test script - by reference (uri). All fixtures are required for the test script to execute."]
27188pub struct TestScriptFixture {
27189 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27190 pub id: Option<String>,
27191 #[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 manageable, 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."]
27192 pub extension: Option<Vec<Box<Extension>>>,
27193 #[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 manageable, 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)."]
27194 pub modifierExtension: Option<Vec<Box<Extension>>>,
27195 #[primitive]
27196 #[doc = "Whether or not to implicitly create the fixture during setup. If true, the fixture is automatically created on each server being tested during setup, therefore no create operation is required for this fixture in the TestScript.setup section."]
27197 pub autocreate: Box<FHIRBoolean>,
27198 #[primitive]
27199 #[doc = "Whether or not to implicitly delete the fixture during teardown. If true, the fixture is automatically deleted on each server being tested during teardown, therefore no delete operation is required for this fixture in the TestScript.teardown section."]
27200 pub autodelete: Box<FHIRBoolean>,
27201 # [reference (targets = ["Resource"])]
27202 #[doc = "Reference to the resource (containing the contents of the resource needed for operations)."]
27203 pub resource: Option<Box<Reference>>,
27204}
27205#[derive(
27206 Clone,
27207 Reflect,
27208 Debug,
27209 Default,
27210 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27211 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27212)]
27213#[fhir_serialize_type = "complex"]
27214#[doc = "Variable is set based either on element value in response body or on header field value in the response headers."]
27215pub struct TestScriptVariable {
27216 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27217 pub id: Option<String>,
27218 #[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 manageable, 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."]
27219 pub extension: Option<Vec<Box<Extension>>>,
27220 #[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 manageable, 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)."]
27221 pub modifierExtension: Option<Vec<Box<Extension>>>,
27222 #[primitive]
27223 #[doc = "Descriptive name for this variable."]
27224 pub name: Box<FHIRString>,
27225 #[primitive]
27226 #[doc = "A default, hard-coded, or user-defined value for this variable."]
27227 pub defaultValue: Option<Box<FHIRString>>,
27228 #[primitive]
27229 #[doc = "A free text natural language description of the variable and its purpose."]
27230 pub description: Option<Box<FHIRString>>,
27231 #[primitive]
27232 #[doc = "The FHIRPath expression to evaluate against the fixture body. When variables are defined, only one of either expression, headerField or path must be specified."]
27233 pub expression: Option<Box<FHIRString>>,
27234 #[primitive]
27235 #[doc = "Will be used to grab the HTTP header field value from the headers that sourceId is pointing to."]
27236 pub headerField: Option<Box<FHIRString>>,
27237 #[primitive]
27238 #[doc = "Displayable text string with hint help information to the user when entering a default value."]
27239 pub hint: Option<Box<FHIRString>>,
27240 #[primitive]
27241 #[doc = "XPath or JSONPath to evaluate against the fixture body. When variables are defined, only one of either expression, headerField or path must be specified."]
27242 pub path: Option<Box<FHIRString>>,
27243 #[primitive]
27244 #[doc = "Fixture to evaluate the XPath/JSONPath expression or the headerField against within this variable."]
27245 pub sourceId: Option<Box<FHIRId>>,
27246}
27247#[derive(
27248 Clone,
27249 Reflect,
27250 Debug,
27251 Default,
27252 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27253 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27254)]
27255#[fhir_serialize_type = "complex"]
27256#[doc = "Header elements would be used to set HTTP headers."]
27257pub struct TestScriptSetupActionOperationRequestHeader {
27258 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27259 pub id: Option<String>,
27260 #[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 manageable, 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."]
27261 pub extension: Option<Vec<Box<Extension>>>,
27262 #[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 manageable, 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)."]
27263 pub modifierExtension: Option<Vec<Box<Extension>>>,
27264 #[primitive]
27265 #[doc = "The HTTP header field e.g. \"Accept\"."]
27266 pub field: Box<FHIRString>,
27267 #[primitive]
27268 #[doc = "The value of the header e.g. \"application/fhir+xml\"."]
27269 pub value: Box<FHIRString>,
27270}
27271#[derive(
27272 Clone,
27273 Reflect,
27274 Debug,
27275 Default,
27276 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27277 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27278)]
27279#[fhir_serialize_type = "complex"]
27280#[doc = "The operation to perform."]
27281pub struct TestScriptSetupActionOperation {
27282 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27283 pub id: Option<String>,
27284 #[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 manageable, 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."]
27285 pub extension: Option<Vec<Box<Extension>>>,
27286 #[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 manageable, 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)."]
27287 pub modifierExtension: Option<Vec<Box<Extension>>>,
27288 #[rename_field = "type"]
27289 #[doc = "Server interaction or operation type."]
27290 pub type_: Option<Box<Coding>>,
27291 #[primitive]
27292 #[doc = "The type of the resource. See http://build.fhir.org/resourcelist.html."]
27293 pub resource: Option<Box<terminology::DefinedTypes>>,
27294 #[primitive]
27295 #[doc = "The label would be used for tracking/logging purposes by test engines."]
27296 pub label: Option<Box<FHIRString>>,
27297 #[primitive]
27298 #[doc = "The description would be used by test engines for tracking and reporting purposes."]
27299 pub description: Option<Box<FHIRString>>,
27300 #[primitive]
27301 #[doc = "The mime-type to use for RESTful operation in the 'Accept' header."]
27302 pub accept: Option<Box<FHIRCode>>,
27303 #[primitive]
27304 #[doc = "The mime-type to use for RESTful operation in the 'Content-Type' header."]
27305 pub contentType: Option<Box<FHIRCode>>,
27306 #[primitive]
27307 #[doc = "The server where the request message is destined for. Must be one of the server numbers listed in TestScript.destination section."]
27308 pub destination: Option<Box<FHIRInteger>>,
27309 #[primitive]
27310 #[doc = "Whether or not to implicitly send the request url in encoded format. The default is true to match the standard RESTful client behavior. Set to false when communicating with a server that does not support encoded url paths."]
27311 pub encodeRequestUrl: Box<FHIRBoolean>,
27312 #[primitive]
27313 #[doc = "The HTTP method the test engine MUST use for this operation regardless of any other operation details."]
27314 pub method: Option<Box<terminology::HttpOperations>>,
27315 #[primitive]
27316 #[doc = "The server where the request message originates from. Must be one of the server numbers listed in TestScript.origin section."]
27317 pub origin: Option<Box<FHIRInteger>>,
27318 #[primitive]
27319 #[doc = "Path plus parameters after [type]. Used to set parts of the request URL explicitly."]
27320 pub params: Option<Box<FHIRString>>,
27321 #[doc = "Header elements would be used to set HTTP headers."]
27322 pub requestHeader: Option<Vec<TestScriptSetupActionOperationRequestHeader>>,
27323 #[primitive]
27324 #[doc = "The fixture id (maybe new) to map to the request."]
27325 pub requestId: Option<Box<FHIRId>>,
27326 #[primitive]
27327 #[doc = "The fixture id (maybe new) to map to the response."]
27328 pub responseId: Option<Box<FHIRId>>,
27329 #[primitive]
27330 #[doc = "The id of the fixture used as the body of a PUT or POST request."]
27331 pub sourceId: Option<Box<FHIRId>>,
27332 #[primitive]
27333 #[doc = "Id of fixture used for extracting the [id], [type], and [vid] for GET requests."]
27334 pub targetId: Option<Box<FHIRId>>,
27335 #[primitive]
27336 #[doc = "Complete request URL."]
27337 pub url: Option<Box<FHIRString>>,
27338}
27339#[derive(
27340 Clone,
27341 Reflect,
27342 Debug,
27343 Default,
27344 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27345 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27346)]
27347#[fhir_serialize_type = "complex"]
27348#[doc = "Evaluates the results of previous operations to determine if the server under test behaves appropriately."]
27349pub struct TestScriptSetupActionAssert {
27350 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27351 pub id: Option<String>,
27352 #[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 manageable, 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."]
27353 pub extension: Option<Vec<Box<Extension>>>,
27354 #[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 manageable, 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)."]
27355 pub modifierExtension: Option<Vec<Box<Extension>>>,
27356 #[primitive]
27357 #[doc = "The label would be used for tracking/logging purposes by test engines."]
27358 pub label: Option<Box<FHIRString>>,
27359 #[primitive]
27360 #[doc = "The description would be used by test engines for tracking and reporting purposes."]
27361 pub description: Option<Box<FHIRString>>,
27362 #[primitive]
27363 #[doc = "The direction to use for the assertion."]
27364 pub direction: Option<Box<terminology::AssertDirectionCodes>>,
27365 #[primitive]
27366 #[doc = "Id of the source fixture used as the contents to be evaluated by either the \"source/expression\" or \"sourceId/path\" definition."]
27367 pub compareToSourceId: Option<Box<FHIRString>>,
27368 #[primitive]
27369 #[doc = "The FHIRPath expression to evaluate against the source fixture. When compareToSourceId is defined, either compareToSourceExpression or compareToSourcePath must be defined, but not both."]
27370 pub compareToSourceExpression: Option<Box<FHIRString>>,
27371 #[primitive]
27372 #[doc = "XPath or JSONPath expression to evaluate against the source fixture. When compareToSourceId is defined, either compareToSourceExpression or compareToSourcePath must be defined, but not both."]
27373 pub compareToSourcePath: Option<Box<FHIRString>>,
27374 #[primitive]
27375 #[doc = "The mime-type contents to compare against the request or response message 'Content-Type' header."]
27376 pub contentType: Option<Box<FHIRCode>>,
27377 #[primitive]
27378 #[doc = "The FHIRPath expression to be evaluated against the request or response message contents - HTTP headers and payload."]
27379 pub expression: Option<Box<FHIRString>>,
27380 #[primitive]
27381 #[doc = "The HTTP header field name e.g. 'Location'."]
27382 pub headerField: Option<Box<FHIRString>>,
27383 #[primitive]
27384 #[doc = "The ID of a fixture. Asserts that the response contains at a minimum the fixture specified by minimumId."]
27385 pub minimumId: Option<Box<FHIRString>>,
27386 #[primitive]
27387 #[doc = "Whether or not the test execution performs validation on the bundle navigation links."]
27388 pub navigationLinks: Option<Box<FHIRBoolean>>,
27389 #[primitive]
27390 #[doc = "The operator type defines the conditional behavior of the assert. If not defined, the default is equals."]
27391 pub operator: Option<Box<terminology::AssertOperatorCodes>>,
27392 #[primitive]
27393 #[doc = "The XPath or JSONPath expression to be evaluated against the fixture representing the response received from server."]
27394 pub path: Option<Box<FHIRString>>,
27395 #[primitive]
27396 #[doc = "The request method or HTTP operation code to compare against that used by the client system under test."]
27397 pub requestMethod: Option<Box<terminology::HttpOperations>>,
27398 #[primitive]
27399 #[doc = "The value to use in a comparison against the request URL path string."]
27400 pub requestURL: Option<Box<FHIRString>>,
27401 #[primitive]
27402 #[doc = "The type of the resource. See http://build.fhir.org/resourcelist.html."]
27403 pub resource: Option<Box<terminology::DefinedTypes>>,
27404 #[primitive]
27405 #[doc = "okay | created | noContent | notModified | bad | forbidden | notFound | methodNotAllowed | conflict | gone | preconditionFailed | unprocessable."]
27406 pub response: Option<Box<terminology::AssertResponseCodeTypes>>,
27407 #[primitive]
27408 #[doc = "The value of the HTTP response code to be tested."]
27409 pub responseCode: Option<Box<FHIRString>>,
27410 #[primitive]
27411 #[doc = "Fixture to evaluate the XPath/JSONPath expression or the headerField against."]
27412 pub sourceId: Option<Box<FHIRId>>,
27413 #[primitive]
27414 #[doc = "The ID of the Profile to validate against."]
27415 pub validateProfileId: Option<Box<FHIRId>>,
27416 #[primitive]
27417 #[doc = "The value to compare to."]
27418 pub value: Option<Box<FHIRString>>,
27419 #[primitive]
27420 #[doc = "Whether or not the test execution will produce a warning only on error for this assert."]
27421 pub warningOnly: Box<FHIRBoolean>,
27422}
27423#[derive(
27424 Clone,
27425 Reflect,
27426 Debug,
27427 Default,
27428 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27429 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27430)]
27431#[fhir_serialize_type = "complex"]
27432#[doc = "Action would contain either an operation or an assertion."]
27433pub struct TestScriptSetupAction {
27434 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27435 pub id: Option<String>,
27436 #[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 manageable, 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."]
27437 pub extension: Option<Vec<Box<Extension>>>,
27438 #[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 manageable, 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)."]
27439 pub modifierExtension: Option<Vec<Box<Extension>>>,
27440 #[doc = "The operation to perform."]
27441 pub operation: Option<TestScriptSetupActionOperation>,
27442 #[doc = "Evaluates the results of previous operations to determine if the server under test behaves appropriately."]
27443 pub assert: Option<TestScriptSetupActionAssert>,
27444}
27445#[derive(
27446 Clone,
27447 Reflect,
27448 Debug,
27449 Default,
27450 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27451 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27452)]
27453#[fhir_serialize_type = "complex"]
27454#[doc = "A series of required setup operations before tests are executed."]
27455pub struct TestScriptSetup {
27456 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27457 pub id: Option<String>,
27458 #[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 manageable, 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."]
27459 pub extension: Option<Vec<Box<Extension>>>,
27460 #[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 manageable, 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)."]
27461 pub modifierExtension: Option<Vec<Box<Extension>>>,
27462 #[cardinality(min = 1usize)]
27463 #[doc = "Action would contain either an operation or an assertion."]
27464 pub action: Vec<TestScriptSetupAction>,
27465}
27466#[derive(
27467 Clone,
27468 Reflect,
27469 Debug,
27470 Default,
27471 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27472 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27473)]
27474#[fhir_serialize_type = "complex"]
27475#[doc = "Action would contain either an operation or an assertion."]
27476pub struct TestScriptTestAction {
27477 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27478 pub id: Option<String>,
27479 #[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 manageable, 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."]
27480 pub extension: Option<Vec<Box<Extension>>>,
27481 #[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 manageable, 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)."]
27482 pub modifierExtension: Option<Vec<Box<Extension>>>,
27483 #[doc = "An operation would involve a REST request to a server."]
27484 pub operation: Option<TestScriptSetupActionOperation>,
27485 #[doc = "Evaluates the results of previous operations to determine if the server under test behaves appropriately."]
27486 pub assert: Option<TestScriptSetupActionAssert>,
27487}
27488#[derive(
27489 Clone,
27490 Reflect,
27491 Debug,
27492 Default,
27493 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27494 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27495)]
27496#[fhir_serialize_type = "complex"]
27497#[doc = "A test in this script."]
27498pub struct TestScriptTest {
27499 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27500 pub id: Option<String>,
27501 #[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 manageable, 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."]
27502 pub extension: Option<Vec<Box<Extension>>>,
27503 #[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 manageable, 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)."]
27504 pub modifierExtension: Option<Vec<Box<Extension>>>,
27505 #[primitive]
27506 #[doc = "The name of this test used for tracking/logging purposes by test engines."]
27507 pub name: Option<Box<FHIRString>>,
27508 #[primitive]
27509 #[doc = "A short description of the test used by test engines for tracking and reporting purposes."]
27510 pub description: Option<Box<FHIRString>>,
27511 #[cardinality(min = 1usize)]
27512 #[doc = "Action would contain either an operation or an assertion."]
27513 pub action: Vec<TestScriptTestAction>,
27514}
27515#[derive(
27516 Clone,
27517 Reflect,
27518 Debug,
27519 Default,
27520 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27521 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27522)]
27523#[fhir_serialize_type = "complex"]
27524#[doc = "The teardown action will only contain an operation."]
27525pub struct TestScriptTeardownAction {
27526 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27527 pub id: Option<String>,
27528 #[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 manageable, 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."]
27529 pub extension: Option<Vec<Box<Extension>>>,
27530 #[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 manageable, 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)."]
27531 pub modifierExtension: Option<Vec<Box<Extension>>>,
27532 #[doc = "An operation would involve a REST request to a server."]
27533 pub operation: TestScriptSetupActionOperation,
27534}
27535#[derive(
27536 Clone,
27537 Reflect,
27538 Debug,
27539 Default,
27540 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27541 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27542)]
27543#[fhir_serialize_type = "complex"]
27544#[doc = "A series of operations required to clean up after all the tests are executed (successfully or otherwise)."]
27545pub struct TestScriptTeardown {
27546 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27547 pub id: Option<String>,
27548 #[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 manageable, 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."]
27549 pub extension: Option<Vec<Box<Extension>>>,
27550 #[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 manageable, 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)."]
27551 pub modifierExtension: Option<Vec<Box<Extension>>>,
27552 #[cardinality(min = 1usize)]
27553 #[doc = "The teardown action will only contain an operation."]
27554 pub action: Vec<TestScriptTeardownAction>,
27555}
27556#[derive(
27557 Clone,
27558 Reflect,
27559 Debug,
27560 Default,
27561 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27562 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27563)]
27564#[fhir_serialize_type = "resource"]
27565#[doc = "A structured set of tests against a FHIR server or client implementation to determine compliance against the FHIR specification."]
27566pub struct TestScript {
27567 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
27568 pub id: Option<String>,
27569 #[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."]
27570 pub meta: Option<Box<Meta>>,
27571 #[primitive]
27572 #[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."]
27573 pub implicitRules: Option<Box<FHIRUri>>,
27574 #[primitive]
27575 #[doc = "The base language in which the resource is written."]
27576 pub language: Option<Box<FHIRCode>>,
27577 #[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."]
27578 pub text: Option<Box<Narrative>>,
27579 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
27580 pub contained: Option<Vec<Box<Resource>>>,
27581 #[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 manageable, 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."]
27582 pub extension: Option<Vec<Box<Extension>>>,
27583 #[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 manageable, 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)."]
27584 pub modifierExtension: Option<Vec<Box<Extension>>>,
27585 #[primitive]
27586 #[doc = "An absolute URI that is used to identify this test script 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 at which an authoritative instance of this test script is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the test script is stored on different servers."]
27587 pub url: Box<FHIRUri>,
27588 #[rename_field = "identifier"]
27589 #[doc = "A formal identifier that is used to identify this test script when it is represented in other formats, or referenced in a specification, model, design or an instance."]
27590 pub identifier_: Option<Box<Identifier>>,
27591 #[primitive]
27592 #[doc = "The identifier that is used to identify this version of the test script when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the test script 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."]
27593 pub version: Option<Box<FHIRString>>,
27594 #[primitive]
27595 #[doc = "A natural language name identifying the test script. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
27596 pub name: Box<FHIRString>,
27597 #[primitive]
27598 #[doc = "A short, descriptive, user-friendly title for the test script."]
27599 pub title: Option<Box<FHIRString>>,
27600 #[primitive]
27601 #[doc = "The status of this test script. Enables tracking the life-cycle of the content."]
27602 pub status: Box<terminology::PublicationStatus>,
27603 #[primitive]
27604 #[doc = "A Boolean value to indicate that this test script is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
27605 pub experimental: Option<Box<FHIRBoolean>>,
27606 #[primitive]
27607 #[doc = "The date (and optionally time) when the test script was published. 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 test script changes."]
27608 pub date: Option<Box<FHIRDateTime>>,
27609 #[primitive]
27610 #[doc = "The name of the organization or individual that published the test script."]
27611 pub publisher: Option<Box<FHIRString>>,
27612 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
27613 pub contact: Option<Vec<Box<ContactDetail>>>,
27614 #[primitive]
27615 #[doc = "A free text natural language description of the test script from a consumer's perspective."]
27616 pub description: Option<Box<FHIRMarkdown>>,
27617 #[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 test script instances."]
27618 pub useContext: Option<Vec<Box<UsageContext>>>,
27619 #[doc = "A legal or geographic region in which the test script is intended to be used."]
27620 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
27621 #[primitive]
27622 #[doc = "Explanation of why this test script is needed and why it has been designed as it has."]
27623 pub purpose: Option<Box<FHIRMarkdown>>,
27624 #[primitive]
27625 #[doc = "A copyright statement relating to the test script and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the test script."]
27626 pub copyright: Option<Box<FHIRMarkdown>>,
27627 #[doc = "An abstract server used in operations within this test script in the origin element."]
27628 pub origin: Option<Vec<TestScriptOrigin>>,
27629 #[doc = "An abstract server used in operations within this test script in the destination element."]
27630 pub destination: Option<Vec<TestScriptDestination>>,
27631 #[doc = "The required capability must exist and are assumed to function correctly on the FHIR server being tested."]
27632 pub metadata: Option<TestScriptMetadata>,
27633 #[doc = "Fixture in the test script - by reference (uri). All fixtures are required for the test script to execute."]
27634 pub fixture: Option<Vec<TestScriptFixture>>,
27635 # [reference (targets = ["Resource"])]
27636 #[doc = "Reference to the profile to be used for validation."]
27637 pub profile: Option<Vec<Box<Reference>>>,
27638 #[doc = "Variable is set based either on element value in response body or on header field value in the response headers."]
27639 pub variable: Option<Vec<TestScriptVariable>>,
27640 #[doc = "A series of required setup operations before tests are executed."]
27641 pub setup: Option<TestScriptSetup>,
27642 #[doc = "A test in this script."]
27643 pub test: Option<Vec<TestScriptTest>>,
27644 #[doc = "A series of operations required to clean up after all the tests are executed (successfully or otherwise)."]
27645 pub teardown: Option<TestScriptTeardown>,
27646}
27647#[derive(
27648 Clone,
27649 Reflect,
27650 Debug,
27651 Default,
27652 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27653 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27654)]
27655#[fhir_serialize_type = "complex"]
27656#[doc = "Additional representations for this concept when used in this value set - other languages, aliases, specialized purposes, used for particular purposes, etc."]
27657pub struct ValueSetComposeIncludeConceptDesignation {
27658 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27659 pub id: Option<String>,
27660 #[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 manageable, 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."]
27661 pub extension: Option<Vec<Box<Extension>>>,
27662 #[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 manageable, 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)."]
27663 pub modifierExtension: Option<Vec<Box<Extension>>>,
27664 #[primitive]
27665 #[doc = "The language this designation is defined for."]
27666 pub language: Option<Box<FHIRCode>>,
27667 #[rename_field = "use"]
27668 #[doc = "A code that represents types of uses of designations."]
27669 pub use_: Option<Box<Coding>>,
27670 #[primitive]
27671 #[doc = "The text value for this designation."]
27672 pub value: Box<FHIRString>,
27673}
27674#[derive(
27675 Clone,
27676 Reflect,
27677 Debug,
27678 Default,
27679 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27680 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27681)]
27682#[fhir_serialize_type = "complex"]
27683#[doc = "Specifies a concept to be included or excluded."]
27684pub struct ValueSetComposeIncludeConcept {
27685 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27686 pub id: Option<String>,
27687 #[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 manageable, 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."]
27688 pub extension: Option<Vec<Box<Extension>>>,
27689 #[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 manageable, 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)."]
27690 pub modifierExtension: Option<Vec<Box<Extension>>>,
27691 #[primitive]
27692 #[doc = "Specifies a code for the concept to be included or excluded."]
27693 pub code: Box<FHIRCode>,
27694 #[primitive]
27695 #[doc = "The text to display to the user for this concept in the context of this valueset. If no display is provided, then applications using the value set use the display specified for the code by the system."]
27696 pub display: Option<Box<FHIRString>>,
27697 #[doc = "Additional representations for this concept when used in this value set - other languages, aliases, specialized purposes, used for particular purposes, etc."]
27698 pub designation: Option<Vec<ValueSetComposeIncludeConceptDesignation>>,
27699}
27700#[derive(
27701 Clone,
27702 Reflect,
27703 Debug,
27704 Default,
27705 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27706 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27707)]
27708#[fhir_serialize_type = "complex"]
27709#[doc = "Select concepts by specify a matching criterion based on the properties (including relationships) defined by the system, or on filters defined by the system. If multiple filters are specified, they SHALL all be true."]
27710pub struct ValueSetComposeIncludeFilter {
27711 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27712 pub id: Option<String>,
27713 #[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 manageable, 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."]
27714 pub extension: Option<Vec<Box<Extension>>>,
27715 #[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 manageable, 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)."]
27716 pub modifierExtension: Option<Vec<Box<Extension>>>,
27717 #[primitive]
27718 #[doc = "A code that identifies a property or a filter defined in the code system."]
27719 pub property: Box<FHIRCode>,
27720 #[primitive]
27721 #[doc = "The kind of operation to perform as a part of the filter criteria."]
27722 pub op: Box<terminology::FilterOperator>,
27723 #[primitive]
27724 #[doc = "The match value may be either a code defined by the system, or a string value, which is a regex match on the literal string of the property value (if the filter represents a property defined in CodeSystem) or of the system filter value (if the filter represents a filter defined in CodeSystem) when the operation is 'regex', or one of the values (true and false), when the operation is 'exists'."]
27725 pub value: Box<FHIRString>,
27726}
27727#[derive(
27728 Clone,
27729 Reflect,
27730 Debug,
27731 Default,
27732 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27733 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27734)]
27735#[fhir_serialize_type = "complex"]
27736#[doc = "Include one or more codes from a code system or other value set(s)."]
27737pub struct ValueSetComposeInclude {
27738 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27739 pub id: Option<String>,
27740 #[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 manageable, 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."]
27741 pub extension: Option<Vec<Box<Extension>>>,
27742 #[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 manageable, 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)."]
27743 pub modifierExtension: Option<Vec<Box<Extension>>>,
27744 #[primitive]
27745 #[doc = "An absolute URI which is the code system from which the selected codes come from."]
27746 pub system: Option<Box<FHIRUri>>,
27747 #[primitive]
27748 #[doc = "The version of the code system that the codes are selected from, or the special version '*' for all versions."]
27749 pub version: Option<Box<FHIRString>>,
27750 #[doc = "Specifies a concept to be included or excluded."]
27751 pub concept: Option<Vec<ValueSetComposeIncludeConcept>>,
27752 #[doc = "Select concepts by specify a matching criterion based on the properties (including relationships) defined by the system, or on filters defined by the system. If multiple filters are specified, they SHALL all be true."]
27753 pub filter: Option<Vec<ValueSetComposeIncludeFilter>>,
27754 #[primitive]
27755 #[doc = "Selects the concepts found in this value set (based on its value set definition). This is an absolute URI that is a reference to ValueSet.url. If multiple value sets are specified this includes the union of the contents of all of the referenced value sets."]
27756 pub valueSet: Option<Vec<Box<FHIRCanonical>>>,
27757}
27758#[derive(
27759 Clone,
27760 Reflect,
27761 Debug,
27762 Default,
27763 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27764 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27765)]
27766#[fhir_serialize_type = "complex"]
27767#[doc = "A set of criteria that define the contents of the value set by including or excluding codes selected from the specified code system(s) that the value set draws from. This is also known as the Content Logical Definition (CLD)."]
27768pub struct ValueSetCompose {
27769 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27770 pub id: Option<String>,
27771 #[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 manageable, 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."]
27772 pub extension: Option<Vec<Box<Extension>>>,
27773 #[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 manageable, 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)."]
27774 pub modifierExtension: Option<Vec<Box<Extension>>>,
27775 #[primitive]
27776 #[doc = "The Locked Date is the effective date that is used to determine the version of all referenced Code Systems and Value Set Definitions included in the compose that are not already tied to a specific version."]
27777 pub lockedDate: Option<Box<FHIRDate>>,
27778 #[primitive]
27779 #[doc = "Whether inactive codes - codes that are not approved for current use - are in the value set. If inactive = true, inactive codes are to be included in the expansion, if inactive = false, the inactive codes will not be included in the expansion. If absent, the behavior is determined by the implementation, or by the applicable $expand parameters (but generally, inactive codes would be expected to be included)."]
27780 pub inactive: Option<Box<FHIRBoolean>>,
27781 #[cardinality(min = 1usize)]
27782 #[doc = "Include one or more codes from a code system or other value set(s)."]
27783 pub include: Vec<ValueSetComposeInclude>,
27784 #[doc = "Exclude one or more codes from the value set based on code system filters and/or other value sets."]
27785 pub exclude: Option<Vec<ValueSetComposeInclude>>,
27786}
27787#[derive(
27788 Clone,
27789 Reflect,
27790 Debug,
27791 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27792 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27793)]
27794#[fhir_serialize_type = "typechoice"]
27795#[type_choice_field_name = "value"]
27796pub enum ValueSetExpansionParameterValueTypeChoice {
27797 String(Box<FHIRString>),
27798 Boolean(Box<FHIRBoolean>),
27799 Integer(Box<FHIRInteger>),
27800 Decimal(Box<FHIRDecimal>),
27801 Uri(Box<FHIRUri>),
27802 Code(Box<FHIRCode>),
27803 DateTime(Box<FHIRDateTime>),
27804}
27805impl Default for ValueSetExpansionParameterValueTypeChoice {
27806 fn default() -> Self {
27807 ValueSetExpansionParameterValueTypeChoice::String(Box::new(Default::default()))
27808 }
27809}
27810#[derive(
27811 Clone,
27812 Reflect,
27813 Debug,
27814 Default,
27815 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27816 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27817)]
27818#[fhir_serialize_type = "complex"]
27819#[doc = "A parameter that controlled the expansion process. These parameters may be used by users of expanded value sets to check whether the expansion is suitable for a particular purpose, or to pick the correct expansion."]
27820pub struct ValueSetExpansionParameter {
27821 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27822 pub id: Option<String>,
27823 #[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 manageable, 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."]
27824 pub extension: Option<Vec<Box<Extension>>>,
27825 #[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 manageable, 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)."]
27826 pub modifierExtension: Option<Vec<Box<Extension>>>,
27827 #[primitive]
27828 #[doc = "Name of the input parameter to the $expand operation; may be a server-assigned name for additional default or other server-supplied parameters used to control the expansion process."]
27829 pub name: Box<FHIRString>,
27830 # [type_choice_variants (complex = [] , primitive = ["valueString" , "valueBoolean" , "valueInteger" , "valueDecimal" , "valueUri" , "valueCode" , "valueDateTime"])]
27831 #[doc = "The value of the parameter."]
27832 pub value: Option<ValueSetExpansionParameterValueTypeChoice>,
27833}
27834#[derive(
27835 Clone,
27836 Reflect,
27837 Debug,
27838 Default,
27839 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27840 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27841)]
27842#[fhir_serialize_type = "complex"]
27843#[doc = "The codes that are contained in the value set expansion."]
27844pub struct ValueSetExpansionContains {
27845 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27846 pub id: Option<String>,
27847 #[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 manageable, 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."]
27848 pub extension: Option<Vec<Box<Extension>>>,
27849 #[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 manageable, 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)."]
27850 pub modifierExtension: Option<Vec<Box<Extension>>>,
27851 #[primitive]
27852 #[doc = "An absolute URI which is the code system in which the code for this item in the expansion is defined."]
27853 pub system: Option<Box<FHIRUri>>,
27854 #[rename_field = "abstract"]
27855 #[primitive]
27856 #[doc = "If true, this entry is included in the expansion for navigational purposes, and the user cannot select the code directly as a proper value."]
27857 pub abstract_: Option<Box<FHIRBoolean>>,
27858 #[primitive]
27859 #[doc = "If the concept is inactive in the code system that defines it. Inactive codes are those that are no longer to be used, but are maintained by the code system for understanding legacy data. It might not be known or specified whether an concept is inactive (and it may depend on the context of use)."]
27860 pub inactive: Option<Box<FHIRBoolean>>,
27861 #[primitive]
27862 #[doc = "The version of the code system from this code was taken. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged."]
27863 pub version: Option<Box<FHIRString>>,
27864 #[primitive]
27865 #[doc = "The code for this item in the expansion hierarchy. If this code is missing the entry in the hierarchy is a place holder (abstract) and does not represent a valid code in the value set."]
27866 pub code: Option<Box<FHIRCode>>,
27867 #[primitive]
27868 #[doc = "The recommended display for this item in the expansion."]
27869 pub display: Option<Box<FHIRString>>,
27870 #[doc = "Additional representations for this item - other languages, aliases, specialized purposes, used for particular purposes, etc. These are relevant when the conditions of the expansion do not fix to a single correct representation."]
27871 pub designation: Option<Vec<ValueSetComposeIncludeConceptDesignation>>,
27872 #[doc = "Other codes and entries contained under this entry in the hierarchy."]
27873 pub contains: Option<Vec<ValueSetExpansionContains>>,
27874}
27875#[derive(
27876 Clone,
27877 Reflect,
27878 Debug,
27879 Default,
27880 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27881 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27882)]
27883#[fhir_serialize_type = "complex"]
27884#[doc = "A value set can also be \"expanded\", where the value set is turned into a simple collection of enumerated codes. This element holds the expansion, if it has been performed."]
27885pub struct ValueSetExpansion {
27886 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
27887 pub id: Option<String>,
27888 #[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 manageable, 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."]
27889 pub extension: Option<Vec<Box<Extension>>>,
27890 #[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 manageable, 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)."]
27891 pub modifierExtension: Option<Vec<Box<Extension>>>,
27892 #[rename_field = "identifier"]
27893 #[primitive]
27894 #[doc = "An identifier that uniquely identifies this expansion of the valueset, based on a unique combination of the provided parameters, the system default parameters, and the underlying system code system versions etc. Systems may re-use the same identifier as long as those factors remain the same, and the expansion is the same, but are not required to do so. This is a business identifier."]
27895 pub identifier_: Option<Box<FHIRUri>>,
27896 #[primitive]
27897 #[doc = "The time at which the expansion was produced by the expanding system."]
27898 pub timestamp: Box<FHIRDateTime>,
27899 #[primitive]
27900 #[doc = "The total number of concepts in the expansion. If the number of concept nodes in this resource is less than the stated number, then the server can return more using the offset parameter."]
27901 pub total: Option<Box<FHIRInteger>>,
27902 #[primitive]
27903 #[doc = "If paging is being used, the offset at which this resource starts. I.e. this resource is a partial view into the expansion. If paging is not being used, this element SHALL NOT be present."]
27904 pub offset: Option<Box<FHIRInteger>>,
27905 #[doc = "A parameter that controlled the expansion process. These parameters may be used by users of expanded value sets to check whether the expansion is suitable for a particular purpose, or to pick the correct expansion."]
27906 pub parameter: Option<Vec<ValueSetExpansionParameter>>,
27907 #[doc = "The codes that are contained in the value set expansion."]
27908 pub contains: Option<Vec<ValueSetExpansionContains>>,
27909}
27910#[derive(
27911 Clone,
27912 Reflect,
27913 Debug,
27914 Default,
27915 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27916 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27917)]
27918#[fhir_serialize_type = "resource"]
27919#[doc = "A ValueSet resource instance specifies a set of codes drawn from one or more code systems, intended for use in a particular context. Value sets link between [CodeSystem](codesystem.html) definitions and their use in [coded elements](terminologies.html)."]
27920pub struct ValueSet {
27921 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
27922 pub id: Option<String>,
27923 #[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."]
27924 pub meta: Option<Box<Meta>>,
27925 #[primitive]
27926 #[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."]
27927 pub implicitRules: Option<Box<FHIRUri>>,
27928 #[primitive]
27929 #[doc = "The base language in which the resource is written."]
27930 pub language: Option<Box<FHIRCode>>,
27931 #[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."]
27932 pub text: Option<Box<Narrative>>,
27933 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
27934 pub contained: Option<Vec<Box<Resource>>>,
27935 #[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 manageable, 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."]
27936 pub extension: Option<Vec<Box<Extension>>>,
27937 #[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 manageable, 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)."]
27938 pub modifierExtension: Option<Vec<Box<Extension>>>,
27939 #[primitive]
27940 #[doc = "An absolute URI that is used to identify this value set 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 at which an authoritative instance of this value set is (or will be) published. This URL can be the target of a canonical reference. It SHALL remain the same when the value set is stored on different servers."]
27941 pub url: Option<Box<FHIRUri>>,
27942 #[rename_field = "identifier"]
27943 #[doc = "A formal identifier that is used to identify this value set when it is represented in other formats, or referenced in a specification, model, design or an instance."]
27944 pub identifier_: Option<Vec<Box<Identifier>>>,
27945 #[primitive]
27946 #[doc = "The identifier that is used to identify this version of the value set when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the value set 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."]
27947 pub version: Option<Box<FHIRString>>,
27948 #[primitive]
27949 #[doc = "A natural language name identifying the value set. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
27950 pub name: Option<Box<FHIRString>>,
27951 #[primitive]
27952 #[doc = "A short, descriptive, user-friendly title for the value set."]
27953 pub title: Option<Box<FHIRString>>,
27954 #[primitive]
27955 #[doc = "The status of this value set. Enables tracking the life-cycle of the content. The status of the value set applies to the value set definition (ValueSet.compose) and the associated ValueSet metadata. Expansions do not have a state."]
27956 pub status: Box<terminology::PublicationStatus>,
27957 #[primitive]
27958 #[doc = "A Boolean value to indicate that this value set is authored for testing purposes (or education/evaluation/marketing) and is not intended to be used for genuine usage."]
27959 pub experimental: Option<Box<FHIRBoolean>>,
27960 #[primitive]
27961 #[doc = "The date (and optionally time) when the value set was created or revised (e.g. the 'content logical definition')."]
27962 pub date: Option<Box<FHIRDateTime>>,
27963 #[primitive]
27964 #[doc = "The name of the organization or individual that published the value set."]
27965 pub publisher: Option<Box<FHIRString>>,
27966 #[doc = "Contact details to assist a user in finding and communicating with the publisher."]
27967 pub contact: Option<Vec<Box<ContactDetail>>>,
27968 #[primitive]
27969 #[doc = "A free text natural language description of the value set from a consumer's perspective. The textual description specifies the span of meanings for concepts to be included within the Value Set Expansion, and also may specify the intended use and limitations of the Value Set."]
27970 pub description: Option<Box<FHIRMarkdown>>,
27971 #[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 value set instances."]
27972 pub useContext: Option<Vec<Box<UsageContext>>>,
27973 #[doc = "A legal or geographic region in which the value set is intended to be used."]
27974 pub jurisdiction: Option<Vec<Box<CodeableConcept>>>,
27975 #[primitive]
27976 #[doc = "If this is set to 'true', then no new versions of the content logical definition can be created. Note: Other metadata might still change."]
27977 pub immutable: Option<Box<FHIRBoolean>>,
27978 #[primitive]
27979 #[doc = "Explanation of why this value set is needed and why it has been designed as it has."]
27980 pub purpose: Option<Box<FHIRMarkdown>>,
27981 #[primitive]
27982 #[doc = "A copyright statement relating to the value set and/or its contents. Copyright statements are generally legal restrictions on the use and publishing of the value set."]
27983 pub copyright: Option<Box<FHIRMarkdown>>,
27984 #[doc = "A set of criteria that define the contents of the value set by including or excluding codes selected from the specified code system(s) that the value set draws from. This is also known as the Content Logical Definition (CLD)."]
27985 pub compose: Option<ValueSetCompose>,
27986 #[doc = "A value set can also be \"expanded\", where the value set is turned into a simple collection of enumerated codes. This element holds the expansion, if it has been performed."]
27987 pub expansion: Option<ValueSetExpansion>,
27988}
27989#[derive(
27990 Clone,
27991 Reflect,
27992 Debug,
27993 Default,
27994 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
27995 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
27996)]
27997#[fhir_serialize_type = "complex"]
27998#[doc = "Information about the primary source(s) involved in validation."]
27999pub struct VerificationResultPrimarySource {
28000 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
28001 pub id: Option<String>,
28002 #[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 manageable, 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."]
28003 pub extension: Option<Vec<Box<Extension>>>,
28004 #[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 manageable, 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)."]
28005 pub modifierExtension: Option<Vec<Box<Extension>>>,
28006 # [reference (targets = ["Organization" , "Practitioner" , "PractitionerRole"])]
28007 #[doc = "Reference to the primary source."]
28008 pub who: Option<Box<Reference>>,
28009 #[rename_field = "type"]
28010 #[doc = "Type of primary source (License Board; Primary Education; Continuing Education; Postal Service; Relationship owner; Registration Authority; legal source; issuing source; authoritative source)."]
28011 pub type_: Option<Vec<Box<CodeableConcept>>>,
28012 #[doc = "Method for communicating with the primary source (manual; API; Push)."]
28013 pub communicationMethod: Option<Vec<Box<CodeableConcept>>>,
28014 #[doc = "Status of the validation of the target against the primary source (successful; failed; unknown)."]
28015 pub validationStatus: Option<Box<CodeableConcept>>,
28016 #[primitive]
28017 #[doc = "When the target was validated against the primary source."]
28018 pub validationDate: Option<Box<FHIRDateTime>>,
28019 #[doc = "Ability of the primary source to push updates/alerts (yes; no; undetermined)."]
28020 pub canPushUpdates: Option<Box<CodeableConcept>>,
28021 #[doc = "Type of alerts/updates the primary source can send (specific requested changes; any changes; as defined by source)."]
28022 pub pushTypeAvailable: Option<Vec<Box<CodeableConcept>>>,
28023}
28024#[derive(
28025 Clone,
28026 Reflect,
28027 Debug,
28028 Default,
28029 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
28030 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
28031)]
28032#[fhir_serialize_type = "complex"]
28033#[doc = "Information about the entity attesting to information."]
28034pub struct VerificationResultAttestation {
28035 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
28036 pub id: Option<String>,
28037 #[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 manageable, 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."]
28038 pub extension: Option<Vec<Box<Extension>>>,
28039 #[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 manageable, 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)."]
28040 pub modifierExtension: Option<Vec<Box<Extension>>>,
28041 # [reference (targets = ["Practitioner" , "PractitionerRole" , "Organization"])]
28042 #[doc = "The individual or organization attesting to information."]
28043 pub who: Option<Box<Reference>>,
28044 # [reference (targets = ["Organization" , "Practitioner" , "PractitionerRole"])]
28045 #[doc = "When the who is asserting on behalf of another (organization or individual)."]
28046 pub onBehalfOf: Option<Box<Reference>>,
28047 #[doc = "The method by which attested information was submitted/retrieved (manual; API; Push)."]
28048 pub communicationMethod: Option<Box<CodeableConcept>>,
28049 #[primitive]
28050 #[doc = "The date the information was attested to."]
28051 pub date: Option<Box<FHIRDate>>,
28052 #[primitive]
28053 #[doc = "A digital identity certificate associated with the attestation source."]
28054 pub sourceIdentityCertificate: Option<Box<FHIRString>>,
28055 #[primitive]
28056 #[doc = "A digital identity certificate associated with the proxy entity submitting attested information on behalf of the attestation source."]
28057 pub proxyIdentityCertificate: Option<Box<FHIRString>>,
28058 #[doc = "Signed assertion by the proxy entity indicating that they have the right to submit attested information on behalf of the attestation source."]
28059 pub proxySignature: Option<Box<Signature>>,
28060 #[doc = "Signed assertion by the attestation source that they have attested to the information."]
28061 pub sourceSignature: Option<Box<Signature>>,
28062}
28063#[derive(
28064 Clone,
28065 Reflect,
28066 Debug,
28067 Default,
28068 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
28069 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
28070)]
28071#[fhir_serialize_type = "complex"]
28072#[doc = "Information about the entity validating information."]
28073pub struct VerificationResultValidator {
28074 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
28075 pub id: Option<String>,
28076 #[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 manageable, 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."]
28077 pub extension: Option<Vec<Box<Extension>>>,
28078 #[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 manageable, 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)."]
28079 pub modifierExtension: Option<Vec<Box<Extension>>>,
28080 # [reference (targets = ["Organization"])]
28081 #[doc = "Reference to the organization validating information."]
28082 pub organization: Box<Reference>,
28083 #[primitive]
28084 #[doc = "A digital identity certificate associated with the validator."]
28085 pub identityCertificate: Option<Box<FHIRString>>,
28086 #[doc = "Signed assertion by the validator that they have validated the information."]
28087 pub attestationSignature: Option<Box<Signature>>,
28088}
28089#[derive(
28090 Clone,
28091 Reflect,
28092 Debug,
28093 Default,
28094 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
28095 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
28096)]
28097#[fhir_serialize_type = "resource"]
28098#[doc = "Describes validation requirements, source(s), status and dates for one or more elements."]
28099pub struct VerificationResult {
28100 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
28101 pub id: Option<String>,
28102 #[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."]
28103 pub meta: Option<Box<Meta>>,
28104 #[primitive]
28105 #[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."]
28106 pub implicitRules: Option<Box<FHIRUri>>,
28107 #[primitive]
28108 #[doc = "The base language in which the resource is written."]
28109 pub language: Option<Box<FHIRCode>>,
28110 #[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."]
28111 pub text: Option<Box<Narrative>>,
28112 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
28113 pub contained: Option<Vec<Box<Resource>>>,
28114 #[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 manageable, 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."]
28115 pub extension: Option<Vec<Box<Extension>>>,
28116 #[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 manageable, 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)."]
28117 pub modifierExtension: Option<Vec<Box<Extension>>>,
28118 # [reference (targets = ["Resource"])]
28119 #[doc = "A resource that was validated."]
28120 pub target: Option<Vec<Box<Reference>>>,
28121 #[primitive]
28122 #[doc = "The fhirpath location(s) within the resource that was validated."]
28123 pub targetLocation: Option<Vec<Box<FHIRString>>>,
28124 #[doc = "The frequency with which the target must be validated (none; initial; periodic)."]
28125 pub need: Option<Box<CodeableConcept>>,
28126 #[primitive]
28127 #[doc = "The validation status of the target (attested; validated; in process; requires revalidation; validation failed; revalidation failed)."]
28128 pub status: Box<terminology::VerificationresultStatus>,
28129 #[primitive]
28130 #[doc = "When the validation status was updated."]
28131 pub statusDate: Option<Box<FHIRDateTime>>,
28132 #[doc = "What the target is validated against (nothing; primary source; multiple sources)."]
28133 pub validationType: Option<Box<CodeableConcept>>,
28134 #[doc = "The primary process by which the target is validated (edit check; value set; primary source; multiple sources; standalone; in context)."]
28135 pub validationProcess: Option<Vec<Box<CodeableConcept>>>,
28136 #[doc = "Frequency of revalidation."]
28137 pub frequency: Option<Box<Timing>>,
28138 #[primitive]
28139 #[doc = "The date/time validation was last completed (including failed validations)."]
28140 pub lastPerformed: Option<Box<FHIRDateTime>>,
28141 #[primitive]
28142 #[doc = "The date when target is next validated, if appropriate."]
28143 pub nextScheduled: Option<Box<FHIRDate>>,
28144 #[doc = "The result if validation fails (fatal; warning; record only; none)."]
28145 pub failureAction: Option<Box<CodeableConcept>>,
28146 #[doc = "Information about the primary source(s) involved in validation."]
28147 pub primarySource: Option<Vec<VerificationResultPrimarySource>>,
28148 #[doc = "Information about the entity attesting to information."]
28149 pub attestation: Option<VerificationResultAttestation>,
28150 #[doc = "Information about the entity validating information."]
28151 pub validator: Option<Vec<VerificationResultValidator>>,
28152}
28153#[derive(
28154 Clone,
28155 Reflect,
28156 Debug,
28157 Default,
28158 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
28159 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
28160)]
28161#[fhir_serialize_type = "complex"]
28162#[doc = "Allows for adjustment on two axis."]
28163pub struct VisionPrescriptionLensSpecificationPrism {
28164 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
28165 pub id: Option<String>,
28166 #[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 manageable, 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."]
28167 pub extension: Option<Vec<Box<Extension>>>,
28168 #[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 manageable, 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)."]
28169 pub modifierExtension: Option<Vec<Box<Extension>>>,
28170 #[primitive]
28171 #[doc = "Amount of prism to compensate for eye alignment in fractional units."]
28172 pub amount: Box<FHIRDecimal>,
28173 #[primitive]
28174 #[doc = "The relative base, or reference lens edge, for the prism."]
28175 pub base: Box<terminology::VisionBaseCodes>,
28176}
28177#[derive(
28178 Clone,
28179 Reflect,
28180 Debug,
28181 Default,
28182 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
28183 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
28184)]
28185#[fhir_serialize_type = "complex"]
28186#[doc = "Contain the details of the individual lens specifications and serves as the authorization for the fullfillment by certified professionals."]
28187pub struct VisionPrescriptionLensSpecification {
28188 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
28189 pub id: Option<String>,
28190 #[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 manageable, 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."]
28191 pub extension: Option<Vec<Box<Extension>>>,
28192 #[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 manageable, 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)."]
28193 pub modifierExtension: Option<Vec<Box<Extension>>>,
28194 #[doc = "Identifies the type of vision correction product which is required for the patient."]
28195 pub product: Box<CodeableConcept>,
28196 #[primitive]
28197 #[doc = "The eye for which the lens specification applies."]
28198 pub eye: Box<terminology::VisionEyeCodes>,
28199 #[primitive]
28200 #[doc = "Lens power measured in dioptres (0.25 units)."]
28201 pub sphere: Option<Box<FHIRDecimal>>,
28202 #[primitive]
28203 #[doc = "Power adjustment for astigmatism measured in dioptres (0.25 units)."]
28204 pub cylinder: Option<Box<FHIRDecimal>>,
28205 #[primitive]
28206 #[doc = "Adjustment for astigmatism measured in integer degrees."]
28207 pub axis: Option<Box<FHIRInteger>>,
28208 #[doc = "Allows for adjustment on two axis."]
28209 pub prism: Option<Vec<VisionPrescriptionLensSpecificationPrism>>,
28210 #[primitive]
28211 #[doc = "Power adjustment for multifocal lenses measured in dioptres (0.25 units)."]
28212 pub add: Option<Box<FHIRDecimal>>,
28213 #[primitive]
28214 #[doc = "Contact lens power measured in dioptres (0.25 units)."]
28215 pub power: Option<Box<FHIRDecimal>>,
28216 #[primitive]
28217 #[doc = "Back curvature measured in millimetres."]
28218 pub backCurve: Option<Box<FHIRDecimal>>,
28219 #[primitive]
28220 #[doc = "Contact lens diameter measured in millimetres."]
28221 pub diameter: Option<Box<FHIRDecimal>>,
28222 #[doc = "The recommended maximum wear period for the lens."]
28223 pub duration: Option<Box<Quantity>>,
28224 #[primitive]
28225 #[doc = "Special color or pattern."]
28226 pub color: Option<Box<FHIRString>>,
28227 #[primitive]
28228 #[doc = "Brand recommendations or restrictions."]
28229 pub brand: Option<Box<FHIRString>>,
28230 #[doc = "Notes for special requirements such as coatings and lens materials."]
28231 pub note: Option<Vec<Box<Annotation>>>,
28232}
28233#[derive(
28234 Clone,
28235 Reflect,
28236 Debug,
28237 Default,
28238 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
28239 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
28240)]
28241#[fhir_serialize_type = "resource"]
28242#[doc = "An authorization for the provision of glasses and/or contact lenses to a patient."]
28243pub struct VisionPrescription {
28244 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
28245 pub id: Option<String>,
28246 #[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."]
28247 pub meta: Option<Box<Meta>>,
28248 #[primitive]
28249 #[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."]
28250 pub implicitRules: Option<Box<FHIRUri>>,
28251 #[primitive]
28252 #[doc = "The base language in which the resource is written."]
28253 pub language: Option<Box<FHIRCode>>,
28254 #[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."]
28255 pub text: Option<Box<Narrative>>,
28256 #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
28257 pub contained: Option<Vec<Box<Resource>>>,
28258 #[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 manageable, 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."]
28259 pub extension: Option<Vec<Box<Extension>>>,
28260 #[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 manageable, 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)."]
28261 pub modifierExtension: Option<Vec<Box<Extension>>>,
28262 #[rename_field = "identifier"]
28263 #[doc = "A unique identifier assigned to this vision prescription."]
28264 pub identifier_: Option<Vec<Box<Identifier>>>,
28265 #[primitive]
28266 #[doc = "The status of the resource instance."]
28267 pub status: Box<terminology::FmStatus>,
28268 #[primitive]
28269 #[doc = "The date this resource was created."]
28270 pub created: Box<FHIRDateTime>,
28271 # [reference (targets = ["Patient"])]
28272 #[doc = "A resource reference to the person to whom the vision prescription applies."]
28273 pub patient: Box<Reference>,
28274 # [reference (targets = ["Encounter"])]
28275 #[doc = "A reference to a resource that identifies the particular occurrence of contact between patient and health care provider during which the prescription was issued."]
28276 pub encounter: Option<Box<Reference>>,
28277 #[primitive]
28278 #[doc = "The date (and perhaps time) when the prescription was written."]
28279 pub dateWritten: Box<FHIRDateTime>,
28280 # [reference (targets = ["Practitioner" , "PractitionerRole"])]
28281 #[doc = "The healthcare professional responsible for authorizing the prescription."]
28282 pub prescriber: Box<Reference>,
28283 #[cardinality(min = 1usize)]
28284 #[doc = "Contain the details of the individual lens specifications and serves as the authorization for the fullfillment by certified professionals."]
28285 pub lensSpecification: Vec<VisionPrescriptionLensSpecification>,
28286}
28287#[derive(
28288 Clone,
28289 Reflect,
28290 Debug,
28291 haste_fhir_serialization_json :: derive :: FHIRJSONSerialize,
28292 haste_fhir_serialization_json :: derive :: FHIRJSONDeserialize,
28293)]
28294#[fhir_serialize_type = "enum-variant"]
28295#[determine_by = "resourceType"]
28296pub enum Resource {
28297 IdentityProvider(IdentityProvider),
28298 Membership(Membership),
28299 Project(Project),
28300 AccessPolicyV2(AccessPolicyV2),
28301 ClientApplication(ClientApplication),
28302 User(User),
28303 Account(Account),
28304 ActivityDefinition(ActivityDefinition),
28305 AdverseEvent(AdverseEvent),
28306 AllergyIntolerance(AllergyIntolerance),
28307 Appointment(Appointment),
28308 AppointmentResponse(AppointmentResponse),
28309 AuditEvent(AuditEvent),
28310 Basic(Basic),
28311 Binary(Binary),
28312 BiologicallyDerivedProduct(BiologicallyDerivedProduct),
28313 BodyStructure(BodyStructure),
28314 Bundle(Bundle),
28315 CapabilityStatement(CapabilityStatement),
28316 CarePlan(CarePlan),
28317 CareTeam(CareTeam),
28318 CatalogEntry(CatalogEntry),
28319 ChargeItem(ChargeItem),
28320 ChargeItemDefinition(ChargeItemDefinition),
28321 Claim(Claim),
28322 ClaimResponse(ClaimResponse),
28323 ClinicalImpression(ClinicalImpression),
28324 CodeSystem(CodeSystem),
28325 Communication(Communication),
28326 CommunicationRequest(CommunicationRequest),
28327 CompartmentDefinition(CompartmentDefinition),
28328 Composition(Composition),
28329 ConceptMap(ConceptMap),
28330 Condition(Condition),
28331 Consent(Consent),
28332 Contract(Contract),
28333 Coverage(Coverage),
28334 CoverageEligibilityRequest(CoverageEligibilityRequest),
28335 CoverageEligibilityResponse(CoverageEligibilityResponse),
28336 DetectedIssue(DetectedIssue),
28337 Device(Device),
28338 DeviceDefinition(DeviceDefinition),
28339 DeviceMetric(DeviceMetric),
28340 DeviceRequest(DeviceRequest),
28341 DeviceUseStatement(DeviceUseStatement),
28342 DiagnosticReport(DiagnosticReport),
28343 DocumentManifest(DocumentManifest),
28344 DocumentReference(DocumentReference),
28345 EffectEvidenceSynthesis(EffectEvidenceSynthesis),
28346 Encounter(Encounter),
28347 Endpoint(Endpoint),
28348 EnrollmentRequest(EnrollmentRequest),
28349 EnrollmentResponse(EnrollmentResponse),
28350 EpisodeOfCare(EpisodeOfCare),
28351 EventDefinition(EventDefinition),
28352 Evidence(Evidence),
28353 EvidenceVariable(EvidenceVariable),
28354 ExampleScenario(ExampleScenario),
28355 ExplanationOfBenefit(ExplanationOfBenefit),
28356 FamilyMemberHistory(FamilyMemberHistory),
28357 Flag(Flag),
28358 Goal(Goal),
28359 GraphDefinition(GraphDefinition),
28360 Group(Group),
28361 GuidanceResponse(GuidanceResponse),
28362 HealthcareService(HealthcareService),
28363 ImagingStudy(ImagingStudy),
28364 Immunization(Immunization),
28365 ImmunizationEvaluation(ImmunizationEvaluation),
28366 ImmunizationRecommendation(ImmunizationRecommendation),
28367 ImplementationGuide(ImplementationGuide),
28368 InsurancePlan(InsurancePlan),
28369 Invoice(Invoice),
28370 Library(Library),
28371 Linkage(Linkage),
28372 List(List),
28373 Location(Location),
28374 Measure(Measure),
28375 MeasureReport(MeasureReport),
28376 Media(Media),
28377 Medication(Medication),
28378 MedicationAdministration(MedicationAdministration),
28379 MedicationDispense(MedicationDispense),
28380 MedicationKnowledge(MedicationKnowledge),
28381 MedicationRequest(MedicationRequest),
28382 MedicationStatement(MedicationStatement),
28383 MedicinalProduct(MedicinalProduct),
28384 MedicinalProductAuthorization(MedicinalProductAuthorization),
28385 MedicinalProductContraindication(MedicinalProductContraindication),
28386 MedicinalProductIndication(MedicinalProductIndication),
28387 MedicinalProductIngredient(MedicinalProductIngredient),
28388 MedicinalProductInteraction(MedicinalProductInteraction),
28389 MedicinalProductManufactured(MedicinalProductManufactured),
28390 MedicinalProductPackaged(MedicinalProductPackaged),
28391 MedicinalProductPharmaceutical(MedicinalProductPharmaceutical),
28392 MedicinalProductUndesirableEffect(MedicinalProductUndesirableEffect),
28393 MessageDefinition(MessageDefinition),
28394 MessageHeader(MessageHeader),
28395 MolecularSequence(MolecularSequence),
28396 NamingSystem(NamingSystem),
28397 NutritionOrder(NutritionOrder),
28398 Observation(Observation),
28399 ObservationDefinition(ObservationDefinition),
28400 OperationDefinition(OperationDefinition),
28401 OperationOutcome(OperationOutcome),
28402 Organization(Organization),
28403 OrganizationAffiliation(OrganizationAffiliation),
28404 Parameters(Parameters),
28405 Patient(Patient),
28406 PaymentNotice(PaymentNotice),
28407 PaymentReconciliation(PaymentReconciliation),
28408 Person(Person),
28409 PlanDefinition(PlanDefinition),
28410 Practitioner(Practitioner),
28411 PractitionerRole(PractitionerRole),
28412 Procedure(Procedure),
28413 Provenance(Provenance),
28414 Questionnaire(Questionnaire),
28415 QuestionnaireResponse(QuestionnaireResponse),
28416 RelatedPerson(RelatedPerson),
28417 RequestGroup(RequestGroup),
28418 ResearchDefinition(ResearchDefinition),
28419 ResearchElementDefinition(ResearchElementDefinition),
28420 ResearchStudy(ResearchStudy),
28421 ResearchSubject(ResearchSubject),
28422 RiskAssessment(RiskAssessment),
28423 RiskEvidenceSynthesis(RiskEvidenceSynthesis),
28424 Schedule(Schedule),
28425 SearchParameter(SearchParameter),
28426 ServiceRequest(ServiceRequest),
28427 Slot(Slot),
28428 Specimen(Specimen),
28429 SpecimenDefinition(SpecimenDefinition),
28430 StructureDefinition(StructureDefinition),
28431 StructureMap(StructureMap),
28432 Subscription(Subscription),
28433 Substance(Substance),
28434 SubstanceNucleicAcid(SubstanceNucleicAcid),
28435 SubstancePolymer(SubstancePolymer),
28436 SubstanceProtein(SubstanceProtein),
28437 SubstanceReferenceInformation(SubstanceReferenceInformation),
28438 SubstanceSourceMaterial(SubstanceSourceMaterial),
28439 SubstanceSpecification(SubstanceSpecification),
28440 SupplyDelivery(SupplyDelivery),
28441 SupplyRequest(SupplyRequest),
28442 Task(Task),
28443 TerminologyCapabilities(TerminologyCapabilities),
28444 TestReport(TestReport),
28445 TestScript(TestScript),
28446 ValueSet(ValueSet),
28447 VerificationResult(VerificationResult),
28448 VisionPrescription(VisionPrescription),
28449}
28450impl Resource {
28451 pub fn resource_type(&self) -> ResourceType {
28452 match self {
28453 Resource::IdentityProvider(_) => ResourceType::IdentityProvider,
28454 Resource::Membership(_) => ResourceType::Membership,
28455 Resource::Project(_) => ResourceType::Project,
28456 Resource::AccessPolicyV2(_) => ResourceType::AccessPolicyV2,
28457 Resource::ClientApplication(_) => ResourceType::ClientApplication,
28458 Resource::User(_) => ResourceType::User,
28459 Resource::Account(_) => ResourceType::Account,
28460 Resource::ActivityDefinition(_) => ResourceType::ActivityDefinition,
28461 Resource::AdverseEvent(_) => ResourceType::AdverseEvent,
28462 Resource::AllergyIntolerance(_) => ResourceType::AllergyIntolerance,
28463 Resource::Appointment(_) => ResourceType::Appointment,
28464 Resource::AppointmentResponse(_) => ResourceType::AppointmentResponse,
28465 Resource::AuditEvent(_) => ResourceType::AuditEvent,
28466 Resource::Basic(_) => ResourceType::Basic,
28467 Resource::Binary(_) => ResourceType::Binary,
28468 Resource::BiologicallyDerivedProduct(_) => ResourceType::BiologicallyDerivedProduct,
28469 Resource::BodyStructure(_) => ResourceType::BodyStructure,
28470 Resource::Bundle(_) => ResourceType::Bundle,
28471 Resource::CapabilityStatement(_) => ResourceType::CapabilityStatement,
28472 Resource::CarePlan(_) => ResourceType::CarePlan,
28473 Resource::CareTeam(_) => ResourceType::CareTeam,
28474 Resource::CatalogEntry(_) => ResourceType::CatalogEntry,
28475 Resource::ChargeItem(_) => ResourceType::ChargeItem,
28476 Resource::ChargeItemDefinition(_) => ResourceType::ChargeItemDefinition,
28477 Resource::Claim(_) => ResourceType::Claim,
28478 Resource::ClaimResponse(_) => ResourceType::ClaimResponse,
28479 Resource::ClinicalImpression(_) => ResourceType::ClinicalImpression,
28480 Resource::CodeSystem(_) => ResourceType::CodeSystem,
28481 Resource::Communication(_) => ResourceType::Communication,
28482 Resource::CommunicationRequest(_) => ResourceType::CommunicationRequest,
28483 Resource::CompartmentDefinition(_) => ResourceType::CompartmentDefinition,
28484 Resource::Composition(_) => ResourceType::Composition,
28485 Resource::ConceptMap(_) => ResourceType::ConceptMap,
28486 Resource::Condition(_) => ResourceType::Condition,
28487 Resource::Consent(_) => ResourceType::Consent,
28488 Resource::Contract(_) => ResourceType::Contract,
28489 Resource::Coverage(_) => ResourceType::Coverage,
28490 Resource::CoverageEligibilityRequest(_) => ResourceType::CoverageEligibilityRequest,
28491 Resource::CoverageEligibilityResponse(_) => ResourceType::CoverageEligibilityResponse,
28492 Resource::DetectedIssue(_) => ResourceType::DetectedIssue,
28493 Resource::Device(_) => ResourceType::Device,
28494 Resource::DeviceDefinition(_) => ResourceType::DeviceDefinition,
28495 Resource::DeviceMetric(_) => ResourceType::DeviceMetric,
28496 Resource::DeviceRequest(_) => ResourceType::DeviceRequest,
28497 Resource::DeviceUseStatement(_) => ResourceType::DeviceUseStatement,
28498 Resource::DiagnosticReport(_) => ResourceType::DiagnosticReport,
28499 Resource::DocumentManifest(_) => ResourceType::DocumentManifest,
28500 Resource::DocumentReference(_) => ResourceType::DocumentReference,
28501 Resource::EffectEvidenceSynthesis(_) => ResourceType::EffectEvidenceSynthesis,
28502 Resource::Encounter(_) => ResourceType::Encounter,
28503 Resource::Endpoint(_) => ResourceType::Endpoint,
28504 Resource::EnrollmentRequest(_) => ResourceType::EnrollmentRequest,
28505 Resource::EnrollmentResponse(_) => ResourceType::EnrollmentResponse,
28506 Resource::EpisodeOfCare(_) => ResourceType::EpisodeOfCare,
28507 Resource::EventDefinition(_) => ResourceType::EventDefinition,
28508 Resource::Evidence(_) => ResourceType::Evidence,
28509 Resource::EvidenceVariable(_) => ResourceType::EvidenceVariable,
28510 Resource::ExampleScenario(_) => ResourceType::ExampleScenario,
28511 Resource::ExplanationOfBenefit(_) => ResourceType::ExplanationOfBenefit,
28512 Resource::FamilyMemberHistory(_) => ResourceType::FamilyMemberHistory,
28513 Resource::Flag(_) => ResourceType::Flag,
28514 Resource::Goal(_) => ResourceType::Goal,
28515 Resource::GraphDefinition(_) => ResourceType::GraphDefinition,
28516 Resource::Group(_) => ResourceType::Group,
28517 Resource::GuidanceResponse(_) => ResourceType::GuidanceResponse,
28518 Resource::HealthcareService(_) => ResourceType::HealthcareService,
28519 Resource::ImagingStudy(_) => ResourceType::ImagingStudy,
28520 Resource::Immunization(_) => ResourceType::Immunization,
28521 Resource::ImmunizationEvaluation(_) => ResourceType::ImmunizationEvaluation,
28522 Resource::ImmunizationRecommendation(_) => ResourceType::ImmunizationRecommendation,
28523 Resource::ImplementationGuide(_) => ResourceType::ImplementationGuide,
28524 Resource::InsurancePlan(_) => ResourceType::InsurancePlan,
28525 Resource::Invoice(_) => ResourceType::Invoice,
28526 Resource::Library(_) => ResourceType::Library,
28527 Resource::Linkage(_) => ResourceType::Linkage,
28528 Resource::List(_) => ResourceType::List,
28529 Resource::Location(_) => ResourceType::Location,
28530 Resource::Measure(_) => ResourceType::Measure,
28531 Resource::MeasureReport(_) => ResourceType::MeasureReport,
28532 Resource::Media(_) => ResourceType::Media,
28533 Resource::Medication(_) => ResourceType::Medication,
28534 Resource::MedicationAdministration(_) => ResourceType::MedicationAdministration,
28535 Resource::MedicationDispense(_) => ResourceType::MedicationDispense,
28536 Resource::MedicationKnowledge(_) => ResourceType::MedicationKnowledge,
28537 Resource::MedicationRequest(_) => ResourceType::MedicationRequest,
28538 Resource::MedicationStatement(_) => ResourceType::MedicationStatement,
28539 Resource::MedicinalProduct(_) => ResourceType::MedicinalProduct,
28540 Resource::MedicinalProductAuthorization(_) => {
28541 ResourceType::MedicinalProductAuthorization
28542 }
28543 Resource::MedicinalProductContraindication(_) => {
28544 ResourceType::MedicinalProductContraindication
28545 }
28546 Resource::MedicinalProductIndication(_) => ResourceType::MedicinalProductIndication,
28547 Resource::MedicinalProductIngredient(_) => ResourceType::MedicinalProductIngredient,
28548 Resource::MedicinalProductInteraction(_) => ResourceType::MedicinalProductInteraction,
28549 Resource::MedicinalProductManufactured(_) => ResourceType::MedicinalProductManufactured,
28550 Resource::MedicinalProductPackaged(_) => ResourceType::MedicinalProductPackaged,
28551 Resource::MedicinalProductPharmaceutical(_) => {
28552 ResourceType::MedicinalProductPharmaceutical
28553 }
28554 Resource::MedicinalProductUndesirableEffect(_) => {
28555 ResourceType::MedicinalProductUndesirableEffect
28556 }
28557 Resource::MessageDefinition(_) => ResourceType::MessageDefinition,
28558 Resource::MessageHeader(_) => ResourceType::MessageHeader,
28559 Resource::MolecularSequence(_) => ResourceType::MolecularSequence,
28560 Resource::NamingSystem(_) => ResourceType::NamingSystem,
28561 Resource::NutritionOrder(_) => ResourceType::NutritionOrder,
28562 Resource::Observation(_) => ResourceType::Observation,
28563 Resource::ObservationDefinition(_) => ResourceType::ObservationDefinition,
28564 Resource::OperationDefinition(_) => ResourceType::OperationDefinition,
28565 Resource::OperationOutcome(_) => ResourceType::OperationOutcome,
28566 Resource::Organization(_) => ResourceType::Organization,
28567 Resource::OrganizationAffiliation(_) => ResourceType::OrganizationAffiliation,
28568 Resource::Parameters(_) => ResourceType::Parameters,
28569 Resource::Patient(_) => ResourceType::Patient,
28570 Resource::PaymentNotice(_) => ResourceType::PaymentNotice,
28571 Resource::PaymentReconciliation(_) => ResourceType::PaymentReconciliation,
28572 Resource::Person(_) => ResourceType::Person,
28573 Resource::PlanDefinition(_) => ResourceType::PlanDefinition,
28574 Resource::Practitioner(_) => ResourceType::Practitioner,
28575 Resource::PractitionerRole(_) => ResourceType::PractitionerRole,
28576 Resource::Procedure(_) => ResourceType::Procedure,
28577 Resource::Provenance(_) => ResourceType::Provenance,
28578 Resource::Questionnaire(_) => ResourceType::Questionnaire,
28579 Resource::QuestionnaireResponse(_) => ResourceType::QuestionnaireResponse,
28580 Resource::RelatedPerson(_) => ResourceType::RelatedPerson,
28581 Resource::RequestGroup(_) => ResourceType::RequestGroup,
28582 Resource::ResearchDefinition(_) => ResourceType::ResearchDefinition,
28583 Resource::ResearchElementDefinition(_) => ResourceType::ResearchElementDefinition,
28584 Resource::ResearchStudy(_) => ResourceType::ResearchStudy,
28585 Resource::ResearchSubject(_) => ResourceType::ResearchSubject,
28586 Resource::RiskAssessment(_) => ResourceType::RiskAssessment,
28587 Resource::RiskEvidenceSynthesis(_) => ResourceType::RiskEvidenceSynthesis,
28588 Resource::Schedule(_) => ResourceType::Schedule,
28589 Resource::SearchParameter(_) => ResourceType::SearchParameter,
28590 Resource::ServiceRequest(_) => ResourceType::ServiceRequest,
28591 Resource::Slot(_) => ResourceType::Slot,
28592 Resource::Specimen(_) => ResourceType::Specimen,
28593 Resource::SpecimenDefinition(_) => ResourceType::SpecimenDefinition,
28594 Resource::StructureDefinition(_) => ResourceType::StructureDefinition,
28595 Resource::StructureMap(_) => ResourceType::StructureMap,
28596 Resource::Subscription(_) => ResourceType::Subscription,
28597 Resource::Substance(_) => ResourceType::Substance,
28598 Resource::SubstanceNucleicAcid(_) => ResourceType::SubstanceNucleicAcid,
28599 Resource::SubstancePolymer(_) => ResourceType::SubstancePolymer,
28600 Resource::SubstanceProtein(_) => ResourceType::SubstanceProtein,
28601 Resource::SubstanceReferenceInformation(_) => {
28602 ResourceType::SubstanceReferenceInformation
28603 }
28604 Resource::SubstanceSourceMaterial(_) => ResourceType::SubstanceSourceMaterial,
28605 Resource::SubstanceSpecification(_) => ResourceType::SubstanceSpecification,
28606 Resource::SupplyDelivery(_) => ResourceType::SupplyDelivery,
28607 Resource::SupplyRequest(_) => ResourceType::SupplyRequest,
28608 Resource::Task(_) => ResourceType::Task,
28609 Resource::TerminologyCapabilities(_) => ResourceType::TerminologyCapabilities,
28610 Resource::TestReport(_) => ResourceType::TestReport,
28611 Resource::TestScript(_) => ResourceType::TestScript,
28612 Resource::ValueSet(_) => ResourceType::ValueSet,
28613 Resource::VerificationResult(_) => ResourceType::VerificationResult,
28614 Resource::VisionPrescription(_) => ResourceType::VisionPrescription,
28615 }
28616 }
28617 pub fn id<'a>(&'a self) -> &'a Option<String> {
28618 match self {
28619 Resource::IdentityProvider(r) => &r.id,
28620 Resource::Membership(r) => &r.id,
28621 Resource::Project(r) => &r.id,
28622 Resource::AccessPolicyV2(r) => &r.id,
28623 Resource::ClientApplication(r) => &r.id,
28624 Resource::User(r) => &r.id,
28625 Resource::Account(r) => &r.id,
28626 Resource::ActivityDefinition(r) => &r.id,
28627 Resource::AdverseEvent(r) => &r.id,
28628 Resource::AllergyIntolerance(r) => &r.id,
28629 Resource::Appointment(r) => &r.id,
28630 Resource::AppointmentResponse(r) => &r.id,
28631 Resource::AuditEvent(r) => &r.id,
28632 Resource::Basic(r) => &r.id,
28633 Resource::Binary(r) => &r.id,
28634 Resource::BiologicallyDerivedProduct(r) => &r.id,
28635 Resource::BodyStructure(r) => &r.id,
28636 Resource::Bundle(r) => &r.id,
28637 Resource::CapabilityStatement(r) => &r.id,
28638 Resource::CarePlan(r) => &r.id,
28639 Resource::CareTeam(r) => &r.id,
28640 Resource::CatalogEntry(r) => &r.id,
28641 Resource::ChargeItem(r) => &r.id,
28642 Resource::ChargeItemDefinition(r) => &r.id,
28643 Resource::Claim(r) => &r.id,
28644 Resource::ClaimResponse(r) => &r.id,
28645 Resource::ClinicalImpression(r) => &r.id,
28646 Resource::CodeSystem(r) => &r.id,
28647 Resource::Communication(r) => &r.id,
28648 Resource::CommunicationRequest(r) => &r.id,
28649 Resource::CompartmentDefinition(r) => &r.id,
28650 Resource::Composition(r) => &r.id,
28651 Resource::ConceptMap(r) => &r.id,
28652 Resource::Condition(r) => &r.id,
28653 Resource::Consent(r) => &r.id,
28654 Resource::Contract(r) => &r.id,
28655 Resource::Coverage(r) => &r.id,
28656 Resource::CoverageEligibilityRequest(r) => &r.id,
28657 Resource::CoverageEligibilityResponse(r) => &r.id,
28658 Resource::DetectedIssue(r) => &r.id,
28659 Resource::Device(r) => &r.id,
28660 Resource::DeviceDefinition(r) => &r.id,
28661 Resource::DeviceMetric(r) => &r.id,
28662 Resource::DeviceRequest(r) => &r.id,
28663 Resource::DeviceUseStatement(r) => &r.id,
28664 Resource::DiagnosticReport(r) => &r.id,
28665 Resource::DocumentManifest(r) => &r.id,
28666 Resource::DocumentReference(r) => &r.id,
28667 Resource::EffectEvidenceSynthesis(r) => &r.id,
28668 Resource::Encounter(r) => &r.id,
28669 Resource::Endpoint(r) => &r.id,
28670 Resource::EnrollmentRequest(r) => &r.id,
28671 Resource::EnrollmentResponse(r) => &r.id,
28672 Resource::EpisodeOfCare(r) => &r.id,
28673 Resource::EventDefinition(r) => &r.id,
28674 Resource::Evidence(r) => &r.id,
28675 Resource::EvidenceVariable(r) => &r.id,
28676 Resource::ExampleScenario(r) => &r.id,
28677 Resource::ExplanationOfBenefit(r) => &r.id,
28678 Resource::FamilyMemberHistory(r) => &r.id,
28679 Resource::Flag(r) => &r.id,
28680 Resource::Goal(r) => &r.id,
28681 Resource::GraphDefinition(r) => &r.id,
28682 Resource::Group(r) => &r.id,
28683 Resource::GuidanceResponse(r) => &r.id,
28684 Resource::HealthcareService(r) => &r.id,
28685 Resource::ImagingStudy(r) => &r.id,
28686 Resource::Immunization(r) => &r.id,
28687 Resource::ImmunizationEvaluation(r) => &r.id,
28688 Resource::ImmunizationRecommendation(r) => &r.id,
28689 Resource::ImplementationGuide(r) => &r.id,
28690 Resource::InsurancePlan(r) => &r.id,
28691 Resource::Invoice(r) => &r.id,
28692 Resource::Library(r) => &r.id,
28693 Resource::Linkage(r) => &r.id,
28694 Resource::List(r) => &r.id,
28695 Resource::Location(r) => &r.id,
28696 Resource::Measure(r) => &r.id,
28697 Resource::MeasureReport(r) => &r.id,
28698 Resource::Media(r) => &r.id,
28699 Resource::Medication(r) => &r.id,
28700 Resource::MedicationAdministration(r) => &r.id,
28701 Resource::MedicationDispense(r) => &r.id,
28702 Resource::MedicationKnowledge(r) => &r.id,
28703 Resource::MedicationRequest(r) => &r.id,
28704 Resource::MedicationStatement(r) => &r.id,
28705 Resource::MedicinalProduct(r) => &r.id,
28706 Resource::MedicinalProductAuthorization(r) => &r.id,
28707 Resource::MedicinalProductContraindication(r) => &r.id,
28708 Resource::MedicinalProductIndication(r) => &r.id,
28709 Resource::MedicinalProductIngredient(r) => &r.id,
28710 Resource::MedicinalProductInteraction(r) => &r.id,
28711 Resource::MedicinalProductManufactured(r) => &r.id,
28712 Resource::MedicinalProductPackaged(r) => &r.id,
28713 Resource::MedicinalProductPharmaceutical(r) => &r.id,
28714 Resource::MedicinalProductUndesirableEffect(r) => &r.id,
28715 Resource::MessageDefinition(r) => &r.id,
28716 Resource::MessageHeader(r) => &r.id,
28717 Resource::MolecularSequence(r) => &r.id,
28718 Resource::NamingSystem(r) => &r.id,
28719 Resource::NutritionOrder(r) => &r.id,
28720 Resource::Observation(r) => &r.id,
28721 Resource::ObservationDefinition(r) => &r.id,
28722 Resource::OperationDefinition(r) => &r.id,
28723 Resource::OperationOutcome(r) => &r.id,
28724 Resource::Organization(r) => &r.id,
28725 Resource::OrganizationAffiliation(r) => &r.id,
28726 Resource::Parameters(r) => &r.id,
28727 Resource::Patient(r) => &r.id,
28728 Resource::PaymentNotice(r) => &r.id,
28729 Resource::PaymentReconciliation(r) => &r.id,
28730 Resource::Person(r) => &r.id,
28731 Resource::PlanDefinition(r) => &r.id,
28732 Resource::Practitioner(r) => &r.id,
28733 Resource::PractitionerRole(r) => &r.id,
28734 Resource::Procedure(r) => &r.id,
28735 Resource::Provenance(r) => &r.id,
28736 Resource::Questionnaire(r) => &r.id,
28737 Resource::QuestionnaireResponse(r) => &r.id,
28738 Resource::RelatedPerson(r) => &r.id,
28739 Resource::RequestGroup(r) => &r.id,
28740 Resource::ResearchDefinition(r) => &r.id,
28741 Resource::ResearchElementDefinition(r) => &r.id,
28742 Resource::ResearchStudy(r) => &r.id,
28743 Resource::ResearchSubject(r) => &r.id,
28744 Resource::RiskAssessment(r) => &r.id,
28745 Resource::RiskEvidenceSynthesis(r) => &r.id,
28746 Resource::Schedule(r) => &r.id,
28747 Resource::SearchParameter(r) => &r.id,
28748 Resource::ServiceRequest(r) => &r.id,
28749 Resource::Slot(r) => &r.id,
28750 Resource::Specimen(r) => &r.id,
28751 Resource::SpecimenDefinition(r) => &r.id,
28752 Resource::StructureDefinition(r) => &r.id,
28753 Resource::StructureMap(r) => &r.id,
28754 Resource::Subscription(r) => &r.id,
28755 Resource::Substance(r) => &r.id,
28756 Resource::SubstanceNucleicAcid(r) => &r.id,
28757 Resource::SubstancePolymer(r) => &r.id,
28758 Resource::SubstanceProtein(r) => &r.id,
28759 Resource::SubstanceReferenceInformation(r) => &r.id,
28760 Resource::SubstanceSourceMaterial(r) => &r.id,
28761 Resource::SubstanceSpecification(r) => &r.id,
28762 Resource::SupplyDelivery(r) => &r.id,
28763 Resource::SupplyRequest(r) => &r.id,
28764 Resource::Task(r) => &r.id,
28765 Resource::TerminologyCapabilities(r) => &r.id,
28766 Resource::TestReport(r) => &r.id,
28767 Resource::TestScript(r) => &r.id,
28768 Resource::ValueSet(r) => &r.id,
28769 Resource::VerificationResult(r) => &r.id,
28770 Resource::VisionPrescription(r) => &r.id,
28771 }
28772 }
28773}
28774#[derive(Error, Debug)]
28775pub enum ResourceTypeError {
28776 #[error("Invalid resource type: {0}")]
28777 Invalid(String),
28778}
28779#[derive(
28780 Debug, Clone, PartialEq, Eq, Hash, serde :: Deserialize, serde :: Serialize, PartialOrd, Ord,
28781)]
28782pub enum ResourceType {
28783 IdentityProvider,
28784 Membership,
28785 Project,
28786 AccessPolicyV2,
28787 ClientApplication,
28788 User,
28789 Account,
28790 ActivityDefinition,
28791 AdverseEvent,
28792 AllergyIntolerance,
28793 Appointment,
28794 AppointmentResponse,
28795 AuditEvent,
28796 Basic,
28797 Binary,
28798 BiologicallyDerivedProduct,
28799 BodyStructure,
28800 Bundle,
28801 CapabilityStatement,
28802 CarePlan,
28803 CareTeam,
28804 CatalogEntry,
28805 ChargeItem,
28806 ChargeItemDefinition,
28807 Claim,
28808 ClaimResponse,
28809 ClinicalImpression,
28810 CodeSystem,
28811 Communication,
28812 CommunicationRequest,
28813 CompartmentDefinition,
28814 Composition,
28815 ConceptMap,
28816 Condition,
28817 Consent,
28818 Contract,
28819 Coverage,
28820 CoverageEligibilityRequest,
28821 CoverageEligibilityResponse,
28822 DetectedIssue,
28823 Device,
28824 DeviceDefinition,
28825 DeviceMetric,
28826 DeviceRequest,
28827 DeviceUseStatement,
28828 DiagnosticReport,
28829 DocumentManifest,
28830 DocumentReference,
28831 EffectEvidenceSynthesis,
28832 Encounter,
28833 Endpoint,
28834 EnrollmentRequest,
28835 EnrollmentResponse,
28836 EpisodeOfCare,
28837 EventDefinition,
28838 Evidence,
28839 EvidenceVariable,
28840 ExampleScenario,
28841 ExplanationOfBenefit,
28842 FamilyMemberHistory,
28843 Flag,
28844 Goal,
28845 GraphDefinition,
28846 Group,
28847 GuidanceResponse,
28848 HealthcareService,
28849 ImagingStudy,
28850 Immunization,
28851 ImmunizationEvaluation,
28852 ImmunizationRecommendation,
28853 ImplementationGuide,
28854 InsurancePlan,
28855 Invoice,
28856 Library,
28857 Linkage,
28858 List,
28859 Location,
28860 Measure,
28861 MeasureReport,
28862 Media,
28863 Medication,
28864 MedicationAdministration,
28865 MedicationDispense,
28866 MedicationKnowledge,
28867 MedicationRequest,
28868 MedicationStatement,
28869 MedicinalProduct,
28870 MedicinalProductAuthorization,
28871 MedicinalProductContraindication,
28872 MedicinalProductIndication,
28873 MedicinalProductIngredient,
28874 MedicinalProductInteraction,
28875 MedicinalProductManufactured,
28876 MedicinalProductPackaged,
28877 MedicinalProductPharmaceutical,
28878 MedicinalProductUndesirableEffect,
28879 MessageDefinition,
28880 MessageHeader,
28881 MolecularSequence,
28882 NamingSystem,
28883 NutritionOrder,
28884 Observation,
28885 ObservationDefinition,
28886 OperationDefinition,
28887 OperationOutcome,
28888 Organization,
28889 OrganizationAffiliation,
28890 Parameters,
28891 Patient,
28892 PaymentNotice,
28893 PaymentReconciliation,
28894 Person,
28895 PlanDefinition,
28896 Practitioner,
28897 PractitionerRole,
28898 Procedure,
28899 Provenance,
28900 Questionnaire,
28901 QuestionnaireResponse,
28902 RelatedPerson,
28903 RequestGroup,
28904 ResearchDefinition,
28905 ResearchElementDefinition,
28906 ResearchStudy,
28907 ResearchSubject,
28908 RiskAssessment,
28909 RiskEvidenceSynthesis,
28910 Schedule,
28911 SearchParameter,
28912 ServiceRequest,
28913 Slot,
28914 Specimen,
28915 SpecimenDefinition,
28916 StructureDefinition,
28917 StructureMap,
28918 Subscription,
28919 Substance,
28920 SubstanceNucleicAcid,
28921 SubstancePolymer,
28922 SubstanceProtein,
28923 SubstanceReferenceInformation,
28924 SubstanceSourceMaterial,
28925 SubstanceSpecification,
28926 SupplyDelivery,
28927 SupplyRequest,
28928 Task,
28929 TerminologyCapabilities,
28930 TestReport,
28931 TestScript,
28932 ValueSet,
28933 VerificationResult,
28934 VisionPrescription,
28935}
28936impl ResourceType {
28937 pub fn deserialize(
28938 &self,
28939 data: &str,
28940 ) -> Result<Resource, haste_fhir_serialization_json::errors::DeserializeError> {
28941 match self {
28942 ResourceType::IdentityProvider => Ok(Resource::IdentityProvider(
28943 haste_fhir_serialization_json::from_str::<IdentityProvider>(data)?,
28944 )),
28945 ResourceType::Membership => Ok(Resource::Membership(
28946 haste_fhir_serialization_json::from_str::<Membership>(data)?,
28947 )),
28948 ResourceType::Project => Ok(Resource::Project(
28949 haste_fhir_serialization_json::from_str::<Project>(data)?,
28950 )),
28951 ResourceType::AccessPolicyV2 => Ok(Resource::AccessPolicyV2(
28952 haste_fhir_serialization_json::from_str::<AccessPolicyV2>(data)?,
28953 )),
28954 ResourceType::ClientApplication => Ok(Resource::ClientApplication(
28955 haste_fhir_serialization_json::from_str::<ClientApplication>(data)?,
28956 )),
28957 ResourceType::User => Ok(Resource::User(haste_fhir_serialization_json::from_str::<
28958 User,
28959 >(data)?)),
28960 ResourceType::Account => Ok(Resource::Account(
28961 haste_fhir_serialization_json::from_str::<Account>(data)?,
28962 )),
28963 ResourceType::ActivityDefinition => Ok(Resource::ActivityDefinition(
28964 haste_fhir_serialization_json::from_str::<ActivityDefinition>(data)?,
28965 )),
28966 ResourceType::AdverseEvent => Ok(Resource::AdverseEvent(
28967 haste_fhir_serialization_json::from_str::<AdverseEvent>(data)?,
28968 )),
28969 ResourceType::AllergyIntolerance => Ok(Resource::AllergyIntolerance(
28970 haste_fhir_serialization_json::from_str::<AllergyIntolerance>(data)?,
28971 )),
28972 ResourceType::Appointment => Ok(Resource::Appointment(
28973 haste_fhir_serialization_json::from_str::<Appointment>(data)?,
28974 )),
28975 ResourceType::AppointmentResponse => Ok(Resource::AppointmentResponse(
28976 haste_fhir_serialization_json::from_str::<AppointmentResponse>(data)?,
28977 )),
28978 ResourceType::AuditEvent => Ok(Resource::AuditEvent(
28979 haste_fhir_serialization_json::from_str::<AuditEvent>(data)?,
28980 )),
28981 ResourceType::Basic => Ok(Resource::Basic(haste_fhir_serialization_json::from_str::<
28982 Basic,
28983 >(data)?)),
28984 ResourceType::Binary => {
28985 Ok(Resource::Binary(haste_fhir_serialization_json::from_str::<
28986 Binary,
28987 >(data)?))
28988 }
28989 ResourceType::BiologicallyDerivedProduct => Ok(Resource::BiologicallyDerivedProduct(
28990 haste_fhir_serialization_json::from_str::<BiologicallyDerivedProduct>(data)?,
28991 )),
28992 ResourceType::BodyStructure => Ok(Resource::BodyStructure(
28993 haste_fhir_serialization_json::from_str::<BodyStructure>(data)?,
28994 )),
28995 ResourceType::Bundle => {
28996 Ok(Resource::Bundle(haste_fhir_serialization_json::from_str::<
28997 Bundle,
28998 >(data)?))
28999 }
29000 ResourceType::CapabilityStatement => Ok(Resource::CapabilityStatement(
29001 haste_fhir_serialization_json::from_str::<CapabilityStatement>(data)?,
29002 )),
29003 ResourceType::CarePlan => Ok(Resource::CarePlan(
29004 haste_fhir_serialization_json::from_str::<CarePlan>(data)?,
29005 )),
29006 ResourceType::CareTeam => Ok(Resource::CareTeam(
29007 haste_fhir_serialization_json::from_str::<CareTeam>(data)?,
29008 )),
29009 ResourceType::CatalogEntry => Ok(Resource::CatalogEntry(
29010 haste_fhir_serialization_json::from_str::<CatalogEntry>(data)?,
29011 )),
29012 ResourceType::ChargeItem => Ok(Resource::ChargeItem(
29013 haste_fhir_serialization_json::from_str::<ChargeItem>(data)?,
29014 )),
29015 ResourceType::ChargeItemDefinition => Ok(Resource::ChargeItemDefinition(
29016 haste_fhir_serialization_json::from_str::<ChargeItemDefinition>(data)?,
29017 )),
29018 ResourceType::Claim => Ok(Resource::Claim(haste_fhir_serialization_json::from_str::<
29019 Claim,
29020 >(data)?)),
29021 ResourceType::ClaimResponse => Ok(Resource::ClaimResponse(
29022 haste_fhir_serialization_json::from_str::<ClaimResponse>(data)?,
29023 )),
29024 ResourceType::ClinicalImpression => Ok(Resource::ClinicalImpression(
29025 haste_fhir_serialization_json::from_str::<ClinicalImpression>(data)?,
29026 )),
29027 ResourceType::CodeSystem => Ok(Resource::CodeSystem(
29028 haste_fhir_serialization_json::from_str::<CodeSystem>(data)?,
29029 )),
29030 ResourceType::Communication => Ok(Resource::Communication(
29031 haste_fhir_serialization_json::from_str::<Communication>(data)?,
29032 )),
29033 ResourceType::CommunicationRequest => Ok(Resource::CommunicationRequest(
29034 haste_fhir_serialization_json::from_str::<CommunicationRequest>(data)?,
29035 )),
29036 ResourceType::CompartmentDefinition => Ok(Resource::CompartmentDefinition(
29037 haste_fhir_serialization_json::from_str::<CompartmentDefinition>(data)?,
29038 )),
29039 ResourceType::Composition => Ok(Resource::Composition(
29040 haste_fhir_serialization_json::from_str::<Composition>(data)?,
29041 )),
29042 ResourceType::ConceptMap => Ok(Resource::ConceptMap(
29043 haste_fhir_serialization_json::from_str::<ConceptMap>(data)?,
29044 )),
29045 ResourceType::Condition => Ok(Resource::Condition(
29046 haste_fhir_serialization_json::from_str::<Condition>(data)?,
29047 )),
29048 ResourceType::Consent => Ok(Resource::Consent(
29049 haste_fhir_serialization_json::from_str::<Consent>(data)?,
29050 )),
29051 ResourceType::Contract => Ok(Resource::Contract(
29052 haste_fhir_serialization_json::from_str::<Contract>(data)?,
29053 )),
29054 ResourceType::Coverage => Ok(Resource::Coverage(
29055 haste_fhir_serialization_json::from_str::<Coverage>(data)?,
29056 )),
29057 ResourceType::CoverageEligibilityRequest => Ok(Resource::CoverageEligibilityRequest(
29058 haste_fhir_serialization_json::from_str::<CoverageEligibilityRequest>(data)?,
29059 )),
29060 ResourceType::CoverageEligibilityResponse => Ok(Resource::CoverageEligibilityResponse(
29061 haste_fhir_serialization_json::from_str::<CoverageEligibilityResponse>(data)?,
29062 )),
29063 ResourceType::DetectedIssue => Ok(Resource::DetectedIssue(
29064 haste_fhir_serialization_json::from_str::<DetectedIssue>(data)?,
29065 )),
29066 ResourceType::Device => {
29067 Ok(Resource::Device(haste_fhir_serialization_json::from_str::<
29068 Device,
29069 >(data)?))
29070 }
29071 ResourceType::DeviceDefinition => Ok(Resource::DeviceDefinition(
29072 haste_fhir_serialization_json::from_str::<DeviceDefinition>(data)?,
29073 )),
29074 ResourceType::DeviceMetric => Ok(Resource::DeviceMetric(
29075 haste_fhir_serialization_json::from_str::<DeviceMetric>(data)?,
29076 )),
29077 ResourceType::DeviceRequest => Ok(Resource::DeviceRequest(
29078 haste_fhir_serialization_json::from_str::<DeviceRequest>(data)?,
29079 )),
29080 ResourceType::DeviceUseStatement => Ok(Resource::DeviceUseStatement(
29081 haste_fhir_serialization_json::from_str::<DeviceUseStatement>(data)?,
29082 )),
29083 ResourceType::DiagnosticReport => Ok(Resource::DiagnosticReport(
29084 haste_fhir_serialization_json::from_str::<DiagnosticReport>(data)?,
29085 )),
29086 ResourceType::DocumentManifest => Ok(Resource::DocumentManifest(
29087 haste_fhir_serialization_json::from_str::<DocumentManifest>(data)?,
29088 )),
29089 ResourceType::DocumentReference => Ok(Resource::DocumentReference(
29090 haste_fhir_serialization_json::from_str::<DocumentReference>(data)?,
29091 )),
29092 ResourceType::EffectEvidenceSynthesis => Ok(Resource::EffectEvidenceSynthesis(
29093 haste_fhir_serialization_json::from_str::<EffectEvidenceSynthesis>(data)?,
29094 )),
29095 ResourceType::Encounter => Ok(Resource::Encounter(
29096 haste_fhir_serialization_json::from_str::<Encounter>(data)?,
29097 )),
29098 ResourceType::Endpoint => Ok(Resource::Endpoint(
29099 haste_fhir_serialization_json::from_str::<Endpoint>(data)?,
29100 )),
29101 ResourceType::EnrollmentRequest => Ok(Resource::EnrollmentRequest(
29102 haste_fhir_serialization_json::from_str::<EnrollmentRequest>(data)?,
29103 )),
29104 ResourceType::EnrollmentResponse => Ok(Resource::EnrollmentResponse(
29105 haste_fhir_serialization_json::from_str::<EnrollmentResponse>(data)?,
29106 )),
29107 ResourceType::EpisodeOfCare => Ok(Resource::EpisodeOfCare(
29108 haste_fhir_serialization_json::from_str::<EpisodeOfCare>(data)?,
29109 )),
29110 ResourceType::EventDefinition => Ok(Resource::EventDefinition(
29111 haste_fhir_serialization_json::from_str::<EventDefinition>(data)?,
29112 )),
29113 ResourceType::Evidence => Ok(Resource::Evidence(
29114 haste_fhir_serialization_json::from_str::<Evidence>(data)?,
29115 )),
29116 ResourceType::EvidenceVariable => Ok(Resource::EvidenceVariable(
29117 haste_fhir_serialization_json::from_str::<EvidenceVariable>(data)?,
29118 )),
29119 ResourceType::ExampleScenario => Ok(Resource::ExampleScenario(
29120 haste_fhir_serialization_json::from_str::<ExampleScenario>(data)?,
29121 )),
29122 ResourceType::ExplanationOfBenefit => Ok(Resource::ExplanationOfBenefit(
29123 haste_fhir_serialization_json::from_str::<ExplanationOfBenefit>(data)?,
29124 )),
29125 ResourceType::FamilyMemberHistory => Ok(Resource::FamilyMemberHistory(
29126 haste_fhir_serialization_json::from_str::<FamilyMemberHistory>(data)?,
29127 )),
29128 ResourceType::Flag => Ok(Resource::Flag(haste_fhir_serialization_json::from_str::<
29129 Flag,
29130 >(data)?)),
29131 ResourceType::Goal => Ok(Resource::Goal(haste_fhir_serialization_json::from_str::<
29132 Goal,
29133 >(data)?)),
29134 ResourceType::GraphDefinition => Ok(Resource::GraphDefinition(
29135 haste_fhir_serialization_json::from_str::<GraphDefinition>(data)?,
29136 )),
29137 ResourceType::Group => Ok(Resource::Group(haste_fhir_serialization_json::from_str::<
29138 Group,
29139 >(data)?)),
29140 ResourceType::GuidanceResponse => Ok(Resource::GuidanceResponse(
29141 haste_fhir_serialization_json::from_str::<GuidanceResponse>(data)?,
29142 )),
29143 ResourceType::HealthcareService => Ok(Resource::HealthcareService(
29144 haste_fhir_serialization_json::from_str::<HealthcareService>(data)?,
29145 )),
29146 ResourceType::ImagingStudy => Ok(Resource::ImagingStudy(
29147 haste_fhir_serialization_json::from_str::<ImagingStudy>(data)?,
29148 )),
29149 ResourceType::Immunization => Ok(Resource::Immunization(
29150 haste_fhir_serialization_json::from_str::<Immunization>(data)?,
29151 )),
29152 ResourceType::ImmunizationEvaluation => Ok(Resource::ImmunizationEvaluation(
29153 haste_fhir_serialization_json::from_str::<ImmunizationEvaluation>(data)?,
29154 )),
29155 ResourceType::ImmunizationRecommendation => Ok(Resource::ImmunizationRecommendation(
29156 haste_fhir_serialization_json::from_str::<ImmunizationRecommendation>(data)?,
29157 )),
29158 ResourceType::ImplementationGuide => Ok(Resource::ImplementationGuide(
29159 haste_fhir_serialization_json::from_str::<ImplementationGuide>(data)?,
29160 )),
29161 ResourceType::InsurancePlan => Ok(Resource::InsurancePlan(
29162 haste_fhir_serialization_json::from_str::<InsurancePlan>(data)?,
29163 )),
29164 ResourceType::Invoice => Ok(Resource::Invoice(
29165 haste_fhir_serialization_json::from_str::<Invoice>(data)?,
29166 )),
29167 ResourceType::Library => Ok(Resource::Library(
29168 haste_fhir_serialization_json::from_str::<Library>(data)?,
29169 )),
29170 ResourceType::Linkage => Ok(Resource::Linkage(
29171 haste_fhir_serialization_json::from_str::<Linkage>(data)?,
29172 )),
29173 ResourceType::List => Ok(Resource::List(haste_fhir_serialization_json::from_str::<
29174 List,
29175 >(data)?)),
29176 ResourceType::Location => Ok(Resource::Location(
29177 haste_fhir_serialization_json::from_str::<Location>(data)?,
29178 )),
29179 ResourceType::Measure => Ok(Resource::Measure(
29180 haste_fhir_serialization_json::from_str::<Measure>(data)?,
29181 )),
29182 ResourceType::MeasureReport => Ok(Resource::MeasureReport(
29183 haste_fhir_serialization_json::from_str::<MeasureReport>(data)?,
29184 )),
29185 ResourceType::Media => Ok(Resource::Media(haste_fhir_serialization_json::from_str::<
29186 Media,
29187 >(data)?)),
29188 ResourceType::Medication => Ok(Resource::Medication(
29189 haste_fhir_serialization_json::from_str::<Medication>(data)?,
29190 )),
29191 ResourceType::MedicationAdministration => Ok(Resource::MedicationAdministration(
29192 haste_fhir_serialization_json::from_str::<MedicationAdministration>(data)?,
29193 )),
29194 ResourceType::MedicationDispense => Ok(Resource::MedicationDispense(
29195 haste_fhir_serialization_json::from_str::<MedicationDispense>(data)?,
29196 )),
29197 ResourceType::MedicationKnowledge => Ok(Resource::MedicationKnowledge(
29198 haste_fhir_serialization_json::from_str::<MedicationKnowledge>(data)?,
29199 )),
29200 ResourceType::MedicationRequest => Ok(Resource::MedicationRequest(
29201 haste_fhir_serialization_json::from_str::<MedicationRequest>(data)?,
29202 )),
29203 ResourceType::MedicationStatement => Ok(Resource::MedicationStatement(
29204 haste_fhir_serialization_json::from_str::<MedicationStatement>(data)?,
29205 )),
29206 ResourceType::MedicinalProduct => Ok(Resource::MedicinalProduct(
29207 haste_fhir_serialization_json::from_str::<MedicinalProduct>(data)?,
29208 )),
29209 ResourceType::MedicinalProductAuthorization => {
29210 Ok(Resource::MedicinalProductAuthorization(
29211 haste_fhir_serialization_json::from_str::<MedicinalProductAuthorization>(data)?,
29212 ))
29213 }
29214 ResourceType::MedicinalProductContraindication => {
29215 Ok(Resource::MedicinalProductContraindication(
29216 haste_fhir_serialization_json::from_str::<MedicinalProductContraindication>(
29217 data,
29218 )?,
29219 ))
29220 }
29221 ResourceType::MedicinalProductIndication => Ok(Resource::MedicinalProductIndication(
29222 haste_fhir_serialization_json::from_str::<MedicinalProductIndication>(data)?,
29223 )),
29224 ResourceType::MedicinalProductIngredient => Ok(Resource::MedicinalProductIngredient(
29225 haste_fhir_serialization_json::from_str::<MedicinalProductIngredient>(data)?,
29226 )),
29227 ResourceType::MedicinalProductInteraction => Ok(Resource::MedicinalProductInteraction(
29228 haste_fhir_serialization_json::from_str::<MedicinalProductInteraction>(data)?,
29229 )),
29230 ResourceType::MedicinalProductManufactured => {
29231 Ok(Resource::MedicinalProductManufactured(
29232 haste_fhir_serialization_json::from_str::<MedicinalProductManufactured>(data)?,
29233 ))
29234 }
29235 ResourceType::MedicinalProductPackaged => Ok(Resource::MedicinalProductPackaged(
29236 haste_fhir_serialization_json::from_str::<MedicinalProductPackaged>(data)?,
29237 )),
29238 ResourceType::MedicinalProductPharmaceutical => {
29239 Ok(Resource::MedicinalProductPharmaceutical(
29240 haste_fhir_serialization_json::from_str::<MedicinalProductPharmaceutical>(
29241 data,
29242 )?,
29243 ))
29244 }
29245 ResourceType::MedicinalProductUndesirableEffect => {
29246 Ok(Resource::MedicinalProductUndesirableEffect(
29247 haste_fhir_serialization_json::from_str::<MedicinalProductUndesirableEffect>(
29248 data,
29249 )?,
29250 ))
29251 }
29252 ResourceType::MessageDefinition => Ok(Resource::MessageDefinition(
29253 haste_fhir_serialization_json::from_str::<MessageDefinition>(data)?,
29254 )),
29255 ResourceType::MessageHeader => Ok(Resource::MessageHeader(
29256 haste_fhir_serialization_json::from_str::<MessageHeader>(data)?,
29257 )),
29258 ResourceType::MolecularSequence => Ok(Resource::MolecularSequence(
29259 haste_fhir_serialization_json::from_str::<MolecularSequence>(data)?,
29260 )),
29261 ResourceType::NamingSystem => Ok(Resource::NamingSystem(
29262 haste_fhir_serialization_json::from_str::<NamingSystem>(data)?,
29263 )),
29264 ResourceType::NutritionOrder => Ok(Resource::NutritionOrder(
29265 haste_fhir_serialization_json::from_str::<NutritionOrder>(data)?,
29266 )),
29267 ResourceType::Observation => Ok(Resource::Observation(
29268 haste_fhir_serialization_json::from_str::<Observation>(data)?,
29269 )),
29270 ResourceType::ObservationDefinition => Ok(Resource::ObservationDefinition(
29271 haste_fhir_serialization_json::from_str::<ObservationDefinition>(data)?,
29272 )),
29273 ResourceType::OperationDefinition => Ok(Resource::OperationDefinition(
29274 haste_fhir_serialization_json::from_str::<OperationDefinition>(data)?,
29275 )),
29276 ResourceType::OperationOutcome => Ok(Resource::OperationOutcome(
29277 haste_fhir_serialization_json::from_str::<OperationOutcome>(data)?,
29278 )),
29279 ResourceType::Organization => Ok(Resource::Organization(
29280 haste_fhir_serialization_json::from_str::<Organization>(data)?,
29281 )),
29282 ResourceType::OrganizationAffiliation => Ok(Resource::OrganizationAffiliation(
29283 haste_fhir_serialization_json::from_str::<OrganizationAffiliation>(data)?,
29284 )),
29285 ResourceType::Parameters => Ok(Resource::Parameters(
29286 haste_fhir_serialization_json::from_str::<Parameters>(data)?,
29287 )),
29288 ResourceType::Patient => Ok(Resource::Patient(
29289 haste_fhir_serialization_json::from_str::<Patient>(data)?,
29290 )),
29291 ResourceType::PaymentNotice => Ok(Resource::PaymentNotice(
29292 haste_fhir_serialization_json::from_str::<PaymentNotice>(data)?,
29293 )),
29294 ResourceType::PaymentReconciliation => Ok(Resource::PaymentReconciliation(
29295 haste_fhir_serialization_json::from_str::<PaymentReconciliation>(data)?,
29296 )),
29297 ResourceType::Person => {
29298 Ok(Resource::Person(haste_fhir_serialization_json::from_str::<
29299 Person,
29300 >(data)?))
29301 }
29302 ResourceType::PlanDefinition => Ok(Resource::PlanDefinition(
29303 haste_fhir_serialization_json::from_str::<PlanDefinition>(data)?,
29304 )),
29305 ResourceType::Practitioner => Ok(Resource::Practitioner(
29306 haste_fhir_serialization_json::from_str::<Practitioner>(data)?,
29307 )),
29308 ResourceType::PractitionerRole => Ok(Resource::PractitionerRole(
29309 haste_fhir_serialization_json::from_str::<PractitionerRole>(data)?,
29310 )),
29311 ResourceType::Procedure => Ok(Resource::Procedure(
29312 haste_fhir_serialization_json::from_str::<Procedure>(data)?,
29313 )),
29314 ResourceType::Provenance => Ok(Resource::Provenance(
29315 haste_fhir_serialization_json::from_str::<Provenance>(data)?,
29316 )),
29317 ResourceType::Questionnaire => Ok(Resource::Questionnaire(
29318 haste_fhir_serialization_json::from_str::<Questionnaire>(data)?,
29319 )),
29320 ResourceType::QuestionnaireResponse => Ok(Resource::QuestionnaireResponse(
29321 haste_fhir_serialization_json::from_str::<QuestionnaireResponse>(data)?,
29322 )),
29323 ResourceType::RelatedPerson => Ok(Resource::RelatedPerson(
29324 haste_fhir_serialization_json::from_str::<RelatedPerson>(data)?,
29325 )),
29326 ResourceType::RequestGroup => Ok(Resource::RequestGroup(
29327 haste_fhir_serialization_json::from_str::<RequestGroup>(data)?,
29328 )),
29329 ResourceType::ResearchDefinition => Ok(Resource::ResearchDefinition(
29330 haste_fhir_serialization_json::from_str::<ResearchDefinition>(data)?,
29331 )),
29332 ResourceType::ResearchElementDefinition => Ok(Resource::ResearchElementDefinition(
29333 haste_fhir_serialization_json::from_str::<ResearchElementDefinition>(data)?,
29334 )),
29335 ResourceType::ResearchStudy => Ok(Resource::ResearchStudy(
29336 haste_fhir_serialization_json::from_str::<ResearchStudy>(data)?,
29337 )),
29338 ResourceType::ResearchSubject => Ok(Resource::ResearchSubject(
29339 haste_fhir_serialization_json::from_str::<ResearchSubject>(data)?,
29340 )),
29341 ResourceType::RiskAssessment => Ok(Resource::RiskAssessment(
29342 haste_fhir_serialization_json::from_str::<RiskAssessment>(data)?,
29343 )),
29344 ResourceType::RiskEvidenceSynthesis => Ok(Resource::RiskEvidenceSynthesis(
29345 haste_fhir_serialization_json::from_str::<RiskEvidenceSynthesis>(data)?,
29346 )),
29347 ResourceType::Schedule => Ok(Resource::Schedule(
29348 haste_fhir_serialization_json::from_str::<Schedule>(data)?,
29349 )),
29350 ResourceType::SearchParameter => Ok(Resource::SearchParameter(
29351 haste_fhir_serialization_json::from_str::<SearchParameter>(data)?,
29352 )),
29353 ResourceType::ServiceRequest => Ok(Resource::ServiceRequest(
29354 haste_fhir_serialization_json::from_str::<ServiceRequest>(data)?,
29355 )),
29356 ResourceType::Slot => Ok(Resource::Slot(haste_fhir_serialization_json::from_str::<
29357 Slot,
29358 >(data)?)),
29359 ResourceType::Specimen => Ok(Resource::Specimen(
29360 haste_fhir_serialization_json::from_str::<Specimen>(data)?,
29361 )),
29362 ResourceType::SpecimenDefinition => Ok(Resource::SpecimenDefinition(
29363 haste_fhir_serialization_json::from_str::<SpecimenDefinition>(data)?,
29364 )),
29365 ResourceType::StructureDefinition => Ok(Resource::StructureDefinition(
29366 haste_fhir_serialization_json::from_str::<StructureDefinition>(data)?,
29367 )),
29368 ResourceType::StructureMap => Ok(Resource::StructureMap(
29369 haste_fhir_serialization_json::from_str::<StructureMap>(data)?,
29370 )),
29371 ResourceType::Subscription => Ok(Resource::Subscription(
29372 haste_fhir_serialization_json::from_str::<Subscription>(data)?,
29373 )),
29374 ResourceType::Substance => Ok(Resource::Substance(
29375 haste_fhir_serialization_json::from_str::<Substance>(data)?,
29376 )),
29377 ResourceType::SubstanceNucleicAcid => Ok(Resource::SubstanceNucleicAcid(
29378 haste_fhir_serialization_json::from_str::<SubstanceNucleicAcid>(data)?,
29379 )),
29380 ResourceType::SubstancePolymer => Ok(Resource::SubstancePolymer(
29381 haste_fhir_serialization_json::from_str::<SubstancePolymer>(data)?,
29382 )),
29383 ResourceType::SubstanceProtein => Ok(Resource::SubstanceProtein(
29384 haste_fhir_serialization_json::from_str::<SubstanceProtein>(data)?,
29385 )),
29386 ResourceType::SubstanceReferenceInformation => {
29387 Ok(Resource::SubstanceReferenceInformation(
29388 haste_fhir_serialization_json::from_str::<SubstanceReferenceInformation>(data)?,
29389 ))
29390 }
29391 ResourceType::SubstanceSourceMaterial => Ok(Resource::SubstanceSourceMaterial(
29392 haste_fhir_serialization_json::from_str::<SubstanceSourceMaterial>(data)?,
29393 )),
29394 ResourceType::SubstanceSpecification => Ok(Resource::SubstanceSpecification(
29395 haste_fhir_serialization_json::from_str::<SubstanceSpecification>(data)?,
29396 )),
29397 ResourceType::SupplyDelivery => Ok(Resource::SupplyDelivery(
29398 haste_fhir_serialization_json::from_str::<SupplyDelivery>(data)?,
29399 )),
29400 ResourceType::SupplyRequest => Ok(Resource::SupplyRequest(
29401 haste_fhir_serialization_json::from_str::<SupplyRequest>(data)?,
29402 )),
29403 ResourceType::Task => Ok(Resource::Task(haste_fhir_serialization_json::from_str::<
29404 Task,
29405 >(data)?)),
29406 ResourceType::TerminologyCapabilities => Ok(Resource::TerminologyCapabilities(
29407 haste_fhir_serialization_json::from_str::<TerminologyCapabilities>(data)?,
29408 )),
29409 ResourceType::TestReport => Ok(Resource::TestReport(
29410 haste_fhir_serialization_json::from_str::<TestReport>(data)?,
29411 )),
29412 ResourceType::TestScript => Ok(Resource::TestScript(
29413 haste_fhir_serialization_json::from_str::<TestScript>(data)?,
29414 )),
29415 ResourceType::ValueSet => Ok(Resource::ValueSet(
29416 haste_fhir_serialization_json::from_str::<ValueSet>(data)?,
29417 )),
29418 ResourceType::VerificationResult => Ok(Resource::VerificationResult(
29419 haste_fhir_serialization_json::from_str::<VerificationResult>(data)?,
29420 )),
29421 ResourceType::VisionPrescription => Ok(Resource::VisionPrescription(
29422 haste_fhir_serialization_json::from_str::<VisionPrescription>(data)?,
29423 )),
29424 }
29425 }
29426}
29427impl AsRef<str> for ResourceType {
29428 fn as_ref(&self) -> &str {
29429 match self {
29430 ResourceType::IdentityProvider => "IdentityProvider",
29431 ResourceType::Membership => "Membership",
29432 ResourceType::Project => "Project",
29433 ResourceType::AccessPolicyV2 => "AccessPolicyV2",
29434 ResourceType::ClientApplication => "ClientApplication",
29435 ResourceType::User => "User",
29436 ResourceType::Account => "Account",
29437 ResourceType::ActivityDefinition => "ActivityDefinition",
29438 ResourceType::AdverseEvent => "AdverseEvent",
29439 ResourceType::AllergyIntolerance => "AllergyIntolerance",
29440 ResourceType::Appointment => "Appointment",
29441 ResourceType::AppointmentResponse => "AppointmentResponse",
29442 ResourceType::AuditEvent => "AuditEvent",
29443 ResourceType::Basic => "Basic",
29444 ResourceType::Binary => "Binary",
29445 ResourceType::BiologicallyDerivedProduct => "BiologicallyDerivedProduct",
29446 ResourceType::BodyStructure => "BodyStructure",
29447 ResourceType::Bundle => "Bundle",
29448 ResourceType::CapabilityStatement => "CapabilityStatement",
29449 ResourceType::CarePlan => "CarePlan",
29450 ResourceType::CareTeam => "CareTeam",
29451 ResourceType::CatalogEntry => "CatalogEntry",
29452 ResourceType::ChargeItem => "ChargeItem",
29453 ResourceType::ChargeItemDefinition => "ChargeItemDefinition",
29454 ResourceType::Claim => "Claim",
29455 ResourceType::ClaimResponse => "ClaimResponse",
29456 ResourceType::ClinicalImpression => "ClinicalImpression",
29457 ResourceType::CodeSystem => "CodeSystem",
29458 ResourceType::Communication => "Communication",
29459 ResourceType::CommunicationRequest => "CommunicationRequest",
29460 ResourceType::CompartmentDefinition => "CompartmentDefinition",
29461 ResourceType::Composition => "Composition",
29462 ResourceType::ConceptMap => "ConceptMap",
29463 ResourceType::Condition => "Condition",
29464 ResourceType::Consent => "Consent",
29465 ResourceType::Contract => "Contract",
29466 ResourceType::Coverage => "Coverage",
29467 ResourceType::CoverageEligibilityRequest => "CoverageEligibilityRequest",
29468 ResourceType::CoverageEligibilityResponse => "CoverageEligibilityResponse",
29469 ResourceType::DetectedIssue => "DetectedIssue",
29470 ResourceType::Device => "Device",
29471 ResourceType::DeviceDefinition => "DeviceDefinition",
29472 ResourceType::DeviceMetric => "DeviceMetric",
29473 ResourceType::DeviceRequest => "DeviceRequest",
29474 ResourceType::DeviceUseStatement => "DeviceUseStatement",
29475 ResourceType::DiagnosticReport => "DiagnosticReport",
29476 ResourceType::DocumentManifest => "DocumentManifest",
29477 ResourceType::DocumentReference => "DocumentReference",
29478 ResourceType::EffectEvidenceSynthesis => "EffectEvidenceSynthesis",
29479 ResourceType::Encounter => "Encounter",
29480 ResourceType::Endpoint => "Endpoint",
29481 ResourceType::EnrollmentRequest => "EnrollmentRequest",
29482 ResourceType::EnrollmentResponse => "EnrollmentResponse",
29483 ResourceType::EpisodeOfCare => "EpisodeOfCare",
29484 ResourceType::EventDefinition => "EventDefinition",
29485 ResourceType::Evidence => "Evidence",
29486 ResourceType::EvidenceVariable => "EvidenceVariable",
29487 ResourceType::ExampleScenario => "ExampleScenario",
29488 ResourceType::ExplanationOfBenefit => "ExplanationOfBenefit",
29489 ResourceType::FamilyMemberHistory => "FamilyMemberHistory",
29490 ResourceType::Flag => "Flag",
29491 ResourceType::Goal => "Goal",
29492 ResourceType::GraphDefinition => "GraphDefinition",
29493 ResourceType::Group => "Group",
29494 ResourceType::GuidanceResponse => "GuidanceResponse",
29495 ResourceType::HealthcareService => "HealthcareService",
29496 ResourceType::ImagingStudy => "ImagingStudy",
29497 ResourceType::Immunization => "Immunization",
29498 ResourceType::ImmunizationEvaluation => "ImmunizationEvaluation",
29499 ResourceType::ImmunizationRecommendation => "ImmunizationRecommendation",
29500 ResourceType::ImplementationGuide => "ImplementationGuide",
29501 ResourceType::InsurancePlan => "InsurancePlan",
29502 ResourceType::Invoice => "Invoice",
29503 ResourceType::Library => "Library",
29504 ResourceType::Linkage => "Linkage",
29505 ResourceType::List => "List",
29506 ResourceType::Location => "Location",
29507 ResourceType::Measure => "Measure",
29508 ResourceType::MeasureReport => "MeasureReport",
29509 ResourceType::Media => "Media",
29510 ResourceType::Medication => "Medication",
29511 ResourceType::MedicationAdministration => "MedicationAdministration",
29512 ResourceType::MedicationDispense => "MedicationDispense",
29513 ResourceType::MedicationKnowledge => "MedicationKnowledge",
29514 ResourceType::MedicationRequest => "MedicationRequest",
29515 ResourceType::MedicationStatement => "MedicationStatement",
29516 ResourceType::MedicinalProduct => "MedicinalProduct",
29517 ResourceType::MedicinalProductAuthorization => "MedicinalProductAuthorization",
29518 ResourceType::MedicinalProductContraindication => "MedicinalProductContraindication",
29519 ResourceType::MedicinalProductIndication => "MedicinalProductIndication",
29520 ResourceType::MedicinalProductIngredient => "MedicinalProductIngredient",
29521 ResourceType::MedicinalProductInteraction => "MedicinalProductInteraction",
29522 ResourceType::MedicinalProductManufactured => "MedicinalProductManufactured",
29523 ResourceType::MedicinalProductPackaged => "MedicinalProductPackaged",
29524 ResourceType::MedicinalProductPharmaceutical => "MedicinalProductPharmaceutical",
29525 ResourceType::MedicinalProductUndesirableEffect => "MedicinalProductUndesirableEffect",
29526 ResourceType::MessageDefinition => "MessageDefinition",
29527 ResourceType::MessageHeader => "MessageHeader",
29528 ResourceType::MolecularSequence => "MolecularSequence",
29529 ResourceType::NamingSystem => "NamingSystem",
29530 ResourceType::NutritionOrder => "NutritionOrder",
29531 ResourceType::Observation => "Observation",
29532 ResourceType::ObservationDefinition => "ObservationDefinition",
29533 ResourceType::OperationDefinition => "OperationDefinition",
29534 ResourceType::OperationOutcome => "OperationOutcome",
29535 ResourceType::Organization => "Organization",
29536 ResourceType::OrganizationAffiliation => "OrganizationAffiliation",
29537 ResourceType::Parameters => "Parameters",
29538 ResourceType::Patient => "Patient",
29539 ResourceType::PaymentNotice => "PaymentNotice",
29540 ResourceType::PaymentReconciliation => "PaymentReconciliation",
29541 ResourceType::Person => "Person",
29542 ResourceType::PlanDefinition => "PlanDefinition",
29543 ResourceType::Practitioner => "Practitioner",
29544 ResourceType::PractitionerRole => "PractitionerRole",
29545 ResourceType::Procedure => "Procedure",
29546 ResourceType::Provenance => "Provenance",
29547 ResourceType::Questionnaire => "Questionnaire",
29548 ResourceType::QuestionnaireResponse => "QuestionnaireResponse",
29549 ResourceType::RelatedPerson => "RelatedPerson",
29550 ResourceType::RequestGroup => "RequestGroup",
29551 ResourceType::ResearchDefinition => "ResearchDefinition",
29552 ResourceType::ResearchElementDefinition => "ResearchElementDefinition",
29553 ResourceType::ResearchStudy => "ResearchStudy",
29554 ResourceType::ResearchSubject => "ResearchSubject",
29555 ResourceType::RiskAssessment => "RiskAssessment",
29556 ResourceType::RiskEvidenceSynthesis => "RiskEvidenceSynthesis",
29557 ResourceType::Schedule => "Schedule",
29558 ResourceType::SearchParameter => "SearchParameter",
29559 ResourceType::ServiceRequest => "ServiceRequest",
29560 ResourceType::Slot => "Slot",
29561 ResourceType::Specimen => "Specimen",
29562 ResourceType::SpecimenDefinition => "SpecimenDefinition",
29563 ResourceType::StructureDefinition => "StructureDefinition",
29564 ResourceType::StructureMap => "StructureMap",
29565 ResourceType::Subscription => "Subscription",
29566 ResourceType::Substance => "Substance",
29567 ResourceType::SubstanceNucleicAcid => "SubstanceNucleicAcid",
29568 ResourceType::SubstancePolymer => "SubstancePolymer",
29569 ResourceType::SubstanceProtein => "SubstanceProtein",
29570 ResourceType::SubstanceReferenceInformation => "SubstanceReferenceInformation",
29571 ResourceType::SubstanceSourceMaterial => "SubstanceSourceMaterial",
29572 ResourceType::SubstanceSpecification => "SubstanceSpecification",
29573 ResourceType::SupplyDelivery => "SupplyDelivery",
29574 ResourceType::SupplyRequest => "SupplyRequest",
29575 ResourceType::Task => "Task",
29576 ResourceType::TerminologyCapabilities => "TerminologyCapabilities",
29577 ResourceType::TestReport => "TestReport",
29578 ResourceType::TestScript => "TestScript",
29579 ResourceType::ValueSet => "ValueSet",
29580 ResourceType::VerificationResult => "VerificationResult",
29581 ResourceType::VisionPrescription => "VisionPrescription",
29582 }
29583 }
29584}
29585impl TryFrom<String> for ResourceType {
29586 type Error = ResourceTypeError;
29587 fn try_from(s: String) -> Result<Self, Self::Error> {
29588 match s.as_str() {
29589 "IdentityProvider" => Ok(ResourceType::IdentityProvider),
29590 "Membership" => Ok(ResourceType::Membership),
29591 "Project" => Ok(ResourceType::Project),
29592 "AccessPolicyV2" => Ok(ResourceType::AccessPolicyV2),
29593 "ClientApplication" => Ok(ResourceType::ClientApplication),
29594 "User" => Ok(ResourceType::User),
29595 "Account" => Ok(ResourceType::Account),
29596 "ActivityDefinition" => Ok(ResourceType::ActivityDefinition),
29597 "AdverseEvent" => Ok(ResourceType::AdverseEvent),
29598 "AllergyIntolerance" => Ok(ResourceType::AllergyIntolerance),
29599 "Appointment" => Ok(ResourceType::Appointment),
29600 "AppointmentResponse" => Ok(ResourceType::AppointmentResponse),
29601 "AuditEvent" => Ok(ResourceType::AuditEvent),
29602 "Basic" => Ok(ResourceType::Basic),
29603 "Binary" => Ok(ResourceType::Binary),
29604 "BiologicallyDerivedProduct" => Ok(ResourceType::BiologicallyDerivedProduct),
29605 "BodyStructure" => Ok(ResourceType::BodyStructure),
29606 "Bundle" => Ok(ResourceType::Bundle),
29607 "CapabilityStatement" => Ok(ResourceType::CapabilityStatement),
29608 "CarePlan" => Ok(ResourceType::CarePlan),
29609 "CareTeam" => Ok(ResourceType::CareTeam),
29610 "CatalogEntry" => Ok(ResourceType::CatalogEntry),
29611 "ChargeItem" => Ok(ResourceType::ChargeItem),
29612 "ChargeItemDefinition" => Ok(ResourceType::ChargeItemDefinition),
29613 "Claim" => Ok(ResourceType::Claim),
29614 "ClaimResponse" => Ok(ResourceType::ClaimResponse),
29615 "ClinicalImpression" => Ok(ResourceType::ClinicalImpression),
29616 "CodeSystem" => Ok(ResourceType::CodeSystem),
29617 "Communication" => Ok(ResourceType::Communication),
29618 "CommunicationRequest" => Ok(ResourceType::CommunicationRequest),
29619 "CompartmentDefinition" => Ok(ResourceType::CompartmentDefinition),
29620 "Composition" => Ok(ResourceType::Composition),
29621 "ConceptMap" => Ok(ResourceType::ConceptMap),
29622 "Condition" => Ok(ResourceType::Condition),
29623 "Consent" => Ok(ResourceType::Consent),
29624 "Contract" => Ok(ResourceType::Contract),
29625 "Coverage" => Ok(ResourceType::Coverage),
29626 "CoverageEligibilityRequest" => Ok(ResourceType::CoverageEligibilityRequest),
29627 "CoverageEligibilityResponse" => Ok(ResourceType::CoverageEligibilityResponse),
29628 "DetectedIssue" => Ok(ResourceType::DetectedIssue),
29629 "Device" => Ok(ResourceType::Device),
29630 "DeviceDefinition" => Ok(ResourceType::DeviceDefinition),
29631 "DeviceMetric" => Ok(ResourceType::DeviceMetric),
29632 "DeviceRequest" => Ok(ResourceType::DeviceRequest),
29633 "DeviceUseStatement" => Ok(ResourceType::DeviceUseStatement),
29634 "DiagnosticReport" => Ok(ResourceType::DiagnosticReport),
29635 "DocumentManifest" => Ok(ResourceType::DocumentManifest),
29636 "DocumentReference" => Ok(ResourceType::DocumentReference),
29637 "EffectEvidenceSynthesis" => Ok(ResourceType::EffectEvidenceSynthesis),
29638 "Encounter" => Ok(ResourceType::Encounter),
29639 "Endpoint" => Ok(ResourceType::Endpoint),
29640 "EnrollmentRequest" => Ok(ResourceType::EnrollmentRequest),
29641 "EnrollmentResponse" => Ok(ResourceType::EnrollmentResponse),
29642 "EpisodeOfCare" => Ok(ResourceType::EpisodeOfCare),
29643 "EventDefinition" => Ok(ResourceType::EventDefinition),
29644 "Evidence" => Ok(ResourceType::Evidence),
29645 "EvidenceVariable" => Ok(ResourceType::EvidenceVariable),
29646 "ExampleScenario" => Ok(ResourceType::ExampleScenario),
29647 "ExplanationOfBenefit" => Ok(ResourceType::ExplanationOfBenefit),
29648 "FamilyMemberHistory" => Ok(ResourceType::FamilyMemberHistory),
29649 "Flag" => Ok(ResourceType::Flag),
29650 "Goal" => Ok(ResourceType::Goal),
29651 "GraphDefinition" => Ok(ResourceType::GraphDefinition),
29652 "Group" => Ok(ResourceType::Group),
29653 "GuidanceResponse" => Ok(ResourceType::GuidanceResponse),
29654 "HealthcareService" => Ok(ResourceType::HealthcareService),
29655 "ImagingStudy" => Ok(ResourceType::ImagingStudy),
29656 "Immunization" => Ok(ResourceType::Immunization),
29657 "ImmunizationEvaluation" => Ok(ResourceType::ImmunizationEvaluation),
29658 "ImmunizationRecommendation" => Ok(ResourceType::ImmunizationRecommendation),
29659 "ImplementationGuide" => Ok(ResourceType::ImplementationGuide),
29660 "InsurancePlan" => Ok(ResourceType::InsurancePlan),
29661 "Invoice" => Ok(ResourceType::Invoice),
29662 "Library" => Ok(ResourceType::Library),
29663 "Linkage" => Ok(ResourceType::Linkage),
29664 "List" => Ok(ResourceType::List),
29665 "Location" => Ok(ResourceType::Location),
29666 "Measure" => Ok(ResourceType::Measure),
29667 "MeasureReport" => Ok(ResourceType::MeasureReport),
29668 "Media" => Ok(ResourceType::Media),
29669 "Medication" => Ok(ResourceType::Medication),
29670 "MedicationAdministration" => Ok(ResourceType::MedicationAdministration),
29671 "MedicationDispense" => Ok(ResourceType::MedicationDispense),
29672 "MedicationKnowledge" => Ok(ResourceType::MedicationKnowledge),
29673 "MedicationRequest" => Ok(ResourceType::MedicationRequest),
29674 "MedicationStatement" => Ok(ResourceType::MedicationStatement),
29675 "MedicinalProduct" => Ok(ResourceType::MedicinalProduct),
29676 "MedicinalProductAuthorization" => Ok(ResourceType::MedicinalProductAuthorization),
29677 "MedicinalProductContraindication" => {
29678 Ok(ResourceType::MedicinalProductContraindication)
29679 }
29680 "MedicinalProductIndication" => Ok(ResourceType::MedicinalProductIndication),
29681 "MedicinalProductIngredient" => Ok(ResourceType::MedicinalProductIngredient),
29682 "MedicinalProductInteraction" => Ok(ResourceType::MedicinalProductInteraction),
29683 "MedicinalProductManufactured" => Ok(ResourceType::MedicinalProductManufactured),
29684 "MedicinalProductPackaged" => Ok(ResourceType::MedicinalProductPackaged),
29685 "MedicinalProductPharmaceutical" => Ok(ResourceType::MedicinalProductPharmaceutical),
29686 "MedicinalProductUndesirableEffect" => {
29687 Ok(ResourceType::MedicinalProductUndesirableEffect)
29688 }
29689 "MessageDefinition" => Ok(ResourceType::MessageDefinition),
29690 "MessageHeader" => Ok(ResourceType::MessageHeader),
29691 "MolecularSequence" => Ok(ResourceType::MolecularSequence),
29692 "NamingSystem" => Ok(ResourceType::NamingSystem),
29693 "NutritionOrder" => Ok(ResourceType::NutritionOrder),
29694 "Observation" => Ok(ResourceType::Observation),
29695 "ObservationDefinition" => Ok(ResourceType::ObservationDefinition),
29696 "OperationDefinition" => Ok(ResourceType::OperationDefinition),
29697 "OperationOutcome" => Ok(ResourceType::OperationOutcome),
29698 "Organization" => Ok(ResourceType::Organization),
29699 "OrganizationAffiliation" => Ok(ResourceType::OrganizationAffiliation),
29700 "Parameters" => Ok(ResourceType::Parameters),
29701 "Patient" => Ok(ResourceType::Patient),
29702 "PaymentNotice" => Ok(ResourceType::PaymentNotice),
29703 "PaymentReconciliation" => Ok(ResourceType::PaymentReconciliation),
29704 "Person" => Ok(ResourceType::Person),
29705 "PlanDefinition" => Ok(ResourceType::PlanDefinition),
29706 "Practitioner" => Ok(ResourceType::Practitioner),
29707 "PractitionerRole" => Ok(ResourceType::PractitionerRole),
29708 "Procedure" => Ok(ResourceType::Procedure),
29709 "Provenance" => Ok(ResourceType::Provenance),
29710 "Questionnaire" => Ok(ResourceType::Questionnaire),
29711 "QuestionnaireResponse" => Ok(ResourceType::QuestionnaireResponse),
29712 "RelatedPerson" => Ok(ResourceType::RelatedPerson),
29713 "RequestGroup" => Ok(ResourceType::RequestGroup),
29714 "ResearchDefinition" => Ok(ResourceType::ResearchDefinition),
29715 "ResearchElementDefinition" => Ok(ResourceType::ResearchElementDefinition),
29716 "ResearchStudy" => Ok(ResourceType::ResearchStudy),
29717 "ResearchSubject" => Ok(ResourceType::ResearchSubject),
29718 "RiskAssessment" => Ok(ResourceType::RiskAssessment),
29719 "RiskEvidenceSynthesis" => Ok(ResourceType::RiskEvidenceSynthesis),
29720 "Schedule" => Ok(ResourceType::Schedule),
29721 "SearchParameter" => Ok(ResourceType::SearchParameter),
29722 "ServiceRequest" => Ok(ResourceType::ServiceRequest),
29723 "Slot" => Ok(ResourceType::Slot),
29724 "Specimen" => Ok(ResourceType::Specimen),
29725 "SpecimenDefinition" => Ok(ResourceType::SpecimenDefinition),
29726 "StructureDefinition" => Ok(ResourceType::StructureDefinition),
29727 "StructureMap" => Ok(ResourceType::StructureMap),
29728 "Subscription" => Ok(ResourceType::Subscription),
29729 "Substance" => Ok(ResourceType::Substance),
29730 "SubstanceNucleicAcid" => Ok(ResourceType::SubstanceNucleicAcid),
29731 "SubstancePolymer" => Ok(ResourceType::SubstancePolymer),
29732 "SubstanceProtein" => Ok(ResourceType::SubstanceProtein),
29733 "SubstanceReferenceInformation" => Ok(ResourceType::SubstanceReferenceInformation),
29734 "SubstanceSourceMaterial" => Ok(ResourceType::SubstanceSourceMaterial),
29735 "SubstanceSpecification" => Ok(ResourceType::SubstanceSpecification),
29736 "SupplyDelivery" => Ok(ResourceType::SupplyDelivery),
29737 "SupplyRequest" => Ok(ResourceType::SupplyRequest),
29738 "Task" => Ok(ResourceType::Task),
29739 "TerminologyCapabilities" => Ok(ResourceType::TerminologyCapabilities),
29740 "TestReport" => Ok(ResourceType::TestReport),
29741 "TestScript" => Ok(ResourceType::TestScript),
29742 "ValueSet" => Ok(ResourceType::ValueSet),
29743 "VerificationResult" => Ok(ResourceType::VerificationResult),
29744 "VisionPrescription" => Ok(ResourceType::VisionPrescription),
29745 _ => Err(ResourceTypeError::Invalid(s.to_string())),
29746 }
29747 }
29748}
29749impl TryFrom<&str> for ResourceType {
29750 type Error = ResourceTypeError;
29751 fn try_from(s: &str) -> Result<Self, Self::Error> {
29752 match s {
29753 "IdentityProvider" => Ok(ResourceType::IdentityProvider),
29754 "Membership" => Ok(ResourceType::Membership),
29755 "Project" => Ok(ResourceType::Project),
29756 "AccessPolicyV2" => Ok(ResourceType::AccessPolicyV2),
29757 "ClientApplication" => Ok(ResourceType::ClientApplication),
29758 "User" => Ok(ResourceType::User),
29759 "Account" => Ok(ResourceType::Account),
29760 "ActivityDefinition" => Ok(ResourceType::ActivityDefinition),
29761 "AdverseEvent" => Ok(ResourceType::AdverseEvent),
29762 "AllergyIntolerance" => Ok(ResourceType::AllergyIntolerance),
29763 "Appointment" => Ok(ResourceType::Appointment),
29764 "AppointmentResponse" => Ok(ResourceType::AppointmentResponse),
29765 "AuditEvent" => Ok(ResourceType::AuditEvent),
29766 "Basic" => Ok(ResourceType::Basic),
29767 "Binary" => Ok(ResourceType::Binary),
29768 "BiologicallyDerivedProduct" => Ok(ResourceType::BiologicallyDerivedProduct),
29769 "BodyStructure" => Ok(ResourceType::BodyStructure),
29770 "Bundle" => Ok(ResourceType::Bundle),
29771 "CapabilityStatement" => Ok(ResourceType::CapabilityStatement),
29772 "CarePlan" => Ok(ResourceType::CarePlan),
29773 "CareTeam" => Ok(ResourceType::CareTeam),
29774 "CatalogEntry" => Ok(ResourceType::CatalogEntry),
29775 "ChargeItem" => Ok(ResourceType::ChargeItem),
29776 "ChargeItemDefinition" => Ok(ResourceType::ChargeItemDefinition),
29777 "Claim" => Ok(ResourceType::Claim),
29778 "ClaimResponse" => Ok(ResourceType::ClaimResponse),
29779 "ClinicalImpression" => Ok(ResourceType::ClinicalImpression),
29780 "CodeSystem" => Ok(ResourceType::CodeSystem),
29781 "Communication" => Ok(ResourceType::Communication),
29782 "CommunicationRequest" => Ok(ResourceType::CommunicationRequest),
29783 "CompartmentDefinition" => Ok(ResourceType::CompartmentDefinition),
29784 "Composition" => Ok(ResourceType::Composition),
29785 "ConceptMap" => Ok(ResourceType::ConceptMap),
29786 "Condition" => Ok(ResourceType::Condition),
29787 "Consent" => Ok(ResourceType::Consent),
29788 "Contract" => Ok(ResourceType::Contract),
29789 "Coverage" => Ok(ResourceType::Coverage),
29790 "CoverageEligibilityRequest" => Ok(ResourceType::CoverageEligibilityRequest),
29791 "CoverageEligibilityResponse" => Ok(ResourceType::CoverageEligibilityResponse),
29792 "DetectedIssue" => Ok(ResourceType::DetectedIssue),
29793 "Device" => Ok(ResourceType::Device),
29794 "DeviceDefinition" => Ok(ResourceType::DeviceDefinition),
29795 "DeviceMetric" => Ok(ResourceType::DeviceMetric),
29796 "DeviceRequest" => Ok(ResourceType::DeviceRequest),
29797 "DeviceUseStatement" => Ok(ResourceType::DeviceUseStatement),
29798 "DiagnosticReport" => Ok(ResourceType::DiagnosticReport),
29799 "DocumentManifest" => Ok(ResourceType::DocumentManifest),
29800 "DocumentReference" => Ok(ResourceType::DocumentReference),
29801 "EffectEvidenceSynthesis" => Ok(ResourceType::EffectEvidenceSynthesis),
29802 "Encounter" => Ok(ResourceType::Encounter),
29803 "Endpoint" => Ok(ResourceType::Endpoint),
29804 "EnrollmentRequest" => Ok(ResourceType::EnrollmentRequest),
29805 "EnrollmentResponse" => Ok(ResourceType::EnrollmentResponse),
29806 "EpisodeOfCare" => Ok(ResourceType::EpisodeOfCare),
29807 "EventDefinition" => Ok(ResourceType::EventDefinition),
29808 "Evidence" => Ok(ResourceType::Evidence),
29809 "EvidenceVariable" => Ok(ResourceType::EvidenceVariable),
29810 "ExampleScenario" => Ok(ResourceType::ExampleScenario),
29811 "ExplanationOfBenefit" => Ok(ResourceType::ExplanationOfBenefit),
29812 "FamilyMemberHistory" => Ok(ResourceType::FamilyMemberHistory),
29813 "Flag" => Ok(ResourceType::Flag),
29814 "Goal" => Ok(ResourceType::Goal),
29815 "GraphDefinition" => Ok(ResourceType::GraphDefinition),
29816 "Group" => Ok(ResourceType::Group),
29817 "GuidanceResponse" => Ok(ResourceType::GuidanceResponse),
29818 "HealthcareService" => Ok(ResourceType::HealthcareService),
29819 "ImagingStudy" => Ok(ResourceType::ImagingStudy),
29820 "Immunization" => Ok(ResourceType::Immunization),
29821 "ImmunizationEvaluation" => Ok(ResourceType::ImmunizationEvaluation),
29822 "ImmunizationRecommendation" => Ok(ResourceType::ImmunizationRecommendation),
29823 "ImplementationGuide" => Ok(ResourceType::ImplementationGuide),
29824 "InsurancePlan" => Ok(ResourceType::InsurancePlan),
29825 "Invoice" => Ok(ResourceType::Invoice),
29826 "Library" => Ok(ResourceType::Library),
29827 "Linkage" => Ok(ResourceType::Linkage),
29828 "List" => Ok(ResourceType::List),
29829 "Location" => Ok(ResourceType::Location),
29830 "Measure" => Ok(ResourceType::Measure),
29831 "MeasureReport" => Ok(ResourceType::MeasureReport),
29832 "Media" => Ok(ResourceType::Media),
29833 "Medication" => Ok(ResourceType::Medication),
29834 "MedicationAdministration" => Ok(ResourceType::MedicationAdministration),
29835 "MedicationDispense" => Ok(ResourceType::MedicationDispense),
29836 "MedicationKnowledge" => Ok(ResourceType::MedicationKnowledge),
29837 "MedicationRequest" => Ok(ResourceType::MedicationRequest),
29838 "MedicationStatement" => Ok(ResourceType::MedicationStatement),
29839 "MedicinalProduct" => Ok(ResourceType::MedicinalProduct),
29840 "MedicinalProductAuthorization" => Ok(ResourceType::MedicinalProductAuthorization),
29841 "MedicinalProductContraindication" => {
29842 Ok(ResourceType::MedicinalProductContraindication)
29843 }
29844 "MedicinalProductIndication" => Ok(ResourceType::MedicinalProductIndication),
29845 "MedicinalProductIngredient" => Ok(ResourceType::MedicinalProductIngredient),
29846 "MedicinalProductInteraction" => Ok(ResourceType::MedicinalProductInteraction),
29847 "MedicinalProductManufactured" => Ok(ResourceType::MedicinalProductManufactured),
29848 "MedicinalProductPackaged" => Ok(ResourceType::MedicinalProductPackaged),
29849 "MedicinalProductPharmaceutical" => Ok(ResourceType::MedicinalProductPharmaceutical),
29850 "MedicinalProductUndesirableEffect" => {
29851 Ok(ResourceType::MedicinalProductUndesirableEffect)
29852 }
29853 "MessageDefinition" => Ok(ResourceType::MessageDefinition),
29854 "MessageHeader" => Ok(ResourceType::MessageHeader),
29855 "MolecularSequence" => Ok(ResourceType::MolecularSequence),
29856 "NamingSystem" => Ok(ResourceType::NamingSystem),
29857 "NutritionOrder" => Ok(ResourceType::NutritionOrder),
29858 "Observation" => Ok(ResourceType::Observation),
29859 "ObservationDefinition" => Ok(ResourceType::ObservationDefinition),
29860 "OperationDefinition" => Ok(ResourceType::OperationDefinition),
29861 "OperationOutcome" => Ok(ResourceType::OperationOutcome),
29862 "Organization" => Ok(ResourceType::Organization),
29863 "OrganizationAffiliation" => Ok(ResourceType::OrganizationAffiliation),
29864 "Parameters" => Ok(ResourceType::Parameters),
29865 "Patient" => Ok(ResourceType::Patient),
29866 "PaymentNotice" => Ok(ResourceType::PaymentNotice),
29867 "PaymentReconciliation" => Ok(ResourceType::PaymentReconciliation),
29868 "Person" => Ok(ResourceType::Person),
29869 "PlanDefinition" => Ok(ResourceType::PlanDefinition),
29870 "Practitioner" => Ok(ResourceType::Practitioner),
29871 "PractitionerRole" => Ok(ResourceType::PractitionerRole),
29872 "Procedure" => Ok(ResourceType::Procedure),
29873 "Provenance" => Ok(ResourceType::Provenance),
29874 "Questionnaire" => Ok(ResourceType::Questionnaire),
29875 "QuestionnaireResponse" => Ok(ResourceType::QuestionnaireResponse),
29876 "RelatedPerson" => Ok(ResourceType::RelatedPerson),
29877 "RequestGroup" => Ok(ResourceType::RequestGroup),
29878 "ResearchDefinition" => Ok(ResourceType::ResearchDefinition),
29879 "ResearchElementDefinition" => Ok(ResourceType::ResearchElementDefinition),
29880 "ResearchStudy" => Ok(ResourceType::ResearchStudy),
29881 "ResearchSubject" => Ok(ResourceType::ResearchSubject),
29882 "RiskAssessment" => Ok(ResourceType::RiskAssessment),
29883 "RiskEvidenceSynthesis" => Ok(ResourceType::RiskEvidenceSynthesis),
29884 "Schedule" => Ok(ResourceType::Schedule),
29885 "SearchParameter" => Ok(ResourceType::SearchParameter),
29886 "ServiceRequest" => Ok(ResourceType::ServiceRequest),
29887 "Slot" => Ok(ResourceType::Slot),
29888 "Specimen" => Ok(ResourceType::Specimen),
29889 "SpecimenDefinition" => Ok(ResourceType::SpecimenDefinition),
29890 "StructureDefinition" => Ok(ResourceType::StructureDefinition),
29891 "StructureMap" => Ok(ResourceType::StructureMap),
29892 "Subscription" => Ok(ResourceType::Subscription),
29893 "Substance" => Ok(ResourceType::Substance),
29894 "SubstanceNucleicAcid" => Ok(ResourceType::SubstanceNucleicAcid),
29895 "SubstancePolymer" => Ok(ResourceType::SubstancePolymer),
29896 "SubstanceProtein" => Ok(ResourceType::SubstanceProtein),
29897 "SubstanceReferenceInformation" => Ok(ResourceType::SubstanceReferenceInformation),
29898 "SubstanceSourceMaterial" => Ok(ResourceType::SubstanceSourceMaterial),
29899 "SubstanceSpecification" => Ok(ResourceType::SubstanceSpecification),
29900 "SupplyDelivery" => Ok(ResourceType::SupplyDelivery),
29901 "SupplyRequest" => Ok(ResourceType::SupplyRequest),
29902 "Task" => Ok(ResourceType::Task),
29903 "TerminologyCapabilities" => Ok(ResourceType::TerminologyCapabilities),
29904 "TestReport" => Ok(ResourceType::TestReport),
29905 "TestScript" => Ok(ResourceType::TestScript),
29906 "ValueSet" => Ok(ResourceType::ValueSet),
29907 "VerificationResult" => Ok(ResourceType::VerificationResult),
29908 "VisionPrescription" => Ok(ResourceType::VisionPrescription),
29909 _ => Err(ResourceTypeError::Invalid(s.to_string())),
29910 }
29911 }
29912}
29913pub static RUST_TO_FHIR_TYPE_MAP: std::sync::LazyLock<
29914 std::collections::HashMap<&'static str, &'static str>,
29915> = std::sync::LazyLock::new(|| {
29916 let mut rust_to_fhir_type_map = std::collections::HashMap::new();
29917 rust_to_fhir_type_map.insert("AccessPolicyV2", "AccessPolicyV2");
29918 rust_to_fhir_type_map.insert("AccessPolicyV2Attribute", "BackboneElement");
29919 rust_to_fhir_type_map.insert("AccessPolicyV2AttributeOperation", "BackboneElement");
29920 rust_to_fhir_type_map.insert("AccessPolicyV2Rule", "BackboneElement");
29921 rust_to_fhir_type_map.insert("AccessPolicyV2RuleCondition", "BackboneElement");
29922 rust_to_fhir_type_map.insert("AccessPolicyV2RuleTarget", "BackboneElement");
29923 rust_to_fhir_type_map.insert("AccessPolicyV2Target", "BackboneElement");
29924 rust_to_fhir_type_map.insert("Account", "Account");
29925 rust_to_fhir_type_map.insert("AccountCoverage", "BackboneElement");
29926 rust_to_fhir_type_map.insert("AccountGuarantor", "BackboneElement");
29927 rust_to_fhir_type_map.insert("ActivityDefinition", "ActivityDefinition");
29928 rust_to_fhir_type_map.insert("ActivityDefinitionDynamicValue", "BackboneElement");
29929 rust_to_fhir_type_map.insert("ActivityDefinitionParticipant", "BackboneElement");
29930 rust_to_fhir_type_map.insert("Address", "Address");
29931 rust_to_fhir_type_map.insert("AdverseEvent", "AdverseEvent");
29932 rust_to_fhir_type_map.insert("AdverseEventSuspectEntity", "BackboneElement");
29933 rust_to_fhir_type_map.insert("AdverseEventSuspectEntityCausality", "BackboneElement");
29934 rust_to_fhir_type_map.insert("Age", "Age");
29935 rust_to_fhir_type_map.insert("AllergyIntolerance", "AllergyIntolerance");
29936 rust_to_fhir_type_map.insert("AllergyIntoleranceReaction", "BackboneElement");
29937 rust_to_fhir_type_map.insert("Annotation", "Annotation");
29938 rust_to_fhir_type_map.insert("Appointment", "Appointment");
29939 rust_to_fhir_type_map.insert("AppointmentParticipant", "BackboneElement");
29940 rust_to_fhir_type_map.insert("AppointmentResponse", "AppointmentResponse");
29941 rust_to_fhir_type_map.insert("Attachment", "Attachment");
29942 rust_to_fhir_type_map.insert("AuditEvent", "AuditEvent");
29943 rust_to_fhir_type_map.insert("AuditEventAgent", "BackboneElement");
29944 rust_to_fhir_type_map.insert("AuditEventAgentNetwork", "BackboneElement");
29945 rust_to_fhir_type_map.insert("AuditEventEntity", "BackboneElement");
29946 rust_to_fhir_type_map.insert("AuditEventEntityDetail", "BackboneElement");
29947 rust_to_fhir_type_map.insert("AuditEventSource", "BackboneElement");
29948 rust_to_fhir_type_map.insert("BackboneElement", "BackboneElement");
29949 rust_to_fhir_type_map.insert("Basic", "Basic");
29950 rust_to_fhir_type_map.insert("Binary", "Binary");
29951 rust_to_fhir_type_map.insert("BiologicallyDerivedProduct", "BiologicallyDerivedProduct");
29952 rust_to_fhir_type_map.insert("BiologicallyDerivedProductCollection", "BackboneElement");
29953 rust_to_fhir_type_map.insert("BiologicallyDerivedProductManipulation", "BackboneElement");
29954 rust_to_fhir_type_map.insert("BiologicallyDerivedProductProcessing", "BackboneElement");
29955 rust_to_fhir_type_map.insert("BiologicallyDerivedProductStorage", "BackboneElement");
29956 rust_to_fhir_type_map.insert("BodyStructure", "BodyStructure");
29957 rust_to_fhir_type_map.insert("Bundle", "Bundle");
29958 rust_to_fhir_type_map.insert("BundleEntry", "BackboneElement");
29959 rust_to_fhir_type_map.insert("BundleEntryRequest", "BackboneElement");
29960 rust_to_fhir_type_map.insert("BundleEntryResponse", "BackboneElement");
29961 rust_to_fhir_type_map.insert("BundleEntrySearch", "BackboneElement");
29962 rust_to_fhir_type_map.insert("BundleLink", "BackboneElement");
29963 rust_to_fhir_type_map.insert("CapabilityStatement", "CapabilityStatement");
29964 rust_to_fhir_type_map.insert("CapabilityStatementDocument", "BackboneElement");
29965 rust_to_fhir_type_map.insert("CapabilityStatementImplementation", "BackboneElement");
29966 rust_to_fhir_type_map.insert("CapabilityStatementMessaging", "BackboneElement");
29967 rust_to_fhir_type_map.insert("CapabilityStatementMessagingEndpoint", "BackboneElement");
29968 rust_to_fhir_type_map.insert(
29969 "CapabilityStatementMessagingSupportedMessage",
29970 "BackboneElement",
29971 );
29972 rust_to_fhir_type_map.insert("CapabilityStatementRest", "BackboneElement");
29973 rust_to_fhir_type_map.insert("CapabilityStatementRestInteraction", "BackboneElement");
29974 rust_to_fhir_type_map.insert("CapabilityStatementRestResource", "BackboneElement");
29975 rust_to_fhir_type_map.insert(
29976 "CapabilityStatementRestResourceInteraction",
29977 "BackboneElement",
29978 );
29979 rust_to_fhir_type_map.insert(
29980 "CapabilityStatementRestResourceOperation",
29981 "BackboneElement",
29982 );
29983 rust_to_fhir_type_map.insert(
29984 "CapabilityStatementRestResourceSearchParam",
29985 "BackboneElement",
29986 );
29987 rust_to_fhir_type_map.insert("CapabilityStatementRestSecurity", "BackboneElement");
29988 rust_to_fhir_type_map.insert("CapabilityStatementSoftware", "BackboneElement");
29989 rust_to_fhir_type_map.insert("CarePlan", "CarePlan");
29990 rust_to_fhir_type_map.insert("CarePlanActivity", "BackboneElement");
29991 rust_to_fhir_type_map.insert("CarePlanActivityDetail", "BackboneElement");
29992 rust_to_fhir_type_map.insert("CareTeam", "CareTeam");
29993 rust_to_fhir_type_map.insert("CareTeamParticipant", "BackboneElement");
29994 rust_to_fhir_type_map.insert("CatalogEntry", "CatalogEntry");
29995 rust_to_fhir_type_map.insert("CatalogEntryRelatedEntry", "BackboneElement");
29996 rust_to_fhir_type_map.insert("ChargeItem", "ChargeItem");
29997 rust_to_fhir_type_map.insert("ChargeItemDefinition", "ChargeItemDefinition");
29998 rust_to_fhir_type_map.insert("ChargeItemDefinitionApplicability", "BackboneElement");
29999 rust_to_fhir_type_map.insert("ChargeItemDefinitionPropertyGroup", "BackboneElement");
30000 rust_to_fhir_type_map.insert(
30001 "ChargeItemDefinitionPropertyGroupPriceComponent",
30002 "BackboneElement",
30003 );
30004 rust_to_fhir_type_map.insert("ChargeItemPerformer", "BackboneElement");
30005 rust_to_fhir_type_map.insert("Claim", "Claim");
30006 rust_to_fhir_type_map.insert("ClaimAccident", "BackboneElement");
30007 rust_to_fhir_type_map.insert("ClaimCareTeam", "BackboneElement");
30008 rust_to_fhir_type_map.insert("ClaimDiagnosis", "BackboneElement");
30009 rust_to_fhir_type_map.insert("ClaimInsurance", "BackboneElement");
30010 rust_to_fhir_type_map.insert("ClaimItem", "BackboneElement");
30011 rust_to_fhir_type_map.insert("ClaimItemDetail", "BackboneElement");
30012 rust_to_fhir_type_map.insert("ClaimItemDetailSubDetail", "BackboneElement");
30013 rust_to_fhir_type_map.insert("ClaimPayee", "BackboneElement");
30014 rust_to_fhir_type_map.insert("ClaimProcedure", "BackboneElement");
30015 rust_to_fhir_type_map.insert("ClaimRelated", "BackboneElement");
30016 rust_to_fhir_type_map.insert("ClaimResponse", "ClaimResponse");
30017 rust_to_fhir_type_map.insert("ClaimResponseAddItem", "BackboneElement");
30018 rust_to_fhir_type_map.insert("ClaimResponseAddItemDetail", "BackboneElement");
30019 rust_to_fhir_type_map.insert("ClaimResponseAddItemDetailSubDetail", "BackboneElement");
30020 rust_to_fhir_type_map.insert("ClaimResponseError", "BackboneElement");
30021 rust_to_fhir_type_map.insert("ClaimResponseInsurance", "BackboneElement");
30022 rust_to_fhir_type_map.insert("ClaimResponseItem", "BackboneElement");
30023 rust_to_fhir_type_map.insert("ClaimResponseItemAdjudication", "BackboneElement");
30024 rust_to_fhir_type_map.insert("ClaimResponseItemDetail", "BackboneElement");
30025 rust_to_fhir_type_map.insert("ClaimResponseItemDetailSubDetail", "BackboneElement");
30026 rust_to_fhir_type_map.insert("ClaimResponsePayment", "BackboneElement");
30027 rust_to_fhir_type_map.insert("ClaimResponseProcessNote", "BackboneElement");
30028 rust_to_fhir_type_map.insert("ClaimResponseTotal", "BackboneElement");
30029 rust_to_fhir_type_map.insert("ClaimSupportingInfo", "BackboneElement");
30030 rust_to_fhir_type_map.insert("ClientApplication", "ClientApplication");
30031 rust_to_fhir_type_map.insert("ClinicalImpression", "ClinicalImpression");
30032 rust_to_fhir_type_map.insert("ClinicalImpressionFinding", "BackboneElement");
30033 rust_to_fhir_type_map.insert("ClinicalImpressionInvestigation", "BackboneElement");
30034 rust_to_fhir_type_map.insert("CodeSystem", "CodeSystem");
30035 rust_to_fhir_type_map.insert("CodeSystemConcept", "BackboneElement");
30036 rust_to_fhir_type_map.insert("CodeSystemConceptDesignation", "BackboneElement");
30037 rust_to_fhir_type_map.insert("CodeSystemConceptProperty", "BackboneElement");
30038 rust_to_fhir_type_map.insert("CodeSystemFilter", "BackboneElement");
30039 rust_to_fhir_type_map.insert("CodeSystemProperty", "BackboneElement");
30040 rust_to_fhir_type_map.insert("CodeableConcept", "CodeableConcept");
30041 rust_to_fhir_type_map.insert("Coding", "Coding");
30042 rust_to_fhir_type_map.insert("Communication", "Communication");
30043 rust_to_fhir_type_map.insert("CommunicationPayload", "BackboneElement");
30044 rust_to_fhir_type_map.insert("CommunicationRequest", "CommunicationRequest");
30045 rust_to_fhir_type_map.insert("CommunicationRequestPayload", "BackboneElement");
30046 rust_to_fhir_type_map.insert("CompartmentDefinition", "CompartmentDefinition");
30047 rust_to_fhir_type_map.insert("CompartmentDefinitionResource", "BackboneElement");
30048 rust_to_fhir_type_map.insert("Composition", "Composition");
30049 rust_to_fhir_type_map.insert("CompositionAttester", "BackboneElement");
30050 rust_to_fhir_type_map.insert("CompositionEvent", "BackboneElement");
30051 rust_to_fhir_type_map.insert("CompositionRelatesTo", "BackboneElement");
30052 rust_to_fhir_type_map.insert("CompositionSection", "BackboneElement");
30053 rust_to_fhir_type_map.insert("ConceptMap", "ConceptMap");
30054 rust_to_fhir_type_map.insert("ConceptMapGroup", "BackboneElement");
30055 rust_to_fhir_type_map.insert("ConceptMapGroupElement", "BackboneElement");
30056 rust_to_fhir_type_map.insert("ConceptMapGroupElementTarget", "BackboneElement");
30057 rust_to_fhir_type_map.insert("ConceptMapGroupElementTargetDependsOn", "BackboneElement");
30058 rust_to_fhir_type_map.insert("ConceptMapGroupUnmapped", "BackboneElement");
30059 rust_to_fhir_type_map.insert("Condition", "Condition");
30060 rust_to_fhir_type_map.insert("ConditionEvidence", "BackboneElement");
30061 rust_to_fhir_type_map.insert("ConditionStage", "BackboneElement");
30062 rust_to_fhir_type_map.insert("Consent", "Consent");
30063 rust_to_fhir_type_map.insert("ConsentPolicy", "BackboneElement");
30064 rust_to_fhir_type_map.insert("ConsentProvision", "BackboneElement");
30065 rust_to_fhir_type_map.insert("ConsentProvisionActor", "BackboneElement");
30066 rust_to_fhir_type_map.insert("ConsentProvisionData", "BackboneElement");
30067 rust_to_fhir_type_map.insert("ConsentVerification", "BackboneElement");
30068 rust_to_fhir_type_map.insert("ContactDetail", "ContactDetail");
30069 rust_to_fhir_type_map.insert("ContactPoint", "ContactPoint");
30070 rust_to_fhir_type_map.insert("Contract", "Contract");
30071 rust_to_fhir_type_map.insert("ContractContentDefinition", "BackboneElement");
30072 rust_to_fhir_type_map.insert("ContractFriendly", "BackboneElement");
30073 rust_to_fhir_type_map.insert("ContractLegal", "BackboneElement");
30074 rust_to_fhir_type_map.insert("ContractRule", "BackboneElement");
30075 rust_to_fhir_type_map.insert("ContractSigner", "BackboneElement");
30076 rust_to_fhir_type_map.insert("ContractTerm", "BackboneElement");
30077 rust_to_fhir_type_map.insert("ContractTermAction", "BackboneElement");
30078 rust_to_fhir_type_map.insert("ContractTermActionSubject", "BackboneElement");
30079 rust_to_fhir_type_map.insert("ContractTermAsset", "BackboneElement");
30080 rust_to_fhir_type_map.insert("ContractTermAssetContext", "BackboneElement");
30081 rust_to_fhir_type_map.insert("ContractTermAssetValuedItem", "BackboneElement");
30082 rust_to_fhir_type_map.insert("ContractTermOffer", "BackboneElement");
30083 rust_to_fhir_type_map.insert("ContractTermOfferAnswer", "BackboneElement");
30084 rust_to_fhir_type_map.insert("ContractTermOfferParty", "BackboneElement");
30085 rust_to_fhir_type_map.insert("ContractTermSecurityLabel", "BackboneElement");
30086 rust_to_fhir_type_map.insert("Contributor", "Contributor");
30087 rust_to_fhir_type_map.insert("Count", "Count");
30088 rust_to_fhir_type_map.insert("Coverage", "Coverage");
30089 rust_to_fhir_type_map.insert("CoverageClass", "BackboneElement");
30090 rust_to_fhir_type_map.insert("CoverageCostToBeneficiary", "BackboneElement");
30091 rust_to_fhir_type_map.insert("CoverageCostToBeneficiaryException", "BackboneElement");
30092 rust_to_fhir_type_map.insert("CoverageEligibilityRequest", "CoverageEligibilityRequest");
30093 rust_to_fhir_type_map.insert("CoverageEligibilityRequestInsurance", "BackboneElement");
30094 rust_to_fhir_type_map.insert("CoverageEligibilityRequestItem", "BackboneElement");
30095 rust_to_fhir_type_map.insert("CoverageEligibilityRequestItemDiagnosis", "BackboneElement");
30096 rust_to_fhir_type_map.insert(
30097 "CoverageEligibilityRequestSupportingInfo",
30098 "BackboneElement",
30099 );
30100 rust_to_fhir_type_map.insert("CoverageEligibilityResponse", "CoverageEligibilityResponse");
30101 rust_to_fhir_type_map.insert("CoverageEligibilityResponseError", "BackboneElement");
30102 rust_to_fhir_type_map.insert("CoverageEligibilityResponseInsurance", "BackboneElement");
30103 rust_to_fhir_type_map.insert(
30104 "CoverageEligibilityResponseInsuranceItem",
30105 "BackboneElement",
30106 );
30107 rust_to_fhir_type_map.insert(
30108 "CoverageEligibilityResponseInsuranceItemBenefit",
30109 "BackboneElement",
30110 );
30111 rust_to_fhir_type_map.insert("DataRequirement", "DataRequirement");
30112 rust_to_fhir_type_map.insert("DataRequirementCodeFilter", "Element");
30113 rust_to_fhir_type_map.insert("DataRequirementDateFilter", "Element");
30114 rust_to_fhir_type_map.insert("DataRequirementSort", "Element");
30115 rust_to_fhir_type_map.insert("DetectedIssue", "DetectedIssue");
30116 rust_to_fhir_type_map.insert("DetectedIssueEvidence", "BackboneElement");
30117 rust_to_fhir_type_map.insert("DetectedIssueMitigation", "BackboneElement");
30118 rust_to_fhir_type_map.insert("Device", "Device");
30119 rust_to_fhir_type_map.insert("DeviceDefinition", "DeviceDefinition");
30120 rust_to_fhir_type_map.insert("DeviceDefinitionCapability", "BackboneElement");
30121 rust_to_fhir_type_map.insert("DeviceDefinitionDeviceName", "BackboneElement");
30122 rust_to_fhir_type_map.insert("DeviceDefinitionMaterial", "BackboneElement");
30123 rust_to_fhir_type_map.insert("DeviceDefinitionProperty", "BackboneElement");
30124 rust_to_fhir_type_map.insert("DeviceDefinitionSpecialization", "BackboneElement");
30125 rust_to_fhir_type_map.insert("DeviceDefinitionUdiDeviceIdentifier", "BackboneElement");
30126 rust_to_fhir_type_map.insert("DeviceDeviceName", "BackboneElement");
30127 rust_to_fhir_type_map.insert("DeviceMetric", "DeviceMetric");
30128 rust_to_fhir_type_map.insert("DeviceMetricCalibration", "BackboneElement");
30129 rust_to_fhir_type_map.insert("DeviceProperty", "BackboneElement");
30130 rust_to_fhir_type_map.insert("DeviceRequest", "DeviceRequest");
30131 rust_to_fhir_type_map.insert("DeviceRequestParameter", "BackboneElement");
30132 rust_to_fhir_type_map.insert("DeviceSpecialization", "BackboneElement");
30133 rust_to_fhir_type_map.insert("DeviceUdiCarrier", "BackboneElement");
30134 rust_to_fhir_type_map.insert("DeviceUseStatement", "DeviceUseStatement");
30135 rust_to_fhir_type_map.insert("DeviceVersion", "BackboneElement");
30136 rust_to_fhir_type_map.insert("DiagnosticReport", "DiagnosticReport");
30137 rust_to_fhir_type_map.insert("DiagnosticReportMedia", "BackboneElement");
30138 rust_to_fhir_type_map.insert("Distance", "Distance");
30139 rust_to_fhir_type_map.insert("DocumentManifest", "DocumentManifest");
30140 rust_to_fhir_type_map.insert("DocumentManifestRelated", "BackboneElement");
30141 rust_to_fhir_type_map.insert("DocumentReference", "DocumentReference");
30142 rust_to_fhir_type_map.insert("DocumentReferenceContent", "BackboneElement");
30143 rust_to_fhir_type_map.insert("DocumentReferenceContext", "BackboneElement");
30144 rust_to_fhir_type_map.insert("DocumentReferenceRelatesTo", "BackboneElement");
30145 rust_to_fhir_type_map.insert("Dosage", "Dosage");
30146 rust_to_fhir_type_map.insert("DosageDoseAndRate", "Element");
30147 rust_to_fhir_type_map.insert("Duration", "Duration");
30148 rust_to_fhir_type_map.insert("EffectEvidenceSynthesis", "EffectEvidenceSynthesis");
30149 rust_to_fhir_type_map.insert("EffectEvidenceSynthesisCertainty", "BackboneElement");
30150 rust_to_fhir_type_map.insert(
30151 "EffectEvidenceSynthesisCertaintyCertaintySubcomponent",
30152 "BackboneElement",
30153 );
30154 rust_to_fhir_type_map.insert("EffectEvidenceSynthesisEffectEstimate", "BackboneElement");
30155 rust_to_fhir_type_map.insert(
30156 "EffectEvidenceSynthesisEffectEstimatePrecisionEstimate",
30157 "BackboneElement",
30158 );
30159 rust_to_fhir_type_map.insert(
30160 "EffectEvidenceSynthesisResultsByExposure",
30161 "BackboneElement",
30162 );
30163 rust_to_fhir_type_map.insert("EffectEvidenceSynthesisSampleSize", "BackboneElement");
30164 rust_to_fhir_type_map.insert("Element", "Element");
30165 rust_to_fhir_type_map.insert("ElementDefinition", "ElementDefinition");
30166 rust_to_fhir_type_map.insert("ElementDefinitionBase", "Element");
30167 rust_to_fhir_type_map.insert("ElementDefinitionBinding", "Element");
30168 rust_to_fhir_type_map.insert("ElementDefinitionConstraint", "Element");
30169 rust_to_fhir_type_map.insert("ElementDefinitionExample", "Element");
30170 rust_to_fhir_type_map.insert("ElementDefinitionMapping", "Element");
30171 rust_to_fhir_type_map.insert("ElementDefinitionSlicing", "Element");
30172 rust_to_fhir_type_map.insert("ElementDefinitionSlicingDiscriminator", "Element");
30173 rust_to_fhir_type_map.insert("ElementDefinitionType", "Element");
30174 rust_to_fhir_type_map.insert("Encounter", "Encounter");
30175 rust_to_fhir_type_map.insert("EncounterClassHistory", "BackboneElement");
30176 rust_to_fhir_type_map.insert("EncounterDiagnosis", "BackboneElement");
30177 rust_to_fhir_type_map.insert("EncounterHospitalization", "BackboneElement");
30178 rust_to_fhir_type_map.insert("EncounterLocation", "BackboneElement");
30179 rust_to_fhir_type_map.insert("EncounterParticipant", "BackboneElement");
30180 rust_to_fhir_type_map.insert("EncounterStatusHistory", "BackboneElement");
30181 rust_to_fhir_type_map.insert("Endpoint", "Endpoint");
30182 rust_to_fhir_type_map.insert("EnrollmentRequest", "EnrollmentRequest");
30183 rust_to_fhir_type_map.insert("EnrollmentResponse", "EnrollmentResponse");
30184 rust_to_fhir_type_map.insert("EpisodeOfCare", "EpisodeOfCare");
30185 rust_to_fhir_type_map.insert("EpisodeOfCareDiagnosis", "BackboneElement");
30186 rust_to_fhir_type_map.insert("EpisodeOfCareStatusHistory", "BackboneElement");
30187 rust_to_fhir_type_map.insert("EventDefinition", "EventDefinition");
30188 rust_to_fhir_type_map.insert("Evidence", "Evidence");
30189 rust_to_fhir_type_map.insert("EvidenceVariable", "EvidenceVariable");
30190 rust_to_fhir_type_map.insert("EvidenceVariableCharacteristic", "BackboneElement");
30191 rust_to_fhir_type_map.insert("ExampleScenario", "ExampleScenario");
30192 rust_to_fhir_type_map.insert("ExampleScenarioActor", "BackboneElement");
30193 rust_to_fhir_type_map.insert("ExampleScenarioInstance", "BackboneElement");
30194 rust_to_fhir_type_map.insert(
30195 "ExampleScenarioInstanceContainedInstance",
30196 "BackboneElement",
30197 );
30198 rust_to_fhir_type_map.insert("ExampleScenarioInstanceVersion", "BackboneElement");
30199 rust_to_fhir_type_map.insert("ExampleScenarioProcess", "BackboneElement");
30200 rust_to_fhir_type_map.insert("ExampleScenarioProcessStep", "BackboneElement");
30201 rust_to_fhir_type_map.insert("ExampleScenarioProcessStepAlternative", "BackboneElement");
30202 rust_to_fhir_type_map.insert("ExampleScenarioProcessStepOperation", "BackboneElement");
30203 rust_to_fhir_type_map.insert("ExplanationOfBenefit", "ExplanationOfBenefit");
30204 rust_to_fhir_type_map.insert("ExplanationOfBenefitAccident", "BackboneElement");
30205 rust_to_fhir_type_map.insert("ExplanationOfBenefitAddItem", "BackboneElement");
30206 rust_to_fhir_type_map.insert("ExplanationOfBenefitAddItemDetail", "BackboneElement");
30207 rust_to_fhir_type_map.insert(
30208 "ExplanationOfBenefitAddItemDetailSubDetail",
30209 "BackboneElement",
30210 );
30211 rust_to_fhir_type_map.insert("ExplanationOfBenefitBenefitBalance", "BackboneElement");
30212 rust_to_fhir_type_map.insert(
30213 "ExplanationOfBenefitBenefitBalanceFinancial",
30214 "BackboneElement",
30215 );
30216 rust_to_fhir_type_map.insert("ExplanationOfBenefitCareTeam", "BackboneElement");
30217 rust_to_fhir_type_map.insert("ExplanationOfBenefitDiagnosis", "BackboneElement");
30218 rust_to_fhir_type_map.insert("ExplanationOfBenefitInsurance", "BackboneElement");
30219 rust_to_fhir_type_map.insert("ExplanationOfBenefitItem", "BackboneElement");
30220 rust_to_fhir_type_map.insert("ExplanationOfBenefitItemAdjudication", "BackboneElement");
30221 rust_to_fhir_type_map.insert("ExplanationOfBenefitItemDetail", "BackboneElement");
30222 rust_to_fhir_type_map.insert("ExplanationOfBenefitItemDetailSubDetail", "BackboneElement");
30223 rust_to_fhir_type_map.insert("ExplanationOfBenefitPayee", "BackboneElement");
30224 rust_to_fhir_type_map.insert("ExplanationOfBenefitPayment", "BackboneElement");
30225 rust_to_fhir_type_map.insert("ExplanationOfBenefitProcedure", "BackboneElement");
30226 rust_to_fhir_type_map.insert("ExplanationOfBenefitProcessNote", "BackboneElement");
30227 rust_to_fhir_type_map.insert("ExplanationOfBenefitRelated", "BackboneElement");
30228 rust_to_fhir_type_map.insert("ExplanationOfBenefitSupportingInfo", "BackboneElement");
30229 rust_to_fhir_type_map.insert("ExplanationOfBenefitTotal", "BackboneElement");
30230 rust_to_fhir_type_map.insert("Expression", "Expression");
30231 rust_to_fhir_type_map.insert("Extension", "Extension");
30232 rust_to_fhir_type_map.insert("FHIRBase64Binary", "base64Binary");
30233 rust_to_fhir_type_map.insert("FHIRBoolean", "boolean");
30234 rust_to_fhir_type_map.insert("FHIRCanonical", "canonical");
30235 rust_to_fhir_type_map.insert("FHIRCode", "code");
30236 rust_to_fhir_type_map.insert("FHIRDate", "date");
30237 rust_to_fhir_type_map.insert("FHIRDateTime", "dateTime");
30238 rust_to_fhir_type_map.insert("FHIRDecimal", "decimal");
30239 rust_to_fhir_type_map.insert("FHIRId", "id");
30240 rust_to_fhir_type_map.insert("FHIRInstant", "instant");
30241 rust_to_fhir_type_map.insert("FHIRInteger", "integer");
30242 rust_to_fhir_type_map.insert("FHIRMarkdown", "markdown");
30243 rust_to_fhir_type_map.insert("FHIROid", "oid");
30244 rust_to_fhir_type_map.insert("FHIRPositiveInt", "positiveInt");
30245 rust_to_fhir_type_map.insert("FHIRString", "string");
30246 rust_to_fhir_type_map.insert("FHIRTime", "time");
30247 rust_to_fhir_type_map.insert("FHIRUnsignedInt", "unsignedInt");
30248 rust_to_fhir_type_map.insert("FHIRUri", "uri");
30249 rust_to_fhir_type_map.insert("FHIRUrl", "url");
30250 rust_to_fhir_type_map.insert("FHIRUuid", "uuid");
30251 rust_to_fhir_type_map.insert("FHIRXhtml", "xhtml");
30252 rust_to_fhir_type_map.insert("FamilyMemberHistory", "FamilyMemberHistory");
30253 rust_to_fhir_type_map.insert("FamilyMemberHistoryCondition", "BackboneElement");
30254 rust_to_fhir_type_map.insert("Flag", "Flag");
30255 rust_to_fhir_type_map.insert("Goal", "Goal");
30256 rust_to_fhir_type_map.insert("GoalTarget", "BackboneElement");
30257 rust_to_fhir_type_map.insert("GraphDefinition", "GraphDefinition");
30258 rust_to_fhir_type_map.insert("GraphDefinitionLink", "BackboneElement");
30259 rust_to_fhir_type_map.insert("GraphDefinitionLinkTarget", "BackboneElement");
30260 rust_to_fhir_type_map.insert("GraphDefinitionLinkTargetCompartment", "BackboneElement");
30261 rust_to_fhir_type_map.insert("Group", "Group");
30262 rust_to_fhir_type_map.insert("GroupCharacteristic", "BackboneElement");
30263 rust_to_fhir_type_map.insert("GroupMember", "BackboneElement");
30264 rust_to_fhir_type_map.insert("GuidanceResponse", "GuidanceResponse");
30265 rust_to_fhir_type_map.insert("HealthcareService", "HealthcareService");
30266 rust_to_fhir_type_map.insert("HealthcareServiceAvailableTime", "BackboneElement");
30267 rust_to_fhir_type_map.insert("HealthcareServiceEligibility", "BackboneElement");
30268 rust_to_fhir_type_map.insert("HealthcareServiceNotAvailable", "BackboneElement");
30269 rust_to_fhir_type_map.insert("HumanName", "HumanName");
30270 rust_to_fhir_type_map.insert("Identifier", "Identifier");
30271 rust_to_fhir_type_map.insert("IdentityProvider", "IdentityProvider");
30272 rust_to_fhir_type_map.insert("IdentityProviderOidc", "BackboneElement");
30273 rust_to_fhir_type_map.insert("IdentityProviderOidcClient", "BackboneElement");
30274 rust_to_fhir_type_map.insert("IdentityProviderOidcPkce", "BackboneElement");
30275 rust_to_fhir_type_map.insert("ImagingStudy", "ImagingStudy");
30276 rust_to_fhir_type_map.insert("ImagingStudySeries", "BackboneElement");
30277 rust_to_fhir_type_map.insert("ImagingStudySeriesInstance", "BackboneElement");
30278 rust_to_fhir_type_map.insert("ImagingStudySeriesPerformer", "BackboneElement");
30279 rust_to_fhir_type_map.insert("Immunization", "Immunization");
30280 rust_to_fhir_type_map.insert("ImmunizationEducation", "BackboneElement");
30281 rust_to_fhir_type_map.insert("ImmunizationEvaluation", "ImmunizationEvaluation");
30282 rust_to_fhir_type_map.insert("ImmunizationPerformer", "BackboneElement");
30283 rust_to_fhir_type_map.insert("ImmunizationProtocolApplied", "BackboneElement");
30284 rust_to_fhir_type_map.insert("ImmunizationReaction", "BackboneElement");
30285 rust_to_fhir_type_map.insert("ImmunizationRecommendation", "ImmunizationRecommendation");
30286 rust_to_fhir_type_map.insert(
30287 "ImmunizationRecommendationRecommendation",
30288 "BackboneElement",
30289 );
30290 rust_to_fhir_type_map.insert(
30291 "ImmunizationRecommendationRecommendationDateCriterion",
30292 "BackboneElement",
30293 );
30294 rust_to_fhir_type_map.insert("ImplementationGuide", "ImplementationGuide");
30295 rust_to_fhir_type_map.insert("ImplementationGuideDefinition", "BackboneElement");
30296 rust_to_fhir_type_map.insert("ImplementationGuideDefinitionGrouping", "BackboneElement");
30297 rust_to_fhir_type_map.insert("ImplementationGuideDefinitionPage", "BackboneElement");
30298 rust_to_fhir_type_map.insert("ImplementationGuideDefinitionParameter", "BackboneElement");
30299 rust_to_fhir_type_map.insert("ImplementationGuideDefinitionResource", "BackboneElement");
30300 rust_to_fhir_type_map.insert("ImplementationGuideDefinitionTemplate", "BackboneElement");
30301 rust_to_fhir_type_map.insert("ImplementationGuideDependsOn", "BackboneElement");
30302 rust_to_fhir_type_map.insert("ImplementationGuideGlobal", "BackboneElement");
30303 rust_to_fhir_type_map.insert("ImplementationGuideManifest", "BackboneElement");
30304 rust_to_fhir_type_map.insert("ImplementationGuideManifestPage", "BackboneElement");
30305 rust_to_fhir_type_map.insert("ImplementationGuideManifestResource", "BackboneElement");
30306 rust_to_fhir_type_map.insert("InsurancePlan", "InsurancePlan");
30307 rust_to_fhir_type_map.insert("InsurancePlanContact", "BackboneElement");
30308 rust_to_fhir_type_map.insert("InsurancePlanCoverage", "BackboneElement");
30309 rust_to_fhir_type_map.insert("InsurancePlanCoverageBenefit", "BackboneElement");
30310 rust_to_fhir_type_map.insert("InsurancePlanCoverageBenefitLimit", "BackboneElement");
30311 rust_to_fhir_type_map.insert("InsurancePlanPlan", "BackboneElement");
30312 rust_to_fhir_type_map.insert("InsurancePlanPlanGeneralCost", "BackboneElement");
30313 rust_to_fhir_type_map.insert("InsurancePlanPlanSpecificCost", "BackboneElement");
30314 rust_to_fhir_type_map.insert("InsurancePlanPlanSpecificCostBenefit", "BackboneElement");
30315 rust_to_fhir_type_map.insert(
30316 "InsurancePlanPlanSpecificCostBenefitCost",
30317 "BackboneElement",
30318 );
30319 rust_to_fhir_type_map.insert("Invoice", "Invoice");
30320 rust_to_fhir_type_map.insert("InvoiceLineItem", "BackboneElement");
30321 rust_to_fhir_type_map.insert("InvoiceLineItemPriceComponent", "BackboneElement");
30322 rust_to_fhir_type_map.insert("InvoiceParticipant", "BackboneElement");
30323 rust_to_fhir_type_map.insert("Library", "Library");
30324 rust_to_fhir_type_map.insert("Linkage", "Linkage");
30325 rust_to_fhir_type_map.insert("LinkageItem", "BackboneElement");
30326 rust_to_fhir_type_map.insert("List", "List");
30327 rust_to_fhir_type_map.insert("ListEntry", "BackboneElement");
30328 rust_to_fhir_type_map.insert("Location", "Location");
30329 rust_to_fhir_type_map.insert("LocationHoursOfOperation", "BackboneElement");
30330 rust_to_fhir_type_map.insert("LocationPosition", "BackboneElement");
30331 rust_to_fhir_type_map.insert("MarketingStatus", "MarketingStatus");
30332 rust_to_fhir_type_map.insert("Measure", "Measure");
30333 rust_to_fhir_type_map.insert("MeasureGroup", "BackboneElement");
30334 rust_to_fhir_type_map.insert("MeasureGroupPopulation", "BackboneElement");
30335 rust_to_fhir_type_map.insert("MeasureGroupStratifier", "BackboneElement");
30336 rust_to_fhir_type_map.insert("MeasureGroupStratifierComponent", "BackboneElement");
30337 rust_to_fhir_type_map.insert("MeasureReport", "MeasureReport");
30338 rust_to_fhir_type_map.insert("MeasureReportGroup", "BackboneElement");
30339 rust_to_fhir_type_map.insert("MeasureReportGroupPopulation", "BackboneElement");
30340 rust_to_fhir_type_map.insert("MeasureReportGroupStratifier", "BackboneElement");
30341 rust_to_fhir_type_map.insert("MeasureReportGroupStratifierStratum", "BackboneElement");
30342 rust_to_fhir_type_map.insert(
30343 "MeasureReportGroupStratifierStratumComponent",
30344 "BackboneElement",
30345 );
30346 rust_to_fhir_type_map.insert(
30347 "MeasureReportGroupStratifierStratumPopulation",
30348 "BackboneElement",
30349 );
30350 rust_to_fhir_type_map.insert("MeasureSupplementalData", "BackboneElement");
30351 rust_to_fhir_type_map.insert("Media", "Media");
30352 rust_to_fhir_type_map.insert("Medication", "Medication");
30353 rust_to_fhir_type_map.insert("MedicationAdministration", "MedicationAdministration");
30354 rust_to_fhir_type_map.insert("MedicationAdministrationDosage", "BackboneElement");
30355 rust_to_fhir_type_map.insert("MedicationAdministrationPerformer", "BackboneElement");
30356 rust_to_fhir_type_map.insert("MedicationBatch", "BackboneElement");
30357 rust_to_fhir_type_map.insert("MedicationDispense", "MedicationDispense");
30358 rust_to_fhir_type_map.insert("MedicationDispensePerformer", "BackboneElement");
30359 rust_to_fhir_type_map.insert("MedicationDispenseSubstitution", "BackboneElement");
30360 rust_to_fhir_type_map.insert("MedicationIngredient", "BackboneElement");
30361 rust_to_fhir_type_map.insert("MedicationKnowledge", "MedicationKnowledge");
30362 rust_to_fhir_type_map.insert(
30363 "MedicationKnowledgeAdministrationGuidelines",
30364 "BackboneElement",
30365 );
30366 rust_to_fhir_type_map.insert(
30367 "MedicationKnowledgeAdministrationGuidelinesDosage",
30368 "BackboneElement",
30369 );
30370 rust_to_fhir_type_map.insert(
30371 "MedicationKnowledgeAdministrationGuidelinesPatientCharacteristics",
30372 "BackboneElement",
30373 );
30374 rust_to_fhir_type_map.insert("MedicationKnowledgeCost", "BackboneElement");
30375 rust_to_fhir_type_map.insert("MedicationKnowledgeDrugCharacteristic", "BackboneElement");
30376 rust_to_fhir_type_map.insert("MedicationKnowledgeIngredient", "BackboneElement");
30377 rust_to_fhir_type_map.insert("MedicationKnowledgeKinetics", "BackboneElement");
30378 rust_to_fhir_type_map.insert(
30379 "MedicationKnowledgeMedicineClassification",
30380 "BackboneElement",
30381 );
30382 rust_to_fhir_type_map.insert("MedicationKnowledgeMonitoringProgram", "BackboneElement");
30383 rust_to_fhir_type_map.insert("MedicationKnowledgeMonograph", "BackboneElement");
30384 rust_to_fhir_type_map.insert("MedicationKnowledgePackaging", "BackboneElement");
30385 rust_to_fhir_type_map.insert("MedicationKnowledgeRegulatory", "BackboneElement");
30386 rust_to_fhir_type_map.insert(
30387 "MedicationKnowledgeRegulatoryMaxDispense",
30388 "BackboneElement",
30389 );
30390 rust_to_fhir_type_map.insert("MedicationKnowledgeRegulatorySchedule", "BackboneElement");
30391 rust_to_fhir_type_map.insert(
30392 "MedicationKnowledgeRegulatorySubstitution",
30393 "BackboneElement",
30394 );
30395 rust_to_fhir_type_map.insert(
30396 "MedicationKnowledgeRelatedMedicationKnowledge",
30397 "BackboneElement",
30398 );
30399 rust_to_fhir_type_map.insert("MedicationRequest", "MedicationRequest");
30400 rust_to_fhir_type_map.insert("MedicationRequestDispenseRequest", "BackboneElement");
30401 rust_to_fhir_type_map.insert(
30402 "MedicationRequestDispenseRequestInitialFill",
30403 "BackboneElement",
30404 );
30405 rust_to_fhir_type_map.insert("MedicationRequestSubstitution", "BackboneElement");
30406 rust_to_fhir_type_map.insert("MedicationStatement", "MedicationStatement");
30407 rust_to_fhir_type_map.insert("MedicinalProduct", "MedicinalProduct");
30408 rust_to_fhir_type_map.insert(
30409 "MedicinalProductAuthorization",
30410 "MedicinalProductAuthorization",
30411 );
30412 rust_to_fhir_type_map.insert(
30413 "MedicinalProductAuthorizationJurisdictionalAuthorization",
30414 "BackboneElement",
30415 );
30416 rust_to_fhir_type_map.insert("MedicinalProductAuthorizationProcedure", "BackboneElement");
30417 rust_to_fhir_type_map.insert(
30418 "MedicinalProductContraindication",
30419 "MedicinalProductContraindication",
30420 );
30421 rust_to_fhir_type_map.insert(
30422 "MedicinalProductContraindicationOtherTherapy",
30423 "BackboneElement",
30424 );
30425 rust_to_fhir_type_map.insert("MedicinalProductIndication", "MedicinalProductIndication");
30426 rust_to_fhir_type_map.insert("MedicinalProductIndicationOtherTherapy", "BackboneElement");
30427 rust_to_fhir_type_map.insert("MedicinalProductIngredient", "MedicinalProductIngredient");
30428 rust_to_fhir_type_map.insert(
30429 "MedicinalProductIngredientSpecifiedSubstance",
30430 "BackboneElement",
30431 );
30432 rust_to_fhir_type_map.insert(
30433 "MedicinalProductIngredientSpecifiedSubstanceStrength",
30434 "BackboneElement",
30435 );
30436 rust_to_fhir_type_map.insert(
30437 "MedicinalProductIngredientSpecifiedSubstanceStrengthReferenceStrength",
30438 "BackboneElement",
30439 );
30440 rust_to_fhir_type_map.insert("MedicinalProductIngredientSubstance", "BackboneElement");
30441 rust_to_fhir_type_map.insert("MedicinalProductInteraction", "MedicinalProductInteraction");
30442 rust_to_fhir_type_map.insert("MedicinalProductInteractionInteractant", "BackboneElement");
30443 rust_to_fhir_type_map.insert(
30444 "MedicinalProductManufactured",
30445 "MedicinalProductManufactured",
30446 );
30447 rust_to_fhir_type_map.insert(
30448 "MedicinalProductManufacturingBusinessOperation",
30449 "BackboneElement",
30450 );
30451 rust_to_fhir_type_map.insert("MedicinalProductName", "BackboneElement");
30452 rust_to_fhir_type_map.insert("MedicinalProductNameCountryLanguage", "BackboneElement");
30453 rust_to_fhir_type_map.insert("MedicinalProductNameNamePart", "BackboneElement");
30454 rust_to_fhir_type_map.insert("MedicinalProductPackaged", "MedicinalProductPackaged");
30455 rust_to_fhir_type_map.insert("MedicinalProductPackagedBatchIdentifier", "BackboneElement");
30456 rust_to_fhir_type_map.insert("MedicinalProductPackagedPackageItem", "BackboneElement");
30457 rust_to_fhir_type_map.insert(
30458 "MedicinalProductPharmaceutical",
30459 "MedicinalProductPharmaceutical",
30460 );
30461 rust_to_fhir_type_map.insert(
30462 "MedicinalProductPharmaceuticalCharacteristics",
30463 "BackboneElement",
30464 );
30465 rust_to_fhir_type_map.insert(
30466 "MedicinalProductPharmaceuticalRouteOfAdministration",
30467 "BackboneElement",
30468 );
30469 rust_to_fhir_type_map.insert(
30470 "MedicinalProductPharmaceuticalRouteOfAdministrationTargetSpecies",
30471 "BackboneElement",
30472 );
30473 rust_to_fhir_type_map.insert(
30474 "MedicinalProductPharmaceuticalRouteOfAdministrationTargetSpeciesWithdrawalPeriod",
30475 "BackboneElement",
30476 );
30477 rust_to_fhir_type_map.insert("MedicinalProductSpecialDesignation", "BackboneElement");
30478 rust_to_fhir_type_map.insert(
30479 "MedicinalProductUndesirableEffect",
30480 "MedicinalProductUndesirableEffect",
30481 );
30482 rust_to_fhir_type_map.insert("Membership", "Membership");
30483 rust_to_fhir_type_map.insert("MessageDefinition", "MessageDefinition");
30484 rust_to_fhir_type_map.insert("MessageDefinitionAllowedResponse", "BackboneElement");
30485 rust_to_fhir_type_map.insert("MessageDefinitionFocus", "BackboneElement");
30486 rust_to_fhir_type_map.insert("MessageHeader", "MessageHeader");
30487 rust_to_fhir_type_map.insert("MessageHeaderDestination", "BackboneElement");
30488 rust_to_fhir_type_map.insert("MessageHeaderResponse", "BackboneElement");
30489 rust_to_fhir_type_map.insert("MessageHeaderSource", "BackboneElement");
30490 rust_to_fhir_type_map.insert("Meta", "Meta");
30491 rust_to_fhir_type_map.insert("MetadataResource", "MetadataResource");
30492 rust_to_fhir_type_map.insert("MolecularSequence", "MolecularSequence");
30493 rust_to_fhir_type_map.insert("MolecularSequenceQuality", "BackboneElement");
30494 rust_to_fhir_type_map.insert("MolecularSequenceQualityRoc", "BackboneElement");
30495 rust_to_fhir_type_map.insert("MolecularSequenceReferenceSeq", "BackboneElement");
30496 rust_to_fhir_type_map.insert("MolecularSequenceRepository", "BackboneElement");
30497 rust_to_fhir_type_map.insert("MolecularSequenceStructureVariant", "BackboneElement");
30498 rust_to_fhir_type_map.insert("MolecularSequenceStructureVariantInner", "BackboneElement");
30499 rust_to_fhir_type_map.insert("MolecularSequenceStructureVariantOuter", "BackboneElement");
30500 rust_to_fhir_type_map.insert("MolecularSequenceVariant", "BackboneElement");
30501 rust_to_fhir_type_map.insert("Money", "Money");
30502 rust_to_fhir_type_map.insert("NamingSystem", "NamingSystem");
30503 rust_to_fhir_type_map.insert("NamingSystemUniqueId", "BackboneElement");
30504 rust_to_fhir_type_map.insert("Narrative", "Narrative");
30505 rust_to_fhir_type_map.insert("NutritionOrder", "NutritionOrder");
30506 rust_to_fhir_type_map.insert("NutritionOrderEnteralFormula", "BackboneElement");
30507 rust_to_fhir_type_map.insert(
30508 "NutritionOrderEnteralFormulaAdministration",
30509 "BackboneElement",
30510 );
30511 rust_to_fhir_type_map.insert("NutritionOrderOralDiet", "BackboneElement");
30512 rust_to_fhir_type_map.insert("NutritionOrderOralDietNutrient", "BackboneElement");
30513 rust_to_fhir_type_map.insert("NutritionOrderOralDietTexture", "BackboneElement");
30514 rust_to_fhir_type_map.insert("NutritionOrderSupplement", "BackboneElement");
30515 rust_to_fhir_type_map.insert("Observation", "Observation");
30516 rust_to_fhir_type_map.insert("ObservationComponent", "BackboneElement");
30517 rust_to_fhir_type_map.insert("ObservationDefinition", "ObservationDefinition");
30518 rust_to_fhir_type_map.insert("ObservationDefinitionQualifiedInterval", "BackboneElement");
30519 rust_to_fhir_type_map.insert(
30520 "ObservationDefinitionQuantitativeDetails",
30521 "BackboneElement",
30522 );
30523 rust_to_fhir_type_map.insert("ObservationReferenceRange", "BackboneElement");
30524 rust_to_fhir_type_map.insert("OperationDefinition", "OperationDefinition");
30525 rust_to_fhir_type_map.insert("OperationDefinitionOverload", "BackboneElement");
30526 rust_to_fhir_type_map.insert("OperationDefinitionParameter", "BackboneElement");
30527 rust_to_fhir_type_map.insert("OperationDefinitionParameterBinding", "BackboneElement");
30528 rust_to_fhir_type_map.insert(
30529 "OperationDefinitionParameterReferencedFrom",
30530 "BackboneElement",
30531 );
30532 rust_to_fhir_type_map.insert("OperationOutcome", "OperationOutcome");
30533 rust_to_fhir_type_map.insert("OperationOutcomeIssue", "BackboneElement");
30534 rust_to_fhir_type_map.insert("Organization", "Organization");
30535 rust_to_fhir_type_map.insert("OrganizationAffiliation", "OrganizationAffiliation");
30536 rust_to_fhir_type_map.insert("OrganizationContact", "BackboneElement");
30537 rust_to_fhir_type_map.insert("ParameterDefinition", "ParameterDefinition");
30538 rust_to_fhir_type_map.insert("Parameters", "Parameters");
30539 rust_to_fhir_type_map.insert("ParametersParameter", "BackboneElement");
30540 rust_to_fhir_type_map.insert("Patient", "Patient");
30541 rust_to_fhir_type_map.insert("PatientCommunication", "BackboneElement");
30542 rust_to_fhir_type_map.insert("PatientContact", "BackboneElement");
30543 rust_to_fhir_type_map.insert("PatientLink", "BackboneElement");
30544 rust_to_fhir_type_map.insert("PaymentNotice", "PaymentNotice");
30545 rust_to_fhir_type_map.insert("PaymentReconciliation", "PaymentReconciliation");
30546 rust_to_fhir_type_map.insert("PaymentReconciliationDetail", "BackboneElement");
30547 rust_to_fhir_type_map.insert("PaymentReconciliationProcessNote", "BackboneElement");
30548 rust_to_fhir_type_map.insert("Period", "Period");
30549 rust_to_fhir_type_map.insert("Person", "Person");
30550 rust_to_fhir_type_map.insert("PersonLink", "BackboneElement");
30551 rust_to_fhir_type_map.insert("PlanDefinition", "PlanDefinition");
30552 rust_to_fhir_type_map.insert("PlanDefinitionAction", "BackboneElement");
30553 rust_to_fhir_type_map.insert("PlanDefinitionActionCondition", "BackboneElement");
30554 rust_to_fhir_type_map.insert("PlanDefinitionActionDynamicValue", "BackboneElement");
30555 rust_to_fhir_type_map.insert("PlanDefinitionActionParticipant", "BackboneElement");
30556 rust_to_fhir_type_map.insert("PlanDefinitionActionRelatedAction", "BackboneElement");
30557 rust_to_fhir_type_map.insert("PlanDefinitionGoal", "BackboneElement");
30558 rust_to_fhir_type_map.insert("PlanDefinitionGoalTarget", "BackboneElement");
30559 rust_to_fhir_type_map.insert("Population", "Population");
30560 rust_to_fhir_type_map.insert("Practitioner", "Practitioner");
30561 rust_to_fhir_type_map.insert("PractitionerQualification", "BackboneElement");
30562 rust_to_fhir_type_map.insert("PractitionerRole", "PractitionerRole");
30563 rust_to_fhir_type_map.insert("PractitionerRoleAvailableTime", "BackboneElement");
30564 rust_to_fhir_type_map.insert("PractitionerRoleNotAvailable", "BackboneElement");
30565 rust_to_fhir_type_map.insert("Procedure", "Procedure");
30566 rust_to_fhir_type_map.insert("ProcedureFocalDevice", "BackboneElement");
30567 rust_to_fhir_type_map.insert("ProcedurePerformer", "BackboneElement");
30568 rust_to_fhir_type_map.insert("ProdCharacteristic", "ProdCharacteristic");
30569 rust_to_fhir_type_map.insert("ProductShelfLife", "ProductShelfLife");
30570 rust_to_fhir_type_map.insert("Project", "Project");
30571 rust_to_fhir_type_map.insert("Provenance", "Provenance");
30572 rust_to_fhir_type_map.insert("ProvenanceAgent", "BackboneElement");
30573 rust_to_fhir_type_map.insert("ProvenanceEntity", "BackboneElement");
30574 rust_to_fhir_type_map.insert("Quantity", "Quantity");
30575 rust_to_fhir_type_map.insert("Questionnaire", "Questionnaire");
30576 rust_to_fhir_type_map.insert("QuestionnaireItem", "BackboneElement");
30577 rust_to_fhir_type_map.insert("QuestionnaireItemAnswerOption", "BackboneElement");
30578 rust_to_fhir_type_map.insert("QuestionnaireItemEnableWhen", "BackboneElement");
30579 rust_to_fhir_type_map.insert("QuestionnaireItemInitial", "BackboneElement");
30580 rust_to_fhir_type_map.insert("QuestionnaireResponse", "QuestionnaireResponse");
30581 rust_to_fhir_type_map.insert("QuestionnaireResponseItem", "BackboneElement");
30582 rust_to_fhir_type_map.insert("QuestionnaireResponseItemAnswer", "BackboneElement");
30583 rust_to_fhir_type_map.insert("Range", "Range");
30584 rust_to_fhir_type_map.insert("Ratio", "Ratio");
30585 rust_to_fhir_type_map.insert("Reference", "Reference");
30586 rust_to_fhir_type_map.insert("RelatedArtifact", "RelatedArtifact");
30587 rust_to_fhir_type_map.insert("RelatedPerson", "RelatedPerson");
30588 rust_to_fhir_type_map.insert("RelatedPersonCommunication", "BackboneElement");
30589 rust_to_fhir_type_map.insert("RequestGroup", "RequestGroup");
30590 rust_to_fhir_type_map.insert("RequestGroupAction", "BackboneElement");
30591 rust_to_fhir_type_map.insert("RequestGroupActionCondition", "BackboneElement");
30592 rust_to_fhir_type_map.insert("RequestGroupActionRelatedAction", "BackboneElement");
30593 rust_to_fhir_type_map.insert("ResearchDefinition", "ResearchDefinition");
30594 rust_to_fhir_type_map.insert("ResearchElementDefinition", "ResearchElementDefinition");
30595 rust_to_fhir_type_map.insert("ResearchElementDefinitionCharacteristic", "BackboneElement");
30596 rust_to_fhir_type_map.insert("ResearchStudy", "ResearchStudy");
30597 rust_to_fhir_type_map.insert("ResearchStudyArm", "BackboneElement");
30598 rust_to_fhir_type_map.insert("ResearchStudyObjective", "BackboneElement");
30599 rust_to_fhir_type_map.insert("ResearchSubject", "ResearchSubject");
30600 rust_to_fhir_type_map.insert("RiskAssessment", "RiskAssessment");
30601 rust_to_fhir_type_map.insert("RiskAssessmentPrediction", "BackboneElement");
30602 rust_to_fhir_type_map.insert("RiskEvidenceSynthesis", "RiskEvidenceSynthesis");
30603 rust_to_fhir_type_map.insert("RiskEvidenceSynthesisCertainty", "BackboneElement");
30604 rust_to_fhir_type_map.insert(
30605 "RiskEvidenceSynthesisCertaintyCertaintySubcomponent",
30606 "BackboneElement",
30607 );
30608 rust_to_fhir_type_map.insert("RiskEvidenceSynthesisRiskEstimate", "BackboneElement");
30609 rust_to_fhir_type_map.insert(
30610 "RiskEvidenceSynthesisRiskEstimatePrecisionEstimate",
30611 "BackboneElement",
30612 );
30613 rust_to_fhir_type_map.insert("RiskEvidenceSynthesisSampleSize", "BackboneElement");
30614 rust_to_fhir_type_map.insert("SampledData", "SampledData");
30615 rust_to_fhir_type_map.insert("Schedule", "Schedule");
30616 rust_to_fhir_type_map.insert("SearchParameter", "SearchParameter");
30617 rust_to_fhir_type_map.insert("SearchParameterComponent", "BackboneElement");
30618 rust_to_fhir_type_map.insert("ServiceRequest", "ServiceRequest");
30619 rust_to_fhir_type_map.insert("Signature", "Signature");
30620 rust_to_fhir_type_map.insert("Slot", "Slot");
30621 rust_to_fhir_type_map.insert("Specimen", "Specimen");
30622 rust_to_fhir_type_map.insert("SpecimenCollection", "BackboneElement");
30623 rust_to_fhir_type_map.insert("SpecimenContainer", "BackboneElement");
30624 rust_to_fhir_type_map.insert("SpecimenDefinition", "SpecimenDefinition");
30625 rust_to_fhir_type_map.insert("SpecimenDefinitionTypeTested", "BackboneElement");
30626 rust_to_fhir_type_map.insert("SpecimenDefinitionTypeTestedContainer", "BackboneElement");
30627 rust_to_fhir_type_map.insert(
30628 "SpecimenDefinitionTypeTestedContainerAdditive",
30629 "BackboneElement",
30630 );
30631 rust_to_fhir_type_map.insert("SpecimenDefinitionTypeTestedHandling", "BackboneElement");
30632 rust_to_fhir_type_map.insert("SpecimenProcessing", "BackboneElement");
30633 rust_to_fhir_type_map.insert("StructureDefinition", "StructureDefinition");
30634 rust_to_fhir_type_map.insert("StructureDefinitionContext", "BackboneElement");
30635 rust_to_fhir_type_map.insert("StructureDefinitionDifferential", "BackboneElement");
30636 rust_to_fhir_type_map.insert("StructureDefinitionMapping", "BackboneElement");
30637 rust_to_fhir_type_map.insert("StructureDefinitionSnapshot", "BackboneElement");
30638 rust_to_fhir_type_map.insert("StructureMap", "StructureMap");
30639 rust_to_fhir_type_map.insert("StructureMapGroup", "BackboneElement");
30640 rust_to_fhir_type_map.insert("StructureMapGroupInput", "BackboneElement");
30641 rust_to_fhir_type_map.insert("StructureMapGroupRule", "BackboneElement");
30642 rust_to_fhir_type_map.insert("StructureMapGroupRuleDependent", "BackboneElement");
30643 rust_to_fhir_type_map.insert("StructureMapGroupRuleSource", "BackboneElement");
30644 rust_to_fhir_type_map.insert("StructureMapGroupRuleTarget", "BackboneElement");
30645 rust_to_fhir_type_map.insert("StructureMapGroupRuleTargetParameter", "BackboneElement");
30646 rust_to_fhir_type_map.insert("StructureMapStructure", "BackboneElement");
30647 rust_to_fhir_type_map.insert("Subscription", "Subscription");
30648 rust_to_fhir_type_map.insert("SubscriptionChannel", "BackboneElement");
30649 rust_to_fhir_type_map.insert("Substance", "Substance");
30650 rust_to_fhir_type_map.insert("SubstanceAmount", "SubstanceAmount");
30651 rust_to_fhir_type_map.insert("SubstanceAmountReferenceRange", "Element");
30652 rust_to_fhir_type_map.insert("SubstanceIngredient", "BackboneElement");
30653 rust_to_fhir_type_map.insert("SubstanceInstance", "BackboneElement");
30654 rust_to_fhir_type_map.insert("SubstanceNucleicAcid", "SubstanceNucleicAcid");
30655 rust_to_fhir_type_map.insert("SubstanceNucleicAcidSubunit", "BackboneElement");
30656 rust_to_fhir_type_map.insert("SubstanceNucleicAcidSubunitLinkage", "BackboneElement");
30657 rust_to_fhir_type_map.insert("SubstanceNucleicAcidSubunitSugar", "BackboneElement");
30658 rust_to_fhir_type_map.insert("SubstancePolymer", "SubstancePolymer");
30659 rust_to_fhir_type_map.insert("SubstancePolymerMonomerSet", "BackboneElement");
30660 rust_to_fhir_type_map.insert(
30661 "SubstancePolymerMonomerSetStartingMaterial",
30662 "BackboneElement",
30663 );
30664 rust_to_fhir_type_map.insert("SubstancePolymerRepeat", "BackboneElement");
30665 rust_to_fhir_type_map.insert("SubstancePolymerRepeatRepeatUnit", "BackboneElement");
30666 rust_to_fhir_type_map.insert(
30667 "SubstancePolymerRepeatRepeatUnitDegreeOfPolymerisation",
30668 "BackboneElement",
30669 );
30670 rust_to_fhir_type_map.insert(
30671 "SubstancePolymerRepeatRepeatUnitStructuralRepresentation",
30672 "BackboneElement",
30673 );
30674 rust_to_fhir_type_map.insert("SubstanceProtein", "SubstanceProtein");
30675 rust_to_fhir_type_map.insert("SubstanceProteinSubunit", "BackboneElement");
30676 rust_to_fhir_type_map.insert(
30677 "SubstanceReferenceInformation",
30678 "SubstanceReferenceInformation",
30679 );
30680 rust_to_fhir_type_map.insert(
30681 "SubstanceReferenceInformationClassification",
30682 "BackboneElement",
30683 );
30684 rust_to_fhir_type_map.insert("SubstanceReferenceInformationGene", "BackboneElement");
30685 rust_to_fhir_type_map.insert(
30686 "SubstanceReferenceInformationGeneElement",
30687 "BackboneElement",
30688 );
30689 rust_to_fhir_type_map.insert("SubstanceReferenceInformationTarget", "BackboneElement");
30690 rust_to_fhir_type_map.insert("SubstanceSourceMaterial", "SubstanceSourceMaterial");
30691 rust_to_fhir_type_map.insert(
30692 "SubstanceSourceMaterialFractionDescription",
30693 "BackboneElement",
30694 );
30695 rust_to_fhir_type_map.insert("SubstanceSourceMaterialOrganism", "BackboneElement");
30696 rust_to_fhir_type_map.insert("SubstanceSourceMaterialOrganismAuthor", "BackboneElement");
30697 rust_to_fhir_type_map.insert("SubstanceSourceMaterialOrganismHybrid", "BackboneElement");
30698 rust_to_fhir_type_map.insert(
30699 "SubstanceSourceMaterialOrganismOrganismGeneral",
30700 "BackboneElement",
30701 );
30702 rust_to_fhir_type_map.insert("SubstanceSourceMaterialPartDescription", "BackboneElement");
30703 rust_to_fhir_type_map.insert("SubstanceSpecification", "SubstanceSpecification");
30704 rust_to_fhir_type_map.insert("SubstanceSpecificationCode", "BackboneElement");
30705 rust_to_fhir_type_map.insert("SubstanceSpecificationMoiety", "BackboneElement");
30706 rust_to_fhir_type_map.insert("SubstanceSpecificationName", "BackboneElement");
30707 rust_to_fhir_type_map.insert("SubstanceSpecificationNameOfficial", "BackboneElement");
30708 rust_to_fhir_type_map.insert("SubstanceSpecificationProperty", "BackboneElement");
30709 rust_to_fhir_type_map.insert("SubstanceSpecificationRelationship", "BackboneElement");
30710 rust_to_fhir_type_map.insert("SubstanceSpecificationStructure", "BackboneElement");
30711 rust_to_fhir_type_map.insert("SubstanceSpecificationStructureIsotope", "BackboneElement");
30712 rust_to_fhir_type_map.insert(
30713 "SubstanceSpecificationStructureIsotopeMolecularWeight",
30714 "BackboneElement",
30715 );
30716 rust_to_fhir_type_map.insert(
30717 "SubstanceSpecificationStructureRepresentation",
30718 "BackboneElement",
30719 );
30720 rust_to_fhir_type_map.insert("SupplyDelivery", "SupplyDelivery");
30721 rust_to_fhir_type_map.insert("SupplyDeliverySuppliedItem", "BackboneElement");
30722 rust_to_fhir_type_map.insert("SupplyRequest", "SupplyRequest");
30723 rust_to_fhir_type_map.insert("SupplyRequestParameter", "BackboneElement");
30724 rust_to_fhir_type_map.insert("Task", "Task");
30725 rust_to_fhir_type_map.insert("TaskInput", "BackboneElement");
30726 rust_to_fhir_type_map.insert("TaskOutput", "BackboneElement");
30727 rust_to_fhir_type_map.insert("TaskRestriction", "BackboneElement");
30728 rust_to_fhir_type_map.insert("TerminologyCapabilities", "TerminologyCapabilities");
30729 rust_to_fhir_type_map.insert("TerminologyCapabilitiesClosure", "BackboneElement");
30730 rust_to_fhir_type_map.insert("TerminologyCapabilitiesCodeSystem", "BackboneElement");
30731 rust_to_fhir_type_map.insert(
30732 "TerminologyCapabilitiesCodeSystemVersion",
30733 "BackboneElement",
30734 );
30735 rust_to_fhir_type_map.insert(
30736 "TerminologyCapabilitiesCodeSystemVersionFilter",
30737 "BackboneElement",
30738 );
30739 rust_to_fhir_type_map.insert("TerminologyCapabilitiesExpansion", "BackboneElement");
30740 rust_to_fhir_type_map.insert(
30741 "TerminologyCapabilitiesExpansionParameter",
30742 "BackboneElement",
30743 );
30744 rust_to_fhir_type_map.insert("TerminologyCapabilitiesImplementation", "BackboneElement");
30745 rust_to_fhir_type_map.insert("TerminologyCapabilitiesSoftware", "BackboneElement");
30746 rust_to_fhir_type_map.insert("TerminologyCapabilitiesTranslation", "BackboneElement");
30747 rust_to_fhir_type_map.insert("TerminologyCapabilitiesValidateCode", "BackboneElement");
30748 rust_to_fhir_type_map.insert("TestReport", "TestReport");
30749 rust_to_fhir_type_map.insert("TestReportParticipant", "BackboneElement");
30750 rust_to_fhir_type_map.insert("TestReportSetup", "BackboneElement");
30751 rust_to_fhir_type_map.insert("TestReportSetupAction", "BackboneElement");
30752 rust_to_fhir_type_map.insert("TestReportSetupActionAssert", "BackboneElement");
30753 rust_to_fhir_type_map.insert("TestReportSetupActionOperation", "BackboneElement");
30754 rust_to_fhir_type_map.insert("TestReportTeardown", "BackboneElement");
30755 rust_to_fhir_type_map.insert("TestReportTeardownAction", "BackboneElement");
30756 rust_to_fhir_type_map.insert("TestReportTest", "BackboneElement");
30757 rust_to_fhir_type_map.insert("TestReportTestAction", "BackboneElement");
30758 rust_to_fhir_type_map.insert("TestScript", "TestScript");
30759 rust_to_fhir_type_map.insert("TestScriptDestination", "BackboneElement");
30760 rust_to_fhir_type_map.insert("TestScriptFixture", "BackboneElement");
30761 rust_to_fhir_type_map.insert("TestScriptMetadata", "BackboneElement");
30762 rust_to_fhir_type_map.insert("TestScriptMetadataCapability", "BackboneElement");
30763 rust_to_fhir_type_map.insert("TestScriptMetadataLink", "BackboneElement");
30764 rust_to_fhir_type_map.insert("TestScriptOrigin", "BackboneElement");
30765 rust_to_fhir_type_map.insert("TestScriptSetup", "BackboneElement");
30766 rust_to_fhir_type_map.insert("TestScriptSetupAction", "BackboneElement");
30767 rust_to_fhir_type_map.insert("TestScriptSetupActionAssert", "BackboneElement");
30768 rust_to_fhir_type_map.insert("TestScriptSetupActionOperation", "BackboneElement");
30769 rust_to_fhir_type_map.insert(
30770 "TestScriptSetupActionOperationRequestHeader",
30771 "BackboneElement",
30772 );
30773 rust_to_fhir_type_map.insert("TestScriptTeardown", "BackboneElement");
30774 rust_to_fhir_type_map.insert("TestScriptTeardownAction", "BackboneElement");
30775 rust_to_fhir_type_map.insert("TestScriptTest", "BackboneElement");
30776 rust_to_fhir_type_map.insert("TestScriptTestAction", "BackboneElement");
30777 rust_to_fhir_type_map.insert("TestScriptVariable", "BackboneElement");
30778 rust_to_fhir_type_map.insert("Timing", "Timing");
30779 rust_to_fhir_type_map.insert("TimingRepeat", "Element");
30780 rust_to_fhir_type_map.insert("TriggerDefinition", "TriggerDefinition");
30781 rust_to_fhir_type_map.insert("UsageContext", "UsageContext");
30782 rust_to_fhir_type_map.insert("User", "User");
30783 rust_to_fhir_type_map.insert("ValueSet", "ValueSet");
30784 rust_to_fhir_type_map.insert("ValueSetCompose", "BackboneElement");
30785 rust_to_fhir_type_map.insert("ValueSetComposeInclude", "BackboneElement");
30786 rust_to_fhir_type_map.insert("ValueSetComposeIncludeConcept", "BackboneElement");
30787 rust_to_fhir_type_map.insert(
30788 "ValueSetComposeIncludeConceptDesignation",
30789 "BackboneElement",
30790 );
30791 rust_to_fhir_type_map.insert("ValueSetComposeIncludeFilter", "BackboneElement");
30792 rust_to_fhir_type_map.insert("ValueSetExpansion", "BackboneElement");
30793 rust_to_fhir_type_map.insert("ValueSetExpansionContains", "BackboneElement");
30794 rust_to_fhir_type_map.insert("ValueSetExpansionParameter", "BackboneElement");
30795 rust_to_fhir_type_map.insert("VerificationResult", "VerificationResult");
30796 rust_to_fhir_type_map.insert("VerificationResultAttestation", "BackboneElement");
30797 rust_to_fhir_type_map.insert("VerificationResultPrimarySource", "BackboneElement");
30798 rust_to_fhir_type_map.insert("VerificationResultValidator", "BackboneElement");
30799 rust_to_fhir_type_map.insert("VisionPrescription", "VisionPrescription");
30800 rust_to_fhir_type_map.insert("VisionPrescriptionLensSpecification", "BackboneElement");
30801 rust_to_fhir_type_map.insert(
30802 "VisionPrescriptionLensSpecificationPrism",
30803 "BackboneElement",
30804 );
30805 rust_to_fhir_type_map
30806});