This wiki has undergone a migration to Confluence found Here

Difference between revisions of "Proposed CIMI Reference Model"

From HL7Wiki
Jump to navigation Jump to search
 
(63 intermediate revisions by the same user not shown)
Line 1: Line 1:
==Notes to reviewers==
+
[[CIMI_Quality_Modeling_Collaboration|Return to CIMI CQI/FHIM Collaboration page]]
  
This page has been put up to facilitate review but is a work in progress and is still highly preliminary. The goal of this page is to eventually display the full reference model in both UML and BMM format with an explanation of the model's component structures for broader consumption. Please note that not all parts of the model are currently displayed but they will soon be. Note that when I was developing this model, I had the following goals in mind:
+
==Core Requirements for the CIMI Reference Model==
  
* Extend the RM beyond its current state but minimize breaking changes
+
* The CIMI Reference Model shall provide the core expressivity required to author CIMI archetypes.
* Address the shortcomings identified during our last few CIMI calls
+
* 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:
* Stay as faithful as possible to OpenEHR and ISO 13606 - It will make downstream harmonization easier and provide a solid rational for our modeling choices.
+
** shall support the representation of 'classes' which may contain 'simple attributes' and 'complex attributes'.
* Attempt to make the RM extensible for other needs such as CDS and CQI's desire to develop a logical model (RM + Archetypes) to support declarative and sharable CDS knowledge artifacts on top of the core foundation CIMI is putting in place.
+
** 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.
  
This is a first attempt to do so. In order to meet the above requirements, there is a departure on some of the naming conventions of OpenEHR and ISO 13606 as both of these models are centered around the clinical patient record. The goal of the renaming is to support a more general model but it was done in such a way as to not take away from what was already defined for CIMI. The flip side though is that some of the fleshing out will need to be done at the archetype level. However, despite this potential shortcoming, I feel this model offers the closest compromise and provides a solid foundation on which to build our archetypes. Please let me know your thoughts.
+
==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==
 
==Introduction to Reference Model Components==
Line 21: Line 51:
 
! Examples
 
! Examples
 
|-
 
|-
|COMPOSITION
+
|ITEM
|A general type for a document structure that can contain heterogeneous content
+
|An abstract metamodel component such as a class or an attribute of a class in UML
|This structure is generalized beyond just a document about a single patient. It may also be a definitional artifact targeting a cohort of patients. Hence, it does not specify the subject of the record in the reference model.
+
|The ITEM class is required in order to support the recursive nesting of containers within containers that may also contain elements.
|Discharge summary, History & Physical, Order Set, ECA Rule, Questionnaire
+
|N/A
 
|-
 
|-
|CONTENT
+
|ITEM_GROUP
|Abstract node representing a document content item. Content items may be containers such as a section or a single entry in the record or document.
+
|A composite 'container' structure that can hold other containers or elements.  
|CONTENT should support nested structures such as sections within sections or behavioral groups in a CDS knowledge artifact. Note that this is an abstract structure and is intended to be further specialized. Also note that the cardinality is such that a document may have several top level sections.
+
|ITEM_GROUP is analogous to a class in UML.
|A section in a document, an orderable item in an order set, a clinical statement.
+
|a Procedure class
 
|-
 
|-
|CONTENT_GROUP
+
|ELEMENT
|Concrete type representing a potentially nested content container structure within a document.
+
|A non-composite item typically part of a container.
|Note that the name CONTENT_GROUP rather than SECTION is used in order to support a broader range of document types and content containment structures.
+
|ELEMENT is analogous to a UML class attribute.
|A section in a document, an action container in a knowledge document that supports different types of selection behaviors.
+
|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:
 +
 
 +
[https://github.com/cnanjo/archetypes/blob/master/Current_RM/CIMI-RM-4.0.bmm BMM File]
 +
 
 +
=== UML Representation of Reference Model ===
 +
 
 +
====Core Reference Model====
 +
 
 +
Narrative to be added...
 +
 
 +
[[File:CIMI_locatable_v2.gif]]
 +
 
 +
[[File:CIMI_core_reference_model_v2.gif]]
 +
 
 +
====Complex Data Types====
 +
 
 +
Narrative to be added...
 +
 
 +
[[File:CIMI_datatypes_v2.gif]]
 +
 
 +
====Primitive Types====
 +
 
 +
Narrative to be added ...
 +
 
 +
[[File:CIMI_primitives_v2.gif]]
 +
 
 +
====How CIMI Datatypes Align with FHIR====
 +
 
 +
Narrative to be added ...
 +
 
 +
=== Proposed Metadata Attributes ===
 +
 
 +
{| class="wikitable"
 +
|+CIMI Archetype Metadata Attributes
 +
! style="text-align:left;"| Attribute Name
 +
! Allowed Values
 +
! Scope
 +
! Description
 
|-
 
|-
|ENTRY
+
|container_kind
|Concrete type representing a content entry in a document such as a clinical statement in a patient record or a recommended action in a CDS knowledge document.
+
|cluster, composition, section, statement, statement_group, knowlege_definition, knowledge_definition_group
|Intended to be specialized in more than one way.
+
|ITEM_GROUP
|In CIMI, ENTRY is the abstract superclass for the STATEMENT class. In CDS, ENTRY may be specialized into the ACTION type of CDS Knowledge Artifacts.
+
|Specifies the kind of ITEM_GROUP container for tooling and validation purposes.
 +
|}
 +
 
 +
=== Tentative Value Sets ===
 +
 
 +
{| class="wikitable"
 +
|+Container Kind
 +
! style="text-align:left;"| Code
 +
! Preferred Name
 +
! Code System
 +
! Description
 +
! Parent
 
|-
 
|-
|STATEMENT
+
|1
|Abstract type for Clinical Statements.
+
|cluster
|This type is the entry point into the CIMI Clinical Statement hierarchy. It must support composite statements such as a composite orderable or a laboratory panel, for instance. Note that this set of statement is partitioned into two concrete types, an indivisible statement and a composite statement.
+
|http://cimi.org/valueset/container_kind
|A laboratory result. A laboratory panel.
+
|A grouping for a dependent structure or complex data type
 +
|N/A
 
|-
 
|-
|INDIVISIBLE_STATEMENT
+
|2
|Concrete type representing an atomic statement.
+
|composition
|Statement may extend beyond clinical statement, hence the more general name STATEMENT rather than Clinical Statement.
+
|http://cimi.org/valueset/container_kind
|A simple lab result or other quantitative observation.
+
|A grouping that holds the content of a document
 +
|N/A
 
|-
 
|-
|COMPOSITE_STATEMENT
+
|3
|A potentially nested structure that represents a collection of indivisible statements.
+
|section
|Based on both CIMI and CDS/CQI requirements for composite statements that may be recursively nested.
+
|http://cimi.org/valueset/container_kind
| Lab panels or composite medication orderables such as an OST.
+
|A grouping representing a section in a document
 +
|N/A
 
|-
 
|-
|ITEM
+
|4
|Abstract type for an item in a CONTENT ENTRY.
+
|statement_group
|This set is partitioned into ITEM_GROUP, a recursively nested structure, and ELEMENT.
+
|http://cimi.org/valueset/container_kind
|A complex data type. A simple attribute.
+
|A grouping representing a collection of clinical statements
 +
|N/A
 
|-
 
|-
|ITEM_GROUP
+
|5
|A collection of other ITEM_GROUPs or individual ELEMENTS.
+
|statement
|ITEM_GROUP is used to define new Cluster-types in CIMI
+
|http://cimi.org/valueset/container_kind
| Complex data types such as an Address type or an AnatomicalLocation structure.
+
|A single clinical statement
 +
|N/A
 
|-
 
|-
|ELEMENT
+
|6
|A simple attribute type with a DATA_VALUE type.
+
|knowledge_definition_group
|Leaf level item typically used to define new simple attributes in an archetype.
+
|http://cimi.org/valueset/container_kind
|Observation type, address line, procedure performance date, patient birthdate, etc...
+
|A grouping representing a collection of knowledge definitions
 +
|N/A
 
|-
 
|-
|NAME
+
|7
|DESCRIPTION
+
|knowledge_definition
|NOTES
+
|http://cimi.org/valueset/container_kind
|EXAMPLES
+
|An atomic knowledge definition
 +
|N/A
 
|}
 
|}
 
== UML Representation of the CIMI Reference Model ==
 
 
[[File:CIMI_core_reference_model.gif]]
 

Latest revision as of 17:54, 12 August 2016

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 http://cimi.org/valueset/container_kind A grouping for a dependent structure or complex data type N/A
2 composition http://cimi.org/valueset/container_kind A grouping that holds the content of a document N/A
3 section http://cimi.org/valueset/container_kind A grouping representing a section in a document N/A
4 statement_group http://cimi.org/valueset/container_kind A grouping representing a collection of clinical statements N/A
5 statement http://cimi.org/valueset/container_kind A single clinical statement N/A
6 knowledge_definition_group http://cimi.org/valueset/container_kind A grouping representing a collection of knowledge definitions N/A
7 knowledge_definition http://cimi.org/valueset/container_kind An atomic knowledge definition N/A