Solución de problemas AWS HealthLake - AWS HealthLake

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Solución de problemas AWS HealthLake

En los temas siguientes se proporcionan consejos para solucionar los errores y problemas que puedan surgir al utilizar la HealthLake consola AWS CLI AWS SDKs, o. Si encuentra un problema que no aparece en esta sección, utilice el botón Enviar comentarios en la barra lateral derecha de esta página para informarlo.

Acciones de almacenamiento de datos

Problema: cuando intento crear un banco de HealthLake datos, aparece el siguiente error:

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

El 14 de noviembre de 2022, HealthLake actualicé los permisos de IAM necesarios para crear un nuevo banco de datos. Para obtener más información, consulte Configure el usuario o rol de IAM que desee utilizar HealthLake (administrador de IAM).

Problema: Al crear un banco de HealthLake datos mediante el AWS SDKs, el estado de creación del banco de datos devuelve un estado de excepción o desconocido.

Actualice su AWS SDK a la última versión si sus llamadas DescribeFHIRDatastore o las de la ListFHIRDatastores API devuelven una excepción o un estado desconocido del almacén de datos.

Acciones de importación

Problema: ¿Puedo seguir utilizándolos HealthLake si mis datos no están en formato FHIR R4?

Solo los datos con formato FHIR R4 se pueden importar a un almacén de datos. HealthLake Para ver una lista de socios que pueden ayudar a transformar los datos de salud existentes al formato R4 del FHIR, consulte Socios.AWS HealthLake

Problema: ¿Por qué falló mi trabajo de importación del FHIR?

Si la importación se realiza correctamente, se generará una carpeta con los resultados (registro de salida) en .ndjson formato; sin embargo, es posible que no se puedan importar registros individuales. Cuando esto suceda, se generará una segunda FAILURE carpeta con un manifiesto de los registros que no se pudieron importar. Para obtener más información, consulte Importación de datos del FHIR con AWS HealthLake.

Para analizar por qué ha fallado un trabajo de importación, utilice la DescribeFHIRImportJob API para analizar el JobProperties. Se recomienda lo siguiente:

  • Si el estado es FAILED y aparece un mensaje, los errores están relacionados con parámetros del trabajo, como el tamaño de los datos de entrada o el número de archivos de entrada, que superan HealthLake las cuotas.

  • Si el estado del trabajo de importación esCOMPLETED_WITH_ERRORS, consulte el archivo de manifiesto para obtener información sobre los archivos que no se importaron correctamente. manifest.json

  • Si el estado del trabajo de importación es FAILED y no hay ningún mensaje, vaya a la ubicación de salida del trabajo para acceder al archivo de manifiestomanifest.json.

Para cada archivo de entrada, hay un archivo de salida con un nombre de archivo de entrada para cualquier recurso que no se pueda importar. Las respuestas contienen el número de línea (LineID) correspondiente a la ubicación de los datos de entrada, el objeto de respuesta del FHIR (UpdateResourceResponse) y el código de estado (StatusCode) de la respuesta.

Un ejemplo de archivo de salida podría ser similar al siguiente:

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

El ejemplo anterior muestra que hubo errores en las líneas 3, 4, 7, 9 y 15 de las líneas de entrada correspondientes del archivo de entrada. Para cada una de esas líneas, las explicaciones son las siguientes:

  • En la línea 3, la respuesta explica lo que resourceType se proporciona en la línea 3 del archivo de entrada no es válido.

  • En la línea 5, la respuesta explica que hay un error de validación del FHIR en la línea 5 del archivo de entrada.

  • En la línea 7, la respuesta explica que hay un problema de validación y resourceId se proporciona como entrada.

  • En la línea 9, la respuesta explica que el archivo de entrada debe contener un identificador de recurso válido.

  • En la línea 15, la respuesta del archivo de entrada es que el archivo no está en un formato JSON válido.

FHIR APIs

Asunto: ¿Cómo puedo implementar la autorización para el RESTful APIs FHIR?

Determine el que se Estrategia de autorización del almacén de datos va a utilizar.

Para crear una autorización SigV4 mediante el AWS SDK para Python (Boto3), cree un script similar al siguiente ejemplo.

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: ¿Por qué recibo AccessDenied errores al utilizar el FHIR RESTful APIs para un almacén de datos cifrado con una clave KMS gestionada por el cliente?

Para que un usuario o rol pueda acceder a un almacén de datos, se requieren permisos tanto para las claves administradas por el cliente como para las políticas de IAM. El usuario debe tener los permisos de IAM necesarios para utilizar una clave gestionada por el cliente. Si un usuario revoca o retira una concesión que daba HealthLake permiso para usar la clave de KMS administrada por el cliente, HealthLake devolverá un AccessDenied error.

HealthLake debe tener el permiso para acceder a los datos de los clientes, cifrar los nuevos recursos del FHIR importados a un almacén de datos y descifrar los recursos del FHIR cuando se soliciten. Para obtener más información, consulte Solución de problemas de permisos. AWS KMS

Problema: una operación de la POST API del FHIR que HealthLake utiliza un documento de 10 MB devuelve el 413 Request Entity Too Large error.

AWS HealthLake tiene un límite sincrónico de 5 MB para crear y actualizar la API para evitar el aumento de las latencias y los tiempos de espera. Puede ingerir documentos de gran tamaño, de hasta 164 MB, utilizando el tipo de Binary recurso que utilice la API de importación masiva.

Integraciones de PNL

Problema: ¿Cómo activo la función HealthLake de procesamiento de lenguaje natural integrada?

A partir del 14 de noviembre de 2022, el comportamiento predeterminado de HealthLake los almacenes de datos cambió.

Almacenes de datos actuales: todos los almacenes de HealthLake datos actuales dejarán de utilizar el procesamiento del lenguaje natural (NLP) en los recursos codificados en base64DocumentReference. Esto significa que DocumentReference los nuevos recursos no se analizarán mediante la PNL y no se generarán nuevos recursos a partir del texto del tipo de recurso. DocumentReference En el caso de DocumentReference los recursos existentes, los datos y los recursos generados mediante la PNL permanecen, pero no se actualizarán después del 20 de febrero de 2023.

Nuevos almacenes de datos: HealthLake los almacenes de datos creados después del 20 de febrero de 2023 no procesarán el lenguaje natural (NLP) en recursos codificados en DocumentReference base64.

Para activar la integración de la HealthLake PNL, cree un caso de soporte utilizando. AWS Support Center Console Para crear tu caso, inicia sesión en tu y Cuenta de AWS, a continuación, selecciona Crear caso. Para obtener más información sobre la creación de un caso y la gestión de casos, consulte Creación de casos de soporte y gestión de casos en la Guía del Soporte usuario.

Problema: > ¿Cómo puedo encontrar DocumentReference recursos que no puedan procesarse con la PNL integrada?

Si un DocumentReference recurso no es válido, HealthLake proporciona una extensión que indica un error de validación en lugar de incluirlo en el resultado de la PNL médica integrada. Para encontrar DocumentReference los recursos que provocaron un error de validación durante el procesamiento de la PNL, puede utilizar la search función FHIR con la clave HealthLake de búsqueda cm-decoration-statusy el valor de búsqueda VALIDATION_ERROR. Esta búsqueda mostrará una lista de todos los DocumentReference recursos que provocaron errores de validación, junto con un mensaje de error que describe la naturaleza del error. La estructura del campo de extensión en los DocumentReference recursos con errores de validación se parecerá a la del siguiente ejemplo.

"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

También VALIDATION_ERROR puede ocurrir si la decoración de la PNL crea más de 10 000 objetos anidados. Cuando esto sucede, el documento debe dividirse en documentos más pequeños antes de procesarlo.

Integraciones de SQL

Problema: ¿Por qué obtengo un Lake Formation permissions error: lakeformation:PutDataLakeSettings al añadir un nuevo administrador de lagos de datos?

Si su usuario o rol de IAM contiene la política AWSLakeFormationDataAdmin AWS administrada, no podrá añadir nuevos administradores de lagos de datos. Aparecerá un error que contiene lo siguiente:

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 política AWS gestionada AdministratorAccess es necesaria para añadir un usuario o rol de IAM como administrador AWS del lago de datos de Lake Formation. Si su usuario o rol de IAM también lo contiene, AWSLakeFormationDataAdmin la acción fallará. La política AWSLakeFormationDataAdmin AWS gestionada contiene una denegación explícita de la operación de la API AWS Lake Formation,PutDataLakeSetting. Incluso los administradores con acceso total al AWS uso de la política AdministratorAccess administrada pueden estar limitados por la AWSLakeFormationDataAdmin política.

Problema: ¿Cómo puedo migrar un almacén de HealthLake datos existente para usar la integración de Amazon Athena SQL?

HealthLake los almacenes de datos creados antes del 14 de noviembre de 2022 son funcionales, pero no se pueden consultar en Athena mediante SQL. Para consultar un banco de datos preexistente con Athena, primero debe migrarlo a un banco de datos nuevo.

Para migrar sus HealthLake datos a un nuevo banco de datos
  1. Cree un nuevo banco de datos.

  2. Exporte los datos del depósito preexistente a un bucket de Amazon S3.

  3. Importe los datos al nuevo almacén de datos desde el bucket de Amazon S3.

nota

La exportación de datos a un bucket de Amazon S3 conlleva un coste adicional. El cargo adicional depende del tamaño de los datos que exporte.

Problema: Al crear un nuevo HealthLake banco de datos para la integración con SQL, el estado del banco de datos no cambiaCreating.

Si intenta crear un nuevo banco de HealthLake datos y su estado no cambia desde Crear, debe actualizar Athena para usar el. AWS Glue Data Catalog Para obtener más información, consulte Actualización al catálogo de datos de AWS Glue step-by-step en la Guía del usuario de Amazon Athena.

Después de actualizar correctamente el AWS Glue Data Catalog, puede crear un almacén de HealthLake datos.

Para eliminar un almacén de HealthLake datos antiguo, cree un caso de soporte utilizando AWS Support Center Console. Para crear su caso, inicie sesión en su y Cuenta de AWS, a continuación, seleccione Crear caso. Para obtener más información, consulte Creación de casos de soporte y administración de casos en la Guía del Soporte usuario.

Problema: la consola Athena no funciona después de importar datos a un nuevo HealthLake almacén de datos

Después de importar los datos a un nuevo banco de HealthLake datos, es posible que los datos no estén disponibles para su uso inmediato. Esto es para dar tiempo a que los datos se ingieran en las tablas de Apache Iceberg. Inténtelo de nuevo más tarde.

Problema: ¿Cómo puedo conectar los resultados de búsqueda de Athena con otros AWS servicios?

Al compartir los resultados de búsqueda de Athena con otros AWS servicios, pueden producirse problemas al utilizarlos json_extract[1] como parte de una consulta de búsqueda de SQL. Para solucionar este problema, debe actualizar aCATVAR.

Este problema puede producirse al intentar crear resultados guardados, una tabla (estática) o una vista (dinámica).