Importe mensagens HL7v2 do Cloud Storage

Esta página descreve como importar mensagens HL7v2 do Cloud Storage para um armazenamento HL7v2. A importação em massa de mensagens HL7v2 é mais rápida e simples do que o armazenamento individual das mesmas através da API REST.

Antes de começar

Consulte o artigo Importe mensagens HL7v2 do Cloud Storage para ver as funções que tem de conceder à conta de serviço do agente do Cloud Healthcare Service.

Requisitos do formato de ficheiro de entrada

Para importar mensagens HL7v2, tem de criar primeiro um ou mais ficheiros JSON (.ndjson) delimitados por Newline no Cloud Storage com uma ou mais mensagens. Cada linha do ficheiro é um único recurso Message que contém uma mensagem HL7v2 codificada em base64. O recurso Message também pode incluir etiquetas opcionais.

Por exemplo, o seguinte ficheiro, denominado messages.ndjson, contém duas mensagens HL7v2. É definida uma etiqueta na segunda mensagem.

{"data" :"TVNIfF5+XCZ8QXxTRU5EX0ZBQ0lMSVRZXzF8QXxBfDIwMTgwMTAxMDAwMDAwfHxUWVBFXkF8MjAxODAxMDEwMDAwMDB8VHwwLjB8fHxBQXx8MDB8QVNDSUkNRVZOfEEwMHwyMDE4MDEwMTA0MDAwMA1QSUR8fDE0ATExMV5eXl5NUk58MTExMTExMTFeXl5eTVJOfjExMTExMTExMTFeXl5eT1JHTk1CUg=="}
{"data" :"TVNIfF5+XCZ8QXxTRU5EX0ZBQ0lMSVRZXzJ8QXxBfDIwMTgwMTAxMDAwMDAwfHxUWVBFXkF8MjAxODAxMDEwMDAwMDB8VHwwLjB8fHxBQXx8MDB8QVNDSUkNRVZOfEEwMHwyMDE4MDEwMTA0MDAwMA1QSUR8fDE0ATExMV5eXl5NUk58MTExMTExMTFeXl5eTVJOfjExMTExMTExMTFeXl5eT1JHTk1CUg==","labels":{"foo":"bar"}}

Importe mensagens HL7v2

Consola

Para importar mensagens HL7v2 de um contentor do Cloud Storage, conclua os seguintes passos:

  1. Na Google Cloud consola, aceda à página Conjuntos de dados.

    Aceda aos conjuntos de dados

  2. Clique no conjunto de dados que contém o armazenamento de HL7v2 para o qual está a importar mensagens HL7v2.

  3. Na lista de armazenamentos de dados, escolha Importar na lista Ações para o armazenamento de HL7v2.

    É apresentada a página Importar para o armazenamento HL7v2.

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

  5. Na lista Localização, selecione um contentor do Cloud Storage.

  6. Para definir uma localização específica para importar ficheiros, faça o seguinte:

    1. Expanda Opções avançadas.
    2. Selecione Substituir caminho do Cloud Storage.
    3. Para definir uma origem específica para importar ficheiros, defina o caminho na caixa de texto Localização. Pode usar carateres universais para importar vários ficheiros de um ou mais diretórios. Para mais informações sobre a nomenclatura de objetos, consulte as diretrizes de nomenclatura de objetos.

      Os seguintes carateres universais são suportados:
      • Use * para corresponder a 0 ou mais carateres não separadores. Por exemplo, gs://BUCKET/DIRECTORY/Example*.ndjson corresponde a Example.ndjson e Example22.ndjson em DIRECTORY.
      • Use ** para representar 0 ou mais carateres (incluindo separadores). Tem de ser usado no final de um caminho e sem outros carateres universais no caminho. Também pode ser usado com uma extensão de nome de ficheiro (como .ndjson), que importa todos os ficheiros com a extensão de nome de ficheiro no diretório especificado e respetivos subdiretórios. Por exemplo, gs://BUCKET/DIRECTORY/**.ndjson importa todos os ficheiros com a extensão de nome de ficheiro .ndjson em DIRECTORY e nos respetivos subdiretórios.
      • Use ? para corresponder a 1 caráter. Por exemplo, gs://BUCKET/DIRECTORY/Example?.ndjson corresponde a Example1.ndjson, mas não corresponde a Example.ndjson nem a Example01.ndjson.
  7. Clique em Importar para importar mensagens HL7v2 da origem definida.

  8. Para acompanhar o estado da operação, clique no separador Operações. Após a conclusão da operação, são apresentadas as seguintes indicações:
    • A secção Estado da operação de longa duração tem uma marca de verificação verde no cabeçalho OK.
    • A secção Vista geral tem uma marca de verificação verde e um indicador OK na mesma linha que o ID da operação.
    Se encontrar erros, clique em Ações e, de seguida, em Ver detalhes no Cloud Logging.

