Nesta página, descrevemos como importar mensagens de HL7v2 do Cloud Storage. para um armazenamento HL7v2. Importação em massa As mensagens HL7v2 são mais rápidas e simples do que armazená-las individualmente usando a API REST.
Antes de começar
Consulte Importar mensagens de HL7v2 do Cloud Storage. para os papéis que você precisa conceder à conta de serviço do Agente de serviço do Cloud Healthcare.
Requisitos de formato do arquivo de entrada
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"}}
Importar mensagens de HL7v2
Console
Para importar mensagens de HL7v2 de um bucket do 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 de HL7v2 para o qual e importando mensagens HL7v2.
Na lista de repositórios de dados, selecione Importar na lista Ações para o armazenamento de HL7v2.
A página Importar para o armazenamento de HL7v2 é exibida.
Na lista Projeto, selecione um projeto do Cloud Storage.
Na lista Local, selecione um bucket do Cloud Storage.
Para definir um local específico para importar arquivos, faça o seguinte:
- Expanda Opções avançadas.
- Selecione Modificar caminho do Cloud Storage.
Para definir uma fonte específica para importar arquivos, defina o caminho na caixa de texto Local. Você pode usar caracteres curinga para importar vários arquivos de um ou mais diretórios. Para mais informações sobre a nomenclatura de objetos, consulte as diretrizes de nomenclatura de objetos.
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.
- Use
Clique em Importar para importar as mensagens de HL7v2 da origem definida.
- 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.
API
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.
- Use
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 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 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 application-default print-access-token)" \ "https://healthcare.googleapis.com/v1/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.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 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 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 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 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 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.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" } }
Resolver problemas de solicitações de importação de HL7v2
Se ocorrerem erros durante a importação de mensagens 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 em operações de longa duração.