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 la función de agente de servicios de Healthcare
La cuenta de servicio del agente de servicios 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 administración de identidades y accesos y tengas 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.com
.
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 canceló el paquete de transacciones de FHIR debido a una carga pesada acumulativa
Cuando ejecutes un paquete de transacciones de FHIR, es posible que recibas un mensaje de error que indique que la solicitud se “abortó debido a una carga pesada acumulativa para ejecutar el paquete de transacciones”.
Cuando ejecutas paquetes transaccionales, no hay límite para la cantidad de contención de bloqueos que puedes crear. Por ejemplo, si construyes un conjunto de paquetes en el que cada paquete actualiza un solo recurso de paciente común y también crea otros recursos que no son comunes, y los ejecutas en paralelo, el tiempo que tardan aumentará rápidamente, ya que cada paquete debe mantener el bloqueo de ese paciente común para toda la transacción. Como resultado, comenzarán a superar el tiempo de espera. Cuando la API de Cloud Healthcare detecta que se agota el tiempo de espera de los paquetes transaccionales, rechaza temporalmente todos los paquetes transaccionales con este mensaje de error para intentar que se aclare la contención.
Para evitar este problema, puedes probar una de las siguientes opciones:
- Usa paquetes por lotes si no necesitas semántica de transacciones. Los paquetes por lotes evitan este problema por completo porque no son atómicos. Sin embargo, esto reduce la aplicación forzosa de la integridad referencial.
- Si puedes identificar qué recurso se actualiza de forma simultánea, determina si esas actualizaciones se pueden anular 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.