Esta página descreve como exportar mensagens HL7v2 de uma loja HL7v2 para o Cloud Storage. É possível exportar mensagens HL7v2 em massa para o Cloud Storage para processamento downstream.
Antes de começar
Consulte Exportar mensagens HL7v2 do Cloud Storage para conferir os papéis que você precisa conceder à conta de serviço do Agente de serviço do Cloud Healthcare.
Exportar as mensagens HL7v2 para o Cloud Storage
Permissões exigidas para a tarefa
Para executar esta tarefa, são necessárias as seguintes permissões ou os seguintes papéis de Gerenciamento de identidade e acesso (IAM):
Permissões
healthcare.hl7V2Stores.export
no armazenamento HL7v2 solicitado
Papéis
Você pode pedir ao administrador para conceder esses papéis de gerenciamento de identidade e acesso. Para instruções sobre como conceder papéis, consulte Gerenciar acesso ou Controlar o acesso aos recursos da API Cloud Healthcare. Também é possível receber as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
A API Cloud Healthcare exporta cada mensagem HL7v2 como uma
linha em um arquivo .ndjson
NDJSON. As mensagens HL7v2 são ordenadas
cronologicamente pelo valor
sendTime
.
Exporte para um bucket ou pasta do Cloud Storage, em vez de um objeto, porque a API Cloud Healthcare pode criar vários arquivos NDJSON quando há muitas mensagens HL7v2.
Se você exportar para uma pasta do Cloud Storage que não existe, ela será criada.
Para exportar mensagens HL7v2 para o Cloud Storage, siga estas etapas:
No console do Google Cloud, acesse a página Conjuntos de dados.
Clique no conjunto de dados que contém o armazenamento HL7v2 de que você está exportando mensagens HL7v2.
Na lista de armazenamentos de dados, escolha Exportar na lista de Ações para o armazenamento HL7v2.
A página Exportar mensagens HL7v2 é exibida.
Na lista Projeto, selecione um projeto do Cloud Storage.
Na lista Local, selecione um bucket do Cloud Storage.
Clique em Exportar para exportar instâncias HL7v2 para o local definido no Cloud Storage.
- Para acompanhar o status da operação, clique na guia Operações. Após a conclusão da operação, as seguintes indicações serão exibidas:
- A seção Status da operação de longa duração tem uma marca de seleção verde no cabeçalho OK.
- A seção Visão geral tem uma marca de seleção verde e um indicador OK na mesma linha do ID da operação.
Exportar mensagens HL7v2 para o Cloud Storage usando filtros
Por padrão, a exportação de mensagens HL7v2 para o Cloud Storage inclui todas as mensagens
HL7v2 em uma loja HL7v2 e todos os campos em cada objeto
Message
.
É possível filtrar as mensagens HL7v2 exportadas da seguinte maneira:
- Use filtros para exportar um subconjunto de mensagens HL7v2 que correspondem a um critério de filtro. Para mais informações, consulte Exportar um subconjunto de mensagens HL7v2 usando um filtro.
- Use o objeto
MessageView
para selecionar os campos em cadaMessage
para exportação. Para mais informações, consulte Exportar mensagens HL7v2 por campoMessage
.
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 é do 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 onde a mensagem partiu, do 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
.
Use o método
hl7V2Stores.export
para exportar as mensagens HL7v2:Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
: o ID do projeto Google CloudPROJECT_ID
: o local do conjunto de dados;LOCATION
: o conjunto de dados pai da loja HL7v2DATASET_ID
: o ID do repositório HL7v2HL7V2_STORE_ID
: o nome de um bucket ou pasta do Cloud Storage em que as mensagens HL7v2 exportadas são gravadasCLOUD_STORAGE_LOCATION
Corpo JSON da solicitação:
{ "gcsDestination": { "uriPrefix": "gs://
CLOUD_STORAGE_LOCATION " }, "filter": "message_type = \"ADT\"" }Para enviar a solicitação, escolha uma destas opções:
Salve o corpo da solicitação em um arquivo chamado
request.json
. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:cat > request.json << 'EOF' { "gcsDestination": { "uriPrefix": "gs://
CLOUD_STORAGE_LOCATION " }, "filter": "message_type = \"ADT\"" } EOFDepois execute o comando a seguir para enviar a solicitação REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /datasets/DATASET_ID /hl7V2Stores/HL7V2_STORE_ID :export"Salve o corpo da solicitação em um arquivo chamado
request.json
. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:@' { "gcsDestination": { "uriPrefix": "gs://
CLOUD_STORAGE_LOCATION " }, "filter": "message_type = \"ADT\"" } '@ | Out-File -FilePath request.json -Encoding utf8Depois execute o comando a seguir para enviar a solicitação REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /datasets/DATASET_ID /hl7V2Stores/HL7V2_STORE_ID :export" | Select-Object -Expand ContentOPERATION_ID
. Você vai precisar desse valor na próxima etapa.Resposta
{ "name": "projects/
PROJECT_ID /locations/LOCATION /datasets/DATASET_ID /operations/OPERATION_ID " }Use o método
projects.locations.datasets.operations.get
para conferir o status da operação de longa duração.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
: o ID do projeto Google CloudPROJECT_ID
: o ID do conjunto de dados;DATASET_ID
: o local do conjunto de dados;LOCATION
: o ID retornado da operação de longa duração.OPERATION_ID
Para enviar a solicitação, escolha uma destas opções:
execute o seguinte comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /datasets/DATASET_ID /operations/OPERATION_ID "Execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /datasets/DATASET_ID /operations/OPERATION_ID " | Select-Object -Expand ContentAbra a página de referência do método. O painel "APIs Explorer" é aberto no lado direito da página. Interaja com essa ferramenta para enviar solicitações. Preencha todos os campos obrigatórios e clique em Executar.
"done": true
, a operação de longa duração foi concluída.Resposta
{ "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": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ ", "endTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ ", "logsUrl": "https://console.cloud.google.com/CLOUD_LOGGING_URL " "counter": { "success": "SUCCESS_COUNT ", // If there were any failures, they display in the `failure` field. "failure": "FAILURE_COUNT " } }, "done": true, // The `response` field only displays if there were no errors. "response": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.hl7v2.ExportMessagesResponse", }, // If there were any errors, an `error` field displays instead of a `response` field. // See Troubleshooting long-running operations for a list of response codes. "error": { "code":ERROR_CODE , "message": "DESCRIPTION ", "details": [ { "@type": "...",FIELD1 : ..., ... } ] } }
Exportar mensagens HL7v2 por campo Message
Na API Cloud Healthcare, as mensagens HL7v2 são armazenadas em recursos Message
. Use o tipo enumerado MessageView
para determinar quais campos no recurso Message
são incluídos em
cada mensagem HL7v2 exportada.
Os exemplos a seguir mostram como usar o valor BASIC
em MessageView
para incluir apenas o campo name
nas mensagens HL7v2 exportadas.
Use o método
hl7V2Stores.export
para exportar as mensagens HL7v2:Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
: o ID do projeto Google CloudPROJECT_ID
: o local do conjunto de dados;LOCATION
: o conjunto de dados pai da loja HL7v2DATASET_ID
: o ID do repositório HL7v2HL7V2_STORE_ID
: o nome de um bucket ou pasta do Cloud Storage em que as mensagens HL7v2 exportadas são gravadasCLOUD_STORAGE_LOCATION
Corpo JSON da solicitação:
{ "gcsDestination": { "uriPrefix": "gs://
CLOUD_STORAGE_LOCATION ", "messageView": "BASIC" } }Para enviar a solicitação, escolha uma destas opções:
Salve o corpo da solicitação em um arquivo chamado
request.json
. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:cat > request.json << 'EOF' { "gcsDestination": { "uriPrefix": "gs://
CLOUD_STORAGE_LOCATION ", "messageView": "BASIC" } } EOFDepois execute o comando a seguir para enviar a solicitação REST:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /datasets/DATASET_ID /hl7V2Stores/HL7V2_STORE_ID :export"Salve o corpo da solicitação em um arquivo chamado
request.json
. Execute o comando a seguir no terminal para criar ou substituir esse arquivo no diretório atual:@' { "gcsDestination": { "uriPrefix": "gs://
CLOUD_STORAGE_LOCATION ", "messageView": "BASIC" } } '@ | Out-File -FilePath request.json -Encoding utf8Depois execute o comando a seguir para enviar a solicitação REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /datasets/DATASET_ID /hl7V2Stores/HL7V2_STORE_ID :export" | Select-Object -Expand ContentOPERATION_ID
. Você vai precisar desse valor na próxima etapa.Resposta
{ "name": "projects/
PROJECT_ID /locations/LOCATION /datasets/DATASET_ID /operations/OPERATION_ID " }Use o método
projects.locations.datasets.operations.get
para conferir o status da operação de longa duração.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
: o ID do projeto Google CloudPROJECT_ID
: o ID do conjunto de dados;DATASET_ID
: o local do conjunto de dados;LOCATION
: o ID retornado da operação de longa duração.OPERATION_ID
Para enviar a solicitação, escolha uma destas opções:
execute o seguinte comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /datasets/DATASET_ID /operations/OPERATION_ID "Execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID /locations/LOCATION /datasets/DATASET_ID /operations/OPERATION_ID " | Select-Object -Expand ContentAbra a página de referência do método. O painel "APIs Explorer" é aberto no lado direito da página. Interaja com essa ferramenta para enviar solicitações. Preencha todos os campos obrigatórios e clique em Executar.
"done": true
, a operação de longa duração foi concluída.Resposta
{ "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": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ ", "endTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ ", "logsUrl": "https://console.cloud.google.com/CLOUD_LOGGING_URL " "counter": { "success": "SUCCESS_COUNT ", // If there were any failures, they display in the `failure` field. "failure": "FAILURE_COUNT " } }, "done": true, // The `response` field only displays if there were no errors. "response": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.hl7v2.ExportMessagesResponse", }, // If there were any errors, an `error` field displays instead of a `response` field. // See Troubleshooting long-running operations for a list of response codes. "error": { "code":ERROR_CODE , "message": "DESCRIPTION ", "details": [ { "@type": "...",FIELD1 : ..., ... } ] } }
Resolver problemas de solicitações de exportação HL7v2
Se ocorrerem erros durante a exportação de mensagens HL7v2, eles serão registrados no Cloud Logging. Para mais informações, consulte Como visualizar registros de erros no Cloud Logging.
Se uma operação de longa duração retornar um erro, consulte Solução de problemas de operações de longa duração.