This wiki has undergone a migration to Confluence found Here
Requirements-Value Sets
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 |
|
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 |
|
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.) |