1#[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, warranty 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 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."]
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 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)."]
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 last significantly changed. 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 +."]
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 managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension."]
135 pub r#extension: Vec<super::super::types::Extension>,
136 #[doc = "May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and managable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself)."]
137 pub r#modifier_extension: Vec<super::super::types::Extension>,
138 #[doc = "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 specifies 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 specifies 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 specifies 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 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."]
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 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)."]
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 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."]
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 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)."]
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, warranty 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 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."]
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 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)."]
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 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."]
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 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)."]
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 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."]
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 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)."]
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 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."]
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 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)."]
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 or instances 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 may 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 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."]
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 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)."]
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 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."]
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 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)."]
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 the 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. Either a coded concept, or another resource whose existence justifies permitting or not permitting this action."]
488 pub r#reason: Vec<super::super::types::CodeableReference>,
489 #[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."]
490 pub r#reason_link_id: Vec<super::super::types::String>,
491 #[doc = "Comments made about the term action made by the requester, performer, subject or other participants."]
492 pub r#note: Vec<super::super::types::Annotation>,
493 #[doc = "Security labels that protects the action."]
494 pub r#security_label_number: Vec<super::super::types::UnsignedInt>,
495}
496#[allow(clippy::derivable_impls)]
497impl Default for ContractTermAction {
498 fn default() -> Self {
499 Self {
500 r#id: Default::default(),
501 r#extension: Default::default(),
502 r#modifier_extension: Default::default(),
503 r#do_not_perform: Default::default(),
504 r#type: Box::new(super::super::types::CodeableConcept {
505 id: Some("$invalid".to_string()),
506 ..Default::default()
507 }),
508 r#subject: Default::default(),
509 r#intent: Box::new(super::super::types::CodeableConcept {
510 id: Some("$invalid".to_string()),
511 ..Default::default()
512 }),
513 r#link_id: Default::default(),
514 r#status: Box::new(super::super::types::CodeableConcept {
515 id: Some("$invalid".to_string()),
516 ..Default::default()
517 }),
518 r#context: Default::default(),
519 r#context_link_id: Default::default(),
520 r#occurrence: Default::default(),
521 r#requester: Default::default(),
522 r#requester_link_id: Default::default(),
523 r#performer_type: Default::default(),
524 r#performer_role: Default::default(),
525 r#performer: Default::default(),
526 r#performer_link_id: Default::default(),
527 r#reason: Default::default(),
528 r#reason_link_id: Default::default(),
529 r#note: Default::default(),
530 r#security_label_number: Default::default(),
531 }
532 }
533}
534#[doc = "One or more Contract Provisions, which may be related and conveyed as a group, and may contain nested groups."]
535#[derive(Debug, Clone, PartialEq)]
536pub struct ContractTerm {
537 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
538 pub r#id: Option<std::string::String>,
539 #[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."]
540 pub r#extension: Vec<super::super::types::Extension>,
541 #[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)."]
542 pub r#modifier_extension: Vec<super::super::types::Extension>,
543 #[doc = "Unique identifier for this particular Contract Provision."]
544 pub r#identifier: Option<Box<super::super::types::Identifier>>,
545 #[doc = "When this Contract Provision was issued."]
546 pub r#issued: Option<super::super::types::DateTime>,
547 #[doc = "Relevant time or time-period when this Contract Provision is applicable."]
548 pub r#applies: Option<Box<super::super::types::Period>>,
549 #[doc = "The entity that the term applies to."]
550 pub r#topic: Option<ContractTermTopic>,
551 #[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."]
552 pub r#type: Option<Box<super::super::types::CodeableConcept>>,
553 #[doc = "A specialized legal clause or condition based on overarching contract type."]
554 pub r#sub_type: Option<Box<super::super::types::CodeableConcept>>,
555 #[doc = "Statement of a provision in a policy or a contract."]
556 pub r#text: Option<super::super::types::String>,
557 #[doc = "Security labels that protect the handling of information about the term and its elements, which may be specifically identified."]
558 pub r#security_label: Vec<ContractTermSecurityLabel>,
559 #[doc = "The matter of concern in the context of this provision of the agrement."]
560 pub r#offer: ContractTermOffer,
561 #[doc = "Contract Term Asset List."]
562 pub r#asset: Vec<ContractTermAsset>,
563 #[doc = "An actor taking a role in an activity for which it can be assigned some degree of responsibility for the activity taking place."]
564 pub r#action: Vec<ContractTermAction>,
565 #[doc = "Nested group of Contract Provisions."]
566 pub r#group: Vec<ContractTerm>,
567}
568#[allow(clippy::derivable_impls)]
569impl Default for ContractTerm {
570 fn default() -> Self {
571 Self {
572 r#id: Default::default(),
573 r#extension: Default::default(),
574 r#modifier_extension: Default::default(),
575 r#identifier: Default::default(),
576 r#issued: Default::default(),
577 r#applies: Default::default(),
578 r#topic: Default::default(),
579 r#type: Default::default(),
580 r#sub_type: Default::default(),
581 r#text: Default::default(),
582 r#security_label: Default::default(),
583 r#offer: ContractTermOffer {
584 id: Some("$invalid".to_string()),
585 ..Default::default()
586 },
587 r#asset: Default::default(),
588 r#action: Default::default(),
589 r#group: Default::default(),
590 }
591 }
592}
593#[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."]
594#[derive(Debug, Clone, PartialEq)]
595pub struct ContractSigner {
596 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
597 pub r#id: Option<std::string::String>,
598 #[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."]
599 pub r#extension: Vec<super::super::types::Extension>,
600 #[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)."]
601 pub r#modifier_extension: Vec<super::super::types::Extension>,
602 #[doc = "Role of this Contract signer, e.g. notary, grantee."]
603 pub r#type: Box<super::super::types::Coding>,
604 #[doc = "Party which is a signator to this Contract."]
605 pub r#party: Box<super::super::types::Reference>,
606 #[doc = "Legally binding Contract DSIG signature contents in Base64."]
607 pub r#signature: Vec<super::super::types::Signature>,
608}
609#[allow(clippy::derivable_impls)]
610impl Default for ContractSigner {
611 fn default() -> Self {
612 Self {
613 r#id: Default::default(),
614 r#extension: Default::default(),
615 r#modifier_extension: Default::default(),
616 r#type: Box::new(super::super::types::Coding {
617 id: Some("$invalid".to_string()),
618 ..Default::default()
619 }),
620 r#party: Box::new(super::super::types::Reference {
621 id: Some("$invalid".to_string()),
622 ..Default::default()
623 }),
624 r#signature: Default::default(),
625 }
626 }
627}
628#[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."]
629#[derive(Debug, Clone, PartialEq)]
630pub struct ContractFriendly {
631 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
632 pub r#id: Option<std::string::String>,
633 #[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."]
634 pub r#extension: Vec<super::super::types::Extension>,
635 #[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)."]
636 pub r#modifier_extension: Vec<super::super::types::Extension>,
637 #[doc = "Human readable rendering of this Contract in a format and representation intended to enhance comprehension and ensure understandability."]
638 pub r#content: ContractFriendlyContent,
639}
640#[allow(clippy::derivable_impls)]
641impl Default for ContractFriendly {
642 fn default() -> Self {
643 Self {
644 r#id: Default::default(),
645 r#extension: Default::default(),
646 r#modifier_extension: Default::default(),
647 r#content: Default::default(),
648 }
649 }
650}
651#[doc = "List of Legal expressions or representations of this Contract."]
652#[derive(Debug, Clone, PartialEq)]
653pub struct ContractLegal {
654 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
655 pub r#id: Option<std::string::String>,
656 #[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."]
657 pub r#extension: Vec<super::super::types::Extension>,
658 #[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)."]
659 pub r#modifier_extension: Vec<super::super::types::Extension>,
660 #[doc = "Contract legal text in human renderable form."]
661 pub r#content: ContractLegalContent,
662}
663#[allow(clippy::derivable_impls)]
664impl Default for ContractLegal {
665 fn default() -> Self {
666 Self {
667 r#id: Default::default(),
668 r#extension: Default::default(),
669 r#modifier_extension: Default::default(),
670 r#content: Default::default(),
671 }
672 }
673}
674#[doc = "List of Computable Policy Rule Language Representations of this Contract."]
675#[derive(Debug, Clone, PartialEq)]
676pub struct ContractRule {
677 #[doc = "Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces."]
678 pub r#id: Option<std::string::String>,
679 #[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."]
680 pub r#extension: Vec<super::super::types::Extension>,
681 #[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)."]
682 pub r#modifier_extension: Vec<super::super::types::Extension>,
683 #[doc = "Computable Contract conveyed using a policy rule language (e.g. XACML, DKAL, SecPal)."]
684 pub r#content: ContractRuleContent,
685}
686#[allow(clippy::derivable_impls)]
687impl Default for ContractRule {
688 fn default() -> Self {
689 Self {
690 r#id: Default::default(),
691 r#extension: Default::default(),
692 r#modifier_extension: Default::default(),
693 r#content: Default::default(),
694 }
695 }
696}
697#[doc = "Legally enforceable, formally recorded unilateral or bilateral directive i.e., a policy or agreement."]
698#[derive(Debug, Clone, PartialEq)]
699pub struct Contract {
700 #[doc = "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes."]
701 pub r#id: Option<super::super::types::Id>,
702 #[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."]
703 pub r#meta: Option<Box<super::super::types::Meta>>,
704 #[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."]
705 pub r#implicit_rules: Option<super::super::types::Uri>,
706 #[doc = "The base language in which the resource is written."]
707 pub r#language: Option<super::super::types::Code>,
708 #[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."]
709 pub r#text: Option<Box<super::super::types::Narrative>>,
710 #[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."]
711 pub r#contained: Vec<super::super::Resource>,
712 #[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."]
713 pub r#extension: Vec<super::super::types::Extension>,
714 #[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)."]
715 pub r#modifier_extension: Vec<super::super::types::Extension>,
716 #[doc = "Unique identifier for this Contract or a derivative that references a Source Contract."]
717 pub r#identifier: Vec<super::super::types::Identifier>,
718 #[doc = "Canonical identifier for this contract, represented as a URI (globally unique)."]
719 pub r#url: Option<super::super::types::Uri>,
720 #[doc = "An edition identifier used for business purposes to label business significant variants."]
721 pub r#version: Option<super::super::types::String>,
722 #[doc = "The status of the resource instance."]
723 pub r#status: Option<super::super::types::Code>,
724 #[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."]
725 pub r#legal_state: Option<Box<super::super::types::CodeableConcept>>,
726 #[doc = "The URL pointing to a FHIR-defined Contract Definition that is adhered to in whole or part by this Contract."]
727 pub r#instantiates_canonical: Option<Box<super::super::types::Reference>>,
728 #[doc = "The URL pointing to an externally maintained definition that is adhered to in whole or in part by this Contract."]
729 pub r#instantiates_uri: Option<super::super::types::Uri>,
730 #[doc = "The minimal content derived from the basal information source at a specific stage in its lifecycle."]
731 pub r#content_derivative: Option<Box<super::super::types::CodeableConcept>>,
732 #[doc = "When this Contract was issued."]
733 pub r#issued: Option<super::super::types::DateTime>,
734 #[doc = "Relevant time or time-period when this Contract is applicable."]
735 pub r#applies: Option<Box<super::super::types::Period>>,
736 #[doc = "Event resulting in discontinuation or termination of this Contract instance by one or more parties to the contract."]
737 pub r#expiration_type: Option<Box<super::super::types::CodeableConcept>>,
738 #[doc = "The target entity impacted by or of interest to parties to the agreement."]
739 pub r#subject: Vec<super::super::types::Reference>,
740 #[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."]
741 pub r#authority: Vec<super::super::types::Reference>,
742 #[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."]
743 pub r#domain: Vec<super::super::types::Reference>,
744 #[doc = "Sites in which the contract is complied with, exercised, or in force."]
745 pub r#site: Vec<super::super::types::Reference>,
746 #[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."]
747 pub r#name: Option<super::super::types::String>,
748 #[doc = "A short, descriptive, user-friendly title for this Contract definition, derivative, or instance in any legal state."]
749 pub r#title: Option<super::super::types::String>,
750 #[doc = "A more detailed or qualifying explanatory or alternate user-friendly title for this Contract definition, derivative, or instance in any legal state."]
751 pub r#subtitle: Option<super::super::types::String>,
752 #[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."]
753 pub r#alias: Vec<super::super::types::String>,
754 #[doc = "The individual or organization that authored the Contract definition, derivative, or instance in any legal state."]
755 pub r#author: Option<Box<super::super::types::Reference>>,
756 #[doc = "A selector of legal concerns for this Contract definition, derivative, or instance in any legal state."]
757 pub r#scope: Option<Box<super::super::types::CodeableConcept>>,
758 #[doc = "Narrows the range of legal concerns to focus on the achievement of specific contractual objectives."]
759 pub r#topic: Option<ContractTopic>,
760 #[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."]
761 pub r#type: Option<Box<super::super::types::CodeableConcept>>,
762 #[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."]
763 pub r#sub_type: Vec<super::super::types::CodeableConcept>,
764 #[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."]
765 pub r#content_definition: Option<ContractContentDefinition>,
766 #[doc = "One or more Contract Provisions, which may be related and conveyed as a group, and may contain nested groups."]
767 pub r#term: Vec<ContractTerm>,
768 #[doc = "Information that may be needed by/relevant to the performer in their execution of this term action."]
769 pub r#supporting_info: Vec<super::super::types::Reference>,
770 #[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 Provenance.entity indicates the target that was changed in the update (see [Provenance.entity](provenance-definitions.html#Provenance.entity))."]
771 pub r#relevant_history: Vec<super::super::types::Reference>,
772 #[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."]
773 pub r#signer: Vec<ContractSigner>,
774 #[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."]
775 pub r#friendly: Vec<ContractFriendly>,
776 #[doc = "List of Legal expressions or representations of this Contract."]
777 pub r#legal: Vec<ContractLegal>,
778 #[doc = "List of Computable Policy Rule Language Representations of this Contract."]
779 pub r#rule: Vec<ContractRule>,
780 #[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."]
781 pub r#legally_binding: Option<ContractLegallyBinding>,
782}
783#[allow(clippy::derivable_impls)]
784impl Default for Contract {
785 fn default() -> Self {
786 Self {
787 r#id: Default::default(),
788 r#meta: Default::default(),
789 r#implicit_rules: Default::default(),
790 r#language: Default::default(),
791 r#text: Default::default(),
792 r#contained: Default::default(),
793 r#extension: Default::default(),
794 r#modifier_extension: Default::default(),
795 r#identifier: Default::default(),
796 r#url: Default::default(),
797 r#version: Default::default(),
798 r#status: Default::default(),
799 r#legal_state: Default::default(),
800 r#instantiates_canonical: Default::default(),
801 r#instantiates_uri: Default::default(),
802 r#content_derivative: Default::default(),
803 r#issued: Default::default(),
804 r#applies: Default::default(),
805 r#expiration_type: Default::default(),
806 r#subject: Default::default(),
807 r#authority: Default::default(),
808 r#domain: Default::default(),
809 r#site: Default::default(),
810 r#name: Default::default(),
811 r#title: Default::default(),
812 r#subtitle: Default::default(),
813 r#alias: Default::default(),
814 r#author: Default::default(),
815 r#scope: Default::default(),
816 r#topic: Default::default(),
817 r#type: Default::default(),
818 r#sub_type: Default::default(),
819 r#content_definition: Default::default(),
820 r#term: Default::default(),
821 r#supporting_info: Default::default(),
822 r#relevant_history: Default::default(),
823 r#signer: Default::default(),
824 r#friendly: Default::default(),
825 r#legal: Default::default(),
826 r#rule: Default::default(),
827 r#legally_binding: Default::default(),
828 }
829 }
830}