...
Binding strength: https://build.fhir.org/codesystem-binding-strength.html
December 14, 2020 - Vocab co-chair call
The R4 wording is here:
To be conformant, the concept in this element SHALL be from the specified value set if any of the codes within the value set can apply to the concept being communicated. If the value set does not cover the concept (based on human review), alternate codings (or, data type allowing, text) may be included instead.
We know there are at least 2 interpretations of the R4 text.
This is what has been taught in Vocab training and represents the intent of the original authors. Here are a couple of options we tossed around
- You must use a concept from the value set if the meaning you are trying to convey is covered/subsumed by a concept in the value set expansion.
- You must use a concept from the value set expansion if value set expansion contains a concept that is semantically equivalent
Unfortunately the word subsumption is not in the R4 definition which might have provided clarity.
It has always been assumed that a human would select a concept if the exact, desired concept is not in the value set expansion. Unfortunately we did not do semantic equivalence using humans.
Rob M: Extensible (in FHIR) means that in the context of an implemented IG you can create a new value set that contains the concepts you need to use. Either a new version of the bound value set or a completely new value set can be used? Going against the implementation guide?
(Rob M: Sending a code that is not in the value set expansion but is within the scope, the code is from another value set) However, a code might be sent that is within the scope (e.g. a new code for COVID-19) that is not in another value set - possibly a value set in someone's mind - not one that actually exists. Ted: because there is always a value set that is all codes in a code system, then technically in FHIR, all codes are in a Value Set.
Rob H: all data instances are only based on code systems (not value sets)
Rob H: if implementers take the path that a code may be sent if the semantic meaning is not in the value set expansion, you have made extensible equivalent to preferred
Extensible may be interpreted more like required, or more like preferred
Rob H: the value of extensible lies between required and preferred
Ted: in terms of conformance testing, if there is an exact match to a code in the value set expansion, then it is conformance, if not an exact match, a warning is issued to indicate a human being should take a look at the value
(we know if something is good, or we can't know if something is valid)
Rob M: suggests we acknowledge extensible straddles the fence, and is not reliably implementable. Implementers may choose to interpret extensible as aligned with required or with preferred. Conformance testing guidance may be crafted using Ted's wording above.
Recommend that people not use extensible binding strength in implementable IGs.
How does Value Set versioning impact this? This is an issue across all binding strengths. However, with a required binding, version could seriously impact what can be sent.
Robert Hausam volunteers to create concise, clear wording to define extensible binding strength along with usage notes. We should do this for R4B. Carmela A. Couderc will add a JIRA for this task. Rob H appreciates any help on this very important topic. Rob McClure will craft something (suggests we acknowledge what is happening in the community - people have focused on the individual concept and not subsumption)
Ted Klein suggests the usage notes highlight that the use of extensible binding strength should be avoided
****************************
End of 12/14/2020 minutes
Previous notes for history
Code | Display | Definition | Usage Note | Issue |
required | Required | To be conformant, the concept in this element SHALL be from the specified value set. | ||
extensible | Extensible | To be conformant, the concept in this element SHALL be from the specified value set if any of the codes within the value set can apply to the concept being communicated. If the value set does not cover the concept (based on human review), alternate codings (or, data type allowing, text) may be included instead. | Added Parts of the definition that contribute to possible confusion:
Do we know the original intent of this binding strength? Does it matter? Do the education materials consistently/accurately reflect the original intent? Does it matter? Example 1: Clinician selects: Heart Attack Type A Bound value set expansion does not include Heart Attack Type A, however it does include Heart Attack. Core issue: Which is the expectation of the sender?
Example 2: Clinician selects: Heart Attack Type A Bound value set expansion does not include Heart Attack Type A, nor Heart Attack. Core issue: Which is the expectation of the sender?
DataType has an impact on the usage of this binding strength. NOTE: due to the ambiguous wording, implementations have interpreted the existing definition different ways. Responses from Lloyd: In example 1, the sender MUST send the code from the value set that says "Heart Attack". Presuming the data type is CodeableConcept, they're free to also send the code for "heart Attack Type A" and/or text that conveys the additional detail. If they were to only send the code "Heart Attack Type A", they would be non-conformant The degree of detail the sender wants to convey isn't a primary consideration. What matters is the level of granularity that receiving systems are counting on receiving. The expectation is that senders will have to map and there may be information loss - which is why they're free to convey their original concept as well. | |
preferred | Preferred | Instances are encouraged to draw from the specified codes for interoperability purposes but are not required to do so to be considered conformant. | ||
example | Example | Instances are not expected or even encouraged to draw from the specified value set. The value set merely provides examples of the types of concepts intended to be included. |
...