This wiki has undergone a migration to Confluence found Here
<meta name="googlebot" content="noindex">

Proposed CIMI Reference Model

From HL7Wiki
Jump to navigation Jump to search

Return to CIMI CQI/FHIM Collaboration page

Core Requirements for the CIMI Reference Model

  • The CIMI Reference Model shall provide the core expressivity required to author CIMI archetypes.
  • The CIMI Reference Model shall limit its expressivity to those metamodel constructs required for archetype development and delegate domain-specific expressivity to the archetypes constructed based on the reference model. In this respect, the CIMI Reference Model functions as a metamodel, asserting the foundational building blocks that are then constrained in archetypes. At its core, the CIMI Reference Model:
    • shall support the representation of 'classes' which may contain 'simple attributes' and 'complex attributes'.
    • shall support the layered application of constraints in archetypes through archetype specialization in ADL
    • may support the enforcement of model constraints beyond those provided by ADL in tooling based on metadata explicitly captured in the model
  • The CIMI Reference Model shall support the expressivity needs of domain archetypes aimed at modeling a patient EHR as well as CDS and CQI knowledge artifacts.

Rational for above requirements

CIMI wishes to support iso-semantic domain representations of clinical constructs in order to support the variable ways in which clinical information manifests itself in various contexts. In order to support this goal, CIMI defines a foundational model, devoid of domain-specific semantics, that can be used to construct domain-specific archetypes. CIMI also plans to define a set of 'canonical' or 'preferred' models. This set will be comprised of the preferred model selected from each family of iso-semantic models.

The CIMI Reference model must be able to support recursive class-attribute relationships such as those found in clinical object graphs. For instance, a Procedure archetype is a class that contains a number of attributes that define the characteristics of a Procedure. Some of these attributes may be classes such as a device used to perform the procedure. This class, in turn, will contain other attributes, some of which may be complex types such as the manufacturer of the device.

The reference model must also support an author's ability to define a specialization of Procedure such as a LaboratoryProcedure. A generic metamodel coupled with ADL constraint can support this mechanism. That is, the metamodel must support the addition of new attributes to the class while ADL constraints may also constrain certain attributes out (by making their occurrence 0..0) and/or formally define their terminology bindings.

Unfortunately, there is a requirement tradeoff that occurs between reference model expressivity and constraints on expressivity as expressed using ADL. A concise reference model that avoids domain-specific structures and semantics is highly expressive. By supporting the representation of classes that specify a number of attributes or can reference other classes, any structure can be built. On the other hand, a reference model that defines explicit domain structures at the Reference Model level greatly constrains this expressivity. It would introduce the core classes of the domain and the specific relationships that exist between them and then leverage those structures in ADL constraints. For instance, one may define a structure to represent complex types and another that defines, say, a clinical statement. One can now explicitly relate the two constructs in the reference model for this relation to manifest itself in the archetypes (e.g., a statement can contain clusters but not vice-versa). On the other hand, in a more fundamental domain-independent reference model that expresses a potentially recursive nesting of containers with attributes, one cannot prevent a complex type from referencing a statement (also a container) using ADL alone. Such validation must be done outside of the OpenEHR framework in tooling and compilers. Yet, this tradeoff may be a necessary cost if one wishes to ensure that all domain-specific expressivity occur exclusively at the archetype level in order to support alternative representations of such domain-specific constructs.

Changes Since Last Version

Version as of July 27, 2016 1:47 pm ET

Recent Updates

  • Addition of a new complex data type, CODED_NAME_VALUE, to support name value types where the name is a CODED_TEXT and the value is a DATA_VALUE
  • Addition of a new metadata attribute to ITEM with cardinality 0..* of type CODED_NAME_VALUE

Rationale for Recent Updates

  • Provides an extensible mechanism for adding meta model attributes in the reference model that can be further constrained in archetypes. These metadata attributes are primarily intended for tooling.
  • Allows the definition of additional meta model metadata attributes without changing and re-versioning the reference model.
  • Supports the requirement for specifying the ITEM_GROUP kind in an archetype definition - a property that can be leveraged in tooling to enforce archetype constraints that cannot be enforced using ADL.
  • Ultimately supports the definition of a small and compact core reference model with parametrizable properties, thus enabling the delegation of domain-specific expressivity (structural and semantic) to the CIMI Core archetype level.

Disadvantage of Proposed Approach

  • Metamodel attributes are specified at the archetype level alongside clinical attributes but are contained within the metadata container. Yet, this approach is analogous to the FHIR Structure Definition approach.
  • Constraints and validation rules need to be defined outside the OpenEHR specification (i.e., cannot leverage ADL to enforce constraints) and no formalism has been proposed to do so at this time. As described earlier in this document, this is a consequence of the need to express domain-specific construct at the archetype rather than at the reference model level.

Introduction to Reference Model Components

The proposed Core CIMI Reference Model consists of the following components:

Core CIMI Reference Model Components
Component Name Description Notes Examples
ITEM An abstract metamodel component such as a class or an attribute of a class in UML The ITEM class is required in order to support the recursive nesting of containers within containers that may also contain elements. N/A
ITEM_GROUP A composite 'container' structure that can hold other containers or elements. ITEM_GROUP is analogous to a class in UML. a Procedure class
ELEMENT A non-composite item typically part of a container. ELEMENT is analogous to a UML class attribute. a method attribute of type CODED_TEXT in the Procedure class

The CIMI Reference Model

BMM Model

To find the latest BMM file for the CIMI Reference Model, please follow the link below:

BMM File

UML Representation of Reference Model

Core Reference Model

Narrative to be added...

CIMI locatable v2.gif

CIMI core reference model v2.gif

Complex Data Types

Narrative to be added...

CIMI datatypes v2.gif

Primitive Types

Narrative to be added ...

CIMI primitives v2.gif

How CIMI Datatypes Align with FHIR

Narrative to be added ...

Proposed Metadata Attributes

CIMI Archetype Metadata Attributes
Attribute Name Allowed Values Scope Description
container_kind cluster, composition, section, statement, statement_group, knowlege_definition, knowledge_definition_group ITEM_GROUP Specifies the kind of ITEM_GROUP container for tooling and validation purposes.

Tentative Value Sets

Container Kind
Code Preferred Name Code System Description Parent
1 cluster A grouping for a dependent structure or complex data type N/A
2 composition A grouping that holds the content of a document N/A
3 section A grouping representing a section in a document N/A
4 statement_group A grouping representing a collection of clinical statements N/A
5 statement A single clinical statement N/A
6 knowledge_definition_group A grouping representing a collection of knowledge definitions N/A
7 knowledge_definition An atomic knowledge definition N/A