Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Résolution des problèmes AWS HealthLake
Les rubriques suivantes fournissent des conseils de résolution des erreurs et des problèmes que vous pourriez rencontrer lors de l'utilisation de la HealthLake console AWS CLI AWS SDKs, ou. Si vous trouvez un problème qui n'est pas répertorié dans cette section, utilisez le bouton Envoyer des commentaires dans la barre latérale droite de cette page pour le signaler.
Rubriques
Actions relatives au stockage des données
Problème : Lorsque j'essaie de créer un magasin de HealthLake données, le message d'erreur suivant s'affiche :
AccessDeniedException: Insufficient Lake Formation permission(s): Required Database on Catalog
Le 14 novembre 2022, les autorisations IAM requises ont été HealthLake mises à jour pour créer un nouveau magasin de données. Pour de plus amples informations, veuillez consulter Configuration d'un utilisateur ou d'un rôle IAM à utiliser HealthLake (administrateur IAM).
Problème : lors de la création d'un magasin de HealthLake données à l'aide du AWS SDKs, le statut de création du magasin de données renvoie une exception ou un statut inconnu.
Mettez à jour votre AWS SDK vers la dernière version si vos appels DescribeFHIRDatastore ou ceux de ListFHIRDatastores l'API renvoient une exception ou un statut de banque de données inconnu.
Actions d'importation
Problème : Puis-je toujours l'utiliser HealthLake si mes données ne sont pas au format FHIR R4 ?
Seules les données au format FHIR R4 peuvent être importées dans un HealthLake magasin de données. Pour une liste des partenaires qui peuvent aider à transformer les données de santé existantes au format FHIR R4, voir AWS HealthLake Partenaires.
Problème : Pourquoi ma tâche d'importation FHIR a-t-elle échoué ?
Une tâche d'importation réussie générera un dossier avec les résultats (journal de sortie) au .ndjson format, mais l'importation d'enregistrements individuels peut échouer. Dans ce cas, un deuxième FAILURE dossier sera généré avec un manifeste des enregistrements dont l'importation n'a pas pu être effectuée. Pour de plus amples informations, veuillez consulter Importation de données FHIR avec AWS HealthLake.
Pour analyser pourquoi une tâche d'importation a échoué, utilisez l'DescribeFHIRImportJobAPI pour analyser le JobProperties. Il est recommandé de procéder comme suit :
-
Si le statut est
FAILEDet qu'un message est présent, les échecs sont liés à des paramètres de tâche tels que la taille des données d'entrée ou le nombre de fichiers d'entrée dépassant les HealthLake quotas. -
Si le statut de la tâche d'importation est le suivant
COMPLETED_WITH_ERRORSmanifest.json, consultez le fichier manifeste pour savoir quels fichiers n'ont pas été importés correctement. -
Si le statut de la tâche d'importation est le même
FAILEDet qu'aucun message n'est présent, rendez-vous à l'emplacement de sortie de la tâche pour accéder au fichier manifeste,manifest.json.
Pour chaque fichier d'entrée, il existe un fichier de sortie d'échec avec le nom du fichier d'entrée pour toute ressource dont l'importation échoue. Les réponses contiennent le numéro de ligne (LineID) correspondant à l'emplacement des données d'entrée, l'objet de réponse FHIR (UpdateResourceResponse) et le code d'état (StatusCode) de la réponse.
Un exemple de fichier de sortie peut être similaire au suivant :
{"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'exemple ci-dessus montre qu'il y a eu des défaillances sur les lignes 3, 4, 7, 9, 15 à partir des lignes d'entrée correspondantes du fichier d'entrée. Pour chacune de ces lignes, les explications sont les suivantes :
-
Sur la ligne 3, la réponse explique que le contenu
resourceTypefourni dans la ligne 3 du fichier d'entrée n'est pas valide. -
Sur la ligne 5, la réponse explique qu'il y a une erreur de validation FHIR dans la ligne 5 du fichier d'entrée.
-
À la ligne 7, la réponse explique qu'il existe un problème de validation avec la
resourceIdvaleur fournie en entrée. -
Sur la ligne 9, la réponse explique que le fichier d'entrée doit contenir un identifiant de ressource valide.
-
À la ligne 15, la réponse du fichier d'entrée est que le fichier n'est pas dans un format JSON valide.
FHIR APIs
Problème : Comment mettre en œuvre l'autorisation pour le FHIR RESTful APIs ?
Déterminez le Stratégie d'autorisation du magasin de données à utiliser.
Pour créer une autorisation SigV4 à l'aide de AWS SDK pour Python (Boto3), créez un script similaire à l'exemple suivant.
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())
Problème : Pourquoi est-ce que je reçois AccessDenied des erreurs lorsque j'utilise le FHIR RESTful APIs pour un magasin de données chiffré avec une clé KMS gérée par le client ?
Les autorisations relatives aux clés gérées par le client et aux politiques IAM sont requises pour qu'un utilisateur ou un rôle puisse accéder à un magasin de données. Un utilisateur doit disposer des autorisations IAM requises pour utiliser une clé gérée par le client. Si un utilisateur révoque ou retire une HealthLake autorisation autorisant l'utilisation de la clé KMS gérée par le client, un AccessDenied message d'erreur HealthLake sera renvoyé.
HealthLake doit avoir l'autorisation d'accéder aux données des clients, de chiffrer les nouvelles ressources FHIR importées dans un magasin de données et de déchiffrer les ressources FHIR lorsqu'elles sont demandées. Pour plus d'informations, consultez la section Résolution des problèmes liés AWS KMS aux autorisations.
Problème : Une opération de POST l'API FHIR HealthLake utilisant un document de 10 Mo renvoie l'413 Request Entity Too Largeerreur.
AWS HealthLake dispose d'une limite d'API de création et de mise à jour synchrone de 5 Mo afin d'éviter des latences et des délais d'attente accrus. Vous pouvez ingérer des documents volumineux, jusqu'à 164 Mo, en utilisant le type de Binary ressource à l'aide de l'API d'importation en bloc.
Intégrations NLP
Problème : Comment activer la fonction intégrée HealthLake de traitement du langage naturel ?
Le 14 novembre 2022, le comportement par défaut des magasins de HealthLake données a changé.
Magasins de données actuels : tous les magasins de HealthLake données actuels cesseront d'utiliser le traitement du langage naturel (NLP) sur les ressources codées en base64DocumentReference. Cela signifie que les nouvelles DocumentReference ressources ne seront pas analysées à l'aide du NLP et qu'aucune nouvelle ressource ne sera générée à partir du texte du type de DocumentReference ressource. Pour les DocumentReference ressources existantes, les données et les ressources générées via le NLP sont conservées, mais elles ne seront pas mises à jour après le 20 février 2023.
Nouveaux magasins de données : les magasins de HealthLake données créés après le 20 février 2023 n'effectueront pas de traitement du langage naturel (NLP) sur les ressources codées en base64DocumentReference.
Pour activer l'intégration du HealthLake NLP, créez un dossier d'assistance à l'aide AWS Support Center Console
Problème : >Comment trouver les DocumentReference ressources qui n'ont pas pu être traitées par le NLP intégré ?
Si une DocumentReference ressource n'est pas valide, HealthLake fournit une extension indiquant une erreur de validation au lieu de la fournir dans la sortie PNL médicale intégrée. Pour rechercher les DocumentReference ressources qui ont entraîné une erreur de validation lors du traitement NLP, vous pouvez utiliser la search fonction FHIR avec la clé HealthLake de recherche cm-decoration-statuset la valeur de recherche VALIDATION_ERROR. Cette recherche répertorie toutes les DocumentReference ressources ayant entraîné des erreurs de validation, ainsi qu'un message d'erreur décrivant la nature de l'erreur. La structure du champ d'extension dans les DocumentReference ressources présentant des erreurs de validation ressemblera à l'exemple suivant.
"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/" } ]
Note
Un VALIDATION_ERROR peut également se produire si la décoration NLP crée plus de 10 000 objets imbriqués. Dans ce cas, le document doit être scindé en documents plus petits avant d'être traité.
Intégrations SQL
Problème : Pourquoi est-ce que j'obtiens un Lake Formation permissions error:
lakeformation:PutDataLakeSettings lorsque j'ajoute un nouvel administrateur de lac de données ?
Si votre utilisateur ou rôle IAM contient la politique AWSLakeFormationDataAdmin AWS gérée, vous ne pouvez pas ajouter de nouveaux administrateurs de data lake. Vous recevrez un message d'erreur contenant les informations suivantes :
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 politique AWS gérée AdministratorAccess est requise pour ajouter un utilisateur ou un rôle IAM en tant qu'administrateur AWS du lac de données de Lake Formation. Si votre utilisateur ou rôle IAM en contient également, AWSLakeFormationDataAdmin l'action échouera. La politique AWSLakeFormationDataAdmin AWS gérée contient un refus explicite de l'opération de l'API AWS Lake Formation,PutDataLakeSetting. Même les administrateurs disposant d'un accès complet à l' AWS utilisation de la politique AdministratorAccess gérée peuvent être limités par cette AWSLakeFormationDataAdmin dernière.
Problème : Comment migrer un magasin de HealthLake données existant pour utiliser l'intégration SQL d'Amazon Athena ?
HealthLake les magasins de données créés avant le 14 novembre 2022 sont fonctionnels, mais ne peuvent pas être interrogés dans Athena à l'aide de SQL. Pour interroger un magasin de données préexistant avec Athena, vous devez d'abord le migrer vers un nouveau magasin de données.
Pour migrer vos HealthLake données vers un nouveau magasin de données
-
Créez un nouveau magasin de données.
-
Exportez les données du compartiment préexistant vers un compartiment Amazon S3.
-
Importez les données dans le nouveau magasin de données depuis le compartiment Amazon S3.
Note
L'exportation de données vers un compartiment Amazon S3 entraîne des frais supplémentaires. Les frais supplémentaires dépendent de la taille des données que vous exportez.
Problème : lors de la création d'un nouveau magasin de HealthLake données pour l'intégration SQL, le statut du magasin de données ne change pas deCreating.
Si vous essayez de créer un nouveau magasin de HealthLake données et que le statut de votre magasin de données ne change pas depuis Création, vous devez mettre Athéna à jour pour qu'elle utilise le. AWS Glue Data Catalog Pour plus d'informations, consultez la section Mise à niveau vers le catalogue de données AWS Glue step-by-step dans le guide de l'utilisateur Amazon Athena.
Une fois la mise à niveau réussie AWS Glue Data Catalog, vous pouvez créer un magasin de HealthLake données.
Pour supprimer un ancien magasin de HealthLake données, créez un dossier d'assistance à l'aide de AWS Support Center Console
Problème : La console Athena ne fonctionne pas après l'importation de données dans un nouveau HealthLake magasin de données
Une fois que vous avez importé des données dans un nouveau magasin de HealthLake données, il est possible que celles-ci ne soient pas disponibles pour une utilisation immédiate. Cela permet de laisser le temps aux données d'être ingérées dans les tables Apache Iceberg. Réessayez ultérieurement.
Problème : Comment associer les résultats de recherche d'Athena à d'autres AWS services ?
Lorsque vous partagez les résultats de recherche d'Athena avec d'autres AWS services, des problèmes peuvent survenir lorsque vous les utilisez dans json_extract[1] le cadre d'une requête de recherche SQL. Pour résoudre ce problème, vous devez effectuer une mise à jour versCATVAR.
Vous pouvez rencontrer ce problème lorsque vous essayez de créer des résultats de sauvegarde, une table (statique) ou une vue (dynamique).