Fehlerbehebung

Hier finden Sie nützliche Informationen über die schrittweise Fehlerbehebung in Verbindung mit der Cloud Healthcare API.

Cloud Healthcare API kann nicht aktiviert werden.

Wenn Sie die Cloud Healthcare API zum ersten Mal in IhremGoogle Cloud -Projekt aktivieren, wird möglicherweise ein Berechtigungsfehler angezeigt, der darauf hinweist, dass Sie keine Berechtigung zum Aktivieren von Google Cloud-APIs für Ihr Projekt haben.

Informationen zum Aktivieren von Google Cloud -APIs, einschließlich der Cloud Healthcare API, finden Sie unter APIs aktivieren und deaktivieren.

Keine Authentifizierung bei der Cloud Healthcare API möglich

Beim Aufrufen der Cloud Healthcare API kann es zu einer Fehlermeldung kommen, die besagt, dass Ihre Standardanmeldedaten für Anwendungen nicht verfügbar sind.

Informationen zum Konfigurieren von Standardanmeldedaten für Anwendungen oder zum manuellen Übergeben von Authentifizierungsdaten an eine Anwendung oder einen Befehl finden Sie unter Bei der API authentifizieren.

Fehlendes Cloud Healthcare API-Dienstkonto oder Healthcare-Dienst-Agent-Rolle

Das Dienstkonto Cloud Healthcare-Dienst-Agent wird automatisch erstellt, wenn Sie Ihr erstes Dataset erstellen. Dies ist ein von Google verwaltetes Dienstkonto. Sie können das Dienstkonto nicht vollständig löschen, aber unter bestimmten Umständen wird es möglicherweise nicht auf der Seite „Identity and Access Management“ angezeigt und es können Probleme mit der Cloud Healthcare API auftreten.

Damit die Cloud Healthcare API ordnungsgemäß funktioniert und Aufgaben wie das Veröffentlichen und Empfangen von Nachrichten aus Pub/Sub oder das Schreiben von Messwerten in Cloud Logging erfüllt, muss das Dienstkonto des Cloud Healthcare-Dienst-Agents vorhanden und die IAM-Rolle Healthcare-Dienst-Agent haben.

Sie können das Dienstkonto Cloud Healthcare-Dienst-Agent manuell erstellen oder ihm die IAM-Rolle Healthcare-Dienst-Agent zuweisen, wenn eines der folgenden Probleme auftritt:

  • Sie finden das Dienstkonto Cloud Healthcare-Dienst-Agent auf der Seite Identitäts- und Zugriffsverwaltung nicht.
  • Sie finden das Dienstkonto von Cloud Healthcare-Dienst-Agent, aber es enthält nicht die Rolle Healthcare-Dienst-Agent.

Wenn Sie das Dienstkonto manuell erstellen möchten, folgen Sie der Anleitung unter Erstellung manuell auslösen.

Verwenden Sie die Google Cloud CLI, um dem Dienstkonto Cloud Healthcare-Dienst-Agent mithilfe der ID des Dienstkontos die Rolle healthcare.serviceAgent hinzuzufügen: Diese hat das Format service-PROJECT_NUMBER@gcp-sa-healthcare.. Informationen zum Ermitteln von PROJECT_ID und PROJECT_NUMBER finden Sie unter Projekte identifizieren.

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare. \
    --role=roles/healthcare.serviceAgent

Wenn die Anfrage erfolgreich ist, wird in der Eingabeaufforderung eine Meldung ähnlich der folgenden angezeigt:

Updated IAM policy for project [PROJECT_ID].
bindings:
...
- members:
  - serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.
  role: roles/healthcare.serviceAgent
...
etag: VALUE
version: VALUE

Wechseln Sie zur Seite "Identitäts- und Zugriffsverwaltung" zurück und kontrollieren Sie Folgendes:

  • Die Spalte Mitglied enthält eine Dienstkontokennung im Format service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.
  • Die Spalte Name enthält in derselben Zeile wie die Spalte Mitglied den Cloud Healthcare-Dienst-Agent.
  • Die Spalte Rolle enthält in derselben Zeile wie die Spalte Mitglied den Eintrag Healthcare-Dienst-Agent.

FHIR-Transaktions-Bundle wurde aufgrund kumulativer hoher Last abgebrochen

Wenn Sie ein FHIR-Transaktions-Bundle ausführen, erhalten Sie möglicherweise eine Fehlermeldung, die besagt, dass die Anfrage "aufgrund der kumulativen hohen Auslastung für die Ausführung des Transaktionspakets" abgebrochen wurde.

Bei der Ausführung von Transaktions-Bundles gibt es keine Begrenzung, wie viele Sperrkonflikte Sie erstellen können. Wenn Sie beispielsweise einen Satz von Sets erstellen, bei dem jedes Bundle eine einzelne gemeinsame Patientenressource aktualisiert und auch andere nicht gängige Ressourcen erstellt und diese parallel ausführen, dauert es länger schnell erhöhen, da jedes Bundle die Sperre für diesen gemeinsamen Patienten für die gesamte Transaktion halten muss. Daher tritt eine Zeitüberschreitung auf. Wenn die Cloud Healthcare API Zeitüberschreitungen für Transaktionen erkennt, lehnt sie vorübergehend alle Transaktionspakete mit dieser Fehlermeldung ab, um zu versuchen, die Konflikte zu beheben.

Versuchen Sie Folgendes, um dieses Problem zu vermeiden:

  • Verwenden Sie Batch-Bundles, wenn Sie keine Transaktionssemantik benötigen. Batch-Bundles vermeiden dieses Problem vollständig, da sie nicht atomar sind. Dies reduziert jedoch die referenzielle Integritätserzwingung.
  • Wenn Sie feststellen können, welche Ressource parallel aktualisiert wird, prüfen Sie, ob diese Aktualisierungen berücksichtigt oder vermieden werden können. In FHIR geschieht dies, wenn Sie eine neue Ressource wie Beobachtung erstellen und auch den zugehörigen Patienten (oder die Organisation, den Standort, das Gerät usw.) aktualisieren, die bereits vorhanden und nicht geändert sind.
  • Ratenbegrenzung auf Clientseite; Wenn die Ausführung Ihrer Transaktions-Bundles sehr lange dauert, reduzieren Sie die Aufnahmerate, bevor die Zeitüberschreitung der Anfragen beginnt.