Menghapus resource FHIR secara massal

Halaman ini menjelaskan cara menghapus resource FHIR secara massal dari penyimpanan FHIR menggunakan operasi yang berjalan lama.

Anda dapat menghapus beberapa resource FHIR dalam satu operasi berdasarkan filter seperti jenis resource dan waktu terakhir diperbarui. Hal ini berguna untuk pengelolaan siklus proses data dan penghematan biaya.

Sebelum memulai

Sebelum Anda dapat menghapus massal resource FHIR, pastikan hal berikut:

  • Anda harus memiliki izin healthcare.fhirStores.bulkDelete di penyimpanan FHIR.
  • Jika Anda menentukan gcsDestination, akun layanan Agen Layanan Cloud Healthcare harus memiliki peran roles/storage.objectAdmin di bucket tujuan. Untuk mengetahui informasi selengkapnya, lihat izin Cloud Storage FHIR store.

Menghapus resource FHIR secara massal

Untuk menghapus resource FHIR secara massal, gunakan metode projects.locations.datasets.fhirStores.bulkDelete.

Metode ini menampilkan operasi yang berjalan lama (LRO). Anda dapat melacak status LRO menggunakan nama operasi yang ditampilkan oleh panggilan API.

Contoh berikut menunjukkan cara membuat permintaan POST untuk menghapus secara massal semua resource Observation dan Encounter di penyimpanan FHIR yang terakhir diperbarui sebelum stempel waktu tertentu.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID Google Cloud project Anda
  • LOCATION: lokasi set data
  • DATASET_ID: set data induk FHIR store
  • FHIR_STORE_ID: ID FHIR store

Meminta isi JSON:

{
  "type": "Observation,Encounter",
  "versionConfig": "ALL",
  "until": "2025-01-01T00:00:00Z",
  "gcsDestination": {
    "uriPrefix": "gs://BUCKET/DIRECTORY"
  }
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

cat > request.json << 'EOF'
{
  "type": "Observation,Encounter",
  "versionConfig": "ALL",
  "until": "2025-01-01T00:00:00Z",
  "gcsDestination": {
    "uriPrefix": "gs://BUCKET/DIRECTORY"
  }
}
EOF

Kemudian, jalankan perintah berikut untuk mengirim permintaan REST Anda:

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

Simpan isi permintaan dalam file bernama request.json. Jalankan perintah berikut di terminal untuk membuat atau menimpa file ini di direktori saat ini:

@'
{
  "type": "Observation,Encounter",
  "versionConfig": "ALL",
  "until": "2025-01-01T00:00:00Z",
  "gcsDestination": {
    "uriPrefix": "gs://BUCKET/DIRECTORY"
  }
}
'@  | Out-File -FilePath request.json -Encoding utf8

Kemudian jalankan perintah berikut untuk mengirim permintaan REST Anda:

$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
Output-nya adalah sebagai berikut. Respons berisi ID untuk operasi yang berjalan lama. Catat nilai OPERATION_ID. Anda memerlukan nilai ini pada langkah berikutnya.

Melihat status LRO

Untuk melihat status operasi penghapusan massal, gunakan metode operations.get dengan nama operasi yang ditampilkan dari panggilan bulkDelete.

REST

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID Google Cloud project Anda
  • LOCATION: lokasi set data
  • DATASET_ID: set data induk FHIR store
  • OPERATION_ID: ID yang ditampilkan dari operasi yang berjalan lama

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Jalankan perintah berikut:

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

Jalankan perintah berikut:

$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
Jika permintaan berhasil, server akan menampilkan respons dengan status operasi dalam format JSON:

Melacak resource yang dihapus

Setelah operasi penghapusan massal selesai, jika gcsDestination ditentukan, file ringkasan akan dibuat di Cloud Storage. File ini berisi daftar ID resource untuk resource versi saat ini yang dihapus selama operasi.

Batasan

Integritas referensial tidak dijamin selama operasi penghapusan massal. Sebaiknya gunakan operasi ini hanya jika integritas referensial tidak diperlukan atau diketahui terpenuhi setelah operasi.