Esta página descreve como usar a recuperação pontual (PITR, na sigla em inglês) para recuperar mensagens HL7v2 em um armazenamento HL7v2 para um estado nos últimos 21 dias. É possível usar a PITR para se recuperar de mudanças indesejadas, como a exclusão acidental de mensagens HL7v2.
Antes de começar
As solicitações de PITR são categorizadas como solicitações de operação avançada e são faturadas de acordo. Antes de usar a PITR, revise os preços das solicitações de operação avançada.
Fluxo de trabalho de recuperação
Para garantir que a recuperação de produção seja executada conforme o esperado, faça primeiro uma simulação. O teste simulado gera um ou mais arquivos com os IDs das mensagens HL7v2 a serem recuperadas. Verifique a correção dos arquivos de saída antes de executar a recuperação novamente na produção.
Para recuperar mensagens HL7v2 específicas ou de acordo com um critério de filtragem, especifique um filtro.
Fazer uma simulação
Permissões exigidas para a tarefa
Para executar esta tarefa, são necessárias as seguintes permissões ou os seguintes papéis de Gerenciamento de identidade e acesso (IAM):
Permissões
healthcare.hl7V2Stores.rollback
Papéis
-
Administrador de repositórios HL7v2 do Healthcare
(
roles/healthcare.hl7V2StoreAdmin
)
Você pode pedir ao administrador para conceder esses papéis de gerenciamento de identidade e acesso. Para instruções sobre como conceder papéis, consulte Gerenciar acesso ou Controlar o acesso aos recursos da API Cloud Healthcare. Também é possível receber as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
Antes de recuperar mensagens HL7v2 na produção, faça um teste.
Os exemplos a seguir mostram como fazer um teste
usando o método
hl7V2Stores.rollback
.
Recuperar as mensagens HL7v2.
Para fazer uma simulação, verifique se o campo
force
estáfalse
.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
: o ID do projeto Google CloudPROJECT_ID
: o local do conjunto de dados;LOCATION
: o conjunto de dados pai da loja HL7v2DATASET_ID
: o ID do repositório HL7v2HL7V2_STORE_ID
: um ponto de recuperação nos últimos 21 dias. Use o formato RFC 3339. Especifique a hora até o segundo e inclua um fuso horário, por exemplo,RECOVERY_TIMESTAMP 2015-02-07T13:28:17.239+02:00
ou2017-01-01T00:00:00Z
.
: o URI totalmente qualificado para uma pasta ou um bucket do Cloud Storage em que os arquivos de saída são gravadosCLOUD_STORAGE_BUCKET
Para enviar a solicitação, escolha uma destas opções:
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' { "rollbackTime": "
RECOVERY_TIMESTAMP ", "resultGcsBucket": "gs://CLOUD_STORAGE_BUCKET ", "force": "false" } EOFDepois 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 :rollback"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:@' { "rollbackTime": "
RECOVERY_TIMESTAMP ", "resultGcsBucket": "gs://CLOUD_STORAGE_BUCKET ", "force": "false" } '@ | Out-File -FilePath request.json -Encoding utf8Depois 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 :rollback" | Select-Object -Expand ContentCopie o corpo da solicitação e 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. Cole o corpo da solicitação nessa ferramenta, preencha todos os outros campos obrigatórios e clique em Executar.
OPERATION_ID
. Você vai precisar desse valor na próxima etapa.Resposta
{ "name": "projects/
PROJECT_ID /locations/LOCATION /datasets/DATASET_ID /operations/OPERATION_ID " }Use o método
projects.locations.datasets.operations.get
para conferir o status da operação de longa duração.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
: o ID do projeto Google CloudPROJECT_ID
: o ID do conjunto de dados;DATASET_ID
: o local do conjunto de dados;LOCATION
: o ID retornado da operação de longa duração.OPERATION_ID
Para enviar a solicitação, escolha uma destas opções:
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 "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 ContentAbra 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.
"done": true
, a operação de longa duração foi concluída.Resposta
{ "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.RollbackHl7V2Messages", "createTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ ", "endTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ ", "logsUrl": "https://console.cloud.google.com/CLOUD_LOGGING_URL ", "counter": { "success": "SUCCESS_COUNT ", "failure": "FAILURE_COUNT " } }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.hl7v2.RollbackHl7V2MessagesResponse", "hl7V2Store": "projects/PROJECT_ID /locations/LOCATION /datasets/DATASET_ID /hl7V2Stores/HL7V2_STORE_ID " } }
Conferir arquivos de saída de simulação
Cada simulação de teste gera um ou mais arquivos com os IDs e tipos das mensagens HL7v2
a serem recuperadas. Os arquivos são criados em uma subpasta na pasta rollback_messages
no bucket de destino do Cloud Storage. O nome da subpasta é o ID do LRO retornado na
resposta hl7V2Stores.rollback
. Para conferir os arquivos e garantir que a recuperação funcione
como esperado, consulte
Visualizar metadados do objeto.
O número de arquivos é proporcional ao número de mensagens HL7v2 recuperadas.
Os nomes de arquivo usam o formato trial-NUMBER-of-TOTAL_NUMBER.txt
,
em que NUMBER
é o número do arquivo e TOTAL_NUMBER
é o número total de arquivos.
Esquema do arquivo de saída da simulação
Os arquivos de saída de uma recuperação de teste de execução usam o esquema mostrado na tabela a seguir:
MESSAGE_ID |
TIMESTAMP |
---|---|
O ID da mensagem HL7v2. | O horário em que a mensagem HL7v2 foi criada ou atualizada na loja HL7v2. |
Recuperação na produção
Permissões exigidas para a tarefa
Para executar esta tarefa, são necessárias as seguintes permissões ou os seguintes papéis de Gerenciamento de identidade e acesso (IAM):
Permissões
healthcare.hl7V2Stores.rollback
Papéis
-
Administrador de repositórios HL7v2 do Healthcare
(
roles/healthcare.hl7V2StoreAdmin
)
Para gravar os arquivos de saída de produção no Cloud Storage, é necessário conceder permissões à conta de serviço do Agente de serviço do Cloud Healthcare. Para instruções, consulte Gravar arquivos de saída no Cloud Storage.
Você pode pedir ao administrador para conceder esses papéis de gerenciamento de identidade e acesso. Para instruções sobre como conceder papéis, consulte Gerenciar acesso ou Controlar o acesso aos recursos da API Cloud Healthcare. Também é possível receber as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
Antes de recuperar na produção, faça um ensaio e inspecione os arquivos de saída do ensaio para garantir que a recuperação de produção seja executada conforme o esperado.
Os exemplos a seguir mostram como restaurar mensagens HL7v2 em produção
usando o método
hl7V2Stores.rollback
.
Recuperar as mensagens HL7v2.
Verifique se o campo
force
étrue
.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
: o ID do projeto Google CloudPROJECT_ID
: o local do conjunto de dados;LOCATION
: o conjunto de dados pai da loja HL7v2DATASET_ID
: o ID do repositório HL7v2HL7V2_STORE_ID
: um ponto de recuperação nos últimos 21 dias. Use o formato RFC 3339. Especifique a hora até o segundo e inclua um fuso horário, por exemplo,RECOVERY_TIMESTAMP 2015-02-07T13:28:17.239+02:00
ou2017-01-01T00:00:00Z
.
: o URI totalmente qualificado para uma pasta ou um bucket do Cloud Storage em que os arquivos de saída são gravadosCLOUD_STORAGE_BUCKET
Para enviar a solicitação, escolha uma destas opções:
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' { "rollbackTime": "
RECOVERY_TIMESTAMP ", "resultGcsBucket": "gs://CLOUD_STORAGE_BUCKET ", "force": "true" } EOFDepois 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 :rollback"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:@' { "rollbackTime": "
RECOVERY_TIMESTAMP ", "resultGcsBucket": "gs://CLOUD_STORAGE_BUCKET ", "force": "true" } '@ | Out-File -FilePath request.json -Encoding utf8Depois 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 :rollback" | Select-Object -Expand ContentCopie o corpo da solicitação e 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. Cole o corpo da solicitação nessa ferramenta, preencha todos os outros campos obrigatórios e clique em Executar.
OPERATION_ID
. Você vai precisar desse valor na próxima etapa.Resposta
{ "name": "projects/
PROJECT_ID /locations/LOCATION /datasets/DATASET_ID /operations/OPERATION_ID " }Use o método
projects.locations.datasets.operations.get
para conferir o status da operação de longa duração.Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
: o ID do projeto Google CloudPROJECT_ID
: o ID do conjunto de dados;DATASET_ID
: o local do conjunto de dados;LOCATION
: o ID retornado da operação de longa duração.OPERATION_ID
Para enviar a solicitação, escolha uma destas opções:
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 "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 ContentAbra 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.
"done": true
, a operação de longa duração foi concluída.Resposta
{ "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.RollbackHl7V2Messages", "createTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ ", "endTime": "YYYY-MM-DDTHH:MM:SS+ZZ:ZZ ", "logsUrl": "https://console.cloud.google.com/CLOUD_LOGGING_URL ", "counter": { "success": "SUCCESS_COUNT ", "failure": "FAILURE_COUNT " } }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.healthcare.v1.hl7v2.RollbackHl7V2MessagesResponse", "hl7V2Store": "projects/PROJECT_ID /locations/LOCATION /datasets/DATASET_ID /hl7V2Stores/HL7V2_STORE_ID " } }
Conferir os arquivos de saída da recuperação de produção
Uma recuperação de produção gera os seguintes arquivos. Os arquivos são criados em uma
subpasta na pasta rollback_messages
no bucket de destino
do Cloud Storage. O nome da subpasta é o ID do LRO retornado na
resposta hl7V2Stores.rollback
. Para conferir os arquivos, consulte
Visualizar metadados do objeto.
success-NUMBER-of-TOTAL_NUMBER.txt
: contém mensagens HL7v2 recuperadas com sucesso.fail-NUMBER-of-TOTAL_NUMBER.txt
: contém mensagens HL7v2 que não foram recuperadas. Um arquivo vazio é gerado mesmo que não haja falhas.
Nos nomes de arquivo, NUMBER
é o número do arquivo e TOTAL_NUMBER
é o número total de arquivos.
Esquema do arquivo de saída de produção
Os arquivos de sucesso e falha de uma recuperação de produção usam o esquema
abaixo. Os arquivos de erro contêm uma coluna ERROR_MESSAGE
adicional.
MESSAGE_ID |
ERROR_MESSAGE (somente arquivos de erro) |
---|---|
O ID da mensagem HL7v2. | Somente arquivos de erro. Descreve por que a mensagem HL7v2 não foi recuperada. |
Usar filtros para restaurar um armazenamento HL7v2 a um estado anterior
Se um armazenamento HL7v2 foi modificado por uma ou mais operações de longa duração (LROs, na sigla em inglês), é possível especificar os IDs de LRO em um filtro para restaurar o armazenamento HL7v2 ao estado anterior. Por exemplo, é possível restaurar um armazenamento HL7v2 para o estado anterior antes que uma operação de importação tenha importado mensagens HL7v2.
Especifique os IDs de LRO no objeto RollbackHL7MessagesFilteringFields
ao enviar
uma solicitação hl7V2Stores.rollback
.
Consulte Como listar LROs para informações sobre como listar e visualizar IDs de LRO em um conjunto de dados da API Cloud Healthcare.