fhirbolt_model/generated/r4/resources/
explanation_of_benefit.rs

1// Generated on 2023-05-17 by fhirbolt-codegen v0.10.0
2#[doc = "The date when or period to which this information refers."]
3#[derive(Default, Debug, Clone, PartialEq)]
4pub enum ExplanationOfBenefitSupportingInfoTiming {
5    Date(super::super::types::Date),
6    Period(Box<super::super::types::Period>),
7    #[default]
8    Invalid,
9}
10#[doc = "Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data."]
11#[derive(Default, Debug, Clone, PartialEq)]
12pub enum ExplanationOfBenefitSupportingInfoValue {
13    Boolean(super::super::types::Boolean),
14    String(super::super::types::String),
15    Quantity(Box<super::super::types::Quantity>),
16    Attachment(Box<super::super::types::Attachment>),
17    Reference(Box<super::super::types::Reference>),
18    #[default]
19    Invalid,
20}
21#[doc = "The nature of illness or problem in a coded form or as a reference to an external defined Condition."]
22#[derive(Default, Debug, Clone, PartialEq)]
23pub enum ExplanationOfBenefitDiagnosisDiagnosis {
24    CodeableConcept(Box<super::super::types::CodeableConcept>),
25    Reference(Box<super::super::types::Reference>),
26    #[default]
27    Invalid,
28}
29#[doc = "The code or reference to a Procedure resource which identifies the clinical intervention performed."]
30#[derive(Default, Debug, Clone, PartialEq)]
31pub enum ExplanationOfBenefitProcedureProcedure {
32    CodeableConcept(Box<super::super::types::CodeableConcept>),
33    Reference(Box<super::super::types::Reference>),
34    #[default]
35    Invalid,
36}
37#[doc = "The physical location of the accident event."]
38#[derive(Default, Debug, Clone, PartialEq)]
39pub enum ExplanationOfBenefitAccidentLocation {
40    Address(Box<super::super::types::Address>),
41    Reference(Box<super::super::types::Reference>),
42    #[default]
43    Invalid,
44}
45#[doc = "The date or dates when the service or product was supplied, performed or completed."]
46#[derive(Default, Debug, Clone, PartialEq)]
47pub enum ExplanationOfBenefitItemServiced {
48    Date(super::super::types::Date),
49    Period(Box<super::super::types::Period>),
50    #[default]
51    Invalid,
52}
53#[doc = "Where the product or service was provided."]
54#[derive(Default, Debug, Clone, PartialEq)]
55pub enum ExplanationOfBenefitItemLocation {
56    CodeableConcept(Box<super::super::types::CodeableConcept>),
57    Address(Box<super::super::types::Address>),
58    Reference(Box<super::super::types::Reference>),
59    #[default]
60    Invalid,
61}
62#[doc = "The date or dates when the service or product was supplied, performed or completed."]
63#[derive(Default, Debug, Clone, PartialEq)]
64pub enum ExplanationOfBenefitAddItemServiced {
65    Date(super::super::types::Date),
66    Period(Box<super::super::types::Period>),
67    #[default]
68    Invalid,
69}
70#[doc = "Where the product or service was provided."]
71#[derive(Default, Debug, Clone, PartialEq)]
72pub enum ExplanationOfBenefitAddItemLocation {
73    CodeableConcept(Box<super::super::types::CodeableConcept>),
74    Address(Box<super::super::types::Address>),
75    Reference(Box<super::super::types::Reference>),
76    #[default]
77    Invalid,
78}
79#[doc = "The quantity of the benefit which is permitted under the coverage."]
80#[derive(Default, Debug, Clone, PartialEq)]
81pub enum ExplanationOfBenefitBenefitBalanceFinancialAllowed {
82    UnsignedInt(super::super::types::UnsignedInt),
83    String(super::super::types::String),
84    Money(Box<super::super::types::Money>),
85    #[default]
86    Invalid,
87}
88#[doc = "The quantity of the benefit which have been consumed to date."]
89#[derive(Default, Debug, Clone, PartialEq)]
90pub enum ExplanationOfBenefitBenefitBalanceFinancialUsed {
91    UnsignedInt(super::super::types::UnsignedInt),
92    Money(Box<super::super::types::Money>),
93    #[default]
94    Invalid,
95}
96#[doc = "Other claims which are related to this claim such as prior submissions or claims for related services or for the same event."]
97#[derive(Debug, Clone, PartialEq)]
98pub struct ExplanationOfBenefitRelated {
99    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
100    pub r#id: Option<std::string::String>,
101    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
102    pub r#extension: Vec<super::super::types::Extension>,
103    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
104    pub r#modifier_extension: Vec<super::super::types::Extension>,
105    #[doc = "Reference to a related claim."]
106    pub r#claim: Option<Box<super::super::types::Reference>>,
107    #[doc = "A code to convey how the claims are related."]
108    pub r#relationship: Option<Box<super::super::types::CodeableConcept>>,
109    #[doc = "An alternate organizational reference to the case or file to which this particular claim pertains."]
110    pub r#reference: Option<Box<super::super::types::Identifier>>,
111}
112#[allow(clippy::derivable_impls)]
113impl Default for ExplanationOfBenefitRelated {
114    fn default() -> Self {
115        Self {
116            r#id: Default::default(),
117            r#extension: Default::default(),
118            r#modifier_extension: Default::default(),
119            r#claim: Default::default(),
120            r#relationship: Default::default(),
121            r#reference: Default::default(),
122        }
123    }
124}
125#[doc = "The party to be reimbursed for cost of the products and services according to the terms of the policy."]
126#[derive(Debug, Clone, PartialEq)]
127pub struct ExplanationOfBenefitPayee {
128    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
129    pub r#id: Option<std::string::String>,
130    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
131    pub r#extension: Vec<super::super::types::Extension>,
132    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
133    pub r#modifier_extension: Vec<super::super::types::Extension>,
134    #[doc = "Type of Party to be reimbursed: Subscriber, provider, other."]
135    pub r#type: Option<Box<super::super::types::CodeableConcept>>,
136    #[doc = "Reference to the individual or organization to whom any payment will be made."]
137    pub r#party: Option<Box<super::super::types::Reference>>,
138}
139#[allow(clippy::derivable_impls)]
140impl Default for ExplanationOfBenefitPayee {
141    fn default() -> Self {
142        Self {
143            r#id: Default::default(),
144            r#extension: Default::default(),
145            r#modifier_extension: Default::default(),
146            r#type: Default::default(),
147            r#party: Default::default(),
148        }
149    }
150}
151#[doc = "The members of the team who provided the products and services."]
152#[derive(Debug, Clone, PartialEq)]
153pub struct ExplanationOfBenefitCareTeam {
154    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
155    pub r#id: Option<std::string::String>,
156    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
157    pub r#extension: Vec<super::super::types::Extension>,
158    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
159    pub r#modifier_extension: Vec<super::super::types::Extension>,
160    #[doc = "A number to uniquely identify care team entries."]
161    pub r#sequence: super::super::types::PositiveInt,
162    #[doc = "Member of the team who provided the product or service."]
163    pub r#provider: Box<super::super::types::Reference>,
164    #[doc = "The party who is billing and/or responsible for the claimed products or services."]
165    pub r#responsible: Option<super::super::types::Boolean>,
166    #[doc = "The lead, assisting or supervising practitioner and their discipline if a multidisciplinary team."]
167    pub r#role: Option<Box<super::super::types::CodeableConcept>>,
168    #[doc = "The qualification of the practitioner which is applicable for this service."]
169    pub r#qualification: Option<Box<super::super::types::CodeableConcept>>,
170}
171#[allow(clippy::derivable_impls)]
172impl Default for ExplanationOfBenefitCareTeam {
173    fn default() -> Self {
174        Self {
175            r#id: Default::default(),
176            r#extension: Default::default(),
177            r#modifier_extension: Default::default(),
178            r#sequence: super::super::types::PositiveInt {
179                id: Some("$invalid".to_string()),
180                ..Default::default()
181            },
182            r#provider: Box::new(super::super::types::Reference {
183                id: Some("$invalid".to_string()),
184                ..Default::default()
185            }),
186            r#responsible: Default::default(),
187            r#role: Default::default(),
188            r#qualification: Default::default(),
189        }
190    }
191}
192#[doc = "Additional information codes regarding exceptions, special considerations, the condition, situation, prior or concurrent issues."]
193#[derive(Debug, Clone, PartialEq)]
194pub struct ExplanationOfBenefitSupportingInfo {
195    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
196    pub r#id: Option<std::string::String>,
197    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
198    pub r#extension: Vec<super::super::types::Extension>,
199    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
200    pub r#modifier_extension: Vec<super::super::types::Extension>,
201    #[doc = "A number to uniquely identify supporting information entries."]
202    pub r#sequence: super::super::types::PositiveInt,
203    #[doc = "The general class of the information supplied: information; exception; accident, employment; onset, etc."]
204    pub r#category: Box<super::super::types::CodeableConcept>,
205    #[doc = "System and code pertaining to the specific information regarding special conditions relating to the setting, treatment or patient  for which care is sought."]
206    pub r#code: Option<Box<super::super::types::CodeableConcept>>,
207    #[doc = "The date when or period to which this information refers."]
208    pub r#timing: Option<ExplanationOfBenefitSupportingInfoTiming>,
209    #[doc = "Additional data or information such as resources, documents, images etc. including references to the data or the actual inclusion of the data."]
210    pub r#value: Option<ExplanationOfBenefitSupportingInfoValue>,
211    #[doc = "Provides the reason in the situation where a reason code is required in addition to the content."]
212    pub r#reason: Option<Box<super::super::types::Coding>>,
213}
214#[allow(clippy::derivable_impls)]
215impl Default for ExplanationOfBenefitSupportingInfo {
216    fn default() -> Self {
217        Self {
218            r#id: Default::default(),
219            r#extension: Default::default(),
220            r#modifier_extension: Default::default(),
221            r#sequence: super::super::types::PositiveInt {
222                id: Some("$invalid".to_string()),
223                ..Default::default()
224            },
225            r#category: Box::new(super::super::types::CodeableConcept {
226                id: Some("$invalid".to_string()),
227                ..Default::default()
228            }),
229            r#code: Default::default(),
230            r#timing: Default::default(),
231            r#value: Default::default(),
232            r#reason: Default::default(),
233        }
234    }
235}
236#[doc = "Information about diagnoses relevant to the claim items."]
237#[derive(Debug, Clone, PartialEq)]
238pub struct ExplanationOfBenefitDiagnosis {
239    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
240    pub r#id: Option<std::string::String>,
241    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
242    pub r#extension: Vec<super::super::types::Extension>,
243    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
244    pub r#modifier_extension: Vec<super::super::types::Extension>,
245    #[doc = "A number to uniquely identify diagnosis entries."]
246    pub r#sequence: super::super::types::PositiveInt,
247    #[doc = "The nature of illness or problem in a coded form or as a reference to an external defined Condition."]
248    pub r#diagnosis: ExplanationOfBenefitDiagnosisDiagnosis,
249    #[doc = "When the condition was observed or the relative ranking."]
250    pub r#type: Vec<super::super::types::CodeableConcept>,
251    #[doc = "Indication of whether the diagnosis was present on admission to a facility."]
252    pub r#on_admission: Option<Box<super::super::types::CodeableConcept>>,
253    #[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."]
254    pub r#package_code: Option<Box<super::super::types::CodeableConcept>>,
255}
256#[allow(clippy::derivable_impls)]
257impl Default for ExplanationOfBenefitDiagnosis {
258    fn default() -> Self {
259        Self {
260            r#id: Default::default(),
261            r#extension: Default::default(),
262            r#modifier_extension: Default::default(),
263            r#sequence: super::super::types::PositiveInt {
264                id: Some("$invalid".to_string()),
265                ..Default::default()
266            },
267            r#diagnosis: Default::default(),
268            r#type: Default::default(),
269            r#on_admission: Default::default(),
270            r#package_code: Default::default(),
271        }
272    }
273}
274#[doc = "Procedures performed on the patient relevant to the billing items with the claim."]
275#[derive(Debug, Clone, PartialEq)]
276pub struct ExplanationOfBenefitProcedure {
277    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
278    pub r#id: Option<std::string::String>,
279    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
280    pub r#extension: Vec<super::super::types::Extension>,
281    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
282    pub r#modifier_extension: Vec<super::super::types::Extension>,
283    #[doc = "A number to uniquely identify procedure entries."]
284    pub r#sequence: super::super::types::PositiveInt,
285    #[doc = "When the condition was observed or the relative ranking."]
286    pub r#type: Vec<super::super::types::CodeableConcept>,
287    #[doc = "Date and optionally time the procedure was performed."]
288    pub r#date: Option<super::super::types::DateTime>,
289    #[doc = "The code or reference to a Procedure resource which identifies the clinical intervention performed."]
290    pub r#procedure: ExplanationOfBenefitProcedureProcedure,
291    #[doc = "Unique Device Identifiers associated with this line item."]
292    pub r#udi: Vec<super::super::types::Reference>,
293}
294#[allow(clippy::derivable_impls)]
295impl Default for ExplanationOfBenefitProcedure {
296    fn default() -> Self {
297        Self {
298            r#id: Default::default(),
299            r#extension: Default::default(),
300            r#modifier_extension: Default::default(),
301            r#sequence: super::super::types::PositiveInt {
302                id: Some("$invalid".to_string()),
303                ..Default::default()
304            },
305            r#type: Default::default(),
306            r#date: Default::default(),
307            r#procedure: Default::default(),
308            r#udi: Default::default(),
309        }
310    }
311}
312#[doc = "Financial instruments for reimbursement for the health care products and services specified on the claim."]
313#[derive(Debug, Clone, PartialEq)]
314pub struct ExplanationOfBenefitInsurance {
315    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
316    pub r#id: Option<std::string::String>,
317    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
318    pub r#extension: Vec<super::super::types::Extension>,
319    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
320    pub r#modifier_extension: Vec<super::super::types::Extension>,
321    #[doc = "A flag to indicate that this Coverage is to be used for adjudication of this claim when set to true."]
322    pub r#focal: super::super::types::Boolean,
323    #[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."]
324    pub r#coverage: Box<super::super::types::Reference>,
325    #[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."]
326    pub r#pre_auth_ref: Vec<super::super::types::String>,
327}
328#[allow(clippy::derivable_impls)]
329impl Default for ExplanationOfBenefitInsurance {
330    fn default() -> Self {
331        Self {
332            r#id: Default::default(),
333            r#extension: Default::default(),
334            r#modifier_extension: Default::default(),
335            r#focal: super::super::types::Boolean {
336                id: Some("$invalid".to_string()),
337                ..Default::default()
338            },
339            r#coverage: Box::new(super::super::types::Reference {
340                id: Some("$invalid".to_string()),
341                ..Default::default()
342            }),
343            r#pre_auth_ref: Default::default(),
344        }
345    }
346}
347#[doc = "Details of a accident which resulted in injuries which required the products and services listed in the claim."]
348#[derive(Debug, Clone, PartialEq)]
349pub struct ExplanationOfBenefitAccident {
350    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
351    pub r#id: Option<std::string::String>,
352    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
353    pub r#extension: Vec<super::super::types::Extension>,
354    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
355    pub r#modifier_extension: Vec<super::super::types::Extension>,
356    #[doc = "Date of an accident event  related to the products and services contained in the claim."]
357    pub r#date: Option<super::super::types::Date>,
358    #[doc = "The type or context of the accident event for the purposes of selection of potential insurance coverages and determination of coordination between insurers."]
359    pub r#type: Option<Box<super::super::types::CodeableConcept>>,
360    #[doc = "The physical location of the accident event."]
361    pub r#location: Option<ExplanationOfBenefitAccidentLocation>,
362}
363#[allow(clippy::derivable_impls)]
364impl Default for ExplanationOfBenefitAccident {
365    fn default() -> Self {
366        Self {
367            r#id: Default::default(),
368            r#extension: Default::default(),
369            r#modifier_extension: Default::default(),
370            r#date: Default::default(),
371            r#type: Default::default(),
372            r#location: Default::default(),
373        }
374    }
375}
376#[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."]
377#[derive(Debug, Clone, PartialEq)]
378pub struct ExplanationOfBenefitItemAdjudication {
379    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
380    pub r#id: Option<std::string::String>,
381    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
382    pub r#extension: Vec<super::super::types::Extension>,
383    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
384    pub r#modifier_extension: Vec<super::super::types::Extension>,
385    #[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."]
386    pub r#category: Box<super::super::types::CodeableConcept>,
387    #[doc = "A code supporting the understanding of the adjudication result and explaining variance from expected amount."]
388    pub r#reason: Option<Box<super::super::types::CodeableConcept>>,
389    #[doc = "Monetary amount associated with the category."]
390    pub r#amount: Option<Box<super::super::types::Money>>,
391    #[doc = "A non-monetary value associated with the category. Mutually exclusive to the amount element above."]
392    pub r#value: Option<super::super::types::Decimal>,
393}
394#[allow(clippy::derivable_impls)]
395impl Default for ExplanationOfBenefitItemAdjudication {
396    fn default() -> Self {
397        Self {
398            r#id: Default::default(),
399            r#extension: Default::default(),
400            r#modifier_extension: Default::default(),
401            r#category: Box::new(super::super::types::CodeableConcept {
402                id: Some("$invalid".to_string()),
403                ..Default::default()
404            }),
405            r#reason: Default::default(),
406            r#amount: Default::default(),
407            r#value: Default::default(),
408        }
409    }
410}
411#[doc = "Third-tier of goods and services."]
412#[derive(Debug, Clone, PartialEq)]
413pub struct ExplanationOfBenefitItemDetailSubDetail {
414    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
415    pub r#id: Option<std::string::String>,
416    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
417    pub r#extension: Vec<super::super::types::Extension>,
418    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
419    pub r#modifier_extension: Vec<super::super::types::Extension>,
420    #[doc = "A claim detail line. Either a simple (a product or service) or a 'group' of sub-details which are simple items."]
421    pub r#sequence: super::super::types::PositiveInt,
422    #[doc = "The type of revenue or cost center providing the product and/or service."]
423    pub r#revenue: Option<Box<super::super::types::CodeableConcept>>,
424    #[doc = "Code to identify the general type of benefits under which products and services are provided."]
425    pub r#category: Option<Box<super::super::types::CodeableConcept>>,
426    #[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."]
427    pub r#product_or_service: Box<super::super::types::CodeableConcept>,
428    #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
429    pub r#modifier: Vec<super::super::types::CodeableConcept>,
430    #[doc = "Identifies the program under which this may be recovered."]
431    pub r#program_code: Vec<super::super::types::CodeableConcept>,
432    #[doc = "The number of repetitions of a service or product."]
433    pub r#quantity: Option<Box<super::super::types::Quantity>>,
434    #[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."]
435    pub r#unit_price: Option<Box<super::super::types::Money>>,
436    #[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."]
437    pub r#factor: Option<super::super::types::Decimal>,
438    #[doc = "The quantity times the unit price for an additional service or product or charge."]
439    pub r#net: Option<Box<super::super::types::Money>>,
440    #[doc = "Unique Device Identifiers associated with this line item."]
441    pub r#udi: Vec<super::super::types::Reference>,
442    #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
443    pub r#note_number: Vec<super::super::types::PositiveInt>,
444    #[doc = "The adjudication results."]
445    pub r#adjudication: Vec<ExplanationOfBenefitItemAdjudication>,
446}
447#[allow(clippy::derivable_impls)]
448impl Default for ExplanationOfBenefitItemDetailSubDetail {
449    fn default() -> Self {
450        Self {
451            r#id: Default::default(),
452            r#extension: Default::default(),
453            r#modifier_extension: Default::default(),
454            r#sequence: super::super::types::PositiveInt {
455                id: Some("$invalid".to_string()),
456                ..Default::default()
457            },
458            r#revenue: Default::default(),
459            r#category: Default::default(),
460            r#product_or_service: Box::new(super::super::types::CodeableConcept {
461                id: Some("$invalid".to_string()),
462                ..Default::default()
463            }),
464            r#modifier: Default::default(),
465            r#program_code: Default::default(),
466            r#quantity: Default::default(),
467            r#unit_price: Default::default(),
468            r#factor: Default::default(),
469            r#net: Default::default(),
470            r#udi: Default::default(),
471            r#note_number: Default::default(),
472            r#adjudication: Default::default(),
473        }
474    }
475}
476#[doc = "Second-tier of goods and services."]
477#[derive(Debug, Clone, PartialEq)]
478pub struct ExplanationOfBenefitItemDetail {
479    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
480    pub r#id: Option<std::string::String>,
481    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
482    pub r#extension: Vec<super::super::types::Extension>,
483    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
484    pub r#modifier_extension: Vec<super::super::types::Extension>,
485    #[doc = "A claim detail line. Either a simple (a product or service) or a 'group' of sub-details which are simple items."]
486    pub r#sequence: super::super::types::PositiveInt,
487    #[doc = "The type of revenue or cost center providing the product and/or service."]
488    pub r#revenue: Option<Box<super::super::types::CodeableConcept>>,
489    #[doc = "Code to identify the general type of benefits under which products and services are provided."]
490    pub r#category: Option<Box<super::super::types::CodeableConcept>>,
491    #[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."]
492    pub r#product_or_service: Box<super::super::types::CodeableConcept>,
493    #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
494    pub r#modifier: Vec<super::super::types::CodeableConcept>,
495    #[doc = "Identifies the program under which this may be recovered."]
496    pub r#program_code: Vec<super::super::types::CodeableConcept>,
497    #[doc = "The number of repetitions of a service or product."]
498    pub r#quantity: Option<Box<super::super::types::Quantity>>,
499    #[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."]
500    pub r#unit_price: Option<Box<super::super::types::Money>>,
501    #[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."]
502    pub r#factor: Option<super::super::types::Decimal>,
503    #[doc = "The quantity times the unit price for an additional service or product or charge."]
504    pub r#net: Option<Box<super::super::types::Money>>,
505    #[doc = "Unique Device Identifiers associated with this line item."]
506    pub r#udi: Vec<super::super::types::Reference>,
507    #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
508    pub r#note_number: Vec<super::super::types::PositiveInt>,
509    #[doc = "The adjudication results."]
510    pub r#adjudication: Vec<ExplanationOfBenefitItemAdjudication>,
511    #[doc = "Third-tier of goods and services."]
512    pub r#sub_detail: Vec<ExplanationOfBenefitItemDetailSubDetail>,
513}
514#[allow(clippy::derivable_impls)]
515impl Default for ExplanationOfBenefitItemDetail {
516    fn default() -> Self {
517        Self {
518            r#id: Default::default(),
519            r#extension: Default::default(),
520            r#modifier_extension: Default::default(),
521            r#sequence: super::super::types::PositiveInt {
522                id: Some("$invalid".to_string()),
523                ..Default::default()
524            },
525            r#revenue: Default::default(),
526            r#category: Default::default(),
527            r#product_or_service: Box::new(super::super::types::CodeableConcept {
528                id: Some("$invalid".to_string()),
529                ..Default::default()
530            }),
531            r#modifier: Default::default(),
532            r#program_code: Default::default(),
533            r#quantity: Default::default(),
534            r#unit_price: Default::default(),
535            r#factor: Default::default(),
536            r#net: Default::default(),
537            r#udi: Default::default(),
538            r#note_number: Default::default(),
539            r#adjudication: Default::default(),
540            r#sub_detail: Default::default(),
541        }
542    }
543}
544#[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."]
545#[derive(Debug, Clone, PartialEq)]
546pub struct ExplanationOfBenefitItem {
547    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
548    pub r#id: Option<std::string::String>,
549    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
550    pub r#extension: Vec<super::super::types::Extension>,
551    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
552    pub r#modifier_extension: Vec<super::super::types::Extension>,
553    #[doc = "A number to uniquely identify item entries."]
554    pub r#sequence: super::super::types::PositiveInt,
555    #[doc = "Care team members related to this service or product."]
556    pub r#care_team_sequence: Vec<super::super::types::PositiveInt>,
557    #[doc = "Diagnoses applicable for this service or product."]
558    pub r#diagnosis_sequence: Vec<super::super::types::PositiveInt>,
559    #[doc = "Procedures applicable for this service or product."]
560    pub r#procedure_sequence: Vec<super::super::types::PositiveInt>,
561    #[doc = "Exceptions, special conditions and supporting information applicable for this service or product."]
562    pub r#information_sequence: Vec<super::super::types::PositiveInt>,
563    #[doc = "The type of revenue or cost center providing the product and/or service."]
564    pub r#revenue: Option<Box<super::super::types::CodeableConcept>>,
565    #[doc = "Code to identify the general type of benefits under which products and services are provided."]
566    pub r#category: Option<Box<super::super::types::CodeableConcept>>,
567    #[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."]
568    pub r#product_or_service: Box<super::super::types::CodeableConcept>,
569    #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
570    pub r#modifier: Vec<super::super::types::CodeableConcept>,
571    #[doc = "Identifies the program under which this may be recovered."]
572    pub r#program_code: Vec<super::super::types::CodeableConcept>,
573    #[doc = "The date or dates when the service or product was supplied, performed or completed."]
574    pub r#serviced: Option<ExplanationOfBenefitItemServiced>,
575    #[doc = "Where the product or service was provided."]
576    pub r#location: Option<ExplanationOfBenefitItemLocation>,
577    #[doc = "The number of repetitions of a service or product."]
578    pub r#quantity: Option<Box<super::super::types::Quantity>>,
579    #[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."]
580    pub r#unit_price: Option<Box<super::super::types::Money>>,
581    #[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."]
582    pub r#factor: Option<super::super::types::Decimal>,
583    #[doc = "The quantity times the unit price for an additional service or product or charge."]
584    pub r#net: Option<Box<super::super::types::Money>>,
585    #[doc = "Unique Device Identifiers associated with this line item."]
586    pub r#udi: Vec<super::super::types::Reference>,
587    #[doc = "Physical service site on the patient (limb, tooth, etc.)."]
588    pub r#body_site: Option<Box<super::super::types::CodeableConcept>>,
589    #[doc = "A region or surface of the bodySite, e.g. limb region or tooth surface(s)."]
590    pub r#sub_site: Vec<super::super::types::CodeableConcept>,
591    #[doc = "A billed item may include goods or services provided in multiple encounters."]
592    pub r#encounter: Vec<super::super::types::Reference>,
593    #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
594    pub r#note_number: Vec<super::super::types::PositiveInt>,
595    #[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."]
596    pub r#adjudication: Vec<ExplanationOfBenefitItemAdjudication>,
597    #[doc = "Second-tier of goods and services."]
598    pub r#detail: Vec<ExplanationOfBenefitItemDetail>,
599}
600#[allow(clippy::derivable_impls)]
601impl Default for ExplanationOfBenefitItem {
602    fn default() -> Self {
603        Self {
604            r#id: Default::default(),
605            r#extension: Default::default(),
606            r#modifier_extension: Default::default(),
607            r#sequence: super::super::types::PositiveInt {
608                id: Some("$invalid".to_string()),
609                ..Default::default()
610            },
611            r#care_team_sequence: Default::default(),
612            r#diagnosis_sequence: Default::default(),
613            r#procedure_sequence: Default::default(),
614            r#information_sequence: Default::default(),
615            r#revenue: Default::default(),
616            r#category: Default::default(),
617            r#product_or_service: Box::new(super::super::types::CodeableConcept {
618                id: Some("$invalid".to_string()),
619                ..Default::default()
620            }),
621            r#modifier: Default::default(),
622            r#program_code: Default::default(),
623            r#serviced: Default::default(),
624            r#location: Default::default(),
625            r#quantity: Default::default(),
626            r#unit_price: Default::default(),
627            r#factor: Default::default(),
628            r#net: Default::default(),
629            r#udi: Default::default(),
630            r#body_site: Default::default(),
631            r#sub_site: Default::default(),
632            r#encounter: Default::default(),
633            r#note_number: Default::default(),
634            r#adjudication: Default::default(),
635            r#detail: Default::default(),
636        }
637    }
638}
639#[doc = "The third-tier service adjudications for payor added services."]
640#[derive(Debug, Clone, PartialEq)]
641pub struct ExplanationOfBenefitAddItemDetailSubDetail {
642    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
643    pub r#id: Option<std::string::String>,
644    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
645    pub r#extension: Vec<super::super::types::Extension>,
646    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
647    pub r#modifier_extension: Vec<super::super::types::Extension>,
648    #[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."]
649    pub r#product_or_service: Box<super::super::types::CodeableConcept>,
650    #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
651    pub r#modifier: Vec<super::super::types::CodeableConcept>,
652    #[doc = "The number of repetitions of a service or product."]
653    pub r#quantity: Option<Box<super::super::types::Quantity>>,
654    #[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."]
655    pub r#unit_price: Option<Box<super::super::types::Money>>,
656    #[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."]
657    pub r#factor: Option<super::super::types::Decimal>,
658    #[doc = "The quantity times the unit price for an additional service or product or charge."]
659    pub r#net: Option<Box<super::super::types::Money>>,
660    #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
661    pub r#note_number: Vec<super::super::types::PositiveInt>,
662    #[doc = "The adjudication results."]
663    pub r#adjudication: Vec<ExplanationOfBenefitItemAdjudication>,
664}
665#[allow(clippy::derivable_impls)]
666impl Default for ExplanationOfBenefitAddItemDetailSubDetail {
667    fn default() -> Self {
668        Self {
669            r#id: Default::default(),
670            r#extension: Default::default(),
671            r#modifier_extension: Default::default(),
672            r#product_or_service: Box::new(super::super::types::CodeableConcept {
673                id: Some("$invalid".to_string()),
674                ..Default::default()
675            }),
676            r#modifier: Default::default(),
677            r#quantity: Default::default(),
678            r#unit_price: Default::default(),
679            r#factor: Default::default(),
680            r#net: Default::default(),
681            r#note_number: Default::default(),
682            r#adjudication: Default::default(),
683        }
684    }
685}
686#[doc = "The second-tier service adjudications for payor added services."]
687#[derive(Debug, Clone, PartialEq)]
688pub struct ExplanationOfBenefitAddItemDetail {
689    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
690    pub r#id: Option<std::string::String>,
691    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
692    pub r#extension: Vec<super::super::types::Extension>,
693    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
694    pub r#modifier_extension: Vec<super::super::types::Extension>,
695    #[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."]
696    pub r#product_or_service: Box<super::super::types::CodeableConcept>,
697    #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
698    pub r#modifier: Vec<super::super::types::CodeableConcept>,
699    #[doc = "The number of repetitions of a service or product."]
700    pub r#quantity: Option<Box<super::super::types::Quantity>>,
701    #[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."]
702    pub r#unit_price: Option<Box<super::super::types::Money>>,
703    #[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."]
704    pub r#factor: Option<super::super::types::Decimal>,
705    #[doc = "The quantity times the unit price for an additional service or product or charge."]
706    pub r#net: Option<Box<super::super::types::Money>>,
707    #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
708    pub r#note_number: Vec<super::super::types::PositiveInt>,
709    #[doc = "The adjudication results."]
710    pub r#adjudication: Vec<ExplanationOfBenefitItemAdjudication>,
711    #[doc = "The third-tier service adjudications for payor added services."]
712    pub r#sub_detail: Vec<ExplanationOfBenefitAddItemDetailSubDetail>,
713}
714#[allow(clippy::derivable_impls)]
715impl Default for ExplanationOfBenefitAddItemDetail {
716    fn default() -> Self {
717        Self {
718            r#id: Default::default(),
719            r#extension: Default::default(),
720            r#modifier_extension: Default::default(),
721            r#product_or_service: Box::new(super::super::types::CodeableConcept {
722                id: Some("$invalid".to_string()),
723                ..Default::default()
724            }),
725            r#modifier: Default::default(),
726            r#quantity: Default::default(),
727            r#unit_price: Default::default(),
728            r#factor: Default::default(),
729            r#net: Default::default(),
730            r#note_number: Default::default(),
731            r#adjudication: Default::default(),
732            r#sub_detail: Default::default(),
733        }
734    }
735}
736#[doc = "The first-tier service adjudications for payor added product or service lines."]
737#[derive(Debug, Clone, PartialEq)]
738pub struct ExplanationOfBenefitAddItem {
739    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
740    pub r#id: Option<std::string::String>,
741    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
742    pub r#extension: Vec<super::super::types::Extension>,
743    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
744    pub r#modifier_extension: Vec<super::super::types::Extension>,
745    #[doc = "Claim items which this service line is intended to replace."]
746    pub r#item_sequence: Vec<super::super::types::PositiveInt>,
747    #[doc = "The sequence number of the details within the claim item which this line is intended to replace."]
748    pub r#detail_sequence: Vec<super::super::types::PositiveInt>,
749    #[doc = "The sequence number of the sub-details woithin the details within the claim item which this line is intended to replace."]
750    pub r#sub_detail_sequence: Vec<super::super::types::PositiveInt>,
751    #[doc = "The providers who are authorized for the services rendered to the patient."]
752    pub r#provider: Vec<super::super::types::Reference>,
753    #[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."]
754    pub r#product_or_service: Box<super::super::types::CodeableConcept>,
755    #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
756    pub r#modifier: Vec<super::super::types::CodeableConcept>,
757    #[doc = "Identifies the program under which this may be recovered."]
758    pub r#program_code: Vec<super::super::types::CodeableConcept>,
759    #[doc = "The date or dates when the service or product was supplied, performed or completed."]
760    pub r#serviced: Option<ExplanationOfBenefitAddItemServiced>,
761    #[doc = "Where the product or service was provided."]
762    pub r#location: Option<ExplanationOfBenefitAddItemLocation>,
763    #[doc = "The number of repetitions of a service or product."]
764    pub r#quantity: Option<Box<super::super::types::Quantity>>,
765    #[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."]
766    pub r#unit_price: Option<Box<super::super::types::Money>>,
767    #[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."]
768    pub r#factor: Option<super::super::types::Decimal>,
769    #[doc = "The quantity times the unit price for an additional service or product or charge."]
770    pub r#net: Option<Box<super::super::types::Money>>,
771    #[doc = "Physical service site on the patient (limb, tooth, etc.)."]
772    pub r#body_site: Option<Box<super::super::types::CodeableConcept>>,
773    #[doc = "A region or surface of the bodySite, e.g. limb region or tooth surface(s)."]
774    pub r#sub_site: Vec<super::super::types::CodeableConcept>,
775    #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
776    pub r#note_number: Vec<super::super::types::PositiveInt>,
777    #[doc = "The adjudication results."]
778    pub r#adjudication: Vec<ExplanationOfBenefitItemAdjudication>,
779    #[doc = "The second-tier service adjudications for payor added services."]
780    pub r#detail: Vec<ExplanationOfBenefitAddItemDetail>,
781}
782#[allow(clippy::derivable_impls)]
783impl Default for ExplanationOfBenefitAddItem {
784    fn default() -> Self {
785        Self {
786            r#id: Default::default(),
787            r#extension: Default::default(),
788            r#modifier_extension: Default::default(),
789            r#item_sequence: Default::default(),
790            r#detail_sequence: Default::default(),
791            r#sub_detail_sequence: Default::default(),
792            r#provider: Default::default(),
793            r#product_or_service: Box::new(super::super::types::CodeableConcept {
794                id: Some("$invalid".to_string()),
795                ..Default::default()
796            }),
797            r#modifier: Default::default(),
798            r#program_code: Default::default(),
799            r#serviced: Default::default(),
800            r#location: Default::default(),
801            r#quantity: Default::default(),
802            r#unit_price: Default::default(),
803            r#factor: Default::default(),
804            r#net: Default::default(),
805            r#body_site: Default::default(),
806            r#sub_site: Default::default(),
807            r#note_number: Default::default(),
808            r#adjudication: Default::default(),
809            r#detail: Default::default(),
810        }
811    }
812}
813#[doc = "Categorized monetary totals for the adjudication."]
814#[derive(Debug, Clone, PartialEq)]
815pub struct ExplanationOfBenefitTotal {
816    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
817    pub r#id: Option<std::string::String>,
818    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
819    pub r#extension: Vec<super::super::types::Extension>,
820    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
821    pub r#modifier_extension: Vec<super::super::types::Extension>,
822    #[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."]
823    pub r#category: Box<super::super::types::CodeableConcept>,
824    #[doc = "Monetary total amount associated with the category."]
825    pub r#amount: Box<super::super::types::Money>,
826}
827#[allow(clippy::derivable_impls)]
828impl Default for ExplanationOfBenefitTotal {
829    fn default() -> Self {
830        Self {
831            r#id: Default::default(),
832            r#extension: Default::default(),
833            r#modifier_extension: Default::default(),
834            r#category: Box::new(super::super::types::CodeableConcept {
835                id: Some("$invalid".to_string()),
836                ..Default::default()
837            }),
838            r#amount: Box::new(super::super::types::Money {
839                id: Some("$invalid".to_string()),
840                ..Default::default()
841            }),
842        }
843    }
844}
845#[doc = "Payment details for the adjudication of the claim."]
846#[derive(Debug, Clone, PartialEq)]
847pub struct ExplanationOfBenefitPayment {
848    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
849    pub r#id: Option<std::string::String>,
850    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
851    pub r#extension: Vec<super::super::types::Extension>,
852    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
853    pub r#modifier_extension: Vec<super::super::types::Extension>,
854    #[doc = "Whether this represents partial or complete payment of the benefits payable."]
855    pub r#type: Option<Box<super::super::types::CodeableConcept>>,
856    #[doc = "Total amount of all adjustments to this payment included in this transaction which are not related to this claim's adjudication."]
857    pub r#adjustment: Option<Box<super::super::types::Money>>,
858    #[doc = "Reason for the payment adjustment."]
859    pub r#adjustment_reason: Option<Box<super::super::types::CodeableConcept>>,
860    #[doc = "Estimated date the payment will be issued or the actual issue date of payment."]
861    pub r#date: Option<super::super::types::Date>,
862    #[doc = "Benefits payable less any payment adjustment."]
863    pub r#amount: Option<Box<super::super::types::Money>>,
864    #[doc = "Issuer's unique identifier for the payment instrument."]
865    pub r#identifier: Option<Box<super::super::types::Identifier>>,
866}
867#[allow(clippy::derivable_impls)]
868impl Default for ExplanationOfBenefitPayment {
869    fn default() -> Self {
870        Self {
871            r#id: Default::default(),
872            r#extension: Default::default(),
873            r#modifier_extension: Default::default(),
874            r#type: Default::default(),
875            r#adjustment: Default::default(),
876            r#adjustment_reason: Default::default(),
877            r#date: Default::default(),
878            r#amount: Default::default(),
879            r#identifier: Default::default(),
880        }
881    }
882}
883#[doc = "A note that describes or explains adjudication results in a human readable form."]
884#[derive(Debug, Clone, PartialEq)]
885pub struct ExplanationOfBenefitProcessNote {
886    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
887    pub r#id: Option<std::string::String>,
888    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
889    pub r#extension: Vec<super::super::types::Extension>,
890    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
891    pub r#modifier_extension: Vec<super::super::types::Extension>,
892    #[doc = "A number to uniquely identify a note entry."]
893    pub r#number: Option<super::super::types::PositiveInt>,
894    #[doc = "The business purpose of the note text."]
895    pub r#type: Option<super::super::types::Code>,
896    #[doc = "The explanation or description associated with the processing."]
897    pub r#text: Option<super::super::types::String>,
898    #[doc = "A code to define the language used in the text of the note."]
899    pub r#language: Option<Box<super::super::types::CodeableConcept>>,
900}
901#[allow(clippy::derivable_impls)]
902impl Default for ExplanationOfBenefitProcessNote {
903    fn default() -> Self {
904        Self {
905            r#id: Default::default(),
906            r#extension: Default::default(),
907            r#modifier_extension: Default::default(),
908            r#number: Default::default(),
909            r#type: Default::default(),
910            r#text: Default::default(),
911            r#language: Default::default(),
912        }
913    }
914}
915#[doc = "Benefits Used to date."]
916#[derive(Debug, Clone, PartialEq)]
917pub struct ExplanationOfBenefitBenefitBalanceFinancial {
918    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
919    pub r#id: Option<std::string::String>,
920    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
921    pub r#extension: Vec<super::super::types::Extension>,
922    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
923    pub r#modifier_extension: Vec<super::super::types::Extension>,
924    #[doc = "Classification of benefit being provided."]
925    pub r#type: Box<super::super::types::CodeableConcept>,
926    #[doc = "The quantity of the benefit which is permitted under the coverage."]
927    pub r#allowed: Option<ExplanationOfBenefitBenefitBalanceFinancialAllowed>,
928    #[doc = "The quantity of the benefit which have been consumed to date."]
929    pub r#used: Option<ExplanationOfBenefitBenefitBalanceFinancialUsed>,
930}
931#[allow(clippy::derivable_impls)]
932impl Default for ExplanationOfBenefitBenefitBalanceFinancial {
933    fn default() -> Self {
934        Self {
935            r#id: Default::default(),
936            r#extension: Default::default(),
937            r#modifier_extension: Default::default(),
938            r#type: Box::new(super::super::types::CodeableConcept {
939                id: Some("$invalid".to_string()),
940                ..Default::default()
941            }),
942            r#allowed: Default::default(),
943            r#used: Default::default(),
944        }
945    }
946}
947#[doc = "Balance by Benefit Category."]
948#[derive(Debug, Clone, PartialEq)]
949pub struct ExplanationOfBenefitBenefitBalance {
950    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
951    pub r#id: Option<std::string::String>,
952    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
953    pub r#extension: Vec<super::super::types::Extension>,
954    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
955    pub r#modifier_extension: Vec<super::super::types::Extension>,
956    #[doc = "Code to identify the general type of benefits under which products and services are provided."]
957    pub r#category: Box<super::super::types::CodeableConcept>,
958    #[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."]
959    pub r#excluded: Option<super::super::types::Boolean>,
960    #[doc = "A short name or tag for the benefit."]
961    pub r#name: Option<super::super::types::String>,
962    #[doc = "A richer description of the benefit or services covered."]
963    pub r#description: Option<super::super::types::String>,
964    #[doc = "Is a flag to indicate whether the benefits refer to in-network providers or out-of-network providers."]
965    pub r#network: Option<Box<super::super::types::CodeableConcept>>,
966    #[doc = "Indicates if the benefits apply to an individual or to the family."]
967    pub r#unit: Option<Box<super::super::types::CodeableConcept>>,
968    #[doc = "The term or period of the values such as 'maximum lifetime benefit' or 'maximum annual visits'."]
969    pub r#term: Option<Box<super::super::types::CodeableConcept>>,
970    #[doc = "Benefits Used to date."]
971    pub r#financial: Vec<ExplanationOfBenefitBenefitBalanceFinancial>,
972}
973#[allow(clippy::derivable_impls)]
974impl Default for ExplanationOfBenefitBenefitBalance {
975    fn default() -> Self {
976        Self {
977            r#id: Default::default(),
978            r#extension: Default::default(),
979            r#modifier_extension: Default::default(),
980            r#category: Box::new(super::super::types::CodeableConcept {
981                id: Some("$invalid".to_string()),
982                ..Default::default()
983            }),
984            r#excluded: Default::default(),
985            r#name: Default::default(),
986            r#description: Default::default(),
987            r#network: Default::default(),
988            r#unit: Default::default(),
989            r#term: Default::default(),
990            r#financial: Default::default(),
991        }
992    }
993}
994#[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."]
995#[derive(Debug, Clone, PartialEq)]
996pub struct ExplanationOfBenefit {
997    #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
998    pub r#id: Option<super::super::types::Id>,
999    #[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."]
1000    pub r#meta: Option<Box<super::super::types::Meta>>,
1001    #[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."]
1002    pub r#implicit_rules: Option<super::super::types::Uri>,
1003    #[doc = "The base language in which the resource is written."]
1004    pub r#language: Option<super::super::types::Code>,
1005    #[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."]
1006    pub r#text: Option<Box<super::super::types::Narrative>>,
1007    #[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."]
1008    pub r#contained: Vec<super::super::Resource>,
1009    #[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."]
1010    pub r#extension: Vec<super::super::types::Extension>,
1011    #[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)."]
1012    pub r#modifier_extension: Vec<super::super::types::Extension>,
1013    #[doc = "A unique identifier assigned to this explanation of benefit."]
1014    pub r#identifier: Vec<super::super::types::Identifier>,
1015    #[doc = "The status of the resource instance."]
1016    pub r#status: super::super::types::Code,
1017    #[doc = "The category of claim, e.g. oral, pharmacy, vision, institutional, professional."]
1018    pub r#type: Box<super::super::types::CodeableConcept>,
1019    #[doc = "A finer grained suite of claim type codes which may convey additional information such as Inpatient vs Outpatient and/or a specialty service."]
1020    pub r#sub_type: Option<Box<super::super::types::CodeableConcept>>,
1021    #[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."]
1022    pub r#use: super::super::types::Code,
1023    #[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."]
1024    pub r#patient: Box<super::super::types::Reference>,
1025    #[doc = "The period for which charges are being submitted."]
1026    pub r#billable_period: Option<Box<super::super::types::Period>>,
1027    #[doc = "The date this resource was created."]
1028    pub r#created: super::super::types::DateTime,
1029    #[doc = "Individual who created the claim, predetermination or preauthorization."]
1030    pub r#enterer: Option<Box<super::super::types::Reference>>,
1031    #[doc = "The party responsible for authorization, adjudication and reimbursement."]
1032    pub r#insurer: Box<super::super::types::Reference>,
1033    #[doc = "The provider which is responsible for the claim, predetermination or preauthorization."]
1034    pub r#provider: Box<super::super::types::Reference>,
1035    #[doc = "The provider-required urgency of processing the request. Typical values include: stat, routine deferred."]
1036    pub r#priority: Option<Box<super::super::types::CodeableConcept>>,
1037    #[doc = "A code to indicate whether and for whom funds are to be reserved for future claims."]
1038    pub r#funds_reserve_requested: Option<Box<super::super::types::CodeableConcept>>,
1039    #[doc = "A code, used only on a response to a preauthorization, to indicate whether the benefits payable have been reserved and for whom."]
1040    pub r#funds_reserve: Option<Box<super::super::types::CodeableConcept>>,
1041    #[doc = "Other claims which are related to this claim such as prior submissions or claims for related services or for the same event."]
1042    pub r#related: Vec<ExplanationOfBenefitRelated>,
1043    #[doc = "Prescription to support the dispensing of pharmacy, device or vision products."]
1044    pub r#prescription: Option<Box<super::super::types::Reference>>,
1045    #[doc = "Original prescription which has been superseded by this prescription to support the dispensing of pharmacy services, medications or products."]
1046    pub r#original_prescription: Option<Box<super::super::types::Reference>>,
1047    #[doc = "The party to be reimbursed for cost of the products and services according to the terms of the policy."]
1048    pub r#payee: Option<ExplanationOfBenefitPayee>,
1049    #[doc = "A reference to a referral resource."]
1050    pub r#referral: Option<Box<super::super::types::Reference>>,
1051    #[doc = "Facility where the services were provided."]
1052    pub r#facility: Option<Box<super::super::types::Reference>>,
1053    #[doc = "The business identifier for the instance of the adjudication request: claim predetermination or preauthorization."]
1054    pub r#claim: Option<Box<super::super::types::Reference>>,
1055    #[doc = "The business identifier for the instance of the adjudication response: claim, predetermination or preauthorization response."]
1056    pub r#claim_response: Option<Box<super::super::types::Reference>>,
1057    #[doc = "The outcome of the claim, predetermination, or preauthorization processing."]
1058    pub r#outcome: super::super::types::Code,
1059    #[doc = "A human readable description of the status of the adjudication."]
1060    pub r#disposition: Option<super::super::types::String>,
1061    #[doc = "Reference from the Insurer which is used in later communications which refers to this adjudication."]
1062    pub r#pre_auth_ref: Vec<super::super::types::String>,
1063    #[doc = "The timeframe during which the supplied preauthorization reference may be quoted on claims to obtain the adjudication as provided."]
1064    pub r#pre_auth_ref_period: Vec<super::super::types::Period>,
1065    #[doc = "The members of the team who provided the products and services."]
1066    pub r#care_team: Vec<ExplanationOfBenefitCareTeam>,
1067    #[doc = "Additional information codes regarding exceptions, special considerations, the condition, situation, prior or concurrent issues."]
1068    pub r#supporting_info: Vec<ExplanationOfBenefitSupportingInfo>,
1069    #[doc = "Information about diagnoses relevant to the claim items."]
1070    pub r#diagnosis: Vec<ExplanationOfBenefitDiagnosis>,
1071    #[doc = "Procedures performed on the patient relevant to the billing items with the claim."]
1072    pub r#procedure: Vec<ExplanationOfBenefitProcedure>,
1073    #[doc = "This indicates the relative order of a series of EOBs related to different coverages for the same suite of services."]
1074    pub r#precedence: Option<super::super::types::PositiveInt>,
1075    #[doc = "Financial instruments for reimbursement for the health care products and services specified on the claim."]
1076    pub r#insurance: Vec<ExplanationOfBenefitInsurance>,
1077    #[doc = "Details of a accident which resulted in injuries which required the products and services listed in the claim."]
1078    pub r#accident: Option<ExplanationOfBenefitAccident>,
1079    #[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."]
1080    pub r#item: Vec<ExplanationOfBenefitItem>,
1081    #[doc = "The first-tier service adjudications for payor added product or service lines."]
1082    pub r#add_item: Vec<ExplanationOfBenefitAddItem>,
1083    #[doc = "The adjudication results which are presented at the header level rather than at the line-item or add-item levels."]
1084    pub r#adjudication: Vec<ExplanationOfBenefitItemAdjudication>,
1085    #[doc = "Categorized monetary totals for the adjudication."]
1086    pub r#total: Vec<ExplanationOfBenefitTotal>,
1087    #[doc = "Payment details for the adjudication of the claim."]
1088    pub r#payment: Option<ExplanationOfBenefitPayment>,
1089    #[doc = "A code for the form to be used for printing the content."]
1090    pub r#form_code: Option<Box<super::super::types::CodeableConcept>>,
1091    #[doc = "The actual form, by reference or inclusion, for printing the content or an EOB."]
1092    pub r#form: Option<Box<super::super::types::Attachment>>,
1093    #[doc = "A note that describes or explains adjudication results in a human readable form."]
1094    pub r#process_note: Vec<ExplanationOfBenefitProcessNote>,
1095    #[doc = "The term of the benefits documented in this response."]
1096    pub r#benefit_period: Option<Box<super::super::types::Period>>,
1097    #[doc = "Balance by Benefit Category."]
1098    pub r#benefit_balance: Vec<ExplanationOfBenefitBenefitBalance>,
1099}
1100#[allow(clippy::derivable_impls)]
1101impl Default for ExplanationOfBenefit {
1102    fn default() -> Self {
1103        Self {
1104            r#id: Default::default(),
1105            r#meta: Default::default(),
1106            r#implicit_rules: Default::default(),
1107            r#language: Default::default(),
1108            r#text: Default::default(),
1109            r#contained: Default::default(),
1110            r#extension: Default::default(),
1111            r#modifier_extension: Default::default(),
1112            r#identifier: Default::default(),
1113            r#status: super::super::types::Code {
1114                id: Some("$invalid".to_string()),
1115                ..Default::default()
1116            },
1117            r#type: Box::new(super::super::types::CodeableConcept {
1118                id: Some("$invalid".to_string()),
1119                ..Default::default()
1120            }),
1121            r#sub_type: Default::default(),
1122            r#use: super::super::types::Code {
1123                id: Some("$invalid".to_string()),
1124                ..Default::default()
1125            },
1126            r#patient: Box::new(super::super::types::Reference {
1127                id: Some("$invalid".to_string()),
1128                ..Default::default()
1129            }),
1130            r#billable_period: Default::default(),
1131            r#created: super::super::types::DateTime {
1132                id: Some("$invalid".to_string()),
1133                ..Default::default()
1134            },
1135            r#enterer: Default::default(),
1136            r#insurer: Box::new(super::super::types::Reference {
1137                id: Some("$invalid".to_string()),
1138                ..Default::default()
1139            }),
1140            r#provider: Box::new(super::super::types::Reference {
1141                id: Some("$invalid".to_string()),
1142                ..Default::default()
1143            }),
1144            r#priority: Default::default(),
1145            r#funds_reserve_requested: Default::default(),
1146            r#funds_reserve: Default::default(),
1147            r#related: Default::default(),
1148            r#prescription: Default::default(),
1149            r#original_prescription: Default::default(),
1150            r#payee: Default::default(),
1151            r#referral: Default::default(),
1152            r#facility: Default::default(),
1153            r#claim: Default::default(),
1154            r#claim_response: Default::default(),
1155            r#outcome: super::super::types::Code {
1156                id: Some("$invalid".to_string()),
1157                ..Default::default()
1158            },
1159            r#disposition: Default::default(),
1160            r#pre_auth_ref: Default::default(),
1161            r#pre_auth_ref_period: Default::default(),
1162            r#care_team: Default::default(),
1163            r#supporting_info: Default::default(),
1164            r#diagnosis: Default::default(),
1165            r#procedure: Default::default(),
1166            r#precedence: Default::default(),
1167            r#insurance: Default::default(),
1168            r#accident: Default::default(),
1169            r#item: Default::default(),
1170            r#add_item: Default::default(),
1171            r#adjudication: Default::default(),
1172            r#total: Default::default(),
1173            r#payment: Default::default(),
1174            r#form_code: Default::default(),
1175            r#form: Default::default(),
1176            r#process_note: Default::default(),
1177            r#benefit_period: Default::default(),
1178            r#benefit_balance: Default::default(),
1179        }
1180    }
1181}