Problembehebung AWS HealthLake - AWS HealthLake

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Problembehebung AWS HealthLake

Die folgenden Themen enthalten Hinweise zur Problembehandlung bei Fehlern und Problemen, die bei der Verwendung der HealthLake Konsole AWS CLI AWS SDKs, oder auftreten können. Wenn Sie ein Problem finden, das in diesem Abschnitt nicht aufgeführt ist, verwenden Sie die Schaltfläche Feedback geben in der rechten Seitenleiste dieser Seite, um es zu melden.

Aktionen im Datenspeicher

Problem: Wenn ich versuche, einen HealthLake Datenspeicher zu erstellen, erhalte ich die folgende Fehlermeldung:

AccessDeniedException: Insufficient Lake Formation permission(s): Required Database on Catalog

Am 14. November 2022 HealthLake wurden die erforderlichen IAM-Berechtigungen zum Erstellen eines neuen Datenspeichers aktualisiert. Weitere Informationen finden Sie unter Konfigurieren Sie einen zu verwendenden IAM-Benutzer oder eine IAM-Rolle HealthLake (IAM-Administrator).

Problem: Beim Erstellen eines HealthLake Datenspeichers mithilfe von gibt der AWS SDKs Erstellungsstatus des Datenspeichers einen Ausnahmestatus oder einen unbekannten Status zurück.

Aktualisieren Sie Ihr AWS SDK auf die neueste Version, wenn Ihre Aufrufe DescribeFHIRDatastore oder ListFHIRDatastores API-Aufrufe eine Ausnahme oder einen unbekannten Datenspeicherstatus zurückgeben.

Aktionen importieren

Problem: Kann ich es trotzdem verwenden, HealthLake wenn meine Daten nicht im FHIR R4-Format vorliegen?

Nur FHIR R4-formatierte Daten können in einen Datenspeicher importiert werden. HealthLake Eine Liste von Partnern, die bei der Umwandlung vorhandener Gesundheitsdaten in das FHIR R4-Format helfen können, finden Sie unter Partner.AWS HealthLake

Problem: Warum ist mein FHIR-Importjob fehlgeschlagen?

Bei einem erfolgreichen Importauftrag wird ein Ordner mit Ergebnissen (Ausgabeprotokoll) im .ndjson Format generiert. Einzelne Datensätze können jedoch möglicherweise nicht importiert werden. In diesem Fall wird ein zweiter FAILURE Ordner mit einem Manifest der Datensätze generiert, die nicht importiert werden konnten. Weitere Informationen finden Sie unter Import von FHIR-Daten mit AWS HealthLake.

Um zu analysieren, warum ein Importauftrag fehlgeschlagen ist, verwenden Sie die DescribeFHIRImportJob API zur Analyse von JobProperties. Folgendes wird empfohlen:

  • Wenn der Status lautet FAILED und eine Meldung vorhanden ist, hängen die Fehler damit zusammen, dass Jobparameter wie die Größe der Eingabedaten oder die Anzahl der Eingabedateien die HealthLake Kontingente überschreiten.

  • Lautet der Status des COMPLETED_WITH_ERRORS Importauftrags, finden Sie in der Manifestdatei Informationen darübermanifest.json, welche Dateien nicht erfolgreich importiert wurden.

  • Wenn der Status des Importauftrags lautet FAILED und keine Meldung vorhanden ist, wechseln Sie zum Ausgabeort des Jobs, um auf die Manifestdatei zuzugreifenmanifest.json.

Für jede Eingabedatei gibt es eine Fehlerausgabedatei mit dem Namen der Eingabedatei für jede Ressource, die nicht importiert werden kann. Die Antworten enthalten die Zeilennummer (lineID), die der Position der Eingabedaten entspricht, das FHIR-Antwortobjekt (UpdateResourceResponse) und den Statuscode (statusCode) der Antwort.

