FHIR Chat · ValueSet/$expand and its parameters · terminology

Stream: terminology

Topic: ValueSet/$expand and its parameters


view this post on Zulip Gabriel Kleinoscheg (Jan 20 2021 at 06:44):

@Grahame Grieve we had an interesting discussion at the CAT26 about hierarchical display of ValueSets. Currently, we are working on the proposals for improvements regarding certain extensions and the $expand operation on ValueSets.

Regarding the $expand operation we talked about the parameters excludeNested and excludeNotForUI. While I still remember the use case for excludeNotForUI, I forgot or do not find it in my notes what the use case for excludeNested was and how it differs from excludeNotForUI.

I would be grateful if you could tell me again, when excludeNested would be best to use. Thank you!

view this post on Zulip Gabriel Kleinoscheg (Jan 20 2021 at 09:11):

@Nikola Tanjga

view this post on Zulip Grahame Grieve (Jan 20 2021 at 20:45):

it's a subtle difference, and maybe not important.

  • excludeNotForUI - omit any concepts from the expansion that are solely present for UI navigation purposes (typically, these are not selectable)

  • excludeNested - just return a flat list.

These are different if there is a hierarchy where the nodes that have children are selectable and/or not just included for UI navigation purposes

view this post on Zulip Gabriel Kleinoscheg (Jan 21 2021 at 07:55):

What would then be the outcome if I exclude those concepts which are solely for UI navigation assuming that some of these concepts have children and I have excludeNested = false? I.e. I want to preserve the hierarchy but without the concepts for UI (which are parents of some other concepts).

view this post on Zulip Grahame Grieve (Jan 21 2021 at 08:33):

you might not be able to do that

view this post on Zulip Gabriel Kleinoscheg (Jan 21 2021 at 09:28):

Alright - thank you @Grahame Grieve

view this post on Zulip Joshua Wiedekopf (Jul 06 2021 at 11:56):

Gabriel Kleinoscheg said:

What would then be the outcome if I exclude those concepts which are solely for UI navigation assuming that some of these concepts have children and I have excludeNested = false? I.e. I want to preserve the hierarchy but without the concepts for UI (which are parents of some other concepts).

Hi, we in Germany have been wondering about the exludeNested parameter. The way we understand it, excludeNested=false would maintain the hierarchy of the underlying CodeSystem(-s) when expanding an appropriate ValueSet. That would be fantastic for feasibility applications where inclusion and exclusion parameters are defined using some domain-specific ValueSets (e.g. all diabetes-related ICD-10-GM codes).

If this parameter is supposed to do what we think it does, we could take that expansion data structure and build UI for selecting groups of codes or specific codes.

Problem is that we are not entirely clear whether exludeNested does that, since the description on https://www.hl7.org/fhir/valueset-operation-expand.html not entirely clear on the use case. Looking at the above thread, I seem to not be the only one wondering about the intention of that parameter. The terminology server we are looking at currently (Ontoserver) does not seem to consider the parameter either. Could someone please clarify if we understand it correctly? Thanks!

view this post on Zulip Robert McClure (Jul 06 2021 at 19:23):

@Peter Jordan @Rob Hausam @Lloyd McKenzie

view this post on Zulip Robert McClure (Jul 06 2021 at 19:24):

@Michael Lawley

view this post on Zulip Lloyd McKenzie (Jul 06 2021 at 19:41):

I wasn't involved with the definition of that parameter. @Grahame Grieve?

view this post on Zulip Peter Jordan (Jul 06 2021 at 22:34):

Terminz doesn't support that parameter either and I also find the description in the specification to be confusing. The only practical uses that I can see are if the ValueSet definition has a compose.include.valueSet element that refers to an extensional ValueSet with nested contains elements, or the later type of ValueSet is passed as a parameter to an $expand operation.

view this post on Zulip Michael Lawley (Jul 08 2021 at 03:30):

Our interpretation of excludeNested is that, when true, it requires the expansion to be flat (i.e., ValueSet.expansion.contains.contains must always be empty. When it is false, it allows nesting in the expansion, but does not require it.
Now, Ontoserver never does nesting in the expansion, so we effectively ignore excludeNested.

view this post on Zulip Michael Lawley (Jul 08 2021 at 03:37):

Regarding excludeNotForUI, Ontoserver does not support this, but if/when it does it would rely on the http://hl7.org/fhir/concept-properties#notSelectable property for its behaviour.
So far, we've not had any customers asking for support for this parameter.

view this post on Zulip Joshua Wiedekopf (Jul 09 2021 at 08:52):

OK, thanks for the replies! That clears things up. For the use case we have in mind, a combination of ValueSet/$expand and ConceptMap/$closure probably seems like the next-best-thing to get this hierarchy back for a subset of concepts.


Last updated: Apr 12 2022 at 19:14 UTC