FHIR Chat · ValueSet.compose question · terminology

Stream: terminology

Topic: ValueSet.compose question


view this post on Zulip Yunwei Wang (Sep 19 2018 at 20:13):

VSD-3 states that "ValueSet.compose.include Cannot have both concept and filter". What about valueSet reference? If a valueSet has all three: concept, filter and valueset reference, should there be three include?

view this post on Zulip Rob Hausam (Sep 19 2018 at 22:13):

@Yunwei Wang I think that's a good point. Probably need a tracker to fix it. It doesn't make sense to leave the valueSet reference out of the rule and allow arbitrary combinations of it with the others.

view this post on Zulip Jim Steel (Sep 19 2018 at 22:54):

I think filter + valueSet makes sense

view this post on Zulip Jim Steel (Sep 19 2018 at 22:55):

I agree that valueSet + concept probably doesn't

view this post on Zulip Yunwei Wang (Sep 19 2018 at 22:56):

Tracker created: https://gforge.hl7.org/gf/project/fhir/tracker/?action=TrackerItemEdit&tracker_item_id=18089&start=0

view this post on Zulip Michael Lawley (Sep 19 2018 at 23:59):

I'm a little conflicted here. From a pure implementation logic perspective there's little reason to disallow any of the combinations; you're just taking an intersection of constraints expressed in different ways.
From a human authoring perspective however it seems strange/degenerate to write something like 'these explicit concepts intersected with this filter/ValueSet' but if the ValueSet definition is machine generated, perhaps based on a template and some input data, then not having these constraints is quite useful.

view this post on Zulip Rob Hausam (Sep 20 2018 at 12:41):

@Jim Steel One problem that I see with filter + valueSet is that we have vsd-2 which says "A value set with concepts or filters SHALL include a system". So, if that's true, then how would you interpret the combination of system + valueSet, and then would filter apply to only one of them (which one?) or somehow to the combination of the two? I don't think that was what was intended. I believe that probably the intent was that compose.include would contain either system (0..1) or concept (0..) or valueSet(0..), and that both filter and concept are only used with system. However, back to your point, I can see why it might make sense to use filter + valueSet, but if we agree we want to do that we'll have to revise at least the two (and maybe other?) invariants to make that work and do it consistently.

view this post on Zulip Robert McClure (Sep 21 2018 at 00:20):

@Jim Steel Agree with you. Filter + Valueset ref definitely makes sense, filter + concept no.
@Rob Hausam What we need is an invariant where include has both ref and filter, the filter must have a system in the value set AND that is the system in the include.

view this post on Zulip Jim Steel (Sep 21 2018 at 00:24):

I think continuing to require the system whenever a filter is used (in conjunction with a valueSet or otherwise), because more than constraining the matching concepts' code system, it constrains which filter is being used. For example, if you imported a valueSet that spanned 2 code systems A and B that both supported a filter named 'x', then a ValueSet filter might be ambiguous (e.g. in its type)

view this post on Zulip Grahame Grieve (Sep 21 2018 at 00:59):

filter only applies to system, and must have a system.

view this post on Zulip Grahame Grieve (Sep 21 2018 at 00:59):

"the filter must have a system in the value set "

I don't know that that means

view this post on Zulip Jim Steel (Sep 21 2018 at 00:59):

Is that only to avoid empty intersections?

view this post on Zulip Robert McClure (Sep 21 2018 at 13:55):

@Grahame Grieve What I was trying to say is that the referenced value set SHALL have the system identified in the include so that the intersection is not NULL.

view this post on Zulip Grahame Grieve (Sep 21 2018 at 22:20):

so what if the intersection is null?

view this post on Zulip Robert McClure (Sep 22 2018 at 00:54):

It will always be null if the system in the include is not in the ref value set, so why allow that??

view this post on Zulip Grahame Grieve (Sep 22 2018 at 02:27):

well, for several practical reasons. Let's say you have value set A, which says that it imports everything from value set B that is-a SCT clinical finding. And value set B is authored by someone else

view this post on Zulip Grahame Grieve (Sep 22 2018 at 02:27):

the current version of value set B includes some SCT clinical findings but also some local codes, and a few HL7 codes (nullFlavor code system). Your value set is only the SCT codes

view this post on Zulip Grahame Grieve (Sep 22 2018 at 02:28):

so the author of value set B updates it to no longer include any SCT codes...

view this post on Zulip Grahame Grieve (Sep 22 2018 at 02:28):

now, your value set is empty.

view this post on Zulip Grahame Grieve (Sep 22 2018 at 02:29):

I don't see why that's 'an error'. If it is, who's error is it? But why is any empty value set an error? I think that there's various ways of using value sets where the empty set is not an error, it just means that the set of concepts relevant for this particular action is empty

view this post on Zulip Grahame Grieve (Sep 22 2018 at 02:30):

eg. you might be using the value set is a criteria test in a decision support system

view this post on Zulip Jim Steel (Sep 23 2018 at 23:01):

Yeah, I'm inclined to agree with Grahame


Last updated: Apr 12 2022 at 19:14 UTC