Nesta página, explicamos como excluir em massa recursos FHIR de um armazenamento FHIR usando uma operação de longa duração.
É possível excluir vários recursos FHIR em uma única operação com base em filtros como tipo de recurso e hora da última atualização. Isso é útil para o gerenciamento do ciclo de vida dos dados e a economia de custos.
Antes de começar
Antes de excluir recursos do FHIR em massa, verifique o seguinte:
- Você precisa ter a permissão
healthcare.fhirStores.bulkDeleteno armazenamento FHIR. - Se você especificar um
gcsDestination, a conta de serviço do Agente de serviço do Cloud Healthcare precisará ter o papelroles/storage.objectAdminno bucket de destino. Para mais informações, consulte Permissões do Cloud Storage para armazenamento FHIR.
Excluir recursos FHIR em massa
Para excluir recursos do FHIR em massa, use o método projects.locations.datasets.fhirStores.bulkDelete.
Esse método retorna uma operação de longa duração (LRO, na sigla em inglês). É possível acompanhar o status da LRO usando o nome da operação retornado pela chamada de API.
O exemplo a seguir mostra como fazer uma solicitação POST para excluir em massa todos os recursos Observation e Encounter em um armazenamento FHIR que foram atualizados pela última vez antes de um carimbo de data/hora específico.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID: ID do seu projeto Google CloudLOCATION: o local do conjunto de dados;DATASET_ID: o conjunto de dados pai do armazenamento de FHIRFHIR_STORE_ID: o ID de armazenamento de FHIR
Corpo JSON da solicitação:
{
"type": "Observation,Encounter",
"versionConfig": "ALL",
"until": "2025-01-01T00:00:00Z",
"gcsDestination": {
"uriPrefix": "gs://BUCKET/DIRECTORY"
}
}
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo chamado request.json.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
cat > request.json << 'EOF'
{
"type": "Observation,Encounter",
"versionConfig": "ALL",
"until": "2025-01-01T00:00:00Z",
"gcsDestination": {
"uriPrefix": "gs://BUCKET/DIRECTORY"
}
}
EOFDepois execute o comando a seguir para enviar a solicitação 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
Salve o corpo da solicitação em um arquivo chamado request.json.
Execute o comando a seguir no terminal para criar ou substituir
esse arquivo no diretório atual:
@'
{
"type": "Observation,Encounter",
"versionConfig": "ALL",
"until": "2025-01-01T00:00:00Z",
"gcsDestination": {
"uriPrefix": "gs://BUCKET/DIRECTORY"
}
}
'@ | Out-File -FilePath request.json -Encoding utf8Depois execute o comando a seguir para enviar a solicitação 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
Como visualizar o status da LRO
Para conferir o status da operação de exclusão em massa, use o método operations.get com o nome da operação retornado da chamada bulkDelete.
REST
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
PROJECT_ID: ID do seu projeto Google CloudLOCATION: o local do conjunto de dados;DATASET_ID: o conjunto de dados pai do armazenamento de FHIROPERATION_ID: o ID retornado da operação de longa duração.
Para enviar a solicitação, escolha uma destas opções:
curl
Execute o seguinte 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
Execute o seguinte 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
Como rastrear recursos excluídos
Quando a operação de exclusão em massa for concluída, se um gcsDestination tiver sido especificado, um arquivo de resumo será gerado no Cloud Storage. Esse arquivo contém uma lista dos IDs de recursos da versão atual que foram excluídos durante a operação.
Limitações
A integridade referencial não é garantida durante uma operação de exclusão em massa. Recomendamos usar essa operação apenas quando a integridade referencial não for necessária ou for conhecida por ser atendida após a operação.