Configurer les notifications Pub/Sub

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 :

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 :

Activer l'API

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

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

  1. Accédez à la page des Sujets Pub/Sub dans la console Google Cloud.

    Accéder à la page des sujets Pub/Sub

  2. Cliquez sur Créer un sujet.

  3. Entrez un nom de sujet avec l'URI :

    projects/PROJECT_ID/topics/TOPIC_NAME

    PROJECT_ID correspond à votre ID de projet Google Cloud.

  4. 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

  1. Accédez à la page des Sujets Pub/Sub dans la console Google Cloud.

    Accéder à la page des sujets Pub/Sub

  2. Cliquez sur le sujet de votre projet.

  3. Cliquez sur Créer un abonnement.

  4. Entrez un nom d'abonnement :

    projects/PROJECT_ID/subscriptions/SUBSCRIPTION_NAME

    Laissez le type de distribution défini sur Retrait.

  5. 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 :

  1. Créez ou modifiez un magasin HL7v2 et configurez-le avec un sujet Pub/Sub.
  2. Ajoutez le rôle pubsub.publisher requis au compte de service de votre projet.
  3. 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é.
  4. 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 :