Auf dieser Seite wird erläutert, wie Sie mit Pub/Sub Benachrichtigungen erhalten, wenn ein klinisches Ereignis in einem FHIR-Speicher auftritt.
Sie können Pub/Sub-Benachrichtigungen für mehrere Anwendungsfälle verwenden, z. B. um eine nachgelagerte Verarbeitung oder Analyse neuer Daten auszulösen. So kann ein Modell für maschinelles Lernen beispielsweise Benachrichtigungen erhalten, wenn neue Daten für das Training verfügbar sind, und Statistiken oder Vorhersagen generieren, um die Patientenversorgung zu verbessern.
Übersicht
Sie können Pub/Sub-Benachrichtigungen erhalten, wenn eine FHIR-Ressource in einem FHIR-Store erstellt, aktualisiert, gepatcht oder gelöscht wird. Die Cloud Healthcare API sendet keine Benachrichtigungen, wenn eine FHIR-Ressource aus Cloud Storage importiert wird.
Wenn Sie Benachrichtigungen erhalten möchten, müssen Sie ein Pub/Sub-Thema und ein Abo erstellen und dann den FHIR-Speicher so konfigurieren, dass Benachrichtigungen an das Thema gesendet werden.
Das folgende Diagramm zeigt, wie Pub/Sub-Benachrichtigungen erstellt und gesendet werden, wenn eine FHIR-Ressource mit der Methode fhir.create
in einem FHIR-Speicher erstellt wird. Die Schritte sind dieselben, wenn eine FHIR-Ressource aktualisiert, gepatcht oder gelöscht wird.
Abbildung 1. Pub/Sub-Benachrichtigungen für Änderungen in einem FHIR-Speicher verwenden
Abbildung 1 zeigt die folgenden Schritte:
- Ein Aufrufer stellt eine
fhirStores.fhir.create
-Anfrage, um eine FHIR-Ressource zu erstellen. - Der FHIR-Speicher empfängt die Anfrage, erstellt eine Pub/Sub-Nachricht und sendet sie an das im FHIR-Speicher konfigurierte Pub/Sub-Thema.
- Pub/Sub leitet die Nachricht an die mit dem Thema verknüpften Abos weiter.
- Die Abonnenten erhalten von ihrem Abo eine Benachrichtigung in Form einer Pub/Sub-Nachricht. Jedes Abo kann einen oder mehrere Abonnenten haben, um die Parallelität zu erhöhen.
Benachrichtigungskonfiguration
Sie können Pub/Sub-Benachrichtigungen und ihr Verhalten in einem FhirNotificationConfig
-Objekt in einem FHIR-Speicher konfigurieren. Für jeden FHIR-Speicher kann eine FhirNotificationConfig
konfiguriert werden.
In der folgenden Tabelle sind die Felder des Objekts FhirNotificationConfig
beschrieben.
Feld | Beschreibung | Beispiel |
---|---|---|
pubsubTopic |
Das Pub/Sub-Thema, das an den FHIR-Speicher angehängt werden soll. Benachrichtigungen werden an das angegebene Thema gesendet. | projects/my-project/topics/my-topic |
sendFullResource |
Gibt an, ob der vollständige Inhalt einer erstellten, aktualisierten oder gepatchten FHIR-Ressource in einer Benachrichtigung enthalten sein soll. Dieses Feld hat keine Auswirkungen auf Benachrichtigungen, die gesendet werden, wenn FHIR-Ressourcen gelöscht werden. Wenn Sie den vollständigen Inhalt einer gelöschten Ressource einbeziehen möchten, legen Sie sendPreviousResourceOnDelete auf true fest. |
true |
sendPreviousResourceOnDelete |
Gibt an, ob der vollständige Inhalt einer gelöschten FHIR-Ressource in einer Benachrichtigung enthalten sein soll. Dieses Feld hat keine Auswirkungen auf Benachrichtigungen, die gesendet werden, wenn FHIR-Ressourcen erstellt, aktualisiert oder gepatcht werden. | true |
Format und Inhalt der Benachrichtigung
Jede Pub/Sub-Benachrichtigung enthält ein message
-Objekt mit Informationen zum klinischen Ereignis. Das message
-Objekt sieht in etwa so aus:
{ "message": { "attributes": { "action": "ACTION", "lastUpdatedTime": "RFC_1123_FORMAT_DATETIME", "payloadType": "PAYLOAD_TYPE", "resourceType": "FHIR_RESOURCE_TYPE", "storeName": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID", "versionId": "VERSION_ID" }, "data": "BASE_64_ENCODED_DATA", "messageId": "MESSAGE_ID", "publishTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ" } }
Informationen zu zusätzlichen Feldern in jeder Pub/Sub-Nachricht finden Sie unter ReceivedMessage
und PubsubMessage
.
In der folgenden Tabelle werden die einzelnen Felder des attributes
-Objekts beschrieben:
Attribut | Beschreibung | Beispiel |
---|---|---|
action |
Die Aktion, die für eine FHIR-Ressource ausgeführt wurde. Zulässige Werte:
|
CreateResource |
resourceType |
Der Typ der FHIR-Ressource, die geändert wurde. Mögliche Werte sind alle unterstützten FHIR-Ressourcentypen in der Cloud Healthcare API. | Patient |
payloadType |
Der Nutzlasttyp der Nachricht, entweder NameOnly oder FullResource . |
FullResource |
storeName |
Der vollständige Ressourcenname des FHIR-Speichers, in dem die Aktion stattgefunden hat. | projects/my-project/locations/us/datasets/my-dataset/fhirStores/my-fhir-store |
lastUpdatedTime |
Ein Zeitstempel der letzten Änderung der FHIR-Ressource. Der Zeitstempel verwendet das RFC 1123-Format. | Mon, 01 Jan 2020 00:00:00 UTC |
versionId |
Die ID der aktuellen Version der FHIR-Ressource, auf die sich die Aktion bezieht. Weitere Informationen zu Versions-IDs finden Sie unter Liste der FHIR-Ressourcenversionen. | MTY4MzA2MDQzOTI5NjIxMDAwMA |
In der folgenden Tabelle sind die verbleibenden Felder im message
-Objekt beschrieben:
Feld | Beschreibung | Beispiel |
---|---|---|
data |
Ein Base64-codierter String, der entweder den Namen der FHIR-Ressource oder den Inhalt der FHIR-Ressource enthält, je nach den in FhirNotificationConfig angegebenen Werten. |
|
messageId |
Eine Kennung für die Pub/Sub-Nachricht. | |
publishTime |
Der Zeitpunkt, zu dem der Pub/Sub-Server die Nachricht veröffentlicht hat. |
Informationen angeben, die in Benachrichtigungen enthalten sein sollen
Pub/Sub-Benachrichtigungen enthalten, wie unter Format und Inhalt von Benachrichtigungen beschrieben, eine Reihe von Standardfeldern. Sie können in jeder Benachrichtigung entweder die vollständige FHIR-Ressource oder nur ihren Namen angeben. Der Ressourcenname enthält den vollständigen Pfad zur Ressource und die Ressourcen-ID in diesem Format:
projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID
Informationen zu FHIR-Ressourcen werden im Feld data
als base64-codierter String gespeichert.
Wenn Sie den vollständigen Inhalt einer FHIR-Ressource angeben, müssen Sie Pub/Sub und die Cloud Healthcare API nicht separat nach Ressourcendetails abfragen.
FHIR-Ressourcennamen abrufen
Wenn Sie nur den Namen einer FHIR-Ressource beim Erstellen, Aktualisieren oder Patchen der Ressource angeben möchten, legen Sie sendFullResource
auf false
fest.
Wenn nur der Name beim Löschen einer FHIR-Ressource enthalten sein soll, legen Sie sendPreviousResourceOnDelete
auf false
fest.
In der Benachrichtigung sieht das message
-Objekt in etwa so aus:
{ "message": { "attributes": { "action": "{CreateResource|PatchResource|UpdateResource|DeleteResource}", "lastUpdatedTime": "RFC_1123_FORMAT_DATETIME", "payloadType": "NameOnly", "resourceType": "FHIR_RESOURCE_TYPE", "storeName": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID", "versionId": "VERSION_ID" }, "data": "BASE64_ENCODED_FHIR_RESOURCE_NAME", "messageId": "MESSAGE_ID", "publishTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ" } }
Beachten Sie in der Benachrichtigung Folgendes:
Das Feld
payloadType
ist aufNameOnly
festgelegt, um Folgendes über die Anfrage anzugeben:- Für Erstellungs-, Aktualisierungs- und Patchvorgänge ist
sendFullResource
auffalse
festgelegt. - Für Löschvorgänge ist
sendPreviousResourceOnDelete
auffalse
festgelegt.
- Für Erstellungs-, Aktualisierungs- und Patchvorgänge ist
Nur der Name der FHIR-Ressource ist im Feld
data
enthalten. Der Name ist als Base64-codierter String codiert.
Erstellte, aktualisierte oder gepatchte FHIR-Ressourceninhalte abrufen
Wenn Sie den vollständigen Inhalt einer FHIR-Ressource beim Erstellen, Aktualisieren oder Patchen der Ressource einschließen möchten, setzen Sie sendFullResource
auf true
.
Dieses Verhalten gilt nicht, wenn Sie eine FHIR-Ressource löschen. Wenn Sie eine FHIR-Ressource löschen und sendFullResource
auf true
, aber sendPreviousResourceOnDelete
auf false
festgelegt ist, entspricht die Benachrichtigung derjenigen, die Sie erhalten, wenn Sie nur den Namen der FHIR-Ressource abrufen. Informationen zum Einbeziehen des Inhalts einer FHIR-Ressource beim Löschen einer FHIR-Ressource finden Sie unter Inhalte gelöschter FHIR-Ressourcen abrufen.
In der Benachrichtigung sieht das message
-Objekt in etwa so aus:
{ "message": { "attributes": { "action": "{CreateResource|PatchResource|UpdateResource}", "lastUpdatedTime": "RFC_1123_FORMAT_DATETIME", "payloadType": "FullResource", "resourceType": "FHIR_RESOURCE_TYPE", "storeName": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID", "versionId": "VERSION_ID" }, "data": "BASE64_ENCODED_FHIR_RESOURCE_CONTENTS", "messageId": "MESSAGE_ID", "publishTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ" } }
Beachten Sie in der Benachrichtigung Folgendes:
payloadType
ist aufFullResource
gesetzt, um anzugeben, dasssendFullResource
auftrue
gesetzt ist. Der vollständige Inhalt der FHIR-Ressource ist im Felddata
als Base64-codierter String enthalten.- Das Feld
data
enthält den Inhalt der FHIR-Ressource als Base64-codierten String.
Gelöschte FHIR-Ressourceninhalte abrufen
Wenn Sie beim Löschen einer FHIR-Ressource den vollständigen Inhalt angeben möchten, setzen Sie sendPreviousResourceOnDelete
auf true
.
In der Benachrichtigung sieht das message
-Objekt in etwa so aus:
{ "message": { "attributes": { "action": "DeleteResource", "lastUpdatedTime": "RFC_1123_FORMAT_DATETIME", "payloadType": "FullResource", "resourceType": "FHIR_RESOURCE_TYPE", "storeName": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID", "versionId": "VERSION_ID" }, "data": "BASE64_ENCODED_FHIR_RESOURCE_CONTENTS", "messageId": "MESSAGE_ID", "publishTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ" } }
Notieren Sie sich die Werte in den folgenden Feldern:
payloadType
ist aufFullResource
gesetzt, auch wennsendFullResource
auffalse
festgelegt ist.Der vollständige Inhalt der FHIR-Ressource ist im Feld
data
als Base64-codierter String enthalten.Das Feld
data
enthält den Inhalt der FHIR-Ressource als Base64-codierten String, bevor die Ressource gelöscht wurde.
FHIR-Benachrichtigungen konfigurieren und ansehen
In den folgenden Beispielen wird gezeigt, wie Sie die generierte Pub/Sub-Benachrichtigung aufrufen, wenn eine FHIR-Ressource in einem FHIR-Speicher erstellt wird.
Hinweise
Bevor Sie Pub/Sub-Benachrichtigungen konfigurieren und verwenden, sollten Sie die folgenden Abschnitte lesen:
Pub/Sub-Kontingent prüfen
Machen Sie sich mit den Pub/Sub-Kontingenten und -Limits vertraut. Informationen dazu, wie Sie Ihr Kontingent einsehen und ein höheres Kontingent anfordern und was geschieht, wenn Ihr Kontingent aufgebraucht ist, finden Sie unter Mit Kontingenten arbeiten.
Pub/Sub API aktivieren
Aktivieren Sie in der Google Cloud Console die Pub/Sub API:
Pub/Sub-Berechtigungen konfigurieren
Damit Nachrichten von der Cloud Healthcare API in Pub/Sub veröffentlicht werden können, müssen Sie die Rolle pubsub.publisher
zum Dienstkonto Ihres Projekts Cloud Healthcare-Dienst-Agent hinzufügen.
Weitere Informationen zum Hinzufügen der erforderlichen Rolle finden Sie unter Pub/Sub-Berechtigungen für DICOM-, FHIR- und HL7v2-Speicher.
Pub/Sub-Thema erstellen
Weitere Informationen zum Erstellen eines Themas finden Sie unter Thema erstellen.
Einzelne Datenspeicher können ein eigenes Pub/Sub-Thema haben oder mehrere Datenspeicher können dasselbe Thema gemeinsam nutzen.
Geben Sie das Pub/Sub-Thema im folgenden Format an:
projects/PROJECT_ID/topics/TOPIC_NAME
Dabei ist PROJECT_ID
Ihre Google Cloud-Projekt-ID und TOPIC_NAME
der Name des Pub/Sub-Themas.
Pub/Sub-Abo erstellen
Um Nachrichten zu einem Thema zu erhalten, müssen Sie ein Pub/Sub-Abo erstellen. Jedes Pub/Sub-Thema benötigt mindestens ein Pub/Sub-Abo. Durch das Abo wird das Thema mit einer Abonnentenanwendung verbunden, die Nachrichten empfängt und verarbeitet, die für das Thema veröffentlicht wurden.
Informationen zum Erstellen eines Abos und zum Verknüpfen mit einem Pub/Sub-Thema finden Sie unter Abos erstellen.
FHIR-Speicher erstellen oder bearbeiten
Erstellen oder bearbeiten Sie einen FHIR-Speicher mit einem konfigurierten FhirNotificationConfig
-Objekt.
In den folgenden Beispielen wird gezeigt, wie Sie einen vorhandenen FHIR-Speicher bearbeiten.
Die Felder sendFullResource
und sendPreviousResourceOnDelete
sind auf true
festgelegt. Das bedeutet, dass Benachrichtigungen den vollständigen Inhalt der FHIR-Ressource enthalten, wenn eine Ressource erstellt, aktualisiert, gepatcht oder gelöscht wird.
REST
Verwenden Sie zum Bearbeiten des FHIR-Speichers die Methode projects.locations.datasets.fhirStores.patch
.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- LOCATION ist der Standort des Datasets
- DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
- FHIR_STORE_ID: die FHIR-Speicher-ID
- PUBSUB_TOPIC_ID: die Pub/Sub-Themen-ID
JSON-Text der Anfrage:
{ "notificationConfigs": [ { "pubsubTopic": "projects/PROJECT_ID/topics/PUBSUB_TOPIC_ID", "sendFullResource": true, "sendPreviousResourceOnDelete": true } ] }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
cat > request.json << 'EOF' { "notificationConfigs": [ { "pubsubTopic": "projects/PROJECT_ID/topics/PUBSUB_TOPIC_ID", "sendFullResource": true, "sendPreviousResourceOnDelete": true } ] } EOF
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=notificationConfigs"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
@' { "notificationConfigs": [ { "pubsubTopic": "projects/PROJECT_ID/topics/PUBSUB_TOPIC_ID", "sendFullResource": true, "sendPreviousResourceOnDelete": true } ] } '@ | Out-File -FilePath request.json -Encoding utf8
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID?updateMask=notificationConfigs" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
FHIR-Ressource erstellen
Erstellen Sie eine FHIR-Ressource im FHIR-Speicher. Durch die Anfrage wird die Cloud Healthcare API veranlasst, eine Nachricht im konfigurierten Pub/Sub-Thema zu veröffentlichen.
Pub/Sub-Benachrichtigung ansehen
Rufen Sie die im Pub/Sub-Thema veröffentlichte Nachricht auf. Die folgende Meldung wurde generiert, als eine Patientenressource in einem FHIR-Speicher erstellt wurde.
In der Beispielausgabe befindet sich der Inhalt der FHIR-Ressource im Feld data
als base64-codierter String. Sie müssen den base64-codierten Wert decodieren, um den Inhalt zu erhalten.
Die meisten Plattformen und Betriebssysteme haben Tools zum Decodieren von Base64-Text.
REST
Verwenden Sie die Methode projects.subscriptions.pull
, um die im Pub/Sub-Thema veröffentlichte Nachricht aufzurufen. Im folgenden Beispiel wird der Abfrageparameter ?maxMessages=10
verwendet, um die maximale Anzahl von Nachrichten anzugeben, die in der Anfrage zurückgegeben werden sollen. Sie können den Wert an Ihre Anforderungen anpassen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- PUBSUB_SUBSCRIPTION_ID: die ID des Abos, das mit dem im FHIR-Speicher konfigurierten Pub/Sub-Thema verknüpft ist
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Führen Sie folgenden Befehl aus:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/PUBSUB_SUBSCRIPTION_ID:pull?maxMessages=10"
PowerShell
Führen Sie folgenden Befehl aus:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://pubsub.googleapis.com/v1/projects/PROJECT_ID/subscriptions/PUBSUB_SUBSCRIPTION_ID:pull?maxMessages=10" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
gcloud
Führen Sie den Befehl gcloud pubsub subscriptions pull
aus, um die im Pub/Sub-Thema veröffentlichte Nachricht anzuzeigen.
Im Beispiel werden die folgenden Google Cloud CLI-Flags verwendet:
--format=json
: Die Ausgabe wird als JSON gerendert.--auto-ack
: Jede abgerufene Nachricht wird automatisch bestätigt.
Ersetzen Sie folgende Werte, bevor sie einen der Befehlsdaten verwenden:
- PROJECT_ID ist die ID Ihres Google Cloud-Projekts
- PUBSUB_SUBSCRIPTION_ID: die ID des Abos, das mit dem im FHIR-Speicher konfigurierten Pub/Sub-Thema verknüpft ist
Führen Sie folgenden Befehl aus:
Linux, macOS oder Cloud Shell
gcloud pubsub subscriptions pull \ projects/PROJECT_ID/subscriptions/PUBSUB_SUBSCRIPTION_ID \ --auto-ack \ --format=json
Windows (PowerShell)
gcloud pubsub subscriptions pull ` projects/PROJECT_ID/subscriptions/PUBSUB_SUBSCRIPTION_ID ` --auto-ack ` --format=json
Windows (cmd.exe)
gcloud pubsub subscriptions pull ^ projects/PROJECT_ID/subscriptions/PUBSUB_SUBSCRIPTION_ID ^ --auto-ack ^ --format=json
Sie sollten eine Antwort ähnlich der folgenden erhalten:
[ { "ackId": "RFAGFixdRkhRNxkIaFEOT14jPzUgKEUaAggUBXx9cEFLdVhUcGhRDRlyfWB9bQ5GAgpGWixfURsHaE5tdR", "ackStatus": "SUCCESS", "message": { "attributes": { "action": "CreateResource", "lastUpdatedTime": "Mon, 01 Jan 2020 00:00:00 UTC", "payloadType": "FullResource", "resourceType": "Patient", "storeName": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID", "versionId": "MTY4MzA2MDQzOTI5NjIxMDAwMA" }, "data": "wogICJiaXJ0aERhdGUiOiAiMTk3MC0wMS0wMSIsCiAgImdlbmRlciI6ICJmZW1hbGUiLAogICJpZCI6ICIyYmMwODg4Yi00MGRmLTQwYzctOWRhYi0wMzc4YTFiZWE0MGIiLAogICJtZXRhIjogewogICAgImxhc3RVcGRhdGVkIjogIjIwMjMtMDUtMDJUMjA6NDc6MTkuMjk2MjEwKzAwOjAwIiwKICAgICJ2ZXJzaW9uSWQiOiAiTVRZNE16QTJNRFF6T1RJNU5qSXhNREF3TUEiCiAgfSwKICAibmFtZSI6IFsKICAgIHsKICAgICAgImZhbWlseSI6ICJTbWl0aCIsCiAgICAgICJnaXZlbiI6IFsKICAgICAgICAiRGFyY3kiCiAgICAgIF0sCiAgICAgICJ1c2UiOiAib2ZmaWNpYWwiCiAgICB9CiAgXSwKICAicmVzb3VyY2VUeXBlIjogIlBhdGllbnQiCn0=", "messageId": "7586159156345265", "publishTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ" } } ]
Verhalten, wenn eine FHIR-Ressource zu groß oder der Traffic hoch ist
Wenn die Größe einer FHIR-Ressource zu groß ist oder die Cloud Healthcare API-Server stark ausgelastet sind, enthält das Feld attributes
möglicherweise nur den Ressourcennamen anstelle des vollständigen Ressourceninhalts.
Dieses Verhalten tritt auch auf, wenn sendFullResource
und sendPreviousResourceOnDelete
auf true
gesetzt sind.
Wenn Sie prüfen möchten, ob eine Pub/Sub-Benachrichtigung die vollständige FHIR-Ressource enthält, sehen Sie sich das Feld payloadType
in der Antwort an.
Wenn payloadType
auf nameOnly
gesetzt ist, wurden die FHIR-Ressourcendaten im Feld attributes
nicht vollständig ausgefüllt. Sie müssen den Inhalt der FHIR-Ressource dann manuell aus dem FHIR-Speicher abrufen und nicht aus der Pub/Sub-Nachricht.
Cloud Healthcare API und Pub/Sub-Nachrichtenspeicherrichtlinie
Um sicherzustellen, dass sich die Cloud Healthcare API-Daten und die zugehörigen Daten in Pub/Sub-Nachrichten in derselben Region befinden, müssen Sie eine Pub/Sub-Nachrichtenspeicherrichtlinie festlegen.
Sie müssen die Nachrichtenspeicherrichtlinie für das im Datenspeicher konfigurierte Pub/Sub-Thema explizit festlegen, damit die Daten in derselben Region bleiben. Wenn sich Ihr Cloud Healthcare API-Dataset und Ihr FHIR-Speicher beispielsweise in us-central1
befinden, darf die Nachrichtenspeicherrichtlinie nur die Region us-central1
zulassen.
Informationen zum Konfigurieren einer Richtlinie für den Nachrichtenspeicher finden Sie unter Richtlinien für den Nachrichtenspeicher konfigurieren.
Fehlerbehebung bei fehlenden Pub/Sub-Nachrichten
Wenn eine Benachrichtigung nicht in Pub/Sub veröffentlicht werden kann, wird ein Fehler in Cloud Logging in Logs erfasst. Weitere Informationen finden Sie unter Fehlerlogs in Cloud Logging ansehen.
Wenn die Fehlergenerierungsrate ein Limit überschreitet, werden Fehler, die dieses Limit überschreiten, nicht an Cloud Logging gesendet.
FHIR-Benachrichtigungen mit der NotificationConfig
-Konfiguration ansehen (veraltet)
Die Ressource FhirStore
enthält ein NotificationConfig
-Objekt, in dem Sie ein Pub/Sub-Thema angeben können.
Änderungen an FHIR-Ressourcen enthalten im Feld data
der Pub/Sub-Nachricht immer die folgende Kennzeichnung:
projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID
Die folgenden Schlüssel/Wert-Paare sind immer im Feld attributes
der Nachricht enthalten:
Attributname | Mögliche Werte | Beispiel | Beschreibung |
---|---|---|---|
action |
|
CreateResource |
Der Ereignistyp, der gerade aufgetreten ist |
resourceType |
Jeder FHIR-Ressourcentyp | Patient |
Der Ressourcentyp, der geändert wurde |
Nächste Schritte
- Verwenden Sie die Ablaufsteuerung, um vorübergehende Spitzen bei der Pub/Sub-Nachrichtenauslastung zu bewältigen.
- Umgang mit Nachrichtenfehlern
- Nachrichten wiedergeben und dauerhaft löschen
- Architekturübersicht von Pub/Sub