Questa pagina spiega come eliminare in blocco le risorse FHIR da un archivio FHIR utilizzando un'operazione a lunga esecuzione.
Puoi eliminare più risorse FHIR in un'unica operazione in base a filtri come il tipo di risorsa e l'ora dell'ultimo aggiornamento. Questa funzionalità è utile per la gestione del ciclo di vita dei dati e per il risparmio sui costi.
Prima di iniziare
Prima di poter eliminare collettivamente le risorse FHIR, assicurati di quanto segue:
- Devi disporre dell'autorizzazione
healthcare.fhirStores.bulkDeletesul datastore FHIR. - Se specifichi un
gcsDestination, il account di servizio Service agent Cloud Healthcare deve disporre del ruoloroles/storage.objectAdminsul bucket di destinazione. Per maggiori informazioni, consulta Autorizzazioni Cloud Storage per gli archivi FHIR.
Eliminazione collettiva di risorse FHIR
Per eliminare in blocco le risorse FHIR, utilizza il metodo projects.locations.datasets.fhirStores.bulkDelete.
Questo metodo restituisce un'operazione a lunga esecuzione (LRO). Puoi monitorare lo stato dell'operazione a lunga esecuzione utilizzando il nome dell'operazione restituito dalla chiamata API.
L'esempio riportato di seguito mostra come effettuare una richiesta POST per eliminare collettivamente tutte le risorse Observation e Encounter in un archivio FHIR che sono state aggiornate l'ultima volta prima di un timestamp specifico.
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
PROJECT_ID: l'ID del tuo Google Cloud progettoLOCATION: la posizione del set di datiDATASET_ID: il set di dati padre dell'archivio FHIRFHIR_STORE_ID: l'ID del datastore FHIR
Corpo JSON della richiesta:
{
"type": "Observation,Encounter",
"versionConfig": "ALL",
"until": "2025-01-01T00:00:00Z",
"gcsDestination": {
"uriPrefix": "gs://BUCKET/DIRECTORY"
}
}
Per inviare la richiesta, scegli una di queste opzioni:
curl
Salva il corpo della richiesta in un file denominato request.json.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
cat > request.json << 'EOF'
{
"type": "Observation,Encounter",
"versionConfig": "ALL",
"until": "2025-01-01T00:00:00Z",
"gcsDestination": {
"uriPrefix": "gs://BUCKET/DIRECTORY"
}
}
EOFQuindi esegui questo comando per inviare la richiesta REST:
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
Salva il corpo della richiesta in un file denominato request.json.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
@'
{
"type": "Observation,Encounter",
"versionConfig": "ALL",
"until": "2025-01-01T00:00:00Z",
"gcsDestination": {
"uriPrefix": "gs://BUCKET/DIRECTORY"
}
}
'@ | Out-File -FilePath request.json -Encoding utf8Quindi esegui questo comando per inviare la richiesta REST:
$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
Visualizzare lo stato dell'LRO
Per visualizzare lo stato dell'operazione di eliminazione collettiva, utilizza il metodo operations.get con il nome dell'operazione restituito dalla chiamata bulkDelete.
REST
Prima di utilizzare i dati della richiesta, apporta le sostituzioni seguenti:
PROJECT_ID: l'ID del tuo Google Cloud progettoLOCATION: la posizione del set di datiDATASET_ID: il set di dati padre dell'archivio FHIROPERATION_ID: l'ID restituito dall'operazione a lunga esecuzione
Per inviare la richiesta, scegli una di queste opzioni:
curl
Esegui questo comando:
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
Esegui questo comando:
$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
Monitoraggio delle risorse eliminate
Al termine dell'operazione di eliminazione collettiva, se è stato specificato un gcsDestination, viene generato un file di riepilogo in Cloud Storage. Questo file contiene un elenco degli ID risorsa per le risorse della versione corrente che sono state eliminate durante l'operazione.
Limitazioni
L'integrità referenziale non è garantita durante un'operazione di eliminazione collettiva. Ti consigliamo di utilizzare questa operazione solo quando l'integrità referenziale non è richiesta o è noto che viene soddisfatta dopo l'operazione.