Solução de problemas AWS HealthLake - AWS HealthLake

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Solução de problemas AWS HealthLake

Os tópicos a seguir fornecem dicas de solução de problemas para erros e problemas que você pode encontrar ao usar o HealthLake console AWS CLI AWS SDKs, ou. Se você encontrar um problema que não esteja listado nesta seção, use o botão Fornecer feedback na barra lateral direita desta página para denunciá-lo.

Ações do armazenamento de dados

Problema: quando tento criar um armazenamento de HealthLake dados, recebo o seguinte erro:

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

Em 14 de novembro de 2022, HealthLake atualizei as permissões necessárias do IAM para criar um novo armazenamento de dados. Para obter mais informações, consulte Configurar um usuário ou uma função do IAM para usar HealthLake (administrador do IAM).

Problema: Ao criar um armazenamento de HealthLake dados usando o AWS SDKs, o status de criação do armazenamento de dados retorna uma exceção ou um status desconhecido.

Atualize seu AWS SDK para a versão mais recente se suas chamadas DescribeFHIRDatastore ou de ListFHIRDatastores API retornarem uma exceção ou um status desconhecido do armazenamento de dados.

Importar ações

Problema: ainda posso usar HealthLake se meus dados não estiverem no formato FHIR R4?

Somente dados formatados em FHIR R4 podem ser importados para um armazenamento de dados. HealthLake Para obter uma lista de parceiros que podem ajudar a transformar os dados de saúde existentes no formato FHIR R4, consulte Parceiros.AWS HealthLake

Problema: Por que meu trabalho de importação do FHIR falhou?

Um trabalho de importação bem-sucedido gerará uma pasta com resultados (log de saída) no .ndjson formato, no entanto, registros individuais podem falhar na importação. Quando isso acontecer, uma segunda FAILURE pasta será gerada com um manifesto de registros que falharam na importação. Para obter mais informações, consulte Importando dados FHIR com AWS HealthLake.

Para analisar por que um trabalho de importação falhou, use a DescribeFHIRImportJob API para analisar JobProperties o. O seguinte é recomendado:

  • Se o status for FAILED e uma mensagem estiver presente, as falhas estão relacionadas a parâmetros do trabalho, como tamanho dos dados de entrada ou número de arquivos de entrada, que estão além das HealthLake cotas.

  • Se o status do trabalho de importação forCOMPLETED_WITH_ERRORS, verifique o arquivo de manifesto,manifest.json, para obter informações sobre quais arquivos não foram importados com êxito.

  • Se o status do trabalho de importação for FAILED e uma mensagem não estiver presente, vá até o local de saída do trabalho para acessar o arquivo de manifesto,manifest.json.

Para cada arquivo de entrada, há um arquivo de saída de falha com o nome do arquivo de entrada para qualquer recurso que falhe na importação. As respostas contêm o número da linha (lineID) correspondente à localização dos dados de entrada, objeto de resposta FHIR (UpdateResourceResponse) e código de status (statusCode) da resposta.

Um exemplo de arquivo de saída pode ser semelhante ao seguinte:

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

O exemplo acima mostra que houve falhas nas linhas 3, 4, 7, 9, 15 das linhas de entrada correspondentes do arquivo de entrada. Para cada uma dessas linhas, as explicações são as seguintes:

  • Na linha 3, a resposta explica que o resourceType fornecido na linha 3 do arquivo de entrada não é válido.

  • Na linha 5, a resposta explica que há um erro de validação FHIR na linha 5 do arquivo de entrada.

  • Na linha 7, a resposta explica que há um problema de validação com o resourceId fornecimento como entrada.

  • Na linha 9, a resposta explica que o arquivo de entrada deve conter um ID de recurso válido.

  • Na linha 15, a resposta do arquivo de entrada é que o arquivo não está em um formato JSON válido.

FHIR APIs

Problema: Como faço para implementar a autorização para o FHIR RESTful APIs?

Determine o Estratégia de autorização do armazenamento de dados a ser usado.

Para criar a autorização SigV4 usando o AWS SDK para Python (Boto3), crie um script semelhante ao exemplo a seguir.

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 que estou recebendo AccessDenied erros ao usar o FHIR RESTful APIs para um armazenamento de dados criptografado com uma chave KMS gerenciada pelo cliente?

As permissões para chaves gerenciadas pelo cliente e políticas do IAM são necessárias para que um usuário ou função acesse um armazenamento de dados. Um usuário deve ter as permissões necessárias do IAM para usar uma chave gerenciada pelo cliente. Se um usuário revogou ou retirou uma concessão que dava HealthLake permissão para usar a chave KMS gerenciada pelo cliente, HealthLake retornará um AccessDenied erro.

HealthLake deve ter a permissão para acessar os dados do cliente, criptografar novos recursos do FHIR importados para um armazenamento de dados e descriptografar os recursos do FHIR quando solicitados. Para obter mais informações, consulte Solução de problemas de AWS KMS permissões.

Problema: uma operação POST da API FHIR HealthLake usando um documento de 10 MB está retornando o erro. 413 Request Entity Too Large

AWS HealthLake tem um limite síncrono de criação e atualização da API de 5 MB para evitar maiores latências e tempos limite. Você pode ingerir documentos grandes, de até 164 MB, usando o tipo de Binary recurso usando a API de importação em massa.

Integrações de PNL

Problema: Como faço para ativar HealthLake o recurso integrado de processamento de linguagem natural do?

