FHIR Chat · Receiving External Trigger on FHIR resource change · implementers

Stream: implementers

Topic: Receiving External Trigger on FHIR resource change


view this post on Zulip Sanjay Chadha (Oct 14 2017 at 18:37):

We have an external application (server) which requires to perform a procedure based on a newly added or modified FHIR resource.
How do servers outside the FHIR server be notified of such a change. We found http://hl7.org/fhir/trigger-type which seems close to our needs. Details on how to set and receive trigger seems to be missing.
Any pointers are appreciated.

view this post on Zulip Lloyd McKenzie (Oct 14 2017 at 20:33):

That code system is used by the TriggerDefinition data type which is currently used by EventDefinition, PlanDefinition and ServiceDefinition

view this post on Zulip Lloyd McKenzie (Oct 14 2017 at 20:34):

EventDefinition may be used by subscriptions, message definitions and potentially other things

view this post on Zulip Lloyd McKenzie (Oct 14 2017 at 20:35):

Explore those and see if your needs are met, if not, provide more details about what you're looking for. This area of the spec is fairly immature, so it wouldn't be terribly surprising if we were missing something.

view this post on Zulip Christiaan Knaap (Oct 16 2017 at 09:15):

Maybe a bit hidden in Lloyds answer is that Subscription is the primary way to address this. Or simply poll frequently for changes with the history interaction on system or resourcetype level.

view this post on Zulip Abbie Watson (Oct 16 2017 at 19:35):

In the Clinical Meteor release track of the Meteor.js framework, we use the matb33/meteor-collection-hooks package to kick off subsequent pipelines. The syntax looks like Patients.after.insert(function(userId, doc){...}) and `Patients.before.update(function(userId, doc){...}) and so forth. We'll write to the HIPAA log, kick off processing scripts, and do denormalization in those functions.

We also support the pub/sub data distribution protocol (DDP) which supports subscriptions over websockets.

view this post on Zulip Sanjay Chadha (Oct 18 2017 at 16:51):

Thanks for your comments. After research starting from Lloyd's reply this is what I found:
CDS Hooks is a solution which addresses our requirements - There is a good quorum of experts backing this concept - much effort has gone into CDS hooks and its seems a promising direction:

CDS Hooks Wiki Page: http://wiki.hl7.org/index.php?title=201701_CDS_Hooks
CDS Hooks page: http://cds-hooks.org
CDS Git Hub: https://github.com/cds-hooks
CDS Proposed Hooks: https://github.com/cds-hooks/docs/wiki/Proposed-Hooks

Here is what we would like to add (although I can add, I do not have enough knowledge to do this right), hence we need hand holding:

Request to add to Proposed Hooks page (https://github.com/cds-hooks/docs/wiki/Proposed-Hooks)

procedure-request-create
Purpose: This hook informs an external CDS service that the clinician has created a procedure request. The CDS service schedules procedures to performed based on the created procedure request.
Contextual data: Required Patient, procedure request being created.
{
"name": "context",
"resource": procedurerequest/123
}

procedure-request-modify (this should include delete)
Purpose: This hook informs an external CDS service that the clinician has modified a procedure request. The CDS service modifies the scheduled procedures based on the modified procedure request.
Contextual data: Required Patient, procedure request being created.
{
"name": "context",
"resource": procedurerequest/123;
}

Abigail - I was not able to locate - matb33/meteor-collection-hooks. Is Meteor's implementation based on CDS Hooks?

Thank you for your replies.


Last updated: Apr 12 2022 at 19:14 UTC