Halaman ini menjelaskan konsep integritas referensial yang berkaitan 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 mem-patch 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 references, yang 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 ditetapkan 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
.
Metode API tertentu dapat menyebabkan integritas referensial dilanggar dalam beberapa kondisi:
- FHIR memungkinkan referensi untuk menunjuk ke versi histori tertentu dari suatu resource menggunakan format
[resource type]/[resource ID]/_history/[version ID]
. Integritas referensial diterapkan ke referensi ini saat dibuat atau diupdate, tetapi saat menggunakan metodeResource-purge
untuk menghapus versi historis suatu resource, referensi yang masuk tidak akan diperiksa. - Metode FHIR
import
tidak menerapkan integritas referensial. Metode ini dapat digunakan jika integritas referensial tidak diperlukan, atau jika input diketahui memenuhi integritas referensial. Dalam kasus yang terakhir, referensi di dalam penyimpanan FHIR akan mencapai konsistensi tertunda setelah setiap resource berhasil diimpor. - Metode
deidentify
berpotensi membuat penyimpanan FHIR dalam status yang tidak memenuhi integritas referensial untuk sementara selama operasi, atau secara permanen jika filter digunakan untuk memilih subset resource.
Status saat integritas sedang 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 app store yang memiliki integritas.
Resource yang ada
Spesifikasi FHIR berisi batasan bahwa setiap resource yang ada harus direferensikan dari suatu tempat dalam resource yang menampungnya (termasuk referensi dari resource lain yang ada di dalamnya), dan setiap referensi ke resource yang ada harus valid. Batasan ini diterapkan secara terpisah dari integritas referensial dan tidak dapat dinonaktifkan seperti yang ditentukan dalam invarian FHIRPath pada setiap resource.