Como configurar notificações do Pub/Sub

Você pode usar o Pub/Sub para receber notificações quando eventos clínicos ocorrem nos armazenamentos de dados da API Cloud Healthcare. Essas notificações informam quando:

Quando um desses eventos ocorre, a API Cloud Healthcare publica uma mensagem em um recurso do Pub/Sub chamado tópico. A mensagem pode ser recebida por aplicativos que assinam o tópico.

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

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

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

Para uma visão geral do uso de notificações do Pub/Sub com a API Cloud Healthcare, consulte Notificações do Pub/Sub.

Antes de começar

Analisar a cota do Pub/Sub

Antes de configurar as notificações do Pub/Sub, conheça as cotas e os limites do Pub/Sub. Para informações sobre como conferir sua cota, solicitar mais cota e o que acontece se você ficar sem cota, consulte Como trabalhar com cotas.

Habilitar a API Pub/Sub

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

Ativar a API

Configurar permissões do Pub/Sub

Para permitir que mensagens sejam publicadas da API Cloud Healthcare no Pub/Sub, adicione o papel pubsub.publisher à conta de serviço do Agente de serviço do Cloud Healthcare . Consulte Permissões do Pub/Sub para armazenamentos DICOM, FHIR e HL7v2 para ver as etapas e adicionar o papel necessário.

Criar um tópico do Pub/Sub

Para cada armazenamento de dados para que você quer receber notificações, é necessário configurar um tópico do Pub/Sub. Os armazenamentos de dados individuais podem ter um tópico próprio do Pub/Sub ou vários armazenamentos de dados podem compartilhar o mesmo tópico. É possível criar um tópico usando o console do Google Cloud ou a Google Cloud CLI.

Ao criar um tópico ou referir um tópico na configuração de um armazenamento de dados, você precisa usar um URI qualificado no seguinte formato:

projects/PROJECT_ID/topics/TOPIC_NAME

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

Para criar um tópico, siga estas etapas:

Console

  1. Acesse a página Tópicos do Pub/Sub no console do Google Cloud.

    Acesse a página de tópicos do Cloud Pub/Sub

  2. Clique em Criar tópico.

  3. Digite um nome de tópico com o URI:

    projects/PROJECT_ID/topics/TOPIC_NAME

    em que PROJECT_ID é o ID do projeto no Google Cloud.

  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 a solicitação for bem-sucedida, o comando retornará a seguinte saída:

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

Criar uma assinatura no Pub/Sub

Para receber mensagens publicadas em um tópico, você precisa criar uma assinatura do Pub/Sub. Cada tópico do Pub/Sub deve ter pelo menos uma assinatura do Pub/Sub.

A assinatura conecta um tópico a um aplicativo do assinante, que recebe e processa as mensagens publicadas no tópico.

É possível configurar as assinaturas para usar um modelo de envio ou de extração.

As assinaturas podem ser configuradas para filtrar mensagens com base nos atributos. Consulte as instruções sobre como filtrar mensagens de uma assinatura.

Para criar uma assinatura, conclua as etapas a seguir:

Console

  1. Acesse a página Tópicos do Pub/Sub no console do Google Cloud.

    Acesse a página de tópicos do Cloud Pub/Sub

  2. Clique no tópico do projeto.

  3. Clique em Criar assinatura.

  4. Insira o nome da assinatura:

    projects/PROJECT_ID/subscriptions/SUBSCRIPTION_NAME

    Deixe o Tipo de entrega configurado como Pull.

  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 a solicitação for bem-sucedida, o comando retornará a seguinte saída:

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

Conferir notificações de instâncias DICOM armazenadas

Para informações sobre o uso de notificações do Pub/Sub com dados DICOM, consulte Notificações do Pub/Sub DICOM.

Veja as notificações do HL7v2.

O recurso Hl7V2Store contém uma matriz notificationConfigs em que é possível especificar tópicos e critérios de filtragem do Pub/Sub.

Quando uma mensagem HL7v2 é ingerida ou criada em um armazenamento HL7v2, a API Cloud Healthcare publica uma mensagem nos tópicos do Pub/Sub que tenham um filtro que corresponda à mensagem HL7v2.

Para ver uma notificação de uma mensagem HL7v2 ingerida, siga estas etapas:

  1. Crie ou edite um armazenamento HL7v2 e configure-o com um tópico do Pub/Sub.
  2. Adicione o papel pubsub.publisher necessário à conta de serviço do seu projeto.
  3. Ingira uma mensagem HL7v2 no armazenamento HL7v2. Isso 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 do Pub/Sub, execute o comando gcloud pubsub subscriptions pull:

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

    O comando retorna a seguinte saída referente à mensagem HL7v2 ingerida:

    ┌--------------------------------------------------------------------------------------------------------------------|-----------------|---------------┐
    |                                                                 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 armazenamento de mensagens da API Cloud Healthcare e do Pub/Sub

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

É necessário 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 permaneçam na mesma região. Por exemplo, se o conjunto de dados da API Cloud Healthcare e o armazenamento FHIR estiverem em us-central1, a política de armazenamento de mensagens só poderá permitir a região us-central1.

Para configurar uma política de armazenamento de mensagens, consulte Como configurar políticas de armazenamento de mensagens.

Resolver problemas de mensagens perdidas do Pub/Sub

Se não for possível publicar uma notificação no Pub/Sub, será registrado um erro no Cloud Logging. Para mais informações, consulte Como visualizar registros de erros no Cloud Logging.

Se a taxa de geração de erros exceder um limite, os erros que ultrapassarem esse limite não serão enviados ao Cloud Logging.

A seguir

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