Stream: shorthand
Topic: Connectathon 23 (Sydney)
Mark Kramer (Nov 26 2019 at 20:48):
I have proposed a Connectathon track where participants can bring their existing or in-progress implementation guide and try out FHIR Shorthand. See https://confluence.hl7.org/display/FHIR/2020-02+FHIR+Shorthand+Track
David Hay (Dec 05 2019 at 06:04):
I'm keen (and I have the T shirt)...
Mark Kramer (Jan 16 2020 at 17:39):
Announcing the FHIR Shorthand Connectathon 23 Orientation meeting will be held (this is a single meeting ... but occurs on different days in different time zones):
- Tuesday January 21, 5-6 pm Eastern US time (GMT-5)
- Wednesday, January 22, 9-10 am, Sydney Daylight Time (GMT+11)
JOIN: https://meet.mitre.org/mkramer/0SM9YVQV
+1 (781) 271-2020,,9785794# (US) English (United States)
+1 (703) 983-2020,,9785794# (US) English (United States)
Conference ID: 9785794
Eric Haas (Jan 22 2020 at 17:41):
Is there a recording? ( I missed it :-()
David Hay (Jan 22 2020 at 18:54):
They are really aimed at first time attendees, so you didn't miss anything important...
Eric Haas (Jan 22 2020 at 20:22):
I've never gone as an attendee :-)
David Hay (Jan 22 2020 at 22:31):
So this will be your first? Great!
Mark Kramer (Jan 23 2020 at 18:36):
No recording, but slides are here: https://confluence.hl7.org/download/attachments/66933684/Shorthand%20Connectathon%2023%20-%20HL7%20Template.pptx?version=1&modificationDate=1579444519889&api=v2
Mark Kramer (Jan 23 2020 at 18:37):
The key thing is to BYO profiling task, and I'll try to help you rewrite it into Shorthand.
David Hay (Jan 23 2020 at 20:23):
FYI: https://fhirblog.com/2020/01/24/connectathon-with-sushi/
Chris Moesel (Jan 24 2020 at 03:31):
Awesome, @David Hay! Glad to have you as an advocate and contributor!
David Hay (Jan 24 2020 at 17:54):
@Chris Moesel You're welcome - thanks for all your work!
David Hay (Jan 31 2020 at 00:40):
and another: https://fhirblog.com/2020/01/31/creating-examples/ (Actually wrote it to help some others looking at these files)...
Chris Moesel (Jan 31 2020 at 13:28):
That's great, @David Hay! I'm glad you're finding FHIR Shorthand and SUSHI helpful! Thanks for being such an advocate.
One thing we recently realized (oops) is that we currently treat every Instance:
as an example (i.e., when we generate the ImplementationGuide, we flag it as an example). But some people may (and will) use Instance:
to create real definitional resources (like a SearchParameter
). Those, obviously, should not be marked as examples. So... any opinions on the best way to make the distinction?
Chris Moesel (Jan 31 2020 at 13:31):
My ideas are to actually create a separate Example:
keyword, like this:
Example: PractitionerBob ExampleOf: MyPractitionerProfile // ... Instance: NPISearchParam InstanceOf: SearchParameter //...
Or keep Instance:
across the board, but use some other keyword to indicate an example. Actually, it could be as simple as:
Instance: PractitionerBob ExampleOf: MyPractitionerProfile // ... Instance: NPISearchParam InstanceOf: SearchParameter //...
That keeps Instance:
and you use InstanceOf:
or ExampleOf:
depending on what it is.
I'm sure there are other approaches too. Wondering what jumps out at you (or anyone else reading)?
David Hay (Jan 31 2020 at 16:27):
You're welcome!
How about having separate Example: and Instance: keywords ?
David Hay (Jan 31 2020 at 16:52):
snap! I replied too quickly . :) . - either approach works for me, though the first seems slightly clearer...
Jose Costa Teixeira (Jan 31 2020 at 19:55):
An example is an instance as well. I think option 2 is better.
Jose Costa Teixeira (Jan 31 2020 at 19:57):
(no need to have separate concepts)
Sarah Gaunt (Feb 01 2020 at 22:26):
Tutorial link: http://build.fhir.org/ig/HL7/fhir-shorthand/tutorial.html
Mark Kramer (Feb 02 2020 at 00:55):
@Chris Moesel I think an ExampleOf: keyword would be a good approach to the problem of distinguishing examples from other instances. @Jose Costa Teixeira has convinced me.
Jose Costa Teixeira (Feb 02 2020 at 02:10):
What is the intended difference between Instance and Example?
David Hay (Feb 02 2020 at 04:25):
AFAIK the Example gets marked as example in the IG, whereas Instance does not...
Jose Costa Teixeira (Feb 02 2020 at 04:37):
This is an IG mentioning an "instance"
<resource> <reference> <reference value="Communication/be.comm2.2"/> </reference> <fhirVersion value="4.0.1"/> <name value="Communication example 3"/> <description value="Long message - part 2"/> <groupingId value="examples"/> </resource>
Jose Costa Teixeira (Feb 02 2020 at 04:38):
And an example:
<resource> <reference> <reference value="Communication/be.comm2.2"/> </reference> <fhirVersion value="4.0.1"/> <name value="Communication example 3"/> <description value="Long message - part 2"/> <exampleCanonical value="https://www.ehealth.fgov.be/standards/fhir/StructureDefinition/be-communication"/> <groupingId value="examples"/> </resource>
Jose Costa Teixeira (Feb 02 2020 at 04:39):
nothing differs except us saying "this instance is actually an example of something". (the exampleCanonical entry)
Jose Costa Teixeira (Feb 02 2020 at 04:41):
the instance itself can declare a profile in the meta
{ "resourceType": "Communication", "id": "be.comm2.2", "meta": { "profile": [ "https://www.ehealth.fgov.be/standards/fhir/StructureDefinition/be-communication" ] },
Jose Costa Teixeira (Feb 02 2020 at 04:42):
(but I haven't tested if that is relevant for the IG to render it as an example)
Jose Costa Teixeira (Feb 02 2020 at 04:45):
This gets more interesting: Suppose I have an "Prescription IG" (medication profiles) which depends on the Core IG (which contains the patient profile).
In my prescription IG I define a medRequest and I make an instance example of that MedRequest and an instance of Patient. They are both instances, but the Patient profile is defined elsewhere, so I cannot make it an "example."
Jose Costa Teixeira (Feb 02 2020 at 04:46):
Therefore, I would suggest that we just create instances, and the optional "ExampleOf" determines how to handle it in the IG.
Sarah Gaunt (Feb 02 2020 at 05:57):
Why can't you make the Patient instance an example because the Patient profile is defined elsewhere? I would consider it to be an example of that patient profile. To me the difference between instances and examples are when you have an instance of a definitional resource like a PlanDefinition vs an example of a PlanDefinition. A Patient instance is always an example... Or am I missing the point?
Jose Costa Teixeira (Feb 02 2020 at 06:02):
it's actually about this
pasted image
Jose Costa Teixeira (Feb 02 2020 at 06:03):
I can define examples and they will be listed in the examples section.
But in the case of Patient I have no expectations that it will show in the Examples tab of the Patient page, because the Patient profile is defined elsewhere
Chris Moesel (Feb 02 2020 at 23:08):
nothing differs except us saying "this instance is actually an example of something". (the exampleCanonical entry)
Well, that's the only difference when you list it in the IG resource, but I think that difference plays out in a few ways in the IG. If it is an example, it will be listed in the examples section; and if it uses exampleCanonical
(rather than exampleBoolean
), then it will be listed in the Examples tab of the profile. If it's not an example (but is rather something like an instance of a SearchParameter, CapabilityStatement, etc), then it will be listed as a definitional resource in the IG. So that's the real reason to have FSH indicate the difference -- so SUSHI can list it correctly in the IG JSON, and then (as a consequence) the publisher can put it in the right section of the IG.
Chris Moesel (Feb 02 2020 at 23:10):
I can define examples and they will be listed in the examples section.
But in the case of Patient I have no expectations that it will show in the Examples tab of the Patient page, because the Patient profile is defined elsewhere
Right. Furthermore, we learned (the hard way) that if you use exampleCanonical
and list a canonical not in the IG (even if it is the intended canonical), the IG Publisher considers it an error. So if it is an example of something outside the IG (even a FHIR base resource), you must use exampleBoolean
instead of exampleCanonical
. We try to take care of that for you in SUSHI.
Jose Costa Teixeira (Feb 02 2020 at 23:38):
Well, that's the only difference when you list it in the IG resource, but I think that difference plays out in a few ways in the IG. If it is an example, it will be listed in the examples section; and if it uses exampleCanonical (rather than exampleBoolean), then it will be listed in the Examples tab of the profile. If it's not an example (but is rather something like an instance of a SearchParameter, CapabilityStatement, etc), then it will be listed as a definitional resource in the IG.
"definitional resource" you mean conformance resource?
Jose Costa Teixeira (Feb 02 2020 at 23:39):
That make me think - do you support IG resource groupings?
Mark Kramer (Feb 02 2020 at 23:39):
We don't, currently.
Jose Costa Teixeira (Feb 02 2020 at 23:41):
ok that explains it
Jose Costa Teixeira (Feb 02 2020 at 23:42):
the resources are displayed where&how the template tells it to.
The IG can also support groupings that tell where something gets displayed - in the examples or somewhere else.
Jose Costa Teixeira (Feb 02 2020 at 23:43):
here's an example
<resource> <reference> <reference value="Communication/be.comm2.1"/> </reference> <fhirVersion value="4.0.1"/> <name value="Communication example 2"/> <description value="Long message - part 1"/> <exampleCanonical value="https://www.ehealth.fgov.be/standards/fhir/StructureDefinition/be-communication"/> <groupingId value="examples"/> </resource> <resource> <reference> <reference value="Communication/be.comm2.2"/> </reference> <fhirVersion value="4.0.1"/> <name value="Communication example 3"/> <description value="Long message - part 2"/> <exampleCanonical value="https://www.ehealth.fgov.be/standards/fhir/StructureDefinition/be-communication"/> <groupingId value="examples"/> </resource>
Jose Costa Teixeira (Feb 02 2020 at 23:45):
these are rendered in the example tab and in the examples section.
Jose Costa Teixeira (Feb 02 2020 at 23:47):
I don't think the design is bad, i'm just tryong to see the rationale behind having an instance and example, where I think the only thing that matters is the "exampleCanonical / exampleBoolean" thing. Whether a ConceptMap is an example or a conformance resource, that is not something we should try to hardcode in the language
Chris Moesel (Feb 03 2020 at 00:09):
Hmmm... If we don't provide a syntax in the language to signal an example, then I think we need to figure out a nice user-friendly way for users to signal that for the IG at least. One way or another, there needs to be something to tell SUSHI whether or not to set example[x]
in the IG JSON. Open to suggestions.
Jose Costa Teixeira (Feb 03 2020 at 01:11):
Based on the above, the exampleCanonical and exampleBoolean could be good keyord candidates, right?
Bob Milius (Feb 04 2020 at 01:13):
Where can I find the summary notes of the FSH track? (The ones presented at the end of the connectathon)
Mark Kramer (Feb 04 2020 at 01:18):
https://docs.google.com/document/d/1VL0oLIzXlitYqAD0TYBjiU2-GI7hqtzfyLwsePo3bUw/edit#
Mark Kramer (Feb 04 2020 at 01:33):
I also added outcomes to a more findable page: https://confluence.hl7.org/display/FHIR/2020-02+FHIR+Shorthand+Track
Last updated: Apr 12 2022 at 19:14 UTC