Recupera mensajes HL7v2 con recuperación de un momento determinado (PITR)

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

Antes de comenzar

Las solicitudes de PITR se clasifican como solicitudes de operaciones avanzadas y se facturan según corresponda. Antes de usar la PITR, revisa los precios para advanced-operation requests (solicitudes de operación avanzada).

Flujo de trabajo de recuperación

Para garantizar que una recuperación de producción se ejecute como se espera, primero haz una ejecución de prueba. La ejecución de prueba genera uno o más archivos que contienen los ID de los Mensajes de HL7v2 para recuperar. Verifica que los archivos de salida sean correctos antes de volver a ejecutar la recuperación en production.

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

Haz una prueba de validación

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

En los siguientes ejemplos, se muestra cómo realizar una ejecución de prueba con hl7V2Stores.rollback .

REST

  1. Recupera los mensajes HL7v2.

    Para realizar una ejecución de prueba, asegúrate de que force es false.

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • PROJECT_IDEl ID de tu proyecto de Google Cloud.
    • LOCATION: La ubicación del conjunto de datos
    • DATASET_ID: El conjunto de datos superior del almacén de HL7v2
    • HL7V2_STORE_ID es el ID del almacén de HL7v2.
    • RECOVERY_TIMESTAMP: Es un punto de recuperación en los últimos 21 días. Usa el formato RFC 3339. Especifica el tiempo transcurrido hasta los segundos y también incluye una zona horaria, por ejemplo, 2015-02-07T13:28:17.239+02:00 o 2017-01-01T00:00:00Z.
    • CLOUD_STORAGE_BUCKET: Es el URI completamente calificado de una carpeta o un bucket 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 comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:

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

    Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:

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

    Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 API

    Copia el cuerpo de la solicitud y abre la página de referencia del método. El panel del Explorador de API 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, completa cualquier otro campo obligatorio y haz clic en Ejecutar.

    Este es el resultado. La respuesta contiene un identificador para un operación de larga duración (LRO). Las operaciones de larga duración se muestran cuando las llamadas de métodos pueden tardar más en completarse. Toma nota del valor de OPERATION_ID. Necesitarás este valor en el paso siguiente.

  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 cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • PROJECT_IDEl ID de tu proyecto de Google Cloud.
    • DATASET_ID: El ID del conjunto de datos
    • LOCATION: La ubicación del conjunto de datos
    • OPERATION_ID: Es el ID que muestra la operación de larga duración.

    Para enviar tu solicitud, elige una de estas opciones:

    curl

    Ejecuta el siguiente 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

    Ejecuta el siguiente 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 API

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

    Este es el resultado. Cuando la respuesta contiene "done": true, significa que la operación de larga duración finalizó.

Visualiza los archivos de salida de la ejecución de prueba

Cada ejecución de prueba da como resultado uno o más archivos que contienen los IDs y los tipos del protocolo HL7v2 mensajes para recuperar. Los archivos se crean en una subcarpeta de la carpeta rollback_messages del destino. bucket de Cloud Storage. El nombre de la subcarpeta es el ID de LRO que se muestra en el hl7V2Stores.rollback respuesta. Para ver los archivos y asegurarse de que la recuperación funcione como se esperaba, consulta Visualiza metadatos de objetos.

La cantidad de archivos es proporcional a la cantidad de mensajes de HL7v2 recuperados.

Los nombres de los archivos usan el formato trial-NUMBER-of-TOTAL_NUMBER.txt donde NUMBER es el número de archivo y TOTAL_NUMBER es la cantidad total de archivos.

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

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

MESSAGE_ID TIMESTAMP
Es el ID de mensaje de HL7v2. Indica la hora en la que se creó o actualizó el mensaje de HL7v2 en el almacén de HL7v2.

Recuperar en producción

Antes de realizar la recuperación en producción, haz una ejecución de prueba y, luego, inspecciona archivos de salida de ejecución de prueba para garantizar que la recuperación de producción se ejecute como se espera.