API

Os exemplos seguintes mostram como importar mensagens HL7v2 do Cloud Storage através do método projects.locations.datasets.hl7V2Stores.import.

Tenha em atenção o seguinte ao chamar a operação de importação:

  • A localização do ficheiro no contentor é arbitrária e não tem de seguir exatamente o formato especificado nos exemplos seguintes.
  • Quando especifica a localização das mensagens HL7v2 no Cloud Storage, pode usar carateres universais para importar vários ficheiros de um ou mais diretórios. Os seguintes carateres universais são suportados:
    • Use * para corresponder a 0 ou mais carateres não separadores. Por exemplo, gs://BUCKET/DIRECTORY/Example*.ndjson corresponde a Example.ndjson e Example22.ndjson em DIRECTORY.
    • Use ** para representar 0 ou mais carateres (incluindo separadores). Tem de ser usado no final de um caminho e sem outros carateres universais no caminho. Também pode ser usado com uma extensão de nome de ficheiro (como .ndjson), que importa todos os ficheiros com a extensão de nome de ficheiro no diretório especificado e respetivos subdiretórios. Por exemplo, gs://BUCKET/DIRECTORY/**.ndjson importa todos os ficheiros com a extensão de nome de ficheiro .ndjson em DIRECTORY e nos respetivos subdiretórios.
    • Use ? para corresponder a 1 caráter. Por exemplo, gs://BUCKET/DIRECTORY/Example?.ndjson corresponde a Example1.ndjson, mas não corresponde a Example.ndjson nem a Example01.ndjson.

curl

Para importar mensagens HL7v2 para um armazenamento HL7v2, faça um pedido POST e especifique as seguintes informações:

  • O nome do conjunto de dados principal
  • O nome do armazenamento de HL7v2
  • A localização do objeto num contentor do Cloud Storage
  • Uma chave de acesso

O exemplo seguinte mostra como importar um único ficheiro através de um pedido 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 "{
      'gcsSource': {
        'uri': 'gs://BUCKET/DIRECTORY/HL7V2_MESSAGE_FILE'
      }
    }" "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:import"

Se o pedido for bem-sucedido, o servidor devolve 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 acompanhar o estado da operação, pode usar o método Operation get:

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 o pedido for bem-sucedido, o servidor devolve uma resposta com o estado 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.ImportMessages",
    "createTime": "CREATE_TIME",
    "endTime": "END_TIME"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.hl7v2.ImportMessagesResponse"
  }
}

PowerShell

Para importar mensagens HL7v2 para um armazenamento HL7v2, faça um pedido POST e especifique as seguintes informações:

  • O nome do conjunto de dados principal
  • O nome do armazenamento de HL7v2
  • A localização do objeto num contentor do Cloud Storage
  • Uma chave de acesso

O exemplo seguinte mostra como importar um único ficheiro através de um pedido POST com o Windows PowerShell.

$cred = gcloud auth application-default print-access-token
$headers = @{ Authorization = "Bearer $cred" }

Invoke-WebRequest `
  -Method Post `
  -Headers $headers `
  -ContentType: "application/json; charset=utf-8" `
  -Body "{
    'gcsSource': {
      'uri': 'gs://BUCKET/DIRECTORY/HL7V2_MESSAGE_FILE'
    }
  }" `
  -Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:import" | Select-Object -Expand Content

Se o pedido for bem-sucedido, o servidor devolve 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 acompanhar o estado da operação, pode usar o método Operation get:

$cred = gcloud auth application-default 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

Se o pedido for bem-sucedido, o servidor devolve uma resposta com o estado 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.ImportMessages",
    "createTime": "CREATE_TIME",
    "endTime": "END_TIME"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1.hl7v2.ImportMessagesResponse"
  }
}

Resolva problemas de solicitações de importação de HL7v2

Se ocorrerem erros durante a importação de mensagens HL7v2, os erros são registados no Cloud Logging. Para mais informações, consulte o artigo Ver registos de erros nos Registos na nuvem.

Se uma operação de longa duração devolver um erro, consulte o artigo Resolução de problemas de operações de longa duração.