FHIR-Pub/Sub-Benachrichtigungen

Auf dieser Seite wird erläutert, wie Sie Pub/Sub verwenden, um Benachrichtigungen zu erhalten, wenn ein klinisches Ereignis in einem FHIR-Speicher auftritt.

Sie können Pub/Sub-Benachrichtigungen für mehrere Anwendungsfälle verwenden, einschließlich der Auslösung einer nachgelagerten Verarbeitung oder Analyse neuer Daten. Beispielsweise kann ein Modell für maschinelles Lernen Benachrichtigungen erhalten, wenn neue Daten für das Training verfügbar sind, und Erkenntnisse oder Vorhersagen zur Verbesserung der Patientenversorgung generieren.

Überblick

Sie können Pub/Sub-Benachrichtigungen erhalten, wenn eine FHIR-Ressource in einem FHIR-Speicher erstellt, aktualisiert, gepatcht oder gelöscht wird. Die Cloud Healthcare API sendet keine Benachrichtigungen, wenn eine FHIR-Ressource aus Cloud Storage importiert wird.

Damit Sie Benachrichtigungen erhalten, müssen Sie ein Pub/Sub-Thema und -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 zugestellt werden, wenn mit der Methode fhir.create eine FHIR-Ressource in einem FHIR-Speicher erstellt wird. Die Schritte sind dieselben, wenn eine FHIR-Ressource aktualisiert, gepatcht oder gelöscht wird.

FHIR-Pub/Sub-Benachrichtigungen.

Abbildung 1. Pub/Sub-Benachrichtigungen für Änderungen in einem FHIR-Speicher verwenden.

Abbildung 1 zeigt die folgenden Schritte:

  1. Ein Aufrufer stellt eine fhirStores.fhir.create-Anfrage zum Erstellen einer FHIR-Ressource.
  2. Der FHIR-Speicher empfängt die Anfrage, erstellt eine Pub/Sub-Nachricht und sendet sie an das im FHIR-Speicher konfigurierte Pub/Sub-Thema.
  3. Pub/Sub leitet die Nachricht an die Abos weiter, die an das Thema angehängt sind.
  4. 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 werden die Felder im FhirNotificationConfig-Objekt 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 eine Benachrichtigung aufgenommen werden soll. Dieses Feld hat keine Auswirkungen auf Benachrichtigungen, die beim Löschen von FHIR-Ressourcen gesendet werden. Wenn Sie den vollständigen Inhalt einer gelöschten Ressource einschließen möchten, setzen Sie sendPreviousResourceOnDelete auf true. true
sendPreviousResourceOnDelete Gibt an, ob der vollständige Inhalt einer gelöschten FHIR-Ressource in eine Benachrichtigung einbezogen werden soll. Dieses Feld hat keine Auswirkungen auf Benachrichtigungen, die beim Erstellen, Aktualisieren oder Patchen von FHIR-Ressourcen gesendet werden. true

Benachrichtigungsformat und -inhalt

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 im attributes-Objekt beschrieben:

Attribut Beschreibung Beispiel
action Die Aktion, die für eine FHIR-Ressource ausgeführt wurde. Zulässige Werte:
  • CreateResource
  • PatchResource
  • UpdateResource
  • DeleteResource
CreateResource
resourceType Der Typ der FHIR-Ressource, die geändert wurde. Mögliche Werte sind jeder unterstützte FHIR-Ressourcentyp 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 ausgeführt wurde. projects/my-project/locations/us/datasets/my-dataset/fhirStores/my-fhir-store
lastUpdatedTime Ein Zeitstempel der letzten Änderung der FHIR-Ressource. Für den Zeitstempel wird das RFC 1123-Format verwendet. Mon, 01 Jan 2020 00:00:00 UTC
versionId Die ID der neuesten Version der FHIR-Ressource, für die die Aktion ausgeführt wurde. Weitere Informationen zu Versions-IDs finden Sie unter FHIR-Ressourcenversionen auflisten. MTY4MzA2MDQzOTI5NjIxMDAwMA

In der folgenden Tabelle werden die verbleibenden Felder im message-Objekt beschrieben:

Feld Beschreibung Beispiel
data Ein Base64-codierter String des FHIR-Ressourcennamens oder des FHIR-Ressourceninhalts, abhängig von 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 einen Standardsatz von Feldern, wie unter Benachrichtigungsformat und -inhalt beschrieben. 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 folgendem Format:

projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/fhir/RESOURCE_TYPE/RESOURCE_ID

FHIR-Ressourceninformationen werden im Feld data als Base64-codierter String gespeichert.

Wenn Sie den vollständigen Inhalt einer FHIR-Ressource einschließen, müssen Sie Pub/Sub und die Cloud Healthcare API nicht separat nach Ressourcendetails abfragen.

FHIR-Ressourcennamen abrufen

Wenn Sie beim Erstellen, Aktualisieren oder Patchen der Ressource nur den Namen einer FHIR-Ressource angeben möchten, setzen Sie sendFullResource auf false. Wenn Sie nur den Namen einschließen möchten, wenn Sie eine FHIR-Ressource löschen, legen Sie sendPreviousResourceOnDelete auf false fest.

Wenn Sie die Benachrichtigung ansehen, 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 Folgendes in der Benachrichtigung:

  • Das Feld payloadType ist auf NameOnly gesetzt, um Folgendes zu der Anfrage anzugeben:

    • Bei Erstellungs-, Aktualisierungs- und Patchvorgängen ist sendFullResource auf false gesetzt.
    • Bei Löschvorgängen ist sendPreviousResourceOnDelete auf false gesetzt.
  • Nur der FHIR-Ressourcenname ist im Feld data enthalten. Der Name wird als Base64-codierter String codiert.

