FHIR Chat · renaming extensible+max binding · argonaut

Stream: argonaut

Topic: renaming extensible+max binding


view this post on Zulip Eric Haas (May 07 2019 at 15:22):

we think the name "extensible+max binding" for several value sets is unhelpful and would like to rename the concept to reflect its purpose to "required with text only" In essence we have a binding strength of extensible which permits text only to be present and add a max binding extension to the binding strength definition to limit the code set to only the codes in the extensible binding. This provides implementers with an out for 'fixed' bindings when to appropriate code is absent but a concept exist typically as text. seeking feedback here if this name is more useful or doesn't make a difference. use the :+1: or :-1:

view this post on Zulip Lloyd McKenzie (May 07 2019 at 17:30):

Preventing people from sending local codes is a bad idea. It's fine to add a constraint that text must be present if you can't use one of the existing codes, but it's a really bad idea to keep people from sending the codes they do have - that interferes with interoperability, it doesn't help it. (As a rule, you should always send all codes you know, regardless of what the recipient might be looking for.)

view this post on Zulip Eric Haas (May 07 2019 at 17:55):

we are not discussing its merits or existence in this poll

view this post on Zulip Eric Haas (May 07 2019 at 17:55):

just the name

view this post on Zulip Eric Haas (May 07 2019 at 17:57):

so you down vote it that you prefer the name 'extensible+max binding' to 'required with text'

view this post on Zulip Josh Mandel (May 07 2019 at 18:05):

This prohibition makes no sense to me either :)

view this post on Zulip Lloyd McKenzie (May 07 2019 at 18:11):

extensible + max binding is not equivalent to 'required with text'

view this post on Zulip Lloyd McKenzie (May 07 2019 at 18:11):

If you're not within the max binding, I don't think you're allowed to have text.

view this post on Zulip Eric Haas (May 07 2019 at 18:11):

yes it is and we have discussed this at length in prior chats, and I prefer not to rehash it here

view this post on Zulip Lloyd McKenzie (May 07 2019 at 18:17):

Can you provide a reference? Because the definition for elementdefinition-maxvalueset says "defines a required binding" - and required binding does not allow text only

view this post on Zulip Eric Haas (May 07 2019 at 18:18):

stream:argonaut max binding

view this post on Zulip Lloyd McKenzie (May 07 2019 at 18:31):

Can't find that with a search - do you have a link?

view this post on Zulip Jenni Syed (May 07 2019 at 18:41):

Is it this one? https://chat.fhir.org/#narrow/stream/179175-argonaut/topic/Required.20CodeableConcepts

view this post on Zulip Jenni Syed (May 07 2019 at 18:41):

I think we've discussed quite a bit

view this post on Zulip Jenni Syed (May 07 2019 at 18:41):

so that may only be one of a few

view this post on Zulip Jenni Syed (May 07 2019 at 18:42):

That also looks like it starts half way through to me...

view this post on Zulip Grahame Grieve (May 07 2019 at 18:49):

"required with text only"

Makes me think of something quite different to

a binding strength of extensible which permits text only to be present and add a max binding extension to the binding strength definition to limit the code set to only the codes in the extensible binding

view this post on Zulip Lloyd McKenzie (May 07 2019 at 18:49):

That thread seems to be about what's desired, but not about what's supported by what we have now. We do have the ability to change the definition of maxvalueset, but as defined now, it definitely doesn't allow text without a code from the binding.

view this post on Zulip Brett Marquard (May 07 2019 at 18:52):

'required, text-only allowed if code unavailable'

view this post on Zulip Grahame Grieve (May 07 2019 at 19:30):

too long :slight_smile:

view this post on Zulip Brett Marquard (May 07 2019 at 19:50):

haha, I had a feeling...

view this post on Zulip Grahame Grieve (May 07 2019 at 19:52):

required code or text

view this post on Zulip Lloyd McKenzie (May 07 2019 at 23:00):

Happy with that as a name, but not how it's being defined.

view this post on Zulip Robert McClure (May 20 2019 at 01:06):

@Lloyd McKenzie then we need to make this clearer because I believe most of us understand that the max-binding part is focused on the max set of "defined codes" and is not meant to prohibit text if none of the codes in the max binding are fit for purpose.

view this post on Zulip Lloyd McKenzie (May 20 2019 at 01:15):

The extension could be re-defined to behave that way, though that would be odd - in that the 'max' binding couldn't be as tight as the 'regular' binding.

view this post on Zulip Robert McClure (May 23 2019 at 15:25):

Folks - Can someone confirm for me how extensible + Max binding is to operate? Seems @Lloyd McKenzie and @Grahame Grieve are not in agreement but I'd really like to know for that binding if text can be sent if no code exists in the max set that scopes the idea in the text. Lloyd does indeed have a good point that he sees Max binding as essentially restricting what can be sent to ONLY allow codes within the published max code system content. Is that how MAX is supposed to operate or not?

view this post on Zulip Grahame Grieve (Jun 10 2019 at 21:17):

hmm. I'd like to bring this back to life. We need an answer on this

view this post on Zulip Brett Marquard (Jun 12 2019 at 11:00):

Did anyone object to 'required code or text'?

view this post on Zulip Lloyd McKenzie (Jun 12 2019 at 14:02):

I don't really understand what the intention here is. Also, the issue isn't just the name but how the extension is defined right now. (And given where else it's used, we don't necessarily want to redefine the extension, it may be necessary to use a new extension.)

The max extension creates an overall maximum binding that implementers must adhere to (text by itself is not an option). It is used, for example, for language codes where the overall maximum is the IETF code lists that's pretty much unlimited (because it's algorithmicly defined). Implementers are however restricted to that list. They can't send just text or their own local codes. The regular binding is to a much more limited set of codes that makes for a reasonable drop-down list. Essentially we're saying that "if you want to extend your dropdown list, you must pick codes from IETF and nothing else".

That's not the behavior Argonaut wants. Therefore, you can't use the extension. What I think you want to say is "Pick from this list of codes if you can. If not, you must send text." What I'm not clear on is whether you're allowed to send local codes in addition to text. (Personally, I think prohibiting local/non-standard codes is a bad idea as it prevents the re-use of the interface where sending alternate codes would be beneficial.) In either case, you could enforce what you want with an invariant on the CodeableConcept. Something like "(coding in 'your valueset canonical URL here').exists()) or text.exists()"

view this post on Zulip Eric Haas (Jun 12 2019 at 14:10):

This has never been an issue for argonaut implementer and only discussed here among

view this post on Zulip Eric Haas (Jun 12 2019 at 14:12):

The FHIR cognoscenti

view this post on Zulip Eric Haas (Jun 12 2019 at 14:12):

We have more pressing issues

view this post on Zulip Lloyd McKenzie (Jun 12 2019 at 14:13):

I agree that the name of things may not matter much. However, if the constraints you're declaring aren't doing what you want them to, that's presumably a problem.


Last updated: Apr 12 2022 at 19:14 UTC