Configurar notificaciones de Pub/Sub

Puedes usar Pub/Sub para recibir notificaciones cuando se produzcan eventos clínicos en los almacenes de datos de la API Cloud Healthcare. Estas notificaciones te informan cuando:

Cuando se produce uno de estos eventos, la API Cloud Healthcare publica un mensaje en un recurso con nombre de Pub/Sub que se conoce como tema. A continuación, las aplicaciones suscritas al tema pueden recibir el mensaje.

En el caso de DICOM y HL7v2, estos mensajes no contienen información personal. Solo incluyen lo siguiente:

  • El proyecto para el que se genera el mensaje
  • ID del mensaje
  • En los mensajes HL7v2, el tipo de mensaje HL7v2

Los mensajes de publicación/suscripción de FHIR pueden contener información personal. Para obtener más información, consulta Notificaciones de FHIR que contienen datos de recursos de FHIR.

Para obtener una descripción general sobre el uso de las notificaciones de Pub/Sub con la API Cloud Healthcare, consulta este artículo.

Antes de empezar

Consultar las cuotas de Pub/Sub

Antes de configurar las notificaciones de Pub/Sub, familiarízate con las cuotas y los límites de Pub/Sub. Para obtener información sobre cómo ver las cuotas, solicitar valores más altos y qué ocurre si te quedas sin cuota, consulta la documentación de cuotas de Cloud.

Habilitar la API Pub/Sub

Para habilitar la API Pub/Sub, haz clic en el siguiente botón:

Activar la API

Configurar los permisos de Pub/Sub

Para permitir la publicación de mensajes de la API Cloud Healthcare en Pub/Sub, debes añadir el rol pubsub.publisher a la cuenta de servicio del agente de servicio de Cloud Healthcare de tu proyecto. Consulta Permisos de Pub/Sub para almacenes DICOM, FHIR y HL7v2 para ver los pasos que debes seguir para añadir el rol necesario.

Crear un tema de Pub/Sub

Debes configurar un tema de Pub/Sub para cada almacén de datos para el que quieras recibir notificaciones. Los almacenes de datos individuales pueden tener su propio tema de Pub/Sub, o bien varios almacenes de datos pueden compartir el mismo tema. Puedes crear un tema mediante la Google Cloud consola o la CLI de Google Cloud.

Cuando creas un tema o haces referencia a él en la configuración de un almacén de datos, necesitas usar un URI completo en el siguiente formato:

projects/PROJECT_ID/topics/TOPIC_NAME

donde PROJECT_ID es el ID de tu proyecto Google Cloud y TOPIC_NAME es el nombre del tema.

Para crear un tema, sigue estos pasos:

Consola

  1. Ve a la página Temas de Pub/Sub en la consola de Google Cloud .

    Ir a la página Temas de Pub/Sub

  2. Haz clic en Crear tema.

  3. Introduce un nombre de tema con el URI:

    projects/PROJECT_ID/topics/TOPIC_NAME

    donde PROJECT_ID es el ID de tu Google Cloud proyecto.

  4. Haz clic en Crear.

gcloud

Para crear un tema, ejecuta el comando gcloud pubsub topics create:

gcloud pubsub topics create projects/PROJECT_ID/topics/TOPIC_NAME

Si la solicitud se realiza correctamente, el comando devuelve el siguiente resultado:

Created topic [projects/PROJECT_ID/topics/TOPIC_NAME].

Crear una suscripción de Pub/Sub

Para recibir mensajes publicados en un tema, debes crear una suscripción de Pub/Sub. Cada tema de Pub/Sub debe tener al menos una suscripción de Pub/Sub.

La suscripción conecta el tema a una aplicación de suscriptor que recibe y procesa los mensajes publicados en el tema.

Las suscripciones se pueden configurar para utilizar un modelo push o un modelo pull.

Las suscripciones se pueden configurar para filtrar mensajes en función de sus atributos. Consulta las instrucciones sobre cómo filtrar mensajes de una suscripción.

