When defining the set of codes allowed for a given element there's actually more to do than just referencing the set of codes. There's also a question of defining the conformance expectations for how the referenced set of codes are expected to be used. I.e. Are implementations restricted to the set of codes specified, must they support all of the codes, etc.
Requirement
|
When identifying the set of codes associated with an element, there's a need to identify the total set of codes (Value Set) that are potentially allowed to be sent, regardless of whether all implementations will support all codes.
|
Rationale
|
- The 'allowed' set of codes defines the interoperability space for communicating. If you don't know what set of codes can potentially be sent, you can't interoperate
|
MIF
|
mif-core-base.xsd/VocabularyValueSetBinding/baseValueSet
|
Requirement
|
When defining a set of codes for use in a specification, there's a need to differentiate whether the set of codes (Value Set) is considered exhaustive (i.e. all codes must come from the specified value set) or as the base preferred set that must be used if an appropriate code is available.
|
Rationale
|
- Not all code systems or sets of code systems will necessarily fully encompass a domain space
- New concepts can arise that need to be communicated before a code is available in a standardized code system
|
Methodology
|
Coding Strength is a conformance assertion that indicates whether the base set of codes referenced represents the complete set of codes allowed to be used or whether the set of codes can be supplemented with local codes or original text in circumstances where the concept can't be appropriately represented with one of the codes in the approved set.
Allowed values are:
- CWE (Coded with Extensibility), indicating that local codes or original text is allowed.
- CNE (Coded, no Extensibility), indicating that only the specified set of codes may be used
|
MIF
|
mif-core-staticBase.xsd/CompleteVocabularyValueSetRef/@codingStrength
|
Requirement
|
When identifying the set of codes associated with an element, there's a need to know what subset of those (Value Set) must be fully supported by implementations.
|
Rationale
|
- When defining interoperability specifications, it's not always necessary for all implementations to support the complete set of codes. For example, pharmacists may capture procedures for things like smoking cessation training, but they're not likely to capture an appendectomy. There may however be a subset of codes that all implementers are expected to handle. This needs to be communicated in the specification
|
MIF
|
mif-core-base.xsd/VocabularyValueSetBinding/minimumValueSet
|
Requirement
|
When defining a constraint on an existing set of vocabulary, there's a need to differentiate between codes that are not supported (those outside the base value set) and will likely raise an error if transmitted and those that simply won't be processed but will not result in an error.
|
Rationale
|
- Receiving a non-supported code is sometimes cause for an error while in other circumstances it might be safely ignored. It's essential for implementers to know the expected behavior.
|
MIF
|
mif-core-base.xsd/VocabularyValueSetBinding/ignoredValueSet
|
Requirement
|
There is a need to define re-usable "sets" of codes that can be referenced as part of bindings
|
Rationale
|
- Coded data is a critical aspect of healthcare interoperability because coded data allows for better analysis, searching and decision support
- A set of codes defined for one use may often be valuable for other uses. Given the maintenance effort required to define sets of codes, re-use of previously defined code sets is essential.
|
Methodology
|
Value Set
|
Requirement
|
When defining support for a particular set of codes, there's a need for an implementer to know how frequently they're expected to keep up-to-date with changes to the set of codes
|
Rationale
|
- Healthcare is a dynamic environment. Code systems evolve as do value set definitions
- There is a cost to updating the codes supported by an implementation
- Failure to update an implementation frequently enough can lead to interoperability issues
|
Methodology
|
There are two categories of coded attributes:
- Frozen at publication: Implementations are not expected to support changes to the underlying code systems and value sets from what is declared in a given version of a specification unless they choose to support a newer version of the specification. Hard-coding of terminology is possible.
- Dynamic: Implementations are expected to reference the newest set of codes as published by the code system using the value set definition declared. Hard-coding of terminology is not possible.
|
MIF
|
mif-core-base.xsd/VocabularyValueSetBinding/@revisionFrequency
|
Requirement
|
When binding to value sets whose definition can change and/or which references code systems whose content can change, there's sometimes a need to lock the binding to a static set of codes "as the value set was" at a particular time.
|
Rationale
|
Using valuesets whose resolution to an enumeration of codes is constantly changing value sets makes things more difficult for implementers and can cause interoperability issues as two applications rarely have exactly the same version of the value set and code systems at the same time. While sometimes this difficult is unavoidable, if it can be avoided, that is useful. Freezing the enumeration as of a particular time is the easiest way to fix the enumeration without having to explicitly list all of the codes (when there may be 100s or 1000s).
|
Methodology
|
When a static binding date is specified, the value set versions and code system versions are set to be the "most recent available" as of that date, unless they are already hard-coded in the definition of the value set.
|
MIF
|
mif-core-base.xsd/VocabularyValueSetBinding/@staticBindingDate
|