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

Binding Syntax

From HL7Wiki
Revision as of 02:10, 14 September 2010 by Tklein (talk | contribs) (→‎Open Issues)
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)

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:

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:


Context Domain Constraining to a Context sub-Domain:

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