VocMnt-ValueSetRev
Value Set Revisions
A value set represents a list of concept codes from a single code system. Value sets are used to identify the list of possible values for a coded attribute based on the HL7 RIM.
Value sets can be constructed in one of three ways:
- A value set can represent all of the concept codes in a given code system
- A value set can represent selected codes from a code system. Codes may be selected by:
- Identifying individual concept codes
- Identifying a concept code and a relationship (e.g. hasSubtype, hasPart) and stating one of:
- The concept code and all related concepts are included in the set
- All related concepts except the named concept are included in the set
- All leaf nodes of the specified relationship are included in the set
- A value set can include codes from other value sets.
Note that the third form of construction actually makes it possible to mix concept codes from more than one code system in a single value set. This form should only be used, however, when the semantic space of the two value sets are disjoint - meaning that there is no possibility that the same concept could be represented using different codes from different systems.
When one value set is included in another set, sometimes it is useful to identify a concept code that represents the included value set as a whole (e.g. in the nullFlavor value set, one of the choices is “NoInformation (NI)”, which can be used instead of more specific flavors such as “masked (MSK)”, “not applicable (NA)”, etc.). When this is the case, the “whole” concept code can be identified by associating it with a value set as the “head code”. When this value set is included in a second value set, the include specifies whether the “head code” is a selectable value or not. Refer to the examples on the following pages for further clarification.
The vocabulary revision process can be used to create new value sets as well as to modify the contents of existing sets.
Creating a New Value Set
ballotStatus is the first element defined when creating a value set. As described above, it is optional except in the case when the vocabularyRevision.documentStatus is Final, in which case all revisions have to be associated with a non- Proposed status.
The valueSetMetaData element provides a place to document a description of the changes that this value set creation entails. (The text may include xhtml markup, and is placed within the "valueSetMetaData" element.) further, the element has a single attribute.
isImmutable | If set, the value set definition will be declared immutable. |
---|
The description element is technically optional but virtually required by HL7 style and ballot guides. When present, it provides a description of the use and purpose of the value set.
setName | The unique name of the value set |
---|---|
codeSystemName | The mnemonic for the code system associated with the value set (if any) |
allCodes | If codeSystemName is supplied, this flag determines whether all of the codes in the code system are included in the value set or just selected codes. |
headCode | It codeSystemName is supplied, this can be the concept code of the “head code” – the code that represents the entire value set. |
headCodePrintName | A valid designation for the headCode. Optional, but validated if supplied. |
asVocabularyDomain | <<Editor unsure of meaning. Does it mean "If true means that a concept domain should also be created."?>> |
The fragment in the example above creates a value set called “OrderableBeers” and assigns all of the codes from the BEERS code system to the set. It then creates a second value set called OrderableAles that is also drawn from the BEERS code system and assigns code 1001 (ALES) as the head code for the value set.
The underValueSet element allows the newly created value set to be added as nested element in an already existing value set.
setName | The name of an existing value set to add this new value set under |
---|---|
addAsType | One of abstract or specializable. Abstract means that the head code (if any) of the new value set is not to be considered part of setName. Specializable means that the head code (if any) is to be included in setName. |