CPONE Middleware • Database Access Reference

Daftar Akses Tabel

Kebutuhan privilege database untuk service CPONE Middleware
Database targetDatabase HIS yang dikonfigurasi pada CPONE_DB_DATABASE
Database userUser yang dikonfigurasi pada CPONE_DB_USERNAME
Dasar pemetaanQuery SQL pada folder internal/repository
Tanggal17 September 2026
Ringkasan: service membutuhkan akses SELECT pada tabel master dan tabel transaksi yang dibaca. Akses write diperlukan hanya pada tabel yang dipakai endpoint POST untuk membuat paket, pasien, registrasi, layanan laboratorium, nominal, dan diagnosis.

1. Tabel dengan READ dan WRITE

Tabel berikut membutuhkan akses SELECT dan operasi write seperti tercantum.

Nama tabelREADWRITEKegunaan utama
medrecSELECTINSERTPencarian dan pembuatan data pasien/medical record.
regpasSELECTINSERTPembuatan dan pengecekan registrasi pasien.
regpas_nominalSELECTINSERT, UPDATENominal administrasi pada level registrasi pasien.
trxdepartemenSELECTINSERTPembuatan transaksi departemen.
trxdepartemen_nominalSELECTINSERT, UPDATERekap nominal layanan/item/tempat tidur dan total transaksi.
trxidlaboratoriumSELECTINSERTPembuatan nomor/transaksi laboratorium.
trxlayananSELECTINSERTPenambahan layanan pada transaksi.
trxlayanan_detailSELECTINSERTRelasi detail layanan dengan paket dispenser.
trxlayanan_penunjangSELECTINSERTRelasi layanan penunjang/header laboratorium.
lab_trxspesimenSELECTINSERTPencatatan spesimen laboratorium.
paket_headerSELECTINSERT, UPDATE, DELETEPembuatan paket; DELETE hanya untuk cleanup saat transaksi gagal.
paket_layananSELECTINSERT, DELETEDetail layanan paket; DELETE hanya untuk cleanup.
paket_departemenSELECTINSERT, DELETEDepartemen yang terkait dengan paket; DELETE hanya untuk cleanup.
paket_dispenser_headerSELECTINSERTHeader paket dispenser pada kunjungan pasien.
paket_dispenser_episode_rjSELECTINSERTEpisode kunjungan rawat jalan paket dispenser.
paket_dispenser_layananSELECTINSERTLayanan yang dihasilkan dari paket dispenser.
paket_dispenser_itemSELECTINSERTItem paket dispenser.
paket_dispenser_admSELECTINSERTAdministrasi paket dispenser.

2. Tabel dengan WRITE saja

Nama tabelOperasi
diagnosa_logINSERT — menyimpan log diagnosis kerja pada registrasi laboratorium.
regpas_diagnosaINSERT — menyimpan diagnosis kerja yang terkait dengan pasien/registrasi.

Kedua tabel di atas tidak dibaca kembali oleh service dalam query saat ini, tetapi harus dapat menerima INSERT ketika endpoint registrasi laboratorium menyimpan diagnosis.

3. Tabel dengan READ saja

Tabel master dan referensi berikut hanya dibaca oleh service, sehingga cukup diberikan privilege SELECT.

KelompokNama tabel
Tarif dan layananadm_periode, harga_layanan_diskon, layanandepartemen, masterlayanan, jenislayanan, periode_tarif, perusahaan_grouptarif, perusahaan_tarif, perusahaan
Master rumah sakitdepartemen, dokter, rs, kelas, satuan, satuanlab, shiftharian
Master paketpaket_adm, paket_item, paket_operasi_header, paket_tt, paket_dispenser_operasi_header
Master operasi dan referensigolonganoperasi, jenisanestesi, kasusoperasi, mastertindakan, konversisatuan, margin_alkes, margin_obat, sys_setting
Master laboratoriumgrouplayanan, lab_jenisspesimen, lab_masterlayanan, lab_multiple, lab_reference, lab_spesimentest, lab_trxlayanan_setup, trxlayananlaboratorium, trxlayanan_proses
Master pasien/registrasijenispaket, jenispasien, jenisreg
Metadata MySQLinformation_schema.tables, information_schema.columns

4. Tabel dinamis

Pola nama tabelKebutuhan akses
harga_layanan_{PeriodeTarifID}SELECT. Contoh: harga_layanan_10. Dipakai untuk membaca tarif layanan berdasarkan periode tarif.
perusahaan_tarif_layanan_{GroupTarifID}SELECT. Dipakai untuk membaca detail tarif kerja sama berdasarkan group tarif.

5. Rekomendasi grant

Untuk koneksi service, berikan privilege secara eksplisit pada database HIS. Gunakan nama database dan host user sesuai lingkungan server.

-- Ganti nama_database_his, cpone, dan host_user sesuai environment.
GRANT SELECT ON `nama_database_his`.`adm_periode` TO 'cpone'@'host_user';

-- Contoh tabel yang membutuhkan write:
GRANT SELECT, INSERT ON `nama_database_his`.`medrec` TO 'cpone'@'host_user';
GRANT SELECT, INSERT ON `nama_database_his`.`regpas` TO 'cpone'@'host_user';
GRANT SELECT, INSERT, UPDATE ON `nama_database_his`.`regpas_nominal` TO 'cpone'@'host_user';
GRANT SELECT, INSERT, UPDATE ON `nama_database_his`.`trxdepartemen_nominal` TO 'cpone'@'host_user';
GRANT SELECT, INSERT, UPDATE, DELETE ON `nama_database_his`.`paket_header` TO 'cpone'@'host_user';

-- Ulangi pola di atas untuk seluruh tabel pada daftar dokumen ini.
-- Tabel dinamis memerlukan SELECT pada setiap tabel yang benar-benar digunakan.

6. Catatan penting