#![allow(
dead_code,
non_snake_case,
non_camel_case_types,
clippy::all,
clippy::pedantic,
clippy::nursery,
reason = "mechanically generated model text: the XSD is emitted in full under its own spec-owned element/attribute spellings, so naming, style and dead-code lints do not apply — the hand-written runtime carries the lint bar"
)]
#![expect(
clippy::disallowed_types,
reason = "adjudicated free-form JSON slots: serde_json::Value is workspace-banned (#1694); a generated carrier exists only where the spec leaves the slot open, and each adjudicated field's NOTE names its citation"
)]
#[derive(Debug, Clone, PartialEq)]
pub struct Annotation {
pub path: String,
pub items: indexmap::IndexMap<String, String>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct Archetype {
pub original_language: openehr_base::prelude::CodePhrase,
pub is_controlled: Option<bool>,
pub description: Option<ResourceDescription>,
pub translations: Vec<TranslationDetails>,
pub revision_history: Option<openehr_rm::prelude::RevisionHistory>,
pub uid: Option<openehr_base::prelude::HierObjectId>,
pub archetype_id: openehr_base::prelude::ArchetypeId,
pub adl_version: Option<String>,
pub concept: String,
pub parent_archetype_id: Option<openehr_base::prelude::ArchetypeId>,
pub definition: CComplexObject,
pub invariants: Vec<Assertion>,
pub ontology: ArchetypeOntology,
}
#[derive(Debug, Clone, PartialEq)]
pub enum ArchetypeConstraint {
ArchetypeInternalRef(ArchetypeInternalRef),
ArchetypeSlot(ArchetypeSlot),
ConstraintRef(ConstraintRef),
CArchetypeRoot(CArchetypeRoot),
CCodePhrase(CCodePhrase),
CCodeReference(CCodeReference),
CComplexObject(CComplexObject),
CDefinedObject(CDefinedObject),
CDvOrdinal(CDvOrdinal),
CDvQuantity(CDvQuantity),
CDvState(CDvState),
CMultipleAttribute(CMultipleAttribute),
CPrimitiveObject(CPrimitiveObject),
CSingleAttribute(CSingleAttribute),
TComplexObject(TComplexObject),
}
#[derive(Debug, Clone, PartialEq)]
pub struct ArchetypeInternalRef {
pub rm_type_name: String,
pub occurrences: Intervalofinteger,
pub node_id: String,
pub target_path: String,
}
#[derive(Debug, Clone, PartialEq)]
pub struct ArchetypeOntology {
pub term_definitions: Vec<Codedefinitionset>,
pub constraint_definitions: Vec<Codedefinitionset>,
pub term_bindings: Vec<Termbindingset>,
pub constraint_bindings: Vec<Constraintbindingset>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct ArchetypeSlot {
pub rm_type_name: String,
pub occurrences: Intervalofinteger,
pub node_id: String,
pub includes: Vec<Assertion>,
pub excludes: Vec<Assertion>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct ArchetypeTerm {
pub code: String,
pub items: indexmap::IndexMap<String, String>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct Assertion {
pub tag: Option<String>,
pub string_expression: Option<String>,
pub expression: Box<ExprItem>,
pub variables: Vec<AssertionVariable>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct AssertionVariable {
pub name: String,
pub definition: String,
}
#[derive(Debug, Clone, PartialEq)]
pub enum AuthoredResource {
Archetype(Archetype),
}
#[derive(Debug, Clone, PartialEq)]
pub struct Cardinality {
pub is_ordered: bool,
pub is_unique: bool,
pub interval: Intervalofinteger,
}
#[derive(Debug, Clone, PartialEq)]
pub struct ConstraintBindingItem {
pub code: String,
pub value: String,
}
#[derive(Debug, Clone, PartialEq)]
pub struct ConstraintRef {
pub rm_type_name: String,
pub occurrences: Intervalofinteger,
pub node_id: String,
pub reference: String,
}
#[derive(Debug, Clone, PartialEq)]
pub struct CArchetypeRoot {
pub rm_type_name: String,
pub occurrences: Intervalofinteger,
pub node_id: String,
pub attributes: Vec<CAttribute>,
pub archetype_id: openehr_base::prelude::ArchetypeId,
pub template_id: Option<openehr_base::prelude::TemplateId>,
pub term_definitions: Vec<ArchetypeTerm>,
pub term_bindings: Vec<Termbindingset>,
}
#[derive(Debug, Clone, PartialEq)]
pub enum CAttribute {
CMultipleAttribute(CMultipleAttribute),
CSingleAttribute(CSingleAttribute),
}
#[derive(Debug, Clone, PartialEq)]
pub struct CBoolean {
pub true_valid: bool,
pub false_valid: bool,
pub assumed_value: Option<bool>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct CCodePhrase {
pub rm_type_name: String,
pub occurrences: Intervalofinteger,
pub node_id: String,
pub assumed_value: Option<openehr_base::prelude::CodePhrase>,
pub terminology_id: Option<openehr_base::prelude::TerminologyId>,
pub code_list: Vec<String>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct CCodeReference {
pub rm_type_name: String,
pub occurrences: Intervalofinteger,
pub node_id: String,
pub assumed_value: Option<openehr_base::prelude::CodePhrase>,
pub terminology_id: Option<openehr_base::prelude::TerminologyId>,
pub code_list: Vec<String>,
pub referenceSetUri: String,
}
#[derive(Debug, Clone, PartialEq)]
pub struct CComplexObject {
pub rm_type_name: String,
pub occurrences: Intervalofinteger,
pub node_id: String,
pub attributes: Vec<CAttribute>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct CDate {
pub pattern: Option<String>,
pub timezone_validity: Option<String>,
pub range: Option<Intervalofdate>,
pub assumed_value: Option<String>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct CDateTime {
pub pattern: Option<String>,
pub timezone_validity: Option<String>,
pub range: Option<Intervalofdatetime>,
pub assumed_value: Option<String>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct CDefinedObject {
pub rm_type_name: String,
pub occurrences: Intervalofinteger,
pub node_id: String,
}
#[derive(Debug, Clone, PartialEq)]
pub enum CDomainType {
CCodePhrase(CCodePhrase),
CCodeReference(CCodeReference),
CDvOrdinal(CDvOrdinal),
CDvQuantity(CDvQuantity),
CDvState(CDvState),
}
#[derive(Debug, Clone, PartialEq)]
pub struct CDuration {
pub pattern: Option<String>,
pub range: Option<Intervalofduration>,
pub assumed_value: Option<String>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct CDvOrdinal {
pub rm_type_name: String,
pub occurrences: Intervalofinteger,
pub node_id: String,
pub assumed_value: Option<openehr_rm::prelude::DvOrdinal>,
pub list: Vec<openehr_rm::prelude::DvOrdinal>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct CDvQuantity {
pub rm_type_name: String,
pub occurrences: Intervalofinteger,
pub node_id: String,
pub assumed_value: Option<openehr_rm::prelude::DvQuantity>,
pub property: Option<openehr_base::prelude::CodePhrase>,
pub list: Vec<CQuantityItem>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct CDvState {
pub rm_type_name: String,
pub occurrences: Intervalofinteger,
pub node_id: String,
pub assumed_value: Option<openehr_rm::prelude::DvState>,
pub value: StateMachine,
}
#[derive(Debug, Clone, PartialEq)]
pub struct CInteger {
pub list: Vec<i32>,
pub range: Option<Intervalofinteger>,
pub assumed_value: Option<i32>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct CMultipleAttribute {
pub rm_attribute_name: String,
pub existence: Intervalofinteger,
pub children: Vec<CObject>,
pub cardinality: Cardinality,
}
#[derive(Debug, Clone, PartialEq)]
pub enum CObject {
ArchetypeInternalRef(ArchetypeInternalRef),
ArchetypeSlot(ArchetypeSlot),
ConstraintRef(ConstraintRef),
CArchetypeRoot(CArchetypeRoot),
CCodePhrase(CCodePhrase),
CCodeReference(CCodeReference),
CComplexObject(CComplexObject),
CDefinedObject(CDefinedObject),
CDvOrdinal(CDvOrdinal),
CDvQuantity(CDvQuantity),
CDvState(CDvState),
CPrimitiveObject(CPrimitiveObject),
TComplexObject(TComplexObject),
}
#[derive(Debug, Clone, PartialEq)]
pub enum CPrimitive {
CBoolean(CBoolean),
CDate(CDate),
CDateTime(CDateTime),
CDuration(CDuration),
CInteger(CInteger),
CReal(CReal),
CString(CString),
CTime(CTime),
}
#[derive(Debug, Clone, PartialEq)]
pub struct CPrimitiveObject {
pub rm_type_name: String,
pub occurrences: Intervalofinteger,
pub node_id: String,
pub item: Option<Box<CPrimitive>>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct CQuantityItem {
pub magnitude: Option<Intervalofreal>,
pub precision: Option<Intervalofinteger>,
pub units: String,
}
#[derive(Debug, Clone, PartialEq)]
pub struct CReal {
pub list: Vec<f64>,
pub range: Option<Intervalofreal>,
pub assumed_value: Option<f64>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct CSingleAttribute {
pub rm_attribute_name: String,
pub existence: Intervalofinteger,
pub children: Vec<CObject>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct CString {
pub pattern: Option<String>,
pub list: Vec<String>,
pub list_open: Option<bool>,
pub assumed_value: Option<String>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct CTime {
pub pattern: Option<String>,
pub timezone_validity: Option<String>,
pub range: Option<Intervaloftime>,
pub assumed_value: Option<String>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct Codedefinitionset {
pub language: String,
pub items: Vec<ArchetypeTerm>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct Constraintbindingset {
pub terminology: String,
pub items: Vec<ConstraintBindingItem>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct ExprBinaryOperator {
pub r#type: String,
pub operator: String,
pub precedence_overridden: bool,
pub left_operand: Box<ExprItem>,
pub right_operand: Box<ExprItem>,
}
#[derive(Debug, Clone, PartialEq)]
pub enum ExprItem {
ExprBinaryOperator(ExprBinaryOperator),
ExprLeaf(ExprLeaf),
ExprUnaryOperator(ExprUnaryOperator),
}
#[derive(Debug, Clone, PartialEq)]
pub struct ExprLeaf {
pub r#type: String,
pub item: serde_json::Value,
pub reference_type: String,
}
#[derive(Debug, Clone, PartialEq)]
pub enum ExprOperator {
ExprBinaryOperator(ExprBinaryOperator),
ExprUnaryOperator(ExprUnaryOperator),
}
#[derive(Debug, Clone, PartialEq)]
pub struct ExprUnaryOperator {
pub r#type: String,
pub operator: String,
pub precedence_overridden: bool,
pub operand: Box<ExprItem>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct FlatArchetypeOntology {
pub archetype_id: String,
pub term_definitions: Vec<Codedefinitionset>,
pub constraint_definitions: Vec<Codedefinitionset>,
pub term_bindings: Vec<Termbindingset>,
pub constraint_bindings: Vec<Constraintbindingset>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct Intervalofdate {
pub lower_included: Option<bool>,
pub upper_included: Option<bool>,
pub lower_unbounded: bool,
pub upper_unbounded: bool,
pub lower: Option<String>,
pub upper: Option<String>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct Intervalofdatetime {
pub lower_included: Option<bool>,
pub upper_included: Option<bool>,
pub lower_unbounded: bool,
pub upper_unbounded: bool,
pub lower: Option<String>,
pub upper: Option<String>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct Intervalofduration {
pub lower_included: Option<bool>,
pub upper_included: Option<bool>,
pub lower_unbounded: bool,
pub upper_unbounded: bool,
pub lower: Option<String>,
pub upper: Option<String>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct Intervalofinteger {
pub lower_included: Option<bool>,
pub upper_included: Option<bool>,
pub lower_unbounded: bool,
pub upper_unbounded: bool,
pub lower: Option<i32>,
pub upper: Option<i32>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct Intervalofreal {
pub lower_included: Option<bool>,
pub upper_included: Option<bool>,
pub lower_unbounded: bool,
pub upper_unbounded: bool,
pub lower: Option<f64>,
pub upper: Option<f64>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct Intervaloftime {
pub lower_included: Option<bool>,
pub upper_included: Option<bool>,
pub lower_unbounded: bool,
pub upper_unbounded: bool,
pub lower: Option<String>,
pub upper: Option<String>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct NonTerminalState {
pub name: String,
pub transitions: Vec<Transition>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct OperationalTemplate {
pub language: openehr_base::prelude::CodePhrase,
pub is_controlled: Option<bool>,
pub description: Option<ResourceDescription>,
pub revision_history: Option<openehr_rm::prelude::RevisionHistory>,
pub uid: Option<openehr_base::prelude::HierObjectId>,
pub template_id: openehr_base::prelude::TemplateId,
pub concept: String,
pub definition: CArchetypeRoot,
pub ontology: Option<FlatArchetypeOntology>,
pub component_ontologies: Vec<FlatArchetypeOntology>,
pub annotations: Vec<Annotation>,
pub constraints: Option<TConstraint>,
pub view: Option<serde_json::Value>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct ResourceDescription {
pub original_author: indexmap::IndexMap<String, String>,
pub other_contributors: Vec<String>,
pub lifecycle_state: String,
pub resource_package_uri: Option<String>,
pub other_details: Option<indexmap::IndexMap<String, String>>,
pub details: Vec<ResourceDescriptionItem>,
pub parent_resource: Option<Box<AuthoredResource>>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct ResourceDescriptionItem {
pub language: openehr_base::prelude::CodePhrase,
pub purpose: String,
pub keywords: Vec<String>,
pub use_: Option<String>,
pub misuse: Option<String>,
pub copyright: Option<String>,
pub original_resource_uri: Option<indexmap::IndexMap<String, String>>,
pub other_details: Option<indexmap::IndexMap<String, String>>,
}
#[derive(Debug, Clone, PartialEq)]
pub enum State {
NonTerminalState(NonTerminalState),
TerminalState(TerminalState),
}
#[derive(Debug, Clone, PartialEq)]
pub struct StateMachine {
pub states: Vec<State>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct TerminalState {
pub name: String,
}
#[derive(Debug, Clone, PartialEq)]
pub struct TermBindingItem {
pub code: String,
pub value: openehr_base::prelude::CodePhrase,
}
#[derive(Debug, Clone, PartialEq)]
pub struct Transition {
pub event: String,
pub action: Option<String>,
pub guard: Option<String>,
pub next_state: Option<Box<State>>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct TranslationDetails {
pub language: openehr_base::prelude::CodePhrase,
pub author: indexmap::IndexMap<String, String>,
pub accreditation: Option<String>,
pub other_details: Option<indexmap::IndexMap<String, String>>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct TAttribute {
pub rm_attribute_name: String,
pub children: Vec<TComplexObject>,
pub differential_path: String,
}
#[derive(Debug, Clone, PartialEq)]
pub struct TComplexObject {
pub rm_type_name: String,
pub occurrences: Intervalofinteger,
pub node_id: String,
pub attributes: Vec<CAttribute>,
pub default_value: Option<openehr_rm::prelude::DataValue>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct TConstraint {
pub attributes: Vec<TAttribute>,
}
#[derive(Debug, Clone, PartialEq)]
pub struct Termbindingset {
pub terminology: String,
pub items: Vec<TermBindingItem>,
}