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:
Na Google Cloud consola, aceda à página Conjuntos de dados.
Clique no conjunto de dados que contém o armazenamento de HL7v2 para o qual está a importar mensagens HL7v2.
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.
Na lista Projeto, selecione um projeto do Cloud Storage.
Na lista Localização, selecione um contentor do Cloud Storage.
Para definir uma localização específica para importar ficheiros, faça o seguinte:
- Expanda Opções avançadas.
- Selecione Substituir caminho do Cloud Storage.
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.
- Use
Clique em Importar para importar mensagens HL7v2 da origem definida.
- 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.
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.
- Use
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.