Requirements-Value Sets

From HL7Wiki
Jump to navigation Jump to search

A value set is a collection of codes from one or more code systems. The definition of the value set may be either an enumeration (extensional) or an expression (intentional)

Value Set

Requirement Value sets must be able to be identified in a globally unique way.
Rationale Value sets need to be explicitly referenced in static models, implementation guides and context bindings. This can only occur if they're uniquely identified with no possibility of confusion
Methodology mif-vocabulary-model.xsd/ValueSet/@id
OMG Mapping Tagged value of a ValueSet stereotype.


Requirement Value sets must be able to be given a human-readable label
Rationale Value sets need to be talked about and understood by human beings and globally unique identifiers aren't terribly useful for humans
Methodology mif-vocabulary-model.xsd/ValueSet/@name
OMG Mapping The usual name of a named element in UML.


Requirement Some value sets need to be able to be marked as "unchangable"
Rationale With some value sets, there's an identified purpose for the value set and the definition can change over time, so long as the revised set of codes still reflects the original purpose. However, for other value sets, there is no clearly expressible purpose. There is simply an arbitrary set of codes. Anyone who wants that particular arbitrary set can reference the value set. Because the defining characteristic of the value set is the codes themselves, it is not safe for the definition of the value set to ever be revised. As well, those who reference the value set need to have confidence that it's not going to change.
Methodology mif-vocabulary-model.xsd/ValueSet/@isImmutable
OMG Mapping Tagged value of a ValueSet stereotype.


Requirement Value sets must be able to be uniquely identified
Rationale Value sets need to be explicitly referenced in static models, implementation guides and context bindings. This can only occur if they're uniquely identified.
Methodology mif-vocabulary-model.xsd/ValueSet/@id
OMG Mapping Tagged value of a ValueSet stereotype.


Requirement There's a need to understand the intended purpose of a value set
Rationale Value sets can be constructed for different reasons. When choosing a value set, it's useful to know why the value set exists. As well, the purpose of the value set can impact what codes are exposed within the value set. For example, in analysis value sets, "abstract" codes would be returned, while they would not normally be part of a value set used for exchange or as a pick-list.
Methodology
  • analysis: The value set is intended to provide a list of concepts that is definitional in some way. E.g. "Symptoms of dementia".
  • exchange: The value set is intended to identify an allowed set of codes that may be persisted or transmitted.
  • pick-list: The value set is intended to identify a set of displayed values to be exposed to a user from which they can select one or more concepts.
MIF mif-vocabulary-model.xsd/ValueSetVersion/@use
OMG Mapping Tagged value of a ValueSet stereotype.


Requirement Value sets need to be able to track statuses over time.
Rationale Like other vocabulary objects, Value sets can be draft, active, deprecated or even retired. In some cases, they even get resurrected. Users need to know what the status of a concept domain is right now as well as what it was at times in the past.
MIF mif-vocabulary-model.xsd/ValueSet/statusInfo
OMG Mapping Tagged value of a ValueSet stereotype.

Value Set Version

Requirement Value sets must support multiple versions over time
Rationale The content of many value sets needs to change over time. Perhaps codes need to be added or removed from an enumeration, or perhaps an expression needs to be tweaked based on changes to one of the referenced code systems
MIF mif-vocabulary-model.xsd/ValueSetVersion
OMG Mapping This could also potentially be handled by MOF versioning.


Requirement Value set versions must be identifiable. Value set versions must also identify the time they were created
Rationale When binding a value set, sometimes there's a need to bind a specific version (so there's tighter control over the specific set of codes chosen). When a specific version is not chosen, there's a need to know what version of a value set was in effect at a particular time. Usually a date suffices. However, some value sets are revised multiple times a day and therefore time may also be required
MIF
  • mif-vocabulary-model.xsd/ValueSetVersion/@versionDate
  • mif-vocabulary-model.xsd/ValueSetVersion/@versionTime
OMG Mapping This could also potentially be handled by MOF versioning.


Requirement Value set versions must be able to be associated with properties from their respective code systems.
Rationale Some properties, such as formal naming properties, need to be associated with value sets that make use of codes from a code system rather than just the codes from the code system themselves.
MIF mif-vocabulary-model.xsd/ValueSetVersion/associatedConceptProperty
OMG Mapping It seems this could be supported by tagged values on a stereotype. However, it is unclear why it is associated with a version rather than directly with the value set.


Requirement Value set versions must define the set of codes they contain either by enumeration or expression
Rationale That's the primary purpose of a value set :>
Methodology Value Set Content
MIF mif-vocabulary-model.xsd/ValueSetVersion/content
OMG Mapping A value set that is an enumeration can be handled as a stereotyped UML enumeration. A stereotype that is an expression can be handled as a stereotyped data type with the expression in an associated constraint.


Requirement Value set versions must be able to provide examples of the codes included within the value set
Rationale The full set of codes in a value set may number in the 100s or 1000s, far too many to reasonably publish. However, having some indication of the sorts of codes included in a value set is important for understanding the value set and necessary for publishing.
MIF mif-vocabulary-model.xsd/ValueSetVersion/enumeratedContent
OMG Mapping A tagged value of a ValueSet stereotype that contains a set of sample instances. (This would only be useful for the case when the value set is given by an expression not by a small, explicit enumeration. In the latter case, the complete set of values would be given by the enumeration literals.)