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 ClaimResponseEventWhen {
5 DateTime(super::super::types::DateTime),
6 Period(Box<super::super::types::Period>),
7 #[default]
8 Invalid,
9}
10#[doc = "The date or dates when the service or product was supplied, performed or completed."]
11#[derive(Default, Debug, Clone, PartialEq)]
12pub enum ClaimResponseAddItemServiced {
13 Date(super::super::types::Date),
14 Period(Box<super::super::types::Period>),
15 #[default]
16 Invalid,
17}
18#[doc = "Where the product or service was provided."]
19#[derive(Default, Debug, Clone, PartialEq)]
20pub enum ClaimResponseAddItemLocation {
21 CodeableConcept(Box<super::super::types::CodeableConcept>),
22 Address(Box<super::super::types::Address>),
23 Reference(Box<super::super::types::Reference>),
24 #[default]
25 Invalid,
26}
27#[doc = "Information code for an event with a corresponding date or period."]
28#[derive(Debug, Clone, PartialEq)]
29pub struct ClaimResponseEvent {
30 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
31 pub r#id: Option<std::string::String>,
32 #[doc = "May be 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."]
33 pub r#extension: Vec<super::super::types::Extension>,
34 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/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)."]
35 pub r#modifier_extension: Vec<super::super::types::Extension>,
36 #[doc = "A coded event such as when a service is expected or a card printed."]
37 pub r#type: Box<super::super::types::CodeableConcept>,
38 #[doc = "A date or period in the past or future indicating when the event occurred or is expectd to occur."]
39 pub r#when: ClaimResponseEventWhen,
40}
41#[allow(clippy::derivable_impls)]
42impl Default for ClaimResponseEvent {
43 fn default() -> Self {
44 Self {
45 r#id: Default::default(),
46 r#extension: Default::default(),
47 r#modifier_extension: Default::default(),
48 r#type: Box::new(super::super::types::CodeableConcept {
49 id: Some("$invalid".to_string()),
50 ..Default::default()
51 }),
52 r#when: Default::default(),
53 }
54 }
55}
56#[doc = "The high-level results of the adjudication if adjudication has been performed."]
57#[derive(Debug, Clone, PartialEq)]
58pub struct ClaimResponseItemReviewOutcome {
59 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
60 pub r#id: Option<std::string::String>,
61 #[doc = "May be 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."]
62 pub r#extension: Vec<super::super::types::Extension>,
63 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/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)."]
64 pub r#modifier_extension: Vec<super::super::types::Extension>,
65 #[doc = "The result of the claim, predetermination, or preauthorization adjudication."]
66 pub r#decision: Option<Box<super::super::types::CodeableConcept>>,
67 #[doc = "The reasons for the result of the claim, predetermination, or preauthorization adjudication."]
68 pub r#reason: Vec<super::super::types::CodeableConcept>,
69 #[doc = "Reference from the Insurer which is used in later communications which refers to this adjudication."]
70 pub r#pre_auth_ref: Option<super::super::types::String>,
71 #[doc = "The time frame during which this authorization is effective."]
72 pub r#pre_auth_period: Option<Box<super::super::types::Period>>,
73}
74#[allow(clippy::derivable_impls)]
75impl Default for ClaimResponseItemReviewOutcome {
76 fn default() -> Self {
77 Self {
78 r#id: Default::default(),
79 r#extension: Default::default(),
80 r#modifier_extension: Default::default(),
81 r#decision: Default::default(),
82 r#reason: Default::default(),
83 r#pre_auth_ref: Default::default(),
84 r#pre_auth_period: Default::default(),
85 }
86 }
87}
88#[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."]
89#[derive(Debug, Clone, PartialEq)]
90pub struct ClaimResponseItemAdjudication {
91 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
92 pub r#id: Option<std::string::String>,
93 #[doc = "May be 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."]
94 pub r#extension: Vec<super::super::types::Extension>,
95 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/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)."]
96 pub r#modifier_extension: Vec<super::super::types::Extension>,
97 #[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."]
98 pub r#category: Box<super::super::types::CodeableConcept>,
99 #[doc = "A code supporting the understanding of the adjudication result and explaining variance from expected amount."]
100 pub r#reason: Option<Box<super::super::types::CodeableConcept>>,
101 #[doc = "Monetary amount associated with the category."]
102 pub r#amount: Option<Box<super::super::types::Money>>,
103 #[doc = "A non-monetary value associated with the category. Mutually exclusive to the amount element above."]
104 pub r#quantity: Option<Box<super::super::types::Quantity>>,
105}
106#[allow(clippy::derivable_impls)]
107impl Default for ClaimResponseItemAdjudication {
108 fn default() -> Self {
109 Self {
110 r#id: Default::default(),
111 r#extension: Default::default(),
112 r#modifier_extension: Default::default(),
113 r#category: Box::new(super::super::types::CodeableConcept {
114 id: Some("$invalid".to_string()),
115 ..Default::default()
116 }),
117 r#reason: Default::default(),
118 r#amount: Default::default(),
119 r#quantity: Default::default(),
120 }
121 }
122}
123#[doc = "A sub-detail adjudication of a simple product or service."]
124#[derive(Debug, Clone, PartialEq)]
125pub struct ClaimResponseItemDetailSubDetail {
126 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
127 pub r#id: Option<std::string::String>,
128 #[doc = "May be 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."]
129 pub r#extension: Vec<super::super::types::Extension>,
130 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/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)."]
131 pub r#modifier_extension: Vec<super::super::types::Extension>,
132 #[doc = "A number to uniquely reference the claim sub-detail entry."]
133 pub r#sub_detail_sequence: super::super::types::PositiveInt,
134 #[doc = "Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners."]
135 pub r#trace_number: Vec<super::super::types::Identifier>,
136 #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
137 pub r#note_number: Vec<super::super::types::PositiveInt>,
138 #[doc = "The high-level results of the adjudication if adjudication has been performed."]
139 pub r#review_outcome: Option<ClaimResponseItemReviewOutcome>,
140 #[doc = "The adjudication results."]
141 pub r#adjudication: Vec<ClaimResponseItemAdjudication>,
142}
143#[allow(clippy::derivable_impls)]
144impl Default for ClaimResponseItemDetailSubDetail {
145 fn default() -> Self {
146 Self {
147 r#id: Default::default(),
148 r#extension: Default::default(),
149 r#modifier_extension: Default::default(),
150 r#sub_detail_sequence: super::super::types::PositiveInt {
151 id: Some("$invalid".to_string()),
152 ..Default::default()
153 },
154 r#trace_number: Default::default(),
155 r#note_number: Default::default(),
156 r#review_outcome: Default::default(),
157 r#adjudication: Default::default(),
158 }
159 }
160}
161#[doc = "A claim detail. Either a simple (a product or service) or a 'group' of sub-details which are simple items."]
162#[derive(Debug, Clone, PartialEq)]
163pub struct ClaimResponseItemDetail {
164 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
165 pub r#id: Option<std::string::String>,
166 #[doc = "May be 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."]
167 pub r#extension: Vec<super::super::types::Extension>,
168 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/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)."]
169 pub r#modifier_extension: Vec<super::super::types::Extension>,
170 #[doc = "A number to uniquely reference the claim detail entry."]
171 pub r#detail_sequence: super::super::types::PositiveInt,
172 #[doc = "Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners."]
173 pub r#trace_number: Vec<super::super::types::Identifier>,
174 #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
175 pub r#note_number: Vec<super::super::types::PositiveInt>,
176 #[doc = "The high-level results of the adjudication if adjudication has been performed."]
177 pub r#review_outcome: Option<ClaimResponseItemReviewOutcome>,
178 #[doc = "The adjudication results."]
179 pub r#adjudication: Vec<ClaimResponseItemAdjudication>,
180 #[doc = "A sub-detail adjudication of a simple product or service."]
181 pub r#sub_detail: Vec<ClaimResponseItemDetailSubDetail>,
182}
183#[allow(clippy::derivable_impls)]
184impl Default for ClaimResponseItemDetail {
185 fn default() -> Self {
186 Self {
187 r#id: Default::default(),
188 r#extension: Default::default(),
189 r#modifier_extension: Default::default(),
190 r#detail_sequence: super::super::types::PositiveInt {
191 id: Some("$invalid".to_string()),
192 ..Default::default()
193 },
194 r#trace_number: Default::default(),
195 r#note_number: Default::default(),
196 r#review_outcome: Default::default(),
197 r#adjudication: Default::default(),
198 r#sub_detail: Default::default(),
199 }
200 }
201}
202#[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."]
203#[derive(Debug, Clone, PartialEq)]
204pub struct ClaimResponseItem {
205 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
206 pub r#id: Option<std::string::String>,
207 #[doc = "May be 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."]
208 pub r#extension: Vec<super::super::types::Extension>,
209 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/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)."]
210 pub r#modifier_extension: Vec<super::super::types::Extension>,
211 #[doc = "A number to uniquely reference the claim item entries."]
212 pub r#item_sequence: super::super::types::PositiveInt,
213 #[doc = "Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners."]
214 pub r#trace_number: Vec<super::super::types::Identifier>,
215 #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
216 pub r#note_number: Vec<super::super::types::PositiveInt>,
217 #[doc = "The high-level results of the adjudication if adjudication has been performed."]
218 pub r#review_outcome: Option<ClaimResponseItemReviewOutcome>,
219 #[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."]
220 pub r#adjudication: Vec<ClaimResponseItemAdjudication>,
221 #[doc = "A claim detail. Either a simple (a product or service) or a 'group' of sub-details which are simple items."]
222 pub r#detail: Vec<ClaimResponseItemDetail>,
223}
224#[allow(clippy::derivable_impls)]
225impl Default for ClaimResponseItem {
226 fn default() -> Self {
227 Self {
228 r#id: Default::default(),
229 r#extension: Default::default(),
230 r#modifier_extension: Default::default(),
231 r#item_sequence: super::super::types::PositiveInt {
232 id: Some("$invalid".to_string()),
233 ..Default::default()
234 },
235 r#trace_number: Default::default(),
236 r#note_number: Default::default(),
237 r#review_outcome: Default::default(),
238 r#adjudication: Default::default(),
239 r#detail: Default::default(),
240 }
241 }
242}
243#[doc = "Physical location where the service is performed or applies."]
244#[derive(Debug, Clone, PartialEq)]
245pub struct ClaimResponseAddItemBodySite {
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 = "Physical service site on the patient (limb, tooth, etc.)."]
253 pub r#site: Vec<super::super::types::CodeableReference>,
254 #[doc = "A region or surface of the bodySite, e.g. limb region or tooth surface(s)."]
255 pub r#sub_site: Vec<super::super::types::CodeableConcept>,
256}
257#[allow(clippy::derivable_impls)]
258impl Default for ClaimResponseAddItemBodySite {
259 fn default() -> Self {
260 Self {
261 r#id: Default::default(),
262 r#extension: Default::default(),
263 r#modifier_extension: Default::default(),
264 r#site: Default::default(),
265 r#sub_site: Default::default(),
266 }
267 }
268}
269#[doc = "The third-tier service adjudications for payor added services."]
270#[derive(Debug, Clone, PartialEq)]
271pub struct ClaimResponseAddItemDetailSubDetail {
272 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
273 pub r#id: Option<std::string::String>,
274 #[doc = "May be 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."]
275 pub r#extension: Vec<super::super::types::Extension>,
276 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/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)."]
277 pub r#modifier_extension: Vec<super::super::types::Extension>,
278 #[doc = "Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners."]
279 pub r#trace_number: Vec<super::super::types::Identifier>,
280 #[doc = "The type of revenue or cost center providing the product and/or service."]
281 pub r#revenue: Option<Box<super::super::types::CodeableConcept>>,
282 #[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."]
283 pub r#product_or_service: Option<Box<super::super::types::CodeableConcept>>,
284 #[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."]
285 pub r#product_or_service_end: Option<Box<super::super::types::CodeableConcept>>,
286 #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
287 pub r#modifier: Vec<super::super::types::CodeableConcept>,
288 #[doc = "The number of repetitions of a service or product."]
289 pub r#quantity: Option<Box<super::super::types::Quantity>>,
290 #[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."]
291 pub r#unit_price: Option<Box<super::super::types::Money>>,
292 #[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."]
293 pub r#factor: Option<super::super::types::Decimal>,
294 #[doc = "The total of taxes applicable for this product or service."]
295 pub r#tax: Option<Box<super::super::types::Money>>,
296 #[doc = "The total amount claimed for the addItem.detail.subDetail. Net = unit price * quantity * factor."]
297 pub r#net: Option<Box<super::super::types::Money>>,
298 #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
299 pub r#note_number: Vec<super::super::types::PositiveInt>,
300 #[doc = "The high-level results of the adjudication if adjudication has been performed."]
301 pub r#review_outcome: Option<ClaimResponseItemReviewOutcome>,
302 #[doc = "The adjudication results."]
303 pub r#adjudication: Vec<ClaimResponseItemAdjudication>,
304}
305#[allow(clippy::derivable_impls)]
306impl Default for ClaimResponseAddItemDetailSubDetail {
307 fn default() -> Self {
308 Self {
309 r#id: Default::default(),
310 r#extension: Default::default(),
311 r#modifier_extension: Default::default(),
312 r#trace_number: Default::default(),
313 r#revenue: Default::default(),
314 r#product_or_service: Default::default(),
315 r#product_or_service_end: Default::default(),
316 r#modifier: Default::default(),
317 r#quantity: Default::default(),
318 r#unit_price: Default::default(),
319 r#factor: Default::default(),
320 r#tax: Default::default(),
321 r#net: Default::default(),
322 r#note_number: Default::default(),
323 r#review_outcome: Default::default(),
324 r#adjudication: Default::default(),
325 }
326 }
327}
328#[doc = "The second-tier service adjudications for payor added services."]
329#[derive(Debug, Clone, PartialEq)]
330pub struct ClaimResponseAddItemDetail {
331 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
332 pub r#id: Option<std::string::String>,
333 #[doc = "May be 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."]
334 pub r#extension: Vec<super::super::types::Extension>,
335 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/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)."]
336 pub r#modifier_extension: Vec<super::super::types::Extension>,
337 #[doc = "Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners."]
338 pub r#trace_number: Vec<super::super::types::Identifier>,
339 #[doc = "The type of revenue or cost center providing the product and/or service."]
340 pub r#revenue: Option<Box<super::super::types::CodeableConcept>>,
341 #[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."]
342 pub r#product_or_service: Option<Box<super::super::types::CodeableConcept>>,
343 #[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."]
344 pub r#product_or_service_end: Option<Box<super::super::types::CodeableConcept>>,
345 #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
346 pub r#modifier: Vec<super::super::types::CodeableConcept>,
347 #[doc = "The number of repetitions of a service or product."]
348 pub r#quantity: Option<Box<super::super::types::Quantity>>,
349 #[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."]
350 pub r#unit_price: Option<Box<super::super::types::Money>>,
351 #[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."]
352 pub r#factor: Option<super::super::types::Decimal>,
353 #[doc = "The total of taxes applicable for this product or service."]
354 pub r#tax: Option<Box<super::super::types::Money>>,
355 #[doc = "The total amount claimed for the group (if a grouper) or the addItem.detail. Net = unit price * quantity * factor."]
356 pub r#net: Option<Box<super::super::types::Money>>,
357 #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
358 pub r#note_number: Vec<super::super::types::PositiveInt>,
359 #[doc = "The high-level results of the adjudication if adjudication has been performed."]
360 pub r#review_outcome: Option<ClaimResponseItemReviewOutcome>,
361 #[doc = "The adjudication results."]
362 pub r#adjudication: Vec<ClaimResponseItemAdjudication>,
363 #[doc = "The third-tier service adjudications for payor added services."]
364 pub r#sub_detail: Vec<ClaimResponseAddItemDetailSubDetail>,
365}
366#[allow(clippy::derivable_impls)]
367impl Default for ClaimResponseAddItemDetail {
368 fn default() -> Self {
369 Self {
370 r#id: Default::default(),
371 r#extension: Default::default(),
372 r#modifier_extension: Default::default(),
373 r#trace_number: Default::default(),
374 r#revenue: Default::default(),
375 r#product_or_service: Default::default(),
376 r#product_or_service_end: Default::default(),
377 r#modifier: Default::default(),
378 r#quantity: Default::default(),
379 r#unit_price: Default::default(),
380 r#factor: Default::default(),
381 r#tax: Default::default(),
382 r#net: Default::default(),
383 r#note_number: Default::default(),
384 r#review_outcome: Default::default(),
385 r#adjudication: Default::default(),
386 r#sub_detail: Default::default(),
387 }
388 }
389}
390#[doc = "The first-tier service adjudications for payor added product or service lines."]
391#[derive(Debug, Clone, PartialEq)]
392pub struct ClaimResponseAddItem {
393 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
394 pub r#id: Option<std::string::String>,
395 #[doc = "May be 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."]
396 pub r#extension: Vec<super::super::types::Extension>,
397 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/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)."]
398 pub r#modifier_extension: Vec<super::super::types::Extension>,
399 #[doc = "Claim items which this service line is intended to replace."]
400 pub r#item_sequence: Vec<super::super::types::PositiveInt>,
401 #[doc = "The sequence number of the details within the claim item which this line is intended to replace."]
402 pub r#detail_sequence: Vec<super::super::types::PositiveInt>,
403 #[doc = "The sequence number of the sub-details within the details within the claim item which this line is intended to replace."]
404 pub r#subdetail_sequence: Vec<super::super::types::PositiveInt>,
405 #[doc = "Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners."]
406 pub r#trace_number: Vec<super::super::types::Identifier>,
407 #[doc = "The providers who are authorized for the services rendered to the patient."]
408 pub r#provider: Vec<super::super::types::Reference>,
409 #[doc = "The type of revenue or cost center providing the product and/or service."]
410 pub r#revenue: Option<Box<super::super::types::CodeableConcept>>,
411 #[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."]
412 pub r#product_or_service: Option<Box<super::super::types::CodeableConcept>>,
413 #[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."]
414 pub r#product_or_service_end: Option<Box<super::super::types::CodeableConcept>>,
415 #[doc = "Request or Referral for Goods or Service to be rendered."]
416 pub r#request: Vec<super::super::types::Reference>,
417 #[doc = "Item typification or modifiers codes to convey additional context for the product or service."]
418 pub r#modifier: Vec<super::super::types::CodeableConcept>,
419 #[doc = "Identifies the program under which this may be recovered."]
420 pub r#program_code: Vec<super::super::types::CodeableConcept>,
421 #[doc = "The date or dates when the service or product was supplied, performed or completed."]
422 pub r#serviced: Option<ClaimResponseAddItemServiced>,
423 #[doc = "Where the product or service was provided."]
424 pub r#location: Option<ClaimResponseAddItemLocation>,
425 #[doc = "The number of repetitions of a service or product."]
426 pub r#quantity: Option<Box<super::super::types::Quantity>>,
427 #[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."]
428 pub r#unit_price: Option<Box<super::super::types::Money>>,
429 #[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."]
430 pub r#factor: Option<super::super::types::Decimal>,
431 #[doc = "The total of taxes applicable for this product or service."]
432 pub r#tax: Option<Box<super::super::types::Money>>,
433 #[doc = "The total amount claimed for the group (if a grouper) or the addItem. Net = unit price * quantity * factor."]
434 pub r#net: Option<Box<super::super::types::Money>>,
435 #[doc = "Physical location where the service is performed or applies."]
436 pub r#body_site: Vec<ClaimResponseAddItemBodySite>,
437 #[doc = "The numbers associated with notes below which apply to the adjudication of this item."]
438 pub r#note_number: Vec<super::super::types::PositiveInt>,
439 #[doc = "The high-level results of the adjudication if adjudication has been performed."]
440 pub r#review_outcome: Option<ClaimResponseItemReviewOutcome>,
441 #[doc = "The adjudication results."]
442 pub r#adjudication: Vec<ClaimResponseItemAdjudication>,
443 #[doc = "The second-tier service adjudications for payor added services."]
444 pub r#detail: Vec<ClaimResponseAddItemDetail>,
445}
446#[allow(clippy::derivable_impls)]
447impl Default for ClaimResponseAddItem {
448 fn default() -> Self {
449 Self {
450 r#id: Default::default(),
451 r#extension: Default::default(),
452 r#modifier_extension: Default::default(),
453 r#item_sequence: Default::default(),
454 r#detail_sequence: Default::default(),
455 r#subdetail_sequence: Default::default(),
456 r#trace_number: Default::default(),
457 r#provider: Default::default(),
458 r#revenue: Default::default(),
459 r#product_or_service: Default::default(),
460 r#product_or_service_end: Default::default(),
461 r#request: Default::default(),
462 r#modifier: Default::default(),
463 r#program_code: Default::default(),
464 r#serviced: Default::default(),
465 r#location: Default::default(),
466 r#quantity: Default::default(),
467 r#unit_price: Default::default(),
468 r#factor: Default::default(),
469 r#tax: Default::default(),
470 r#net: Default::default(),
471 r#body_site: Default::default(),
472 r#note_number: Default::default(),
473 r#review_outcome: Default::default(),
474 r#adjudication: Default::default(),
475 r#detail: Default::default(),
476 }
477 }
478}
479#[doc = "Categorized monetary totals for the adjudication."]
480#[derive(Debug, Clone, PartialEq)]
481pub struct ClaimResponseTotal {
482 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
483 pub r#id: Option<std::string::String>,
484 #[doc = "May be 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."]
485 pub r#extension: Vec<super::super::types::Extension>,
486 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/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)."]
487 pub r#modifier_extension: Vec<super::super::types::Extension>,
488 #[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."]
489 pub r#category: Box<super::super::types::CodeableConcept>,
490 #[doc = "Monetary total amount associated with the category."]
491 pub r#amount: Box<super::super::types::Money>,
492}
493#[allow(clippy::derivable_impls)]
494impl Default for ClaimResponseTotal {
495 fn default() -> Self {
496 Self {
497 r#id: Default::default(),
498 r#extension: Default::default(),
499 r#modifier_extension: Default::default(),
500 r#category: Box::new(super::super::types::CodeableConcept {
501 id: Some("$invalid".to_string()),
502 ..Default::default()
503 }),
504 r#amount: Box::new(super::super::types::Money {
505 id: Some("$invalid".to_string()),
506 ..Default::default()
507 }),
508 }
509 }
510}
511#[doc = "Payment details for the adjudication of the claim."]
512#[derive(Debug, Clone, PartialEq)]
513pub struct ClaimResponsePayment {
514 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
515 pub r#id: Option<std::string::String>,
516 #[doc = "May be 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."]
517 pub r#extension: Vec<super::super::types::Extension>,
518 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/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)."]
519 pub r#modifier_extension: Vec<super::super::types::Extension>,
520 #[doc = "Whether this represents partial or complete payment of the benefits payable."]
521 pub r#type: Box<super::super::types::CodeableConcept>,
522 #[doc = "Total amount of all adjustments to this payment included in this transaction which are not related to this claim's adjudication."]
523 pub r#adjustment: Option<Box<super::super::types::Money>>,
524 #[doc = "Reason for the payment adjustment."]
525 pub r#adjustment_reason: Option<Box<super::super::types::CodeableConcept>>,
526 #[doc = "Estimated date the payment will be issued or the actual issue date of payment."]
527 pub r#date: Option<super::super::types::Date>,
528 #[doc = "Benefits payable less any payment adjustment."]
529 pub r#amount: Box<super::super::types::Money>,
530 #[doc = "Issuer's unique identifier for the payment instrument."]
531 pub r#identifier: Option<Box<super::super::types::Identifier>>,
532}
533#[allow(clippy::derivable_impls)]
534impl Default for ClaimResponsePayment {
535 fn default() -> Self {
536 Self {
537 r#id: Default::default(),
538 r#extension: Default::default(),
539 r#modifier_extension: Default::default(),
540 r#type: Box::new(super::super::types::CodeableConcept {
541 id: Some("$invalid".to_string()),
542 ..Default::default()
543 }),
544 r#adjustment: Default::default(),
545 r#adjustment_reason: Default::default(),
546 r#date: Default::default(),
547 r#amount: Box::new(super::super::types::Money {
548 id: Some("$invalid".to_string()),
549 ..Default::default()
550 }),
551 r#identifier: Default::default(),
552 }
553 }
554}
555#[doc = "A note that describes or explains adjudication results in a human readable form."]
556#[derive(Debug, Clone, PartialEq)]
557pub struct ClaimResponseProcessNote {
558 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
559 pub r#id: Option<std::string::String>,
560 #[doc = "May be 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."]
561 pub r#extension: Vec<super::super::types::Extension>,
562 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/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)."]
563 pub r#modifier_extension: Vec<super::super::types::Extension>,
564 #[doc = "A number to uniquely identify a note entry."]
565 pub r#number: Option<super::super::types::PositiveInt>,
566 #[doc = "The business purpose of the note text."]
567 pub r#type: Option<Box<super::super::types::CodeableConcept>>,
568 #[doc = "The explanation or description associated with the processing."]
569 pub r#text: super::super::types::String,
570 #[doc = "A code to define the language used in the text of the note."]
571 pub r#language: Option<Box<super::super::types::CodeableConcept>>,
572}
573#[allow(clippy::derivable_impls)]
574impl Default for ClaimResponseProcessNote {
575 fn default() -> Self {
576 Self {
577 r#id: Default::default(),
578 r#extension: Default::default(),
579 r#modifier_extension: Default::default(),
580 r#number: Default::default(),
581 r#type: Default::default(),
582 r#text: super::super::types::String {
583 id: Some("$invalid".to_string()),
584 ..Default::default()
585 },
586 r#language: Default::default(),
587 }
588 }
589}
590#[doc = "Financial instruments for reimbursement for the health care products and services specified on the claim."]
591#[derive(Debug, Clone, PartialEq)]
592pub struct ClaimResponseInsurance {
593 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
594 pub r#id: Option<std::string::String>,
595 #[doc = "May be 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."]
596 pub r#extension: Vec<super::super::types::Extension>,
597 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/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)."]
598 pub r#modifier_extension: Vec<super::super::types::Extension>,
599 #[doc = "A number to uniquely identify insurance entries and provide a sequence of coverages to convey coordination of benefit order."]
600 pub r#sequence: super::super::types::PositiveInt,
601 #[doc = "A flag to indicate that this Coverage is to be used for adjudication of this claim when set to true."]
602 pub r#focal: super::super::types::Boolean,
603 #[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."]
604 pub r#coverage: Box<super::super::types::Reference>,
605 #[doc = "A business agreement number established between the provider and the insurer for special business processing purposes."]
606 pub r#business_arrangement: Option<super::super::types::String>,
607 #[doc = "The result of the adjudication of the line items for the Coverage specified in this insurance."]
608 pub r#claim_response: Option<Box<super::super::types::Reference>>,
609}
610#[allow(clippy::derivable_impls)]
611impl Default for ClaimResponseInsurance {
612 fn default() -> Self {
613 Self {
614 r#id: Default::default(),
615 r#extension: Default::default(),
616 r#modifier_extension: Default::default(),
617 r#sequence: super::super::types::PositiveInt {
618 id: Some("$invalid".to_string()),
619 ..Default::default()
620 },
621 r#focal: super::super::types::Boolean {
622 id: Some("$invalid".to_string()),
623 ..Default::default()
624 },
625 r#coverage: Box::new(super::super::types::Reference {
626 id: Some("$invalid".to_string()),
627 ..Default::default()
628 }),
629 r#business_arrangement: Default::default(),
630 r#claim_response: Default::default(),
631 }
632 }
633}
634#[doc = "Errors encountered during the processing of the adjudication."]
635#[derive(Debug, Clone, PartialEq)]
636pub struct ClaimResponseError {
637 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
638 pub r#id: Option<std::string::String>,
639 #[doc = "May be 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."]
640 pub r#extension: Vec<super::super::types::Extension>,
641 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/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)."]
642 pub r#modifier_extension: Vec<super::super::types::Extension>,
643 #[doc = "The sequence number of the line item submitted which contains the error. This value is omitted when the error occurs outside of the item structure."]
644 pub r#item_sequence: Option<super::super::types::PositiveInt>,
645 #[doc = "The sequence number of the detail within the line item submitted which contains the error. This value is omitted when the error occurs outside of the item structure."]
646 pub r#detail_sequence: Option<super::super::types::PositiveInt>,
647 #[doc = "The sequence number of the sub-detail within the detail within the line item submitted which contains the error. This value is omitted when the error occurs outside of the item structure."]
648 pub r#sub_detail_sequence: Option<super::super::types::PositiveInt>,
649 #[doc = "An error code, from a specified code system, which details why the claim could not be adjudicated."]
650 pub r#code: Box<super::super::types::CodeableConcept>,
651 #[doc = "A [simple subset of FHIRPath](fhirpath.html#simple) limited to element names, repetition indicators and the default child accessor that identifies one of the elements in the resource that caused this issue to be raised."]
652 pub r#expression: Vec<super::super::types::String>,
653}
654#[allow(clippy::derivable_impls)]
655impl Default for ClaimResponseError {
656 fn default() -> Self {
657 Self {
658 r#id: Default::default(),
659 r#extension: Default::default(),
660 r#modifier_extension: Default::default(),
661 r#item_sequence: Default::default(),
662 r#detail_sequence: Default::default(),
663 r#sub_detail_sequence: Default::default(),
664 r#code: Box::new(super::super::types::CodeableConcept {
665 id: Some("$invalid".to_string()),
666 ..Default::default()
667 }),
668 r#expression: Default::default(),
669 }
670 }
671}
672#[doc = "This resource provides the adjudication details from the processing of a Claim resource."]
673#[derive(Debug, Clone, PartialEq)]
674pub struct ClaimResponse {
675 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
676 pub r#id: Option<super::super::types::Id>,
677 #[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."]
678 pub r#meta: Option<Box<super::super::types::Meta>>,
679 #[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."]
680 pub r#implicit_rules: Option<super::super::types::Uri>,
681 #[doc = "The base language in which the resource is written."]
682 pub r#language: Option<super::super::types::Code>,
683 #[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."]
684 pub r#text: Option<Box<super::super::types::Narrative>>,
685 #[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."]
686 pub r#contained: Vec<super::super::Resource>,
687 #[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."]
688 pub r#extension: Vec<super::super::types::Extension>,
689 #[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)."]
690 pub r#modifier_extension: Vec<super::super::types::Extension>,
691 #[doc = "A unique identifier assigned to this claim response."]
692 pub r#identifier: Vec<super::super::types::Identifier>,
693 #[doc = "Trace number for tracking purposes. May be defined at the jurisdiction level or between trading partners."]
694 pub r#trace_number: Vec<super::super::types::Identifier>,
695 #[doc = "The status of the resource instance."]
696 pub r#status: super::super::types::Code,
697 #[doc = "A finer grained suite of claim type codes which may convey additional information such as Inpatient vs Outpatient and/or a specialty service."]
698 pub r#type: Box<super::super::types::CodeableConcept>,
699 #[doc = "A finer grained suite of claim type codes which may convey additional information such as Inpatient vs Outpatient and/or a specialty service."]
700 pub r#sub_type: Option<Box<super::super::types::CodeableConcept>>,
701 #[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."]
702 pub r#use: super::super::types::Code,
703 #[doc = "The party to whom the professional services and/or products have been supplied or are being considered and for whom actual for facast reimbursement is sought."]
704 pub r#patient: Box<super::super::types::Reference>,
705 #[doc = "The date this resource was created."]
706 pub r#created: super::super::types::DateTime,
707 #[doc = "The party responsible for authorization, adjudication and reimbursement."]
708 pub r#insurer: Option<Box<super::super::types::Reference>>,
709 #[doc = "The provider which is responsible for the claim, predetermination or preauthorization."]
710 pub r#requestor: Option<Box<super::super::types::Reference>>,
711 #[doc = "Original request resource reference."]
712 pub r#request: Option<Box<super::super::types::Reference>>,
713 #[doc = "The outcome of the claim, predetermination, or preauthorization processing."]
714 pub r#outcome: super::super::types::Code,
715 #[doc = "The result of the claim, predetermination, or preauthorization adjudication."]
716 pub r#decision: Option<Box<super::super::types::CodeableConcept>>,
717 #[doc = "A human readable description of the status of the adjudication."]
718 pub r#disposition: Option<super::super::types::String>,
719 #[doc = "Reference from the Insurer which is used in later communications which refers to this adjudication."]
720 pub r#pre_auth_ref: Option<super::super::types::String>,
721 #[doc = "The time frame during which this authorization is effective."]
722 pub r#pre_auth_period: Option<Box<super::super::types::Period>>,
723 #[doc = "Information code for an event with a corresponding date or period."]
724 pub r#event: Vec<ClaimResponseEvent>,
725 #[doc = "Type of Party to be reimbursed: subscriber, provider, other."]
726 pub r#payee_type: Option<Box<super::super::types::CodeableConcept>>,
727 #[doc = "Healthcare encounters related to this claim."]
728 pub r#encounter: Vec<super::super::types::Reference>,
729 #[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."]
730 pub r#diagnosis_related_group: Option<Box<super::super::types::CodeableConcept>>,
731 #[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."]
732 pub r#item: Vec<ClaimResponseItem>,
733 #[doc = "The first-tier service adjudications for payor added product or service lines."]
734 pub r#add_item: Vec<ClaimResponseAddItem>,
735 #[doc = "The adjudication results which are presented at the header level rather than at the line-item or add-item levels."]
736 pub r#adjudication: Vec<ClaimResponseItemAdjudication>,
737 #[doc = "Categorized monetary totals for the adjudication."]
738 pub r#total: Vec<ClaimResponseTotal>,
739 #[doc = "Payment details for the adjudication of the claim."]
740 pub r#payment: Option<ClaimResponsePayment>,
741 #[doc = "A code, used only on a response to a preauthorization, to indicate whether the benefits payable have been reserved and for whom."]
742 pub r#funds_reserve: Option<Box<super::super::types::CodeableConcept>>,
743 #[doc = "A code for the form to be used for printing the content."]
744 pub r#form_code: Option<Box<super::super::types::CodeableConcept>>,
745 #[doc = "The actual form, by reference or inclusion, for printing the content or an EOB."]
746 pub r#form: Option<Box<super::super::types::Attachment>>,
747 #[doc = "A note that describes or explains adjudication results in a human readable form."]
748 pub r#process_note: Vec<ClaimResponseProcessNote>,
749 #[doc = "Request for additional supporting or authorizing information."]
750 pub r#communication_request: Vec<super::super::types::Reference>,
751 #[doc = "Financial instruments for reimbursement for the health care products and services specified on the claim."]
752 pub r#insurance: Vec<ClaimResponseInsurance>,
753 #[doc = "Errors encountered during the processing of the adjudication."]
754 pub r#error: Vec<ClaimResponseError>,
755}
756#[allow(clippy::derivable_impls)]
757impl Default for ClaimResponse {
758 fn default() -> Self {
759 Self {
760 r#id: Default::default(),
761 r#meta: Default::default(),
762 r#implicit_rules: Default::default(),
763 r#language: Default::default(),
764 r#text: Default::default(),
765 r#contained: Default::default(),
766 r#extension: Default::default(),
767 r#modifier_extension: Default::default(),
768 r#identifier: Default::default(),
769 r#trace_number: Default::default(),
770 r#status: super::super::types::Code {
771 id: Some("$invalid".to_string()),
772 ..Default::default()
773 },
774 r#type: Box::new(super::super::types::CodeableConcept {
775 id: Some("$invalid".to_string()),
776 ..Default::default()
777 }),
778 r#sub_type: Default::default(),
779 r#use: super::super::types::Code {
780 id: Some("$invalid".to_string()),
781 ..Default::default()
782 },
783 r#patient: Box::new(super::super::types::Reference {
784 id: Some("$invalid".to_string()),
785 ..Default::default()
786 }),
787 r#created: super::super::types::DateTime {
788 id: Some("$invalid".to_string()),
789 ..Default::default()
790 },
791 r#insurer: Default::default(),
792 r#requestor: Default::default(),
793 r#request: Default::default(),
794 r#outcome: super::super::types::Code {
795 id: Some("$invalid".to_string()),
796 ..Default::default()
797 },
798 r#decision: Default::default(),
799 r#disposition: Default::default(),
800 r#pre_auth_ref: Default::default(),
801 r#pre_auth_period: Default::default(),
802 r#event: Default::default(),
803 r#payee_type: Default::default(),
804 r#encounter: Default::default(),
805 r#diagnosis_related_group: Default::default(),
806 r#item: Default::default(),
807 r#add_item: Default::default(),
808 r#adjudication: Default::default(),
809 r#total: Default::default(),
810 r#payment: Default::default(),
811 r#funds_reserve: Default::default(),
812 r#form_code: Default::default(),
813 r#form: Default::default(),
814 r#process_note: Default::default(),
815 r#communication_request: Default::default(),
816 r#insurance: Default::default(),
817 r#error: Default::default(),
818 }
819 }
820}