Para crear una suscripción, sigue estos pasos:

Consola

  1. Ve a la página Temas de Pub/Sub en la consola de Google Cloud .

    Ir a la página Temas de Pub/Sub

  2. Haz clic en el tema del proyecto.

  3. Haz clic en Crear suscripción.

  4. Introduce un nombre de suscripción:

    projects/PROJECT_ID/subscriptions/SUBSCRIPTION_NAME

    Deja Tipo de envío configurado como Recepción.

  5. Haz clic en Crear.

gcloud

Para crear un tema, ejecuta el comando gcloud pubsub subscriptions create:

gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAME

Si la solicitud se realiza correctamente, el comando devuelve el siguiente resultado:

Created subscription [projects/PROJECT_ID/subscriptions/TOPIC_NAME].

Ver notificaciones de instancias DICOM almacenadas

Para obtener información sobre cómo usar las notificaciones de Pub/Sub con datos DICOM, consulta Notificaciones de Pub/Sub de DICOM.

Ver notificaciones de HL7v2

El recurso Hl7V2Store contiene una matriz notificationConfigs en la que puedes especificar temas de Pub/Sub y criterios de filtrado.

Cuando se ingiere o se crea un mensaje HL7v2 en un almacén HL7v2, la API Cloud Healthcare publica un mensaje en los temas de Pub/Sub que tienen un filtro que coincide con el mensaje HL7v2.

Para ver una notificación de un mensaje HL7v2 ingerido, sigue estos pasos:

  1. Crea o edita un almacén HL7v2 y configúralo con un tema de Pub/Sub.
  2. Añade el rol pubsub.publisher obligatorio a la cuenta de servicio de tu proyecto.
  3. Ingiere un mensaje HL7v2 en el almacén HL7v2. Esto hace que la API Cloud Healthcare publique un mensaje en el tema de Pub/Sub configurado.
  4. Para ver el mensaje publicado en el tema de Pub/Sub, ejecuta el comando gcloud pubsub subscriptions pull:

    gcloud pubsub subscriptions pull --auto-ack projects/PROJECT_ID/subscriptions/PUBSUB_SUBSCRIPTION

    El comando devuelve el siguiente resultado sobre el mensaje HL7v2 ingerido:

    ┌--------------------------------------------------------------------------------------------------------------------|-----------------|---------------┐
    |                                                                 DATA                                               |    MESSAGE_ID   |   ATTRIBUTES  |
    ├--------------------------------------------------------------------------------------------------------------------|-----------------|---------------|
    | projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID/messages/HL7V2_MESSAGE_ID | 123456789012345 | msgType=TYPE  |
    └--------------------------------------------------------------------------------------------------------------------|-----------------|---------------┘

Política de almacenamiento de mensajes de la API Cloud Healthcare y Pub/Sub

Para asegurarte de que tus datos de la API Cloud Healthcare y los datos asociados de los mensajes de Pub/Sub se encuentran en la misma región, debes definir una política de almacenamiento de mensajes de Pub/Sub.

Debes definir explícitamente la política de almacenamiento de mensajes en el tema de Pub/Sub configurado en el almacén de datos para asegurarte de que los datos permanezcan en la misma región. Por ejemplo, si tu conjunto de datos y tu almacén FHIR de la API Cloud Healthcare están en us-central1, la política de almacenamiento de mensajes solo debe permitir la región us-central1.

Para configurar una política de almacenamiento de mensajes, consulta Configurar políticas de almacenamiento de mensajes.

Solucionar problemas de mensajes de Pub/Sub perdidos

Si no se puede publicar una notificación en Pub/Sub, se registrará un error en Cloud Logging. Para obtener más información, consulta Ver registros de errores en Cloud Logging.

Si la tasa de generación de errores supera un límite, los errores que excedan ese límite no se enviarán a Cloud Logging.

Siguientes pasos

Consulta cómo configurar un tema de Pub/Sub en: