Como importar mensagens HL7v2 do Cloud Storage

Nesta página, você aprenderá como importar mensagens HL7v2 do Cloud Storage usando o método projects.locations.datasets.hl7V2Stores.import.

Como definir permissões do Cloud Storage

Antes de importar mensagens HL7v2 do Cloud Storage, é preciso conceder outras permissões à conta de serviço do agente de servicço do Cloud Healthcare. Para mais informações, consulte Armazenar permissões do HL7v2 no Cloud Storage.

Como importar mensagens HL7v2

Para importar mensagens HL7v2, é necessário primeiro criar um ou mais arquivos JSON (.ndjson) delimitados por uma nova linha no Cloud Storage e que contenham uma ou mais mensagens. Cada linha do arquivo é um único recurso Message (em inglês), que contém uma mensagem HL7v2 codificada em base64. O recurso Message também pode incluir rótulos opcionais.

Por exemplo, o arquivo a seguir, chamado messages.ndjson, contém duas mensagens HL7v2. Um rótulo é definido na segunda mensagem.

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

Os exemplos a seguir mostram como importar mensagens HL7v2 do Cloud Storage usando o método projects.locations.datasets.hl7V2Stores.import.

Observe o seguinte ao chamar a operação de importação:

  • O local do arquivo no bucket é arbitrário e não precisa aderir exatamente ao formato especificado nas amostras a seguir.
  • Ao especificar o local das mensagens HL7v2 no Cloud Storage, use caracteres curinga para importar vários arquivos de um ou mais diretórios. Os seguintes caracteres curinga são suportados:
    • Use * para corresponder a 0 ou mais caracteres que não sejam separadores. Por exemplo, gs://BUCKET/DIRECTORY/Example*.ndjson corresponde a Example.ndjson e Example22.ndjson em DIRECTORY.
    • Use ** para corresponder a 0 ou mais caracteres (incluindo separadores). Precisa ser usado no final de um caminho e sem outros caracteres curinga no caminho. Também pode ser usado com uma extensão de nome de arquivo (como .ndjson), que importa todos os arquivos com a extensão de nome de arquivo no diretório especificado e seus subdiretórios. Por exemplo, gs://BUCKET/DIRECTORY/**.ndjson importa todos os arquivos com a extensão de nome de arquivo .ndjson em DIRECTORY e seus subdiretórios.
    • Use ? para corresponder a um caractere. Por exemplo, gs://BUCKET/DIRECTORY/Example?.ndjson corresponde a Example1.ndjson, mas não corresponde a Example.ndjson nem Example01.ndjson.

curl

Para importar mensagens HL7v2 para um armazenamento HL7v2, 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 local do objeto em um bucket do Cloud Storage
  • Um token de acesso

O exemplo a seguir mostra como importar um único arquivo usando uma solicitação POST usando curl.

curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    --data "{
      'gcsSource': {
        'uri': 'gs://BUCKET/DIRECTORY/HL7V2_MESSAGE_FILE'
      }
    }" "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:import"

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 print-access-token)" \
    "https://healthcare.googleapis.com/v1beta1/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.v1beta1.OperationMetadata",
    "apiMethodName": "google.cloud.healthcare.v1beta1.hl7v2.Hl7V2Service.ImportMessages",
    "createTime": "CREATE_TIME",
    "endTime": "END_TIME"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1beta1.hl7v2.ImportMessagesResponse"
  }
}

PowerShell

Para importar mensagens HL7v2 para um armazenamento HL7v2, 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 local do objeto em um bucket do Cloud Storage
  • Um token de acesso

Veja na amostra a seguir como importar um único arquivo usando uma solicitação POST com o Windows PowerShell.

$cred = gcloud auth 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/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/hl7V2Stores/HL7V2_STORE_ID:import" | Select-Object -Expand Content

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:

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

Invoke-WebRequest `
  -Method Get `
  -Headers $headers `
  -Uri "https://healthcare.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content

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.v1beta1.OperationMetadata",
    "apiMethodName": "google.cloud.healthcare.v1beta1.hl7v2.Hl7V2Service.ImportMessages",
    "createTime": "CREATE_TIME",
    "endTime": "END_TIME"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.healthcare.v1beta1.hl7v2.ImportMessagesResponse"
  }
}

Solução de problemas com solicitações de importação HL7v2

Se ocorrerem erros durante uma solicitação de importação HL7v2, eles serão registrados no Cloud Logging. Para mais informações, consulte Como visualizar registros de erros no Cloud Logging.