Halaman ini menjelaskan konsep integritas referensial sehubungan dengan resource dalam penyimpanan FHIR di Cloud Healthcare API.
Penyimpanan FHIR menerapkan integritas referensial pada referensi ke resource lain dalam penyimpanan yang sama:
- Saat membuat, mengupdate, atau menerapkan patch pada resource, operasi akan gagal jika konten resource yang dihasilkan berisi referensi ke resource atau versi resource yang tidak ada.
- Saat menghapus resource, operasi akan gagal jika ada resource lain di penyimpanan yang mereferensikan resource tersebut.
Integritas referensial dapat dinonaktifkan dengan menetapkan opsi disableReferentialIntegrity
pada saat pembuatan toko.
Pengecualian dan batasan
Spesifikasi FHIR memungkinkan berbagai bentuk referensi, beberapa di antaranya tidak tercakup dalam integritas referensial:
- Referensi eksternal yang ditentukan oleh URL yang tidak cocok dengan URL dasar penyimpanan FHIR.
- Referensi logis yang ditentukan oleh ID bisnis.
- Referensi yang hanya berisi string tampilan yang dapat dibaca manusia.
- Referensi di dalam ekstensi
FHIR hanya tunduk pada integritas referensial jika
complexDataTypeReferenceParsing
ditetapkan keENABLED
. Ini adalah nilai default untuk penyimpanan FHIR baru.
Metode API tertentu dapat menyebabkan integritas referensi dilanggar dalam beberapa kondisi:
- FHIR memungkinkan referensi untuk mengarah ke versi histori tertentu dari resource menggunakan bentuk
[resource type]/[resource ID]/_history/[version ID]
. Integritas referensial diterapkan ke referensi ini saat dibuat atau diperbarui, tetapi saat menggunakan metodeResource-purge
untuk menghapus versi historis resource, referensi masuk tidak diperiksa. - Metode
import
FHIR tidak menerapkan integritas referensial. Metode ini dapat digunakan jika integritas referensial tidak diperlukan, atau jika input diketahui memenuhi integritas referensial. Dalam kasus terakhir, referensi di dalam penyimpanan FHIR akan mencapai konsistensi akhir setelah setiap resource berhasil diimpor. - Metode
deidentify
berpotensi dapat membuat penyimpanan FHIR dalam status yang tidak memenuhi integritas referensi secara sementara selama operasi, atau secara permanen jika filter digunakan untuk memilih sebagian resource.
Status saat integritas diterapkan, tetapi telah dilanggar oleh salah satu kasus sebelumnya akan menyebabkan update resource ditolak pada resource yang berisi referensi yang tidak valid, kecuali jika update memperbaiki atau menghapus semua referensi yang tidak valid. Status tersebut juga dapat menimbulkan kesulitan bagi aplikasi yang menggunakan penyimpanan yang mengasumsikan integritas.
Resource yang dimuat
Spesifikasi FHIR berisi batasan bahwa setiap resource yang dimuat harus direferensikan dari suatu tempat dalam resource yang memuatnya (termasuk referensi dari resource lain yang dimuat), dan setiap referensi ke resource yang dimuat harus valid. Batasan ini diterapkan secara terpisah dari integritas referensial dan tidak dapat dinonaktifkan karena ditentukan dalam invariant FHIRPath pada setiap resource.