FHIR Chat · Slicing and Must-Support · conformance

Stream: conformance

Topic: Slicing and Must-Support


view this post on Zulip Chris Moesel (Oct 20 2020 at 13:45):

Some questions have come up recently regarding SUSHI/FSH, slicing, and Must-Support.

First, if an element is marked Must-Support, then is it assumed that any/all of its slices are Must-Support?

Second (and this depends on the answer to the first), we had assumed that slices need only specify those properties that differ from the element they slice. For example, if base-element is bound to FooValueSet, you don't need to repeat the binding; it's already implied. Would this apply to Must-Support flags too? Or do you repeat them in the slice even if the slice's base element is already marked Must-Support?

view this post on Zulip Chris Moesel (Oct 20 2020 at 13:49):

Third, if Must-Support is not inherited / implied on slices, then what does it mean for a base element to be Must-Support but for a slice of it not to be Must-Support?

view this post on Zulip David Pyke (Oct 20 2020 at 13:54):

My opinions:

view this post on Zulip David Pyke (Oct 20 2020 at 13:55):

  1. No, only the element, a slice would be a requirement on the element which would be a separate MS requirement

view this post on Zulip David Pyke (Oct 20 2020 at 13:55):

  1. You would need to mark the slice MS separately

view this post on Zulip David Pyke (Oct 20 2020 at 13:56):

  1. That the sliced requirement is not necessarily needed to be considered when validating the element content

view this post on Zulip Lloyd McKenzie (Oct 20 2020 at 15:09):

Technically, mustSupport would be inherited, though it's not clear that's a useful/desired behavior, nor does it reflect common practice. @Ron Shapiro, can we add this to our MnM agenda for this afternoon?

view this post on Zulip Chris Moesel (Oct 20 2020 at 15:59):

Thanks, @Lloyd McKenzie. If it's helpful, here is the shorthand discussion these questions arose from: https://chat.fhir.org/#narrow/stream/215610-shorthand/topic/slice.20definitions.20missing.20mustSupport.20constraints

view this post on Zulip Chris Moesel (Oct 21 2020 at 01:02):

@Lloyd McKenzie -- did this get discussed in MnM, and if so, anything interesting to report back?

view this post on Zulip Grahame Grieve (Oct 21 2020 at 01:15):

yes and @Jean Duteau kept the minutes

view this post on Zulip Rob Hausam (Oct 21 2020 at 03:00):

I see that there's an action item (for someone) to:

Update Guide to Designing Resources to clarify "How do I interpret 'Must Support' with respect to slicing?"

I don't see anything that indicates what the update is going to be, though. Presumably that's still to be determined?

view this post on Zulip Lloyd McKenzie (Oct 21 2020 at 04:57):

The new guidance is here: https://confluence.hl7.org/display/FHIR/Guide+to+Designing+Resources#GuidetoDesigningResources-HowdoIinterpret'MustSupport'withrespecttoslicing?

view this post on Zulip Yunwei Wang (Oct 21 2020 at 14:05):

Here is the correct link

view this post on Zulip Rob Hausam (Oct 22 2020 at 03:09):

Thanks, @Lloyd McKenzie (and others). I think this is good. But I think it also still leaves some questions about how the IG Publisher will (or is expected to) handle the rendering for this. For an element that is marked as mustSupport in the slicing base, will the publisher automatically propagate that and render the corresponding element in each slice instance also as mustSupport (even without that being explicitly declared in the slice definition)? Or must that still be done individually for any element in a slice definition if it's desired for the publisher to render that element as mustSupport? And, if there is some automatic propagation of mustSupport in the rendering of the slice instances, could that behavior be overridden (if there was ever some reason or desire to do so) by explicitly declaring that element in the slice definition as mustSupport = false?

view this post on Zulip Lloyd McKenzie (Oct 22 2020 at 05:03):

I'd expect it to be shown in the snapshot view, but not in the differential view

view this post on Zulip Lloyd McKenzie (Oct 22 2020 at 05:04):

And no, it wouldn't be able to be overridden. It'd be the same as if a fixed value were asserted for a child element in the slicing base and a different fixed value were asserted for the same child in a slice - that would be an error.

view this post on Zulip Grahame Grieve (Oct 22 2020 at 05:04):

I expect it to propagate. I think it's an error if the slice tries to remove it

view this post on Zulip Jean Duteau (Oct 22 2020 at 05:48):

We explicitly discussed this and came to the agreement that you can't "turn it off". If you don't intend for all slices to have elementX as Must Support, then you shouldn't set it to Must Support in the slicing base.

view this post on Zulip Chris Moesel (Nov 04 2020 at 20:28):

SUSHI 1.0.0 Beta 4 now reflects the intended behavior of Must-Support in regard to slices. Thanks again for taking the time to discuss and define this!


Last updated: Apr 12 2022 at 19:14 UTC