Medical Billing¶
Capture patient charges, group them into invoices, record payments, and post the revenue to the general ledger automatically.
Charge items & charges¶
- Charge Items (
/medical/billing/charge-items) — the catalogue of billable procedures, services, and supplies. On a new item you can leave Code blank — it auto-generates from the category (e.g. category Cardiology →CARD0001,CARD0002, …; no category →CHG0001). Type a code only when you need to match an external master (e.g. IMIS service codes). - Patient Charges (
/medical/billing/charges) — capture charges against an encounter and charge item. Status flows Draft → Invoiced → Pending → Paid; filter by patient, status, or encounter.
Screenshot: Patient charges — TODO
Invoices¶
Medical → Billing → Invoices (/medical/billing/invoices):
- Create an invoice from unbilled charges (Draft).
- Issue it → Issued.
- Record payment — amount, method (Cash/Card/Cheque/Bank Transfer), date, reference → Partially Paid / Paid.
- Cancel Invoice releases its charges back to unbilled.
- Refund — money back on a paid invoice (capped at the amount paid, GL reversal posted). Pick a reason category — Medicine/Goods, Undone Service Charge, Wrong Registration Ticket, or Other — plus a free-text note; the category shows in the refund history for audit and reporting.
Nightly auto-billing
An optional daily billing batch (config flag medical.billing.daily-job.enabled, off by default)
runs overnight and bundles each patient's unbilled charges for the day into a draft invoice —
counter staff review and issue it. Charges already invoiced are skipped, so it's safe to re-run.
The printable invoice carries a payment‑reference QR, and — for a patient with verified lab reports — a "View your lab report online" QR per report, so the patient leaves the counter with the code on paper (scan + date of birth → their report; see Laboratory).
The printable invoice carries a payment‑reference QR, and — for a patient with verified lab reports — a "View your lab report online" QR per report, so the patient leaves the counter with the code on paper (scan + date of birth → their report; see Laboratory).
GL configuration¶
Billing → GL Config (/medical/billing/gl-config) — toggle auto‑posting and map the ledger
accounts (Service Revenue, Patient Receivable, Insurance Receivable, Bank/Cash). With auto‑post on,
issuing/finalising an invoice posts the journal automatically. The dropdowns list the leaf accounts
of your finance Chart of Accounts — if they're empty, set up the accounts first under Accounting →
Chart of Accounts (the page shows a warning with a direct link when no accounts exist yet).
Bridges to Accounting
Medical billing posts into the same general ledger as the rest of the ERP, so hospital revenue shows up in finance reports without re-keying.
Payment modes — Credit & Advance¶
When recording a payment on an invoice you can choose, besides Cash / Card / Bank / Wallet / Insurance:
- Credit (bearer) — goods or service taken on credit. Capture the bearer's name, ID and signature; the payment is booked against the invoice with that bearer trail.
- Advance / Deposit — draw down a patient's prepaid deposit. Record deposits under Med Billing → Patient Advances; an Advance payment consumes the oldest deposits first (FIFO) and is blocked if the balance is short. The payment panel shows the patient's available advance balance, and reveals the bearer fields only when Credit is selected.
Public transparency board¶
The public /transparency board (embeddable in the hospital website) publishes revenue collected
alongside the patient, bed and medicine figures — total plus the cash vs insurance split. Aggregate
figures only; no patient information is shown.