Recuperar mensajes HL7v2 con la recuperación a un momento dado (PITR)

En esta página se describe cómo usar la recuperación a un momento dado (PITR) para recuperar mensajes HL7v2 de un almacén HL7v2 a un estado de los últimos 21 días. Puedes usar PITR para recuperarte de cambios no deseados, como la eliminación accidental de mensajes HL7v2.

Antes de empezar

Las solicitudes de PITR se clasifican como solicitudes de operaciones avanzadas y se facturan en consecuencia. Antes de usar PITR, consulta los precios de las solicitudes de operaciones avanzadas.

Flujo de trabajo de recuperación

Para asegurarte de que la recuperación de producción se realiza correctamente, primero haz una prueba de funcionamiento. La prueba genera uno o varios archivos que contienen los IDs de los mensajes HL7v2 que se van a recuperar. Verifica que los archivos de salida sean correctos antes de volver a ejecutar la recuperación en producción.

Para recuperar mensajes HL7v2 específicos o recuperar mensajes HL7v2 según un criterio de filtrado, especifica un filtro.

Hacer una prueba

Antes de recuperar mensajes HL7v2 en producción, haz una prueba de funcionamiento.

En los siguientes ejemplos se muestra cómo hacer una prueba sin ejecutar con el método hl7V2Stores.rollback.

REST

  1. Recupera los mensajes HL7v2.

    Para hacer una prueba de funcionamiento, asegúrate de que el campo force esté false.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT_ID: el ID de tu Google Cloud proyecto
    • LOCATION: la ubicación del conjunto de datos
    • DATASET_ID: el conjunto de datos superior del almacén HL7v2
    • HL7V2_STORE_ID: el ID del almacén HL7v2
    • RECOVERY_TIMESTAMP: un punto de recuperación de los últimos 21 días. Usa el formato RFC 3339. Especifica la hora hasta el segundo e incluye una zona horaria (por ejemplo, 2015-02-07T13:28:17.239+02:00 o 2017-01-01T00:00:00Z).
    • CLOUD_STORAGE_BUCKET: el URI completo de una carpeta o un segmento de Cloud Storage en el que se escriben los archivos de salida

    Para enviar tu solicitud, elige una de estas opciones:

    curl

    Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:

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

    A continuación, ejecuta el siguiente comando para enviar tu solicitud 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

    Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:

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

    A continuación, ejecuta el siguiente comando para enviar tu solicitud 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

    Copia el cuerpo de la solicitud y abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Pega el cuerpo de la solicitud en esta herramienta, rellena los campos obligatorios y haz clic en Ejecutar.

    El resultado es el siguiente. La respuesta contiene un identificador de una operación de larga duración. Las operaciones de larga duración se devuelven cuando las llamadas a métodos pueden tardar más tiempo en completarse. Anota el valor de OPERATION_ID. Necesitarás este valor en el siguiente paso.

  2. Usa el método projects.locations.datasets.operations.get para obtener el estado de la operación de larga duración.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT_ID: el ID de tu Google Cloud proyecto
    • DATASET_ID: el ID del conjunto de datos
    • LOCATION: la ubicación del conjunto de datos
    • OPERATION_ID: el ID devuelto por la operación de larga duración

    Para enviar tu solicitud, elige una de estas opciones:

    curl

    Ejecuta el comando siguiente:

    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

    Ejecuta el comando siguiente:

    $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

    Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.

    El resultado es el siguiente. Cuando la respuesta contiene "done": true, la operación de larga duración ha finalizado.

Ver los archivos de salida de la prueba

Cada prueba genera uno o varios archivos que contienen los IDs y los tipos de los mensajes HL7v2 que se van a recuperar. Los archivos se crean en una subcarpeta de la carpeta rollback_messages del segmento de Cloud Storage de destino. El nombre de la subcarpeta es el ID de la operación de larga duración que se devuelve en la respuesta de hl7V2Stores.rollback. Para ver los archivos y asegurarte de que la recuperación funciona como se espera, consulta Ver metadatos de objetos.

El número de archivos es proporcional al número de mensajes HL7v2 recuperados.

Los nombres de los archivos siguen el formato trial-NUMBER-of-TOTAL_NUMBER.txt, donde NUMBER es el número del archivo y TOTAL_NUMBER es el número total de archivos.

Esquema del archivo de salida de la ejecución de prueba

Los archivos de salida de una recuperación de prueba usan el esquema que se muestra en la siguiente tabla:

MESSAGE_ID TIMESTAMP
El ID del mensaje HL7v2. La hora en la que se creó o actualizó el mensaje HL7v2 en el almacén HL7v2.

Recuperación en producción

Antes de realizar la recuperación en producción, haz una prueba de funcionamiento e inspecciona los archivos de salida de la prueba para asegurarte de que la recuperación en producción se ejecuta correctamente.

En los siguientes ejemplos se muestra cómo restaurar mensajes HL7v2 en producción mediante el método hl7V2Stores.rollback.

REST

  1. Recupera los mensajes HL7v2.

    Asegúrate de que el campo force sea true.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT_ID: el ID de tu Google Cloud proyecto
    • LOCATION: la ubicación del conjunto de datos
    • DATASET_ID: el conjunto de datos superior del almacén HL7v2
    • HL7V2_STORE_ID: el ID del almacén HL7v2
    • RECOVERY_TIMESTAMP: un punto de recuperación de los últimos 21 días. Usa el formato RFC 3339. Especifica la hora hasta el segundo e incluye una zona horaria (por ejemplo, 2015-02-07T13:28:17.239+02:00 o 2017-01-01T00:00:00Z).
    • CLOUD_STORAGE_BUCKET: el URI completo de una carpeta o un segmento de Cloud Storage en el que se escriben los archivos de salida

    Para enviar tu solicitud, elige una de estas opciones:

    curl

    Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:

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

    A continuación, ejecuta el siguiente comando para enviar tu solicitud 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

    Guarda el cuerpo de la solicitud en un archivo llamado request.json. Ejecuta el siguiente comando en el terminal para crear o sobrescribir este archivo en el directorio actual:

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

    A continuación, ejecuta el siguiente comando para enviar tu solicitud 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

    Copia el cuerpo de la solicitud y abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Pega el cuerpo de la solicitud en esta herramienta, rellena los campos obligatorios y haz clic en Ejecutar.

    El resultado es el siguiente. La respuesta contiene un identificador de una operación de larga duración. Las operaciones de larga duración se devuelven cuando las llamadas a métodos pueden tardar más tiempo en completarse. Anota el valor de OPERATION_ID. Necesitarás este valor en el siguiente paso.

  2. Usa el método projects.locations.datasets.operations.get para obtener el estado de la operación de larga duración.

    Antes de usar los datos de la solicitud, haz las siguientes sustituciones:

    • PROJECT_ID: el ID de tu Google Cloud proyecto
    • DATASET_ID: el ID del conjunto de datos
    • LOCATION: la ubicación del conjunto de datos
    • OPERATION_ID: el ID devuelto por la operación de larga duración

    Para enviar tu solicitud, elige una de estas opciones:

    curl

    Ejecuta el comando siguiente:

    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

    Ejecuta el comando siguiente:

    $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

    Abre la página de referencia del método. El panel Explorador de APIs se abre en la parte derecha de la página. Puedes interactuar con esta herramienta para enviar solicitudes. Rellena los campos obligatorios y haz clic en Ejecutar.

    El resultado es el siguiente. Cuando la respuesta contiene "done": true, la operación de larga duración ha finalizado.

Ver los archivos de salida de recuperación de producción

La recuperación de una producción genera los siguientes archivos. Los archivos se crean en una subcarpeta de la carpeta rollback_messages del segmento de Cloud Storage de destino. El nombre de la subcarpeta es el ID de la operación de larga duración que se devuelve en la respuesta de hl7V2Stores.rollback. Para ver los archivos, consulta Ver metadatos de objetos.

  • success-NUMBER-of-TOTAL_NUMBER.txt: contiene los mensajes HL7v2 recuperados correctamente.
  • fail-NUMBER-of-TOTAL_NUMBER.txt: contiene mensajes HL7v2 que no se han podido recuperar. Se genera un archivo vacío aunque no haya fallos.

En los nombres de los archivos, NUMBER es el número de archivo y TOTAL_NUMBER es el número total de archivos.

Esquema del archivo de salida de producción

Los archivos de éxito y de error de una recuperación de producción usan el siguiente esquema. Los archivos de errores contienen una columna ERROR_MESSAGE adicional.

MESSAGE_ID ERROR_MESSAGE (solo archivos de error)
El ID del mensaje HL7v2. Solo archivos de error. Describe por qué no se ha podido recuperar el mensaje HL7v2.

Usar filtros para restaurar un almacén HL7v2 a un estado anterior

Si se ha modificado un almacén HL7v2 mediante una o varias operaciones de larga duración (OLDs), puedes especificar los IDs de las OLDs en un filtro para restaurar el almacén HL7v2 a su estado anterior. Por ejemplo, puedes restaurar un almacén HL7v2 a su estado anterior antes de que una operación de importación importara mensajes HL7v2.

Los IDs de las operaciones de larga duración se especifican en el objeto RollbackHL7MessagesFilteringFields al enviar una solicitud hl7V2Stores.rollback.

Consulta Listar operaciones LRO para obtener información sobre cómo listar y ver los IDs de las operaciones LRO en un conjunto de datos de la API Cloud Healthcare.