v2+ Vocabulary
0.2.0 - Working Draft to present the concept ideas (FO)

v2+ Vocabulary - Local Development build (v0.2.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions


General Remarks

This page is listing the set of rules - as identified and documented so far - when converting the v2 tables into proper vocabulary. The goal is to use FHIR technology and artifacts to maintain the content. That implies further additions, in FHIR-speak extensions and/or specific properties or specific codesystems respectively value sets.


see: Versioning Policy for v2


All tables may provide the following details:

  • concept/vocabulary domain
    • This is the minimum for defining vocabulary. It must be defined for all tables.
    • It introduces the notion for what kind of codes are needed, i.e. which type of content should be coded.
    • Some concept domains may contain some example values that help to explain. Typically, the set of listed values is too small for real use.
  • value set
    • for (v2) internal codesystems:
      • typically the complete codesystem content is taken. Then the table also defines the codesystem.
    • for references to external codesystems, eg. V3, FHIR, LOINC or Snomed CT, or other:
      • it ocntains an explicit list of the codes which should be selected
      • separation can be decided based on the associated OID for the value set
      • must declared as “foreign value set”
  • codesystem
    • (reasable) list of codes
    • versioned correctly
    • associated codesystem may change for a specific data element over time in order to keep the codesystem complete and correct
    • further identified as either classification (with other/unknown) or terminology (w/o other/unknown)

Furthermore, the following applies:

  • all tables are ‘open’ per default, except specific HL7-defined tables for technical reasons (the latter requires inspection)

Therefore, a table is a combination of concept domains with perhaps value sets and codesystems.


Beside the aforementioned rules the following should be valid:

  • all symbolic names must be unique - no re-use
  • all OIDs are only used for a single entity
    • must use correct OID for value set or codesystem if belonging to v2
  • the table type cannot change across HL7 versions
    • it must be agreed on the correct type
    • probably taking the type from the latest HL7 v2 version, leading to backward changes
  • the case-sensitive name of the table should not change over time
    • upper case naming ocnvention preferred
  • some tables may define properties for values
    • determine whether all values (codes) must have a value for this property, or only some
    • verify changes of properties across versions
    • (property maintenance is currently a manual process and has to be repeated)


  • can only contain other or unknown if appropriate property is set

HL7-defined Tables

HL7-defined tables shall adhere to the following:

  • They are needed so that the v2 framework will work.
  • They have to improve the previous version:
    • all previous values must be present
    • values can be marked as ‘deprecated’
  • possible binding strengths
    • required - no extensions possible, e.g. for order control codes
    • extensible, e.g. for events
  • ID and CNE data types must use HL7-defined tables, but HL7-defined tables can also be used with IS and CWE.

User-defined Tables

  • possible binding-strength
    • suggested
    • example
    • preferred
  • selected binding strength depends on quality of provided example values
  • user-defined tables cannot be used with ID or CNE data elements

Binding Strength (original from v2.x)

Seq strength mapping to new explanation
1 example example  
2 universal required?  
3 US realm   for use in US only, unlcear how to represent that
4 representative suggested, recommended  

Binding Strength (according to FHIR)

Seq strength usage explanation
1 example user-defined  
2 suggested user-defined  
3 recommended user-defined  
4 extensible HL7-defined  
5 required HL7-defined  


Seq openness explanation
1 open all tables are open
2 closed except HL7-tables for specific use, eg. order control codes

Concept Domains

All tables have a concept domain.

Concept Domains cannot have values; if so, then it must be a concept domain with exampe values.

If the table is user-defined and the amount of values is too small then the table will be handled as ‘concept domain with example values’. The table values will then be rendered as a bullet list into the description.

A separate codesystem for concept domains will be established and populated with all tables.

A separate concept domain codesystem is generated from all tables.


Must have values.

A subsequent version must contain all previous values/codes. Outdated values may be marked as deprecated.

Each codesystem has two value sets:

  • the complete one
  • one with current active values

Value Sets

If values are present, then it must have codesystem or reference an imported value set, eg. from V3 or FHIR, or other external codesystems.

Foreign Value Sets

Foreign value sets are imported or otherwise reference foreign vocabulary:

  • foreign value sets reference codesystems outside v2, ie. have other OID roots