Soluciona problemas

Obtén información sobre los pasos para solucionar problemas que pueden servirte si tienes dificultades con la API de Cloud Healthcare.

No se puede habilitar la API de Cloud Healthcare

Cuando habilitas la API de Cloud Healthcare por primera vez en tu proyecto de Google Cloud, puedes encontrar un error de permisos que indica que no tienes permiso para habilitar las API de Google Cloud para tu proyecto.

Consulta Habilita e inhabilita las API para obtener información sobre cómo habilitar las API de Google Cloud, incluida la API de Cloud Healthcare.

No puedes autenticarte en la API de Cloud Healthcare

Cuando llames a la API de Cloud Healthcare, es posible que recibas un mensaje de error que indica que tus "Credenciales predeterminadas de la aplicación" no están disponibles.

Consulta Autentica en la API para obtener más información sobre cómo configurar las credenciales predeterminadas de la aplicación o cómo transferir las credenciales de autenticación manualmente a una aplicación o comando.

Falta la cuenta de servicio de la API de Cloud Healthcare o el rol de agente de servicios de Healthcare

La cuenta de servicio del agente de servicio de Cloud Healthcare se crea automáticamente cuando habilitas la API de Cloud Healthcare y creas tu primer conjunto de datos. Esta es una cuenta de servicio administrada por Google. No puedes borrar la cuenta de servicio por completo, pero es posible que, en determinadas circunstancias, no aparezca en la página de Identity and Access Management y podrías tener problemas con la API de Cloud Healthcare.

Para que la API de Cloud Healthcare funcione de forma correcta y complete tareas, como la publicación y la recepción de mensajes de Pub/Sub o la escritura de métricas en Cloud Logging, la cuenta de servicio del Agente de servicio de Cloud Healthcare debe existir y debe contar con la función de IAM Agente de servicio de atención médica.

Puedes volver a crear la cuenta de servicio del Agente de servicio de Cloud Healthcare u otorgarle la función de IAM Agente de servicio de Healthcare si encuentras alguno de los siguientes problemas:

  • No puedes encontrar la cuenta de servicio del agente de servicio de Cloud Healthcare en la página de administración de identidades y accesos.
  • Puedes encontrar la cuenta de servicio del Agente de servicios de Cloud Healthcare, pero no contiene el rol de Agente de servicios de Healthcare.

Usa la CLI de Google Cloud para agregar el rol healthcare.serviceAgent a la cuenta de servicio del agente de servicios de Cloud Healthcare con el identificador de la cuenta de servicio. que usa el formato service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.

Para volver a crear la cuenta de servicio u otorgarle el rol de IAM de Agente de servicios de Healthcare, ejecuta el comando gcloud projects add-iam-policy-binding. Para encontrar los valores de PROJECT_ID y PROJECT_NUMBER, consulta cómo identificar proyectos.

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

Si la solicitud se realiza correctamente, el símbolo del sistema muestra un mensaje similar al siguiente ejemplo:

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

Vuelve a la página de administración de identidades y accesos de nuevo y verifica lo siguiente:

  • La columna Miembro debe contener un identificador de cuenta de servicio con el formato service-PROJECT_NUMBER@gcp-sa-healthcare.iam.gserviceaccount.
  • En la misma fila que la columna Miembro, la columna Nombre debe contener el Agente de servicio de Cloud Healthcare.
  • En la misma fila que la columna Miembro, la columna Rol contiene el Agente de servicios de Healthcare.

Se anuló el paquete transaccional de FHIR debido a una carga pesada acumulativa

Cuando ejecutas un paquete de transacciones de FHIR, es posible que recibas un mensaje de error que indica que la solicitud se “abortó debido a la carga pesada acumulativa para ejecutar el paquete transaccional”.

Cuando ejecutas conjuntos transaccionales, no hay límite en la cantidad de contención de bloqueo que puedes crear. Por ejemplo, si creas un conjunto de conjuntos en el que cada paquete actualiza un solo recurso de paciente común, crea otros recursos que no son comunes y los ejecuta en paralelo, el tiempo que tardan aumentará rápidamente, ya que cada paquete debe retener a ese paciente común durante toda la transacción. Como resultado, comenzarán a agotarse el tiempo de espera. Cuando la API de Cloud Healthcare detecta que se agota el tiempo de espera de los paquetes transaccionales, rechaza de forma temporal todos los paquetes transaccionales con este mensaje de error para intentar que se libere la contención.

Para evitar este problema, puedes probar una de las siguientes opciones:

  • Usa paquetes por lotes si no necesitas semántica de transacción. Los conjuntos por lotes evitan este problema por completo porque no son atómicos. Sin embargo, esto reduce la aplicación de la integridad referencial.
  • Si puedes identificar qué recurso se actualiza en paralelo, determina si esas actualizaciones se pueden excluir o evitar. En FHIR, esto sucede si creas un recurso nuevo como Observación y también actualizas el Paciente (o la organización, la ubicación, el dispositivo, etc.) asociado que ya existe y no cambia.
  • El límite de frecuencia del cliente; si tus paquetes transaccionales tardan mucho tiempo en ejecutarse, reduce la tasa de transferencia antes de que se agote el tiempo de espera de las solicitudes.