Solução de problemas

Saiba mais sobre as etapas de solução de problemas que podem ser úteis se você tiver dúvidas ao usar a API Cloud Healthcare.

Não é possível ativar a API Cloud Healthcare

Ao ativar a API Cloud Healthcare pela primeira vez no projeto do Google Cloud, é possível que ocorra um erro de permissão indicando que você não tem permissão para ativar as APIs Google Cloud para o projeto.

Consulte Como ativar e desativar APIs para informações sobre como ativar APIs Google Cloud, incluindo a API Cloud Healthcare.

Não é possível autenticar na API Cloud Healthcare

Ao chamar a API Cloud Healthcare, é possível que você receba uma mensagem de erro indicando que suas "credenciais padrão do aplicativo" não estão disponíveis.

Consulte Como autenticar na API para informações sobre como configurar o Application Default Credentials ou passar as credenciais de autenticação manualmente para um aplicativo ou comando.

Conta de serviço da API Cloud Healthcare ou papel de Agente de serviço do Cloud Healthcare

A conta de serviço do Agente de serviço do Cloud Healthcare é criada automaticamente quando você ativa a API Cloud Healthcare e cria seu primeiro conjunto de dados. Esta é uma conta serviço gerenciado pelo Google. Não é possível excluir completamente a conta de serviço, mas, em determinadas circunstâncias, ela pode não aparecer na página "Identity and Access Management" e talvez você tenha problemas com a API Cloud Healthcare.

Para que a API Cloud Healthcare funcione corretamente e conclua tarefas como publicar e receber mensagens do Pub/Sub ou gravar métricas no Cloud Logging, a conta de serviço do Agente de serviço do Cloud Healthcare precisa existir e ter o papel do IAM de Agente de serviço de saúde.

É possível recriar a conta de serviço do Agente de serviço do Cloud Healthcare ou conceder a ela o papel IAM de agente de serviço da Healthcare, se você encontrar um dos seguintes problemas:

  • Não é possível encontrar a conta de serviço do Agente de serviço do Cloud Healthcare na página gerenciamento de identidade e acesso.
  • É possível encontrar a conta de serviço do Agente de serviço do Cloud Healthcare, mas ela não inclui o papel Agente de serviço do Cloud Healthcare.

Use a Google Cloud CLI para adicionar o papel healthcare.serviceAgent à conta de serviço do Agente de serviço do Cloud Healthcare usando o identificador da conta de serviço, que usa o formato service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.

Para recriar a conta de serviço ou conceder o papel IAM do agente de serviço do Healthcare, execute o comando gcloud projects add-iam-policy-binding. Para encontrar PROJECT_ID e PROJECT_NUMBER, consulte Como identificar projetos.

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com \
    --role=roles/healthcare.serviceAgent

Se a solicitação for bem-sucedida, o prompt de comando exibirá uma mensagem semelhante à seguinte amostra:

Updated IAM policy for project [PROJECT_ID].
bindings:
...
- members:
  - serviceAccount:service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.com
  role: roles/healthcare.serviceAgent
...
etag: VALUE
version: VALUE

Retorne à página Gerenciamento de identidade e acesso novamente e verifique o seguinte:

  • A coluna Membro contém um identificador de conta de serviço no formato service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.
  • Na mesma linha da coluna Membro, a coluna Nome exibe o Agente de serviço do Cloud Healthcare.
  • Na mesma linha da coluna Membro, a coluna Papel contém o Agente de serviços do Cloud Healthcare.

Pacote transacional FHIR cancelado devido à carga pesada cumulativa

Ao executar um pacote transacional FHIR, você pode receber uma mensagem de erro indicando que a solicitação foi "cancelada devido à carga pesada cumulativa para a execução do pacote transacional".

Quando você executa pacotes transacionais, não há limite para a quantidade de contenção de bloqueio que pode ser criada. Por exemplo, se você criar um conjunto de pacotes em que cada um deles atualiza um único recurso paciente e também cria outros recursos incomuns e os executa em paralelo, o tempo necessário vai aumentar rapidamente, já que cada pacote precisa manter o bloqueio desse paciente comum durante toda a transação. Como resultado, elas começarão a expirar. Quando a API Cloud Healthcare detecta o tempo limite dos pacotes transacionais, ela rejeita temporariamente todos os pacotes transacionais com essa mensagem de erro para tentar deixar a contenção esclarecida.

Para evitar esse problema, tente uma das seguintes opções:

  • Use pacotes em lote se você não precisar de semântica de transação. Os pacotes em lote evitam totalmente esse problema porque não são atômicos. No entanto, isso reduz a aplicação da integridade referencial.
  • Se você conseguir identificar qual recurso está sendo atualizado em paralelo, determine se essas atualizações podem ser evitadas ou evitadas. No FHIR, isso acontece quando você cria um novo recurso, como o de observação, e atualiza o paciente associado (ou organização, local, dispositivo etc.) que já existe e não está mudando.
  • Limitação de taxa no lado do cliente: se os pacotes transacionais levarem muito tempo para serem executados, reduza a taxa de ingestão antes que as solicitações comecem a expirar.