FHIR-Ressourcen im Bulk löschen

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.bulkDelete für den FHIR-Speicher.
  • Wenn Sie ein gcsDestination angeben, muss das Dienstkonto Cloud Healthcare Service Agent die Rolle roles/storage.objectAdmin fü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 -Projekts
  • LOCATION ist der Standort des Datasets
  • DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
  • FHIR_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"
  }
}
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" \
-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 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" `
-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
Die Ausgabe sieht so aus. Die Antwort enthält eine Kennung für einen Vorgang mit langer Ausführungszeit. Notieren Sie sich den Wert von OPERATION_ID. Sie benötigen diesen Wert im nächsten Schritt.

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 -Projekts
  • LOCATION ist der Standort des Datasets
  • DATASET_ID: das übergeordnete Dataset des FHIR-Speichers
  • 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/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
Wenn die Anfrage erfolgreich ist, gibt der Server eine Antwort mit dem Status des Vorgangs im JSON-Format zurück:

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.