FHIR Chat · Connectathon 23 (Sydney) · shorthand

Stream: shorthand

Topic: Connectathon 23 (Sydney)


view this post on Zulip 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

view this post on Zulip David Hay (Dec 05 2019 at 06:04):

I'm keen (and I have the T shirt)...

view this post on Zulip 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

view this post on Zulip Eric Haas (Jan 22 2020 at 17:41):

Is there a recording? ( I missed it :-()

view this post on Zulip David Hay (Jan 22 2020 at 18:54):

They are really aimed at first time attendees, so you didn't miss anything important...

view this post on Zulip Eric Haas (Jan 22 2020 at 20:22):

I've never gone as an attendee :-)

view this post on Zulip David Hay (Jan 22 2020 at 22:31):

So this will be your first? Great!

view this post on Zulip 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

view this post on Zulip 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.

view this post on Zulip David Hay (Jan 23 2020 at 20:23):

FYI: https://fhirblog.com/2020/01/24/connectathon-with-sushi/

view this post on Zulip Chris Moesel (Jan 24 2020 at 03:31):

Awesome, @David Hay! Glad to have you as an advocate and contributor!

view this post on Zulip David Hay (Jan 24 2020 at 17:54):

@Chris Moesel You're welcome - thanks for all your work!

view this post on Zulip 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)...

view this post on Zulip 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?

view this post on Zulip 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)?

view this post on Zulip David Hay (Jan 31 2020 at 16:27):

You're welcome!

How about having separate Example: and Instance: keywords ?

view this post on Zulip David Hay (Jan 31 2020 at 16:52):

snap! I replied too quickly . :) . - either approach works for me, though the first seems slightly clearer...

view this post on Zulip Jose Costa Teixeira (Jan 31 2020 at 19:55):

An example is an instance as well. I think option 2 is better.

view this post on Zulip Jose Costa Teixeira (Jan 31 2020 at 19:57):

(no need to have separate concepts)

view this post on Zulip Sarah Gaunt (Feb 01 2020 at 22:26):

Tutorial link: http://build.fhir.org/ig/HL7/fhir-shorthand/tutorial.html

view this post on Zulip 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.

view this post on Zulip Jose Costa Teixeira (Feb 02 2020 at 02:10):

What is the intended difference between Instance and Example?

view this post on Zulip David Hay (Feb 02 2020 at 04:25):

AFAIK the Example gets marked as example in the IG, whereas Instance does not...

view this post on Zulip 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>

view this post on Zulip 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>

view this post on Zulip 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)

view this post on Zulip 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"
        ]
    },

view this post on Zulip 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)

view this post on Zulip 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."

view this post on Zulip 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.

view this post on Zulip 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?

view this post on Zulip Jose Costa Teixeira (Feb 02 2020 at 06:02):

it's actually about this
pasted image

view this post on Zulip 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

view this post on Zulip 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.

view this post on Zulip 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.

view this post on Zulip 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?

view this post on Zulip Jose Costa Teixeira (Feb 02 2020 at 23:39):

That make me think - do you support IG resource groupings?

view this post on Zulip Mark Kramer (Feb 02 2020 at 23:39):

We don't, currently.

view this post on Zulip Jose Costa Teixeira (Feb 02 2020 at 23:41):

ok that explains it

view this post on Zulip 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.

view this post on Zulip 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>

view this post on Zulip Jose Costa Teixeira (Feb 02 2020 at 23:45):

these are rendered in the example tab and in the examples section.

view this post on Zulip 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

view this post on Zulip 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.

view this post on Zulip Jose Costa Teixeira (Feb 03 2020 at 01:11):

Based on the above, the exampleCanonical and exampleBoolean could be good keyord candidates, right?

view this post on Zulip 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)

view this post on Zulip Mark Kramer (Feb 04 2020 at 01:18):

https://docs.google.com/document/d/1VL0oLIzXlitYqAD0TYBjiU2-GI7hqtzfyLwsePo3bUw/edit#

view this post on Zulip 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