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 der Wiederherstellung zu einem bestimmten Zeitpunkt können Sie unerwünschte Änderungen wie versehentliche Löschen von FHIR-Ressourcen
Hinweise
PITR-Anfragen werden als erweiterte Vorgangsanfragen kategorisiert und in Rechnung gestellt entsprechend anpassen. Überprüfen Sie vor der Verwendung der Wiederherstellung zu einem bestimmten Zeitpunkt die Preise für Anfragen für erweiterte Vorgänge.
Versionsverlauf der PITR- und FHIR-Ressourcen
PITR hängt nicht vom Versionsverlauf der FHIR-Ressourcen ab.
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 Ausgabedateien, bevor Sie die Wiederherstellung noch einmal in der Produktion auszuführen.
Um bestimmte Ressourcen oder Ressourcen gemäß einer Filterung wiederherzustellen geben Sie einen Filter an.
Probelauf durchführen
Führen Sie einen Probelauf durch, bevor Sie FHIR-Ressourcen in der Produktion wiederherstellen.
Die folgenden Beispiele zeigen, wie ein Probelauf durchgeführt wird.
mithilfe der fhirStores.rollback
.
REST
Stellen Sie die FHIR-Ressourcen wieder her.
Achten Sie bei einem Probelauf darauf, dass die
force
istfalse
.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 Format RFC 3339. Geben Sie die Zeit bis auf die Sekunde an und fügen Sie eine Zeitzone hinzu, 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 der Anfrage:
{ "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 das 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, wird der lang andauernden Vorgang abgeschlossen ist.
Probelauf-Ausgabedateien ansehen
Bei jedem Probelauf wird eine oder mehrere Dateien ausgegeben, die die IDs und Typen der FHIR enthalten.
die wiederherzustellenden Ressourcen. Die Dateien werden in einem Unterordner im Ordner rollback_resources
im Ziel erstellt
Cloud Storage-Bucket. 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 ansehen
Die Anzahl der Dateien ist proportional zur Anzahl der wiederhergestellten FHIR-Ressourcen.
Dateinamen haben das Format trial-NUMBER-of-TOTAL_NUMBER.txt
,
Dabei ist NUMBER
die Dateinummer und TOTAL_NUMBER
ist die Gesamtzahl der Dateien.
Ausgabedateischema für Probelauf
Die Ausgabedateien einer Probelaufwiederherstellung verwenden das in der folgende Tabelle:
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 Produktion wiederherstellen
Führen Sie vor der Wiederherstellung in der Produktion einen Probelauf durch und prüfen Sie das Probelauf-Ausgabedateien, um sicherzustellen, dass die Produktionswiederherstellung wie erwartet funktioniert.
Die folgenden Beispiele zeigen, wie FHIR-Ressourcen in der Produktion wiederhergestellt werden.
mithilfe der fhirStores.rollback
.
REST
Stellen Sie die FHIR-Ressourcen wieder her.
Achten Sie darauf, dass die
force
isttrue
.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 Format RFC 3339. Geben Sie die Zeit bis auf die Sekunde an und fügen Sie eine Zeitzone hinzu, 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 der Anfrage:
{ "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 das 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, wird der lang andauernden Vorgang abgeschlossen ist.
Ausgabedateien für die Produktionswiederherstellung ansehen
Bei einer Produktionswiederherstellung werden die folgenden Dateien ausgegeben. Die Dateien werden in einem
Unterordner im Ordner rollback_resources
im Ziel
Cloud Storage-Bucket. Der Name des Unterordners ist die LRO-ID, die im
Antwort von fhirStores.rollback
. Die 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. Eine leere Datei wird selbst dann generiert, gibt es keine Fehler.
In den Dateinamen ist NUMBER
die Dateinummer und TOTAL_NUMBER
ist die Gesamtzahl der Dateien.
Dateischema für Produktionsausgabe
Die Erfolgs- und Fehlerdateien aus einer Produktionswiederherstellung verwenden Folgendes:
Schema. Fehlerdateien enthalten eine zusätzliche
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 zu Beginn der Wiederherstellung. | Die aktuelle Versions-ID der Ressource nach der Wiederherstellung. Wenn disableResourceVersioning true ist oder wenn die Wiederherstellung einer Ressource die Ressource löschen würde, 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 basierend auf einem Filterkriterium.
Sie geben die Filter beim Senden im RollbackFhirResourceFilteringFields
-Objekt an.
eine fhirStores.rollback
-Anfrage.
Sie können Filter kombinieren oder einzeln für mehrere Anwendungsfälle einsetzen, einschließlich der folgenden:
- 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.
Filterdatei verwenden
Standardmäßig stellt die PITR alle FHIR-Ressourcen in einem FHIR-Speicher wieder her. Zur Wiederherstellung
bestimmte FHIR-Ressourcen möchten, geben Sie die Ressourcentypen und deren Ressourcen-IDs in einer Datei an,
und laden Sie die Datei
Cloud Storage 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
Um beispielsweise eine Patientenressource mit der ID 8f25b0ac
und zwei
Beobachtungsressourcen mit den IDs d507417e90e
und e9950d90e
, geben Sie an
Folgendes in der Filterdatei:
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 den
rollbackTime
Feld, um einen weiteren 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
Ein 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 wird beispielsweise derurl
isthttp://hl7.org/fhir/StructureDefinition/timezone
:"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
Zum Filtern nach FHIR-Ressourcen, die durch eine CREATE
, UPDATE
oder
DELETE
Transaktion,
Geben Sie einen Wert in der ChangeType
an.
enum.
Beispiel:
Um nur gelöschte FHIR-Ressourcen wiederherzustellen, geben Sie den Parameter
DELETE
Wert.
Wenn Sie CHANGE_TYPE_UNSPECIFIED
angeben,
ALL
oder Sie keinen Wert angeben, werden alle FHIR-Ressourcen wiederhergestellt.
Frühere Erholungsvorgänge ausschließen
Um frühere Wiederherstellungen bei der Wiederherstellung von FHIR-Ressourcen auszuschließen, legen Sie den Parameter
excludeRollbacks
auf true
. 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:
- Um
1:00
starten Sie eine Wiederherstellung, wobei der Zeitstempel der Wiederherstellung auf0:01
gesetzt ist. Am2:00
werden durch die Wiederherstellung die PatientenressourcenPatient/1
undPatient/2
gelöscht im FHIR-Speicher. Die Wiederherstellung endet um3:00
. Einige Tage später führen Sie einen Wiederherstellungsvorgang mit dem Zeitstempel der Wiederherstellung aus auf
1:00
festgelegt. Standardmäßig führt das Ausführen des Vorgangs zu Folgendem:- 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 fehlerhaften 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, an dem eine FHIR-Ressource gelöscht wurde im FHIR-Speicher muss für den FHIR-SpeicherenableUpdateCreate
aktiviert sein oder für die Ressource werden 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. Beispiel: kann eine Leseanfrage eine Kombination aus wiederhergestellten und nicht wiederhergestellten FHIR-Ressourcen Wenn Sie eine Ressource aktualisieren, wird die aktualisieren.
PITR speichert den FHIR-Ressourcenverlauf. Jede wiederhergestellte Ressource erhält eine neue aktuelle Version und der Verlauf wird beibehalten.