Risoluzione dei problemi AWS HealthLake - AWS HealthLake

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Risoluzione dei problemi AWS HealthLake

I seguenti argomenti forniscono consigli per la risoluzione di errori e problemi che potrebbero verificarsi durante l'utilizzo della console AWS CLI AWS SDKs, o HealthLake . Se trovi un problema che non è elencato in questa sezione, utilizza il pulsante Fornisci feedback nella barra laterale destra di questa pagina per segnalarlo.

Azioni relative all'archivio dati

Problema: quando tento di creare un archivio HealthLake dati, ricevo il seguente errore:

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

Il 14 novembre 2022, HealthLake ha aggiornato le autorizzazioni IAM richieste per creare un nuovo data store. Per ulteriori informazioni, consulta Configura un utente o un ruolo IAM da utilizzare HealthLake (amministratore IAM).

Problema: quando si crea un HealthLake data store utilizzando AWS SDKs, lo stato di creazione del data store restituisce un'eccezione o uno stato sconosciuto.

Aggiorna l' AWS SDK alla versione più recente se le tue chiamate DescribeFHIRDatastore o le chiamate ListFHIRDatastores API restituiscono un'eccezione o uno stato sconosciuto del data store.

Azioni di importazione

Problema: posso ancora utilizzarli HealthLake se i miei dati non sono in formato FHIR R4?

Solo i dati in formato FHIR R4 possono essere importati in un archivio dati. HealthLake Per un elenco di partner che possono contribuire a trasformare i dati sanitari esistenti in formato FHIR R4, consulta Partners.AWS HealthLake

Problema: perché il mio processo di importazione FHIR non è riuscito?

Un processo di importazione riuscito genererà una cartella con i risultati (registro di output) in .ndjson formato, tuttavia, i singoli record potrebbero non essere importati. In tal caso, verrà generata una seconda FAILURE cartella con un manifesto di record che non è stato possibile importare. Per ulteriori informazioni, consulta Importazione di dati FHIR con AWS HealthLake.

Per analizzare il motivo per cui un processo di importazione non è riuscito, utilizza l'DescribeFHIRImportJobAPI per analizzare il JobProperties. Si consiglia quanto segue:

  • Se lo stato è FAILED ed è presente un messaggio, gli errori sono correlati a parametri del lavoro, come la dimensione dei dati di input o il numero di file di input, che superano le HealthLake quote.

  • Se lo stato del processo di importazione èCOMPLETED_WITH_ERRORS, controllate il file manifesto per informazioni su quali file non sono stati importati correttamente. manifest.json

  • Se lo stato del processo di importazione è uguale FAILED e non è presente alcun messaggio, vai alla posizione di output del lavoro per accedere al file manifest,manifest.json.

Per ogni file di input, esiste un file di output non riuscito con il nome del file di input per ogni risorsa che non riesce a importare. Le risposte contengono il numero di riga (lineID) corrispondente alla posizione dei dati di input, l'oggetto di risposta FHIR (UpdateResourceResponse) e il codice di stato (statusCode) della risposta.

Un file di output di esempio potrebbe essere simile al seguente:

{"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}

L'esempio precedente mostra che si sono verificati errori sulle righe 3, 4, 7, 9, 15 delle linee di input corrispondenti del file di input. Per ognuna di queste righe, le spiegazioni sono le seguenti:

  • Nella riga 3, la risposta spiega che il contenuto resourceType fornito nella riga 3 del file di input non è valido.

  • Alla riga 5, la risposta spiega che c'è un errore di convalida FHIR nella riga 5 del file di input.

  • Alla riga 7, la risposta spiega che c'è un problema di convalida se viene resourceId fornito come input.

  • Alla riga 9, la risposta spiega che il file di input deve contenere un ID di risorsa valido.

  • Alla riga 15, la risposta del file di input è che il file non è in un formato JSON valido.

FHIR APIs

Problema: come posso implementare l'autorizzazione per il RESTful APIs FHIR?

Determinate la Strategia di autorizzazione all'archiviazione dei dati modalità di utilizzo.

Per creare l'autorizzazione SigV4 utilizzando il AWS SDK per Python (Boto3), create uno script simile all'esempio seguente.

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())

Problema: perché ricevo AccessDenied errori quando utilizzo il FHIR RESTful APIs per un archivio dati crittografato con una chiave KMS gestita dal cliente?

Le autorizzazioni sia per le chiavi gestite dal cliente che per le politiche IAM sono necessarie per consentire a un utente o un ruolo di accedere a un archivio dati. Un utente deve disporre delle autorizzazioni IAM richieste per utilizzare una chiave gestita dal cliente. Se un utente ha revocato o ritirato una concessione che HealthLake consentiva di utilizzare la chiave KMS gestita dal cliente, HealthLake restituirà un errore. AccessDenied

HealthLake deve disporre dell'autorizzazione per accedere ai dati dei clienti, crittografare le nuove risorse FHIR importate in un archivio dati e decrittografare le risorse FHIR quando vengono richieste. Per ulteriori informazioni, vedere Risoluzione dei problemi relativi alle autorizzazioni. AWS KMS

Problema: un'operazione dell'POSTAPI FHIR sull' HealthLake utilizzo di un documento da 10 MB restituisce l'errore. 413 Request Entity Too Large

AWS HealthLake ha un limite di 5 MB per le API di creazione e aggiornamento sincrono per evitare un aumento delle latenze e dei timeout. Puoi importare documenti di grandi dimensioni, fino a 164 MB, utilizzando il tipo di risorsa che utilizza l'BinaryAPI Bulk Import.

Integrazioni NLP

Problema: come posso attivare la funzionalità integrata HealthLake di elaborazione del linguaggio naturale?

