If you look at the HL7 Vocabulary Domain document, you’ll notice three distinct sections:
- Concept domains
- Code Systems
- Value Sets
Unfortunately, the documentation can be a bit hard to interpret because the documentation will often use the same names to refer to a Concept Domain, a Code System and a Value Set, even though those are three distinct things. Consider AdministrativeGender. There is a concept domain called AdministrativeGender, and a corresponding code system for the AdministrativeGender and a value set for AdministrativeGender.
To understand the distinctions, it helps to consider a case where the three things have different names. Take a concept domain, HumanLanguage. HumanLanguage is a concept that represents a language that a person speaks. Individual values might represent “English”, “French”, etc. The folks at HL7 decided that, rather than invent a set of values to represent these different languages, they would use the standard 2-character language codes “en”, “fr”, etc defined by the International Organization for Standardardization (ISO). Thus, “en”, “fr”, etc. are part of a value set that’s associated with the concept domain of HumanLanguage.
It’s also true that, to ensure uniqueness, these codes are “qualified” by an identifier (an OID) that represents the “system of codes” (code system). In this case, the Code System is considered the ISO 0639 2-character codes, and that code system is identified by the OID “2.16.840.1.113883.6.84”.