En esta página, se explica cómo borrar de forma masiva recursos de FHIR de un almacén de FHIR con una operación de larga duración.
Puedes borrar varios recursos de FHIR en una sola operación según filtros como el tipo de recurso y la fecha de última actualización. Esto es útil para la administración del ciclo de vida de los datos y el ahorro de costos.
Antes de comenzar
Antes de borrar de forma masiva recursos de FHIR, asegúrate de lo siguiente:
- Debes tener el permiso
healthcare.fhirStores.bulkDeleteen el almacén de FHIR. - Si especificas un
gcsDestination, la cuenta de servicio del agente de servicio de Cloud Healthcare debe tener el rolroles/storage.objectAdminen el bucket de destino. Para obtener más información, consulta Permisos de Cloud Storage de la tienda de FHIR.
Borra recursos de FHIR de forma masiva
Para borrar recursos de FHIR de forma masiva, usa el método projects.locations.datasets.fhirStores.bulkDelete.
Este método devuelve una operación de larga duración (LRO). Puedes hacer un seguimiento del estado de la LRO con el nombre de la operación que muestra la llamada a la API.
En el siguiente ejemplo, se muestra cómo realizar una solicitud POST para borrar de forma masiva todos los recursos Observation y Encounter en un almacén de FHIR que se actualizaron por última vez antes de una marca de tiempo específica.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID: Es el ID de tu proyecto de Google Cloud .LOCATION: La ubicación del conjunto de datosDATASET_IDes el conjunto de datos superior del almacén de FHIRFHIR_STORE_IDes el ID del almacén de FHIR
Cuerpo JSON de la solicitud:
{
"type": "Observation,Encounter",
"versionConfig": "ALL",
"until": "2025-01-01T00:00:00Z",
"gcsDestination": {
"uriPrefix": "gs://BUCKET/DIRECTORY"
}
}
Para enviar tu solicitud, elige una de estas opciones:
curl
Guarda el cuerpo de la solicitud en un archivo llamado request.json.
Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:
cat > request.json << 'EOF'
{
"type": "Observation,Encounter",
"versionConfig": "ALL",
"until": "2025-01-01T00:00:00Z",
"gcsDestination": {
"uriPrefix": "gs://BUCKET/DIRECTORY"
}
}
EOFLuego, ejecuta el siguiente comando para enviar tu solicitud de 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
Guarda el cuerpo de la solicitud en un archivo llamado request.json.
Ejecuta el comando siguiente en la terminal para crear o reemplazar este archivo en el directorio actual:
@'
{
"type": "Observation,Encounter",
"versionConfig": "ALL",
"until": "2025-01-01T00:00:00Z",
"gcsDestination": {
"uriPrefix": "gs://BUCKET/DIRECTORY"
}
}
'@ | Out-File -FilePath request.json -Encoding utf8Luego, ejecuta el siguiente comando para enviar tu solicitud de 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
Cómo ver el estado de la LRO
Para ver el estado de la operación de eliminación masiva, usa el método operations.get con el nombre de la operación que se devolvió de la llamada a bulkDelete.
REST
Antes de usar cualquiera de los datos de solicitud a continuación, realiza los siguientes reemplazos:
PROJECT_ID: Es el ID de tu proyecto de Google Cloud .LOCATION: La ubicación del conjunto de datosDATASET_IDes el conjunto de datos superior del almacén de FHIROPERATION_ID: Es el ID que muestra la operación de larga duración.
Para enviar tu solicitud, elige una de estas opciones:
curl
Ejecuta el siguiente 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
Ejecuta el siguiente 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
Seguimiento de los recursos borrados
Cuando se completa la operación de eliminación masiva, si se especificó un gcsDestination, se genera un archivo de resumen en Cloud Storage. Este archivo contiene una lista de los IDs de los recursos de la versión actual que se borraron durante la operación.
Limitaciones
No se garantiza la integridad referencial durante una operación de eliminación masiva. Se recomienda usar esta operación solo cuando no se requiere la integridad referencial o se sabe que se cumple después de la operación.