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, 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}