Stream: implementers
Topic: 201701 Resource Subscription Track
Corey Spears (Oct 28 2016 at 16:22):
This is the January 2017 Connectathon Resource Subscription Track stream for discussion.
Corey Spears (Oct 28 2016 at 16:37):
We are looking for additional potential participants for this track. We have a couple of candidates, but more are certainly encouraged. All suggestions to enhance and improving the track are welcome!
Grahame Grieve (Oct 28 2016 at 20:41):
sign me up - my server should support the full functionality
Corey Spears (Nov 04 2016 at 03:45):
Great to hear. I have you listed as a participant.
Corey Spears (Nov 04 2016 at 03:47):
BTW, The scope of the track has increased a little bit to include not only the Subscription resource as a mechanism to get updates, but also the history interaction using polling. This experience will hopefully inform us in a way that we may be able to introduce some guidance on the two methods and what to consider when choosing between the two.
Abbie Watson (Dec 09 2016 at 02:20):
I might be available to work on this. The Meteor on FHIR stack has a rock-solid pub/sub architecture, which we've been running FHIR resources on for the past year to our client webapps. There's a Collection.observeChanges()
function that can be used to trigger external REST calls for push notifications. And I've got funding to work on FHIR this upcoming quarter, and will be in the Healthcare Interoperability class in grad program next quarter. So... time, funding, knowledge, technology stack....
Bill Harty (Dec 28 2016 at 19:23):
Hi Corey / everyone. Bill Harty from Premier Inc here. I'm sending some people down to participate in the CDS-Hooks track, but I also have an interest in the subscription resource and might come down myself (if I can get approval). This is pretty much last minute, so I could probably only jump in as a simple client and help test. However, I'm wondering about the overall participation. I see that Grahame's server will be available - do you know if anyone else on the server side will be participating? like HSPC? HAPI? The server tabs on the spreadsheets are empty - just want to make sure that there is decent participation to make the trip worthwhile. Thanks for any info/feedback
James Agnew (Dec 28 2016 at 23:17):
Hi @Bill Harty - HAPI will definitely be participating in this track.
Corey Spears (Jan 03 2017 at 01:02):
Yes, both Grahame's and HAPI's server will be there supporting this. I think HAPI only supports the web socket channel. Grahame's server supports an additional number of others. We have reached out the HSPC about participation, but I have not heard anything. We have a number of people interested in playing the client as well. Note that there are two parts to this track. There is the subscription Resource and the history polling method. Hope to see you there.
John Calvin Young (Jan 03 2017 at 16:51):
I'm planning to be there playing the client role for this track. Managed to miss the deadline on registration (I'm tacking this on to adjoining meetings in SA), so I guess I'll be registering onsite Saturday morning. We've been spiking out a Subscription implementation and have run into some challenges coordinating the pub/sub architecture with servers implemented on legacy datastores, so looking forward to testing and discussion.
Simone Heckmann (Jan 03 2017 at 18:45):
@James Agnew As a Part of this Track I am working on enriching the returned Resources, so they can be translated into V2 messages. Do you plan to implement the _include interaction for the Connectathon?
Corey Spears (Jan 06 2017 at 17:02):
Looking forward to seeing you there John.
Bill Harty (Jan 10 2017 at 15:01):
Hi all, looks like I will not be able to attend this time around. However, I'd love to contribute/participate in any future work/sprints/connectathons relating to the Subscription resource so definitely let me know. Thanks
James Agnew (Jan 14 2017 at 16:16):
Websocket URLs for the HAPI server:
http://fhirtest.uhn.ca/websocket/dstu2
http://fhirtest.uhn.ca/websocket/dstu3
Grahame Grieve (Jan 15 2017 at 01:21):
ok, found a problem in the spec: it's inconsistent about the value of Subscription.criteria
Grahame Grieve (Jan 15 2017 at 01:22):
all the examples have
"criteria" : "{resource}?{params}"
Grahame Grieve (Jan 15 2017 at 01:22):
but the narrative has
Grahame Grieve (Jan 15 2017 at 01:22):
"criteria" : "/{resource}?{params}"
Grahame Grieve (Jan 15 2017 at 01:27):
the first is correct, and my server now enforces that.
Grahame Grieve (Jan 15 2017 at 01:28):
spec will be updated accordingly.
Grahame Grieve (Jan 15 2017 at 01:29):
question: should I implement 'twitter' as an extension for Subscription.channel.type?
Simone Heckmann (Jan 15 2017 at 02:36):
Do we have a quarter with FHIR-I to discuss the issues we encountered with subscripion during the connectathon?
Grahame Grieve (Jan 15 2017 at 03:10):
what issues did we discover?
Simone Heckmann (Jan 15 2017 at 10:18):
We were thinking about whether it makes sense to be able do differentiate between trigger and expected payload in the rest hook.
With the WEB hook, there's the question of what subsequent query needs to be run to discover deleted resources.
And I think there's been a few more minor questions discussed at the table. Will sum it up later today.
Simone Heckmann (Jan 15 2017 at 10:19):
...and yes. I have a jet lag :D
Grahame Grieve (Jan 15 2017 at 11:04):
payload? is this veering into cds-hooks area?
Grahame Grieve (Jan 15 2017 at 11:04):
deleted resources are a problem...
Simone Heckmann (Jan 15 2017 at 14:41):
We were talking about allowing _include to define what additional information the client needs, e.g. Subscribe to changes for Observation but if triggered, return the Order along with it...
Also we had a discussion on how to subscribe to changes of a CarePlan, and receive a notification if any of the resources referenced by this CarePlan changes. Specifically: Would a subscription like /CarePlan?_include=CarePlan:*&... be allowed and would it be triggered on changes of any of the included resource or only on the focal resource?
In the first case, the include would determine the content of the dataset posted to the rest hook, in the second case it would include additional resources to the subscription.
Simone Heckmann (Jan 15 2017 at 16:30):
Also: Bilateral synchronizytion - how to prevent echos (Provenance...?)
Simone Heckmann (Jan 15 2017 at 16:37):
Just adding for completeness: should Subscription Rest hook point at Endpoint resource?
Grahame Grieve (Jan 15 2017 at 17:05):
all of the servers treat includes the same: they are not part of the search set, they are thrown in as you send the content. In fact, that's inevitable given how they work. So we could not trigger based on _include.
Grahame Grieve (Jan 15 2017 at 17:05):
I'm not sure how far that packaging desire would go....
Grahame Grieve (Jan 15 2017 at 17:06):
don't follow the bilateral issue
Grahame Grieve (Jan 15 2017 at 17:06):
and... why EndPoint?
Simone Heckmann (Jan 15 2017 at 17:07):
because @Brian Postlethwaite brought it up :)
Grahame Grieve (Jan 15 2017 at 17:09):
quelle surprise. We've not seen the benefit of the extra stuff it has, and it would only work for rest hook, so it wouldn't remove anything
Simone Heckmann (Jan 15 2017 at 17:14):
About bilateral synchronization: if server A subscribes to changes on Observations on server B but also adds Observations to Server B, these changes (echos) need to be excluded. I think this is technically possible with something like .../Observation?_has=Provenance:target:author and somehow a negation mixed in...
Grahame Grieve (Jan 15 2017 at 17:16):
it should be the business of server A to figure out it's echos, surely
Brian Postlethwaite (Jan 15 2017 at 17:56):
Agree with the echos, should be able to know that it was your content...
Brian Postlethwaite (Jan 15 2017 at 18:21):
The other Item that isn't published as changes over the subscritption is the Meta operation changes.
Grahame Grieve (Jan 15 2017 at 18:22):
yes. that's deliberate
Brian Postlethwaite (Jan 15 2017 at 18:24):
Adding/removing security tags or confidentiality was the issue I potentially had (even though should have that correct when you first create them)
Grahame Grieve (Jan 15 2017 at 18:25):
so you can just edit the resource. The server allowing the $meta result is specifically special
Corey Spears (Jan 15 2017 at 19:45):
The FHIR Connectathon 14 Resource Subscription Track Report has been uploaded and can be found here: http://wiki.hl7.org/images/4/43/201701_FHIRConnecathon-ResourceSubscription_Report.pptx
Corey Spears (Jan 15 2017 at 19:54):
This is a good conversation. Please continue. There were a number of things that were brought up during the course of our testing that may or may not be a good idea (e.g. there may have been deliberate reasons why something was not included or there may a better way to address the need). I will work on pulling the use cases and reasoning together (in part garnered from this stream) to help further the discussion. @John Calvin Young has already provided a good start with one of the requests.
John Calvin Young (Jan 15 2017 at 21:03):
@Simone Heckmann I've been worried about bilateral synchronization too. Will be interested to see what others come up with--no brilliant ideas on my part either today.
Simone Heckmann (Jan 15 2017 at 21:18):
The reason why I initially preferred the history interaction over the subscription was robustness: With the subscription, there's no way we can make sure, that we didn't miss a ping or a post due to network issues. I think it was stated at some time, that the server is not expected to queue the subscription results. Is that true for the rest hook as well?
Grahame Grieve (Jan 15 2017 at 21:32):
yes
Grahame Grieve (Jan 15 2017 at 21:32):
at least for now
Grahame Grieve (Jan 15 2017 at 21:33):
one of the things in Corey's summary was about filtered history. We deliberately do not support that because of the things falling out of the history when values change
Grahame Grieve (Jan 15 2017 at 21:33):
so you can only filter on immutable things
Simone Heckmann (Jan 15 2017 at 22:24):
So, at this point, the only *reliable* way to sync is: get the "history of everything" (~~Our whole universe was in a hot dense state.... ~~ ) and then post-process on the client side.
Grahame Grieve (Jan 15 2017 at 22:40):
yes, get teh whole history for a type
Grahame Grieve (Jan 15 2017 at 22:40):
typs is immutable and cannot change
shivnath shelake (Dec 21 2017 at 09:48):
Hi,
I am looking for Subscription resource we are looking for Rest-hook option..
Also I created Subscription resource on HAPI FHIR server with specified criteria after that I created the resource with subscription criteria details but not received any notification is there any configuration required do on FHIR server for notification part.
On HAPI server how I can register for Rest-hook option..
Also I am working on .net code.
help is greatly appreciated...
Lloyd McKenzie (Dec 21 2017 at 16:01):
@James Agnew ?
James Agnew (Dec 21 2017 at 16:19):
Last updated: Apr 12 2022 at 19:14 UTC