FHIR Infrastructure Workgroup �ad-hoc call�Subscriptions & Messaging
March 4, 2020
Questions about Subscription Notifications
Q1. What is the content of a Subscription Notification? [closed]�
Q2. How to convey metadata Subscription id, event counts, etc? [open]
Prev discussion (Dev Days Amsterdam; Zulip):� Bundle with .entry[0] == SubscriptionStatus (new Resource)�
Q3. How does this relate to FHIR Messaging (if at all)? [open]�
Q1. What is the content for a Subscription Notification?
Core requirements� 6 data elements about the notification� Documented today in Bundle.meta extensions (yuck)
Ability to convey event-related resource IDs and content with the notification�
Future requirement� Ability to convey additional content (e.g., Graph of stuff)
Q2. How to express this content in FHIR?
Recap of possibilities…
For concrete examples, see�https://github.com/argonautproject/subscriptions/tree/master/packaging-examples
Q2. How to express this content in FHIR?
Recommendation 1�Bundle with .entry[0] == SubscriptionStatus��Rationale
Q3. How does this relate to FHIR Messaging (if at all)?
Recommendation 2�Messaging is "just another channel" for Subscription Notifications� I.e., rest-hooks, web sockets, email, messaging, etc.�
Recommendation 3�For the messaging channel, we should wrap ‘subscription-notification’ bundles
Process-level concern: Conway's Law (each WG with its own sphere)
�
WG | Resources |
FHIRI | Topic |
CDS | EventDefinition, TriggerDefinition� |
FHIRI | SubscriptionStatus and notifications |
InM | MessageHeader, MessageDefinition |
} What stuff can you listen for?
} How do we notify when stuff happens?
Questions? Discussion!
Feedback on Recommendations
Recommendation 1�Bundle with .entry[0] == SubscriptionStatus
Recommendation 2�Messaging is "just another channel" for Subscription Notifications� I.e., rest-hooks, web sockets, email, messaging, etc.
Recommendation 3�For the messaging channel, we should wrap ‘subscription-notification’ bundles
Topics for future calls? Issues include...
How to package a Subscription notification
Notifications come with some basic context
Which Subscription? Which SubscriptionTopic? How many events? Errors?
… and some core content
What resources changed? How did they change?
Packaging Options (GH examples of each)
Changes needed with MessageHeader
Need to add ~5 properties (subscription, topic, subscriptionStatus, eventsSinceSubscriptionStart, eventsInBundle)*
*Request for adding notificationType: handshake|heartbeat|event-notification
Need to relax prohibition on Bundle.entry.request, Bundle.entry.response
May need to relax the constraint that "Any resources referenced in the focus element are always included in the bundle" (if we use "focus" to point to the triggering subscription + topic)
Pros / Cons -- please add here :)
Bare Bundles | .entry[0] == MessageHeader | .entry[0] == SubscriptionStatus |
|
|
|
Message Header Future
Is that where we want to be?
Bundle includes type, which dictates what entry[0] is
MH includes event, which dictates what fields are and what is intention
Relationship between Subscriptions & Messaging?
Nothing needs to be said
Messaging as a Channel
MessageHeader Augmentation
Recommendation