#![allow(unused_imports)]
use crate::r5::types;
use ::serde::{Deserialize, Serialize};
use fhir_derive_macros::Validate;
#[serde_with::skip_serializing_none]
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq, Eq, Validate)]
#[serde(rename_all = "camelCase")]
pub struct Contract {
pub id: Option<types::String>,
pub meta: Option<types::Meta>,
pub implicit_rules: Option<types::Uri>,
#[serde(rename = "_implicitRules")]
pub implicit_rules_ext: Option<types::Element>,
pub language: Option<types::Code>,
#[serde(rename = "_language")]
pub language_ext: Option<types::Element>,
pub text: Option<types::Narrative>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub contained: Vec<::serde_json::Value>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub extension: Vec<types::Extension>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub modifier_extension: Vec<types::Extension>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub identifier: Vec<types::Identifier>,
pub url: Option<types::Uri>,
#[serde(rename = "_url")]
pub url_ext: Option<types::Element>,
pub version: Option<types::String>,
#[serde(rename = "_version")]
pub version_ext: Option<types::Element>,
pub status: Option<crate::r5::coded::Coded<crate::r5::codes::ContractStatus>>,
#[serde(rename = "_status")]
pub status_ext: Option<types::Element>,
pub legal_state: Option<types::CodeableConcept>,
pub instantiates_canonical: Option<types::Reference>,
pub instantiates_uri: Option<types::Uri>,
#[serde(rename = "_instantiatesUri")]
pub instantiates_uri_ext: Option<types::Element>,
pub content_derivative: Option<types::CodeableConcept>,
pub issued: Option<types::DateTime>,
#[serde(rename = "_issued")]
pub issued_ext: Option<types::Element>,
pub applies: Option<types::Period>,
pub expiration_type: Option<types::CodeableConcept>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub subject: Vec<types::Reference>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub authority: Vec<types::Reference>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub domain: Vec<types::Reference>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub site: Vec<types::Reference>,
pub name: Option<types::String>,
#[serde(rename = "_name")]
pub name_ext: Option<types::Element>,
pub title: Option<types::String>,
#[serde(rename = "_title")]
pub title_ext: Option<types::Element>,
pub subtitle: Option<types::String>,
#[serde(rename = "_subtitle")]
pub subtitle_ext: Option<types::Element>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub alias: Vec<types::String>,
#[serde(rename = "_alias")]
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub alias_ext: Vec<Option<types::Element>>,
pub author: Option<types::Reference>,
pub scope: Option<types::CodeableConcept>,
#[serde(flatten)]
pub topic: Option<ContractTopic>,
pub r#type: Option<types::CodeableConcept>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub sub_type: Vec<types::CodeableConcept>,
pub content_definition: Option<ContractContentDefinition>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub term: Vec<ContractTerm>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub supporting_info: Vec<types::Reference>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub relevant_history: Vec<types::Reference>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub signer: Vec<ContractSigner>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub friendly: Vec<ContractFriendly>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub legal: Vec<ContractLegal>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub rule: Vec<ContractRule>,
#[serde(flatten)]
pub legally_binding: Option<ContractLegallyBinding>,
}
#[serde_with::skip_serializing_none]
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq, Eq, Validate)]
#[serde(rename_all = "camelCase")]
pub struct ContractContentDefinition {
pub id: Option<types::String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub extension: Vec<types::Extension>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub modifier_extension: Vec<types::Extension>,
pub r#type: types::CodeableConcept,
pub sub_type: Option<types::CodeableConcept>,
pub publisher: Option<types::Reference>,
pub publication_date: Option<types::DateTime>,
#[serde(rename = "_publicationDate")]
pub publication_date_ext: Option<types::Element>,
pub publication_status: crate::r5::coded::Coded<crate::r5::codes::ContractPublicationstatus>,
#[serde(rename = "_publicationStatus")]
pub publication_status_ext: Option<types::Element>,
pub copyright: Option<types::Markdown>,
#[serde(rename = "_copyright")]
pub copyright_ext: Option<types::Element>,
}
#[serde_with::skip_serializing_none]
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq, Eq, Validate)]
#[serde(rename_all = "camelCase")]
pub struct ContractTerm {
pub id: Option<types::String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub extension: Vec<types::Extension>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub modifier_extension: Vec<types::Extension>,
pub identifier: Option<types::Identifier>,
pub issued: Option<types::DateTime>,
#[serde(rename = "_issued")]
pub issued_ext: Option<types::Element>,
pub applies: Option<types::Period>,
#[serde(flatten)]
pub topic: Option<ContractTermTopic>,
pub r#type: Option<types::CodeableConcept>,
pub sub_type: Option<types::CodeableConcept>,
pub text: Option<types::String>,
#[serde(rename = "_text")]
pub text_ext: Option<types::Element>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub security_label: Vec<ContractTermSecurityLabel>,
pub offer: ContractTermOffer,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub asset: Vec<ContractTermAsset>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub action: Vec<ContractTermAction>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub group: Vec<ContractTerm>,
}
#[serde_with::skip_serializing_none]
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq, Eq, Validate)]
#[serde(rename_all = "camelCase")]
pub struct ContractTermSecurityLabel {
pub id: Option<types::String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub extension: Vec<types::Extension>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub modifier_extension: Vec<types::Extension>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub number: Vec<types::UnsignedInt>,
#[serde(rename = "_number")]
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub number_ext: Vec<Option<types::Element>>,
pub classification: types::Coding,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub category: Vec<types::Coding>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub control: Vec<types::Coding>,
}
#[serde_with::skip_serializing_none]
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq, Eq, Validate)]
#[serde(rename_all = "camelCase")]
pub struct ContractTermOffer {
pub id: Option<types::String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub extension: Vec<types::Extension>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub modifier_extension: Vec<types::Extension>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub identifier: Vec<types::Identifier>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub party: Vec<ContractTermOfferParty>,
pub topic: Option<types::Reference>,
pub r#type: Option<types::CodeableConcept>,
pub decision: Option<types::CodeableConcept>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub decision_mode: Vec<types::CodeableConcept>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub answer: Vec<ContractTermOfferAnswer>,
pub text: Option<types::String>,
#[serde(rename = "_text")]
pub text_ext: Option<types::Element>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub link_id: Vec<types::String>,
#[serde(rename = "_linkId")]
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub link_id_ext: Vec<Option<types::Element>>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub security_label_number: Vec<types::UnsignedInt>,
#[serde(rename = "_securityLabelNumber")]
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub security_label_number_ext: Vec<Option<types::Element>>,
}
#[serde_with::skip_serializing_none]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Validate)]
#[serde(rename_all = "camelCase")]
pub struct ContractTermOfferParty {
pub id: Option<types::String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub extension: Vec<types::Extension>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub modifier_extension: Vec<types::Extension>,
pub reference: vec1::Vec1<types::Reference>,
pub role: types::CodeableConcept,
}
#[serde_with::skip_serializing_none]
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq, Eq, Validate)]
#[serde(rename_all = "camelCase")]
pub struct ContractTermOfferAnswer {
pub id: Option<types::String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub extension: Vec<types::Extension>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub modifier_extension: Vec<types::Extension>,
#[serde(flatten)]
pub value: Option<ContractTermOfferAnswerValue>,
}
#[serde_with::skip_serializing_none]
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq, Eq, Validate)]
#[serde(rename_all = "camelCase")]
pub struct ContractTermAsset {
pub id: Option<types::String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub extension: Vec<types::Extension>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub modifier_extension: Vec<types::Extension>,
pub scope: Option<types::CodeableConcept>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub r#type: Vec<types::CodeableConcept>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub type_reference: Vec<types::Reference>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub subtype: Vec<types::CodeableConcept>,
pub relationship: Option<types::Coding>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub context: Vec<ContractTermAssetContext>,
pub condition: Option<types::String>,
#[serde(rename = "_condition")]
pub condition_ext: Option<types::Element>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub period_type: Vec<types::CodeableConcept>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub period: Vec<types::Period>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub use_period: Vec<types::Period>,
pub text: Option<types::String>,
#[serde(rename = "_text")]
pub text_ext: Option<types::Element>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub link_id: Vec<types::String>,
#[serde(rename = "_linkId")]
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub link_id_ext: Vec<Option<types::Element>>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub answer: Vec<ContractTermOfferAnswer>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub security_label_number: Vec<types::UnsignedInt>,
#[serde(rename = "_securityLabelNumber")]
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub security_label_number_ext: Vec<Option<types::Element>>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub valued_item: Vec<ContractTermAssetValuedItem>,
}
#[serde_with::skip_serializing_none]
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq, Eq, Validate)]
#[serde(rename_all = "camelCase")]
pub struct ContractTermAssetContext {
pub id: Option<types::String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub extension: Vec<types::Extension>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub modifier_extension: Vec<types::Extension>,
pub reference: Option<types::Reference>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub code: Vec<types::CodeableConcept>,
pub text: Option<types::String>,
#[serde(rename = "_text")]
pub text_ext: Option<types::Element>,
}
#[serde_with::skip_serializing_none]
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq, Eq, Validate)]
#[serde(rename_all = "camelCase")]
pub struct ContractTermAssetValuedItem {
pub id: Option<types::String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub extension: Vec<types::Extension>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub modifier_extension: Vec<types::Extension>,
#[serde(flatten)]
pub entity: Option<ContractTermAssetValuedItemEntity>,
pub identifier: Option<types::Identifier>,
pub effective_time: Option<types::DateTime>,
#[serde(rename = "_effectiveTime")]
pub effective_time_ext: Option<types::Element>,
pub quantity: Option<types::Quantity>,
pub unit_price: Option<types::Money>,
pub factor: Option<types::Decimal>,
#[serde(rename = "_factor")]
pub factor_ext: Option<types::Element>,
pub points: Option<types::Decimal>,
#[serde(rename = "_points")]
pub points_ext: Option<types::Element>,
pub net: Option<types::Money>,
pub payment: Option<types::String>,
#[serde(rename = "_payment")]
pub payment_ext: Option<types::Element>,
pub payment_date: Option<types::DateTime>,
#[serde(rename = "_paymentDate")]
pub payment_date_ext: Option<types::Element>,
pub responsible: Option<types::Reference>,
pub recipient: Option<types::Reference>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub link_id: Vec<types::String>,
#[serde(rename = "_linkId")]
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub link_id_ext: Vec<Option<types::Element>>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub security_label_number: Vec<types::UnsignedInt>,
#[serde(rename = "_securityLabelNumber")]
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub security_label_number_ext: Vec<Option<types::Element>>,
}
#[serde_with::skip_serializing_none]
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq, Eq, Validate)]
#[serde(rename_all = "camelCase")]
pub struct ContractTermAction {
pub id: Option<types::String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub extension: Vec<types::Extension>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub modifier_extension: Vec<types::Extension>,
pub do_not_perform: Option<types::Boolean>,
#[serde(rename = "_doNotPerform")]
pub do_not_perform_ext: Option<types::Element>,
pub r#type: types::CodeableConcept,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub subject: Vec<ContractTermActionSubject>,
pub intent: types::CodeableConcept,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub link_id: Vec<types::String>,
#[serde(rename = "_linkId")]
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub link_id_ext: Vec<Option<types::Element>>,
pub status: types::CodeableConcept,
pub context: Option<types::Reference>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub context_link_id: Vec<types::String>,
#[serde(rename = "_contextLinkId")]
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub context_link_id_ext: Vec<Option<types::Element>>,
#[serde(flatten)]
pub occurrence: Option<ContractTermActionOccurrence>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub requester: Vec<types::Reference>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub requester_link_id: Vec<types::String>,
#[serde(rename = "_requesterLinkId")]
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub requester_link_id_ext: Vec<Option<types::Element>>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub performer_type: Vec<types::CodeableConcept>,
pub performer_role: Option<types::CodeableConcept>,
pub performer: Option<types::Reference>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub performer_link_id: Vec<types::String>,
#[serde(rename = "_performerLinkId")]
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub performer_link_id_ext: Vec<Option<types::Element>>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub reason: Vec<types::CodeableReference>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub reason_link_id: Vec<types::String>,
#[serde(rename = "_reasonLinkId")]
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub reason_link_id_ext: Vec<Option<types::Element>>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub note: Vec<types::Annotation>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub security_label_number: Vec<types::UnsignedInt>,
#[serde(rename = "_securityLabelNumber")]
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub security_label_number_ext: Vec<Option<types::Element>>,
}
#[serde_with::skip_serializing_none]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Validate)]
#[serde(rename_all = "camelCase")]
pub struct ContractTermActionSubject {
pub id: Option<types::String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub extension: Vec<types::Extension>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub modifier_extension: Vec<types::Extension>,
pub reference: vec1::Vec1<types::Reference>,
pub role: Option<types::CodeableConcept>,
}
#[serde_with::skip_serializing_none]
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, Validate)]
#[serde(rename_all = "camelCase")]
pub struct ContractSigner {
pub id: Option<types::String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub extension: Vec<types::Extension>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub modifier_extension: Vec<types::Extension>,
pub r#type: types::Coding,
pub party: types::Reference,
pub signature: vec1::Vec1<types::Signature>,
}
#[serde_with::skip_serializing_none]
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq, Eq, Validate)]
#[serde(rename_all = "camelCase")]
pub struct ContractFriendly {
pub id: Option<types::String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub extension: Vec<types::Extension>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub modifier_extension: Vec<types::Extension>,
#[serde(flatten)]
pub content: Option<ContractFriendlyContent>,
}
#[serde_with::skip_serializing_none]
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq, Eq, Validate)]
#[serde(rename_all = "camelCase")]
pub struct ContractLegal {
pub id: Option<types::String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub extension: Vec<types::Extension>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub modifier_extension: Vec<types::Extension>,
#[serde(flatten)]
pub content: Option<ContractLegalContent>,
}
#[serde_with::skip_serializing_none]
#[derive(Debug, Default, Clone, Serialize, Deserialize, PartialEq, Eq, Validate)]
#[serde(rename_all = "camelCase")]
pub struct ContractRule {
pub id: Option<types::String>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub extension: Vec<types::Extension>,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub modifier_extension: Vec<types::Extension>,
#[serde(flatten)]
pub content: Option<ContractRuleContent>,
}
#[cfg(test)]
mod tests {
use super::*;
type T = Contract;
#[test]
fn test_default() {
let _ = T::default();
}
#[test]
fn test_serde_round_trip() {
let value = T::default();
let json = ::serde_json::to_value(&value).expect("to_value");
let back: T = ::serde_json::from_value(json).expect("from_value");
assert_eq!(value, back);
}
}
#[derive(Debug, Clone, PartialEq, Eq, fhir_derive_macros::FhirChoice, Validate)]
#[allow(clippy::large_enum_variant)]
pub enum ContractFriendlyContent {
#[fhir("contentAttachment")]
Attachment(Box<types::Attachment>),
#[fhir("contentReference")]
Reference(Box<types::Reference>),
}
#[derive(Debug, Clone, PartialEq, Eq, fhir_derive_macros::FhirChoice, Validate)]
#[allow(clippy::large_enum_variant)]
pub enum ContractLegalContent {
#[fhir("contentAttachment")]
Attachment(Box<types::Attachment>),
#[fhir("contentReference")]
Reference(Box<types::Reference>),
}
#[derive(Debug, Clone, PartialEq, Eq, fhir_derive_macros::FhirChoice, Validate)]
#[allow(clippy::large_enum_variant)]
pub enum ContractLegallyBinding {
#[fhir("legallyBindingAttachment")]
Attachment(Box<types::Attachment>),
#[fhir("legallyBindingReference")]
Reference(Box<types::Reference>),
}
#[derive(Debug, Clone, PartialEq, Eq, fhir_derive_macros::FhirChoice, Validate)]
#[allow(clippy::large_enum_variant)]
pub enum ContractRuleContent {
#[fhir("contentAttachment")]
Attachment(Box<types::Attachment>),
#[fhir("contentReference")]
Reference(Box<types::Reference>),
}
#[derive(Debug, Clone, PartialEq, Eq, fhir_derive_macros::FhirChoice, Validate)]
#[allow(clippy::large_enum_variant)]
pub enum ContractTermActionOccurrence {
#[fhir("occurrenceDateTime")]
DateTime(crate::r5::choice::Primitive<types::DateTime>),
#[fhir("occurrencePeriod")]
Period(Box<types::Period>),
#[fhir("occurrenceTiming")]
Timing(Box<types::Timing>),
}
#[derive(Debug, Clone, PartialEq, Eq, fhir_derive_macros::FhirChoice, Validate)]
#[allow(clippy::large_enum_variant)]
pub enum ContractTermAssetValuedItemEntity {
#[fhir("entityCodeableConcept")]
CodeableConcept(Box<types::CodeableConcept>),
#[fhir("entityReference")]
Reference(Box<types::Reference>),
}
#[derive(Debug, Clone, PartialEq, Eq, fhir_derive_macros::FhirChoice, Validate)]
#[allow(clippy::large_enum_variant)]
pub enum ContractTermOfferAnswerValue {
#[fhir("valueBoolean")]
Boolean(crate::r5::choice::Primitive<types::Boolean>),
#[fhir("valueDecimal")]
Decimal(crate::r5::choice::Primitive<types::Decimal>),
#[fhir("valueInteger")]
Integer(crate::r5::choice::Primitive<types::Integer>),
#[fhir("valueDate")]
Date(crate::r5::choice::Primitive<types::Date>),
#[fhir("valueDateTime")]
DateTime(crate::r5::choice::Primitive<types::DateTime>),
#[fhir("valueTime")]
Time(crate::r5::choice::Primitive<types::Time>),
#[fhir("valueString")]
String(crate::r5::choice::Primitive<types::String>),
#[fhir("valueUri")]
Uri(crate::r5::choice::Primitive<types::Uri>),
#[fhir("valueAttachment")]
Attachment(Box<types::Attachment>),
#[fhir("valueCoding")]
Coding(Box<types::Coding>),
#[fhir("valueQuantity")]
Quantity(Box<types::Quantity>),
#[fhir("valueReference")]
Reference(Box<types::Reference>),
}
#[derive(Debug, Clone, PartialEq, Eq, fhir_derive_macros::FhirChoice, Validate)]
#[allow(clippy::large_enum_variant)]
pub enum ContractTermTopic {
#[fhir("topicCodeableConcept")]
CodeableConcept(Box<types::CodeableConcept>),
#[fhir("topicReference")]
Reference(Box<types::Reference>),
}
#[derive(Debug, Clone, PartialEq, Eq, fhir_derive_macros::FhirChoice, Validate)]
#[allow(clippy::large_enum_variant)]
pub enum ContractTopic {
#[fhir("topicCodeableConcept")]
CodeableConcept(Box<types::CodeableConcept>),
#[fhir("topicReference")]
Reference(Box<types::Reference>),
}