Configurar notificações do Pub/Sub

Pode usar o Pub/Sub para receber notificações quando ocorrem eventos clínicos nos arquivos de dados da Cloud Healthcare API. Estas notificações informam quando:

Quando um destes eventos ocorre, a Cloud Healthcare API publica uma mensagem num recurso Pub/Sub denominado tópico. A mensagem pode, então, ser recebida por aplicações subscritas no tópico.

Para DICOM e HL7v2, estas mensagens não contêm informações pessoais. Apenas incluem o seguinte:

  • O projeto para o qual a mensagem é gerada
  • O ID da mensagem
  • Nas mensagens HL7v2, o tipo de mensagem HL7v2

As mensagens FHIR Pub/Sub podem conter informações pessoais. Para mais informações, consulte o artigo Notificações FHIR que contêm dados de recursos FHIR.

Para uma vista geral da utilização de notificações do Pub/Sub com a Cloud Healthcare API, consulte o artigo Notificações do Pub/Sub.

Antes de começar

Reveja as quotas do Pub/Sub

Antes de configurar as notificações do Pub/Sub, familiarize-se com as quotas e os limites do Pub/Sub. Para ver informações sobre como ver quotas, pedir valores de quota mais elevados e o que acontece se ficar sem quota, consulte a documentação sobre quotas do Google Cloud.

Ative a API Pub/Sub

Para ativar a API Pub/Sub, clique no seguinte botão:

Ative a API

Configure autorizações do Pub/Sub

Para permitir a publicação de mensagens da Cloud Healthcare API no Pub/Sub, tem de adicionar a função pubsub.publisher à conta de serviço do agente do serviço Cloud Healthcare do seu projeto. Consulte as autorizações do Pub/Sub da loja DICOM, FHIR e HL7v2 para ver os passos para adicionar a função necessária.

Crie um tópico do Pub/Sub

Para cada arquivo de dados para o qual quer receber notificações, tem de configurar um tópico do Pub/Sub. Os arquivos de dados individuais podem ter o seu próprio tópico do Pub/Sub, ou vários arquivos de dados podem partilhar o mesmo tópico. Pode criar um tópico através da Google Cloud consola ou da Google Cloud CLI.

Quando cria um tópico ou faz referência a um tópico na configuração de um arquivo de dados, tem de usar um URI qualificado no seguinte formato:

projects/PROJECT_ID/topics/TOPIC_NAME

onde PROJECT_ID é o ID do projeto e Google Cloud é o nome do tópico.TOPIC_NAME

Para criar um tópico, conclua os seguintes passos:

Consola

  1. Aceda à página Tópicos do Pub/Sub na Google Cloud consola.

    Aceda à página de tópicos do Pub/Sub

  2. Clique em Criar tópico.

  3. Introduza um nome do tópico com o URI:

    projects/PROJECT_ID/topics/TOPIC_NAME

    onde PROJECT_ID é o ID do seu Google Cloud projeto.

  4. Clique em Criar.

gcloud

Para criar um tópico, execute o comando gcloud pubsub topics create:

gcloud pubsub topics create projects/PROJECT_ID/topics/TOPIC_NAME

Se o pedido for bem-sucedido, o comando devolve o seguinte resultado:

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

Crie uma subscrição do Pub/Sub

Para receber mensagens publicadas num tópico, tem de criar uma subscrição do Pub/Sub. Cada tópico do Pub/Sub deve ter, pelo menos, uma subscrição do Pub/Sub.

A subscrição associa o tópico a uma aplicação subscritora que recebe e processa mensagens publicadas no tópico.

As subscrições podem ser configuradas para usar um modelo push ou um modelo pull.

As subscrições podem ser configuradas para filtrar mensagens com base nos respetivos atributos; consulte as instruções sobre como filtrar mensagens de uma subscrição.

Para criar uma subscrição, conclua os seguintes passos:

Consola

  1. Aceda à página Tópicos do Pub/Sub na Google Cloud consola.

    Aceda à página de tópicos do Pub/Sub

  2. Clique no tópico do seu projeto.

  3. Clique em Criar subscrição.

  4. Introduza um nome da subscrição:

    projects/PROJECT_ID/subscriptions/SUBSCRIPTION_NAME

    Deixe o Tipo de fornecimento definido como Extrair.

  5. Clique em Criar.

gcloud

Para criar um tópico, execute o comando gcloud pubsub subscriptions create:

gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAME

Se o pedido for bem-sucedido, o comando devolve o seguinte resultado:

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

Veja notificações de instâncias DICOM armazenadas

Para obter informações sobre a utilização de notificações do Pub/Sub com dados DICOM, consulte o artigo Notificações do DICOM Pub/Sub.

Veja notificações HL7v2

O recurso Hl7V2Store contém uma matriz notificationConfigs onde pode especificar tópicos do Pub/Sub e critérios de filtragem.

Quando uma mensagem HL7v2 é carregada ou criada numa loja HL7v2, a Cloud Healthcare API publica uma mensagem nos tópicos do Pub/Sub que têm um filtro que corresponde à mensagem HL7v2.

Para ver uma notificação de uma mensagem HL7v2 carregada, conclua os seguintes passos:

  1. Crie ou edite um armazenamento HL7v2 e configure-o com um tópico do Pub/Sub.
  2. Adicione a função pubsub.publisher necessária à conta de serviço do seu projeto.
  3. Carregar uma mensagem HL7v2 para o armazenamento de HL7v2. Isto aciona a API Cloud Healthcare para publicar uma mensagem no tópico do Pub/Sub configurado.
  4. Para ver a mensagem publicada no tópico Pub/Sub, execute o comando gcloud pubsub subscriptions pull:

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

    O comando devolve a seguinte saída sobre a mensagem HL7v2 carregada:

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

Cloud Healthcare API e política de armazenamento de mensagens do Pub/Sub

Para garantir que os seus dados da Cloud Healthcare API e os dados associados nas mensagens do Pub/Sub residem na mesma região, tem de definir uma política de armazenamento de mensagens do Pub/Sub.

Tem de definir explicitamente a política de armazenamento de mensagens no tópico do Pub/Sub configurado no repositório de dados para garantir que os dados permanecem na mesma região. Por exemplo, se o conjunto de dados da Cloud Healthcare API e o FHIR store estiverem em us-central1, a política de armazenamento de mensagens só pode permitir a região us-central1.

Para configurar uma política de armazenamento de mensagens, consulte o artigo Configurar políticas de armazenamento de mensagens.

Resolva problemas de mensagens do Pub/Sub em falta

Se não for possível publicar uma notificação no Pub/Sub, é registado um erro no Cloud Logging. Para mais informações, consulte o artigo Ver registos de erros nos Registos na nuvem.

Se a taxa de geração de erros exceder um limite, os erros que excedam o limite não são enviados para o Cloud Logging.

O que se segue?

Saiba como configurar um tópico do Pub/Sub em: