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

Difference between revisions of "Proposed CIMI Reference Model"

From HL7Wiki
Jump to navigation Jump to search
 
(27 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. This may require loosening the semantics of ISO13606.
+
** 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
 
|-
 
|-
|NAME
+
|ITEM
|DESCRIPTION
+
|An abstract metamodel component such as a class or an attribute of a class in UML
|NOTES
+
|The ITEM class is required in order to support the recursive nesting of containers within containers that may also contain elements.
|EXAMPLES
+
|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
 
|}
 
|}
  
== UML Representation of the CIMI Reference Model ==
+
== The CIMI Reference Model ==
Version as of July 27, 2016 1:47 pm ET
+
 
 +
=== 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====
  
=== Proposed changes ===
+
Narrative to be added...
  
* Addition of new complext data type CODED_NAME_VALUE to support name value types where the name is a CODED_TEXT and the value is a DATA_VALUE
+
[[File:CIMI_locatable_v2.gif]]
* Addition of a new metadata attribute to ITEM with cardinality 0..* of type CODED_NAME_VALUE
 
  
=== Rationale ===
+
[[File:CIMI_core_reference_model_v2.gif]]
  
* Provides an extensible mechanism for adding meta model attributes beyond those currently provided by the OpenEHR Basic Meta Model Specification (BMM). These metadata attributes are primarily intended for tooling.
+
====Complex Data Types====
* Allows the definition of additional meta model metadata attributes without changing and re-versioning the reference model.
 
* Supports the requirement for additional CLUSTER types in the reference model in order to allow validation, translation, and compilation without needing to introduce them explicitly in the reference model.
 
* Ultimately supports the definition of a small and compact core reference model, thus enabling greater expressivity at the CIMI core archetype level.
 
  
=== Disadvantage of Proposed Approach ===
+
Narrative to be added...
  
* Metamodel attributes are specified at the archetype level alongside clinical attributes but are contained within the metadata container.
+
[[File:CIMI_datatypes_v2.gif]]
* Constraints and validation rules need to be defined outside the OpenEHR specification (i.e., cannot leverage ADL to enforce constraints). No formalism has been proposed to do so at this time.
 
  
=== BMM Model ===
+
====Primitive Types====
  
[https://github.com/cnanjo/archetypes/blob/master/Current_RM/CIMI-RM-4.0.bmm BMM File]
+
Narrative to be added ...
  
=== UML Representation of Reference Model ===
+
[[File:CIMI_primitives_v2.gif]]
  
 +
====How CIMI Datatypes Align with FHIR====
  
[[File:CIMI_core_reference_model_v2.gif]]
+
Narrative to be added ...
  
 
=== Proposed Metadata Attributes ===
 
=== Proposed Metadata Attributes ===
Line 69: Line 114:
 
|ITEM_GROUP
 
|ITEM_GROUP
 
|Specifies the kind of ITEM_GROUP container for tooling and validation purposes.
 
|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
 
|-
 
|-
|is_abstract
+
|1
|true, false
+
|cluster
|ITEM_GROUP
+
|http://cimi.org/valueset/container_kind
|Specifies whether an archetype is abstract and must be further constrained or whether the archetype can be used as a fully constrained schema for clinical instance data generation.
+
|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
 
|}
 
|}

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