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