En los siguientes ejemplos, se muestra cómo restablecer mensajes HL7v2 en producción con hl7V2Stores.rollback .

REST

  1. Recupera los mensajes HL7v2.

    Asegúrate de que el force es true.

    Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • PROJECT_IDEl ID de tu proyecto de Google Cloud.
    • LOCATION: La ubicación del conjunto de datos
    • DATASET_ID: El conjunto de datos superior del almacén de HL7v2
    • HL7V2_STORE_ID es el ID del almacén de HL7v2.
    • RECOVERY_TIMESTAMP: Es un punto de recuperación en los últimos 21 días. Usa el formato RFC 3339. Especifica el tiempo transcurrido hasta los segundos y también incluye una zona horaria, por ejemplo, 2015-02-07T13:28:17.239+02:00 o 2017-01-01T00:00:00Z.
    • CLOUD_STORAGE_BUCKET: Es el URI completamente calificado de una carpeta o un bucket 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 comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:

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

    Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:

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

    Luego, ejecuta el siguiente comando para enviar tu solicitud de 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 API

    Copia el cuerpo de la solicitud y abre la página de referencia del método. El panel del Explorador de API 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, completa cualquier otro campo obligatorio y haz clic en Ejecutar.

    Este es el resultado. La respuesta contiene un identificador para un operación de larga duración (LRO). Las operaciones de larga duración se muestran cuando las llamadas de métodos pueden tardar más en completarse. Toma nota del valor de OPERATION_ID. Necesitarás este valor en el paso siguiente.

  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 cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:

    • PROJECT_IDEl ID de tu proyecto de Google Cloud.
    • DATASET_ID: El ID del conjunto de datos
    • LOCATION: La ubicación del conjunto de datos
    • OPERATION_ID: Es el ID que muestra la operación de larga duración.

    Para enviar tu solicitud, elige una de estas opciones:

    curl

    Ejecuta el siguiente 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

    Ejecuta el siguiente 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 API

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

    Este es el resultado. Cuando la respuesta contiene "done": true, significa que la operación de larga duración finalizó.

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

Una recuperación de producción genera los siguientes archivos. Los archivos se crean en un subcarpeta en la carpeta rollback_messages del destino bucket de Cloud Storage. El nombre de la subcarpeta es el ID de LRO que se muestra en el hl7V2Stores.rollback respuesta. Para ver los archivos, consulta Visualiza metadatos de objetos.

  • success-NUMBER-of-TOTAL_NUMBER.txt: Contiene mensajes HL7v2 recuperados correctamente.
  • fail-NUMBER-of-TOTAL_NUMBER.txt: Contiene Mensajes de HL7v2 que no se pudieron recuperar. Se genera un archivo vacío aunque que no haya fallas.

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

Esquema del archivo de salida de producción

Los archivos de éxito y fracaso de una recuperación de producción usan lo siguiente: . Los archivos de error contienen un ERROR_MESSAGE.

MESSAGE_ID ERROR_MESSAGE (solo archivos con error)
Es el ID de mensaje de HL7v2. Solo archivos con errores. Describe por qué no se pudo recuperar el mensaje HL7v2.

Usa filtros para restablecer un almacén de HL7v2 a un estado anterior

Si una o más operaciones de larga duración (LRO) modificaron un almacén de HL7v2, haz lo siguiente: puedes especificar los IDs de LRO en un filtro para restablecer el almacén de HL7v2 a su estado anterior. Por ejemplo, puedes restablecer un almacén de HL7v2 en su estado anterior antes de que una operación de importación importara mensajes HL7v2.

Debes especificar los IDs de LRO en el objeto RollbackHL7MessagesFilteringFields cuando envíes una solicitud hl7V2Stores.rollback.

Consulta Crea listas de LRO. para obtener información sobre cómo crear una lista y visualizar los IDs de LRO en un conjunto de datos de la API de Cloud Healthcare.