fhirbolt_model/generated/r5/resources/
claim.rs

1// Generated on 2023-05-17 by fhirbolt-codegen v0.10.0
2#[doc = "A date or period in the past or future indicating when the event occurred or is expectd to occur."]
3#[derive(Default, Debug, Clone, PartialEq)]
4pub enum ClaimEventWhen {
5    DateTime(super::super::types::DateTime),
6    Period(Box<super::super::types::Period>),
7    #[default]
8    Invalid,
9}
10#[doc = "The date when or period to which this information refers."]
11#[derive(Default, Debug, Clone, PartialEq)]
12pub enum ClaimSupportingInfoTiming {
13    Date(super::super::types::Date),
14    Period(Box<super::super::types::Period>),
15    #[default]
16    Invalid,
17}
18#[doc = "Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data."]
19#[derive(Default, Debug, Clone, PartialEq)]
20pub enum ClaimSupportingInfoValue {
21    Boolean(super::super::types::Boolean),
22    String(super::super::types::String),
23    Quantity(Box<super::super::types::Quantity>),
24    Attachment(Box<super::super::types::Attachment>),
25    Reference(Box<super::super::types::Reference>),
26    Identifier(Box<super::super::types::Identifier>),
27    #[default]
28    Invalid,
29}
30#[doc = "The nature of illness or problem in a coded form or as a reference to an external defined Condition."]
31#[derive(Default, Debug, Clone, PartialEq)]
32pub enum ClaimDiagnosisDiagnosis {
33    CodeableConcept(Box<super::super::types::CodeableConcept>),
34    Reference(Box<super::super::types::Reference>),
35    #[default]
36    Invalid,
37}
38#[doc = "The code or reference to a Procedure resource which identifies the clinical intervention performed."]
39#[derive(Default, Debug, Clone, PartialEq)]
40pub enum ClaimProcedureProcedure {
41    CodeableConcept(Box<super::super::types::CodeableConcept>),
42    Reference(Box<super::super::types::Reference>),
43    #[default]
44    Invalid,
45}
46#[doc = "The physical location of the accident event."]
47#[derive(Default, Debug, Clone, PartialEq)]
48pub enum ClaimAccidentLocation {
49    Address(Box<super::super::types::Address>),
50    Reference(Box<super::super::types::Reference>),
51    #[default]
52    Invalid,
53}
54#[doc = "The date or dates when the service or product was supplied, performed or completed."]
55#[derive(Default, Debug, Clone, PartialEq)]
56pub enum ClaimItemServiced {
57    Date(super::super::types::Date),
58    Period(Box<super::super::types::Period>),
59    #[default]
60    Invalid,
61}
62#[doc = "Where the product or service was provided."]
63#[derive(Default, Debug, Clone, PartialEq)]
64pub enum ClaimItemLocation {
65    CodeableConcept(Box<super::super::types::CodeableConcept>),
66    Address(Box<super::super::types::Address>),
67    Reference(Box<super::super::types::Reference>),
68    #[default]
69    Invalid,
70}
71#[doc = "Other claims which are related to this claim such as prior submissions or claims for related services or for the same event."]
72#[derive(Debug, Clone, PartialEq)]
73pub struct ClaimRelated {
74    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
75    pub r#id: Option<std::string::String>,
76    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
77    pub r#extension: Vec<super::super::types::Extension>,
78    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
79    pub r#modifier_extension: Vec<super::super::types::Extension>,
80    #[doc = "Reference to a related claim."]
81    pub r#claim: Option<Box<super::super::types::Reference>>,
82    #[doc = "A code to convey how the claims are related."]
83    pub r#relationship: Option<Box<super::super::types::CodeableConcept>>,
84    #[doc = "An alternate organizational reference to the case or file to which this particular claim pertains."]
85    pub r#reference: Option<Box<super::super::types::Identifier>>,
86}
87#[allow(clippy::derivable_impls)]
88impl Default for ClaimRelated {
89    fn default() -> Self {
90        Self {
91            r#id: Default::default(),
92            r#extension: Default::default(),
93            r#modifier_extension: Default::default(),
94            r#claim: Default::default(),
95            r#relationship: Default::default(),
96            r#reference: Default::default(),
97        }
98    }
99}
100#[doc = "The party to be reimbursed for cost of the products and services according to the terms of the policy."]
101#[derive(Debug, Clone, PartialEq)]
102pub struct ClaimPayee {
103    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
104    pub r#id: Option<std::string::String>,
105    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
106    pub r#extension: Vec<super::super::types::Extension>,
107    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
108    pub r#modifier_extension: Vec<super::super::types::Extension>,
109    #[doc = "Type of Party to be reimbursed: subscriber, provider, other."]
110    pub r#type: Box<super::super::types::CodeableConcept>,
111    #[doc = "Reference to the individual or organization to whom any payment will be made."]
112    pub r#party: Option<Box<super::super::types::Reference>>,
113}
114#[allow(clippy::derivable_impls)]
115impl Default for ClaimPayee {
116    fn default() -> Self {
117        Self {
118            r#id: Default::default(),
119            r#extension: Default::default(),
120            r#modifier_extension: Default::default(),
121            r#type: Box::new(super::super::types::CodeableConcept {
122                id: Some("$invalid".to_string()),
123                ..Default::default()
124            }),
125            r#party: Default::default(),
126        }
127    }
128}
129#[doc = "Information code for an event with a corresponding date or period."]
130#[derive(Debug, Clone, PartialEq)]
131pub struct ClaimEvent {
132    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
133    pub r#id: Option<std::string::String>,
134    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
135    pub r#extension: Vec<super::super::types::Extension>,
136    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
137    pub r#modifier_extension: Vec<super::super::types::Extension>,
138    #[doc = "A coded event such as when a service is expected or a card printed."]
139    pub r#type: Box<super::super::types::CodeableConcept>,
140    #[doc = "A date or period in the past or future indicating when the event occurred or is expectd to occur."]
141    pub r#when: ClaimEventWhen,
142}
143#[allow(clippy::derivable_impls)]
144impl Default for ClaimEvent {
145    fn default() -> Self {
146        Self {
147            r#id: Default::default(),
148            r#extension: Default::default(),
149            r#modifier_extension: Default::default(),
150            r#type: Box::new(super::super::types::CodeableConcept {
151                id: Some("$invalid".to_string()),
152                ..Default::default()
153            }),
154            r#when: Default::default(),
155        }
156    }
157}
158#[doc = "The members of the team who provided the products and services."]
159#[derive(Debug, Clone, PartialEq)]
160pub struct ClaimCareTeam {
161    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
162    pub r#id: Option<std::string::String>,
163    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
164    pub r#extension: Vec<super::super::types::Extension>,
165    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
166    pub r#modifier_extension: Vec<super::super::types::Extension>,
167    #[doc = "A number to uniquely identify care team entries."]
168    pub r#sequence: super::super::types::PositiveInt,
169    #[doc = "Member of the team who provided the product or service."]
170    pub r#provider: Box<super::super::types::Reference>,
171    #[doc = "The party who is billing and/or responsible for the claimed products or services."]
172    pub r#responsible: Option<super::super::types::Boolean>,
173    #[doc = "The lead, assisting or supervising practitioner and their discipline if a multidisciplinary team."]
174    pub r#role: Option<Box<super::super::types::CodeableConcept>>,
175    #[doc = "The specialization of the practitioner or provider which is applicable for this service."]
176    pub r#specialty: Option<Box<super::super::types::CodeableConcept>>,
177}
178#[allow(clippy::derivable_impls)]
179impl Default for ClaimCareTeam {
180    fn default() -> Self {
181        Self {
182            r#id: Default::default(),
183            r#extension: Default::default(),
184            r#modifier_extension: Default::default(),
185            r#sequence: super::super::types::PositiveInt {
186                id: Some("$invalid".to_string()),
187                ..Default::default()
188            },
189            r#provider: Box::new(super::super::types::Reference {
190                id: Some("$invalid".to_string()),
191                ..Default::default()
192            }),
193            r#responsible: Default::default(),
194            r#role: Default::default(),
195            r#specialty: Default::default(),
196        }
197    }
198}
199#[doc = "Additional information codes regarding exceptions, special considerations, the condition, situation, prior or concurrent issues."]
200#[derive(Debug, Clone, PartialEq)]
201pub struct ClaimSupportingInfo {
202    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
203    pub r#id: Option<std::string::String>,
204    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
205    pub r#extension: Vec<super::super::types::Extension>,
206    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
207    pub r#modifier_extension: Vec<super::super::types::Extension>,
208    #[doc = "A number to uniquely identify supporting information entries."]
209    pub r#sequence: super::super::types::PositiveInt,
210    #[doc = "The general class of the information supplied: information; exception; accident, employment; onset, etc."]
211    pub r#category: Box<super::super::types::CodeableConcept>,
212    #[doc = "System and code pertaining to the specific information regarding special conditions relating to the setting, treatment or patient  for which care is sought."]
213    pub r#code: Option<Box<super::super::types::CodeableConcept>>,
214    #[doc = "The date when or period to which this information refers."]
215    pub r#timing: Option<ClaimSupportingInfoTiming>,
216    #[doc = "Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data."]
217    pub r#value: Option<ClaimSupportingInfoValue>,
218    #[doc = "Provides the reason in the situation where a reason code is required in addition to the content."]
219    pub r#reason: Option<Box<super::super::types::CodeableConcept>>,
220}
221#[allow(clippy::derivable_impls)]
222impl Default for ClaimSupportingInfo {
223    fn default() -> Self {
224        Self {
225            r#id: Default::default(),
226            r#extension: Default::default(),
227            r#modifier_extension: Default::default(),
228            r#sequence: super::super::types::PositiveInt {
229                id: Some("$invalid".to_string()),
230                ..Default::default()
231            },
232            r#category: Box::new(super::super::types::CodeableConcept {
233                id: Some("$invalid".to_string()),
234                ..Default::default()
235            }),
236            r#code: Default::default(),
237            r#timing: Default::default(),
238            r#value: Default::default(),
239            r#reason: Default::default(),
240        }
241    }
242}
243#[doc = "Information about diagnoses relevant to the claim items."]
244#[derive(Debug, Clone, PartialEq)]
245pub struct ClaimDiagnosis {
246    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
247    pub r#id: Option<std::string::String>,
248    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
249    pub r#extension: Vec<super::super::types::Extension>,
250    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
251    pub r#modifier_extension: Vec<super::super::types::Extension>,
252    #[doc = "A number to uniquely identify diagnosis entries."]
253    pub r#sequence: super::super::types::PositiveInt,
254    #[doc = "The nature of illness or problem in a coded form or as a reference to an external defined Condition."]
255    pub r#diagnosis: ClaimDiagnosisDiagnosis,
256    #[doc = "When the condition was observed or the relative ranking."]
257    pub r#type: Vec<super::super::types::CodeableConcept>,
258    #[doc = "Indication of whether the diagnosis was present on admission to a facility."]
259    pub r#on_admission: Option<Box<super::super::types::CodeableConcept>>,
260}
261#[allow(clippy::derivable_impls)]
262impl Default for ClaimDiagnosis {
263    fn default() -> Self {
264        Self {
265            r#id: Default::default(),
266            r#extension: Default::default(),
267            r#modifier_extension: Default::default(),
268            r#sequence: super::super::types::PositiveInt {
269                id: Some("$invalid".to_string()),
270                ..Default::default()
271            },
272            r#diagnosis: Default::default(),
273            r#type: Default::default(),
274            r#on_admission: Default::default(),
275        }
276    }
277}
278#[doc = "Procedures performed on the patient relevant to the billing items with the claim."]
279#[derive(Debug, Clone, PartialEq)]
280pub struct ClaimProcedure {
281    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
282    pub r#id: Option<std::string::String>,
283    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
284    pub r#extension: Vec<super::super::types::Extension>,
285    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
286    pub r#modifier_extension: Vec<super::super::types::Extension>,
287    #[doc = "A number to uniquely identify procedure entries."]
288    pub r#sequence: super::super::types::PositiveInt,
289    #[doc = "When the condition was observed or the relative ranking."]
290    pub r#type: Vec<super::super::types::CodeableConcept>,
291    #[doc = "Date and optionally time the procedure was performed."]
292    pub r#date: Option<super::super::types::DateTime>,
293    #[doc = "The code or reference to a Procedure resource which identifies the clinical intervention performed."]
294    pub r#procedure: ClaimProcedureProcedure,
295    #[doc = "Unique Device Identifiers associated with this line item."]
296    pub r#udi: Vec<super::super::types::Reference>,
297}
298#[allow(clippy::derivable_impls)]
299impl Default for ClaimProcedure {
300    fn default() -> Self {
301        Self {
302            r#id: Default::default(),
303            r#extension: Default::default(),
304            r#modifier_extension: Default::default(),
305            r#sequence: super::super::types::PositiveInt {
306                id: Some("$invalid".to_string()),
307                ..Default::default()
308            },
309            r#type: Default::default(),
310            r#date: Default::default(),
311            r#procedure: Default::default(),
312            r#udi: Default::default(),
313        }
314    }
315}
316#[doc = "Financial instruments for reimbursement for the health care products and services specified on the claim."]
317#[derive(Debug, Clone, PartialEq)]
318pub struct ClaimInsurance {
319    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
320    pub r#id: Option<std::string::String>,
321    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
322    pub r#extension: Vec<super::super::types::Extension>,
323    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
324    pub r#modifier_extension: Vec<super::super::types::Extension>,
325    #[doc = "A number to uniquely identify insurance entries and provide a sequence of coverages to convey coordination of benefit order."]
326    pub r#sequence: super::super::types::PositiveInt,
327    #[doc = "A flag to indicate that this Coverage is to be used for adjudication of this claim when set to true."]
328    pub r#focal: super::super::types::Boolean,
329    #[doc = "The business identifier to be used when the claim is sent for adjudication against this insurance policy."]
330    pub r#identifier: Option<Box<super::super::types::Identifier>>,
331    #[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."]
332    pub r#coverage: Box<super::super::types::Reference>,
333    #[doc = "A business agreement number established between the provider and the insurer for special business processing purposes."]
334    pub r#business_arrangement: Option<super::super::types::String>,
335    #[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."]
336    pub r#pre_auth_ref: Vec<super::super::types::String>,
337    #[doc = "The result of the adjudication of the line items for the Coverage specified in this insurance."]
338    pub r#claim_response: Option<Box<super::super::types::Reference>>,
339}
340#[allow(clippy::derivable_impls)]
341impl Default for ClaimInsurance {
342    fn default() -> Self {
343        Self {
344            r#id: Default::default(),
345            r#extension: Default::default(),
346            r#modifier_extension: Default::default(),
347            r#sequence: super::super::types::PositiveInt {
348                id: Some("$invalid".to_string()),
349                ..Default::default()
350            },
351            r#focal: super::super::types::Boolean {
352                id: Some("$invalid".to_string()),
353                ..Default::default()
354            },
355            r#identifier: Default::default(),
356            r#coverage: Box::new(super::super::types::Reference {
357                id: Some("$invalid".to_string()),
358                ..Default::default()
359            }),
360            r#business_arrangement: Default::default(),
361            r#pre_auth_ref: Default::default(),
362            r#claim_response: Default::default(),
363        }
364    }
365}
366#[doc = "Details of an accident which resulted in injuries which required the products and services listed in the claim."]
367#[derive(Debug, Clone, PartialEq)]
368pub struct ClaimAccident {
369    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
370    pub r#id: Option<std::string::String>,
371    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
372    pub r#extension: Vec<super::super::types::Extension>,
373    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
374    pub r#modifier_extension: Vec<super::super::types::Extension>,
375    #[doc = "Date of an accident event  related to the products and services contained in the claim."]
376    pub r#date: super::super::types::Date,
377    #[doc = "The type or context of the accident event for the purposes of selection of potential insurance coverages and determination of coordination between insurers."]
378    pub r#type: Option<Box<super::super::types::CodeableConcept>>,
379    #[doc = "The physical location of the accident event."]
380    pub r#location: Option<ClaimAccidentLocation>,
381}
382#[allow(clippy::derivable_impls)]
383impl Default for ClaimAccident {
384    fn default() -> Self {
385        Self {
386            r#id: Default::default(),
387            r#extension: Default::default(),
388            r#modifier_extension: Default::default(),
389            r#date: super::super::types::Date {
390                id: Some("$invalid".to_string()),
391                ..Default::default()
392            },
393            r#type: Default::default(),
394            r#location: Default::default(),
395        }
396    }
397}
398#[doc = "Physical location where the service is performed or applies."]
399#[derive(Debug, Clone, PartialEq)]
400pub struct ClaimItemBodySite {
401    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
402    pub r#id: Option<std::string::String>,
403    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
404    pub r#extension: Vec<super::super::types::Extension>,
405    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
406    pub r#modifier_extension: Vec<super::super::types::Extension>,
407    #[doc = "Physical service site on the patient (limb, tooth, etc.)."]
408    pub r#site: Vec<super::super::types::CodeableReference>,
409    #[doc = "A region or surface of the bodySite, e.g. limb region or tooth surface(s)."]
410    pub r#sub_site: Vec<super::super::types::CodeableConcept>,
411}
412#[allow(clippy::derivable_impls)]
413impl Default for ClaimItemBodySite {
414    fn default() -> Self {
415        Self {
416            r#id: Default::default(),
417            r#extension: Default::default(),
418            r#modifier_extension: Default::default(),
419            r#site: Default::default(),
420            r#sub_site: Default::default(),
421        }
422    }
423}
424#[doc = "A claim detail line. Either a simple (a product or service) or a 'group' of sub-details which are simple items."]
425#[derive(Debug, Clone, PartialEq)]
426pub struct ClaimItemDetailSubDetail {
427    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
428    pub r#id: Option<std::string::String>,
429    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
430    pub r#extension: Vec<super::super::types::Extension>,
431    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
432    pub r#modifier_extension: Vec<super::super::types::Extension>,
433    #[doc = "A number to uniquely identify item entries."]
434    pub r#sequence: super::super::types::PositiveInt,
435    #[doc = "Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners."]
436    pub r#trace_number: Vec<super::super::types::Identifier>,
437    #[doc = "The type of revenue or cost center providing the product and/or service."]
438    pub r#revenue: Option<Box<super::super::types::CodeableConcept>>,
439    #[doc = "Code to identify the general type of benefits under which products and services are provided."]
440    pub r#category: Option<Box<super::super::types::CodeableConcept>>,
441    #[doc = "When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used."]
442    pub r#product_or_service: Option<Box<super::super::types::CodeableConcept>>,
443    #[doc = "This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims."]
444    pub r#product_or_service_end: Option<Box<super::super::types::CodeableConcept>>,
445    #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
446    pub r#modifier: Vec<super::super::types::CodeableConcept>,
447    #[doc = "Identifies the program under which this may be recovered."]
448    pub r#program_code: Vec<super::super::types::CodeableConcept>,
449    #[doc = "The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services."]
450    pub r#patient_paid: Option<Box<super::super::types::Money>>,
451    #[doc = "The number of repetitions of a service or product."]
452    pub r#quantity: Option<Box<super::super::types::Quantity>>,
453    #[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."]
454    pub r#unit_price: Option<Box<super::super::types::Money>>,
455    #[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."]
456    pub r#factor: Option<super::super::types::Decimal>,
457    #[doc = "The total of taxes applicable for this product or service."]
458    pub r#tax: Option<Box<super::super::types::Money>>,
459    #[doc = "The total amount claimed for line item.detail.subDetail. Net = unit price * quantity * factor."]
460    pub r#net: Option<Box<super::super::types::Money>>,
461    #[doc = "Unique Device Identifiers associated with this line item."]
462    pub r#udi: Vec<super::super::types::Reference>,
463}
464#[allow(clippy::derivable_impls)]
465impl Default for ClaimItemDetailSubDetail {
466    fn default() -> Self {
467        Self {
468            r#id: Default::default(),
469            r#extension: Default::default(),
470            r#modifier_extension: Default::default(),
471            r#sequence: super::super::types::PositiveInt {
472                id: Some("$invalid".to_string()),
473                ..Default::default()
474            },
475            r#trace_number: Default::default(),
476            r#revenue: Default::default(),
477            r#category: Default::default(),
478            r#product_or_service: Default::default(),
479            r#product_or_service_end: Default::default(),
480            r#modifier: Default::default(),
481            r#program_code: Default::default(),
482            r#patient_paid: Default::default(),
483            r#quantity: Default::default(),
484            r#unit_price: Default::default(),
485            r#factor: Default::default(),
486            r#tax: Default::default(),
487            r#net: Default::default(),
488            r#udi: Default::default(),
489        }
490    }
491}
492#[doc = "A claim detail line. Either a simple (a product or service) or a 'group' of sub-details which are simple items."]
493#[derive(Debug, Clone, PartialEq)]
494pub struct ClaimItemDetail {
495    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
496    pub r#id: Option<std::string::String>,
497    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
498    pub r#extension: Vec<super::super::types::Extension>,
499    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
500    pub r#modifier_extension: Vec<super::super::types::Extension>,
501    #[doc = "A number to uniquely identify item entries."]
502    pub r#sequence: super::super::types::PositiveInt,
503    #[doc = "Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners."]
504    pub r#trace_number: Vec<super::super::types::Identifier>,
505    #[doc = "The type of revenue or cost center providing the product and/or service."]
506    pub r#revenue: Option<Box<super::super::types::CodeableConcept>>,
507    #[doc = "Code to identify the general type of benefits under which products and services are provided."]
508    pub r#category: Option<Box<super::super::types::CodeableConcept>>,
509    #[doc = "When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used."]
510    pub r#product_or_service: Option<Box<super::super::types::CodeableConcept>>,
511    #[doc = "This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims."]
512    pub r#product_or_service_end: Option<Box<super::super::types::CodeableConcept>>,
513    #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
514    pub r#modifier: Vec<super::super::types::CodeableConcept>,
515    #[doc = "Identifies the program under which this may be recovered."]
516    pub r#program_code: Vec<super::super::types::CodeableConcept>,
517    #[doc = "The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services."]
518    pub r#patient_paid: Option<Box<super::super::types::Money>>,
519    #[doc = "The number of repetitions of a service or product."]
520    pub r#quantity: Option<Box<super::super::types::Quantity>>,
521    #[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."]
522    pub r#unit_price: Option<Box<super::super::types::Money>>,
523    #[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."]
524    pub r#factor: Option<super::super::types::Decimal>,
525    #[doc = "The total of taxes applicable for this product or service."]
526    pub r#tax: Option<Box<super::super::types::Money>>,
527    #[doc = "The total amount claimed for the group (if a grouper) or the line item.detail. Net = unit price * quantity * factor."]
528    pub r#net: Option<Box<super::super::types::Money>>,
529    #[doc = "Unique Device Identifiers associated with this line item."]
530    pub r#udi: Vec<super::super::types::Reference>,
531    #[doc = "A claim detail line. Either a simple (a product or service) or a 'group' of sub-details which are simple items."]
532    pub r#sub_detail: Vec<ClaimItemDetailSubDetail>,
533}
534#[allow(clippy::derivable_impls)]
535impl Default for ClaimItemDetail {
536    fn default() -> Self {
537        Self {
538            r#id: Default::default(),
539            r#extension: Default::default(),
540            r#modifier_extension: Default::default(),
541            r#sequence: super::super::types::PositiveInt {
542                id: Some("$invalid".to_string()),
543                ..Default::default()
544            },
545            r#trace_number: Default::default(),
546            r#revenue: Default::default(),
547            r#category: Default::default(),
548            r#product_or_service: Default::default(),
549            r#product_or_service_end: Default::default(),
550            r#modifier: Default::default(),
551            r#program_code: Default::default(),
552            r#patient_paid: Default::default(),
553            r#quantity: Default::default(),
554            r#unit_price: Default::default(),
555            r#factor: Default::default(),
556            r#tax: Default::default(),
557            r#net: Default::default(),
558            r#udi: Default::default(),
559            r#sub_detail: Default::default(),
560        }
561    }
562}
563#[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."]
564#[derive(Debug, Clone, PartialEq)]
565pub struct ClaimItem {
566    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
567    pub r#id: Option<std::string::String>,
568    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
569    pub r#extension: Vec<super::super::types::Extension>,
570    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
571    pub r#modifier_extension: Vec<super::super::types::Extension>,
572    #[doc = "A number to uniquely identify item entries."]
573    pub r#sequence: super::super::types::PositiveInt,
574    #[doc = "Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners."]
575    pub r#trace_number: Vec<super::super::types::Identifier>,
576    #[doc = "CareTeam members related to this service or product."]
577    pub r#care_team_sequence: Vec<super::super::types::PositiveInt>,
578    #[doc = "Diagnosis applicable for this service or product."]
579    pub r#diagnosis_sequence: Vec<super::super::types::PositiveInt>,
580    #[doc = "Procedures applicable for this service or product."]
581    pub r#procedure_sequence: Vec<super::super::types::PositiveInt>,
582    #[doc = "Exceptions, special conditions and supporting information applicable for this service or product."]
583    pub r#information_sequence: Vec<super::super::types::PositiveInt>,
584    #[doc = "The type of revenue or cost center providing the product and/or service."]
585    pub r#revenue: Option<Box<super::super::types::CodeableConcept>>,
586    #[doc = "Code to identify the general type of benefits under which products and services are provided."]
587    pub r#category: Option<Box<super::super::types::CodeableConcept>>,
588    #[doc = "When the value is a group code then this item collects a set of related item details, otherwise this contains the product, service, drug or other billing code for the item. This element may be the start of a range of .productOrService codes used in conjunction with .productOrServiceEnd or it may be a solo element where .productOrServiceEnd is not used."]
589    pub r#product_or_service: Option<Box<super::super::types::CodeableConcept>>,
590    #[doc = "This contains the end of a range of product, service, drug or other billing codes for the item. This element is not used when the .productOrService is a group code. This value may only be present when a .productOfService code has been provided to convey the start of the range. Typically this value may be used only with preauthorizations and not with claims."]
591    pub r#product_or_service_end: Option<Box<super::super::types::CodeableConcept>>,
592    #[doc = "Request or Referral for Goods or Service to be rendered."]
593    pub r#request: Vec<super::super::types::Reference>,
594    #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
595    pub r#modifier: Vec<super::super::types::CodeableConcept>,
596    #[doc = "Identifies the program under which this may be recovered."]
597    pub r#program_code: Vec<super::super::types::CodeableConcept>,
598    #[doc = "The date or dates when the service or product was supplied, performed or completed."]
599    pub r#serviced: Option<ClaimItemServiced>,
600    #[doc = "Where the product or service was provided."]
601    pub r#location: Option<ClaimItemLocation>,
602    #[doc = "The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services."]
603    pub r#patient_paid: Option<Box<super::super::types::Money>>,
604    #[doc = "The number of repetitions of a service or product."]
605    pub r#quantity: Option<Box<super::super::types::Quantity>>,
606    #[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."]
607    pub r#unit_price: Option<Box<super::super::types::Money>>,
608    #[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."]
609    pub r#factor: Option<super::super::types::Decimal>,
610    #[doc = "The total of taxes applicable for this product or service."]
611    pub r#tax: Option<Box<super::super::types::Money>>,
612    #[doc = "The total amount claimed for the group (if a grouper) or the line item. Net = unit price * quantity * factor."]
613    pub r#net: Option<Box<super::super::types::Money>>,
614    #[doc = "Unique Device Identifiers associated with this line item."]
615    pub r#udi: Vec<super::super::types::Reference>,
616    #[doc = "Physical location where the service is performed or applies."]
617    pub r#body_site: Vec<ClaimItemBodySite>,
618    #[doc = "Healthcare encounters related to this claim."]
619    pub r#encounter: Vec<super::super::types::Reference>,
620    #[doc = "A claim detail line. Either a simple (a product or service) or a 'group' of sub-details which are simple items."]
621    pub r#detail: Vec<ClaimItemDetail>,
622}
623#[allow(clippy::derivable_impls)]
624impl Default for ClaimItem {
625    fn default() -> Self {
626        Self {
627            r#id: Default::default(),
628            r#extension: Default::default(),
629            r#modifier_extension: Default::default(),
630            r#sequence: super::super::types::PositiveInt {
631                id: Some("$invalid".to_string()),
632                ..Default::default()
633            },
634            r#trace_number: Default::default(),
635            r#care_team_sequence: Default::default(),
636            r#diagnosis_sequence: Default::default(),
637            r#procedure_sequence: Default::default(),
638            r#information_sequence: Default::default(),
639            r#revenue: Default::default(),
640            r#category: Default::default(),
641            r#product_or_service: Default::default(),
642            r#product_or_service_end: Default::default(),
643            r#request: Default::default(),
644            r#modifier: Default::default(),
645            r#program_code: Default::default(),
646            r#serviced: Default::default(),
647            r#location: Default::default(),
648            r#patient_paid: Default::default(),
649            r#quantity: Default::default(),
650            r#unit_price: Default::default(),
651            r#factor: Default::default(),
652            r#tax: Default::default(),
653            r#net: Default::default(),
654            r#udi: Default::default(),
655            r#body_site: Default::default(),
656            r#encounter: Default::default(),
657            r#detail: Default::default(),
658        }
659    }
660}
661#[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.\n\nThe Claim resource is used by providers to exchange services and products rendered to patients or planned to be rendered with insurers for reimbuserment. It is also used by insurers to exchange claims information with statutory reporting and data analytics firms."]
662#[derive(Debug, Clone, PartialEq)]
663pub struct Claim {
664    #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
665    pub r#id: Option<super::super::types::Id>,
666    #[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."]
667    pub r#meta: Option<Box<super::super::types::Meta>>,
668    #[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."]
669    pub r#implicit_rules: Option<super::super::types::Uri>,
670    #[doc = "The base language in which the resource is written."]
671    pub r#language: Option<super::super::types::Code>,
672    #[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."]
673    pub r#text: Option<Box<super::super::types::Narrative>>,
674    #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, nor can they have their own independent transaction scope. This is allowed to be a Parameters resource if and only if it is referenced by a resource that provides context/meaning."]
675    pub r#contained: Vec<super::super::Resource>,
676    #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
677    pub r#extension: Vec<super::super::types::Extension>,
678    #[doc = "May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
679    pub r#modifier_extension: Vec<super::super::types::Extension>,
680    #[doc = "A unique identifier assigned to this claim."]
681    pub r#identifier: Vec<super::super::types::Identifier>,
682    #[doc = "Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners."]
683    pub r#trace_number: Vec<super::super::types::Identifier>,
684    #[doc = "The status of the resource instance."]
685    pub r#status: super::super::types::Code,
686    #[doc = "The category of claim, e.g. oral, pharmacy, vision, institutional, professional."]
687    pub r#type: Box<super::super::types::CodeableConcept>,
688    #[doc = "A finer grained suite of claim type codes which may convey additional information such as Inpatient vs Outpatient and/or a specialty service."]
689    pub r#sub_type: Option<Box<super::super::types::CodeableConcept>>,
690    #[doc = "A code to indicate whether the nature of the request is: Claim - A request to an Insurer to adjudicate the supplied charges for health care goods and services under the identified policy and to pay the determined Benefit amount, if any; Preauthorization - A request to an Insurer to adjudicate the supplied proposed future charges for health care goods and services under the identified policy and to approve the services and provide the expected benefit amounts and potentially to reserve funds to pay the benefits when Claims for the indicated services are later submitted; or, Pre-determination - A request to an Insurer to adjudicate the supplied 'what if' charges for health care goods and services under the identified policy and report back what the Benefit payable would be had the services actually been provided."]
691    pub r#use: super::super::types::Code,
692    #[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."]
693    pub r#patient: Box<super::super::types::Reference>,
694    #[doc = "The period for which charges are being submitted."]
695    pub r#billable_period: Option<Box<super::super::types::Period>>,
696    #[doc = "The date this resource was created."]
697    pub r#created: super::super::types::DateTime,
698    #[doc = "Individual who created the claim, predetermination or preauthorization."]
699    pub r#enterer: Option<Box<super::super::types::Reference>>,
700    #[doc = "The Insurer who is target of the request."]
701    pub r#insurer: Option<Box<super::super::types::Reference>>,
702    #[doc = "The provider which is responsible for the claim, predetermination or preauthorization."]
703    pub r#provider: Option<Box<super::super::types::Reference>>,
704    #[doc = "The provider-required urgency of processing the request. Typical values include: stat, normal, deferred."]
705    pub r#priority: Option<Box<super::super::types::CodeableConcept>>,
706    #[doc = "A code to indicate whether and for whom funds are to be reserved for future claims."]
707    pub r#funds_reserve: Option<Box<super::super::types::CodeableConcept>>,
708    #[doc = "Other claims which are related to this claim such as prior submissions or claims for related services or for the same event."]
709    pub r#related: Vec<ClaimRelated>,
710    #[doc = "Prescription is the document/authorization given to the claim author for them to provide products and services for which consideration (reimbursement) is sought. Could be a RX for medications, an 'order' for oxygen or wheelchair or physiotherapy treatments."]
711    pub r#prescription: Option<Box<super::super::types::Reference>>,
712    #[doc = "Original prescription which has been superseded by this prescription to support the dispensing of pharmacy services, medications or products."]
713    pub r#original_prescription: Option<Box<super::super::types::Reference>>,
714    #[doc = "The party to be reimbursed for cost of the products and services according to the terms of the policy."]
715    pub r#payee: Option<ClaimPayee>,
716    #[doc = "The referral information received by the claim author, it is not to be used when the author generates a referral for a patient. A copy of that referral may be provided as supporting information. Some insurers require proof of referral to pay for services or to pay specialist rates for services."]
717    pub r#referral: Option<Box<super::super::types::Reference>>,
718    #[doc = "Healthcare encounters related to this claim."]
719    pub r#encounter: Vec<super::super::types::Reference>,
720    #[doc = "Facility where the services were provided."]
721    pub r#facility: Option<Box<super::super::types::Reference>>,
722    #[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."]
723    pub r#diagnosis_related_group: Option<Box<super::super::types::CodeableConcept>>,
724    #[doc = "Information code for an event with a corresponding date or period."]
725    pub r#event: Vec<ClaimEvent>,
726    #[doc = "The members of the team who provided the products and services."]
727    pub r#care_team: Vec<ClaimCareTeam>,
728    #[doc = "Additional information codes regarding exceptions, special considerations, the condition, situation, prior or concurrent issues."]
729    pub r#supporting_info: Vec<ClaimSupportingInfo>,
730    #[doc = "Information about diagnoses relevant to the claim items."]
731    pub r#diagnosis: Vec<ClaimDiagnosis>,
732    #[doc = "Procedures performed on the patient relevant to the billing items with the claim."]
733    pub r#procedure: Vec<ClaimProcedure>,
734    #[doc = "Financial instruments for reimbursement for the health care products and services specified on the claim."]
735    pub r#insurance: Vec<ClaimInsurance>,
736    #[doc = "Details of an accident which resulted in injuries which required the products and services listed in the claim."]
737    pub r#accident: Option<ClaimAccident>,
738    #[doc = "The amount paid by the patient, in total at the claim claim level or specifically for the item and detail level, to the provider for goods and services."]
739    pub r#patient_paid: Option<Box<super::super::types::Money>>,
740    #[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."]
741    pub r#item: Vec<ClaimItem>,
742    #[doc = "The total value of the all the items in the claim."]
743    pub r#total: Option<Box<super::super::types::Money>>,
744}
745#[allow(clippy::derivable_impls)]
746impl Default for Claim {
747    fn default() -> Self {
748        Self {
749            r#id: Default::default(),
750            r#meta: Default::default(),
751            r#implicit_rules: Default::default(),
752            r#language: Default::default(),
753            r#text: Default::default(),
754            r#contained: Default::default(),
755            r#extension: Default::default(),
756            r#modifier_extension: Default::default(),
757            r#identifier: Default::default(),
758            r#trace_number: Default::default(),
759            r#status: super::super::types::Code {
760                id: Some("$invalid".to_string()),
761                ..Default::default()
762            },
763            r#type: Box::new(super::super::types::CodeableConcept {
764                id: Some("$invalid".to_string()),
765                ..Default::default()
766            }),
767            r#sub_type: Default::default(),
768            r#use: super::super::types::Code {
769                id: Some("$invalid".to_string()),
770                ..Default::default()
771            },
772            r#patient: Box::new(super::super::types::Reference {
773                id: Some("$invalid".to_string()),
774                ..Default::default()
775            }),
776            r#billable_period: Default::default(),
777            r#created: super::super::types::DateTime {
778                id: Some("$invalid".to_string()),
779                ..Default::default()
780            },
781            r#enterer: Default::default(),
782            r#insurer: Default::default(),
783            r#provider: Default::default(),
784            r#priority: Default::default(),
785            r#funds_reserve: Default::default(),
786            r#related: Default::default(),
787            r#prescription: Default::default(),
788            r#original_prescription: Default::default(),
789            r#payee: Default::default(),
790            r#referral: Default::default(),
791            r#encounter: Default::default(),
792            r#facility: Default::default(),
793            r#diagnosis_related_group: Default::default(),
794            r#event: Default::default(),
795            r#care_team: Default::default(),
796            r#supporting_info: Default::default(),
797            r#diagnosis: Default::default(),
798            r#procedure: Default::default(),
799            r#insurance: Default::default(),
800            r#accident: Default::default(),
801            r#patient_paid: Default::default(),
802            r#item: Default::default(),
803            r#total: Default::default(),
804        }
805    }
806}