Stream: tooling
Topic: Presentation for OperationDefinition.overload
Rob Reynolds (Mar 11 2022 at 15:46):
BACKGROUND:
I've noticed a particular stumbling block for users of an Implementation Guide is when a the operation can be invoked as an instance or a type.
I, personally, get a lot of questions during Connectathons (and other places) about this.
For example, the $evaluate-measure operation can be invoked either on the type
along with the applicable IN parameter, or as an instance
without an IN parameter: https://build.fhir.org/operation-measure-evaluate-measure.html.
There has been some explanation added that attempts to communicate this info:
URL: [base]/Measure/$evaluate-measure
URL: [base]/Measure/[id]/$evaluate-measure
along with:
image.png
Although a step in the right direction, I don't think it's sufficient (as I still get a lot of questions).
Rob Reynolds (Mar 11 2022 at 15:48):
PROPOSED APPROACH:
In an attempt to communicate this more clearly, I searched for an answer in Zulip, created a Tracker (https://jira.hl7.org/browse/FHIR-34112), researched the topic some more, discussed it in the CQI call, and eventually landed on OperationDefinition.overload
.
Example (condensed for brevity):
<overload>
<parameterName value="periodStart"/>
<parameterName value="periodEnd"/>
<parameterName value="measureId"/>
<comment value="These are the parameters used to invoke the operation on a type, i.e., URL: [base]/Measure/$evaluate-measure"/>
</overload>
<overload>
<parameterName value="periodStart"/>
<parameterName value="periodEnd"/>
<comment value="These are the parameters used to invoke the operation on an instance, i.e., URL: [base]/Measure/[id]/$evaluate-measure"/>
</overload>
Rob Reynolds (Mar 11 2022 at 15:49):
ISSUE:
I think the proposed approach would not only be a great solution for this particular issue, but for many similar issues I would also like to address (but won't list for brevity).
The problem is, OperationDefinition.overload
doesn't seem to be rendered by the latest version of the publisher.
I may be wrong and I'm just doing something wrong. If that's the case, please help me understand what I should be doing.
Otherwise, I'm interested in getting a presentation for OperationDefinition.overload
implemented.
The first step seems to be to determine what's possible.
I have sketched a couple thoughts and wonder if folks could comment on the viability and suggest alternatives.
FWIW, I think I prefer the former, but it might be too busy?
Of course, I've used the "instance" vs "type" as the example, but it should be a general solution.
Lloyd McKenzie (Mar 11 2022 at 16:51):
Can you submit a Git issue against the IG Publisher and Kindling for us to change how we render OperationDefinition?
Lloyd McKenzie (Mar 11 2022 at 16:51):
You should also submit Jira issues against those Operations that ought to be using this new feature but aren't.
Grahame Grieve (Mar 14 2022 at 20:28):
we should definitely render overload, but I'm not sure it's a workable answer for the actual problem, since there's often a long list of possible parameter combinations.
Eric Haas (Mar 22 2022 at 15:16):
Is morel like an operation invariant. Which we currently document in the notes.
Grahame Grieve (Mar 30 2022 at 02:02):
is there an example for me to work on the rendering?
Last updated: Apr 12 2022 at 19:14 UTC