BPJS dan SATUSEHAT
Status Integrasi SATUSEHAT Rekamedika
Dokumen ini membantu user membedakan fitur SATUSEHAT yang sudah dapat digunakan, yang masih terbatas, dan yang baru tersedia di backend.
Terakhir diperbarui
Informasi tutorial
| Informasi | Detail |
|---|---|
| Tanggal audit | 30 Juli 2026 |
| Cakupan | validasi source code pada branch saat ini, terutama apps/dashboard, packages/api, packages/db, dan apps/server |
| Kesimpulan | Rekamedika sudah memiliki fondasi dan beberapa alur publish SATUSEHAT yang nyata. Integrasi belum dapat disebut lengkap untuk seluruh resource FHIR. |
Dokumen ini membantu user membedakan fitur SATUSEHAT yang sudah dapat digunakan, yang masih terbatas, dan yang baru tersedia di backend.
Cara membaca status
Status pada dokumen ini berarti:
- Terintegrasi: ada capture/write dari UI atau alur aplikasi, tersimpan ke tabel lokal yang sesuai, dan ada publisher SATUSEHAT yang dipanggil oleh aplikasi.
- Terintegrasi terbatas: alurnya nyata, tetapi hanya untuk modul/kasus tertentu, atau belum mencakup seluruh variasi resource.
- Backend siap, writer belum ada: tabel, builder, atau publisher tersedia, tetapi belum ditemukan alur aplikasi yang menulis data bisnis ke tabel tersebut.
- Belum terintegrasi: belum ditemukan writer dan/atau publisher yang dapat digunakan oleh alur aplikasi.
- Di luar cakupan: saat ini tidak diposisikan sebagai alur SATUSEHAT Rekamedika. Ini bukan berarti resource tersebut dilarang untuk ditambahkan kemudian.
Keberadaan tabel database atau fungsi build...Fhir saja tidak dihitung sebagai integrasi end-to-end. Data harus memiliki sumber input yang dapat digunakan oleh user.
Ringkasan progres
| Area | Status | Yang sudah tersedia |
|---|---|---|
| Arsitektur koneksi | Terintegrasi | Server menjadi satu-satunya pintu ke SATUSEHAT; dashboard tidak memegang token. |
| Identitas pasien/MPI | Terintegrasi | Verifikasi NIK, resolve IHS, review kandidat duplikat, link identity, dan status di dashboard. |
| Praktisi | Terintegrasi terbatas | Resolve praktisi melalui NIK dan penyimpanan IHS; belum merupakan alur pengelolaan SDMK lengkap. |
| Fasyankes | Terintegrasi | Verifikasi Organization/FASYANKES dan sinkronisasi Organization/Location tersedia. |
| Publish kunjungan | Terintegrasi | Readiness, blocker, publish ulang idempotent, dan status per resource tersedia. |
| RME gizi PDIME | Terintegrasi | Capture asesmen, pemecahan ke resource FHIR, dan publish berurutan P-D-I-M/E. |
| RME gigi | Terintegrasi terbatas | Encounter gigi, odontogram, temuan/OHIS, anamnesis, edukasi, dan publish melalui Bundle kunjungan. |
| IGD | Terintegrasi terbatas | Triage vital signs tersimpan sebagai Observation dan ikut jalur publish kunjungan. |
| Farmasi | Terintegrasi terbatas | Resep dan dispensing membuat MedicationRequest/MedicationDispense; publish bergantung pada KFA dan prasyarat klinis. |
| Dokumen resume | Terintegrasi terbatas | Resume dapat membuat Composition dan menampilkan status; author dokter masih dapat kosong sehingga publish dapat terblokir. |
| Lab/radiologi | Belum end-to-end | Modul lokal dan builder/publisher tersedia sebagian, tetapi writer hasil/order belum seluruhnya mengisi tabel SATUSEHAT clinical. |
| Resource RME generik | Sebagian besar backend siap | Banyak schema dan builder tersedia, tetapi writer UI belum ditemukan. |
| HIV | Alur khusus tersedia | Ada route capture, EpisodeOfCare/visit, status, dan publish khusus HIV; jangan disamakan dengan coverage RME umum. |
Status per resource FHIR
| Resource | Status audit | Bukti utama | Catatan |
|---|---|---|---|
Patient | Terintegrasi | apps/dashboard/src/components/integrasi/satusehat-verify-panel.tsx; apps/dashboard/src/lib/satusehat-api.ts; apps/server/src/satusehat/routes-patient.ts | Verifikasi NIK dan persist link IHS tersedia. |
Practitioner | Terintegrasi terbatas | satusehat-verify-panel.tsx; routes-patient.ts | Resolve NIK/IHS tersedia; pengelolaan practitioner lengkap belum diaudit sebagai alur write umum. |
Organization | Terintegrasi | fasyankes-verification-card.tsx; apps/server/src/satusehat/routes-clinical.ts | Verifikasi dan sync Organization tersedia. |
Location | Terintegrasi | routes-clinical.ts | Sync Location tersedia; data lokasi tetap bergantung pada master fasyankes. |
Encounter | Terintegrasi | satusehat-encounter-panel.tsx; routes-clinical.ts | Readiness dan publish kunjungan tersedia. |
Condition | Terintegrasi terbatas | packages/api/src/routers/gizi-mutations.ts; clinical-kunjungan-rme.ts | Writer nyata terbukti untuk diagnosis gizi. Klaim bahwa seluruh diagnosis RME generik sudah terhubung belum terbukti. |
Observation | Terintegrasi terbatas | packages/api/src/routers/igd-vitals.ts; gizi-mutations.ts; rme-dental.ts | Vital IGD, asesmen gizi, dan dental menulis Observation. Belum semua vital/RME memakai jalur yang sama. |
Procedure | Terintegrasi terbatas | rme-dental.ts; gizi-mutations.ts | Edukasi gigi dan counseling gizi tertulis; tindakan medis umum belum terbukti seluruhnya. |
MedicationRequest | Terintegrasi terbatas | packages/api/src/routers/farmasi-clinical-inserts.ts; clinical-kunjungan-rme.ts | Writer farmasi tersedia; publish membutuhkan kode KFA dan relasi encounter yang valid. |
MedicationDispense | Terintegrasi terbatas | farmasi-clinical-inserts.ts; clinical-kunjungan-medication.ts | Writer dispensing tersedia; belum berarti semua resep historis otomatis tersinkron. |
NutritionOrder | Terintegrasi terbatas | gizi-mutations.ts; gizi-publish.ts | Terhubung nyata melalui asesmen gizi PDIME. |
QuestionnaireResponse | Terintegrasi terbatas | gizi-writer.ts; gizi-mutations.ts; gizi-publish.ts | Terhubung untuk skrining gizi age-band, bukan semua kuesioner RME. |
ServiceRequest | Terintegrasi terbatas | gizi-mutations.ts; gizi-publish.ts | Writer nyata terbukti untuk permintaan konsultasi gizi. Order lab/radiologi umum belum terbukti masuk ke tabel ini. |
DiagnosticReport | Terintegrasi terbatas | gizi-publish.ts | Ada report ringkasan gizi. Writer hasil laboratorium/radiologi umum belum terbukti end-to-end. |
CarePlan | Terintegrasi terbatas | gizi-publish.ts | CarePlan dibuat untuk alur gizi; belum ada writer umum untuk rencana asuhan klinis. |
Composition | Terintegrasi terbatas | packages/api/src/routers/dokumen-helpers.ts; dokumen-rme-detail-sheet.tsx; clinical-publish-documents.ts | Resume menulis Composition, tetapi authorId sengaja null pada alur dokumen sehingga publisher dapat menolak data. |
DocumentReference | Backend siap, writer belum ada | core-rme-documents.ts; clinical-publish-documents.ts; dokumen-rme-detail-sheet.tsx | Dashboard dapat membaca status/detail, tetapi audit tidak menemukan writer attachment yang membuat row clinical_document_references untuk publish SATUSEHAT. |
FamilyMemberHistory | Backend siap, writer belum ada | core-rme-resources.ts; clinical-kunjungan-rme.ts | Schema, builder, dan Bundle mapping ada; belum ada capture UI/API bisnis. |
MedicationStatement | Backend siap, writer belum ada | core-rme-resources.ts; clinical-kunjungan-rme.ts | Belum ada alur obat yang dikonsumsi sebelum perawatan ke tabel ini. |
ClinicalImpression | Backend siap, writer belum ada | core-rme-resources.ts; clinical-kunjungan-rme.ts | Belum ada writer evaluasi/kesimpulan klinis generik. |
Goal | Backend siap, writer belum ada | core-rme-resources.ts; clinical-kunjungan-rme.ts | Belum ada writer target terapi generik. |
RiskAssessment | Backend siap, writer belum ada | core-rme-resources.ts; clinical-kunjungan-rme.ts | Belum ada writer penilaian risiko generik. |
MedicationAdministration | Backend siap, writer belum ada | core-rme-resources.ts; clinical-kunjungan-rme.ts | Builder/publisher ada, tetapi e-MAR/pemberian obat belum ditemukan sebagai writer dashboard. |
Specimen | Backend siap, writer belum ada | core-rme-orders.ts; clinical-kunjungan-rme.ts | Belum ada alur pengambilan/pelacakan spesimen ke tabel SATUSEHAT. |
ImagingStudy | Backend siap, writer belum ada | core-rme-orders.ts; clinical-kunjungan-rme.ts | UI radiologi/DICOM ada, tetapi belum mengisi tabel clinical_imaging_studies untuk publish. |
Substance | Belum terintegrasi | core-rme-orders.ts | Schema ada, tetapi CHILD_SPECS mengecualikan Substance dan builder/publisher belum tersedia. |
AllergyIntolerance | Backend siap, writer belum ada | core-clinical.ts; clinical-kunjungan-rme.ts | Publisher ada, tetapi data alergi pada dashboard belum terbukti menulis allergy_intolerances. |
RelatedPerson | Belum terintegrasi | Tidak ada pada CHILD_SPECS dan tidak ditemukan writer dashboard | Klaim lama bahwa RelatedPerson sudah penuh tidak didukung bukti alur saat ini. |
Immunization | Belum terintegrasi | Tidak ditemukan tabel/writer/publisher aplikasi | Belum ada modul imunisasi. |
EpisodeOfCare | Terintegrasi terbatas untuk HIV | apps/server/src/satusehat/routes-hiv.ts | Ada shell/alur EpisodeOfCare khusus HIV, bukan implementasi umum seluruh RME. |
Resource billing (Account, ChargeItem, Invoice, PaymentNotice, PaymentReconciliation) | Di luar cakupan saat ini | Tidak ada publish SATUSEHAT pada alur kasir yang diaudit | Data keuangan tetap internal. |
Resource klaim (Claim, ClaimResponse, Coverage, CoverageEligibility*) | Di luar cakupan SATUSEHAT saat ini | Alur terkait diarahkan ke E-Klaim/VClaim | Integrasi BPJS tidak sama dengan publish resource SATUSEHAT. |
Alur yang dapat digunakan user saat ini
- Verifikasi identitas: buka
/integrasi/satusehat, verifikasi NIK pasien atau praktisi, lalu periksa IHS yang tersimpan. - Verifikasi fasilitas: gunakan kartu Verifikasi FASYANKES untuk memeriksa fasilitas dan master Organization/Location.
- Publish kunjungan: buka daftar Publish kunjungan, pilih kunjungan, periksa readiness dan blocker, lalu publish jika semua prasyarat terpenuhi.
- Publish gizi: pada profil pasien, buka panel Asesmen gizi (PDIME), buat asesmen, lalu pilih Publish SATUSEHAT pada asesmen yang belum final.
- Publish gigi: pada capture gigi, siapkan kunjungan, isi odontogram/temuan/edukasi, lalu gunakan panel SATUSEHAT RME.
- Publish IGD: input vital pada triase IGD; data tersimpan sebagai Observation encounter dan dapat ikut publish kunjungan.
- Publish farmasi: pastikan resep, dispensing, KFA, pasien, practitioner, dan encounter telah tertaut sebelum publish.
Prasyarat dan batasan operasional
- Dashboard hanya memanggil server Rekamedika. Token dan kredensial SATUSEHAT tidak berada di browser.
- Publish memakai izin
integrasi.satusehat.updatedan readiness server-side. - Pasien, practitioner, Organization, Location, kode terminologi, dan KFA harus tersedia sesuai resource yang akan dikirim.
- Status terblokir berarti precondition belum tersedia, bukan bukti bahwa SATUSEHAT menolak request.
- Status gagal berarti publisher sudah mencoba dan menerima kegagalan; detail harus dilihat dari log/resource link server.
- Status UI dan jumlah resource pada dashboard berasal dari Postgres lokal. Angka tersebut bukan bukti keseluruhan data telah diterima Kemenkes tanpa pemeriksaan link/IHS dan log upstream.
- Audit ini tidak memverifikasi kredensial tenant, environment sandbox/production, data runtime, keberhasilan HTTP aktual, atau kesesuaian setiap payload terhadap versi spesifikasi Kemenkes terbaru.
Koreksi terhadap dokumen status lama
Dokumen docs/satusehat/19-resource-kemenkes-status.md tidak sepenuhnya benar sebagai status terkini.
- Klaim bahwa 19 resource hanya memiliki schema/builder/publisher tanpa writer terlalu luas. Writer nyata sudah ada untuk sebagian alur Gizi, IGD, farmasi, gigi, dan resume.
- Klaim
Compositionselaluauthor_id = nullmasih benar untuk jalurdokumen.createyang diaudit, sehingga statusnya parsial dan dapat terblokir. - Klaim
RelatedPersonsudah penuh tidak terbukti dariCHILD_SPECSdan writer dashboard. - Klaim
EpisodeOfCaresepenuhnya belum ada perlu dibatasi: modul HIV memiliki alur EpisodeOfCare khusus. - Angka “41 spesifikasi” tidak dijadikan metrik progres pada dokumen ini karena daftar resource dan definisi “penuh” pada dokumen lama mencampur resource FHIR, modul khusus, dan resource di luar cakupan.
Pekerjaan berikutnya
Prioritas untuk menaikkan status dari parsial/backend-ready menjadi end-to-end:
- Isi
authorIdComposition dari pegawai/Practitioner terverifikasi, bukan nama teks bebas. - Hubungkan writer alergi, riwayat keluarga, obat sebelum perawatan, ClinicalImpression, Goal, CarePlan umum, dan RiskAssessment ke form RME.
- Hubungkan order dan hasil laboratorium/radiologi ke
ServiceRequest,Specimen,DiagnosticReport, danImagingStudySATUSEHAT. - Tambahkan writer
DocumentReferenceyang mengikat attachment klinis ke Composition dengan URL/attachment yang valid. - Tambahkan e-MAR untuk
MedicationAdministration. - Tambahkan builder/publisher dan writer untuk
Substancebila memang diperlukan oleh workflow Rekamedika. - Tambahkan pemeriksaan runtime: jumlah row per tabel, resource link ber-IHS, error terakhir, dan bukti response upstream per tenant/environment.
Berkas bukti utama
- Dashboard SATUSEHAT:
apps/dashboard/src/routes/integrasi.satusehat.tsx - Client dashboard ke server:
apps/dashboard/src/lib/satusehat-api.ts - Panel publish encounter:
apps/dashboard/src/components/pasien/satusehat-encounter-panel.tsx - Panel gizi:
apps/dashboard/src/components/rme/gizi-panel.tsxdangizi-publish-sheet.tsx - Panel gigi:
apps/dashboard/src/components/rme/dental-capture-section.tsx - Panel IGD SATUSEHAT:
apps/dashboard/src/components/igd/igd-satusehat.tsx - Writer gizi:
packages/api/src/routers/gizi-mutations.tsdangizi-writer.ts - Writer vital IGD:
packages/api/src/routers/igd-vitals.ts - Writer gigi:
packages/api/src/routers/rme-dental.ts - Writer farmasi:
packages/api/src/routers/farmasi-clinical-inserts.ts - Writer Composition resume:
packages/api/src/routers/dokumen-helpers.ts - Publisher kunjungan:
apps/server/src/satusehat/clinical-kunjungan-rme.ts - Publisher gizi:
apps/server/src/satusehat/gizi-publish.ts - Schema resource RME:
packages/db/src/schema/core-rme-resources.ts,core-rme-orders.ts, dancore-rme-documents.ts
Is this page helpful?