-- -- component: openEHR Reference Model (RM) -- description: openEHR Reference Model schema. This file format is based on the BMM specification -- http://www.openehr.org/releases/BASE/latest/docs/bmm/bmm.html -- keywords: reference model, meta-model, archetypes -- author: Thomas Beale -- support: https://openehr.atlassian.net/projects/SPECPR -- copyright: Copyright (c) 2016 openEHR Foundation -- license: Apache 2.0 -- ------------------------------------------------------ -- BMM version on which these schemas are based. ------------------------------------------------------ bmm_version = <"2.3"> ------------------------------------------------------ -- schema identification -- (schema_id computed as __) ------------------------------------------------------ rm_publisher = <"openehr"> rm_release = <"1.0.4"> model_name = <"EHR"> ------------------------------------------------------ -- schema documentation ------------------------------------------------------ schema_name = <"rm_ehr"> schema_revision = <"1.0.4.1"> schema_lifecycle_state = <"stable"> schema_description = <"openEHR Release 1.0.4 EHR schema"> schema_author = <"Thomas Beale "> ------------------------------------------------------ -- inclusions ------------------------------------------------------ includes = < ["1"] = < id = <"openehr_rm_structures_1.0.4"> > > ------------------------------------------------------ -- packages - software structure ------------------------------------------------------ packages = < ["org.openehr.rm.ehr"] = < name = <"org.openehr.rm.ehr"> classes = <"EHR", "EHR_ACCESS", "EHR_STATUS", "ACCESS_CONTROL_SETTINGS"> > ["org.openehr.rm.composition"] = < name = <"org.openehr.rm.composition"> classes = <"COMPOSITION", "EVENT_CONTEXT"> packages = < ["content"] = < name = <"content"> classes = <"CONTENT_ITEM", ...> packages = < ["navigation"] = < name = <"navigation"> classes = <"SECTION", ...> > ["entry"] = < name = <"entry"> classes = <"ENTRY", "CARE_ENTRY", "ADMIN_ENTRY", "OBSERVATION", "EVALUATION", "INSTRUCTION", "ACTION", "ACTIVITY", "ISM_TRANSITION", "INSTRUCTION_DETAILS"> > ["integration"] = < name = <"integration"> classes = <"GENERIC_ENTRY"> > > > > > > ------------------------------------------------------ -- classes ------------------------------------------------------ class_definitions = < -- --------------------- rm.ehr ------------------ -- ["EHR"] = < name = <"EHR"> properties = < ["system_id"] = (P_BMM_SINGLE_PROPERTY) < name = <"system_id"> type = <"HIER_OBJECT_ID"> is_mandatory = > ["ehr_id"] = (P_BMM_SINGLE_PROPERTY) < name = <"ehr_id"> type = <"HIER_OBJECT_ID"> is_mandatory = > ["time_created"] = (P_BMM_SINGLE_PROPERTY) < name = <"time_created"> type = <"DV_DATE_TIME"> is_mandatory = > ["ehr_access"] = (P_BMM_SINGLE_PROPERTY) < name = <"ehr_access"> type = <"OBJECT_REF"> is_mandatory = > ["ehr_status"] = (P_BMM_SINGLE_PROPERTY) < name = <"ehr_status"> type = <"OBJECT_REF"> is_mandatory = > ["directory"] = (P_BMM_SINGLE_PROPERTY) < name = <"directory"> type = <"OBJECT_REF"> > ["compositions"] = (P_BMM_CONTAINER_PROPERTY) < name = <"compositions"> type_def = < container_type = <"List"> type = <"OBJECT_REF"> > cardinality = <|>=0|> > ["contributions"] = (P_BMM_CONTAINER_PROPERTY) < name = <"contributions"> type_def = < container_type = <"List"> type = <"OBJECT_REF"> > cardinality = <|>=0|> is_mandatory = > -- -- add this function to create a reachability link from EHR to COMPOSITION, which allows -- correct inference that openEHR-EHR-XXX archetypes can be archetypes of COMPOSITION as -- well as EHR objects -- ["most_recent_composition"] = (P_BMM_SINGLE_PROPERTY) < name = <"most_recent_composition"> type = <"COMPOSITION"> is_computed = > > > ["EHR_ACCESS"] = < name = <"EHR_ACCESS"> ancestors = <"LOCATABLE", ...> properties = < ["settings"] = (P_BMM_SINGLE_PROPERTY) < name = <"settings"> type = <"ACCESS_CONTROL_SETTINGS"> > > > ["ACCESS_CONTROL_SETTINGS"] = < name = <"ACCESS_CONTROL_SETTINGS"> ancestors = <"Any", ...> is_abstract = > ["EHR_STATUS"] = < name = <"EHR_STATUS"> ancestors = <"LOCATABLE", ...> properties = < ["subject"] = (P_BMM_SINGLE_PROPERTY) < name = <"subject"> type = <"PARTY_SELF"> is_mandatory = > ["is_queryable"] = (P_BMM_SINGLE_PROPERTY) < name = <"is_queryable"> type = <"Boolean"> is_mandatory = > ["is_modifiable"] = (P_BMM_SINGLE_PROPERTY) < name = <"is_modifiable"> type = <"Boolean"> is_mandatory = > ["other_details"] = (P_BMM_SINGLE_PROPERTY) < name = <"other_details"> type = <"ITEM_STRUCTURE"> > > > -- --------------------- rm.composition ------------------ -- ["COMPOSITION"] = < name = <"COMPOSITION"> ancestors = <"LOCATABLE", ...> properties = < ["language"] = (P_BMM_SINGLE_PROPERTY) < name = <"language"> type = <"CODE_PHRASE"> is_mandatory = > ["territory"] = (P_BMM_SINGLE_PROPERTY) < name = <"territory"> type = <"CODE_PHRASE"> is_mandatory = > ["category"] = (P_BMM_SINGLE_PROPERTY) < name = <"category"> type = <"DV_CODED_TEXT"> is_mandatory = > ["composer"] = (P_BMM_SINGLE_PROPERTY) < name = <"composer"> type = <"PARTY_PROXY"> is_mandatory = > ["context"] = (P_BMM_SINGLE_PROPERTY) < name = <"context"> type = <"EVENT_CONTEXT"> > ["content"] = (P_BMM_CONTAINER_PROPERTY) < name = <"content"> type_def = < container_type = <"List"> type = <"CONTENT_ITEM"> > cardinality = <|>=1|> > > > ["EVENT_CONTEXT"] = < name = <"EVENT_CONTEXT"> ancestors = <"PATHABLE", ...> properties = < ["health_care_facility"] = (P_BMM_SINGLE_PROPERTY) < name = <"health_care_facility"> type = <"PARTY_IDENTIFIED"> > ["start_time"] = (P_BMM_SINGLE_PROPERTY) < name = <"start_time"> type = <"DV_DATE_TIME"> is_mandatory = > ["end_time"] = (P_BMM_SINGLE_PROPERTY) < name = <"end_time"> type = <"DV_DATE_TIME"> > ["participations"] = (P_BMM_CONTAINER_PROPERTY) < name = <"participations"> type_def = < container_type = <"List"> type = <"PARTICIPATION"> > cardinality = <|>=1|> > ["location"] = (P_BMM_SINGLE_PROPERTY) < name = <"location"> type = <"String"> > ["setting"] = (P_BMM_SINGLE_PROPERTY) < name = <"setting"> type = <"DV_CODED_TEXT"> is_mandatory = > ["other_context"] = (P_BMM_SINGLE_PROPERTY) < name = <"other_context"> type = <"ITEM_STRUCTURE"> > > > -- --------------------- rm.composition.content ------------------ -- ["CONTENT_ITEM"] = < name = <"CONTENT_ITEM"> ancestors = <"LOCATABLE", ...> is_abstract = > -- --------------- rm.composition.content.navigation ------------- -- ["SECTION"] = < name = <"SECTION"> ancestors = <"CONTENT_ITEM", ...> properties = < ["items"] = (P_BMM_CONTAINER_PROPERTY) < name = <"items"> type_def = < container_type = <"List"> type = <"CONTENT_ITEM"> > cardinality = <|>=1|> > > > -- --------------- rm.composition.content.entry ------------- -- ["ENTRY"] = < name = <"ENTRY"> is_abstract = ancestors = <"CONTENT_ITEM", ...> properties = < ["language"] = (P_BMM_SINGLE_PROPERTY) < name = <"language"> type = <"CODE_PHRASE"> is_mandatory = is_im_infrastructure = > ["encoding"] = (P_BMM_SINGLE_PROPERTY) < name = <"encoding"> type = <"CODE_PHRASE"> is_mandatory = is_im_infrastructure = > ["subject"] = (P_BMM_SINGLE_PROPERTY) < name = <"subject"> type = <"PARTY_PROXY"> is_mandatory = > ["provider"] = (P_BMM_SINGLE_PROPERTY) < name = <"provider"> type = <"PARTY_PROXY"> > ["other_participations"] = (P_BMM_CONTAINER_PROPERTY) < name = <"other_participations"> type_def = < container_type = <"List"> type = <"PARTICIPATION"> > cardinality = <|>=0|> > ["workflow_id"] = (P_BMM_SINGLE_PROPERTY) < name = <"workflow_id"> type = <"OBJECT_REF"> is_im_runtime = > > > ["ADMIN_ENTRY"] = < name = <"ADMIN_ENTRY"> ancestors = <"ENTRY", ...> properties = < ["data"] = (P_BMM_SINGLE_PROPERTY) < name = <"data"> type = <"ITEM_STRUCTURE"> is_mandatory = > > > ["CARE_ENTRY"] = < name = <"CARE_ENTRY"> is_abstract = documentation = <"Abstract ENTRY subtype corresponding to any type of ENTRY in the clinical care cycle."> ancestors = <"ENTRY", ...> properties = < ["protocol"] = (P_BMM_SINGLE_PROPERTY) < name = <"protocol"> type = <"ITEM_STRUCTURE"> > ["guideline_id"] = (P_BMM_SINGLE_PROPERTY) < name = <"guideline_id"> type = <"OBJECT_REF"> is_im_runtime = > > > ["OBSERVATION"] = < name = <"OBSERVATION"> documentation = <"ENTRY subtype used to represent observation information in time, as either a single or multiple samples."> ancestors = <"CARE_ENTRY"> properties = < ["data"] = (P_BMM_GENERIC_PROPERTY) < name = <"data"> documentation = <"Data of the observation, in the form of a HISTORY of EVENTs."> is_mandatory = type_def = < root_type = <"HISTORY"> generic_parameters = <"ITEM_STRUCTURE"> > > ["state"] = (P_BMM_GENERIC_PROPERTY) < name = <"state"> type_def = < root_type = <"HISTORY"> generic_parameters = <"ITEM_STRUCTURE"> > > > > ["EVALUATION"] = < name = <"EVALUATION"> ancestors = <"CARE_ENTRY", ...> properties = < ["data"] = (P_BMM_SINGLE_PROPERTY) < name = <"data"> type = <"ITEM_STRUCTURE"> is_mandatory = > > > ["INSTRUCTION"] = < name = <"INSTRUCTION"> ancestors = <"CARE_ENTRY", ...> properties = < ["narrative"] = (P_BMM_SINGLE_PROPERTY) < name = <"narrative"> type = <"DV_TEXT"> is_mandatory = > ["expiry_time"] = (P_BMM_SINGLE_PROPERTY) < name = <"expiry_time"> type = <"DV_DATE_TIME"> > ["wf_definition"] = (P_BMM_SINGLE_PROPERTY) < name = <"wf_definition"> type = <"DV_PARSABLE"> is_im_runtime = > ["activities"] = (P_BMM_CONTAINER_PROPERTY) < name = <"activities"> type_def = < container_type = <"List"> type = <"ACTIVITY"> > cardinality = <|>=1|> > > > ["ACTIVITY"] = < name = <"ACTIVITY"> ancestors = <"LOCATABLE", ...> properties = < ["description"] = (P_BMM_SINGLE_PROPERTY) < name = <"description"> type = <"ITEM_STRUCTURE"> is_mandatory = > ["timing"] = (P_BMM_SINGLE_PROPERTY) < name = <"timing"> type = <"DV_PARSABLE"> > ["action_archetype_id"] = (P_BMM_SINGLE_PROPERTY) < name = <"action_archetype_id"> type = <"String"> is_mandatory = > > > ["ACTION"] = < name = <"ACTION"> ancestors = <"CARE_ENTRY", ...> properties = < ["time"] = (P_BMM_SINGLE_PROPERTY) < name = <"time"> type = <"DV_DATE_TIME"> is_mandatory = is_im_runtime = > ["description"] = (P_BMM_SINGLE_PROPERTY) < name = <"description"> type = <"ITEM_STRUCTURE"> is_mandatory = > ["ism_transition"] = (P_BMM_SINGLE_PROPERTY) < name = <"ism_transition"> type = <"ISM_TRANSITION"> is_mandatory = > ["instruction_details"] = (P_BMM_SINGLE_PROPERTY) < name = <"instruction_details"> type = <"INSTRUCTION_DETAILS"> > > > ["INSTRUCTION_DETAILS"] = < name = <"INSTRUCTION_DETAILS"> ancestors = <"PATHABLE", ...> properties = < ["instruction_id"] = (P_BMM_SINGLE_PROPERTY) < name = <"instruction_id"> type = <"LOCATABLE_REF"> is_mandatory = is_im_runtime = > ["wf_details"] = (P_BMM_SINGLE_PROPERTY) < name = <"wf_details"> type = <"ITEM_STRUCTURE"> is_im_runtime = > ["activity_id"] = (P_BMM_SINGLE_PROPERTY) < name = <"activity_id"> type = <"String"> is_mandatory = is_im_runtime = > > > ["ISM_TRANSITION"] = < name = <"ISM_TRANSITION"> ancestors = <"PATHABLE", ...> properties = < ["current_state"] = (P_BMM_SINGLE_PROPERTY) < name = <"current_state"> type = <"DV_CODED_TEXT"> is_mandatory = > ["transition"] = (P_BMM_SINGLE_PROPERTY) < name = <"transition"> type = <"DV_CODED_TEXT"> > ["careflow_step"] = (P_BMM_SINGLE_PROPERTY) < name = <"careflow_step"> type = <"DV_CODED_TEXT"> > ["reason"] = (P_BMM_CONTAINER_PROPERTY) < name = <"reason"> type_def = < container_type = <"List"> type = <"DV_TEXT"> > cardinality = <|>=0|> > > > ["GENERIC_ENTRY"] = < name = <"GENERIC_ENTRY"> ancestors = <"CONTENT_ITEM", ...> properties = < ["data"] = (P_BMM_SINGLE_PROPERTY) < name = <"data"> type = <"ITEM_TREE"> is_mandatory = > > > >