Resource vs datatype; R4 vs R5, Normative, maturity (FMM)
Pertanyaan pembuka yang hampir pasti muncul, dijelaskan dengan bahasa developer JavaScript
resourceType sebuah resource,
bedanya dengan datatype, serta arti label Normative, Trial Use, dan FMM untuk R4 vs R5.
Semua fakta di bawah diambil dari spesifikasi FHIR R4 (v4.0.1) dan dikutip [n]. Contoh JSON dan TypeScript hanya untuk dibaca, tidak perlu dijalankan. REST, HTTP status, JSON, dan OAuth sudah Anda kuasai; lesson ini hanya mengajarkan yang khas FHIR.
Sebelumnya, di lesson 0001, Anda melihat FHIR dibanding HL7 v2 dan bagaimana FHIR berdiri di atas REST + JSON, dengan resourceType sebagai penanda jenis. Lesson ini membahas unit dasarnya, Resource, lalu versi FHIR yang dipakai track ini.
1. Resource: definisi, kategori, dan bedanya dengan datatype
"The basic building block in FHIR is a Resource." [1] Menurut spesifikasi, sebuah resource adalah entitas yang: [2]
- "has a known identity (a URL) by which it can be addressed" →
[base]/Patient/123; - "identifies itself as one of the types of resource defined in this specification" →
resourceType; - "has an identified version that changes if the contents of the resource change" →
meta.versionId.
{
"resourceType": "Patient",
"id": "123",
"meta": { "versionId": "2", "lastUpdated": "2024-10-26T10:30:00Z" },
"identifier": [{ "system": "https://rs.contoh.id/no-rm", "value": "RM-00123" }],
"name": [{ "family": "Santoso", "given": ["Budi"] }],
"gender": "male",
"birthDate": "1980-05-12"
}
Semua resource boleh punya id ("the 'logical id' of the resource"), meta, implicitRules, dan language.
meta.versionId "Changes each time the content of the resource changes", dan meta.profile adalah "An assertion that the content conforms to a resource profile". [2]
"Most resources are derived from DomainResource", sehingga juga bisa memuat text, resource contained, dan extension. [2]
Bedakan id (alamat di server ini) dari identifier (nomor bisnis seperti nomor rekam medis); detailnya di lesson 0004.
Kategori
Indeks resource R4 mengelompokkan resource ke lima level [3]:
| Level | Contoh | Kapan Anda menyentuhnya |
|---|---|---|
| Foundation | CapabilityStatement, StructureDefinition, ValueSet, Bundle | infrastruktur: kemampuan server, profile, terminologi, paket resource |
| Base | Patient, Practitioner, Organization, Encounter | siapa, di mana, kunjungan apa |
| Clinical | Observation, Condition, MedicationRequest, AllergyIntolerance | data klinis sehari-hari |
| Financial | Coverage, Claim, ExplanationOfBenefit | asuransi dan klaim |
| Specialized | Questionnaire, PlanDefinition, ResearchStudy | kuesioner, riset, kualitas |
Resource vs datatype
Datatype adalah tipe untuk elemen di dalam resource: tipe primitif ("single elements with a primitive value", mis. string, boolean, decimal, dateTime)
dan tipe kompleks ("re-usable clusters of elements", mis. Identifier, HumanName, CodeableConcept, Quantity, Period). [4]
Berbeda dengan resource, datatype tidak punya identitas URL atau versi sendiri: ia selalu hidup di dalam sebuah resource. Kalau satu resource butuh resource lain, ia memakai datatype Reference: "resources are identified and addressed by their URL". [5]
Padanan TypeScript: resource ≈ entity/aggregate dengan endpoint sendiri; datatype ≈ value object (type Address = {...}) yang di-embed.
Latihan 1 — Resource
2. R4 vs R5, Normative, dan maturity (FMM)
Versi FHIR ditulis "publication.major.minor.revision"; yang dipakai track ini adalah "FHIR Release 4 (Technical Correction #1) (v4.0.1)". [6] Setiap artefak (resource, halaman, profile) punya status:
| Status | Artinya |
|---|---|
| Normative (tanda N) | "The content is considered to be stable and has been 'locked', subjecting it to FHIR Inter-version Compatibility Rules." Forward compatibility: "content that is conformant in an old release will remain conformant with future versions." |
| Trial Use | "considered by the authors to be ready for use in production systems", tetapi "Future versions of FHIR may make significant changes to Trial Use content". |
| FMM 0–5 | tingkat kematangan konten Trial Use. FMM 0: baru di build. FMM 2: diuji interoperabilitasnya oleh "at least three independently developed systems". FMM 5: "implemented in at least 5 independent production systems in more than one country". |
Semua kutipan tabel: [6]. Backward compatibility (instance versi baru dibaca sistem lama) "is not guaranteed by FHIR".
- R4 (4.0.0, 27 Des 2018): "First Normative content". [7] Normative di R4 antara lain REST API [8], format JSON [9],
Patient[10],Observation[11],Bundle, danStructureDefinition.Encounterbelum: FMM 2. [3] Koreksi teknis 4.0.1: Okt 2019. [12] - R5 (5.0.0, 26 Mar 2023) berstatus trial use: "None of the content in this specification is considered 'Normative'"; konten yang sudah normative di R4 tetap berlabel Normative. Perubahan yang dicatat antara lain "Complete Rework Subscriptions framework", resource baru, dan rename seperti DeviceUseStatement → DeviceUsage. HL7 "plans to publish the next release as a normative specification." [13]
- IG besar dibangun di atas R4, misalnya: "The US Core Implementation Guide is based on FHIR Version R4." [14]
Kalimat "R4 adalah versi paling dominan di produksi" adalah pengamatan industri, bukan kalimat spesifikasi. Di interview, dukung dengan fakta di atas: R4 rilis normative pertama, R5 trial use, dan IG utama (termasuk yang dipakai regulator) masih di R4. Posisi SATUSEHAT dibahas di lesson 0022.
Latihan 2 — Versi dan maturity
Latihan 3 — Ucapkan dengan suara keras
Pasang timer dan jawab dengan suara keras, seolah sedang interview. Jangan buka jawaban contoh sebelum selesai.
"Kami memakai FHIR R4. Kenapa bukan R5? Dan apa arti label Normative dan FMM yang Anda lihat di spesifikasi?" (60 detik)
Bandingkan dengan jawaban contoh dan checklist-nya
"R4, versi 4.0.1, adalah rilis pertama yang memuat konten normative, terbit akhir 2018. Normative berarti konten itu stabil dan dikunci: tunduk pada aturan kompatibilitas antarversi, jadi data yang valid di R4 tetap valid di versi berikutnya. Bagian penting seperti REST API, format JSON, Patient, dan Observation sudah normative di R4. Konten lain berstatus Trial Use dengan Maturity Model FMM 0 sampai 5; FMM 5 berarti sudah dipakai di minimal lima sistem produksi independen di lebih dari satu negara, tapi masih bisa berubah. R5 terbit Maret 2023 sebagai rilis trial use: tidak ada konten baru yang normative, ada perubahan seperti rework Subscriptions. Karena itu ekosistem, termasuk IG besar seperti US Core, masih dibangun di atas R4, dan migrasi baru masuk akal saat rilis normative berikutnya."
Checklist: apakah Anda menyebut…
- R4 = 4.0.1, rilis pertama dengan konten normative (2018–2019)?
- Normative = stabil, dikunci, tunduk aturan kompatibilitas antarversi?
- contoh normative di R4: REST API, JSON, Patient, Observation?
- Trial Use + FMM 0–5; FMM 5 = minimal 5 sistem produksi independen, >1 negara?
- R5 (Maret 2023) berstatus trial use; contoh perubahan: rework Subscriptions?
- IG (mis. US Core) dan ekosistem masih di R4; HL7 berencana rilis berikutnya normative?
Lulus kalau minimal 4 dari 6. Review 0012 akan menanyakan salah satunya lagi.
Istilah: GLOSSARY.md (bagian "Fondasi") · Sumber: RESOURCES.md · Komunitas: chat.fhir.org
Ada yang belum jelas? Tanyakan ke saya (agent) di terminal, misalnya: "apa beda id dan identifier?", "kapan sebuah extension harus jadi modifierExtension?", atau "bagaimana menjelaskan Normative vs Trial Use ke interviewer non-teknis?"
Sumber: [1] FHIR Overview · [2] Resource · [3] Resource Index · [4] Data Types · [5] Resource References · [6] Managing Multiple FHIR Versions (FMM, Normative) · [7] R4 Version History · [8] RESTful API · [9] JSON Representation · [10] Patient · [11] Observation · [12] FHIR R4 Home · [13] R5 Version History · [14] US Core IG