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:
- Uma instância DICOM é armazenada num arquivo DICOM através do método
dicomStores.dicomWeb.studies.storeInstances
ou importada do Cloud Storage comdicomStores.notificationConfig
. - Uma instância DICOM é armazenada, importada, atualizada ou eliminada num arquivo DICOM
através de
dicomStores.notificationConfigs
. - Um recurso FHIR é criado, atualizado ou eliminado numa loja FHIR. No entanto, não são enviadas notificações quando um recurso FHIR é importado do Cloud Storage.
- Uma mensagem HL7v2 é carregada ou criada num armazenamento de HL7v2 pela primeira vez. As mensagens duplicadas não acionam uma notificação.
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:
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
Aceda à página Tópicos do Pub/Sub na Google Cloud consola.
Clique em Criar tópico.
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.
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
Aceda à página Tópicos do Pub/Sub na Google Cloud consola.
Clique no tópico do seu projeto.
Clique em Criar subscrição.
Introduza um nome da subscrição:
projects/PROJECT_ID/subscriptions/SUBSCRIPTION_NAME
Deixe o Tipo de fornecimento definido como Extrair.
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:
- Crie ou edite um armazenamento HL7v2 e configure-o com um tópico do Pub/Sub.
- Adicione a função
pubsub.publisher
necessária à conta de serviço do seu projeto. - 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.
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: