Skip to content

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 CardiologyCARD0001, 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):

  1. Create an invoice from unbilled charges (Draft).
  2. Issue it → Issued.
  3. Record payment — amount, method (Cash/Card/Cheque/Bank Transfer), date, reference → Partially Paid / Paid.
  4. Cancel Invoice releases its charges back to unbilled.
  5. Refund — money back on a paid invoice (capped at the amount paid, GL reversal posted). Pick a reason categoryMedicine/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.