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

Binding Syntax

From HL7Wiki
Revision as of 16:01, 14 September 2010 by Tklein (talk | contribs) (→‎Requirements)
Jump to navigation Jump to search

Binding Syntax

This project is a joint effort between Implementation and Conformance and vocabulary.

Scope

Define the expression of the vocabulary constraints in implementation guides. Define the expression of the Value Set Assertion, a Model Binding, a Context Binding, and a Context Domain constraint. Information expressed in the syntax should be isomorphic to the normative definition of the data items comprising vocabulary constraints in Core Principles and the MIF ballots.

Requirements

  • model binding to a single code or Value Set Assertion
  • context binding to a Value Set Assertion
  • dynamic/static stability
  • identification of MIN/MAX/IGNORE value sets in Value Set Assertion
  • identification of Coding Strength in the Value Set Assertion
  • constraining of a Concept Domain to a sub-Domain
  • publication of value set expansions (appendix)

A Model Binding is the direct association of a coded attribute or data type property to a specific Value Set Assertion or specific single fixed code from a coding system.

A Context Binding is the association between a Concept Domain, a Binding Realm, and one or more Value Set Assertions, along with effective timestamps and a sequence (if more than one Value Set Assertion is defined). The specific items that are included in a Context Binding are:

  • Context Domain or sub-Domain (required)
  • Binding Realm (required)
  • Value Set Assertion (required)
  • effective date (optional)
  • end date (optional)
  • sequence (optional)

The last four items may be repeated as a group.

A Value Set Assertion is the mechanism to express the coded vocabulary constraint in a binding. A Value Aet Assertion has at least one required value set declared - the MAX; this is mandatory. A Value Set Assertion has two optional Value Sets that may be declared, the MIN and IGNORED. For more information about the MAX, MIN, and IGNORED value sets in a Value Set Assertion, and how mathematical set operations may be used to understand how these provide a localizable, extensible, yet controllable constraint, see the discussion in Core Principles of V3 Models, chapter 5. The value set must be declared using a unique identifier, preferably the OID of the value set. Each value set identified in a Value Set Assertion must have an associated Coding Strength declared. The entire Value Set Assertion has an optional Stability level declared; if not declared, the stability is Dynamic. If declared, the stability is Static, and the effective timestamp is that which is declared in the Value Set Assertion stability.

A Value Set Assertion is expressed using the following ten (10) elements:

  • MAX Value Set OID and/or name (mandatory)
  • MAX Value Set version date/time (optional)
  • MAX Value Set Coding Strength (CNE or CWE – mandatory)
  • MIN Value Set OID and/or name (optional)
  • MIN Value Set version date/time (optional)
  • MIN Value Set Coding Strength (CNE or CWE – conditional)
  • IGNORED Value Set OID and/or name (optional)
  • IGNORED Value Set version date/time (optional)
  • IGNORED Value Set Coding Strength (CNE or CWE – conditional)
  • STABILITY StaticDate (optional)

Note that Model Binding is generally specified in Implementation Guides, whereas Context Binding is generally published separately by a Realm (since a Context Binding is valid across all models in the Realm that make use of the bound Context Domain).

Keywords

The keywords SHALL, SHOULD, MAY, NEED NOT, SHOULD NOT, and SHALL NOT in this document are to be interpreted as described in the HL7 Version 3 Publishing Facilitator's Guide. The keyword "SHALL" implies a lower cardinality of 1 but does not disallow NULL values. If NULL values are to be excluded, it will be via an additional explicit conformance statement.

BNF grammar

BindingSyntax := "A" <elementName> ["SHALL" | "SHOULD" | "MAY" ] "be present where the value of" <elementName> "is" [ <ValueSet> | <CodeX> ] "."

<ValueSet> := "selected from Value Set" <valueSetOID> <localValueSetName> [ "DYNAMIC" | "STATIC"] (valueSetEffectiveDate) "."

<CodeX> := [ <displayName> ] <codeSystemOID> [ <codeSystemName> ] "STATIC".


Examples

Model Binding:

Single Code Binding:

Value Set Assertion Binding:


--Tklein 02:22, 14 September 2010 (UTC)I'm thinking a model binding to a set of codes will look more like this:

A code element SHALL be present where the value of @code is asserted by MAX Value Set 2.16.840.1.113883.19.3 LoincDocumentTypeCode 20100422 CWE, MIN Value Set 2.16.840.1.113883.19.6 MinimumDocumentTypeCode CNE with stability 20101015

CONF-ex1: A code element SHALL be present where the value of @code is selected from Value Set 2.16.840.1.113883.19.3 LoincDocumentTypeCode DYNAMIC.

CONF-ex2: A code element SHALL be present where the value of @code is 34133-9 Summarization of episode note 2.16.840.1.113883.6.1 LOINC STATIC.

Context Binding:

Value Set Assertion Binding:

--Tklein 02:22, 14 September 2010 (UTC)And a context binding something like this:

Context Domain ActIssuePriority SHALL be bound to MAX Value Set 2.16.840.1.113883.1.11.19358 AcknowledgementDetailType in Realm R1

Context Domain Constraining to a Context sub-Domain:

Expression of a Value Set Assertion:

Open Issues

  • conditions (true/false)
  • combined constraints: to be concatenated via "and" (must be reflected in BNF grammar)
  • current grammar is not the current state of binding in HL7 v3 models; current state uses Value Set Assertion for binding
  • Value Set Assertions are defined in the Implementation Guides
  • Value Sets may be identified by OID or name
  • Must be a way to assert ad hoc constraints to implement OCL-like restrictions on the bindings