HL7v2-Nachrichten mit der Wiederherstellung zu einem bestimmten Zeitpunkt (PITR) wiederherstellen

Auf dieser Seite wird beschrieben, wie Sie mit der Wiederherstellung zu einem bestimmten Zeitpunkt (PITR) HL7v2-Nachrichten in einem HL7v2-Speicher in einen Zustand innerhalb der letzten 21 Tage wiederherstellen. Mit der PITR-Funktion können Sie nach unerwünschten Änderungen wiederherstellen, z. B. nach dem versehentlichen Löschen von HL7v2-Nachrichten.

Hinweise

PITR-Anfragen werden als Anfragen für erweiterte Vorgänge kategorisiert und entsprechend in Rechnung gestellt. Bevor Sie PITR verwenden, sollten Sie sich die Preise für Anfragen zu erweiterten Vorgängen ansehen.

Wiederherstellungsworkflow

Führen Sie zuerst einen Probelauf durch, um sicherzustellen, dass die Produktionswiederherstellung wie erwartet funktioniert. Der Testlauf gibt eine oder mehrere Dateien mit den IDs der wiederherzustellenden HL7v2-Nachrichten aus. Prüfen Sie die Richtigkeit der Ausgabedateien, bevor Sie die Wiederherstellung noch einmal in der Produktionsumgebung ausführen.

Wenn Sie bestimmte HL7v2-Nachrichten oder HL7v2-Nachrichten gemäß Filterkriterien wiederherstellen möchten, geben Sie einen Filter an.

Probelauf durchführen

Führen Sie vor der Wiederherstellung von HL7v2-Nachrichten in der Produktion einen Testlauf durch.

In den folgenden Beispielen wird gezeigt, wie Sie mit der Methode hl7V2Stores.rollback einen Trockenlauf durchführen.

REST

  1. Stellen Sie die HL7v2-Nachrichten wieder her.

    Wenn Sie einen Probelauf durchführen möchten, muss das Feld force den Wert false haben.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • LOCATION ist der Standort des Datasets
    • DATASET_ID ist das übergeordnete Dataset des HL7v2-Speichers
    • HL7V2_STORE_ID ist die HL7v2-Speicher-ID
    • RECOVERY_TIMESTAMP: einen Wiederherstellungspunkt aus den letzten 21 Tagen. Verwenden Sie das RFC 3339-Format. Geben Sie die Uhrzeit auf die Sekunde genau an und geben Sie eine Zeitzone an, z. B. 2015-02-07T13:28:17.239+02:00 oder 2017-01-01T00:00:00Z.
    • CLOUD_STORAGE_BUCKET: der vollständig qualifizierte URI zu einem Cloud Storage-Ordner oder -Bucket, in den Ausgabedateien geschrieben werden

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

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

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    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

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

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

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    $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

    APIs Explorer

    Kopieren Sie den Anfragetext und öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Fügen Sie den Anfragetext in dieses Tool ein, füllen Sie alle Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Die Antwort enthält eine Kennung für einen Vorgang mit langer Ausführungszeit. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen zusätzliche Zeit in Anspruch nehmen kann. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

  2. Mit der Methode projects.locations.datasets.operations.get können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: die ID Ihres Google Cloud-Projekts
    • DATASET_ID: die Dataset-ID
    • LOCATION: der Standort des Datasets
    • OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit zurückgegeben wurde

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    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

    Führen Sie diesen Befehl aus:

    $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

    APIs Explorer

    Öffnen Sie die Methodenreferenzseite. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, ist der lang andauernde Vorgang abgeschlossen.

Ausgabedateien des Probelaufs ansehen

Bei jedem Trockenlauf werden eine oder mehrere Dateien mit den IDs und Typen der wiederherzustellenden HL7v2-Nachrichten ausgegeben. Die Dateien werden im Ziel-Cloud Storage-Bucket im Unterordner des Ordners rollback_messages erstellt. Der Name des Unterordners ist die LRO-ID, die in der hl7V2Stores.rollback-Antwort zurückgegeben wird. Informationen zum Ansehen der Dateien und zur Überprüfung, ob die Wiederherstellung wie erwartet funktioniert, finden Sie unter Objektmetadaten ansehen.

Die Anzahl der Dateien ist proportional zur Anzahl der wiederhergestellten HL7v2-Nachrichten.

Dateinamen haben das Format trial-NUMBER-of-TOTAL_NUMBER.txt, wobei NUMBER die Dateinummer und TOTAL_NUMBER die Gesamtzahl der Dateien ist.

Schema der Ausgabedatei für den Probelauf

Die Ausgabedateien einer Testwiederherstellung verwenden das in der folgenden Tabelle dargestellte Schema:

MESSAGE_ID TIMESTAMP
Die HL7v2-Nachrichten-ID. Die Zeit, zu der die HL7v2-Nachricht im HL7v2-Speicher erstellt oder aktualisiert wurde.

In der Produktionsumgebung wiederherstellen

Führen Sie vor der Wiederherstellung in der Produktion einen Testlauf durch und prüfen Sie die Ausgabedateien des Testlaufs, um sicherzustellen, dass die Wiederherstellung in der Produktion wie erwartet funktioniert.

