本页面简要介绍了在 Cloud Healthcare API 数据存储区中发生临床事件如何使用 Pub/Sub 接收通知。如需了解如何设置和使用 Pub/Sub 消息,请参阅配置 Pub/Sub 通知。
概述
发生以下任一临床事件时,您可以使用 Pub/Sub 接收通知:
- 您可以使用
dicomStores.dicomWeb.studies.storeInstances
方法将 DICOM 实例存储在 DICOM 存储区中。 - 您使用
dicomStores.import
方法将 DICOM 实例导入 DICOM 存储区。 - FHIR 资源会在 FHIR 存储区中创建、修补、更新或删除。但是,当从 Cloud Storage 导入 FHIR 资源时,系统不会发送通知。
- HL7v2 消息会被提取或在 HL7v2 存储区中创建。
每个事件的相关信息以消息的形式添加到相应数据存储区的 Pub/Sub 主题中。
您可以向您具有足够权限的任何项目中的任何 Pub/Sub 主题发布消息。Pub/Sub 主题收到消息后,系统会将该消息转发给该主题的任意数量的订阅者。
DICOM 通知
如需了解如何使用 Pub/Sub 通知和 DICOM 数据,请参阅 DICOM Pub/Sub 通知。
FHIR 通知
如需了解如何将 Pub/Sub 通知与 FHIR 数据结合使用,请参阅 FHIR Pub/Sub 通知。
HL7v2 通知
下图显示了提取或创建 HL7v2 消息时的通知流程:
- Cloud Healthcare API 会从医疗保健系统中提取 HL7v2 消息。
- 该消息存储在 HL7v2 存储区中。
- HL7v2 存储区会创建一条 Pub/Sub 消息,然后发布到该存储区中过滤条件与 HL7v2 消息匹配的 Pub/Sub 主题。
- Pub/Sub 将 Pub/Sub 消息转发给主题的订阅。
- 订阅者会收到来自订阅的通知,其采用 Pub/Sub 消息形式。每个订阅可以有一个或多个订阅者(提高并行性)。
通知格式
发送到 Pub/Sub 主题的通知由以下两部分组成:
- 属性:描述事件的一组键值对。 这些值可用于过滤来自订阅的消息,以过滤客户端接收的事件。
- 数据:一个字符串,包含相关 FHIR 资源、DICOM 实例或 HL7v2 消息的标识符。
DICOM 实例数据
当 DICOM 实例存储在 DICOM 存储区时,以下标识符始终包含在 Pub/Sub 消息的 data
字段中:
projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID/series/SERIES_UID/instances/INSTANCE_UID
存储的 DICOM 实例的通知不包含任何 attribute
值。
HL7v2 消息数据和属性
当系统创建 HL7v2 消息或将其提取到 HL7v2 存储区时,以下标识符始终包含在 Pub/Sub 消息的 data
字段中:
projects/PROJECT_ID/locations/us-central1/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID/messages/HL7V2_MESSAGE_ID
以下一组键值对始终包含在 Pub/Sub 消息的 attributes
字段中:
属性名称 | 可能的值 | 示例 | 说明 |
---|---|---|---|
msgType |
任何 HL7v2 消息类型。 | ADT |
创建或提取的 HL7v2 消息类型。 |
后续步骤
- 阅读 Pub/Sub 文档。
- 如需深入了解 Pub/Sub,请参阅什么是 Cloud Pub/Sub?