Eine Beispielausgabedatei könnte der folgenden ähneln:

{"lineId":3, UpdateResourceResponse:{"jsonBlob":{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"processing","diagnostics":"1 validation error detected: Value 'Patient123' at 'resourceType' failed to satisfy constraint: Member must satisfy regular expression pattern: [A-Za-z]{1,256}"}]}, "statusCode":400} {"lineId":5, UpdateResourceResponse:{"jsonBlob":{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"processing","diagnostics":"This property must be an simple value, not a com.google.gson.JsonArray","location":["/EffectEvidenceSynthesis/name"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@telecom'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@gender'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@birthDate'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@address'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@maritalStatus'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@multipleBirthBoolean'","location":["/EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Unrecognised property '@communication'","location":["/EffectEvidenceSynthesis"]},{"severity":"warning","code":"processing","diagnostics":"Name should be usable as an identifier for the module by machine processing applications such as code generation [name.matches('[A-Z]([A-Za-z0-9_]){0,254}')]","location":["EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Profile http://hl7.org/fhir/StructureDefinition/EffectEvidenceSynthesis, Element 'EffectEvidenceSynthesis.status': minimum required = 1, but only found 0","location":["EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Profile http://hl7.org/fhir/StructureDefinition/EffectEvidenceSynthesis, Element 'EffectEvidenceSynthesis.population': minimum required = 1, but only found 0","location":["EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Profile http://hl7.org/fhir/StructureDefinition/EffectEvidenceSynthesis, Element 'EffectEvidenceSynthesis.exposure': minimum required = 1, but only found 0","location":["EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Profile http://hl7.org/fhir/StructureDefinition/EffectEvidenceSynthesis, Element 'EffectEvidenceSynthesis.exposureAlternative': minimum required = 1, but only found 0","location":["EffectEvidenceSynthesis"]},{"severity":"error","code":"processing","diagnostics":"Profile http://hl7.org/fhir/StructureDefinition/EffectEvidenceSynthesis, Element 'EffectEvidenceSynthesis.outcome': minimum required = 1, but only found 0","location":["EffectEvidenceSynthesis"]},{"severity":"information","code":"processing","diagnostics":"Unknown extension http://synthetichealth.github.io/synthea/disability-adjusted-life-years","location":["EffectEvidenceSynthesis.extension[3]"]},{"severity":"information","code":"processing","diagnostics":"Unknown extension http://synthetichealth.github.io/synthea/quality-adjusted-life-years","location":["EffectEvidenceSynthesis.extension[4]"]}]}, "statusCode":400} {"lineId":7, UpdateResourceResponse:{"jsonBlob":{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"processing","diagnostics":"2 validation errors detected: Value at 'resourceId' failed to satisfy constraint: Member must satisfy regular expression pattern: [A-Za-z0-9-.]{1,64}; Value at 'resourceId' failed to satisfy constraint: Member must have length greater than or equal to 1"}]}, "statusCode":400} {"lineId":9, UpdateResourceResponse:{"jsonBlob":{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"processing","diagnostics":"Missing required id field in resource json"}]}, "statusCode":400} {"lineId":15, UpdateResourceResponse:{"jsonBlob":{"resourceType":"OperationOutcome","issue":[{"severity":"error","code":"processing","diagnostics":"Invalid JSON found in input file"}]}, "statusCode":400}

Das obige Beispiel zeigt, dass in den Zeilen 3, 4, 7, 9, 15 in den entsprechenden Eingabezeilen der Eingabedatei Fehler aufgetreten sind. Für jede dieser Zeilen lauten die Erklärungen wie folgt:

  • In Zeile 3 wird in der Antwort erklärt, dass die resourceType Angaben in Zeile 3 der Eingabedatei nicht gültig sind.

  • In Zeile 5 wird in der Antwort erklärt, dass in Zeile 5 der Eingabedatei ein FHIR-Validierungsfehler vorliegt.

  • In Zeile 7 wird in der Antwort erklärt, dass ein Validierungsproblem bei der Eingabe resourceId vorliegt.

  • In Zeile 9 wird in der Antwort erklärt, dass die Eingabedatei eine gültige Ressourcen-ID enthalten muss.

  • In Zeile 15 lautet die Antwort der Eingabedatei, dass die Datei kein gültiges JSON-Format hat.

FHIR APIs

Problem: Wie implementiere ich die Autorisierung für die RESTful APIs FHIR?

Ermitteln Sie, welche verwendet Strategie zur Autorisierung von Datenspeichern werden soll.

Um eine SigV4-Autorisierung mit dem zu erstellen AWS SDK für Python (Boto3), erstellen Sie ein Skript, das dem folgenden Beispiel ähnelt.

import boto3 import requests import json from requests_auth_aws_sigv4 import AWSSigV4 # Set the input arguments data_store_endpoint = 'https://healthlake.us-east-1.amazonaws.com/datastore/<datastore id>/r4//' resource_path = "Patient" requestBody = {"resourceType": "Patient", "active": True, "name": [{"use": "official","family": "Dow","given": ["Jen"]},{"use": "usual","given": ["Jen"]}],"gender": "female","birthDate": "1966-09-01"} region = 'us-east-1' #Frame the resource endpoint resource_endpoint = data_store_endpoint+resource_path session = boto3.session.Session(region_name=region) client = session.client("healthlake") # Frame authorization auth = AWSSigV4("healthlake", session=session) # Call data store FHIR endpoint using SigV4 auth r = requests.post(resource_endpoint, json=requestBody, auth=auth, ) print(r.json())

Problem: Warum erhalte ich AccessDenied Fehler, wenn ich FHIR RESTful APIs für einen Datenspeicher verwende, der mit einem vom Kunden verwalteten KMS-Schlüssel verschlüsselt ist?

Damit ein Benutzer oder eine Rolle auf einen Datenspeicher zugreifen kann, sind Berechtigungen sowohl für vom Kunden verwaltete Schlüssel als auch für IAM-Richtlinien erforderlich. Ein Benutzer muss über die erforderlichen IAM-Berechtigungen verfügen, um einen vom Kunden verwalteten Schlüssel verwenden zu können. Wenn ein Benutzer eine Erteilung widerruft oder zurückzieht, mit der die HealthLake Erlaubnis zur Verwendung des vom Kunden verwalteten KMS-Schlüssels erteilt wurde, HealthLake wird ein AccessDenied Fehler zurückgegeben.

HealthLake muss über die erforderlichen Berechtigungen verfügen, um auf Kundendaten zuzugreifen, neue in einen Datenspeicher importierte FHIR-Ressourcen zu verschlüsseln und die FHIR-Ressourcen zu entschlüsseln, wenn sie angefordert werden. Weitere Informationen finden Sie unter Problembehandlung bei Berechtigungen. AWS KMS

Problem: Ein POST FHIR-API-Vorgang zur HealthLake Verwendung eines 10-MB-Dokuments gibt den 413 Request Entity Too Large Fehler zurück.

AWS HealthLake hat ein synchrones Create and Update API-Limit von 5 MB, um erhöhte Latenzen und Timeouts zu vermeiden. Sie können große Dokumente (bis zu 164 MB) mithilfe des Binary Ressourcentyps mithilfe der Bulk Import API aufnehmen.

NLP-Integrationen

Problem: Wie aktiviere ich die integrierte HealthLake Funktion zur Verarbeitung natürlicher Sprache?

Ab dem 14. November 2022 hat sich das Standardverhalten von HealthLake Datenspeichern geändert.

Aktuelle Datenspeicher: Alle aktuellen HealthLake Datenspeicher werden die Verarbeitung natürlicher Sprache (NLP) für DocumentReference Base64-kodierte Ressourcen einstellen. Das bedeutet, dass neue DocumentReference Ressourcen nicht mit NLP analysiert werden und dass keine neuen Ressourcen auf der Grundlage von Text im Ressourcentyp generiert werden. DocumentReference Für bestehende DocumentReference Ressourcen bleiben die über NLP generierten Daten und Ressourcen erhalten, sie werden jedoch nach dem 20. Februar 2023 nicht aktualisiert.

Neue Datenspeicher: HealthLake Datenspeicher, die nach dem 20. Februar 2023 erstellt wurden, führen auf DocumentReference Base64-codierten Ressourcen keine Verarbeitung natürlicher Sprache (Natural Language Processing, NLP) durch.

Um die HealthLake NLP-Integration zu aktivieren, erstellen Sie einen Support-Fall mit. AWS Support Center Console Um Ihren Fall zu erstellen, melden Sie sich bei Ihrem AWS-Konto an und wählen Sie dann Fall erstellen. Weitere Informationen zur Erstellung eines Falls und zur Fallverwaltung finden Sie im Support Benutzerhandbuch unter Erstellen von Supportanfragen und Fallmanagement.

Problem: >Wie finde ich DocumentReference Ressourcen, die mit integriertem NLP nicht verarbeitet werden konnten?

Wenn eine DocumentReference Ressource nicht gültig ist, wird eine Erweiterung HealthLake bereitgestellt, die auf einen Validierungsfehler hinweist, anstatt sie in der integrierten medizinischen NLP-Ausgabe bereitzustellen. Um DocumentReference Ressourcen zu finden, die bei der NLP-Verarbeitung zu einem Validierungsfehler geführt haben, können Sie die search FHIR-Funktion mit dem Suchschlüssel cm-decoration-statusund dem Suchwert VALIDATION_ERROR verwenden HealthLake. Diese Suche listet alle DocumentReference Ressourcen auf, die zu Validierungsfehlern geführt haben, zusammen mit einer Fehlermeldung, die die Art des Fehlers beschreibt. Die Struktur des Erweiterungsfeldes in den DocumentReference Ressourcen mit Validierungsfehlern ähnelt dem folgenden Beispiel.

"extension": [ { "extension": [ { "url": "http://healthlake.amazonaws.com/aws-cm/status/", "valueString": "VALIDATION_ERROR" }, { "url": "http://healthlake.amazonaws.com/aws-cm/message/", "valueString": "Resource led to too many nested objects after NLP operation processed the document. 10937 nested objects exceeds the limit of 10000." } ], "url": "http://healthlake.amazonaws.com/aws-cm/" } ]
Anmerkung

A VALIDATION_ERROR kann auch auftreten, wenn bei der NLP-Dekoration mehr als 10.000 verschachtelte Objekte erstellt werden. In diesem Fall muss das Dokument vor der Verarbeitung in kleinere Dokumente aufgeteilt werden.

SQL-Integrationen

Problem: Warum erhalte ich eine Lake Formation, permissions error: lakeformation:PutDataLakeSettings wenn ich einen neuen Data Lake-Administrator hinzufüge?

Wenn Ihr IAM-Benutzer oder Ihre IAM-Rolle die AWSLakeFormationDataAdmin AWS verwaltete Richtlinie enthält, können Sie keine neuen Data Lake-Administratoren hinzufügen. Sie erhalten eine Fehlermeldung, die Folgendes enthält:

User arn:aws:sts::111122223333:assumed-role/lakeformation-admin-user is not authorized to perform: lakeformation:PutDataLakeSettings on resource: arn:aws:lakeformation:us-east-2:111122223333:catalog:111122223333 with an explicit deny in an identity-based policy

Die AWS verwaltete Richtlinie AdministratorAccess ist erforderlich, um einen IAM-Benutzer oder eine IAM-Rolle als AWS Lake Formation Data Lake-Administrator hinzuzufügen. Wenn Ihr IAM-Benutzer oder Ihre IAM-Rolle ebenfalls enthält, schlägt AWSLakeFormationDataAdmin die Aktion fehl. Die AWSLakeFormationDataAdmin AWS verwaltete Richtlinie enthält eine ausdrückliche Ablehnung des AWS Lake Formation Formation-API-Vorgangs,PutDataLakeSetting. Selbst Administratoren mit uneingeschränktem AWS Zugriff auf die AdministratorAccess verwaltete Richtlinie können durch die AWSLakeFormationDataAdmin Richtlinie eingeschränkt werden.

Problem: Wie migriere ich einen vorhandenen HealthLake Datenspeicher, um die Amazon Athena SQL-Integration zu verwenden?

HealthLake Datenspeicher, die vor dem 14. November 2022 erstellt wurden, funktionieren, können in Athena jedoch nicht mit SQL abgefragt werden. Um einen bereits vorhandenen Datenspeicher mit Athena abzufragen, müssen Sie ihn zunächst in einen neuen Datenspeicher migrieren.

Um Ihre HealthLake Daten in einen neuen Datenspeicher zu migrieren
  1. Erstellen Sie einen neuen Datenspeicher.

  2. Exportieren Sie die Daten aus dem bereits vorhandenen in einen Amazon S3 S3-Bucket.

  3. Importieren Sie die Daten aus dem Amazon S3 S3-Bucket in den neuen Datenspeicher.

Anmerkung

Das Exportieren von Daten in einen Amazon S3 S3-Bucket ist mit einem Aufpreis verbunden. Die zusätzliche Gebühr hängt von der Größe der Daten ab, die Sie exportieren.

Problem: Beim Erstellen eines neuen HealthLake Datenspeichers für die SQL-Integration ändert sich der Status des Datenspeichers nicht vonCreating.

Wenn Sie versuchen, einen neuen HealthLake Datenspeicher zu erstellen, und Ihr Datenspeicherstatus sich nicht von Creating ändert, müssen Sie Athena aktualisieren, um den AWS Glue Data Catalog verwenden zu können. Weitere Informationen finden Sie unter Upgrade auf den AWS Glue-Datenkatalog step-by-step im Amazon Athena Athena-Benutzerhandbuch.

Nach dem erfolgreichen Upgrade von können Sie einen HealthLake Datenspeicher erstellen. AWS Glue Data Catalog

Um einen alten HealthLake Datenspeicher zu entfernen, erstellen Sie einen Support-Fall mit AWS Support Center Console. Um Ihren Fall zu erstellen, melden Sie sich bei Ihrem AWS-Konto an und wählen Sie dann Kundenfall erstellen aus. Weitere Informationen finden Sie im Support Benutzerhandbuch unter Erstellen von Supportanfragen und Fallmanagement.

Problem: Die Athena-Konsole funktioniert nach dem Import von Daten in einen neuen HealthLake Datenspeicher nicht

Nachdem Sie Daten in einen neuen HealthLake Datenspeicher importiert haben, stehen die Daten möglicherweise nicht sofort zur Verfügung. Dies dient dazu, genügend Zeit für die Aufnahme der Daten in Apache Iceberg-Tabellen zu haben. Versuchen Sie es zu einem späteren Zeitpunkt erneut.

Problem: Wie verbinde ich Suchergebnisse in Athena mit anderen AWS Diensten?

Wenn Sie Ihre Suchergebnisse von Athena mit anderen AWS Diensten teilen, können Probleme auftreten, wenn Sie sie json_extract[1] als Teil einer SQL-Suchabfrage verwenden. Um dieses Problem zu beheben, müssen Sie auf CATVAR aktualisieren.

Dieses Problem tritt möglicherweise auf, wenn Sie versuchen, Speicherergebnisse, eine Tabelle (statisch) oder eine Ansicht (dynamisch) zu erstellen.