Puedes usar Pub/Sub para recibir notificaciones cuando ocurren en los almacenes de datos de la API de Cloud Healthcare. Estas notificaciones te informan cuando:
- Una instancia de DICOM se almacena en un almacén de DICOM con el método
dicomStores.dicomWeb.studies.storeInstances
o se importa desde Cloud Storage. - Se crea, actualiza o borra un recurso de FHIR en un almacén de FHIR. Sin embargo, las notificaciones no se envían cuando el recurso de FHIR se importa desde Cloud Storage.
- Un mensaje HL7v2 se transfiere o se crea en un almacén HL7v2 por primera vez. Los mensajes duplicados no activarán una notificación.
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:
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
Ve a la página Temas de Pub/Sub en la consola de Google Cloud.
Haz clic en Crear tema.
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.
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.
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
Ve a la página Temas de Pub/Sub en la consola de Google Cloud.
Haz clic en el tema de tu proyecto.
Haz clic en Crear suscripción.
Ingresa un nombre de suscripción.
projects/PROJECT_ID/subscriptions/SUBSCRIPTION_NAME
Configura el Tipo de entrega como Extracción.
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 almacenadas de instancias de DICOM
Para obtener información sobre el uso de 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:
- Crea o edita un almacén de HL7v2 y configúralo con un tema de Pub/Sub.
- Agrega la función
pubsub.publisher
requerida a la cuenta de servicio de tu proyecto. - 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.
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 Pub/Sub
tema configurado en el almacén de datos para garantizar que los datos permanezcan
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 de Pub/Sub perdidos
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 el límite no se envían a Cloud Logging.
¿Qué sigue?
Aprende a configurar un tema de Pub/Sub en los siguientes almacenes: