Recupere mensagens HL7v2 com a recuperação pontual (PITR)

Esta página descreve como usar a recuperação num ponto específico no tempo (PITR) para recuperar mensagens HL7v2 num arquivo HL7v2 para um estado nos últimos 21 dias. Pode usar a PITR para recuperar de alterações indesejadas, como a eliminação acidental de mensagens HL7v2.

Antes de começar

Os pedidos PITR são categorizados como pedidos de operação avançados e são faturados em conformidade. Antes de usar a PITR, reveja os preços dos pedidos de operações avançadas.

Fluxo de trabalho de recuperação

Para garantir que uma recuperação de produção é executada conforme esperado, faça primeiro um teste. A execução de teste produz um ou mais ficheiros que contêm os IDs das mensagens HL7v2 a recuperar. Valide a correção dos ficheiros de saída antes de executar novamente a recuperação em produção.

Para recuperar mensagens HL7v2 específicas ou recuperar mensagens HL7v2 de acordo com critérios de filtragem, especifique um filtro.

Faça uma execução de ensaio

Antes de recuperar mensagens HL7v2 em produção, faça um teste de simulação.

Os exemplos seguintes mostram como fazer um teste de execução usando o método hl7V2Stores.rollback.

REST

  1. Recuperar as mensagens HL7v2.

    Para fazer um teste, certifique-se de que o campo force está false.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • LOCATION: a localização do conjunto de dados
    • DATASET_ID: o conjunto de dados principal do armazenamento de HL7v2
    • HL7V2_STORE_ID: o ID do armazenamento de HL7v2
    • RECOVERY_TIMESTAMP: um ponto de recuperação nos últimos 21 dias. Use o formato RFC 3339. Especifique a hora até ao segundo e inclua um fuso horário, por exemplo, 2015-02-07T13:28:17.239+02:00 ou 2017-01-01T00:00:00Z.
    • CLOUD_STORAGE_BUCKET: o URI totalmente qualificado para uma pasta ou um contentor do Cloud Storage onde os ficheiros de saída são escritos

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    cat > request.json << 'EOF'
    {
      "rollbackTime": "RECOVERY_TIMESTAMP",
      "resultGcsBucket": "gs://CLOUD_STORAGE_BUCKET",
      "force": "false"
    }
    EOF

    Em seguida, execute o seguinte comando para enviar o seu pedido 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"

    PowerShell

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    @'
    {
      "rollbackTime": "RECOVERY_TIMESTAMP",
      "resultGcsBucket": "gs://CLOUD_STORAGE_BUCKET",
      "force": "false"
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Em seguida, execute o seguinte comando para enviar o seu pedido 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 Content

    Explorador de APIs

    Copie o corpo do pedido e abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Cole o corpo do pedido nesta ferramenta, preencha todos os outros campos obrigatórios e clique em Executar.

    O resultado é o seguinte. A resposta contém um identificador para uma operação de longa duração (LRO). As operações de longa duração são devolvidas quando as chamadas de métodos podem demorar mais tempo a serem concluídas. Repare no valor de OPERATION_ID. Precisa deste valor no passo seguinte.

  2. Use o método projects.locations.datasets.operations.get para obter o estado da operação de execução longa.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • DATASET_ID: o ID do conjunto de dados
    • LOCATION: a localização do conjunto de dados
    • OPERATION_ID: o ID devolvido pela operação de longa duração

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    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"

    PowerShell

    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 Content

    Explorador de APIs

    Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.

    O resultado é o seguinte. Quando a resposta contém "done": true, a operação de longa duração terminou.

Veja os ficheiros de saída da execução de ensaio

Cada teste de execução produz um ou mais ficheiros que contêm os IDs e os tipos das mensagens HL7v2 a recuperar. Os ficheiros são criados numa subpasta na pasta rollback_messages no contentor do Cloud Storage de destino. O nome da subpasta é o ID da LRO devolvido na resposta hl7V2Stores.rollback. Para ver os ficheiros e garantir que a recuperação funciona conforme esperado, consulte o artigo Ver metadados de objetos.

O número de ficheiros é proporcional ao número de mensagens HL7v2 recuperadas.

Os nomes dos ficheiros usam o formato trial-NUMBER-of-TOTAL_NUMBER.txt, em que NUMBER é o número do ficheiro e TOTAL_NUMBER é o número total de ficheiros.

Esquema do ficheiro de saída da execução de ensaio

Os ficheiros de saída de uma recuperação de teste usam o esquema apresentado na tabela seguinte:

MESSAGE_ID TIMESTAMP
O ID da mensagem HL7v2. A hora em que a mensagem HL7v2 foi criada ou atualizada no armazenamento HL7v2.

Recupere em produção

Antes de fazer a recuperação em produção, faça um teste de simulação e inspecione os ficheiros de saída do teste de simulação para garantir que a recuperação de produção é executada conforme esperado.

Os exemplos seguintes mostram como restaurar mensagens HL7v2 em produção usando o método hl7V2Stores.rollback.

REST

  1. Recuperar as mensagens HL7v2.

    Certifique-se de que o campo force está true.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • LOCATION: a localização do conjunto de dados
    • DATASET_ID: o conjunto de dados principal do armazenamento de HL7v2
    • HL7V2_STORE_ID: o ID do armazenamento de HL7v2
    • RECOVERY_TIMESTAMP: um ponto de recuperação nos últimos 21 dias. Use o formato RFC 3339. Especifique a hora até ao segundo e inclua um fuso horário, por exemplo, 2015-02-07T13:28:17.239+02:00 ou 2017-01-01T00:00:00Z.
    • CLOUD_STORAGE_BUCKET: o URI totalmente qualificado para uma pasta ou um contentor do Cloud Storage onde os ficheiros de saída são escritos

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    cat > request.json << 'EOF'
    {
      "rollbackTime": "RECOVERY_TIMESTAMP",
      "resultGcsBucket": "gs://CLOUD_STORAGE_BUCKET",
      "force": "true"
    }
    EOF

    Em seguida, execute o seguinte comando para enviar o seu pedido 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"

    PowerShell

    Guarde o corpo do pedido num ficheiro denominado request.json. Execute o seguinte comando no terminal para criar ou substituir este ficheiro no diretório atual:

    @'
    {
      "rollbackTime": "RECOVERY_TIMESTAMP",
      "resultGcsBucket": "gs://CLOUD_STORAGE_BUCKET",
      "force": "true"
    }
    '@  | Out-File -FilePath request.json -Encoding utf8

    Em seguida, execute o seguinte comando para enviar o seu pedido 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 Content

    Explorador de APIs

    Copie o corpo do pedido e abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Cole o corpo do pedido nesta ferramenta, preencha todos os outros campos obrigatórios e clique em Executar.

    O resultado é o seguinte. A resposta contém um identificador para uma operação de longa duração (LRO). As operações de longa duração são devolvidas quando as chamadas de métodos podem demorar mais tempo a serem concluídas. Repare no valor de OPERATION_ID. Precisa deste valor no passo seguinte.

  2. Use o método projects.locations.datasets.operations.get para obter o estado da operação de execução longa.

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • PROJECT_ID: o ID do seu Google Cloud projeto
    • DATASET_ID: o ID do conjunto de dados
    • LOCATION: a localização do conjunto de dados
    • OPERATION_ID: o ID devolvido pela operação de longa duração

    Para enviar o seu pedido, escolha uma destas opções:

    curl

    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"

    PowerShell

    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 Content

    Explorador de APIs

    Abra a página de referência do método. O painel APIs Explorer é aberto no lado direito da página. Pode interagir com esta ferramenta para enviar pedidos. Preencha todos os campos obrigatórios e clique em Executar.

    O resultado é o seguinte. Quando a resposta contém "done": true, a operação de longa duração terminou.

Veja os ficheiros de saída da recuperação de produção

Uma recuperação de produção gera os seguintes ficheiros. Os ficheiros são criados numa subpasta na pasta rollback_messages no contentor do Cloud Storage de destino. O nome da subpasta é o ID da LRO devolvido na resposta hl7V2Stores.rollback. Para ver os ficheiros, consulte o artigo Ver metadados de objetos.

  • success-NUMBER-of-TOTAL_NUMBER.txt: contém mensagens de HL7v2 recuperadas com êxito.
  • fail-NUMBER-of-TOTAL_NUMBER.txt: contém mensagens HL7v2 que não foram recuperadas. É gerado um ficheiro vazio mesmo que não existam falhas.

Nos nomes dos ficheiros, NUMBER é o número do ficheiro e TOTAL_NUMBER é o número total de ficheiros.

Esquema do ficheiro de saída de produção

Os ficheiros de êxito e falha de uma recuperação de produção usam o seguinte esquema. Os ficheiros de erro contêm uma coluna ERROR_MESSAGE adicional.

MESSAGE_ID ERROR_MESSAGE (apenas ficheiros com erros)
O ID da mensagem HL7v2. Apenas ficheiros de erro. Descreve o motivo pelo qual não foi possível recuperar a mensagem HL7v2.

Use filtros para restaurar um armazenamento HL7v2 para um estado anterior

Se um armazenamento de HL7v2 foi modificado por uma ou mais operações de longa duração (LROs), pode especificar os IDs das LROs num filtro para restaurar o armazenamento de HL7v2 para o estado anterior. Por exemplo, pode restaurar um arquivo HL7v2 para o respetivo estado anterior antes de uma operação de importação importar mensagens HL7v2.

Especifica os IDs de LRO no objeto RollbackHL7MessagesFilteringFields quando envia um pedido hl7V2Stores.rollback.

Consulte o artigo Apresentar LROs em lista para obter informações sobre como apresentar em lista e ver IDs de LROs num conjunto de dados da Cloud Healthcare API.