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 menautkan ke resource Patient
sebagai subjek pengamatan.
Referensi resource FHIR juga dapat bersifat melingkar. 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 yang ada
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 ditentukan sebagai
RESOURCE_TYPE/RESOURCE_ID
.
Cloud Healthcare API juga mendukung penambahan nama penyimpanan FHIR lengkap di depan RESOURCE_TYPE/RESOURCE_ID
. Misalnya,
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 toko
FhirStore.disableReferentialIntegrity
mengontrol pemeriksaan integritas referensi untuk validasi referensi lokal, yang
diaktifkan secara default. Untuk informasi selengkapnya tentang pemeriksaan integritas referensi,
lihat
Integritas referensi FHIR.
Referensi dengan 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
] di
referensi lokal.
Saat pemeriksaan integritas referensi diaktifkan, server akan memverifikasi bahwa
versi historis ada di penyimpanan FHIR. Metode
Resource-purge
akan menghapus versi historis, terlepas dari apakah versi tersebut dirujuk atau tidak.
Referensi bersyarat
Sebagai alternatif untuk menentukan ID resource target secara eksplisit,
executeBundle
menerima kueri penelusuran referensi bersyarat
untuk resource target yang me-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 referensi diaktifkan.
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 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 me-resolve URL atau mencoba memverifikasi validitasnya.
Jika URL eksternal lengkap cocok dengan URL lengkap penyimpanan FHIR dari permintaan, referensi akan diperlakukan sebagai referensi resource lokal.
Referensi fragmen
Referensi fragmen mengarah ke
resource yang dimuat
yang disisipkan dalam resource. Misalnya, jika catatan Pengamatan menyebutkan
dokter umum, tetapi tidak ada direktori dokter yang dikontrol, resource
Dokter lengkap tidak dapat dibuat. Dokter umum adalah resource yang dimuat dalam catatan Pengamatan. Kolom Referensi pada resource dapat mengarah
ke resource yang disisipkan 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 dimuat di dalam
resource. Jika tidak, server akan menolak permintaan. Resource yang dimuat hanya
dapat dirujuk oleh penampung atau resource lain yang dimuat di dalam penampung
yang sama.