fhirbolt_model/generated/r5/resources/
payment_reconciliation.rs

1// Generated on 2023-05-17 by fhirbolt-codegen v0.10.0
2#[doc = " Identifies the claim line item, encounter or other sub-element being paid. Note payment may be partial, that is not match the then outstanding balance or amount incurred."]
3#[derive(Default, Debug, Clone, PartialEq)]
4pub enum PaymentReconciliationAllocationTargetItem {
5    String(super::super::types::String),
6    Identifier(Box<super::super::types::Identifier>),
7    PositiveInt(super::super::types::PositiveInt),
8    #[default]
9    Invalid,
10}
11#[doc = "Distribution of the payment amount for a previously acknowledged payable."]
12#[derive(Debug, Clone, PartialEq)]
13pub struct PaymentReconciliationAllocation {
14    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
15    pub r#id: Option<std::string::String>,
16    #[doc = "May be 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."]
17    pub r#extension: Vec<super::super::types::Extension>,
18    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/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)."]
19    pub r#modifier_extension: Vec<super::super::types::Extension>,
20    #[doc = "Unique identifier for the current payment item for the referenced payable."]
21    pub r#identifier: Option<Box<super::super::types::Identifier>>,
22    #[doc = "Unique identifier for the prior payment item for the referenced payable."]
23    pub r#predecessor: Option<Box<super::super::types::Identifier>>,
24    #[doc = "Specific resource to which the payment/adjustment/advance applies."]
25    pub r#target: Option<Box<super::super::types::Reference>>,
26    #[doc = " Identifies the claim line item, encounter or other sub-element being paid. Note payment may be partial, that is not match the then outstanding balance or amount incurred."]
27    pub r#target_item: Option<PaymentReconciliationAllocationTargetItem>,
28    #[doc = "The Encounter to which this payment applies, may be completed by the receiver, used for search."]
29    pub r#encounter: Option<Box<super::super::types::Reference>>,
30    #[doc = "The Account to which this payment applies, may be completed by the receiver, used for search."]
31    pub r#account: Option<Box<super::super::types::Reference>>,
32    #[doc = "Code to indicate the nature of the payment."]
33    pub r#type: Option<Box<super::super::types::CodeableConcept>>,
34    #[doc = "The party which submitted the claim or financial transaction."]
35    pub r#submitter: Option<Box<super::super::types::Reference>>,
36    #[doc = "A resource, such as a ClaimResponse, which contains a commitment to payment."]
37    pub r#response: Option<Box<super::super::types::Reference>>,
38    #[doc = "The date from the response resource containing a commitment to pay."]
39    pub r#date: Option<super::super::types::Date>,
40    #[doc = "A reference to the individual who is responsible for inquiries regarding the response and its payment."]
41    pub r#responsible: Option<Box<super::super::types::Reference>>,
42    #[doc = "The party which is receiving the payment."]
43    pub r#payee: Option<Box<super::super::types::Reference>>,
44    #[doc = "The monetary amount allocated from the total payment to the payable."]
45    pub r#amount: Option<Box<super::super::types::Money>>,
46}
47#[allow(clippy::derivable_impls)]
48impl Default for PaymentReconciliationAllocation {
49    fn default() -> Self {
50        Self {
51            r#id: Default::default(),
52            r#extension: Default::default(),
53            r#modifier_extension: Default::default(),
54            r#identifier: Default::default(),
55            r#predecessor: Default::default(),
56            r#target: Default::default(),
57            r#target_item: Default::default(),
58            r#encounter: Default::default(),
59            r#account: Default::default(),
60            r#type: Default::default(),
61            r#submitter: Default::default(),
62            r#response: Default::default(),
63            r#date: Default::default(),
64            r#responsible: Default::default(),
65            r#payee: Default::default(),
66            r#amount: Default::default(),
67        }
68    }
69}
70#[doc = "A note that describes or explains the processing in a human readable form."]
71#[derive(Debug, Clone, PartialEq)]
72pub struct PaymentReconciliationProcessNote {
73    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
74    pub r#id: Option<std::string::String>,
75    #[doc = "May be 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."]
76    pub r#extension: Vec<super::super::types::Extension>,
77    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/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)."]
78    pub r#modifier_extension: Vec<super::super::types::Extension>,
79    #[doc = "The business purpose of the note text."]
80    pub r#type: Option<super::super::types::Code>,
81    #[doc = "The explanation or description associated with the processing."]
82    pub r#text: Option<super::super::types::String>,
83}
84#[allow(clippy::derivable_impls)]
85impl Default for PaymentReconciliationProcessNote {
86    fn default() -> Self {
87        Self {
88            r#id: Default::default(),
89            r#extension: Default::default(),
90            r#modifier_extension: Default::default(),
91            r#type: Default::default(),
92            r#text: Default::default(),
93        }
94    }
95}
96#[doc = "This resource provides the details including amount of a payment and allocates the payment items being paid."]
97#[derive(Debug, Clone, PartialEq)]
98pub struct PaymentReconciliation {
99    #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
100    pub r#id: Option<super::super::types::Id>,
101    #[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."]
102    pub r#meta: Option<Box<super::super::types::Meta>>,
103    #[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."]
104    pub r#implicit_rules: Option<super::super::types::Uri>,
105    #[doc = "The base language in which the resource is written."]
106    pub r#language: Option<super::super::types::Code>,
107    #[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."]
108    pub r#text: Option<Box<super::super::types::Narrative>>,
109    #[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."]
110    pub r#contained: Vec<super::super::Resource>,
111    #[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."]
112    pub r#extension: Vec<super::super::types::Extension>,
113    #[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)."]
114    pub r#modifier_extension: Vec<super::super::types::Extension>,
115    #[doc = "A unique identifier assigned to this payment reconciliation."]
116    pub r#identifier: Vec<super::super::types::Identifier>,
117    #[doc = "Code to indicate the nature of the payment such as payment, adjustment."]
118    pub r#type: Box<super::super::types::CodeableConcept>,
119    #[doc = "The status of the resource instance."]
120    pub r#status: super::super::types::Code,
121    #[doc = "The workflow or activity which gave rise to or during which the payment ocurred such as a kiosk, deposit on account, periodic payment etc."]
122    pub r#kind: Option<Box<super::super::types::CodeableConcept>>,
123    #[doc = "The period of time for which payments have been gathered into this bulk payment for settlement."]
124    pub r#period: Option<Box<super::super::types::Period>>,
125    #[doc = "The date when the resource was created."]
126    pub r#created: super::super::types::DateTime,
127    #[doc = "Payment enterer if not the actual payment issuer."]
128    pub r#enterer: Option<Box<super::super::types::Reference>>,
129    #[doc = "The type of the source such as patient or insurance."]
130    pub r#issuer_type: Option<Box<super::super::types::CodeableConcept>>,
131    #[doc = "The party who generated the payment."]
132    pub r#payment_issuer: Option<Box<super::super::types::Reference>>,
133    #[doc = "Original request resource reference."]
134    pub r#request: Option<Box<super::super::types::Reference>>,
135    #[doc = "The practitioner who is responsible for the services rendered to the patient."]
136    pub r#requestor: Option<Box<super::super::types::Reference>>,
137    #[doc = "The outcome of a request for a reconciliation."]
138    pub r#outcome: Option<super::super::types::Code>,
139    #[doc = "A human readable description of the status of the request for the reconciliation."]
140    pub r#disposition: Option<super::super::types::String>,
141    #[doc = "The date of payment as indicated on the financial instrument."]
142    pub r#date: super::super::types::Date,
143    #[doc = "The location of the site or device for electronic transfers or physical location for cash payments."]
144    pub r#location: Option<Box<super::super::types::Reference>>,
145    #[doc = "The means of payment such as check, card cash, or electronic funds transfer."]
146    pub r#method: Option<Box<super::super::types::CodeableConcept>>,
147    #[doc = "The card brand such as debit, Visa, Amex etc. used if a card is the method of payment."]
148    pub r#card_brand: Option<super::super::types::String>,
149    #[doc = "A portion of the account number, often the last 4 digits, used for verification not charging purposes."]
150    pub r#account_number: Option<super::super::types::String>,
151    #[doc = "The year and month (YYYY-MM) when the instrument, typically card, expires."]
152    pub r#expiration_date: Option<super::super::types::Date>,
153    #[doc = "The name of the card processor, etf processor, bank for checks."]
154    pub r#processor: Option<super::super::types::String>,
155    #[doc = "The check number, eft reference, car processor reference."]
156    pub r#reference_number: Option<super::super::types::String>,
157    #[doc = "An alphanumeric issued by the processor to confirm the successful issuance of payment."]
158    pub r#authorization: Option<super::super::types::String>,
159    #[doc = "The amount offered by the issuer, typically applies to cash when the issuer provides an amount in bank note denominations equal to or excess of the amount actually being paid."]
160    pub r#tendered_amount: Option<Box<super::super::types::Money>>,
161    #[doc = "The amount returned by the receiver which is excess to the amount payable, often referred to as 'change'."]
162    pub r#returned_amount: Option<Box<super::super::types::Money>>,
163    #[doc = "Total payment amount as indicated on the financial instrument."]
164    pub r#amount: Box<super::super::types::Money>,
165    #[doc = "Issuer's unique identifier for the payment instrument."]
166    pub r#payment_identifier: Option<Box<super::super::types::Identifier>>,
167    #[doc = "Distribution of the payment amount for a previously acknowledged payable."]
168    pub r#allocation: Vec<PaymentReconciliationAllocation>,
169    #[doc = "A code for the form to be used for printing the content."]
170    pub r#form_code: Option<Box<super::super::types::CodeableConcept>>,
171    #[doc = "A note that describes or explains the processing in a human readable form."]
172    pub r#process_note: Vec<PaymentReconciliationProcessNote>,
173}
174#[allow(clippy::derivable_impls)]
175impl Default for PaymentReconciliation {
176    fn default() -> Self {
177        Self {
178            r#id: Default::default(),
179            r#meta: Default::default(),
180            r#implicit_rules: Default::default(),
181            r#language: Default::default(),
182            r#text: Default::default(),
183            r#contained: Default::default(),
184            r#extension: Default::default(),
185            r#modifier_extension: Default::default(),
186            r#identifier: Default::default(),
187            r#type: Box::new(super::super::types::CodeableConcept {
188                id: Some("$invalid".to_string()),
189                ..Default::default()
190            }),
191            r#status: super::super::types::Code {
192                id: Some("$invalid".to_string()),
193                ..Default::default()
194            },
195            r#kind: Default::default(),
196            r#period: Default::default(),
197            r#created: super::super::types::DateTime {
198                id: Some("$invalid".to_string()),
199                ..Default::default()
200            },
201            r#enterer: Default::default(),
202            r#issuer_type: Default::default(),
203            r#payment_issuer: Default::default(),
204            r#request: Default::default(),
205            r#requestor: Default::default(),
206            r#outcome: Default::default(),
207            r#disposition: Default::default(),
208            r#date: super::super::types::Date {
209                id: Some("$invalid".to_string()),
210                ..Default::default()
211            },
212            r#location: Default::default(),
213            r#method: Default::default(),
214            r#card_brand: Default::default(),
215            r#account_number: Default::default(),
216            r#expiration_date: Default::default(),
217            r#processor: Default::default(),
218            r#reference_number: Default::default(),
219            r#authorization: Default::default(),
220            r#tendered_amount: Default::default(),
221            r#returned_amount: Default::default(),
222            r#amount: Box::new(super::super::types::Money {
223                id: Some("$invalid".to_string()),
224                ..Default::default()
225            }),
226            r#payment_identifier: Default::default(),
227            r#allocation: Default::default(),
228            r#form_code: Default::default(),
229            r#process_note: Default::default(),
230        }
231    }
232}