Configurar notificaciones de Pub/Sub

Puedes recibir notificaciones cuando ocurren eventos clínicos en los almacenes de datos de la API de Cloud Healthcare mediante Pub/Sub. 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.

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 FHIR, el resourceType y la acción que causó el mensaje
  • En los mensajes de HL7v2, el tipo de mensaje de HL7v2

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.

Requisitos

Antes de usar esta función, completa las siguientes secciones:

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 Google Cloud Console o la herramienta de línea de comandos de gcloud.

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:

Console

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

    Ir a la página de Cloud 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. Haga 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.

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

Console

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

    Ir a la página de Cloud 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].

Visualiza las notificaciones de DICOM

El recurso DicomStore contiene un objeto notificationConfig en el que puedes especificar un tema de Pub/Sub. De manera opcional, el objeto notificationConfig también te permite indicar si las notificaciones de Pub/Sub deben enviarse durante la importación masiva. Este campo solo está disponible en la versión v1beta1.

Cuando almacenas una instancia de DICOM nueva en un almacén de DICOM, la API de Cloud Healthcare publica un mensaje en el tema de Pub/Sub de DICOM.

Para ver una notificación de una instancia de DICOM almacenada, completa los siguientes pasos:

  1. Crea o edita un almacén de DICOM y configúralo con un tema de Pub/Sub. De manera opcional, indica si las notificaciones de Pub/Sub deben enviarse durante la importación masiva (esta función solo está disponible en la API v1beta1).
  2. Agrega la función pubsub.publisher requerida a la cuenta de servicio de tu proyecto.
  3. Almacena una instancia en el almacén de DICOM. Esto activa la API de Cloud Healthcare para publicar un mensaje en el tema de Pub/Sub configurado.
  4. Ejecuta el comando gcloud pubsub subscriptions pull para ver el mensaje publicado en el tema de Pub/Sub:

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

    El comando muestra el siguiente resultado sobre la instancia de DICOM que se almacenó:

    ┌----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------┐
    |                                                                          DATA                                                                           |    MESSAGE_ID   | ATTRIBUTES |
    ├---------------------------------------------------------------------------------------------------------------------------------------------------------|-----------------|------------|
    | projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID/dicomWeb/studies/STUDY_UID/series/SERIES_UID/instances/INSTANCE_UID | 123456789012345 |            |
    └----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------┘
    

Visualiza las notificaciones de FHIR

El recurso FhirStore contiene un objeto notificationConfig en el que puedes especificar un tema de Pub/Sub.

Cuando se crea, actualiza o borra un recurso FHIR en un almacén FHIR, la API de Cloud Healthcare publica un mensaje en el tema Pub/Sub del almacén de FHIR.

Para ver una notificación de un recurso de FHIR creado, completa los siguientes pasos:

  1. Crea o edita un almacén de FHIR 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. Crea un recurso de FHIR en el almacén de FHIR. Esto activa la API de Cloud Healthcare para publicar un mensaje en el tema de Pub/Sub configurado.
  4. Ejecuta el comando gcloud pubsub subscriptions pull para ver el mensaje publicado en el tema de Pub/Sub:

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

    El comando muestra el siguiente resultado sobre el recurso de FHIR creado:

    ┌----------------------------------------------------------------------------------------------------------------|-----------------|-----------------------┐
    |                                                      DATA                                                      |    MESSAGE_ID   |       ATTRIBUTES      |
    ├----------------------------------------------------------------------------------------------------------------|-----------------|-----------------------|
    | projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID/resources/Patient/PATIENT_ID | 123456789012345 | action=CreateResource |
    |                                                                                                                |                 | resourceType=Patient  |
    └----------------------------------------------------------------------------------------------------------------|-----------------|-----------------------┘
    

Ver 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 de HL7v2 transferido:

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

Solución de problemas de mensajes de Pub/Sub faltantes

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 supera la cantidad máxima, los errores por los que se excedió este límite no se envían a Cloud Logging.

Qué sigue

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