設定 Pub/Sub 通知

您可以使用 Pub/Sub,在 Cloud Healthcare API 資料儲存庫中發生臨床事件時接收通知。這些通知會在下列情況發出:

發生上述任一事件時,Cloud Healthcare API 會將訊息發布至名為「主題」的 Pub/Sub 資源。應用程式只要訂閱該主題,就能收到訊息。

對於 DICOM 和 HL7v2,這些訊息不含任何個人資訊。僅包含下列項目:

  • 產生訊息的專案
  • 郵件 ID
  • 在 HL7v2 訊息中,HL7v2 訊息類型

FHIR Pub/Sub 訊息可能包含個人資訊。 詳情請參閱「包含 FHIR 資源資料的 FHIR 通知」。

如要瞭解如何搭配使用 Pub/Sub 通知與 Cloud Healthcare API,請參閱「Pub/Sub 通知」一文。

事前準備

查看 Pub/Sub 配額

設定 Pub/Sub 通知前,請先熟悉 Pub/Sub 配額和限制。如要瞭解如何查看配額、要求更多配額,以及配額用盡時會發生什麼情況,請參閱「處理配額」。

啟用 Pub/Sub API

如要啟用 Pub/Sub API,請按下列按鈕:

啟用 API

設定 Pub/Sub 權限

如要允許從 Cloud Healthcare API 將訊息發布至 Pub/Sub,您必須將 pubsub.publisher 角色新增至專案的 Cloud Healthcare 服務代理人 服務帳戶。 如要瞭解如何新增必要角色,請參閱「DICOM、FHIR 和 HL7v2 儲存庫的 Pub/Sub 權限」。

建立 Pub/Sub 主題

如要接收資料儲存庫的通知,請為每個資料儲存庫設定 Pub/Sub 主題。個別資料儲存庫可以有自己的 Pub/Sub 主題,多個資料儲存庫也可以共用相同主題。您可以使用 Google Cloud 控制台或 Google Cloud CLI 建立主題。

建立主題或在資料儲存庫的設定中參照主題時,您必須使用下列格式的完整 URI:

projects/PROJECT_ID/topics/TOPIC_NAME

其中 PROJECT_ID 是您的 Google Cloud 專案 ID,TOPIC_NAME 則是主題的名稱。

如要建立主題,請完成下列步驟:

控制台

  1. 前往 Google Cloud 控制台的 Pub/Sub「主題」頁面。

    前往 Pub/Sub 主題頁面

  2. 按一下 [Create Topic] (建立主題)

  3. 使用 URI 輸入主題名稱:

    projects/PROJECT_ID/topics/TOPIC_NAME

    其中 PROJECT_ID 是您的 Google Cloud 專案 ID。

  4. 點選「建立」

gcloud

如要建立主題,請執行 gcloud pubsub topics create 指令:

gcloud pubsub topics create projects/PROJECT_ID/topics/TOPIC_NAME

如果要求成功,指令會傳回下列輸出內容:

Created topic [projects/PROJECT_ID/topics/TOPIC_NAME].

建立 Pub/Sub 訂閱項目

如要接收發布至某項主題的訊息,您必須建立 Pub/Sub 訂閱項目。每個 Pub/Sub 主題都應至少有一個 Pub/Sub 訂閱項目。

訂閱項目會將主題連結至訂閱者應用程式,以便接收及處理發布至主題的訊息。

您可以將訂閱設定為使用推送模型提取模型

您可以設定訂閱項目,根據訊息屬性篩選訊息;如需操作說明,請參閱篩選訂閱項目中的訊息

如要建立訂閱項目,請完成下列步驟:

控制台

  1. 前往 Google Cloud 控制台的 Pub/Sub「主題」頁面。

    前往 Pub/Sub 主題頁面

  2. 按一下專案的主題。

  3. 按一下 [Create Subscription] (建立訂閱)

  4. 輸入訂閱名稱:

    projects/PROJECT_ID/subscriptions/SUBSCRIPTION_NAME

    將「傳送類型」保留為「提取」

  5. 按一下 [Create] (建立)。

gcloud

如要建立主題,請執行 gcloud pubsub subscriptions create 指令:

gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAME

如果要求成功,指令會傳回下列輸出內容:

Created subscription [projects/PROJECT_ID/subscriptions/TOPIC_NAME].

查看儲存的 DICOM 執行個體通知

如要瞭解如何搭配使用 Pub/Sub 通知與 DICOM 資料,請參閱 DICOM Pub/Sub 通知

查看 HL7v2 通知

Hl7V2Store 資源包含 notificationConfigs 陣列,您可以在其中指定 Pub/Sub 主題和篩選條件。

在 HL7v2 儲存庫中擷取或建立 HL7v2 訊息時,Cloud Healthcare API 會將訊息發布至 Pub/Sub 主題,這些主題的篩選器與 HL7v2 訊息相符。

如要查看已擷取 HL7v2 訊息的通知,請完成下列步驟:

  1. 建立編輯 HL7v2 儲存庫,並設定 Pub/Sub 主題。
  2. 將必要的 pubsub.publisher 角色新增至專案的服務帳戶
  3. 將 HL7v2 訊息擷取到 HL7v2 儲存區。這會觸發 Cloud Healthcare API,將訊息發布至設定的 Pub/Sub 主題。
  4. 如要查看發布至 Pub/Sub 主題的訊息,請執行 gcloud pubsub subscriptions pull 指令:

    gcloud pubsub subscriptions pull --auto-ack projects/PROJECT_ID/subscriptions/PUBSUB_SUBSCRIPTION

    指令會傳回下列有關擷取 HL7v2 訊息的輸出內容:

    ┌--------------------------------------------------------------------------------------------------------------------|-----------------|---------------┐
    |                                                                 DATA                                               |    MESSAGE_ID   |   ATTRIBUTES  |
    ├--------------------------------------------------------------------------------------------------------------------|-----------------|---------------|
    | projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID/messages/HL7V2_MESSAGE_ID | 123456789012345 | msgType=TYPE  |
    └--------------------------------------------------------------------------------------------------------------------|-----------------|---------------┘

Cloud Healthcare API 和 Pub/Sub 訊息儲存政策

如要確保 Cloud Healthcare API 資料和 Pub/Sub 訊息中的相關聯資料位於同一區域,您必須設定 Pub/Sub 訊息儲存政策

您必須在資料存放區設定的 Pub/Sub 主題上明確設定訊息儲存政策,確保資料保留在同一區域。舉例來說,如果 Cloud Healthcare API 資料集和 FHIR 儲存庫位於 us-central1,訊息儲存政策就只能允許 us-central1 地區。

如要設定郵件儲存政策,請參閱「設定郵件儲存政策」。

排解 Pub/Sub 訊息遺失問題

如果通知無法發布至 Pub/Sub,系統會將錯誤記錄到 Cloud Logging。詳情請參閱「查看 Cloud Logging 中的錯誤記錄檔」。

如果錯誤產生率超過上限,系統就不會將超過上限的錯誤提交至 Cloud Logging。

後續步驟

瞭解如何在下列服務中設定 Pub/Sub 主題: