-- -- component: openEHR BMM Implementation Technology Specification -- description: openEHR RM component formal expression. This file is an ODIN serialisation of -- the BMM object meta-model classes found at -- https://www.openehr.org/releases/LANG/latest/p_bmm.html -- keywords: reference model, meta-model, archetypes -- author: Thomas Beale -- support: https://openehr.atlassian.net/issues/?filter=11117 -- copyright: Copyright (c) 2009- openEHR Foundation -- license: Apache 2.0 -- ------------------------------------------------------ -- BMM version on which these schemas are based. -- Current BMM version can be found as the top version in the specification: -- https://www.openehr.org/releases/LANG/latest/bmm_persistence.html#_amendment_record -- ------------------------------------------------------ bmm_version = <"2.3"> ------------------------------------------------------ -- schema identification -- (schema_id computed as __) ------------------------------------------------------ rm_publisher = <"openehr"> schema_name = <"rm_data_types"> rm_release = <"1.0.4"> ------------------------------------------------------ -- schema documentation ------------------------------------------------------ schema_revision = <"1.0.4.1"> schema_lifecycle_state = <"stable"> schema_description = <"openEHR Release 1.0.4 reference model Data types"> schema_author = <"Thomas Beale "> ------------------------------------------------------ -- inclusions ------------------------------------------------------ includes = < ["1"] = < id = <"openehr_base_1.0.4"> > > ------------------------------------------------------ -- packages ------------------------------------------------------ packages = < ["org.openehr.rm.data_types"] = < name = <"org.openehr.rm.data_types"> packages = < ["basic"] = < name = <"basic"> classes = <"DATA_VALUE", "DV_BOOLEAN", "DV_STATE", "DV_IDENTIFIER"> > ["text"] = < name = <"text"> classes = <"DV_TEXT", "DV_CODED_TEXT", "TERM_MAPPING", "CODE_PHRASE", "DV_PARAGRAPH"> > ["quantity"] = < name = <"quantity"> classes = <"DV_INTERVAL", "REFERENCE_RANGE", "DV_ORDERED", "DV_QUANTIFIED", "DV_QUANTITY", "DV_PROPORTION", "PROPORTION_KIND", "DV_AMOUNT", "DV_ABSOLUTE_QUANTITY", "DV_COUNT", "DV_ORDINAL"> packages = < ["date_time"] = < name = <"date_time"> classes = <"DV_TEMPORAL", "DV_DATE", "DV_DATE_TIME", "DV_TIME", "DV_DURATION"> > > > ["encapsulated"] = < name = <"encapsulated"> classes = <"DV_ENCAPSULATED", "DV_MULTIMEDIA", "DV_PARSABLE"> > ["uri"] = < name = <"uri"> classes = <"DV_URI", "DV_EHR_URI"> > ["time_specification"] = < name = <"time_specification"> classes = <"DV_TIME_SPECIFICATION", "DV_PERIODIC_TIME_SPECIFICATION", "DV_GENERAL_TIME_SPECIFICATION"> > > > > ------------------------------------------------------ -- classes ------------------------------------------------------ class_definitions = < ------------------------------------------------------------ --------------------- rm.data_types ------------------------ ------------------------------------------------------------ -- --------------------- rm.data_types.basic ------------------ -- ["DATA_VALUE"] = < name = <"DATA_VALUE"> ancestors = <"Any", ...> is_abstract = > ["DV_BOOLEAN"] = < name = <"DV_BOOLEAN"> ancestors = <"DATA_VALUE", ...> properties = < ["value"] = (P_BMM_SINGLE_PROPERTY) < name = <"value"> type = <"Boolean"> is_mandatory = > > > ["DV_IDENTIFIER"] = < name = <"DV_IDENTIFIER"> ancestors = <"DATA_VALUE", ...> properties = < ["issuer"] = (P_BMM_SINGLE_PROPERTY) < name = <"issuer"> type = <"String"> > ["id"] = (P_BMM_SINGLE_PROPERTY) < name = <"id"> type = <"String"> is_mandatory = is_im_runtime = > ["type"] = (P_BMM_SINGLE_PROPERTY) < name = <"type"> type = <"String"> > ["assigner"] = (P_BMM_SINGLE_PROPERTY) < name = <"assigner"> type = <"String"> > > > ["DV_STATE"] = < name = <"DV_STATE"> ancestors = <"DATA_VALUE", ...> properties = < ["value"] = (P_BMM_SINGLE_PROPERTY) < name = <"value"> type = <"DV_CODED_TEXT"> is_mandatory = > ["is_terminal"] = (P_BMM_SINGLE_PROPERTY) < name = <"is_terminal"> type = <"Boolean"> is_mandatory = > > > -- --------------------- rm.data_types.text ------------------ -- ["TERM_MAPPING"] = < name = <"TERM_MAPPING"> properties = < ["match"] = (P_BMM_SINGLE_PROPERTY) < name = <"match"> type = <"Character"> is_mandatory = > ["purpose"] = (P_BMM_SINGLE_PROPERTY) < name = <"purpose"> type = <"DV_CODED_TEXT"> > ["target"] = (P_BMM_SINGLE_PROPERTY) < name = <"target"> type = <"CODE_PHRASE"> is_mandatory = > > > ["DV_TEXT"] = < name = <"DV_TEXT"> ancestors = <"DATA_VALUE", ...> properties = < ["value"] = (P_BMM_SINGLE_PROPERTY) < name = <"value"> type = <"String"> is_mandatory = > ["hyperlink"] = (P_BMM_SINGLE_PROPERTY) < name = <"hyperlink"> type = <"DV_URI"> is_im_runtime = > ["language"] = (P_BMM_SINGLE_PROPERTY) < name = <"language"> type = <"CODE_PHRASE"> is_im_infrastructure = > ["encoding"] = (P_BMM_SINGLE_PROPERTY) < name = <"encoding"> type = <"CODE_PHRASE"> is_im_infrastructure = > ["formatting"] = (P_BMM_SINGLE_PROPERTY) < name = <"formatting"> type = <"String"> is_im_runtime = > ["mappings"] = (P_BMM_CONTAINER_PROPERTY) < name = <"mappings"> type_def = < container_type = <"List"> type = <"TERM_MAPPING"> > cardinality = <|>=1|> is_im_runtime = > > > ["DV_CODED_TEXT"] = < name = <"DV_CODED_TEXT"> ancestors = <"DV_TEXT", ...> properties = < ["defining_code"] = (P_BMM_SINGLE_PROPERTY) < name = <"defining_code"> type = <"CODE_PHRASE"> is_mandatory = > > > ["CODE_PHRASE"] = < name = <"CODE_PHRASE"> properties = < ["terminology_id"] = (P_BMM_SINGLE_PROPERTY) < name = <"terminology_id"> type = <"TERMINOLOGY_ID"> is_mandatory = > ["code_string"] = (P_BMM_SINGLE_PROPERTY) < name = <"code_string"> type = <"String"> is_mandatory = > > > ["DV_PARAGRAPH"] = < name = <"DV_PARAGRAPH"> ancestors = <"DATA_VALUE", ...> properties = < ["items"] = (P_BMM_CONTAINER_PROPERTY) < name = <"items"> type_def = < container_type = <"List"> type = <"DV_TEXT"> > is_mandatory = cardinality = <|>=1|> > > > -- --------------------- rm.data_types.quantity ------------------ -- ["DV_INTERVAL"] = < name = <"DV_INTERVAL"> ancestors = <"Interval", "DATA_VALUE"> generic_parameter_defs = < ["T"] = < name = <"T"> conforms_to_type = <"DV_ORDERED"> > > > ["REFERENCE_RANGE"] = < name = <"REFERENCE_RANGE"> ancestors = <"Any", ...> generic_parameter_defs = < ["T"] = < name = <"T"> conforms_to_type = <"DV_ORDERED"> > > properties = < ["range"] = (P_BMM_GENERIC_PROPERTY) < name = <"range"> type_def = < root_type = <"DV_INTERVAL"> generic_parameters = <"T"> > is_mandatory = > ["meaning"] = (P_BMM_SINGLE_PROPERTY) < name = <"meaning"> type = <"DV_TEXT"> is_mandatory = > > > ["DV_ORDERED"] = < name = <"DV_ORDERED"> is_abstract = ancestors = <"Ordered", "DATA_VALUE"> properties = < ["normal_status"] = (P_BMM_SINGLE_PROPERTY) < name = <"normal_status"> type = <"CODE_PHRASE"> > ["normal_range"] = (P_BMM_GENERIC_PROPERTY) < name = <"normal_range"> type_def = < root_type = <"DV_INTERVAL"> generic_parameters = <"DV_ORDERED"> > > ["other_reference_ranges"] = (P_BMM_CONTAINER_PROPERTY) < name = <"other_reference_ranges"> type_def = < container_type = <"List"> type_def = (P_BMM_GENERIC_TYPE) < root_type = <"REFERENCE_RANGE"> generic_parameters = <"DV_ORDERED"> > > cardinality = <|>=1|> > > > ["DV_QUANTIFIED"] = < name = <"DV_QUANTIFIED"> is_abstract = ancestors = <"DV_ORDERED", ...> properties = < ["magnitude_status"] = (P_BMM_SINGLE_PROPERTY) < name = <"magnitude_status"> type = <"String"> is_im_runtime = > ["accuracy"] = (P_BMM_SINGLE_PROPERTY) < name = <"accuracy"> type = <"Any"> > > > ["DV_ORDINAL"] = < name = <"DV_ORDINAL"> ancestors = <"DV_ORDERED", ...> properties = < ["value"] = (P_BMM_SINGLE_PROPERTY) < name = <"value"> type = <"Integer"> is_mandatory = > ["symbol"] = (P_BMM_SINGLE_PROPERTY) < name = <"symbol"> type = <"DV_CODED_TEXT"> is_mandatory = > > > ["DV_AMOUNT"] = < name = <"DV_AMOUNT"> is_abstract = ancestors = <"DV_QUANTIFIED", ...> properties = < ["accuracy"] = (P_BMM_SINGLE_PROPERTY) < name = <"accuracy"> type = <"Real"> is_im_runtime = > ["accuracy_is_percent"] = (P_BMM_SINGLE_PROPERTY) < name = <"accuracy_is_percent"> type = <"Boolean"> is_im_runtime = > > > ["DV_ABSOLUTE_QUANTITY"] = < name = <"DV_ABSOLUTE_QUANTITY"> is_abstract = ancestors = <"DV_QUANTIFIED", ...> properties = < ["accuracy"] = (P_BMM_SINGLE_PROPERTY) < name = <"accuracy"> type = <"DV_AMOUNT"> is_im_runtime = > > > ["DV_QUANTITY"] = < name = <"DV_QUANTITY"> ancestors = <"DV_AMOUNT", ...> properties = < ["magnitude"] = (P_BMM_SINGLE_PROPERTY) < name = <"magnitude"> type = <"Real"> is_mandatory = > ["property"] = (P_BMM_SINGLE_PROPERTY) < name = <"property"> type = <"CODE_PHRASE"> > ["units"] = (P_BMM_SINGLE_PROPERTY) < name = <"units"> type = <"String"> is_mandatory = > ["precision"] = (P_BMM_SINGLE_PROPERTY) < name = <"precision"> type = <"Integer"> > ["normal_range"] = (P_BMM_GENERIC_PROPERTY) < name = <"normal_range"> type_def = < root_type = <"DV_INTERVAL"> generic_parameters = <"DV_QUANTITY"> > > ["other_reference_ranges"] = (P_BMM_CONTAINER_PROPERTY) < name = <"other_reference_ranges"> type_def = < container_type = <"List"> type_def = (P_BMM_GENERIC_TYPE) < root_type = <"REFERENCE_RANGE"> generic_parameters = <"DV_QUANTITY"> > > > > > ["DV_COUNT"] = < name = <"DV_COUNT"> ancestors = <"DV_AMOUNT", ...> properties = < ["magnitude"] = (P_BMM_SINGLE_PROPERTY) < name = <"magnitude"> type = <"Integer64"> is_mandatory = > ["normal_range"] = (P_BMM_GENERIC_PROPERTY) < name = <"normal_range"> type_def = < root_type = <"DV_INTERVAL"> generic_parameters = <"DV_COUNT"> > > ["other_reference_ranges"] = (P_BMM_CONTAINER_PROPERTY) < name = <"other_reference_ranges"> type_def = < container_type = <"List"> type_def = (P_BMM_GENERIC_TYPE) < root_type = <"REFERENCE_RANGE"> generic_parameters = <"DV_COUNT"> > > > > > ["DV_PROPORTION"] = < name = <"DV_PROPORTION"> ancestors = <"DV_AMOUNT", ...> properties = < ["numerator"] = (P_BMM_SINGLE_PROPERTY) < name = <"numerator"> type = <"Real"> is_mandatory = > ["denominator"] = (P_BMM_SINGLE_PROPERTY) < name = <"denominator"> type = <"Real"> is_mandatory = > ["type"] = (P_BMM_SINGLE_PROPERTY) < name = <"type"> type = <"PROPORTION_KIND"> is_mandatory = > ["precision"] = (P_BMM_SINGLE_PROPERTY) < name = <"precision"> type = <"Integer"> > ["is_integral"] = (P_BMM_SINGLE_PROPERTY) < name = <"is_integral"> type = <"Boolean"> is_computed = > ["normal_range"] = (P_BMM_GENERIC_PROPERTY) < name = <"normal_range"> type_def = < root_type = <"DV_INTERVAL"> generic_parameters = <"DV_PROPORTION"> > > ["other_reference_ranges"] = (P_BMM_CONTAINER_PROPERTY) < name = <"other_reference_ranges"> type_def = < container_type = <"List"> type_def = (P_BMM_GENERIC_TYPE) < root_type = <"REFERENCE_RANGE"> generic_parameters = <"DV_PROPORTION"> > > cardinality = <|>=1|> > > > ["PROPORTION_KIND"] = (P_BMM_ENUMERATION_INTEGER) < name = <"PROPORTION_KIND"> ancestors = <"Integer"> item_names = <"pk_ratio", "pk_unitary", "pk_percent", "pk_fraction", "pk_integer_fraction"> > -- --------------------- rm.data_types.quantity.date_time ------------------ -- ["DV_TEMPORAL"] = < name = <"DV_TEMPORAL"> is_abstract = ancestors = <"DV_ABSOLUTE_QUANTITY", ...> properties = < ["accuracy"] = (P_BMM_SINGLE_PROPERTY) < name = <"accuracy"> type = <"DV_DURATION"> > > > ["DV_DATE"] = < name = <"DV_DATE"> ancestors = <"DV_TEMPORAL", "Iso8601_date"> properties = < ["value"] = (P_BMM_SINGLE_PROPERTY) < name = <"value"> type = <"String"> is_mandatory = > > > ["DV_TIME"] = < name = <"DV_TIME"> ancestors = <"DV_TEMPORAL", "Iso8601_time"> properties = < ["value"] = (P_BMM_SINGLE_PROPERTY) < name = <"value"> type = <"String"> is_mandatory = > > > ["DV_DATE_TIME"] = < name = <"DV_DATE_TIME"> ancestors = <"DV_TEMPORAL", "Iso8601_date_time"> properties = < ["value"] = (P_BMM_SINGLE_PROPERTY) < name = <"value"> type = <"String"> is_mandatory = > > > ["DV_DURATION"] = < name = <"DV_DURATION"> ancestors = <"DV_AMOUNT", "Iso8601_duration"> properties = < ["value"] = (P_BMM_SINGLE_PROPERTY) < name = <"value"> type = <"String"> is_mandatory = > > > -- --------------------- rm.data_types.encapsulated ------------------ -- ["DV_ENCAPSULATED"] = < name = <"DV_ENCAPSULATED"> is_abstract = ancestors = <"DATA_VALUE", ...> properties = < ["charset"] = (P_BMM_SINGLE_PROPERTY) < name = <"charset"> type = <"CODE_PHRASE"> is_im_runtime = > ["language"] = (P_BMM_SINGLE_PROPERTY) < name = <"language"> type = <"CODE_PHRASE"> is_im_runtime = > > > ["DV_MULTIMEDIA"] = < name = <"DV_MULTIMEDIA"> ancestors = <"DV_ENCAPSULATED", ...> properties = < ["alternate_text"] = (P_BMM_SINGLE_PROPERTY) < name = <"alternate_text"> type = <"String"> > ["uri"] = (P_BMM_SINGLE_PROPERTY) < name = <"uri"> type = <"DV_URI"> > ["data"] = (P_BMM_CONTAINER_PROPERTY) < name = <"data"> type_def = < container_type = <"Array"> type = <"Octet"> > cardinality = <|>=0|> > ["media_type"] = (P_BMM_SINGLE_PROPERTY) < name = <"media_type"> type = <"CODE_PHRASE"> is_mandatory = > ["compression_algorithm"] = (P_BMM_SINGLE_PROPERTY) < name = <"compression_algorithm"> type = <"CODE_PHRASE"> > ["integrity_check"] = (P_BMM_CONTAINER_PROPERTY) < name = <"integrity_check"> type_def = < container_type = <"Array"> type = <"Octet"> > cardinality = <|>=0|> > ["integrity_check_algorithm"] = (P_BMM_SINGLE_PROPERTY) < name = <"integrity_check_algorithm"> type = <"CODE_PHRASE"> > ["thumbnail"] = (P_BMM_SINGLE_PROPERTY) < name = <"thumbnail"> type = <"DV_MULTIMEDIA"> > ["size"] = (P_BMM_SINGLE_PROPERTY) < name = <"size"> type = <"Integer"> is_im_runtime = is_mandatory = > > > ["DV_PARSABLE"] = < name = <"DV_PARSABLE"> ancestors = <"DV_ENCAPSULATED", ...> properties = < ["value"] = (P_BMM_SINGLE_PROPERTY) < name = <"value"> type = <"String"> is_mandatory = > ["formalism"] = (P_BMM_SINGLE_PROPERTY) < name = <"formalism"> type = <"String"> is_mandatory = > > > -- --------------------- rm.data_types.uri ------------------ -- ["DV_URI"] = < name = <"DV_URI"> ancestors = <"DATA_VALUE", ...> properties = < ["value"] = (P_BMM_SINGLE_PROPERTY) < name = <"value"> type = <"String"> is_mandatory = > > > ["DV_EHR_URI"] = < name = <"DV_EHR_URI"> ancestors = <"DV_URI", ...> > -- --------------------- rm.data_types.time_specification ------------------ -- ["DV_TIME_SPECIFICATION"] = < name = <"DV_TIME_SPECIFICATION"> is_abstract = ancestors = <"DATA_VALUE", ...> properties = < ["value"] = (P_BMM_SINGLE_PROPERTY) < name = <"value"> type = <"DV_PARSABLE"> is_mandatory = > > > ["DV_PERIODIC_TIME_SPECIFICATION"] = < name = <"DV_PERIODIC_TIME_SPECIFICATION"> ancestors = <"DV_TIME_SPECIFICATION", ...> > ["DV_GENERAL_TIME_SPECIFICATION"] = < name = <"DV_GENERAL_TIME_SPECIFICATION"> ancestors = <"DV_TIME_SPECIFICATION", ...> > >