Stream: implementers
Topic: Data-absent-reason on 1..1 element with Required binding?
David Pyke (Feb 09 2021 at 19:42):
I'm working on a project that has a required binding on a required (1..1) element. Is it possible to use DAR if I'm missing the data?
Grahame Grieve (Feb 09 2021 at 19:50):
I think no. A required binding is a required binding
David Pyke (Feb 09 2021 at 19:59):
Curses, foiled again
Amol Vyas (Feb 09 2021 at 20:06):
You might want to see how US Core IG handles this scenario: http://www.hl7.org/fhir/us/core/general-guidance.html#missing-data.
Lloyd McKenzie (Feb 09 2021 at 23:05):
US-core's rules don't override the base spec. It the binding is 'required', you can't have the element unless you've got a value from the specified value set. No exceptions. If the element is mandatory, then you can't have the resource (or at least the containing element) unless you've got a code from the value set.
Eric Haas (Feb 11 2021 at 20:16):
in US Core we note that for required binding you have no options if there is no "unknown" concept. If you have a use case where this occurs you may want to lodge a tracker with the workgroup/project to add the concept.
ryan moehrke (Feb 11 2021 at 20:38):
so for CodeableConcept required binding to X cardinality 1..1 but no other fixed/pattern bindings
the following wouldn't be valid?
<CodeableConcept>
<extension url="http://hl7.org/fhir/StructureDefinition/data-absent-reason">
<valueCode value="unknown"/>
</extension>
<text value="Unknown value"/>
</CodeableConcept>
Lloyd McKenzie (Feb 11 2021 at 20:46):
Right - that's non-conformant
Lloyd McKenzie (Feb 11 2021 at 20:46):
If there's a required binding, you must have a coding from the value set in order to have the element at all
ryan moehrke (Feb 11 2021 at 20:47):
Interesting.. but that's only for required bindings? would that be ok for an extensible or any of the other less strict bindings?
Lloyd McKenzie (Feb 11 2021 at 20:47):
If the element is 1..1, you'd need to omit the parent. If the parent is the resource, you can't have an instance.
Lloyd McKenzie (Feb 11 2021 at 20:47):
For extensible, you're free to send text or an alternate coding if the concept isn't covered by the bound value set
Lloyd McKenzie (Feb 11 2021 at 20:47):
For example and preferred, you can send whatever you like
ryan moehrke (Feb 11 2021 at 20:48):
but I'm not sending a coding at all, I'm sending an extension and omitting the coding, I understand how bindings work when the code is there, but that's not my question
ryan moehrke (Feb 11 2021 at 20:49):
CodeableConcept.coding is not required, what you're saying is that it is implicitly required when there is a "required" binding
Lloyd McKenzie (Feb 11 2021 at 20:49):
For extensible, you can send text or an alternate coding. The binding applies to the element (the whole CodeableConcept)
Lloyd McKenzie (Feb 11 2021 at 20:50):
And yes, if a CodeableConcept has a required binding that creates an implicit 1..x on CodeableConcept.coding
Lloyd McKenzie (Feb 11 2021 at 20:51):
Or more specifically a 1..1 pattern slice with both code and system 1..1 and drawn from the specified value set.
ryan moehrke (Feb 11 2021 at 20:57):
ah, found the part of the spec that lists that https://www.hl7.org/fhir/terminologies.html#required
I wonder if there should be some extra foreshadowing in the CodeableConcept/Binding Strength info about that, it feels a little too deep in the spec to notice without some major digging. I don't know where/what to add though..
Lloyd McKenzie (Feb 11 2021 at 21:05):
If you come up with an idea, file a change request :)
Last updated: Apr 12 2022 at 19:14 UTC