Halaman ini menjelaskan cara Cloud Healthcare API mendukung referensi resource FHIR.
Ringkasan
Referensi resource FHIR adalah link terarah dari resource sumber ke
resource target. Referensi resource FHIR dapat digunakan untuk menghubungkan resource. Misalnya, jenis resource FHIR Observation
memiliki kolom subject
dari
jenis Reference, yang
dapat digunakan untuk ditautkan ke resource Patient
sebagai subjek pengamatan.
Referensi resource FHIR juga dapat bersifat sirkuler. Misalnya, jenis resource FHIR
CarePlan
memiliki kolom replaces
yang dapat mengarah ke CarePlan
lain.
Elemen terpenting dalam struktur referensi FHIR adalah referensi.
Elemen lainnya, seperti display
dan identifier
, dipertahankan seperti
di Cloud Healthcare API.
Format Reference.reference
yang didukung di Cloud Healthcare API
meliputi:
- Referensi resource lokal
- URI yang diawali dengan
urn:uuid
atauurn:oid
- URL eksternal lengkap
- Referensi fragmen
Referensi resource lokal
Referensi resource didefinisikan sebagai
RESOURCE_TYPE/RESOURCE_ID
.
Cloud Healthcare API juga mendukung penambahan nama lengkap penyimpanan FHIR di depan RESOURCE_TYPE/RESOURCE_ID
. Contoh,
FHIR_STORE_NAME/RESOURCE_TYPE/RESOURCE_ID
.
Jika Anda menggunakan format ini, nama penyimpanan harus cocok dengan penyimpanan FHIR permintaan.
Jika tidak, permintaan akan ditolak karena referensi non-lokal.
Opsi konfigurasi penyimpanan FhirStore.disableReferentialIntegrity
mengontrol pemeriksaan integritas referensial untuk validasi referensi lokal, yang diaktifkan secara default. Untuk mengetahui informasi selengkapnya tentang pemeriksaan integritas referensial,
lihat
Integritas referensial FHIR.
Referensi versi
Cloud Healthcare API mendukung referensi ke versi resource target
tertentu. Untuk menautkan ke versi resource target tertentu, gunakan format setelah RESOURCE_ID/_history/VERSION_ID
] dalam referensi lokal.
Saat pemeriksaan integritas referensial diaktifkan, server akan memverifikasi bahwa
versi historis ada di penyimpanan FHIR. Metode
Resource-purge
menghapus versi historis, terlepas dari apakah versi tersebut direferensikan.
Referensi bersyarat
Sebagai alternatif untuk menentukan ID resource target secara eksplisit,
executeBundle
menerima kueri penelusuran referensi bersyarat
untuk resource target yang di-resolve ke ID resource target pada
waktu permintaan. Contohnya, Patient?identifier=abc
Jika kueri penelusuran tidak me-resolve ke resource target atau me-resolve ke lebih dari satu resource target, server akan menolak permintaan tersebut, terlepas dari apakah pemeriksaan integritas referensial diaktifkan atau tidak.
URI yang diawali dengan urn:uuid
atau urn:oid
Saat menggunakan metode executeBundle
dengan paket transaksi, referensi ID unik universal (UUID) atau ID objek(OID) dapat digunakan untuk me-resolve referensi ke resource lain yang dibuat atau diperbarui dalam paket yang sama. Untuk mengetahui informasi selengkapnya, lihat
Panduan mengelola paket FHIR.
URL eksternal lengkap
URL eksternal lengkap seperti http://www.example.com/abc
disimpan tanpa diubah
di kolom referensi. Cloud Healthcare API tidak menyelesaikan URL atau
mencoba memverifikasi validitasnya.
Jika URL eksternal lengkap cocok dengan URL lengkap penyimpanan FHIR dalam permintaan, referensi akan diperlakukan sebagai referensi resource lokal.
Referensi fragmen
Referensi fragmen menunjuk ke
resource yang ada
yang disisipkan dalam resource. Misalnya, jika catatan Pengamatan menyebutkan
praktisi umum, tetapi tidak ada direktori praktisi terkontrol, resource Praktisi
lengkap tidak dapat dibuat. Praktisi umum adalah sumber daya
yang terdapat dalam catatan Pengamatan. Kolom Referensi pada resource dapat menunjuk
ke resource inline menggunakan bentuk #[INLINE_RESOURCE_ID]
.
Dalam contoh FHIR R4 berikut, p1
dan p2
adalah ID resource inline yang direferensikan sebagai #p1
dan #p2
:
{
"resourceType": "Observation",
"contained": [
{
"resourceType":"Patient",
"id": "p1",
"generalPractitioner": {"reference": "#p2"}
},
{
"resourceType":"Practitioner",
"id": "p2"
}
],
"status": "final",
"subject": {"reference": "#p1"},
"performer": [{"reference": "#p2"}]
}
[INLINE_RESOURCE_ID]
harus ada sebagai resource yang tertampung di dalam
resource. Jika tidak, server akan menolak permintaan tersebut. Resource yang tertampung hanya dapat
direferensikan oleh container atau resource lain yang tertampung di dalam penampung
yang sama.