Vous pouvez utiliser Pub/Sub pour recevoir des notifications lorsque des événements cliniques se produisent dans les magasins de données de l'API Cloud Healthcare. Ces notifications vous informent quand :
- Une instance DICOM est stockée dans un magasin DICOM à l'aide de la méthode
dicomStores.dicomWeb.studies.storeInstances
ou importée depuis Cloud Storage. - Une ressource FHIR est créée, mise à jour ou supprimée dans un magasin FHIR. Cependant, les notifications ne sont pas envoyées lorsqu'une ressource FHIR est importée depuis Cloud Storage.
- Un message HL7v2 est ingéré ou créé dans un magasin HL7v2 pour la première fois. Les messages en double ne déclenchent pas de notification.
Lorsque l'un de ces événements se produit, l'API Cloud Healthcare publie un message dans une ressource Pub/Sub nommée sujet. Le message peut ensuite être reçu par les applications abonnées au sujet.
Pour DICOM et HL7v2, ces messages ne contiennent aucune information personnelle. Ils ne comprennent que les éléments suivants :
- Le projet pour lequel le message est généré
- L'ID du message
- Dans les messages HL7v2, le type de message HL7v2
Les messages Pub/Sub FHIR peuvent contenir des informations personnelles. Pour en savoir plus, consultez la section Notifications FHIR contenant des données de ressource FHIR.
Pour une présentation de l'utilisation des notifications Pub/Sub avec l'API Cloud Healthcare, consultez la page Notifications Pub/Sub.
Avant de commencer
Examiner le quota Pub/Sub
Avant de configurer les notifications Pub/Sub, familiarisez-vous avec les quotas et limites de Pub/Sub. Pour savoir comment afficher votre quota, demander une augmentation de quota et savoir ce qui se passe si vous épuisez votre quota, consultez la section Les quotas et leur utilisation.
Activer l'API Pub/Sub
Pour activer l'API Pub/Sub, cliquez sur le bouton suivant :
Configurer des autorisations Pub/Sub
Pour autoriser la publication de messages de l'API Cloud Healthcare vers Pub/Sub, vous devez ajouter le rôle pubsub.publisher
au compte de service Agent de service Cloud Healthcare de votre projet.
Consultez la section Autorisations Pub/Sub pour les magasins DICOM, FHIR et HL7v2 pour savoir comment ajouter le rôle requis.
Créer un sujet Pub/Sub
Pour chaque datastore pour lequel vous souhaitez recevoir des notifications, vous devez configurer un sujet Pub/Sub. Un datastore individuel peut avoir son propre sujet Pub/Sub ou plusieurs datastores peuvent partager le même sujet. Vous pouvez créer un sujet à l'aide de la console Google Cloud ou de Google Cloud CLI.
Lorsque vous créez un sujet ou faites référence à un sujet dans la configuration d'un datastore, vous devez utiliser un URI qualifié au format suivant :
projects/PROJECT_ID/topics/TOPIC_NAME
où PROJECT_ID est l'ID de votre projet Google Cloud et TOPIC_NAME le nom du sujet.
Pour créer un sujet, procédez comme suit :
Console
Accédez à la page des Sujets Pub/Sub dans la console Google Cloud.
Cliquez sur Créer un sujet.
Entrez un nom de sujet avec l'URI :
projects/PROJECT_ID/topics/TOPIC_NAME
où PROJECT_ID correspond à votre ID de projet Google Cloud.
Cliquez sur Créer.
gcloud
Pour créer un sujet, exécutez la commande gcloud pubsub topics create
:
gcloud pubsub topics create projects/PROJECT_ID/topics/TOPIC_NAME
Si la requête aboutit, la commande renvoie le résultat suivant :
Created topic [projects/PROJECT_ID/topics/TOPIC_NAME].
Créer un abonnement Pub/Sub
Pour recevoir des messages publiés dans un sujet, vous devez créer un abonnement Pub/Sub. Chaque sujet Pub/Sub doit disposer d'au moins un abonnement Pub/Sub.
L'abonnement connecte le sujet à une application d'abonnés, qui reçoit et traite les messages publiés dans le sujet.
Les abonnements peuvent être configurés pour utiliser un modèle push ou un modèle pull.
Les abonnements peuvent être configurés pour filtrer les messages en fonction de leurs attributs. Consultez les instructions sur le filtrage des messages d'un abonnement.
Pour créer un abonnement, procédez comme suit :
Console
Accédez à la page des Sujets Pub/Sub dans la console Google Cloud.
Cliquez sur le sujet de votre projet.
Cliquez sur Créer un abonnement.
Entrez un nom d'abonnement :
projects/PROJECT_ID/subscriptions/SUBSCRIPTION_NAME
Laissez le type de distribution défini sur Retrait.
Cliquez sur Créer.
gcloud
Pour créer un sujet, exécutez la commande gcloud pubsub subscriptions create
:
gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAME
Si la requête aboutit, la commande renvoie le résultat suivant :
Created subscription [projects/PROJECT_ID/subscriptions/TOPIC_NAME].
Afficher les notifications d'instance DICOM stockées
Pour en savoir plus sur l'utilisation des notifications Pub/Sub avec les données DICOM, consultez la section Notifications Pub/Sub DICOM.
Afficher les notifications HL7v2
La ressource Hl7V2Store
contient un tableau notificationConfigs
dans lequel vous pouvez spécifier des sujets Pub/Sub et des critères de filtrage.
Lorsqu'un message HL7v2 est ingéré ou créé dans un magasin HL7v2, l'API Cloud Healthcare publie un message dans les sujets Pub/Sub dont le filtre correspond au message HL7v2.
Pour afficher une notification pour un message HL7v2 ingéré, procédez comme suit :
- Créez ou modifiez un magasin HL7v2 et configurez-le avec un sujet Pub/Sub.
- Ajoutez le rôle
pubsub.publisher
requis au compte de service de votre projet. - Ingérez un message HL7v2 dans le magasin HL7v2. L'API Cloud Healthcare déclenche ainsi la publication d'un message dans le sujet Pub/Sub configuré.
Pour afficher le message publié dans le sujet Pub/Sub, exécutez la commande
gcloud pubsub subscriptions pull
:gcloud pubsub subscriptions pull --auto-ack projects/PROJECT_ID/subscriptions/PUBSUB_SUBSCRIPTION
La commande renvoie le résultat suivant concernant le message HL7v2 ingéré :
┌--------------------------------------------------------------------------------------------------------------------|-----------------|---------------┐ | DATA | MESSAGE_ID | ATTRIBUTES | ├--------------------------------------------------------------------------------------------------------------------|-----------------|---------------| | projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID/messages/HL7V2_MESSAGE_ID | 123456789012345 | msgType=TYPE | └--------------------------------------------------------------------------------------------------------------------|-----------------|---------------┘
Règles de stockage des messages de l'API Cloud Healthcare et Pub/Sub
Pour vous assurer que les données de l'API Cloud Healthcare et les données associées dans les messages Pub/Sub se trouvent dans la même région, vous devez définir une règle de stockage des messages Pub/Sub.
Vous devez définir explicitement la règle de stockage des messages sur le sujet Pub/Sub configuré sur le data store pour vous assurer que les données restent dans la même région. Par exemple, si l'ensemble de données et le magasin FHIR de l'API Cloud Healthcare sont dans la région us-central1
, la règle de stockage des messages doit autoriser uniquement la région us-central1
.
Pour configurer une règle de stockage des messages, consultez la page Configurer des règles de stockage des messages.
Résoudre les problèmes de messages Pub/Sub manqués
Si une notification ne peut pas être publiée dans Pub/Sub, une erreur est consignée dans Cloud Logging. Pour en savoir plus, consultez la section Afficher les journaux d'erreurs dans Cloud Logging.
Si le taux de génération d'erreurs dépasse une limite, les erreurs dépassant cette limite ne sont pas envoyées à Cloud Logging.
Étape suivante
Découvrez comment configurer un sujet Pub/Sub dans :