Bedakan katalog, transaksi, dan persediaan
Preset billing adalah katalog layanan. Billing pasien adalah snapshot transaksi. Persediaan menyimpan stok obat dan BHP. Ketiganya berhubungan, tetapi tidak boleh menjadi tabel yang sama karena perubahan harga katalog tidak boleh mengubah tagihan lama.
Saat item dipilih, salin nama, harga, kuantitas, dan relasi sumber ke billing. Simpan identifier asal agar laporan tetap dapat mengelompokkan transaksi meskipun label katalog kemudian diperbarui.
Gunakan kategori yang dapat diperluas
Kategori layanan dapat meliputi konsultasi, tindakan, laboratorium, radiologi, ultrasonografi, dan penunjang lain. Obat dan BHP sebaiknya tampil sebagai kategori tersendiri karena keduanya memiliki stok, satuan, dan harga yang berbeda dari preset layanan.
- Tindakan dipilih dari preset kategori Tindakan.
- Penunjang dapat berasal dari seluruh kategori selain Tindakan.
- Obat hanya dapat ditambahkan sesuai jumlah stok yang tersedia.
- BHP dapat dipilih mandiri atau terikat sebagai komponen tindakan.
- Item yang sudah dipilih tampil sebagai item tersimpan, bukan kembali menjadi placeholder dropdown.
Cegah BHP dihitung dua kali
Jika tindakan A menggunakan dua unit BHP X, sistem perlu menentukan apakah BHP menjadi child item tindakan atau item billing mandiri. Jangan membentuk child item lalu menambah item mandiri yang sama saat billing disimpan.
Tampilkan komponen BHP tepat di bawah tindakan induknya. Jika pengguna juga menambahkan BHP X secara mandiri, bedakan sumber dan kuantitasnya agar laporan dapat menjelaskan mengapa total lebih besar.
Tentukan kapan stok berkurang
Pengurangan stok saat item baru dipilih dapat menimbulkan masalah jika billing dibatalkan. Banyak klinik memilih mengurangi stok ketika pembayaran lunas. Apa pun pilihannya, proses harus atomik, idempotent, dan memiliki ledger sehingga koreksi dapat dilakukan melalui transaksi balik, bukan mengedit angka tanpa jejak.
Stok nol tidak selalu berarti item tidak boleh ada di katalog, tetapi pengguna harus mendapatkan peringatan dan aturan yang konsisten. Obat dengan aturan stok ketat tidak boleh diresepkan melebihi persediaan.
Hubungkan fee ke tenaga yang ditugaskan
Fee dokter atau perawat sebaiknya mengikuti dokter dan perawat yang dipilih ketika pasien didaftarkan, bukan semata-mata akun yang sedang login saat tindakan dicatat. Catat user atau profil tenaga kesehatan tujuan fee pada transaksi tindakan agar laporan per pengguna dapat disusun.
Laporan owner dapat melihat total global. Pengguna staf yang diberi akses laporan sebaiknya hanya melihat fee tindakan yang terkait dengan dirinya, kecuali owner memberi kewenangan lebih luas.
Gunakan laporan berbasis transaksi
Laporan pendapatan, harga beli dan jual, pemakaian obat atau BHP, serta fee internal harus berasal dari baris transaksi yang tersimpan. Filter waktu menggunakan zona server yang disepakati dan diterapkan pada query backend, bukan menghitung seluruh data di browser.