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. No entanto, em algumas circunstâncias, ela pode não aparecer na página Gerenciamento de identidade e acesso e você pode ter 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
ao
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.com
.
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 de execução de pacote transacional".
Quando você executa pacotes transacionais, não há limite de contenção de bloqueio que você pode criar. Por exemplo, se você criar um conjunto de pacotes em que cada pacote atualiza um único recurso Paciente comum e também cria alguns outros recursos que não são comuns e os executa em paralelo, o tempo necessário aumentará rapidamente, já que cada pacote precisa manter a trava nesse Paciente comum para toda a transação. Como resultado, eles vão começar a tempo limite. Quando a API Cloud Healthcare detecta que os pacotes transacionais estão com um tempo limite, ela rejeita temporariamente todos os pacotes transacionais com essa mensagem de erro para tentar resolver a disputa.
Para evitar esse problema, tente uma das seguintes opções:
- Use pacotes em lote se não precisar de semântica de transação. Os pacotes em lote evitam esse problema completamente 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 desconsideradas ou evitadas. No FHIR, isso acontece se você estiver criando um novo recurso, como observação, e atualizando 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 usam muito tempo de execução, reduza a taxa de ingestão antes que as solicitações comecem tempo limite.