Stream: subscriptions
Topic: Subscriptions need that logical id!
Brian Reinhold (Aug 07 2019 at 12:07):
Here is an example of a websockets subscription 'ping' with only the 'ping':
(The subscription is for all Observations from a patient)
Got signaled by FHIR server websocket of an upload!
Ping number 0. Perform a GET request to URL http://hapi.ehealthinnovation.org:8080/hapi-fhir-jpaserver/fhir/
Perform a GET request to URL http://hapi.ehealthinnovation.org:8080/hapi-fhir-jpaserver/fhir/Observation?_profile=http://hl7.org/fhir/uv/phd/StructureDefinition/PhdNumericObservation&_lastUpdated=gt2019-08-07T07:23:40
Page 1 Number of resources on this page = 4 search done from self link = http://hapi.ehealthinnovation.org:8080/hapi-fhir-jpaserver/fhir/Observation?_lastUpdated=gt2019-08-07T07%3A23%3A40&_profile=http%3A%2F%2Fhl7.org%2Ffhir%2Fuv%2Fphd%2FStructureDefinition%2FPhdNumericObservation
Ping number 0. Have 4 Observation resources in list
Page 1 Number of resources on this page = 1 search done from self link = http://hapi.ehealthinnovation.org:8080/hapi-fhir-jpaserver/fhir/Patient?_id=4
Patient:
Name: Sisansarah Piggy
Birthdate: Tue Nov 10 00:00:00 EST 1992
Health Care Organizational Identifier: urn:oid:1.2.3.4.5.6.7.8.10
Patient identifier: sisansarahId
Identifier code: MR
Identifier code system: http://terminology.hl7.org/CodeSystem/v2-0203
Got signaled by FHIR server websocket of an upload!
Ping number 1. Perform a GET request to URL http://hapi.ehealthinnovation.org:8080/hapi-fhir-jpaserver/fhir/
Perform a GET request to URL http://hapi.ehealthinnovation.org:8080/hapi-fhir-jpaserver/fhir/Observation?_profile=http://hl7.org/fhir/uv/phd/StructureDefinition/PhdNumericObservation&_lastUpdated=gt2019-08-07T07:23:40
Page 1 Number of resources on this page = 1 search done from self link = http://hapi.ehealthinnovation.org:8080/hapi-fhir-jpaserver/fhir/Device?_id=22
Device:
Device Type: null
Specialization: Pulse Oximeter version 1
Manufacturer Name: Nonin_Medical_Inc.
Model Number: Model 3230
Serial Number: 501900083
Firmware version: r2.1
Software version: r1.5 9.7
Hardware version: r1.0
Continua version: 6.0
Certified device types:
specialization: Pulse Oximeter
transport: 4
Device is regulated
Time Synchronization: No time synchronization
Time capabilities: real time clock supported
Time capabilities: setting the time supported
Observation:
Measurement type: Battery level
Time stamp: 2019-08-07T07:24:03.487-04:00
Value: 80%
Observation:
Measurement type: Blood 0₂
Time stamp: 2019-08-07T07:24:15-04:00
Value: 97.0%
Additional Info: Stable mean
Observation:
Measurement type: Pulse rate
Time stamp: 2019-08-07T07:24:15-04:00
Value: 45.0{beat}/min
Additional Info: Stable mean
Observation:
Measurement type: Pulse Amplitude Quality
Time stamp: 2019-08-07T07:24:15-04:00
Value: 1.79%
Additional Info: Stable mean
Page 1 Number of resources on this page = 4 search done from self link = http://hapi.ehealthinnovation.org:8080/hapi-fhir-jpaserver/fhir/Observation?_lastUpdated=gt2019-08-07T07%3A23%3A40&_profile=http%3A%2F%2Fhl7.org%2Ffhir%2Fuv%2Fphd%2FStructureDefinition%2FPhdNumericObservation
Ping number 1. Have 4 Observation resources in list
Got signaled by FHIR server websocket of an upload!
Ping number 2. Perform a GET request to URL http://hapi.ehealthinnovation.org:8080/hapi-fhir-jpaserver/fhir/
Perform a GET request to URL http://hapi.ehealthinnovation.org:8080/hapi-fhir-jpaserver/fhir/Observation?_profile=http://hl7.org/fhir/uv/phd/StructureDefinition/PhdNumericObservation&_lastUpdated=gt2019-08-07T07:23:41
Page 1 Number of resources on this page = 4 search done from self link = http://hapi.ehealthinnovation.org:8080/hapi-fhir-jpaserver/fhir/Observation?_lastUpdated=gt2019-08-07T07%3A23%3A41&_profile=http%3A%2F%2Fhl7.org%2Ffhir%2Fuv%2Fphd%2FStructureDefinition%2FPhdNumericObservation
Ping number 2. Have 4 Observation resources in list
Got signaled by FHIR server websocket of an upload!
Ping number 3. Perform a GET request to URL http://hapi.ehealthinnovation.org:8080/hapi-fhir-jpaserver/fhir/
Perform a GET request to URL http://hapi.ehealthinnovation.org:8080/hapi-fhir-jpaserver/fhir/Observation?_profile=http://hl7.org/fhir/uv/phd/StructureDefinition/PhdNumericObservation&_lastUpdated=gt2019-08-07T07:23:41
Page 1 Number of resources on this page = 4 search done from self link = http://hapi.ehealthinnovation.org:8080/hapi-fhir-jpaserver/fhir/Observation?_lastUpdated=gt2019-08-07T07%3A23%3A41&_profile=http%3A%2F%2Fhl7.org%2Ffhir%2Fuv%2Fphd%2FStructureDefinition%2FPhdNumericObservation
Ping number 3. Have 4 Observation resources in list
The problem here is that four observations were uploaded and I get a ping for each one. However, I do not know which one. So I have to do a GET request for all observations for this patient that arrived at a time later than time T. Each time I get four Observations which I have to check to see if I have already decoded it, Of course, I decoded all four from the first ping, the other four pings just wasted bandwidth.
If I have gotten the logical id of the resource that caused the ping, I could have done a single GET for that one resource; no Bundle; no Bundle parsing, and no duplicate checking.
Gino Canessa (Aug 07 2019 at 14:14):
Hi Brian, we've been doing work with this on the Argonaut Subscriptions project. In particular, the ability to set the payload type for all channels (empty
, id-only
, or full-resource
). In your case you would likely want id-only
, which would give notifications with the ID of the resource in question.
Last updated: Apr 12 2022 at 19:14 UTC