FHIR Chat · must-understand coding value · implementers

Stream: implementers

Topic: must-understand coding value


view this post on Zulip John Moehrke (Oct 30 2018 at 20:03):

Is there a need for an extension to Coding to tag a specific code value as must-understand? In the security label environment we have a need to assure that a recipient understands the 'handling obligations', as handling obligations can't be ignored... Is there a need beyond this?

view this post on Zulip Grahame Grieve (Oct 30 2018 at 20:19):

we would generally say that this is a definitional thing, not something on the coding itself?

view this post on Zulip Yunwei Wang (Oct 30 2018 at 20:24):

I thought all required bindings are must-understand.

view this post on Zulip Grahame Grieve (Oct 30 2018 at 20:27):

no, in fact.

view this post on Zulip John Moehrke (Oct 30 2018 at 20:34):

so you would say that it is sufficient that the vocabulary definition of that code is clear it must be understood? Which assumes that all implementers look through all possible vocabulary for these must-understand codes and puts special handling into their code to understand them?

view this post on Zulip Grahame Grieve (Oct 30 2018 at 20:39):

we've documented a few as must-understand in the narrative of the security labels page, and referenced that from the safety check list.

More generally, the way to do this to define a must-understand binding using http://build.fhir.org/extension-elementdefinition-minvalueset.html

view this post on Zulip Yunwei Wang (Oct 30 2018 at 20:43):

What is the difference from required binding? Required binding is "To be conformant, codes in this element SHALL be from the specified value set."

view this post on Zulip Grahame Grieve (Oct 30 2018 at 20:44):

the main binding: these are the codes that you can use
the min binding: these are the codes that you must understand

view this post on Zulip Yunwei Wang (Oct 30 2018 at 20:45):

Do you mean that no all codes from that required value set are used for binding?

view this post on Zulip Yunwei Wang (Oct 30 2018 at 20:47):

For example, 10 codes in the value set but only 5 are used for the binding so the min binding has 5.

view this post on Zulip Grahame Grieve (Oct 30 2018 at 20:48):

I'm not sure what 'used for binding' means here . Let's take an example: you are writing a medication management system, and you say "my system doesn't use or allow or support the medication request status 'cancelled'": are you conformant or not?

view this post on Zulip Grahame Grieve (Oct 30 2018 at 20:49):

since the main spec says nothing about whether you must support cancelled medications, you are clearly conformant. But an implementation guide might create a minValue set binding, and put cancelled on the list. In which case, you would not be conformant to that implementation guide

view this post on Zulip John Moehrke (Oct 30 2018 at 21:37):

in my security case, the must-understand is policy based. It might not be a thing that is defined in the vocabulary. Such as DELAU (Delete after use) might be informatively put onto a resource or bundle, but someone else might want to stress that the data shall not be accepted (error code should be returned) if the recipient can't guarantee that they will delete after use. Not sure this is proper.. just an example that comes to mind where the vocabulary binding can't be universally made, nor can the vocabulary meaning be universally made.

view this post on Zulip Yunwei Wang (Oct 30 2018 at 21:40):

@Grahame Grieve Your example is the same as what I meant. But how a system state "my system doesn't use or allow or support the medication request status 'cancelled'". I don't think there's way to do that in CapabilityStatement.

view this post on Zulip Grahame Grieve (Oct 30 2018 at 21:42):

no there's not. You could propose a new extension for non-supported-valueset to vocab, I don't think this notion exists anywhere else

view this post on Zulip Lloyd McKenzie (Oct 30 2018 at 21:47):

For a required binding on code, if you constrain to a value set that excludes "cancelled", you're asserting you won't accept that code

view this post on Zulip Yunwei Wang (Oct 31 2018 at 02:18):

@Lloyd McKenzie For example, in Claim resource, Claim.status has required binding to value set fm-status. If I want to say my server does NOT support cancelled status, can I create a value set, my-fm-status, which exclude cancelled status and then change the required binding of Claim.status to my-fm-status? I think that violate conformance rules.

view this post on Zulip Grahame Grieve (Oct 31 2018 at 02:29):

you can change the binding to be more restrictive - we only use some of the codes. You can't include codes that are not valid

view this post on Zulip Robert McClure (Nov 09 2018 at 16:54):

@Grahame Grieve >non-supported-valueset content is exactly what V2 does with specifying that certain codes in a code set are not allowed in a particular implementation guide. I don't know of any FHIR approach that aligns with this but it does make sense if we use MIN to mean "must understand and support."

Do we all agree (I would) that minValueSet defines a value set with concepts the implementer "must understand and support"? I'd like to better understand how this extension should be used/

view this post on Zulip Grahame Grieve (Nov 09 2018 at 20:36):

I agree that

minValueSet defines a value set with concepts the implementer "must understand and support"

That's the definition...

view this post on Zulip Mohammad Jafari (Nov 15 2018 at 00:59):

@John Moehrke: late to this thread but this seems to be a matter of authorization policy and orthogonal to the actual underlying FHIR data structure. The XSPA 2.0 draft defines attributes for declaring supported obligations and refrains by a requester; as part of the authorization, a server can take these attributes into account in determining whether or not –or to what extent– it would share the data with that requester . I think the new vectors of trust RFC can also be leveraged for implementing this type of policies.


Last updated: Apr 12 2022 at 19:14 UTC