openEHR Support Terminology - Binding-strengths

A number of openEHR implementers have reported that some of the openEHR Support terminology bindings to RM attributes are too restrictive.

The key issue, is that the RM Specifications always assume that the bound Support terminologies are always required unchanged and cannot be replaced or extended.

This requirement is expressed as part of the Invariant section of the RM Class e.g. For PARTY_RELATED

Invariants

Relationship_validterminology (Terminology_id_openehr).has_code_for_group_id (Group_id_subject_relationship, relationship.defining_code)

 

Invariants

Relationship_validterminology (Terminology_id_openehr).has_code_for_group_id (Group_id_subject_relationship, relationship.defining_code)

 

Binding-strength

Some of these issues might be resolved by better response to Change requests and alignment to changes in external reference codesystems, but in other cases, it has to be questioned if the ‘required’ status enforced by Invariant constraints should be relaxed.

Traditionally openEHR has not had the idea of terminology ‘binding-strength’ i.e. the degree to which the use of a specific codesystem or valueset at a particular datapoint is mandatory, or whether it can be extended or replaced.

Note This is separate from mandation of the data point itself e.g. An Allergy ‘reaction’ node can be optional but the associated valueset is required to be a specific SNOMED valueset

HL7 FHIR uses the idea of binding-strength on data nodes, and this has recently been added to the ADL2 specification for archetype-based codesystems/valuesets.

HL7 FHIR Binding-strengths

Code

System

Display

Definition

Code

System

Display

Definition

required

http://hl7.org/fhir/binding-strength

Required

To be conformant, the concept in this element SHALL be from the specified value set.

extensible

http://hl7.org/fhir/binding-strength

Extensible

To be conformant, the concept in this element SHALL be from the specified value set if any of the codes within the value set can apply to the concept being communicated. If the value set does not cover the concept (based on human review), alternate codings (or, data type allowing, text) may be included instead.

preferred

http://hl7.org/fhir/binding-strength

Preferred

Instances are encouraged to draw from the specified codes for interoperability purposes but are not required to do so to be considered conformant.

example

http://hl7.org/fhir/binding-strength

Example

Instances are not expected or even encouraged to draw from the specified value set. The value set merely provides examples of the types of concepts intended to be included.

The suggestion at https://openehr.atlassian.net/browse/SPECPR-439 is to apply binding-strengths to RM attributes which are bound to openEHR Support terminology, and in some cases to relax the ‘required’ constraint expressed in the RM specification documents.

Actions

  1. Categorise the binding-strength of RM attributes which are bound to openEHR terminology

  2. Document RM attribute binding-strength in Specifications

  3. Consider documenting RM attribute binding-strength in BMM

1: Proposed RM attribute binding-strength

Rationale

Required: Where strict adherence is required for correct RM functionality e.g Version Lifecycle_state or Instruction states

or where a high degree of alignment with external terminologies can reasonably be expected and adhered to, and there is unlkely to be local variation

Extensible: Where a terminology has a degree of standardisation and adoption but may not be complete enough to handle local requirements e.g. Media types. Normal Status
Note: Normal status is currently based on a very old HL7v2 codeset. Recommendation is that we update this to include appropriate codes from the current FHIR codesystem, but allow it to be extensible to capture unusual local lab codes.

Preferred: I could not find a use for preferred.

Example: Where an openEHR internal codeset is unlikely to gain traction as a standard, over other local or reference terminologies e.g. Setting and Subject Relationship.

In some cases the links to an external reference is no longer valid and we should take the opportunity to tidy this up.

2: Updating the openEHR Specification (RM/Terminology)

  1. Add the binding-strength terms to the Support Terminology.

  2. Add a tag to the RM attribute to specify the binding-strength, and add a link back tothe codeset.

  3. Where the binding-strength is not ‘required’ remove any current Invariant constraint

 

Example of updated EVENT_CONTEXT Specification

  • Invariant for setting removed sincse it is not required.

  • Link to openEHR setting codeset.

  • Binding-strength in brackets (as per FHIR) with a link to the binding-strength terminology in openEHR Terminology support.

image-20250107-152153.png

3: Adding binding-strength to BMM (BMM specification change)

Should we add support into BMM to capture binding-strength for RM attributes?

see https://specifications.openehr.org/releases/LANG/latest/bmm.html#_value_set_types

My understanding is that we would need to add a new BMM attribute to handle this. Not that this is design-time only - it is not intended to be represented in patient data.




Related content