fhirbolt_model/generated/r4/resources/
contract.rs

1// Generated on 2023-05-17 by fhirbolt-codegen v0.10.0
2#[doc = "Narrows the range of legal concerns to focus on the achievement of specific contractual objectives."]
3#[derive(Default, Debug, Clone, PartialEq)]
4pub enum ContractTopic {
5    CodeableConcept(Box<super::super::types::CodeableConcept>),
6    Reference(Box<super::super::types::Reference>),
7    #[default]
8    Invalid,
9}
10#[doc = "The entity that the term applies to."]
11#[derive(Default, Debug, Clone, PartialEq)]
12pub enum ContractTermTopic {
13    CodeableConcept(Box<super::super::types::CodeableConcept>),
14    Reference(Box<super::super::types::Reference>),
15    #[default]
16    Invalid,
17}
18#[doc = "Response to an offer clause or question text,  which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warrently duration, or whether biospecimen may be used for further research."]
19#[derive(Default, Debug, Clone, PartialEq)]
20pub enum ContractTermOfferAnswerValue {
21    Boolean(super::super::types::Boolean),
22    Decimal(super::super::types::Decimal),
23    Integer(super::super::types::Integer),
24    Date(super::super::types::Date),
25    DateTime(super::super::types::DateTime),
26    Time(super::super::types::Time),
27    String(super::super::types::String),
28    Uri(super::super::types::Uri),
29    Attachment(Box<super::super::types::Attachment>),
30    Coding(Box<super::super::types::Coding>),
31    Quantity(Box<super::super::types::Quantity>),
32    Reference(Box<super::super::types::Reference>),
33    #[default]
34    Invalid,
35}
36#[doc = "Specific type of Contract Valued Item that may be priced."]
37#[derive(Default, Debug, Clone, PartialEq)]
38pub enum ContractTermAssetValuedItemEntity {
39    CodeableConcept(Box<super::super::types::CodeableConcept>),
40    Reference(Box<super::super::types::Reference>),
41    #[default]
42    Invalid,
43}
44#[doc = "When action happens."]
45#[derive(Default, Debug, Clone, PartialEq)]
46pub enum ContractTermActionOccurrence {
47    DateTime(super::super::types::DateTime),
48    Period(Box<super::super::types::Period>),
49    Timing(Box<super::super::types::Timing>),
50    #[default]
51    Invalid,
52}
53#[doc = "Human readable rendering of this Contract in a format and representation intended to enhance comprehension and ensure understandability."]
54#[derive(Default, Debug, Clone, PartialEq)]
55pub enum ContractFriendlyContent {
56    Attachment(Box<super::super::types::Attachment>),
57    Reference(Box<super::super::types::Reference>),
58    #[default]
59    Invalid,
60}
61#[doc = "Contract legal text in human renderable form."]
62#[derive(Default, Debug, Clone, PartialEq)]
63pub enum ContractLegalContent {
64    Attachment(Box<super::super::types::Attachment>),
65    Reference(Box<super::super::types::Reference>),
66    #[default]
67    Invalid,
68}
69#[doc = "Computable Contract conveyed using a policy rule language (e.g. XACML, DKAL, SecPal)."]
70#[derive(Default, Debug, Clone, PartialEq)]
71pub enum ContractRuleContent {
72    Attachment(Box<super::super::types::Attachment>),
73    Reference(Box<super::super::types::Reference>),
74    #[default]
75    Invalid,
76}
77#[doc = "Legally binding Contract: This is the signed and legally recognized representation of the Contract, which is considered the \"source of truth\" and which would be the basis for legal action related to enforcement of this Contract."]
78#[derive(Default, Debug, Clone, PartialEq)]
79pub enum ContractLegallyBinding {
80    Attachment(Box<super::super::types::Attachment>),
81    Reference(Box<super::super::types::Reference>),
82    #[default]
83    Invalid,
84}
85#[doc = "Precusory content developed with a focus and intent of supporting the formation a Contract instance, which may be associated with and transformable into a Contract."]
86#[derive(Debug, Clone, PartialEq)]
87pub struct ContractContentDefinition {
88    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
89    pub r#id: Option<std::string::String>,
90    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
91    pub r#extension: Vec<super::super::types::Extension>,
92    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
93    pub r#modifier_extension: Vec<super::super::types::Extension>,
94    #[doc = "Precusory content structure and use, i.e., a boilerplate, template, application for a contract such as an insurance policy or benefits under a program, e.g., workers compensation."]
95    pub r#type: Box<super::super::types::CodeableConcept>,
96    #[doc = "Detailed Precusory content type."]
97    pub r#sub_type: Option<Box<super::super::types::CodeableConcept>>,
98    #[doc = "The  individual or organization that published the Contract precursor content."]
99    pub r#publisher: Option<Box<super::super::types::Reference>>,
100    #[doc = "The date (and optionally time) when the contract was published. The date must change when the business version changes and it must change if the status code changes. In addition, it should change when the substantive content of the contract changes."]
101    pub r#publication_date: Option<super::super::types::DateTime>,
102    #[doc = "amended | appended | cancelled | disputed | entered-in-error | executable | executed | negotiable | offered | policy | rejected | renewed | revoked | resolved | terminated."]
103    pub r#publication_status: super::super::types::Code,
104    #[doc = "A copyright statement relating to Contract precursor content. Copyright statements are generally legal restrictions on the use and publishing of the Contract precursor content."]
105    pub r#copyright: Option<super::super::types::Markdown>,
106}
107#[allow(clippy::derivable_impls)]
108impl Default for ContractContentDefinition {
109    fn default() -> Self {
110        Self {
111            r#id: Default::default(),
112            r#extension: Default::default(),
113            r#modifier_extension: Default::default(),
114            r#type: Box::new(super::super::types::CodeableConcept {
115                id: Some("$invalid".to_string()),
116                ..Default::default()
117            }),
118            r#sub_type: Default::default(),
119            r#publisher: Default::default(),
120            r#publication_date: Default::default(),
121            r#publication_status: super::super::types::Code {
122                id: Some("$invalid".to_string()),
123                ..Default::default()
124            },
125            r#copyright: Default::default(),
126        }
127    }
128}
129#[doc = "Security labels that protect the handling of information about the term and its elements, which may be specifically identified.."]
130#[derive(Debug, Clone, PartialEq)]
131pub struct ContractTermSecurityLabel {
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 manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
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 manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
137    pub r#modifier_extension: Vec<super::super::types::Extension>,
138    #[doc = "Number used to link this term or term element to the applicable Security Label."]
139    pub r#number: Vec<super::super::types::UnsignedInt>,
140    #[doc = "Security label privacy tag that species the level of confidentiality protection required for this term and/or term elements."]
141    pub r#classification: Box<super::super::types::Coding>,
142    #[doc = "Security label privacy tag that species the applicable privacy and security policies governing this term and/or term elements."]
143    pub r#category: Vec<super::super::types::Coding>,
144    #[doc = "Security label privacy tag that species the manner in which term and/or term elements are to be protected."]
145    pub r#control: Vec<super::super::types::Coding>,
146}
147#[allow(clippy::derivable_impls)]
148impl Default for ContractTermSecurityLabel {
149    fn default() -> Self {
150        Self {
151            r#id: Default::default(),
152            r#extension: Default::default(),
153            r#modifier_extension: Default::default(),
154            r#number: Default::default(),
155            r#classification: Box::new(super::super::types::Coding {
156                id: Some("$invalid".to_string()),
157                ..Default::default()
158            }),
159            r#category: Default::default(),
160            r#control: Default::default(),
161        }
162    }
163}
164#[doc = "Offer Recipient."]
165#[derive(Debug, Clone, PartialEq)]
166pub struct ContractTermOfferParty {
167    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
168    pub r#id: Option<std::string::String>,
169    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
170    pub r#extension: Vec<super::super::types::Extension>,
171    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
172    pub r#modifier_extension: Vec<super::super::types::Extension>,
173    #[doc = "Participant in the offer."]
174    pub r#reference: Vec<super::super::types::Reference>,
175    #[doc = "How the party participates in the offer."]
176    pub r#role: Box<super::super::types::CodeableConcept>,
177}
178#[allow(clippy::derivable_impls)]
179impl Default for ContractTermOfferParty {
180    fn default() -> Self {
181        Self {
182            r#id: Default::default(),
183            r#extension: Default::default(),
184            r#modifier_extension: Default::default(),
185            r#reference: Default::default(),
186            r#role: Box::new(super::super::types::CodeableConcept {
187                id: Some("$invalid".to_string()),
188                ..Default::default()
189            }),
190        }
191    }
192}
193#[doc = "Response to offer text."]
194#[derive(Debug, Clone, PartialEq)]
195pub struct ContractTermOfferAnswer {
196    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
197    pub r#id: Option<std::string::String>,
198    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
199    pub r#extension: Vec<super::super::types::Extension>,
200    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
201    pub r#modifier_extension: Vec<super::super::types::Extension>,
202    #[doc = "Response to an offer clause or question text,  which enables selection of values to be agreed to, e.g., the period of participation, the date of occupancy of a rental, warrently duration, or whether biospecimen may be used for further research."]
203    pub r#value: ContractTermOfferAnswerValue,
204}
205#[allow(clippy::derivable_impls)]
206impl Default for ContractTermOfferAnswer {
207    fn default() -> Self {
208        Self {
209            r#id: Default::default(),
210            r#extension: Default::default(),
211            r#modifier_extension: Default::default(),
212            r#value: Default::default(),
213        }
214    }
215}
216#[doc = "The matter of concern in the context of this provision of the agrement."]
217#[derive(Debug, Clone, PartialEq)]
218pub struct ContractTermOffer {
219    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
220    pub r#id: Option<std::string::String>,
221    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
222    pub r#extension: Vec<super::super::types::Extension>,
223    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
224    pub r#modifier_extension: Vec<super::super::types::Extension>,
225    #[doc = "Unique identifier for this particular Contract Provision."]
226    pub r#identifier: Vec<super::super::types::Identifier>,
227    #[doc = "Offer Recipient."]
228    pub r#party: Vec<ContractTermOfferParty>,
229    #[doc = "The owner of an asset has the residual control rights over the asset: the right to decide all usages of the asset in any way not inconsistent with a prior contract, custom, or law (Hart, 1995, p. 30)."]
230    pub r#topic: Option<Box<super::super::types::Reference>>,
231    #[doc = "Type of Contract Provision such as specific requirements, purposes for actions, obligations, prohibitions, e.g. life time maximum benefit."]
232    pub r#type: Option<Box<super::super::types::CodeableConcept>>,
233    #[doc = "Type of choice made by accepting party with respect to an offer made by an offeror/ grantee."]
234    pub r#decision: Option<Box<super::super::types::CodeableConcept>>,
235    #[doc = "How the decision about a Contract was conveyed."]
236    pub r#decision_mode: Vec<super::super::types::CodeableConcept>,
237    #[doc = "Response to offer text."]
238    pub r#answer: Vec<ContractTermOfferAnswer>,
239    #[doc = "Human readable form of this Contract Offer."]
240    pub r#text: Option<super::super::types::String>,
241    #[doc = "The id of the clause or question text of the offer in the referenced questionnaire/response."]
242    pub r#link_id: Vec<super::super::types::String>,
243    #[doc = "Security labels that protects the offer."]
244    pub r#security_label_number: Vec<super::super::types::UnsignedInt>,
245}
246#[allow(clippy::derivable_impls)]
247impl Default for ContractTermOffer {
248    fn default() -> Self {
249        Self {
250            r#id: Default::default(),
251            r#extension: Default::default(),
252            r#modifier_extension: Default::default(),
253            r#identifier: Default::default(),
254            r#party: Default::default(),
255            r#topic: Default::default(),
256            r#type: Default::default(),
257            r#decision: Default::default(),
258            r#decision_mode: Default::default(),
259            r#answer: Default::default(),
260            r#text: Default::default(),
261            r#link_id: Default::default(),
262            r#security_label_number: Default::default(),
263        }
264    }
265}
266#[doc = "Circumstance of the asset."]
267#[derive(Debug, Clone, PartialEq)]
268pub struct ContractTermAssetContext {
269    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
270    pub r#id: Option<std::string::String>,
271    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
272    pub r#extension: Vec<super::super::types::Extension>,
273    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
274    pub r#modifier_extension: Vec<super::super::types::Extension>,
275    #[doc = "Asset context reference may include the creator, custodian, or owning Person or Organization (e.g., bank, repository),  location held, e.g., building,  jurisdiction."]
276    pub r#reference: Option<Box<super::super::types::Reference>>,
277    #[doc = "Coded representation of the context generally or of the Referenced entity, such as the asset holder type or location."]
278    pub r#code: Vec<super::super::types::CodeableConcept>,
279    #[doc = "Context description."]
280    pub r#text: Option<super::super::types::String>,
281}
282#[allow(clippy::derivable_impls)]
283impl Default for ContractTermAssetContext {
284    fn default() -> Self {
285        Self {
286            r#id: Default::default(),
287            r#extension: Default::default(),
288            r#modifier_extension: Default::default(),
289            r#reference: Default::default(),
290            r#code: Default::default(),
291            r#text: Default::default(),
292        }
293    }
294}
295#[doc = "Contract Valued Item List."]
296#[derive(Debug, Clone, PartialEq)]
297pub struct ContractTermAssetValuedItem {
298    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
299    pub r#id: Option<std::string::String>,
300    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
301    pub r#extension: Vec<super::super::types::Extension>,
302    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
303    pub r#modifier_extension: Vec<super::super::types::Extension>,
304    #[doc = "Specific type of Contract Valued Item that may be priced."]
305    pub r#entity: Option<ContractTermAssetValuedItemEntity>,
306    #[doc = "Identifies a Contract Valued Item instance."]
307    pub r#identifier: Option<Box<super::super::types::Identifier>>,
308    #[doc = "Indicates the time during which this Contract ValuedItem information is effective."]
309    pub r#effective_time: Option<super::super::types::DateTime>,
310    #[doc = "Specifies the units by which the Contract Valued Item is measured or counted, and quantifies the countable or measurable Contract Valued Item instances."]
311    pub r#quantity: Option<Box<super::super::types::Quantity>>,
312    #[doc = "A Contract Valued Item unit valuation measure."]
313    pub r#unit_price: Option<Box<super::super::types::Money>>,
314    #[doc = "A real number that represents a multiplier used in determining the overall value of the Contract Valued Item delivered. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount."]
315    pub r#factor: Option<super::super::types::Decimal>,
316    #[doc = "An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the Contract Valued Item delivered. The concept of Points allows for assignment of point values for a Contract Valued Item, such that a monetary amount can be assigned to each point."]
317    pub r#points: Option<super::super::types::Decimal>,
318    #[doc = "Expresses the product of the Contract Valued Item unitQuantity and the unitPriceAmt. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number  * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied."]
319    pub r#net: Option<Box<super::super::types::Money>>,
320    #[doc = "Terms of valuation."]
321    pub r#payment: Option<super::super::types::String>,
322    #[doc = "When payment is due."]
323    pub r#payment_date: Option<super::super::types::DateTime>,
324    #[doc = "Who will make payment."]
325    pub r#responsible: Option<Box<super::super::types::Reference>>,
326    #[doc = "Who will receive payment."]
327    pub r#recipient: Option<Box<super::super::types::Reference>>,
328    #[doc = "Id  of the clause or question text related to the context of this valuedItem in the referenced form or QuestionnaireResponse."]
329    pub r#link_id: Vec<super::super::types::String>,
330    #[doc = "A set of security labels that define which terms are controlled by this condition."]
331    pub r#security_label_number: Vec<super::super::types::UnsignedInt>,
332}
333#[allow(clippy::derivable_impls)]
334impl Default for ContractTermAssetValuedItem {
335    fn default() -> Self {
336        Self {
337            r#id: Default::default(),
338            r#extension: Default::default(),
339            r#modifier_extension: Default::default(),
340            r#entity: Default::default(),
341            r#identifier: Default::default(),
342            r#effective_time: Default::default(),
343            r#quantity: Default::default(),
344            r#unit_price: Default::default(),
345            r#factor: Default::default(),
346            r#points: Default::default(),
347            r#net: Default::default(),
348            r#payment: Default::default(),
349            r#payment_date: Default::default(),
350            r#responsible: Default::default(),
351            r#recipient: Default::default(),
352            r#link_id: Default::default(),
353            r#security_label_number: Default::default(),
354        }
355    }
356}
357#[doc = "Contract Term Asset List."]
358#[derive(Debug, Clone, PartialEq)]
359pub struct ContractTermAsset {
360    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
361    pub r#id: Option<std::string::String>,
362    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
363    pub r#extension: Vec<super::super::types::Extension>,
364    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
365    pub r#modifier_extension: Vec<super::super::types::Extension>,
366    #[doc = "Differentiates the kind of the asset ."]
367    pub r#scope: Option<Box<super::super::types::CodeableConcept>>,
368    #[doc = "Target entity type about which the term may be concerned."]
369    pub r#type: Vec<super::super::types::CodeableConcept>,
370    #[doc = "Associated entities."]
371    pub r#type_reference: Vec<super::super::types::Reference>,
372    #[doc = "May be a subtype or part of an offered asset."]
373    pub r#subtype: Vec<super::super::types::CodeableConcept>,
374    #[doc = "Specifies the applicability of the term to an asset resource instance, and instances it refers to orinstances that refer to it, and/or are owned by the offeree."]
375    pub r#relationship: Option<Box<super::super::types::Coding>>,
376    #[doc = "Circumstance of the asset."]
377    pub r#context: Vec<ContractTermAssetContext>,
378    #[doc = "Description of the quality and completeness of the asset that imay be a factor in its valuation."]
379    pub r#condition: Option<super::super::types::String>,
380    #[doc = "Type of Asset availability for use or ownership."]
381    pub r#period_type: Vec<super::super::types::CodeableConcept>,
382    #[doc = "Asset relevant contractual time period."]
383    pub r#period: Vec<super::super::types::Period>,
384    #[doc = "Time period of asset use."]
385    pub r#use_period: Vec<super::super::types::Period>,
386    #[doc = "Clause or question text (Prose Object) concerning the asset in a linked form, such as a QuestionnaireResponse used in the formation of the contract."]
387    pub r#text: Option<super::super::types::String>,
388    #[doc = "Id [identifier??] of the clause or question text about the asset in the referenced form or QuestionnaireResponse."]
389    pub r#link_id: Vec<super::super::types::String>,
390    #[doc = "Response to assets."]
391    pub r#answer: Vec<ContractTermOfferAnswer>,
392    #[doc = "Security labels that protects the asset."]
393    pub r#security_label_number: Vec<super::super::types::UnsignedInt>,
394    #[doc = "Contract Valued Item List."]
395    pub r#valued_item: Vec<ContractTermAssetValuedItem>,
396}
397#[allow(clippy::derivable_impls)]
398impl Default for ContractTermAsset {
399    fn default() -> Self {
400        Self {
401            r#id: Default::default(),
402            r#extension: Default::default(),
403            r#modifier_extension: Default::default(),
404            r#scope: Default::default(),
405            r#type: Default::default(),
406            r#type_reference: Default::default(),
407            r#subtype: Default::default(),
408            r#relationship: Default::default(),
409            r#context: Default::default(),
410            r#condition: Default::default(),
411            r#period_type: Default::default(),
412            r#period: Default::default(),
413            r#use_period: Default::default(),
414            r#text: Default::default(),
415            r#link_id: Default::default(),
416            r#answer: Default::default(),
417            r#security_label_number: Default::default(),
418            r#valued_item: Default::default(),
419        }
420    }
421}
422#[doc = "Entity of the action."]
423#[derive(Debug, Clone, PartialEq)]
424pub struct ContractTermActionSubject {
425    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
426    pub r#id: Option<std::string::String>,
427    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
428    pub r#extension: Vec<super::super::types::Extension>,
429    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
430    pub r#modifier_extension: Vec<super::super::types::Extension>,
431    #[doc = "The entity the action is performed or not performed on or for."]
432    pub r#reference: Vec<super::super::types::Reference>,
433    #[doc = "Role type of agent assigned roles in this Contract."]
434    pub r#role: Option<Box<super::super::types::CodeableConcept>>,
435}
436#[allow(clippy::derivable_impls)]
437impl Default for ContractTermActionSubject {
438    fn default() -> Self {
439        Self {
440            r#id: Default::default(),
441            r#extension: Default::default(),
442            r#modifier_extension: Default::default(),
443            r#reference: Default::default(),
444            r#role: Default::default(),
445        }
446    }
447}
448#[doc = "An actor taking a role in an activity for which it can be assigned some degree of responsibility for the activity taking place."]
449#[derive(Debug, Clone, PartialEq)]
450pub struct ContractTermAction {
451    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
452    pub r#id: Option<std::string::String>,
453    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
454    pub r#extension: Vec<super::super::types::Extension>,
455    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
456    pub r#modifier_extension: Vec<super::super::types::Extension>,
457    #[doc = "True if the term prohibits the  action."]
458    pub r#do_not_perform: Option<super::super::types::Boolean>,
459    #[doc = "Activity or service obligation to be done or not done, performed or not performed, effectuated or not by this Contract term."]
460    pub r#type: Box<super::super::types::CodeableConcept>,
461    #[doc = "Entity of the action."]
462    pub r#subject: Vec<ContractTermActionSubject>,
463    #[doc = "Reason or purpose for the action stipulated by this Contract Provision."]
464    pub r#intent: Box<super::super::types::CodeableConcept>,
465    #[doc = "Id [identifier??] of the clause or question text related to this action in the referenced form or QuestionnaireResponse."]
466    pub r#link_id: Vec<super::super::types::String>,
467    #[doc = "Current state of the term action."]
468    pub r#status: Box<super::super::types::CodeableConcept>,
469    #[doc = "Encounter or Episode with primary association to specified term activity."]
470    pub r#context: Option<Box<super::super::types::Reference>>,
471    #[doc = "Id [identifier??] of the clause or question text related to the requester of this action in the referenced form or QuestionnaireResponse."]
472    pub r#context_link_id: Vec<super::super::types::String>,
473    #[doc = "When action happens."]
474    pub r#occurrence: Option<ContractTermActionOccurrence>,
475    #[doc = "Who or what initiated the action and has responsibility for its activation."]
476    pub r#requester: Vec<super::super::types::Reference>,
477    #[doc = "Id [identifier??] of the clause or question text related to the requester of this action in the referenced form or QuestionnaireResponse."]
478    pub r#requester_link_id: Vec<super::super::types::String>,
479    #[doc = "The type of individual that is desired or required to perform or not perform the action."]
480    pub r#performer_type: Vec<super::super::types::CodeableConcept>,
481    #[doc = "The type of role or competency of an individual desired or required to perform or not perform the action."]
482    pub r#performer_role: Option<Box<super::super::types::CodeableConcept>>,
483    #[doc = "Indicates who or what is being asked to perform (or not perform) the ction."]
484    pub r#performer: Option<Box<super::super::types::Reference>>,
485    #[doc = "Id [identifier??] of the clause or question text related to the reason type or reference of this  action in the referenced form or QuestionnaireResponse."]
486    pub r#performer_link_id: Vec<super::super::types::String>,
487    #[doc = "Rationale for the action to be performed or not performed. Describes why the action is permitted or prohibited."]
488    pub r#reason_code: Vec<super::super::types::CodeableConcept>,
489    #[doc = "Indicates another resource whose existence justifies permitting or not permitting this action."]
490    pub r#reason_reference: Vec<super::super::types::Reference>,
491    #[doc = "Describes why the action is to be performed or not performed in textual form."]
492    pub r#reason: Vec<super::super::types::String>,
493    #[doc = "Id [identifier??] of the clause or question text related to the reason type or reference of this  action in the referenced form or QuestionnaireResponse."]
494    pub r#reason_link_id: Vec<super::super::types::String>,
495    #[doc = "Comments made about the term action made by the requester, performer, subject or other participants."]
496    pub r#note: Vec<super::super::types::Annotation>,
497    #[doc = "Security labels that protects the action."]
498    pub r#security_label_number: Vec<super::super::types::UnsignedInt>,
499}
500#[allow(clippy::derivable_impls)]
501impl Default for ContractTermAction {
502    fn default() -> Self {
503        Self {
504            r#id: Default::default(),
505            r#extension: Default::default(),
506            r#modifier_extension: Default::default(),
507            r#do_not_perform: Default::default(),
508            r#type: Box::new(super::super::types::CodeableConcept {
509                id: Some("$invalid".to_string()),
510                ..Default::default()
511            }),
512            r#subject: Default::default(),
513            r#intent: Box::new(super::super::types::CodeableConcept {
514                id: Some("$invalid".to_string()),
515                ..Default::default()
516            }),
517            r#link_id: Default::default(),
518            r#status: Box::new(super::super::types::CodeableConcept {
519                id: Some("$invalid".to_string()),
520                ..Default::default()
521            }),
522            r#context: Default::default(),
523            r#context_link_id: Default::default(),
524            r#occurrence: Default::default(),
525            r#requester: Default::default(),
526            r#requester_link_id: Default::default(),
527            r#performer_type: Default::default(),
528            r#performer_role: Default::default(),
529            r#performer: Default::default(),
530            r#performer_link_id: Default::default(),
531            r#reason_code: Default::default(),
532            r#reason_reference: Default::default(),
533            r#reason: Default::default(),
534            r#reason_link_id: Default::default(),
535            r#note: Default::default(),
536            r#security_label_number: Default::default(),
537        }
538    }
539}
540#[doc = "One or more Contract Provisions, which may be related and conveyed as a group, and may contain nested groups."]
541#[derive(Debug, Clone, PartialEq)]
542pub struct ContractTerm {
543    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
544    pub r#id: Option<std::string::String>,
545    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
546    pub r#extension: Vec<super::super::types::Extension>,
547    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
548    pub r#modifier_extension: Vec<super::super::types::Extension>,
549    #[doc = "Unique identifier for this particular Contract Provision."]
550    pub r#identifier: Option<Box<super::super::types::Identifier>>,
551    #[doc = "When this Contract Provision was issued."]
552    pub r#issued: Option<super::super::types::DateTime>,
553    #[doc = "Relevant time or time-period when this Contract Provision is applicable."]
554    pub r#applies: Option<Box<super::super::types::Period>>,
555    #[doc = "The entity that the term applies to."]
556    pub r#topic: Option<ContractTermTopic>,
557    #[doc = "A legal clause or condition contained within a contract that requires one or both parties to perform a particular requirement by some specified time or prevents one or both parties from performing a particular requirement by some specified time."]
558    pub r#type: Option<Box<super::super::types::CodeableConcept>>,
559    #[doc = "A specialized legal clause or condition based on overarching contract type."]
560    pub r#sub_type: Option<Box<super::super::types::CodeableConcept>>,
561    #[doc = "Statement of a provision in a policy or a contract."]
562    pub r#text: Option<super::super::types::String>,
563    #[doc = "Security labels that protect the handling of information about the term and its elements, which may be specifically identified.."]
564    pub r#security_label: Vec<ContractTermSecurityLabel>,
565    #[doc = "The matter of concern in the context of this provision of the agrement."]
566    pub r#offer: ContractTermOffer,
567    #[doc = "Contract Term Asset List."]
568    pub r#asset: Vec<ContractTermAsset>,
569    #[doc = "An actor taking a role in an activity for which it can be assigned some degree of responsibility for the activity taking place."]
570    pub r#action: Vec<ContractTermAction>,
571    #[doc = "Nested group of Contract Provisions."]
572    pub r#group: Vec<ContractTerm>,
573}
574#[allow(clippy::derivable_impls)]
575impl Default for ContractTerm {
576    fn default() -> Self {
577        Self {
578            r#id: Default::default(),
579            r#extension: Default::default(),
580            r#modifier_extension: Default::default(),
581            r#identifier: Default::default(),
582            r#issued: Default::default(),
583            r#applies: Default::default(),
584            r#topic: Default::default(),
585            r#type: Default::default(),
586            r#sub_type: Default::default(),
587            r#text: Default::default(),
588            r#security_label: Default::default(),
589            r#offer: ContractTermOffer {
590                id: Some("$invalid".to_string()),
591                ..Default::default()
592            },
593            r#asset: Default::default(),
594            r#action: Default::default(),
595            r#group: Default::default(),
596        }
597    }
598}
599#[doc = "Parties with legal standing in the Contract, including the principal parties, the grantor(s) and grantee(s), which are any person or organization bound by the contract, and any ancillary parties, which facilitate the execution of the contract such as a notary or witness."]
600#[derive(Debug, Clone, PartialEq)]
601pub struct ContractSigner {
602    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
603    pub r#id: Option<std::string::String>,
604    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
605    pub r#extension: Vec<super::super::types::Extension>,
606    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
607    pub r#modifier_extension: Vec<super::super::types::Extension>,
608    #[doc = "Role of this Contract signer, e.g. notary, grantee."]
609    pub r#type: Box<super::super::types::Coding>,
610    #[doc = "Party which is a signator to this Contract."]
611    pub r#party: Box<super::super::types::Reference>,
612    #[doc = "Legally binding Contract DSIG signature contents in Base64."]
613    pub r#signature: Vec<super::super::types::Signature>,
614}
615#[allow(clippy::derivable_impls)]
616impl Default for ContractSigner {
617    fn default() -> Self {
618        Self {
619            r#id: Default::default(),
620            r#extension: Default::default(),
621            r#modifier_extension: Default::default(),
622            r#type: Box::new(super::super::types::Coding {
623                id: Some("$invalid".to_string()),
624                ..Default::default()
625            }),
626            r#party: Box::new(super::super::types::Reference {
627                id: Some("$invalid".to_string()),
628                ..Default::default()
629            }),
630            r#signature: Default::default(),
631        }
632    }
633}
634#[doc = "The \"patient friendly language\" versionof the Contract in whole or in parts. \"Patient friendly language\" means the representation of the Contract and Contract Provisions in a manner that is readily accessible and understandable by a layperson in accordance with best practices for communication styles that ensure that those agreeing to or signing the Contract understand the roles, actions, obligations, responsibilities, and implication of the agreement."]
635#[derive(Debug, Clone, PartialEq)]
636pub struct ContractFriendly {
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 manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
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 manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
642    pub r#modifier_extension: Vec<super::super::types::Extension>,
643    #[doc = "Human readable rendering of this Contract in a format and representation intended to enhance comprehension and ensure understandability."]
644    pub r#content: ContractFriendlyContent,
645}
646#[allow(clippy::derivable_impls)]
647impl Default for ContractFriendly {
648    fn default() -> Self {
649        Self {
650            r#id: Default::default(),
651            r#extension: Default::default(),
652            r#modifier_extension: Default::default(),
653            r#content: Default::default(),
654        }
655    }
656}
657#[doc = "List of Legal expressions or representations of this Contract."]
658#[derive(Debug, Clone, PartialEq)]
659pub struct ContractLegal {
660    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
661    pub r#id: Option<std::string::String>,
662    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
663    pub r#extension: Vec<super::super::types::Extension>,
664    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
665    pub r#modifier_extension: Vec<super::super::types::Extension>,
666    #[doc = "Contract legal text in human renderable form."]
667    pub r#content: ContractLegalContent,
668}
669#[allow(clippy::derivable_impls)]
670impl Default for ContractLegal {
671    fn default() -> Self {
672        Self {
673            r#id: Default::default(),
674            r#extension: Default::default(),
675            r#modifier_extension: Default::default(),
676            r#content: Default::default(),
677        }
678    }
679}
680#[doc = "List of Computable Policy Rule Language Representations of this Contract."]
681#[derive(Debug, Clone, PartialEq)]
682pub struct ContractRule {
683    #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
684    pub r#id: Option<std::string::String>,
685    #[doc = "May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
686    pub r#extension: Vec<super::super::types::Extension>,
687    #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
688    pub r#modifier_extension: Vec<super::super::types::Extension>,
689    #[doc = "Computable Contract conveyed using a policy rule language (e.g. XACML, DKAL, SecPal)."]
690    pub r#content: ContractRuleContent,
691}
692#[allow(clippy::derivable_impls)]
693impl Default for ContractRule {
694    fn default() -> Self {
695        Self {
696            r#id: Default::default(),
697            r#extension: Default::default(),
698            r#modifier_extension: Default::default(),
699            r#content: Default::default(),
700        }
701    }
702}
703#[doc = "Legally enforceable, formally recorded unilateral or bilateral directive i.e., a policy or agreement."]
704#[derive(Debug, Clone, PartialEq)]
705pub struct Contract {
706    #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
707    pub r#id: Option<super::super::types::Id>,
708    #[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."]
709    pub r#meta: Option<Box<super::super::types::Meta>>,
710    #[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."]
711    pub r#implicit_rules: Option<super::super::types::Uri>,
712    #[doc = "The base language in which the resource is written."]
713    pub r#language: Option<super::super::types::Code>,
714    #[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."]
715    pub r#text: Option<Box<super::super::types::Narrative>>,
716    #[doc = "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope."]
717    pub r#contained: Vec<super::super::Resource>,
718    #[doc = "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance  applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
719    pub r#extension: Vec<super::super::types::Extension>,
720    #[doc = "May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
721    pub r#modifier_extension: Vec<super::super::types::Extension>,
722    #[doc = "Unique identifier for this Contract or a derivative that references a Source Contract."]
723    pub r#identifier: Vec<super::super::types::Identifier>,
724    #[doc = "Canonical identifier for this contract, represented as a URI (globally unique)."]
725    pub r#url: Option<super::super::types::Uri>,
726    #[doc = "An edition identifier used for business purposes to label business significant variants."]
727    pub r#version: Option<super::super::types::String>,
728    #[doc = "The status of the resource instance."]
729    pub r#status: Option<super::super::types::Code>,
730    #[doc = "Legal states of the formation of a legal instrument, which is a formally executed written document that can be formally attributed to its author, records and formally expresses a legally enforceable act, process, or contractual duty, obligation, or right, and therefore evidences that act, process, or agreement."]
731    pub r#legal_state: Option<Box<super::super::types::CodeableConcept>>,
732    #[doc = "The URL pointing to a FHIR-defined Contract Definition that is adhered to in whole or part by this Contract."]
733    pub r#instantiates_canonical: Option<Box<super::super::types::Reference>>,
734    #[doc = "The URL pointing to an externally maintained definition that is adhered to in whole or in part by this Contract."]
735    pub r#instantiates_uri: Option<super::super::types::Uri>,
736    #[doc = "The minimal content derived from the basal information source at a specific stage in its lifecycle."]
737    pub r#content_derivative: Option<Box<super::super::types::CodeableConcept>>,
738    #[doc = "When this  Contract was issued."]
739    pub r#issued: Option<super::super::types::DateTime>,
740    #[doc = "Relevant time or time-period when this Contract is applicable."]
741    pub r#applies: Option<Box<super::super::types::Period>>,
742    #[doc = "Event resulting in discontinuation or termination of this Contract instance by one or more parties to the contract."]
743    pub r#expiration_type: Option<Box<super::super::types::CodeableConcept>>,
744    #[doc = "The target entity impacted by or of interest to parties to the agreement."]
745    pub r#subject: Vec<super::super::types::Reference>,
746    #[doc = "A formally or informally recognized grouping of people, principals, organizations, or jurisdictions formed for the purpose of achieving some form of collective action such as the promulgation, administration and enforcement of contracts and policies."]
747    pub r#authority: Vec<super::super::types::Reference>,
748    #[doc = "Recognized governance framework or system operating with a circumscribed scope in accordance with specified principles, policies, processes or procedures for managing rights, actions, or behaviors of parties or principals relative to resources."]
749    pub r#domain: Vec<super::super::types::Reference>,
750    #[doc = "Sites in which the contract is complied with,  exercised, or in force."]
751    pub r#site: Vec<super::super::types::Reference>,
752    #[doc = "A natural language name identifying this Contract definition, derivative, or instance in any legal state. Provides additional information about its content. This name should be usable as an identifier for the module by machine processing applications such as code generation."]
753    pub r#name: Option<super::super::types::String>,
754    #[doc = "A short, descriptive, user-friendly title for this Contract definition, derivative, or instance in any legal state.t giving additional information about its content."]
755    pub r#title: Option<super::super::types::String>,
756    #[doc = "An explanatory or alternate user-friendly title for this Contract definition, derivative, or instance in any legal state.t giving additional information about its content."]
757    pub r#subtitle: Option<super::super::types::String>,
758    #[doc = "Alternative representation of the title for this Contract definition, derivative, or instance in any legal state., e.g., a domain specific contract number related to legislation."]
759    pub r#alias: Vec<super::super::types::String>,
760    #[doc = "The individual or organization that authored the Contract definition, derivative, or instance in any legal state."]
761    pub r#author: Option<Box<super::super::types::Reference>>,
762    #[doc = "A selector of legal concerns for this Contract definition, derivative, or instance in any legal state."]
763    pub r#scope: Option<Box<super::super::types::CodeableConcept>>,
764    #[doc = "Narrows the range of legal concerns to focus on the achievement of specific contractual objectives."]
765    pub r#topic: Option<ContractTopic>,
766    #[doc = "A high-level category for the legal instrument, whether constructed as a Contract definition, derivative, or instance in any legal state.  Provides additional information about its content within the context of the Contract's scope to distinguish the kinds of systems that would be interested in the contract."]
767    pub r#type: Option<Box<super::super::types::CodeableConcept>>,
768    #[doc = "Sub-category for the Contract that distinguishes the kinds of systems that would be interested in the Contract within the context of the Contract's scope."]
769    pub r#sub_type: Vec<super::super::types::CodeableConcept>,
770    #[doc = "Precusory content developed with a focus and intent of supporting the formation a Contract instance, which may be associated with and transformable into a Contract."]
771    pub r#content_definition: Option<ContractContentDefinition>,
772    #[doc = "One or more Contract Provisions, which may be related and conveyed as a group, and may contain nested groups."]
773    pub r#term: Vec<ContractTerm>,
774    #[doc = "Information that may be needed by/relevant to the performer in their execution of this term action."]
775    pub r#supporting_info: Vec<super::super::types::Reference>,
776    #[doc = "Links to Provenance records for past versions of this Contract definition, derivative, or instance, which identify key state transitions or updates that are likely to be relevant to a user looking at the current version of the Contract.  The Provence.entity indicates the target that was changed in the update. <http://build.fhir.org/provenance>-definitions.html#Provenance.entity."]
777    pub r#relevant_history: Vec<super::super::types::Reference>,
778    #[doc = "Parties with legal standing in the Contract, including the principal parties, the grantor(s) and grantee(s), which are any person or organization bound by the contract, and any ancillary parties, which facilitate the execution of the contract such as a notary or witness."]
779    pub r#signer: Vec<ContractSigner>,
780    #[doc = "The \"patient friendly language\" versionof the Contract in whole or in parts. \"Patient friendly language\" means the representation of the Contract and Contract Provisions in a manner that is readily accessible and understandable by a layperson in accordance with best practices for communication styles that ensure that those agreeing to or signing the Contract understand the roles, actions, obligations, responsibilities, and implication of the agreement."]
781    pub r#friendly: Vec<ContractFriendly>,
782    #[doc = "List of Legal expressions or representations of this Contract."]
783    pub r#legal: Vec<ContractLegal>,
784    #[doc = "List of Computable Policy Rule Language Representations of this Contract."]
785    pub r#rule: Vec<ContractRule>,
786    #[doc = "Legally binding Contract: This is the signed and legally recognized representation of the Contract, which is considered the \"source of truth\" and which would be the basis for legal action related to enforcement of this Contract."]
787    pub r#legally_binding: Option<ContractLegallyBinding>,
788}
789#[allow(clippy::derivable_impls)]
790impl Default for Contract {
791    fn default() -> Self {
792        Self {
793            r#id: Default::default(),
794            r#meta: Default::default(),
795            r#implicit_rules: Default::default(),
796            r#language: Default::default(),
797            r#text: Default::default(),
798            r#contained: Default::default(),
799            r#extension: Default::default(),
800            r#modifier_extension: Default::default(),
801            r#identifier: Default::default(),
802            r#url: Default::default(),
803            r#version: Default::default(),
804            r#status: Default::default(),
805            r#legal_state: Default::default(),
806            r#instantiates_canonical: Default::default(),
807            r#instantiates_uri: Default::default(),
808            r#content_derivative: Default::default(),
809            r#issued: Default::default(),
810            r#applies: Default::default(),
811            r#expiration_type: Default::default(),
812            r#subject: Default::default(),
813            r#authority: Default::default(),
814            r#domain: Default::default(),
815            r#site: Default::default(),
816            r#name: Default::default(),
817            r#title: Default::default(),
818            r#subtitle: Default::default(),
819            r#alias: Default::default(),
820            r#author: Default::default(),
821            r#scope: Default::default(),
822            r#topic: Default::default(),
823            r#type: Default::default(),
824            r#sub_type: Default::default(),
825            r#content_definition: Default::default(),
826            r#term: Default::default(),
827            r#supporting_info: Default::default(),
828            r#relevant_history: Default::default(),
829            r#signer: Default::default(),
830            r#friendly: Default::default(),
831            r#legal: Default::default(),
832            r#rule: Default::default(),
833            r#legally_binding: Default::default(),
834        }
835    }
836}