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 la función de agente de servicios de Healthcare

La cuenta de servicio del agente de servicio de Cloud Healthcare se crea automáticamente. cuando habilites la API de Cloud Healthcare y crees tu primer conjunto de datos. Esta es una cuenta de servicio administrada por Google. No puedes borrar la cuenta de servicio por completo, pero en ciertas circunstancias es posible que no aparezca en la página de Identity and Access Management y es posible que 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.

Paquete de transacciones de FHIR anulado debido a una gran carga 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 se ejecutan paquetes transaccionales, no hay un límite para la cantidad de bloqueo que puedes crear. Por ejemplo, si creas un conjunto de paquetes en la que cada paquete actualiza un único recurso de Paciente común y también crea algunas otros recursos que no son comunes, y los ejecutan en paralelo, el tiempo que toman aumentará rápidamente, ya que cada paquete debe mantener el candado paciente común para toda la transacción. Como resultado, empezarán a se agotó el tiempo de espera. Cuando la API de Cloud Healthcare detecta paquetes transaccionales se agotan, se rechazan temporalmente todos los paquetes transaccionales para intentar que la contención se resuelva.

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

  • Usa paquetes por lotes si no necesitas una semántica de transacción. Paquetes por lotes evitar este problema por completo porque no son atómicos. Sin embargo, este reduce la aplicación de la integridad referencial.
  • Si puedes identificar qué recurso se actualiza en paralelo, determina si de que esas actualizaciones se puedan 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.