Como configurar notificações do Pub/Sub

Use o Pub/Sub para receber notificações quando houver ocorrem nos repositórios de dados da API Cloud Healthcare. Essas notificações informam quando:

  • Uma instância DICOM é armazenada em um armazenamento DICOM usando o método dicomStores.dicomWeb.studies.storeInstances ou importada do Cloud Storage.
  • um recurso FHIR é criado, atualizado ou excluído em um armazenamento FHIR; No entanto, as notificações não são enviadas quando um recurso FHIR é importado do Cloud Storage.
  • Uma mensagem de HL7v2 é ingerida ou criada em um armazenamento de HL7v2 pela primeira vez. Mensagens duplicadas não acionarão uma notificação.

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 nenhuma informação pessoal. 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 FHIR podem conter informações pessoais. Para mais informações, consulte Notificações FHIR contendo dados de recursos 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

Revisar a cota do Pub/Sub

Antes de configurar as notificações do Pub/Sub, conheça Cotas e limites do Pub/Sub. Para informações sobre como visualizar sua cota, solicitar mais cota e o que acontece Se ela atingir a 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 delas. veja 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].

Ver notificações de instância DICOM armazenada

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

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  |
    └--------------------------------------------------------------------------------------------------------------------|-----------------|---------------┘
    

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

Para garantir que os dados da API Cloud Healthcare e os dados associados no Pub/Sub mensagens residam na mesma região, é preciso configurar uma política de armazenamento de mensagens.

Defina explicitamente a política de armazenamento de mensagens no Pub/Sub configurado no repositório de dados para garantir que os dados permaneçam no mesmo na mesma região. Por exemplo, se o conjunto de dados da API Cloud Healthcare e o armazenamento FHIR estiverem no us-central1, a política de armazenamento de mensagens precisa permitir apenas 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 o limite não são enviados ao Cloud Logging.

A seguir

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