Em 14 de novembro de 2022, o comportamento padrão dos armazenamentos de HealthLake dados mudou.

Armazenamentos de dados atuais: todos os armazenamentos de HealthLake dados atuais deixarão de usar o processamento de linguagem natural (NLP) em recursos codificados em base64DocumentReference. Isso significa que novos DocumentReference recursos não serão analisados usando a PNL e nenhum novo recurso será gerado com base no texto do tipo de DocumentReference recurso. Para DocumentReference os recursos existentes, os dados e recursos gerados via PNL permanecem, mas não serão atualizados após 20 de fevereiro de 2023.

Novos armazenamentos de HealthLake dados: os armazenamentos de dados criados após 20 de fevereiro de 2023 não executarão processamento de linguagem natural (NLP) em recursos codificados em base64DocumentReference.

Para ativar a integração HealthLake da PNL, crie um caso de suporte usando AWS Support Center Console. Para criar seu caso, faça login no seu Conta da AWS e escolha Criar caso. Para saber mais sobre a criação de um caso e o gerenciamento de casos, consulte Criação de casos de suporte e gerenciamento de casos no Guia Suporte do usuário.

Problema: >Como faço para encontrar DocumentReference recursos que não puderam ser processados pela PNL integrada?

Se um DocumentReference recurso não for válido, HealthLake fornece uma extensão indicando um erro de validação em vez de fornecê-la na saída médica integrada de PNL. Para encontrar DocumentReference recursos que levaram a um erro de validação durante o processamento da PNL, você pode usar a search função FHIR com a chave HealthLake de pesquisa cm-decoration-statuse o valor de pesquisa VALIDATION_ERROR. Essa pesquisa listará todos os DocumentReference recursos que levaram a erros de validação, junto com uma mensagem de erro descrevendo a natureza do erro. A estrutura do campo de extensão nesses DocumentReference recursos com erros de validação será semelhante ao exemplo a seguir.

"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 também VALIDATION_ERROR pode ocorrer se a decoração de PNL criar mais de 10.000 objetos aninhados. Quando isso acontece, o documento deve ser dividido em documentos menores antes do processamento.

Integrações SQL

Problema: Por que recebo um Lake Formation permissions error: lakeformation:PutDataLakeSettings ao adicionar um novo administrador de data lake?

Se seu usuário ou função do IAM contiver a política AWSLakeFormationDataAdmin AWS gerenciada, você não poderá adicionar novos administradores de data lake. Você receberá um erro contendo o seguinte:

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

A política AWS gerenciada AdministratorAccess é necessária para adicionar um usuário ou uma função do IAM como administrador de data lake do AWS Lake Formation. Se seu usuário ou função do IAM também contiverAWSLakeFormationDataAdmin, a ação falhará. A política AWSLakeFormationDataAdmin AWS gerenciada contém uma negação explícita da operação da API AWS Lake Formation,PutDataLakeSetting. Até mesmo administradores com acesso total ao AWS uso da política AdministratorAccess gerenciada podem ser limitados pela AWSLakeFormationDataAdmin política.

Problema: Como faço para migrar um HealthLake datastore existente para usar a integração do Amazon Athena SQL?

HealthLake os armazenamentos de dados criados antes de 14 de novembro de 2022 são funcionais, mas não podem ser consultados no Athena usando SQL. Para consultar um armazenamento de dados preexistente com o Athena, você deve primeiro migrá-lo para um novo armazenamento de dados.

Para migrar seus HealthLake dados para um novo armazenamento de dados
  1. Crie um novo armazenamento de dados.

  2. Exporte os dados do pré-existente para um bucket do Amazon S3.

  3. Importe os dados para o novo armazenamento de dados do bucket do Amazon S3.

nota

A exportação de dados para um bucket do Amazon S3 incorre em uma taxa extra. A taxa extra depende do tamanho dos dados que você exporta.

Problema: ao criar um novo armazenamento de HealthLake dados para integração com SQL, o status do armazenamento de dados não muda deCreating.

Se você tentar criar um novo armazenamento de HealthLake dados e o status do armazenamento de dados não mudar de Criando, você precisará atualizar o Athena para usar o. AWS Glue Data Catalog Para obter mais informações, consulte Atualização para o catálogo de dados AWS Glue step-by-step no Guia do usuário do Amazon Athena.

Depois de atualizar com sucesso o AWS Glue Data Catalog, você pode criar um armazenamento de HealthLake dados.

Para remover um armazenamento de HealthLake dados antigo, crie um caso de suporte usando AWS Support Center Console. Para criar seu caso, faça login no seu Conta da AWS e escolha Criar caso. Para saber mais, consulte Criação de casos de suporte e gerenciamento de casos no Guia Suporte do usuário.

Problema: o console do Athena não está funcionando depois de importar dados para um novo armazenamento de dados HealthLake

Depois de importar dados para um novo armazenamento de HealthLake dados, os dados podem não estar disponíveis para uso imediato. Isso é para dar tempo para que os dados sejam ingeridos nas tabelas do Apache Iceberg. Tente novamente mais tarde.

Problema: Como faço para conectar os resultados da pesquisa no Athena a outros AWS serviços?

Ao compartilhar seus resultados de pesquisa do Athena com outros AWS serviços, podem ocorrer problemas quando você usa json_extract[1] como parte de uma consulta de pesquisa SQL. Para corrigir esse problema, você deve atualizar para CATVAR o.

Você pode encontrar esse problema ao tentar criar resultados salvos, uma tabela (estática) ou uma exibição (dinâmica).