A partire dal 14 novembre 2022, il comportamento predefinito degli archivi HealthLake dati è cambiato.

Archivi dati attuali: tutti gli archivi di HealthLake dati attuali smetteranno di utilizzare l'elaborazione del linguaggio naturale (NLP) su risorse con codifica DocumentReference base64. Ciò significa che DocumentReference le nuove risorse non verranno analizzate utilizzando l'NLP e non verranno generate nuove risorse in base al testo del tipo di risorsa. DocumentReference Per DocumentReference le risorse esistenti, i dati e le risorse generati tramite la PNL rimangono, ma non verranno aggiornati dopo il 20 febbraio 2023.

Nuovi archivi HealthLake dati: gli archivi dati creati dopo il 20 febbraio 2023 non eseguiranno l'elaborazione del linguaggio naturale (NLP) su risorse con codifica base64. DocumentReference

Per attivare l'integrazione HealthLake NLP, crea un caso di supporto utilizzando. AWS Support Center Console Per creare il tuo caso, accedi al tuo Account AWS, quindi scegli Crea caso. Per ulteriori informazioni sulla creazione di un caso e sulla gestione dei casi, consulta Creazione di casi di supporto e gestione dei casi nella Guida per l'Supporto utente.

Problema: >Come posso trovare DocumentReference risorse che non possono essere elaborate con la PNL integrata?

Se una DocumentReference risorsa non è valida, HealthLake fornisce un'estensione che indica un errore di convalida anziché inserirlo nell'output di PNL medico integrato. Per trovare DocumentReference le risorse che hanno portato a un errore di convalida durante l'elaborazione NLP, è possibile utilizzare la search funzione FHIR con la chiave di ricerca e il valore HealthLake di ricerca VALIDATION_ERROR. cm-decoration-status Questa ricerca elencherà tutte le DocumentReference risorse che hanno portato a errori di convalida, insieme a un messaggio di errore che descrive la natura dell'errore. La struttura del campo di estensione in quelle DocumentReference risorse con errori di convalida sarà simile all'esempio seguente.

"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/" } ]
Nota

A VALIDATION_ERROR può verificarsi anche se la decorazione NLP crea più di 10.000 oggetti annidati. Quando ciò accade, il documento deve essere suddiviso in documenti più piccoli prima dell'elaborazione.

Integrazioni SQL

Problema: Perché ottengo un Lake Formation permissions error: lakeformation:PutDataLakeSettings quando aggiungo un nuovo amministratore di data lake?

Se il tuo utente o ruolo IAM contiene la policy AWSLakeFormationDataAdmin AWS gestita, non puoi aggiungere nuovi amministratori di data lake. Riceverai un errore contenente quanto segue:

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

La policy AWS gestita AdministratorAccess è necessaria per aggiungere un utente o un ruolo IAM come amministratore del data lake AWS Lake Formation. Se l'utente o il ruolo IAM contiene anche AWSLakeFormationDataAdmin l'azione avrà esito negativo. La policy AWSLakeFormationDataAdmin AWS gestita contiene un rifiuto esplicito per il funzionamento dell'API AWS Lake Formation,. PutDataLakeSetting Anche gli amministratori con accesso completo all' AWS utilizzo della policy AdministratorAccess gestita possono essere limitati dalla policy. AWSLakeFormationDataAdmin

Problema: come posso migrare un HealthLake data store esistente per utilizzare l'integrazione con Amazon Athena SQL?

HealthLake gli archivi di dati creati prima del 14 novembre 2022 sono funzionali, ma non sono interrogabili in Athena utilizzando SQL. Per interrogare un data store preesistente con Athena, devi prima migrarlo in un nuovo data store.

Per migrare i HealthLake dati in un nuovo data store
  1. Crea un nuovo data store.

  2. Esporta i dati dal bucket preesistente in un bucket Amazon S3.

  3. Importa i dati nel nuovo data store dal bucket Amazon S3.

Nota

L'esportazione di dati in un bucket Amazon S3 comporta un costo aggiuntivo. Il costo aggiuntivo dipende dalla dimensione dei dati esportati.

Problema: quando si crea un nuovo HealthLake data store per l'integrazione SQL, lo stato del data store non cambia daCreating.

Se provi a creare un nuovo HealthLake data store e lo stato del tuo data store non cambia da Creazione, devi aggiornare Athena per utilizzare. AWS Glue Data Catalog Per ulteriori informazioni, consulta l'aggiornamento al AWS Glue Data Catalog step-by-step nella Guida per l'utente di Amazon Athena.

Dopo aver aggiornato correttamente AWS Glue Data Catalog, puoi creare un data store. HealthLake

Per rimuovere un vecchio archivio HealthLake dati, crea una richiesta di supporto utilizzando. AWS Support Center Console Per creare il tuo caso, accedi al tuo Account AWS, quindi scegli Crea caso. Per ulteriori informazioni, consulta Creazione di casi di supporto e gestione dei casi nella Guida Supporto per l'utente.

Problema: la console Athena non funziona dopo l'importazione dei dati in un nuovo archivio dati HealthLake

Dopo aver importato i dati in un nuovo archivio HealthLake dati, i dati potrebbero non essere disponibili per l'uso immediato. Questo serve per consentire ai dati di essere inseriti nelle tabelle di Apache Iceberg. Riprova in un secondo momento.

Problema: come posso collegare i risultati di ricerca in Athena ad altri AWS servizi?

Quando si condividono i risultati di ricerca di Athena con altri AWS servizi, possono verificarsi problemi quando li si utilizza json_extract[1] come parte di una query di ricerca SQL. Per risolvere questo problema, è necessario eseguire l'aggiornamento aCATVAR.

Potresti riscontrare questo problema quando provi a creare risultati di salvataggio, una tabella (statica) o una vista (dinamica).