Erstellte, aktualisierte oder gepatchte FHIR-Ressourceninhalte abrufen

Wenn Sie beim Erstellen, Aktualisieren oder Patchen der Ressource den vollständigen Inhalt einer FHIR-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 und sendPreviousResourceOnDelete auf false gesetzt ist, entspricht die Benachrichtigung der Benachrichtigung, dass Sie nur den FHIR-Ressourcennamen abrufen. Informationen zum Einbeziehen des FHIR-Ressourceninhalts, wenn eine FHIR-Ressource gelöscht wird, finden Sie unter Gelöschte FHIR-Ressourceninhalte abrufen.

Wenn Sie die Benachrichtigung ansehen, 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 Folgendes in der Benachrichtigung:

  • payloadType ist auf FullResource gesetzt, um anzuzeigen, dass sendFullResource auf true gesetzt ist. Der vollständige Inhalt der FHIR-Ressource ist im Feld data als Base64-codierter String enthalten.
  • Das Feld data enthält die FHIR-Ressourceninhalte als Base64-codierten String.

Gelöschte FHIR-Ressourceninhalte abrufen

Wenn Sie den vollständigen Inhalt einer FHIR-Ressource beim Löschen einschließen möchten, setzen Sie sendPreviousResourceOnDelete auf true.

Wenn Sie die Benachrichtigung ansehen, 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 wird auch dann auf FullResource gesetzt, wenn sendFullResource auf false gesetzt 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

Die folgenden Beispiele zeigen, wie die generierte Pub/Sub-Benachrichtigung angezeigt wird, wenn eine FHIR-Ressource in einem FHIR-Speicher erstellt wird.

Hinweise

Führen Sie die folgenden Abschnitte aus, bevor Sie Pub/Sub-Benachrichtigungen konfigurieren und verwenden:

Pub/Sub-Kontingent prüfen

Machen Sie sich mit 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:

API aktivieren

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

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.

Verwenden Sie das folgende Format, wenn Sie das Pub/Sub-Thema angeben:

projects/PROJECT_ID/topics/TOPIC_NAME

PROJECT_ID ist 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. Für jedes Pub/Sub-Thema ist mindestens ein Pub/Sub-Abo erforderlich. 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 Anhängen an ein 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 gesetzt. Dies bedeutet, dass Benachrichtigungen den vollständigen FHIR-Ressourceninhalt 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.

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • 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 ID des Pub/Sub-Themas

JSON-Text anfordern:

{
  "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 in etwa folgende JSON-Antwort erhalten:

FHIR-Ressource erstellen

Erstellen Sie eine FHIR-Ressource im FHIR-Speicher. Die Anfrage veranlasst die Cloud Healthcare API, 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 Nachricht wurde generiert, als eine Patientenressource in einem FHIR-Speicher erstellt wurde.

In der Beispielausgabe befindet sich der Inhalt der FHIR-Ressource in einem base64-codierten String im Feld data. Sie müssen den base64-codierten Wert decodieren, um den Inhalt abzurufen. 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 anzusehen. Im folgenden Beispiel wird mit dem Abfrageparameter ?maxMessages=10 die maximale Anzahl von Nachrichten angegeben, die in der Anfrage zurückgegeben werden sollen. Sie können den Wert an Ihre Bedürfnisse anpassen.

Bevor Sie die Anfragedaten verwenden, ersetzen Sie die folgenden Werte:

  • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
  • PUBSUB_SUBSCRIPTION_ID: die ID des Abos, das an das im FHIR-Speicher konfigurierte Pub/Sub-Thema angehängt 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 anzusehen.

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.

Bevor Sie die folgenden Befehlsdaten verwenden, ersetzen Sie die folgenden Werte:

  • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
  • PUBSUB_SUBSCRIPTION_ID: die ID des Abos, das an das im FHIR-Speicher konfigurierte Pub/Sub-Thema angehängt ist

Führen Sie den 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 starkem Traffic verzeichnen, enthält das Feld attributes möglicherweise nur den Ressourcennamen und nicht den vollständigen Ressourceninhalt. Dieses Verhalten tritt auch dann auf, wenn sendFullResource und sendPreviousResourceOnDelete auf true festgelegt sind.

Wenn Sie prüfen möchten, ob eine Pub/Sub-Benachrichtigung die vollständige FHIR-Ressource enthält, prüfen Sie in der Benachrichtigung das Feld payloadType in der Antwort. Wenn payloadType auf nameOnly gesetzt ist, wurden die FHIR-Ressourcendaten im Feld attributes nicht vollständig ausgefüllt. Anschließend müssen Sie den Inhalt der FHIR-Ressource manuell aus dem FHIR-Speicher und nicht aus der Pub/Sub-Nachricht abrufen.

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 Richtlinie zur Nachrichtenspeicherung explizit für das im Datenspeicher konfigurierte Pub/Sub-Thema 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 Nachrichtenspeicherrichtlinie finden Sie unter Richtlinien für Nachrichtenspeicher konfigurieren.

Fehlerbehebung bei verpassten 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 einen Grenzwert überschreitet, werden darüber hinausgehende Fehler nicht an Cloud Logging gesendet.

FHIR-Benachrichtigungen mit der NotificationConfig-Konfiguration ansehen (verworfen)

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
  • PatchResource
  • UpdateResource
  • DeleteResource
CreateResource Der Ereignistyp, der gerade aufgetreten ist
resourceType Jeder FHIR-Ressourcentyp Patient Der Ressourcentyp, der geändert wurde

Nächste Schritte