Exportar as mensagens HL7v2 para o Cloud Storage

Nesta página, descrevemos como exportar mensagens HL7v2 de um armazenamento HL7v2 para o Cloud Storage. É possível exportar em massa mensagens de HL7v2 para o Cloud Storage para processamento downstream.

Antes de começar

Consulte Exportar mensagens de HL7v2 do Cloud Storage para saber 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

A API Cloud Healthcare exporta cada mensagem HL7v2 como uma linha de um arquivo .ndjson NDJSON. As mensagens de 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, a pasta será criada.

Console

Para exportar mensagens de HL7v2 para o Cloud Storage, siga estas etapas:

  1. No console do Google Cloud, acesse a página Conjuntos de dados.

    Acessar conjuntos de dados

  2. Clique no conjunto de dados que contém o armazenamento de HL7v2 do qual você está exportando mensagens de HL7v2.

  3. Na lista de armazenamentos de dados, escolha Exportar na lista Ações do armazenamento HL7v2.

    A página Exportar mensagens HL7v2 será exibida.

  4. Na lista Projeto, selecione um projeto do Cloud Storage.

  5. Na lista Local, selecione um bucket do Cloud Storage.

  6. Clique em Exportar para exportar instâncias de HL7v2 para o local definido no Cloud Storage.

  7. 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.
    Se você encontrar erros, clique em Ações e depois em Ver detalhes no Cloud Logging.

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 um armazenamento HL7v2 e todos os campos em cada objeto Message.

É possível filtrar as mensagens de HL7v2 exportadas da seguinte maneira:

Exportar um subconjunto de mensagens de HL7v2 usando um filtro

É possível usar os seguintes campos nos critérios de filtro:

Você pode especificar os seguintes parâmetros de filtro como critérios 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 data em que a mensagem foi enviada do segmento MSH.7, especificada no fuso horário do conjunto de dados. YYYY-MM-DD 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 (link em inglês) 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: a central de atendimento de onde veio a mensagem, 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.

REST

  1. Use o método hl7V2Stores.export para exportar as mensagens do HL7v2:

    Antes de usar os dados da solicitação, faça as substituições a seguir:

    • PROJECT_ID: o ID do seu projeto do Google Cloud;
    • LOCATION: o local do conjunto de dados;
    • DATASET_ID: o conjunto de dados pai do armazenamento HL7v2.
    • HL7V2_STORE_ID: o ID do armazenamento HL7v2.
    • CLOUD_STORAGE_LOCATION: o nome de um bucket ou pasta do Cloud Storage em que as mensagens HL7v2 exportadas são gravadas

    Solicitar corpo JSON:

    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION"
      },
      "filter": "message_type = \"ADT\""
    }
    

    Para enviar a solicitação, escolha uma destas opções:

    curl

    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\""
    }
    EOF

    Depois 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"

    PowerShell

    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 utf8

    Depois 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 Content
    A saída é esta. A resposta contém um identificador para uma operação de longa duração (LRO, na sigla em inglês). Operações de longa duração são retornadas quando as chamadas de método podem levar mais tempo para serem concluídas. Anote o valor de OPERATION_ID. Você vai precisar desse valor na próxima etapa.

  2. Use o método projects.locations.datasets.operations.get para ver o status da operação de longa duração.

    Antes de usar os dados da solicitação, faça as substituições a seguir:

    • PROJECT_ID: o ID do seu projeto do Google Cloud;
    • DATASET_ID: o ID do conjunto de dados;
    • LOCATION: o local do conjunto de dados;
    • OPERATION_ID: o ID retornado da operação de longa duração.

    Para enviar a solicitação, escolha uma destas opções:

    curl

    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"

    PowerShell

    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 Content

    APIs Explorer

    Abra 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.

    A saída é esta. Quando a resposta contiver "done": true, a operação de longa duração será concluída.

Exportar mensagens HL7v2 por campo Message

Na API Cloud Healthcare, as mensagens de HL7v2 são armazenadas nos recursos do Message. Use o enum MessageView para determinar quais campos no recurso Message estã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.

REST

  1. Use o método hl7V2Stores.export para exportar as mensagens do HL7v2:

    Antes de usar os dados da solicitação, faça as substituições a seguir:

    • PROJECT_ID: o ID do seu projeto do Google Cloud;
    • LOCATION: o local do conjunto de dados;
    • DATASET_ID: o conjunto de dados pai do armazenamento HL7v2.
    • HL7V2_STORE_ID: o ID do armazenamento HL7v2.
    • CLOUD_STORAGE_LOCATION: o nome de um bucket ou pasta do Cloud Storage em que as mensagens HL7v2 exportadas são gravadas

    Solicitar corpo JSON:

    {
      "gcsDestination": {
        "uriPrefix": "gs://CLOUD_STORAGE_LOCATION",
        "messageView": "BASIC"
      }
    }
    

    Para enviar a solicitação, escolha uma destas opções:

    curl

    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"
      }
    }
    EOF

    Depois 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"

    PowerShell

    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 utf8

    Depois 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 Content
    A saída é esta. A resposta contém um identificador para uma operação de longa duração (LRO, na sigla em inglês). Operações de longa duração são retornadas quando as chamadas de método podem levar mais tempo para serem concluídas. Anote o valor de OPERATION_ID. Você vai precisar desse valor na próxima etapa.

  2. Use o método projects.locations.datasets.operations.get para ver o status da operação de longa duração.

    Antes de usar os dados da solicitação, faça as substituições a seguir:

    • PROJECT_ID: o ID do seu projeto do Google Cloud;
    • DATASET_ID: o ID do conjunto de dados;
    • LOCATION: o local do conjunto de dados;
    • OPERATION_ID: o ID retornado da operação de longa duração.

    Para enviar a solicitação, escolha uma destas opções:

    curl

    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"

    PowerShell

    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 Content

    APIs Explorer

    Abra 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.

    A saída é esta. Quando a resposta contiver "done": true, a operação de longa duração será concluída.

Resolver problemas de solicitações de exportação de HL7v2

Se ocorrerem erros durante a exportação de mensagens de HL7v2, os erros 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 Como solucionar problemas de operações de longa duração.