Auf dieser Seite wird beschrieben, wie Sie FHIR-Ressourcen mithilfe eines Vorgangs mit langer Ausführungszeit aus einem FHIR-Speicher löschen.
Sie können mehrere FHIR-Ressourcen in einem einzigen Vorgang löschen. Dazu können Sie Filter wie Ressourcentyp und Zeitpunkt der letzten Aktualisierung verwenden oder eine Liste mit bestimmten Ressourcen-IDs in einer Cloud Storage-Datei angeben. Das ist nützlich für die Verwaltung des Datenlebenszyklus und zur Kosteneinsparung.
Hinweis
Bevor Sie FHIR-Ressourcen im Bulk löschen können, müssen die folgenden Voraussetzungen erfüllt sein:
- Sie benötigen die Berechtigung
healthcare.fhirStores.bulkDeletefür den FHIR-Speicher. - Wenn Sie ein
gcsDestinationangeben, muss das Dienstkonto Cloud Healthcare-Dienst-Agent die Rolleroles/storage.objectAdminfür den Ziel-Bucket haben. Weitere Informationen finden Sie unter Cloud Storage-Berechtigungen für FHIR-Speicher. - Wenn Sie ein
gcsSourceangeben, muss das Dienstkonto Cloud Healthcare-Dienst-Agent die Rolleroles/storage.objectViewerfür den Quell-Bucket haben. Weitere Informationen finden Sie unter FHIR-Ressourcen im Bulk löschen.
FHIR-Ressourcen im Bulk löschen
Wenn Sie FHIR-Ressourcen im Bulk löschen möchten, verwenden Sie 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 vom API-Aufruf zurückgegebenen Vorgangsnamens verfolgen.
Im folgenden Beispiel wird gezeigt, wie Sie eine POST-Anfrage senden, 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
FHIR-Ressourcen anhand der Ressourcen-ID im Bulk löschen
Wenn Sie eine bestimmte Liste von FHIR-Ressourcen löschen möchten, legen Sie das Feld gcsSource.uri auf den Cloud Storage-Speicherort einer oder mehrerer Dateien fest, die die zu löschenden Ressourcen-IDs enthalten.
Die Eingabedateien müssen die folgenden Anforderungen erfüllen:
- Jede Zeile enthält eine Ressource im Format
RESOURCE_TYPE/RESOURCE_ID, z. B.Patient/8af1cf10-0fec-4bb3-bde1-77f56a3d8281. Rohressourcen-IDs ohne Ressourcentyp werden nicht unterstützt. - Der URI muss auf eine einzelne Datei verweisen, z. B.
gs://BUCKET/ids.txt, oder auf ein Platzhaltermuster, z. B.gs://BUCKET/DIRECTORY/*.ndjson. Der URI darf kein Bucket oder Verzeichnis sein, das mit/endet.
Der folgende Inhalt ist ein Beispiel für eine gültige Eingabedatei:
Patient/8af1cf10-0fec-4bb3-bde1-77f56a3d8281 Observation/2c9d4a3e-6b1f-4e2a-9f0d-1a2b3c4d5e6f Encounter/7f3e2d1c-0b9a-4c8d-8e7f-6a5b4c3d2e1f
Beachten Sie Folgendes:
- Das Feld
gcsSourcekann nicht zusammen mit den Filterntypeoderuntilverwendet werden. Wenn SiegcsSourcezusammen mit einem der beiden Filter angeben, schlägt die Anfrage fehl. - Sie können
gcsSourcemitversionConfigundgcsDestinationverwenden. - Leere Zeilen werden ignoriert. Zeilen, die nicht dem Format
RESOURCE_TYPE/RESOURCE_IDentsprechen oder einen nicht unterstützten Ressourcentyp enthalten, werden übersprungen und der Vorgang wird fortgesetzt. - Ressourcen-IDs, die im FHIR-Speicher nicht vorhanden sind, werden übersprungen.
- Ändern oder löschen Sie die Eingabedateien erst, wenn der Vorgang abgeschlossen ist.
Im folgenden Beispiel wird gezeigt, wie Sie eine POST-Anfrage stellen, um die in einer Cloud Storage-Datei aufgeführten FHIR-Ressourcen 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-IDBUCKET/PATH_TO_IDS_FILE: Der Cloud Storage-Speicherort der Datei oder des Platzhaltermusters, in dem die zu löschenden Ressourcen im FormatRESOURCE_TYPE/RESOURCE_IDaufgeführt sind.
JSON-Text der Anfrage:
{
"versionConfig": "ALL",
"gcsSource": {
"uri": "gs://BUCKET/PATH_TO_IDS_FILE"
}
}
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'
{
"versionConfig": "ALL",
"gcsSource": {
"uri": "gs://BUCKET/PATH_TO_IDS_FILE"
}
}
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:
@'
{
"versionConfig": "ALL",
"gcsSource": {
"uri": "gs://BUCKET/PATH_TO_IDS_FILE"
}
}
'@ | 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 wird, um den Status des Vorgangs zum Massenlöschen 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 während eines Massenlöschvorgangs nicht garantiert. Es wird empfohlen, diesen Vorgang nur zu verwenden, wenn die referenzielle Integrität nicht erforderlich ist oder nach dem Vorgang erfüllt ist.