This page provides an overview of using Pub/Sub to receive notifications when clinical events occur in a Cloud Healthcare API data store. To learn how to set up and use Pub/Sub messages, see Configuring Pub/Sub notifications.
Overview
You can receive notifications using Pub/Sub when any of the following clinical events occur:
- You store a DICOM instance in a DICOM store using the
dicomStores.dicomWeb.studies.storeInstances
method. - You import a DICOM instance into a DICOM store using the
dicomStores.import
method. - A FHIR resource is created, patched, updated, or deleted in a FHIR store. However, notifications are not sent when a FHIR resource is imported from Cloud Storage.
- An HL7v2 message is ingested or created in an HL7v2 store.
Information about each event is added to the corresponding data store's Pub/Sub topic in the form of a message.
You can publish messages to any Pub/Sub topic in any project for which you have sufficient permissions. After the Pub/Sub topic receives the message, the message will be forwarded to any number of subscribers to the topic.
DICOM notifications
For information on using Pub/Sub notifications with DICOM data, see DICOM Pub/Sub notifications.
FHIR notifications
For information on using Pub/Sub notifications with FHIR data, see FHIR Pub/Sub notifications.
HL7v2 notifications
The following diagram shows the flow of notifications that occur when an HL7v2 message is ingested or created:
- The Cloud Healthcare API ingests an HL7v2 message from a care system.
- The message is stored in an HL7v2 store.
- The HL7v2 store creates and sends a Pub/Sub message to the store's Pub/Sub topics that have a filter that matches the HL7v2 message.
- Pub/Sub forwards the Pub/Sub message to the topics' subscriptions.
- The subscribers receive a notification, in the form of a Pub/Sub message, from their subscription. Each subscription can have one or more subscribers for increased parallelism.
Notification format
Notifications sent to a Pub/Sub topic consist of two parts:
- Attributes: A set of key:value pairs describing the event. These values can be used to filter which events a client receives by filtering messages from a subscription.
- Data: A string that contains an identifier for the relevant FHIR resource, DICOM instance, or HL7v2 message.
DICOM instance data
When a DICOM instance is stored in a DICOM store, the following identifier
is always included in the data
field of the Pub/Sub
message:
projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID/series/SERIES_UID/instances/INSTANCE_UID
Notifications for a stored DICOM instance do not contain
any attribute
values.
HL7v2 message data and attributes
When an HL7v2 message is created or ingested into an HL7v2 store, the following
identifier is always included in the data
field of the Pub/Sub
message:
projects/PROJECT_ID/locations/us-central1/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID/messages/HL7V2_MESSAGE_ID
The following set of key:value pairs is always included in the Pub/Sub
message's attributes
field:
Attribute name | Possible values | Example | Description |
---|---|---|---|
msgType |
Any HL7v2 message type. | ADT |
The type of HL7v2 message that was created or ingested. |
What's next
- Read the Pub/Sub documentation.
- For an in-depth explanation of Pub/Sub, see What is Cloud Pub/Sub?