Auf dieser Seite wird die Verwendung der Wiederherstellung zu einem bestimmten Zeitpunkt beschrieben um FHIR-Ressourcen in einem FHIR-Speicher in einem Status innerhalb in den letzten 21 Tagen. Mit PITR können Sie nach unerwünschten Änderungen wiederherstellen, z. B. nach dem versehentlichen Löschen von FHIR-Ressourcen.
Hinweise
PITR-Anfragen werden als erweiterte Vorgangsanfragen kategorisiert und in Rechnung gestellt entsprechend anpassen. Informieren Sie sich vor der Verwendung von PITR über die Preise für Anfragen zu erweiterten Vorgängen.
Versionsverlauf der PITR- und FHIR-Ressourcen
PITR ist unabhängig vom Verlauf der FHIR-Ressourcenversionen.
Sie können die PITR weiterhin verwenden, wenn das Feld disableResourceVersioning
in einem FHIR-Speicher true
ist oder wenn der Verlauf einer FHIR-Ressource
Versionen wurden dauerhaft gelöscht.
Wiederherstellungsworkflow
Damit eine Produktionswiederherstellung wie erwartet funktioniert, sollten Sie zuerst einen Probelauf durchführen. Beim Probelauf wird eine oder mehrere Dateien ausgegeben, die die IDs und Typen der Wiederherzustellende FHIR-Ressourcen. Prüfen Sie die Richtigkeit der Ausgabedateien, bevor Sie die Wiederherstellung noch einmal in der Produktionsumgebung ausführen.
Um bestimmte Ressourcen oder Ressourcen gemäß einer Filterung wiederherzustellen geben Sie einen Filter an.
Probelauf durchführen
Führen Sie vor der Wiederherstellung von FHIR-Ressourcen in der Produktion einen Testlauf durch.
In den folgenden Beispielen wird gezeigt, wie Sie mit der Methode fhirStores.rollback
einen Trockenlauf durchführen.
REST
Stellen Sie die FHIR-Ressourcen wieder her.
Wenn Sie einen Probelauf durchführen möchten, muss das Feld
force
den Wertfalse
haben.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
ist die ID Ihres Google Cloud-ProjektsLOCATION
ist der Standort des DatasetsDATASET_ID
: das übergeordnete Dataset des FHIR-SpeichersFHIR_STORE_ID
: die FHIR-Speicher-IDRECOVERY_TIMESTAMP
: einen Wiederherstellungspunkt in 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
oder2017-01-01T00:00:00Z
.CLOUD_STORAGE_BUCKET
: der voll qualifizierte URI zu einem Cloud Storage-Ordner oder -Bucket, in den Ausgabedateien geschrieben werden
JSON-Text anfordern:
{ "rollbackTime": "RECOVERY_TIMESTAMP", "resultGcsBucket": "gs://CLOUD_STORAGE_BUCKET", "force": "false" }
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/fhirStores/FHIR_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/fhirStores/FHIR_STORE_ID:rollback" | Select-Object -Expand ContentAPIs 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.
OPERATION_ID
. Sie benötigen diesen Wert im nächsten Schritt.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-ProjektsDATASET_ID
: die Dataset-IDLOCATION
: der Standort des DatasetsOPERATION_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 folgenden 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 ContentAPIs 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.
"done": true
enthält, ist der lang andauernde Vorgang abgeschlossen.
Ausgabedateien des Trockenlaufs ansehen
Bei jedem Probelauf wird eine oder mehrere Dateien ausgegeben, die die IDs und Typen der FHIR enthalten.
die wiederherzustellenden Ressourcen. Die Dateien werden im Ziel-Cloud Storage-Bucket im Unterordner des Ordners rollback_resources
erstellt. Der Name des Unterordners ist die LRO-ID, die im
Antwort von fhirStores.rollback
. Um die Dateien anzusehen und zu prüfen, ob die Wiederherstellung funktioniert
wie erwartet, sehen Sie sich
Objektmetadaten aufrufen
Die Anzahl der Dateien ist proportional zur Anzahl der wiederhergestellten FHIR-Ressourcen.
Dateinamen haben das Format trial-NUMBER-of-TOTAL_NUMBER.txt
, wobei NUMBER
die Dateinummer und TOTAL_NUMBER
die Gesamtzahl der Dateien ist.
Ausgabedateischema für Probelauf
Die Ausgabedateien einer Testwiederherstellung verwenden das in der folgenden Tabelle dargestellte Schema:
RESOURCE_TYPE |
RESOURCE_ID |
TIMESTAMP |
---|---|---|
Der FHIR-Ressourcentyp. | Die FHIR-Ressourcen-ID. | Der Zeitpunkt, zu dem die FHIR-Ressource im FHIR-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.
Die folgenden Beispiele zeigen, wie Sie FHIR-Ressourcen mit der Methode fhirStores.rollback
in der Produktion wiederherstellen.
REST
Stellen Sie die FHIR-Ressourcen wieder her.
Das Feld
force
musstrue
sein.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID
ist die ID Ihres Google Cloud-ProjektsLOCATION
ist der Standort des DatasetsDATASET_ID
: das übergeordnete Dataset des FHIR-SpeichersFHIR_STORE_ID
: die FHIR-Speicher-IDRECOVERY_TIMESTAMP
: ein Wiederherstellungspunkt innerhalb der letzten 21 Tage. 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
oder2017-01-01T00:00:00Z
.CLOUD_STORAGE_BUCKET
: der voll qualifizierte URI zu einem Cloud Storage-Ordner oder -Bucket, in den Ausgabedateien geschrieben werden
JSON-Text anfordern:
{ "rollbackTime": "RECOVERY_TIMESTAMP", "resultGcsBucket": "gs://CLOUD_STORAGE_BUCKET", "force": "true" }
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/fhirStores/FHIR_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/fhirStores/FHIR_STORE_ID:rollback" | Select-Object -Expand ContentAPIs 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.
OPERATION_ID
. Sie benötigen diesen Wert im nächsten Schritt.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-ProjektsDATASET_ID
: die Dataset-IDLOCATION
: der Standort des DatasetsOPERATION_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 folgenden 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 ContentAPIs 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.
"done": true
enthält, ist der lang andauernde Vorgang abgeschlossen.
Ausgabedateien für die Produktionswiederherstellung ansehen
Bei einer Produktionswiederherstellung werden die folgenden Dateien ausgegeben. Die Dateien werden in einem
Unterordner im Ordner rollback_resources
des Ziels
Cloud Storage-Bucket. Der Name des Unterordners ist die LRO-ID, die in der fhirStores.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 FHIR-Ressourcen.fail-NUMBER-of-TOTAL_NUMBER.txt
: enthält FHIR-Ressourcen, 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
.
RESOURCE_TYPE |
RESOURCE_ID |
ROLLBACK_VERSION_ID |
NEW_VERSION_ID |
ERROR_MESSAGE (nur Fehlerdateien) |
---|---|---|---|---|
Der FHIR-Ressourcentyp. | Die FHIR-Ressourcen-ID. | Die aktuelle Versions-ID der Ressource zum Zeitpunkt des Beginns der Wiederherstellung. | Die aktuelle Versions-ID der Ressource nach der Wiederherstellung. Wenn disableResourceVersioning den Wert true hat oder die Wiederherstellung einer Ressource dazu führen würde, dass die Ressource gelöscht wird, sind ROLLBACK_VERSION_ID und NEW_VERSION_ID leer. |
Nur Fehlerdateien. Beschreibt, warum die wiederherzustellende FHIR-Ressource eingereicht wurde. |
Filter verwenden, um bestimmte FHIR-Ressourcen wiederherzustellen
In den folgenden Abschnitten wird beschrieben, wie Sie mithilfe von Filtern FHIR-Ressourcen anhand von Filterkriterien wiederherstellen.
Die Filter geben Sie beim Senden im RollbackFhirResourceFilteringFields
-Objekt an.
eine fhirStores.rollback
-Anfrage.
Sie können Filter kombinieren oder einzeln für mehrere Anwendungsfälle verwenden, z. B.:
- Wiederherstellen bestimmter FHIR-Ressourcen nach versehentlichem Löschen, während andere unverändert bleiben.
- Zustand eines FHIR-Speichers vor einem bestimmten Importvorgang wiederherstellen bestimmte FHIR-Ressourcen importiert haben.
Filterdatei verwenden
Standardmäßig werden bei der PITR alle FHIR-Ressourcen in einem FHIR-Speicher wiederhergestellt. Wenn Sie bestimmte FHIR-Ressourcen wiederherstellen möchten, geben Sie die Ressourcentypen und ihre Ressourcen-IDs in einer Datei an und laden Sie die Datei dann in Cloud Storage hoch. Geben Sie den Speicherort der Datei im
inputGcsObject
-Feld.
Zum Lesen einer Filterdatei aus Cloud Storage müssen Sie dem Cloud Healthcare-Dienst-Agent Berechtigungen erteilen. Dienstkonto. Weitere Informationen finden Sie unter Filterdateien aus Cloud Storage lesen.
Die Filterdatei kann eine beliebige Endung haben. Er muss das folgende Schema verwenden: mit einer FHIR-Ressource pro Zeile:
FHIR_RESOURCE_TYPE/FHIR_RESOURCE_ID
Wenn Sie beispielsweise eine Patientenressource mit der ID 8f25b0ac
und zwei Beobachtungsressourcen mit den IDs d507417e90e
und e9950d90e
wiederherstellen möchten, geben Sie Folgendes in der Filterdatei an:
Patient/8f25b0ac
Observation/d507417e90e
Observation/e9950d90e
Benutzerdefinierte Funktionen verwenden
Die Cloud Healthcare API bietet die folgenden benutzerdefinierten Filterfunktionen.
Sie können die benutzerdefinierten Funktionen mit dem Feld rollbackTime
kombinieren, um einen zusätzlichen Filter anzuwenden.
tag
Details Funktionssyntax tag("system") = "code"
Beschreibung Filtert FHIR-Ressourcen anhand des RessourcenelementsMeta.tag
.Argumente system
string
Eine URL, die auf ein Codesystem verweist. Weitere Informationen finden Sie unter Codes in Ressourcen verwenden.code
string
Wert, der ein vom Codesystem definiertes Konzept identifiziert. Weitere Informationen finden Sie unter Codes in Ressourcen verwenden.
extension_value_ts
Details Funktionssyntax extension_value_ts("url")
Beschreibung Filtert FHIR-Ressourcen basierend auf dem Werturl
in einemextension
-Element, wobeiurl
ein Unix-Zeitstempel ist. Unterstützt die folgenden Vergleichsoperatoren:=
!=
<
>
<=
>=
Argumente url
string
Die kanonische URL einer StructureDefinition-Ressource, die eine Erweiterung definiert. Im folgendenextension
-Element isthttp://hl7.org/fhir/StructureDefinition/timezone
beispielsweise derurl
:"extension" : [{ "url" : "http://hl7.org/fhir/StructureDefinition/timezone", "valueCode" : "America/New_York" }]
Weitere Informationen finden Sie unter Definieren von Erweiterungen.
Nach FHIR-Ressourcentyp filtern
Zum Filtern von FHIR-Ressourcen
basierend auf dem Ressourcentyp, geben Sie die Ressourcentypen in der
types[]
Array.
Nach Vorgangstyp filtern
Wenn Sie nach FHIR-Ressourcen filtern möchten, die durch eine CREATE
-, UPDATE
- oder DELETE
-Transaktion geändert wurden, geben Sie einen Wert im Enum ChangeType
an.
Beispiel:
Um nur gelöschte FHIR-Ressourcen wiederherzustellen, geben Sie den Parameter
DELETE
Wert.
Wenn Sie CHANGE_TYPE_UNSPECIFIED
angeben, geschieht Folgendes:
ALL
,
oder Sie keinen Wert angeben, werden alle FHIR-Ressourcen wiederhergestellt.
Vorherige Wiederherstellungen ausschließen
Wenn Sie bei der Wiederherstellung von FHIR-Ressourcen vorherige Wiederherstellungen ausschließen möchten, legen Sie für das Feld excludeRollbacks
den Wert true
fest. Sie können frühere Wiederherstellungen ausschließen,
die Wiederherstellung funktioniert hat und Sie die Änderungen nicht überschreiben möchten.
Sie können auch mehrere Wiederherstellungen mit sich überschneidenden Zeitstempeln ausführen.
Stellen Sie sich folgendes Szenario vor:
- Bei
1:00
starten Sie eine Wiederherstellung mit dem Zeitstempel0:01
. Am2:00
werden durch die Wiederherstellung die PatientenressourcenPatient/1
undPatient/2
gelöscht im FHIR-Speicher. Der Wiederherstellungsvorgang endet am3:00
. Einige Tage später führen Sie einen Wiederherstellungsvorgang mit dem Zeitstempel der Wiederherstellung aus auf
1:00
festgelegt. Standardmäßig führt die Ausführung des Vorgangs zu folgenden Ergebnissen:- Die Patientenressourcen
Patient/1
undPatient/2
wurden falsch neu erstellt. - Korrekte Wiederherstellung von FHIR-Ressourcen, die nach
3:00
erstellt oder aktualisiert wurden.
- Die Patientenressourcen
So schließen Sie den ersten Wiederherstellungsvorgang aus, der gelöscht wurde:
die Patientenressourcen Patient/1
und Patient/2
und vermeiden Sie es, sie neu zu erstellen.
excludeRollbacks
auf true
festlegen.
Nach IDs für Vorgänge mit langer Ausführungszeit filtern
Wenn FHIR-Ressourcen durch einen oder mehrere Vorgänge mit langer Ausführungszeit geändert wurden,
können Sie die IDs der LROs im Feld operationIds
angeben.
um die geänderten Ressourcen wiederherzustellen.
Weitere Informationen finden Sie unter LROs auflisten. finden Sie Informationen zum Auflisten und Anzeigen von LRO-IDs in einem Cloud Healthcare API-Dataset.
FHIR-Ressourcen wiederholen, die in der Produktion nicht wiederhergestellt werden konnten
Wenn einige FHIR-Ressourcen eine Produktionswiederherstellung fehlgeschlagen sind, können Sie den Genesung. Verwenden Sie die generierte Produktionsausgabedatei, um die fehlgeschlagenen FHIR-Ressourcen zu finden. Geben Sie die Typen dieser FHIR-Ressourcen an und ihre IDs in einer Filterdatei und führen die Wiederherstellung noch einmal aus.
Bei jeder Wiederherstellung ist die Wiederherstellung idempotent, wenn Sie in jeder Anfrage dieselbe Konfiguration der Zeitstempel innerhalb der letzten 21 Tage liegt.
Beschränkungen
Die PITR erzwingt keine referenzielle Integrität, unabhängig von
disableReferentialIntegrity
-Einstellung für den FHIR-Speicher. Nur ein Teil der FHIR wiederherstellen können Ressourcen den FHIR-Speicher in einem Status belassen, der gegen referenzielle Integrität.PITR überspringt die FHIR-Profilvalidierung, da die wiederhergestellten FHIR-Ressourcen beim Erstellen oder Aktualisieren überprüft wurden. Wenn das FHIR-Speicherprofil Konfiguration geändert hat, belässt die PITR den FHIR-Speicher möglicherweise in einem Status, gegen die Profilvalidierung verstößt.
Wenn der Wert von
rollbackTime
vor dem Zeitpunkt liegt, zu dem eine FHIR-Ressource im FHIR-Speicher gelöscht wurde, mussenableUpdateCreate
für den FHIR-Speicher aktiviert sein. Andernfalls wird die Ressource nicht wiederhergestellt.Sie können während einer Wiederherstellung einen FHIR-Speicher aktualisieren oder Daten lesen und schreiben. Je nach Wiederherstellungsphase kann es jedoch zu unerwarteten Ergebnissen kommen. Eine Leseanfrage kann beispielsweise eine Kombination aus wiederhergestellten und nicht wiederhergestellten FHIR-Ressourcen zurückgeben. Wenn Sie eine Ressource aktualisieren, wird die aktualisieren.
Bei PITR wird der FHIR-Ressourcenverlauf beibehalten. Jede wiederhergestellte Ressource erhält eine neue aktuelle Version und der Verlauf wird beibehalten.