このページでは、Cloud Healthcare API データストアで医療イベントが発生したときに Pub/Sub を使用して通知を受け取る方法について説明します。Pub/Sub メッセージを設定して使用する方法については、Pub/Sub 通知の構成をご覧ください。
概要
次のいずれかの医療イベントが発生したときに、Pub/Sub を使用して通知を受け取ることができます。
- DICOM インスタンスは、
dicomStores.dicomWeb.studies.storeInstances
メソッドを使用して DICOM ストアに保存します。 - DICOM インスタンスを DICOM ストアにインポートするには、
dicomStores.import
メソッドを使用します。 - FHIR リソースが FHIR ストア内で作成、パッチ適用、更新、削除された。ただし、FHIR リソースが Cloud Storage からインポートされたときには、通知は送信されません。
- HL7v2 メッセージが HL7v2 ストアで作成または取り込まれます。
各イベントに関する情報は、対応するデータストアの Pub/Sub トピックにメッセージの形式で追加されます。
十分な権限がある任意のプロジェクトの Pub/Sub トピックに対して、メッセージを公開できます。Pub/Sub トピックでメッセージを受信すると、メッセージは、トピックの任意の数のサブスクライバーに転送されます。
DICOM 通知
DICOM データでの Pub/Sub 通知の使用については、DICOM Pub/Sub 通知をご覧ください。
FHIR 通知
FHIR データでの Pub/Sub 通知の使用については、FHIR Pub/Sub 通知をご覧ください。
HL7v2 通知
次の図は、HL7v2 メッセージの取り込み時または作成時に発生する通知のフローを示しています。
- Cloud Healthcare API では、医療システムから HL7v2 メッセージを取り込みます。
- このメッセージは、HL7v2 ストアに保存されます。
- HL7v2 ストアは、Pub/Sub メッセージを作成して、HL7v2 メッセージと一致するフィルタを持つストアの Pub/Sub トピックに送信します。
- Pub/Sub で Pub/Sub メッセージがトピックのサブスクリプションに転送されます。
- サブスクライバーは、サブスクリプションから Pub/Sub メッセージの形式で通知を受け取ります。並列処理を強化するために、各サブスクリプションに 1 つ以上のサブスクライバーを含めることが可能です。
通知形式
Pub/Sub トピックに送信される通知は、次の 2 つの部分で構成されます。
- 属性: イベントを記述するキー値のペアのセット これらの値を使用すると、サブスクリプションからのメッセージをフィルタして、クライアントが受信するイベントをフィルタできます。
- データ: 関連する FHIR リソース、DICOM インスタンス、HL7v2 メッセージの識別子を含む文字列
DICOM インスタンスのデータ
DICOM インスタンスが DICOM ストアに保存されたときには、次の ID が常に 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 ストアに取り込まれると、次の ID が常に Pub/Sub メッセージの data
フィールドに含まれます。
projects/PROJECT_ID/locations/us-central1/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID/messages/HL7V2_MESSAGE_ID
次の Key-Value ペアのセットは、常に Pub/Sub メッセージの attributes
フィールドに含まれます。
属性名 | 指定できる値 | 例 | 説明 |
---|---|---|---|
msgType |
HL7v2 メッセージのタイプ。 | ADT |
作成または取り込まれた HL7v2 メッセージのタイプ。 |
次のステップ
- Pub/Sub のドキュメントを読む。
- Pub/Sub の詳細については、Pub/Sub とはをご覧ください。