In den folgenden Beispielen wird gezeigt, wie Sie HL7v2-Nachrichten mit der Methode hl7V2Stores.rollback in der Produktion wiederherstellen.

REST

  1. Stellen Sie die HL7v2-Nachrichten wieder her.

    Das Feld force muss true sein.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID ist die ID Ihres Google Cloud-Projekts
    • LOCATION ist der Standort des Datasets
    • DATASET_ID ist das übergeordnete Dataset des HL7v2-Speichers
    • HL7V2_STORE_ID ist die HL7v2-Speicher-ID
    • RECOVERY_TIMESTAMP: einen Wiederherstellungspunkt aus den letzten 21 Tagen. Verwenden Sie das RFC 3339-Format. Geben Sie die Uhrzeit auf die Sekunde genau an und geben Sie eine Zeitzone an, z. B. 2015-02-07T13:28:17.239+02:00 oder 2017-01-01T00:00:00Z.
    • CLOUD_STORAGE_BUCKET: der vollständig qualifizierte URI zu einem Cloud Storage-Ordner oder -Bucket, in den Ausgabedateien geschrieben werden

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

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

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    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

    Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:

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

    Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:

    $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

    APIs Explorer

    Kopieren Sie den Anfragetext und öffnen Sie die Referenzseite für Methoden. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Fügen Sie den Anfragetext in dieses Tool ein, füllen Sie alle Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Die Antwort enthält eine Kennung für einen Vorgang mit langer Ausführungszeit. Lang andauernde Vorgänge werden zurückgegeben, wenn die Ausführung von Methodenaufrufen zusätzliche Zeit in Anspruch nehmen kann. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

  2. Mit der Methode projects.locations.datasets.operations.get können Sie den Status des Vorgangs mit langer Ausführungszeit abrufen.

    Ersetzen Sie diese Werte in den folgenden Anfragedaten:

    • PROJECT_ID: die ID Ihres Google Cloud-Projekts
    • DATASET_ID: die Dataset-ID
    • LOCATION: der Standort des Datasets
    • OPERATION_ID: die ID, die vom Vorgang mit langer Ausführungszeit zurückgegeben wurde

    Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:

    curl

    Führen Sie folgenden Befehl aus:

    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

    Führen Sie diesen Befehl aus:

    $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

    APIs Explorer

    Öffnen Sie die Methodenreferenzseite. Der API Explorer wird rechts auf der Seite geöffnet. Sie können mit diesem Tool interagieren, um Anfragen zu senden. Füllen Sie die Pflichtfelder aus und klicken Sie auf Ausführen.

    Die Ausgabe sieht so aus. Wenn die Antwort "done": true enthält, ist der lang andauernde Vorgang abgeschlossen.

Ausgabedateien der Produktionswiederherstellung ansehen

Bei einer Produktionswiederherstellung werden die folgenden Dateien ausgegeben. Die Dateien werden im Ziel-Cloud Storage-Bucket im Unterordner „rollback_messages“ erstellt. Der Name des Unterordners ist die LRO-ID, die in der hl7V2Stores.rollback-Antwort zurückgegeben wird. Informationen zum Ansehen der Dateien finden Sie unter Objektmetadaten ansehen.

  • success-NUMBER-of-TOTAL_NUMBER.txt: Enthält erfolgreich wiederhergestellte HL7v2-Nachrichten.
  • fail-NUMBER-of-TOTAL_NUMBER.txt: Enthält HL7v2-Nachrichten, die nicht wiederhergestellt werden konnten. Auch wenn keine Fehler auftreten, wird eine leere Datei generiert.

In den Dateinamen steht NUMBER für die Dateinummer und TOTAL_NUMBER für die Gesamtzahl der Dateien.

Schema der Produktionsausgabedatei

Die Erfolgs- und Fehlerdateien aus einer Produktionswiederherstellung verwenden das folgende Schema. Fehlerdateien enthalten eine zusätzliche Spalte ERROR_MESSAGE.

MESSAGE_ID ERROR_MESSAGE (nur Fehlerdateien)
Die HL7v2-Nachrichten-ID. Nur Fehlerdateien. Beschreibt, warum die HL7v2-Nachricht nicht wiederhergestellt werden konnte.

HL7v2-Store mithilfe von Filtern in einen vorherigen Zustand wiederherstellen

Wenn ein HL7v2-Speicher durch einen oder mehrere langlaufende Vorgänge (Long-Running Operations, LROs) geändert wurde, können Sie die LRO-IDs in einem Filter angeben, um den HL7v2-Speicher in seinen vorherigen Zustand wiederherzustellen. So können Sie beispielsweise einen HL7v2-Speicher in seinem vorherigen Zustand wiederherstellen, bevor mit einem Importvorgang HL7v2-Nachrichten importiert wurden.

Sie geben die LRO-IDs im RollbackHL7MessagesFilteringFields-Objekt an, wenn Sie eine hl7V2Stores.rollback-Anfrage senden.

Informationen zum Auflisten und Ansehen von LRO-IDs in einem Cloud Healthcare API-Dataset finden Sie unter LROs auflisten.