Cette page explique comment supprimer des ressources FHIR d'un magasin FHIR de façon groupée à l'aide d'une opération de longue durée.
Vous pouvez supprimer plusieurs ressources FHIR en une seule opération en fonction de filtres tels que le type de ressource et la date de dernière modification. Cela est utile pour la gestion du cycle de vie des données et pour réaliser des économies.
Avant de commencer
Avant de pouvoir supprimer des ressources FHIR de manière groupée, assurez-vous des points suivants :
- Vous devez disposer de l'autorisation
healthcare.fhirStores.bulkDeletesur le magasin FHIR. - Si vous spécifiez un
gcsDestination, le compte de service Agent de service Cloud Healthcare doit disposer du rôleroles/storage.objectAdminsur le bucket de destination. Pour en savoir plus, consultez la section Autorisations Cloud Storage pour les datastores FHIR.
Supprimer des ressources FHIR de manière groupée
Pour supprimer des ressources FHIR de manière groupée, utilisez la méthode projects.locations.datasets.fhirStores.bulkDelete.
Cette méthode renvoie une opération de longue durée (LRO). Vous pouvez suivre l'état de l'opération de longue durée à l'aide du nom d'opération renvoyé par l'appel d'API.
L'exemple suivant montre comment effectuer une requête POST pour supprimer de manière groupée toutes les ressources Observation et Encounter d'un magasin FHIR qui ont été mises à jour pour la dernière fois avant un code temporel spécifique.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_ID: ID de votre projet Google CloudLOCATION: emplacement de l'ensemble de donnéesDATASET_ID: ensemble de données parent du magasin FHIR.FHIR_STORE_ID: ID du magasin FHIR.
Corps JSON de la requête :
{
"type": "Observation,Encounter",
"versionConfig": "ALL",
"until": "2025-01-01T00:00:00Z",
"gcsDestination": {
"uriPrefix": "gs://BUCKET/DIRECTORY"
}
}
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Enregistrez le corps de la requête dans un fichier nommé request.json.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
cat > request.json << 'EOF'
{
"type": "Observation,Encounter",
"versionConfig": "ALL",
"until": "2025-01-01T00:00:00Z",
"gcsDestination": {
"uriPrefix": "gs://BUCKET/DIRECTORY"
}
}
EOFExécutez ensuite la commande suivante pour envoyer votre requête 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
Enregistrez le corps de la requête dans un fichier nommé request.json.
Exécutez la commande suivante dans le terminal pour créer ou écraser ce fichier dans le répertoire actuel :
@'
{
"type": "Observation,Encounter",
"versionConfig": "ALL",
"until": "2025-01-01T00:00:00Z",
"gcsDestination": {
"uriPrefix": "gs://BUCKET/DIRECTORY"
}
}
'@ | Out-File -FilePath request.json -Encoding utf8Exécutez ensuite la commande suivante pour envoyer votre requête 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
Afficher l'état de l'opération de longue durée
Pour afficher l'état de l'opération de suppression groupée, utilisez la méthode operations.get avec le nom de l'opération renvoyé par l'appel bulkDelete.
REST
Avant d'utiliser les données de requête, effectuez les remplacements suivants :
PROJECT_ID: ID de votre projet Google CloudLOCATION: emplacement de l'ensemble de donnéesDATASET_ID: ensemble de données parent du magasin FHIR.OPERATION_ID: ID renvoyé par l'opération de longue durée
Pour envoyer votre requête, choisissez l'une des options suivantes :
curl
Exécutez la commande suivante :
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
Exécutez la commande suivante :
$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
Suivre les ressources supprimées
Une fois l'opération de suppression groupée terminée, un fichier récapitulatif est généré dans Cloud Storage si un gcsDestination a été spécifié. Ce fichier contient la liste des ID de ressources de la version actuelle qui ont été supprimées lors de l'opération.
Limites
L'intégrité référentielle n'est pas garantie lors d'une opération de suppression groupée. Il est recommandé d'utiliser cette opération uniquement lorsque l'intégrité référentielle n'est pas requise ou est connue pour être satisfaite après l'opération.