Auf dieser Seite wird erläutert, wie Sie FHIR-Ressourcen mit einem Vorgang mit langer Ausführungszeit im Bulk aus einem FHIR-Speicher löschen.
Sie können mehrere FHIR-Ressourcen in einem einzigen Vorgang löschen. Dabei können Sie Filter wie Ressourcentyp und Zeitpunkt der letzten Aktualisierung verwenden. Das ist nützlich für die Verwaltung des Datenlebenszyklus und zur Kosteneinsparung.
Hinweise
Bevor Sie FHIR-Ressourcen im Bulk löschen können, müssen Sie Folgendes sicherstellen:
- Sie benötigen die Berechtigung
healthcare.fhirStores.bulkDeletefür den FHIR-Speicher. - Wenn Sie ein
gcsDestinationangeben, muss das Dienstkonto Cloud Healthcare Service Agent die Rolleroles/storage.objectAdminfür den Ziel-Bucket haben. Weitere Informationen finden Sie unter Cloud Storage-Berechtigungen für FHIR-Speicher.
FHIR-Ressourcen im Bulk löschen
Verwenden Sie zum Bulk-Löschen von FHIR-Ressourcen die Methode projects.locations.datasets.fhirStores.bulkDelete.
Diese Methode gibt einen Vorgang mit langer Ausführungszeit zurück. Sie können den Status des LRO anhand des Vorgangsnamens verfolgen, der vom API-Aufruf zurückgegeben wird.
Das folgende Beispiel zeigt, wie Sie eine POST-Anfrage stellen, um alle Observation- und Encounter-Ressourcen in einem FHIR-Speicher, die vor einem bestimmten Zeitstempel zuletzt aktualisiert wurden, im Bulk zu löschen.
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID: die ID Ihres Google Cloud -ProjektsLOCATIONist der Standort des DatasetsDATASET_ID: das übergeordnete Dataset des FHIR-SpeichersFHIR_STORE_ID: die FHIR-Speicher-ID
JSON-Text der Anfrage:
{
"type": "Observation,Encounter",
"versionConfig": "ALL",
"until": "2025-01-01T00:00:00Z",
"gcsDestination": {
"uriPrefix": "gs://BUCKET/DIRECTORY"
}
}
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'
{
"type": "Observation,Encounter",
"versionConfig": "ALL",
"until": "2025-01-01T00:00:00Z",
"gcsDestination": {
"uriPrefix": "gs://BUCKET/DIRECTORY"
}
}
EOFFü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" \
-d @request.json \
"https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:bulkDelete"
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:
@'
{
"type": "Observation,Encounter",
"versionConfig": "ALL",
"until": "2025-01-01T00:00:00Z",
"gcsDestination": {
"uriPrefix": "gs://BUCKET/DIRECTORY"
}
}
'@ | Out-File -FilePath request.json -Encoding utf8Fü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" `
-InFile request.json `
-Uri "https://healthcare.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStores/FHIR_STORE_ID:bulkDelete" | Select-Object -Expand Content
LRO-Status ansehen
Verwenden Sie die Methode operations.get mit dem Vorgangsnamen, der vom bulkDelete-Aufruf zurückgegeben wurde, um den Status des Massenlöschvorgangs aufzurufen.
REST
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
PROJECT_ID: die ID Ihres Google Cloud -ProjektsLOCATIONist der Standort des DatasetsDATASET_ID: das übergeordnete Dataset des FHIR-SpeichersOPERATION_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/v1alpha2/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/v1alpha2/projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID" | Select-Object -Expand Content
Gelöschte Ressourcen nachverfolgen
Wenn der Vorgang zum Massenlöschen abgeschlossen ist und ein gcsDestination angegeben wurde, wird in Cloud Storage eine Zusammenfassungsdatei generiert. Diese Datei enthält eine Liste der Ressourcen-IDs für die Ressourcen der aktuellen Version, die während des Vorgangs gelöscht wurden.
Beschränkungen
Die referenzielle Integrität wird bei einem Massenlöschvorgang nicht garantiert. Es wird empfohlen, diesen Vorgang nur zu verwenden, wenn keine referenzielle Integrität erforderlich ist oder wenn bekannt ist, dass sie nach dem Vorgang erfüllt ist.