Nesta página, descrevemos como exportar mensagens HL7v2 para o Pub/Sub usando a
projects.locations.datasets.hl7V2Stores.export
.
É possível exportar mensagens HL7v2 para o Pub/Sub para processamento posterior.
Suponha que você tenha um pipeline do Dataflow que transforma mensagens HL7v2.
quando novas mensagens são ingeridas em um armazenamento HL7v2. O pipeline faz a leitura de um
Assinatura do Pub/Sub e espera notificações de novo HL7v2
mensagens. Quando você importa mensagens de HL7v2 para um armazenamento de HL7v2 usando o
hl7V2Stores.import
método, ele não vai enviar notificações do Pub/Sub.
Para acionar o pipeline, importe as mensagens HL7v2 e use o método hl7v2Stores.export
para exportá-las para o Pub/Sub.
Antes de começar
Habilitar a API Pub/Sub
No console do Google Cloud, ative a API Pub/Sub:
Configurar permissões do Pub/Sub
Para exportar mensagens de um armazenamento HL7v2 para o Pub/Sub, é preciso adicionar
o papel pubsub.publisher
para o Agente de serviço do Cloud Healthcare do seu projeto
conta de serviço.
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 criar um tópico, consulte Criar um tópico.
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.
Use o seguinte formato ao especificar o tópico do Pub/Sub:
projects/PROJECT_ID/topics/TOPIC_NAME
PROJECT_ID
é o ID do projeto do Google Cloud.
TOPIC_NAME
é o nome do tópico do Pub/Sub.
Exportar mensagens HL7v2 para o Pub/Sub
curl
Para exportar mensagens HL7v2 para o Pub/Sub, faça uma solicitação POST
e
especifique as seguintes informações:
- O nome do conjunto de dados pai
- O nome do armazenamento HL7v2
- O tópico do Pub/Sub de destino
O exemplo a seguir mostra uma solicitação POST
usando curl
.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'pubsubDestination': { 'pubsubTopic': 'projects/PROJECT_ID/topics/PUBSUB_TOPIC' } }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:export"
Se a solicitação for bem-sucedida, o servidor retornará a resposta no formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" }
A resposta contém um nome de operação. Para rastrear o status da operação, use o método get
de operação:
curl -X GET \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
Se a solicitação for bem-sucedida, o servidor retornará uma resposta com o status da operação no formato JSON:
{ "name": "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.OperationMetadata", "apiMethodName": "google.cloud.healthcare.v1.hl7v2.Hl7V2Service.ExportMessages", "createTime": "CREATE_TIME", "endTime": "END_TIME", "counter": { "success": "RESOURCE_COUNT" } }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.hl7v2.ExportMessagesResponse" } }
Exportar um subconjunto de mensagens HL7v2 usando um filtro
É possível usar os seguintes campos nos critérios de filtro:
É possível especificar os parâmetros de filtro a seguir como critérios de filtro no campo filter
. Para saber mais sobre a sintaxe
de filtro e criar consultas, consulte
Strings de consulta.
message_type
: do campo MSH.9.1. Por exemplo,NOT message_type = "ADT"
.send_date
: a dataYYYY-MM-DD
em que a mensagem foi enviada do segmento MSH.7, especificada no fuso horário do conjunto de dados. Por exemplo,send_date < "2017-01-02"
.send_time
: o carimbo de data/hora em que a mensagem foi enviada. Esse parâmetro é de o segmento MSH.7 da mensagem. Esse parâmetro usa o Formato de hora RFC 3339 para comparações. Por exemplo,send_time < "2017-01-02T00:00:00-05:00"
.create_time
: o carimbo de data/hora em que a mensagem foi criada na API Cloud Healthcare, usando o formato de hora RFC 3339 para comparações. Por exemplo,create_time < "2017-01-02T00:00:00-05:00"
.send_facility
: o centro de atendimento de origem da mensagem, no segmento MSH.4. Por exemplo,send_facility = "ABC"
.
Os exemplos a seguir mostram como especificar um filtro para exportar apenas mensagens HL7v2
do tipo ADT
.
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data "{ 'pubsubDestination': { 'pubsubTopic': 'projects/PROJECT_ID/topics/PUBSUB_TOPIC' }, 'filter': 'message_type = \"ADT\"' }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:export"
Ver mensagens de HL7v2 exportadas no Pub/Sub
Para acessar as mensagens de HL7v2 exportadas no Pub/Sub,
executar gcloud pubsub subscriptions pull
kubectl. O comando usa a flag --format=json
para retornar a saída como JSON em vez do YAML padrão.
gcloud pubsub subscriptions pull --auto-ack projects/PROJECT_ID/subscriptions/PUBSUB_SUBSCRIPTION \ --format=json
PROJECT_ID
é o ID do seu projeto do Google CloudPUBSUB_SUBSCRIPTION
é a assinatura anexada ao tópico do Pub/Sub em que você exportou as mensagens HL7v2.
A saída é esta:
[ { "ackId": "ACK_ID", "message": { "attributes": { "msgType": "TYPE" }, "data": "DATA", "messageId": "8076570784126536", "publishTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ" } } ]