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:
- 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 HL7v2 é ingerida ou criada em uma loja HL7v2 pela primeira vez. Mensagens duplicadas não acionam 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 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:
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
Acesse a página Tópicos do Pub/Sub no console do Google Cloud.
Clique em Criar tópico.
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.
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
Acesse a página Tópicos do Pub/Sub no console do Google Cloud.
Clique no tópico do projeto.
Clique em Criar assinatura.
Insira o nome da assinatura:
projects/PROJECT_ID/subscriptions/SUBSCRIPTION_NAME
Deixe o Tipo de entrega configurado como Pull.
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:
- Crie ou edite um armazenamento HL7v2 e configure-o com um tópico do Pub/Sub.
- Adicione o papel
pubsub.publisher
necessário à conta de serviço do seu projeto. - Ingira uma mensagem HL7v2 no armazenamento HL7v2. Isso aciona a API Cloud Healthcare para publicar uma mensagem no tópico do Pub/Sub configurado.
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: