Configurar notificaciones de Pub/Sub

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

Cuando ocurre uno de estos eventos, la API de Cloud Healthcare publica un mensaje en un recurso Pub/Sub llamado tema. Luego, 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
  • El ID del mensaje
  • En los mensajes de HL7v2, el tipo de mensaje de HL7v2

Los mensajes de Pub/Sub 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 del uso de las notificaciones de Pub/Sub con la API de Cloud Healthcare, consulta Notificaciones de Pub/Sub.

Antes de comenzar

Revisa la cuota de Pub/Sub

Antes de configurar las notificaciones de Pub/Sub, conoce las cuotas y límites de Pub/Sub. Si quieres obtener información para ver tu cuota, solicitar más cuota y qué sucede si te quedas sin cuota, consulta Trabaja con cuotas.

Habilita la API de Pub/Sub

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

Habilitar la API

Configura los permisos de Pub/Sub

Para permitir que los mensajes se publiquen desde la API de Cloud Healthcare en Pub/Sub, debes agregar la función pubsub.publisher a la cuenta de servicio del agente de servicios de Cloud Healthcare de tu proyecto. Consulta los permisos de Pub/Sub para los almacenes de DICOM, FHIR y HL7v2 y sigue los pasos para agregar la función necesaria.

Crea un tema de Pub/Sub

Debes configurar un tema de Pub/Sub en cada almacén de datos para el que desees recibir notificaciones. Los almacenes de datos individuales pueden tener su propio tema de Pub/Sub, o múltiples almacenes de datos pueden compartir el mismo tema. Puedes crear un tema con la consola de Google Cloud o la CLI de Google Cloud.

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

projects/PROJECT_ID/topics/TOPIC_NAME

En el ejemplo anterior, PROJECT_ID es el ID de tu proyecto de Google Cloud y TOPIC_NAME es el nombre del tema.

Para crear un tema, completa los siguientes 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. Ingresa un nombre de tema con el URI:

    projects/PROJECT_ID/topics/TOPIC_NAME

    En el ejemplo anterior, PROJECT_ID es el ID del proyecto de Google Cloud.

  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 es exitosa, el comando mostrará el siguiente resultado:

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

Crea una suscripción a Pub/Sub

Para recibir mensajes publicados en un tema, debes crear una suscripción a Pub/Sub. Cada tema de Pub/Sub debe tener al menos una suscripción a 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 que usen un modelo de envío o un modelo de extracción.

Las suscripciones se pueden configurar para filtrar mensajes según sus atributos. Consulta las instrucciones para filtrar mensajes de una suscripción.

Para crear una suscripción, realiza los pasos que se indican a continuación.

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 de tu proyecto.

  3. Haz clic en Crear suscripción.

  4. Ingresa un nombre de suscripción.

    projects/PROJECT_ID/subscriptions/SUBSCRIPTION_NAME

    Configura el Tipo de entrega como Extracció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 es exitosa, el comando mostrará el siguiente resultado:

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

Ver notificaciones de instancias de DICOM almacenadas

Para obtener información sobre el uso de las notificaciones de Pub/Sub con datos de DICOM, consulta Notificaciones de Pub/Sub de DICOM.

Visualiza notificaciones de HL7v2

El recurso Hl7V2Store contiene un arreglo notificationConfigs en el que puedes especificar temas de Pub/Sub y criterios de filtrado.

Cuando se transfiere o crea un mensaje HL7v2 en un almacén HL7v2, la API de 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 de HL7v2 transferido, completa los siguientes pasos:

  1. Crea o edita un almacén de HL7v2 y configúralo con un tema de Pub/Sub.
  2. Agrega la función pubsub.publisher requerida a la cuenta de servicio de tu proyecto.
  3. Transfiere un mensaje HL7v2 al almacén de HL7v2. Esto activa la API de Cloud Healthcare para publicar 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 muestra el siguiente resultado sobre el mensaje HL7v2 transferido:

    ┌--------------------------------------------------------------------------------------------------------------------|-----------------|---------------┐
    |                                                                 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 Pub/Sub y API de Cloud Healthcare

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

Debes establecer de forma explícita 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 el conjunto de datos de la API de Cloud Healthcare y el almacén de FHIR 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 Configura políticas de almacenamiento de mensajes.

Soluciona problemas de mensajes perdidos de Pub/Sub

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

Si la tasa de generación de errores excede un límite, los errores que superen este no se enviarán a Cloud Logging.

¿Qué sigue?

Aprende a configurar un tema de Pub/Sub en los siguientes almacenes: