Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kemampuan penghapusan massal memungkinkan Anda menghapus sumber daya dari layanan FHIR® secara asinkron. Kemampuan penghapusan massal dalam layanan FHIR didukung dengan operasi: $bulk-delete dan $bulk-delete-soft-deleted.
$bulk-delete operasi memungkinkan Anda menghapus sumber daya dalam layanan FHIR, kecuali sumber daya yang dihapus sementara. Untuk menghapus sumber daya FHIR yang dihapus sementara, Anda perlu menggunakan operasi $bulk-delete-soft-deleted ini.
Layanan FHIR memerlukan header dan peran tertentu yang diaktifkan untuk menggunakan kemampuan penghapusan massal
Header
Parameter header kemampuan penghapusan massal adalah:
Terima: application/fhir+json
Lebih suka: respons asinkron
Persyaratan peran
- Pengguna atau aplikasi perlu ditetapkan ke peran
FHIR Data Writertersebut, untuk menjalankan fitur penghapusan massal. - pengguna atau aplikasi perlu ditetapkan ke peran
FHIR Data Contributoruntuk melakukan penghapusan massal dengan parameter kueri penghapusan keras dan penghapusan massal pada sumber daya yang dihapus secara sementara.
Detail operasi penghapusan massal
$bulk-delete operasi
Anda dapat menjalankan $bulk-delete operasi di tingkat sistem atau untuk jenis sumber daya individual.
Tingkat sistem: Eksekusi operasi di tingkat sistem memungkinkan penghapusan sumber daya FHIR di semua jenis sumber daya di server FHIR.
DELETE /$bulk-deleteJenis sumber daya individual: Eksekusi operasi untuk jenis sumber daya individual memungkinkan penghapusan sumber daya FHIR yang memetakan ke jenis sumber daya di URL.
DELETE /<Resource Type>/$bulk-delete
Nota
Gunakan operasi $bulk-delete dengan hati-hati. Sumber daya yang dihapus tidak dapat dipulihkan. Kami menyarankan agar Anda terlebih dahulu menjalankan pencarian FHIR dengan parameter yang sama dengan pekerjaan penghapusan massal untuk memverifikasi data yang ingin Anda hapus.
Parameter permintaan
Parameter kueri memungkinkan Anda memfilter sumber daya mentah yang ingin Anda hapus. Untuk mendukung pemfilteran, parameter kueri adalah:
| Parameter pencarian | Nilai Bawaan | Deskripsi |
|---|---|---|
| _hardDelete | Tidak benar | Memungkinkan Anda menghapus sumber daya dengan keras. Jika Anda tidak meneruskan parameter ini atau mengatur hardDelete ke false, versi historis sumber daya masih tersedia. |
| _hapusRiwayat | Tidak benar | Memungkinkan Anda menghapus versi riwayat yang terkait dengan sumber daya. Ini tidak menghapus versi sumber daya saat ini dan sumber daya yang dihapus sementara. Catatan: Saat _purgeHistory digunakan dengan parameter _hardDelete diatur ke true, parameter tersebut akan menghapus semua versi yang terkait dengan sumber daya secara permanen. |
| excludedResourceTypes | empty | Memungkinkan Anda mengecualikan jenis sumber daya tertentu (dipisahkan koma) agar tidak dihapus dalam permintaan penghapusan massal. Misalnya, DELETE [base]/$bulk-delete?excludedResourceTypes=patient,observation menghapus semua sumber daya di server FHIR Anda, kecuali untuk jenis sumber daya Pasien dan Observasi. |
| referensi _remove | Tidak benar | Memungkinkan Anda menghapus referensi ke sumber daya yang sedang dihapus. Parameter ini harus digunakan dengan _hardDelete=true. Setelah Anda menggunakan parameter ini untuk menghapus referensi, referensi yang dihapus sekarang diganti dengan nilai berikut: “display”: “Referenced resource deleted”. Misalnya, DELETE [base]/Patient/$bulk-delete?_remove-references=true&_hardDelete=true menghapus semua sumber daya Pasien secara keseluruhan, dan menghapus referensi ke pasien tersebut dari sumber daya lain. Jadi, jika sumber daya Pasien direferensikan oleh sumber daya Observasi, referensi ke Pasien tersebut, yang sebelumnya "subject": { "reference": "Patient/example-patient-id", }, dihapus dari sumber daya Observasi setelah menggunakan penghapusan massal dan menghapus referensi, dan akan diganti dengan "subject": { "display": "Referenced resource deleted" }. |
| _tidak-direferensikan | empty | Memungkinkan Anda menggunakan _not-referencedparameter pencarian untuk mencari sumber daya yang tidak dirujuk oleh sumber daya lain. Lihat bagian di bawah ini untuk contoh selengkapnya tentang menggunakan parameter pencarian yang didukung layanan FHIR. |
| Parameter pencarian yang didukung layanan FHIR | Memungkinkan Anda menentukan kriteria pencarian dan sumber daya yang cocok dengan kriteria pencarian dihapus. Misalnya: address:contains=Meadow subject:Patient.birthdate=1987-02-20. Bagian di bawah ini menyediakan lebih banyak contoh penggunaan parameter pencarian yang didukung layanan FHIR, termasuk cara menggunakan _include dan _revinclude untuk melakukan penghapusan massal dengan referensi, dan _not-referenced untuk mencari sumber daya yang tidak direferensikan oleh sumber daya lain. |
Semua parameter kueri bersifat opsional.
Contoh penggunaan $bulk-delete dengan parameter pencarian yang didukung layanan FHIR
Operasi $bulk-delete mendukung penggunaan parameter pencarian yang didukung layanan FHIR sebagai parameter kueri. Harap dicatat bahwa penghapusan tunggal tidak mendukung parameter tambahan. Saat menggunakan penghapusan massal dengan parameter pencarian FHIR, pertimbangkan untuk menggunakan kueri yang sama dalam pencarian FHIR terlebih dahulu, sehingga Anda dapat memverifikasi data yang ingin Anda hapus.
$bulk-delete dengan _include dan _revinclude
$bulk-delete dapat digunakan dengan _include dan _revinclude untuk menggunakan penghapusan massal dengan referensi. Informasi selengkapnya tentang _include dan _revinclude sebagai parameter hasil pencarian dapat ditemukan di sini. Beberapa contoh penggunaan $bulk-delete dengan _include dan _revinclude:
Contoh berikut yang menggunakan _revinclude akan menghapus semua sumber daya Pasien secara massal yang terakhir diperbarui sebelum 18 Desember 2021, dan semua sumber daya yang merujuk ke pasien tersebut:
DELETE [base]/Patient/$bulk-delete?_lastUpdated=lt2021-12-18&_revinclude=*:*
Contoh berikut yang menggunakan _include akan menghapus semua sumber daya DiagnosticReport secara massal yang terakhir diperbarui sebelum 18/12/2021, serta semua sumber daya ServiceRequest yang direferensikan oleh sumber daya DiagnosticReport tersebut (melalui hubungan DiagnosticReport.basedOn), dan semua sumber daya Encounter yang dirujuk oleh sumber daya ServiceRequest tersebut (melalui hubungan ServiceRequest.encounters):
DELETE [base]/DiagnosticReport/$bulk-delete?_lastUpdated=lt2021-12-12&_include=DiagnosticReport:based-on:ServiceRequest&_include:iterate=ServiceRequest:encounter
$bulk-delete dengan _not-referenced
Nota
Fitur _not-referenced ini hanya tersedia di Server FHIR Azure Health Data Services, dan tidak tersedia di Azure API untuk FHIR.
Menggunakan $bulk-delete dengan parameter _not-referenced memungkinkan Anda mencari dan menghapus sumber daya yang tidak dirujuk oleh sumber daya lain.
Contoh berikut akan menghapus semua sumber daya Pasien secara massal yang tidak dirujuk oleh sumber daya Encounter yang mencantumkannya sebagai subjek:
DELETE [base]/Patient/$bulk-delete?_not-referenced=Encounter:subject
Contoh berikut akan menghapus semua sumber daya Pasien secara massal yang tidak dirujuk oleh sumber daya Encounter di bidang apa pun:
DELETE [base]/Patient/$bulk-delete?_not-referenced=Encounter:*
Contoh berikut akan menghapus semua sumber daya Pasien secara massal yang tidak direferensikan oleh sumber daya Encounter dan DiagnosticReport:
DELETE [base]/Patient/$bulk-delete?_not-referenced=Encounter:subject&_not-referenced=DiagnosticReport:subject
Contoh berikut akan menghapus semua sumber daya Pasien secara massal yang tidak dirujuk oleh sumber daya lain:
DELETE [base]/Patient/$bulk-delete?_not-referenced=*:*
$bulk-delete-soft-deleted operasi
Untuk menghapus sumber daya yang dihapus sementara dalam layanan FHIR, operasi "-$bulk-delete-soft-deleted" dapat digunakan. Operasi ini dapat dijalankan pada tingkat sistem atau untuk jenis sumber daya individual.
Respons operasi penghapusan massal
Setelah permintaan dibuat untuk menghapus sumber daya FHIR secara massal, sebagai respons Anda menerima header Content-Location dengan URL absolut titik akhir untuk permintaan status berikutnya, seperti titik akhir polling.
Titik akhir polling
Permintaan ke titik akhir polling adalah salah satu dari empat hasil tergantung pada status pekerjaan penghapusan massal. Hasilnya disediakan dalam OperationOutcome dari respons FHIR.
Pekerjaan sedang berlangsung: Hasil ini menyatakan pekerjaan sedang berlangsung. Kode Status 202.
Selesai: Hasil ini menyatakan pekerjaan berhasil diselesaikan. Setelah selesai, informasi tentang jumlah sumber daya yang dihapus disediakan pada tingkat jenis sumber daya individual. Kode status 200.
Dibatalkan: Hasil ini menyatakan pengguna membatalkan pekerjaan dan memberikan informasi tentang jumlah sumber daya yang dihapus di tingkat sumber daya individual. Kode status 200.
Gagal: Hasil ini menyatakan pekerjaan gagal. Kode status tergantung pada jenis kegagalan.
Contoh permintaan dan respons untuk menentukan permintaan status:
{{fhir_url}}/_operations/bulk-delete/<job id>
Berikut adalah contoh respons untuk pekerjaan penghapusan yang berhasil diselesaikan:
{
"resourceType": "Parameters",
"parameter": [
{
"name": "ResourceDeletedCount",
"part": [
{
"name": "Practitioner",
"valueInteger64": 10.0
},
{
"name": "Specimen",
"valueInteger64": 7.0
},
{
"name": "Device",
"valueInteger64": 3.0
}
]
}
]
}
Pesan kesalahan
Berikut adalah daftar pesan kesalahan yang mungkin terjadi jika operasi penghapusan massal gagal.
| Kode Status HTTP | Detail lebih lanjut | Tindakan yang direkomendasikan |
|---|---|---|
| 500 | Koneksi ke database gagal | Untuk mengatasi masalah ini, buat tiket Dapatkan Dukungan. |
| 429 | Kesalahan pembatasan kecepatan | Untuk Azure API untuk FHIR, Anda dapat meningkatkan RUs dan memulai kembali pekerjaan. Untuk Server FHIR Azure Health Data Services, Anda dapat mencoba menghapus sejumlah kecil data pada satu waktu. |
FAQ
Apa langkah-langkah untuk resolusi jika pekerjaan penghapusan massal saya tampaknya macet?
Untuk memeriksa apakah pekerjaan penghapusan massal macet, jalankan pencarian FHIR dengan parameter yang sama dengan pekerjaan penghapusan massal dan _summary=count. Jika jumlah sumber daya turun, pekerjaan berjalan. Anda juga dapat membatalkan pekerjaan penghapusan massal dan mencoba lagi.Apakah interaksi API melihat latensi saat pekerjaan operasi penghapusan massal dijalankan secara bersamaan?
Saat menjalankan operasi penghapusan massal, Anda mungkin melihat peningkatan latensi pada panggilan bersamaan ke layanan. Untuk menghindari peningkatan latensi, kami sarankan Anda membatalkan pekerjaan penghapusan massal, lalu menjalankannya kembali selama periode lalu lintas yang lebih rendah.
Nota
Jika Anda membatalkan lalu memulai ulang pekerjaan penghapusan massal, proses penghapusan dilanjutkan dari tempatnya dihentikan.
Contoh ujung ke ujung: Menggunakan $bulk-delete untuk kasus penggunaan retensi data
Berbagai fitur $bulk-delete dapat digunakan bersama-sama untuk memenuhi kasus penggunaan yang berbeda. Berikut ini adalah contoh penggunaan $bulk-delete untuk retensi data.
Katakanlah Anda ingin menghapus data Pasien yang berusia lebih dari tiga tahun, bersama dengan semua data yang mereferensikan ke Pasien tersebut. Namun, karena beberapa pasien dapat dipetakan ke satu praktisi, Anda ingin memastikan bahwa praktisi tidak dihapus sampai semua pasien mereka dihapus. Kasus penggunaan ini dapat dicapai dalam serangkaian panggilan.
Pertama, Anda dapat menghapus semua sumber daya Pasien yang berusia lebih dari tiga tahun, bersama dengan semua data yang mereferensikan ke Pasien tersebut.
DELETE [base] /Patient/$bulk-delete?_lastUpdated=lt{date}&_revinclude=*:*
Selanjutnya, Anda dapat menghapus semua sumber daya Praktisi yang tidak dirujuk oleh sumber daya Pasien apa pun.
DELETE [base]/Practitioner/$bulk-delete?_not-referenced=Patient:*
Konten terkait
Kemampuan API REST FHIR untuk layanan FHIR di Azure Health Data Services