Referensi resource FHIR

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

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.