openehr-am 0.0.78

openEHR AM Archetype Model, generated from BMM: generations v1_4 (AM 1.4.0, ADL 1.4) and v2_4 (AM 2.4.0, ADL 2; current)
Documentation
// @generated by openehr-codegen from BMM (`AOM_PROFILE`) — DO NOT EDIT.
// SPDX-FileCopyrightText: Vernum Projecten B.V.
// SPDX-FileCopyrightText: openEHR Foundation
// SPDX-License-Identifier: Apache-2.0

//! The openEHR `AOM_PROFILE` spec class, generated from the vendored BMM
//! meta-model.

use crate::v2_4::aom2::profile::aom_type_mapping::AomTypeMapping;

/// Profile of common settings relating to use of reference model(s) and terminology for a given archetype developing organisation.
#[doc(alias = "AOM_PROFILE")]
#[derive(Debug, Clone, PartialEq)]
pub struct AomProfile {
    /// Name of this profile, usually based on the publisher it pertains to e.g. "openEHR", "CDISC", etc.
    pub profile_name: String,
    /// States a class from the Reference Model that provides archetyping capability in RM data structures.
    ///
    /// This attribute is optional, and there need be no such class in the RM. Defining it here has the effect in tools that the class tree under which archetypes are arranged contains only RM classes inheriting from this class.
    pub archetype_parent_class: Option<String>,
    /// This attribute defines a base class from the Reference Model whose descendants are considered to be 'logical data types', i.e. of some higher level than the built-in primitive types String, Integer etc. This attribute is optional, even if the RM does have such a class, and is only used to help tooling to provide more intelligent display.
    pub archetype_data_value_parent_class: Option<String>,
    /// Mappings from AOM built-in types to actual types in RM: whenever the type name is encountered in an archetype, it is mapped to a specific RM type.
    pub aom_rm_type_mappings: Option<std::collections::BTreeMap<String, AomTypeMapping>>,
    /// If `_archetype_parent_class_` is not set, designate a class whose descendants should be made visible in tree and grid renderings of the archetype definition.
    pub archetype_visualise_descendants_of: Option<String>,
    /// Allowed type substitutions: Actual RM type names keyed by AOM built-in types which can substitute for them in an archetype.
    ///
    /// E.g. `<key = "ISO8601_DATE", value = "String">` means that if RM property `TYPE._some_property_` is of type `String`, an `ISO8601_DATE` is allowed at that position in the archetype.
    pub aom_rm_type_substitutions: Option<std::collections::BTreeMap<String, String>>,
    /// List of mappings of lifecycle state names used in archetypes to AOM lifecycle state names:
    ///
    /// * key = source lifecycle state;
    /// * value = AOM lifecycle state.
    pub aom_lifecycle_mappings: Option<std::collections::BTreeMap<String, String>>,
    /// Equivalences of RM primitive types to in-built set of primitive types. Used to determine which AOM `C_PRIMITIVE_OBJECT` descendant is used for a primitive type. Typical entries:
    ///
    /// * `value`	`key`
    /// * "Real"	"Double"
    /// * "Integer"	"Integer64"
    pub rm_primitive_type_equivalences: Option<std::collections::BTreeMap<String, String>>,
}