Finance Inpatient Invoice Journal - hmislk/hmis GitHub Wiki
Inpatient Invoice Journal
Introduction
The inpatient invoice journal is an accounting-focused report that lists all inward billing transactions in a structured format suitable for journal entry posting to an external accounting system (such as QuickBooks). Each row shows the bill reference, patient, charge category, amount, and corresponding accounting codes, enabling systematic transfer of inpatient revenue data to the general ledger.
Navigation
Main Menu → Inward → Reports → Invoice Journal OR Main Menu → Financial Reports → Inward Invoice Journal
Generating the Invoice Journal
- Navigate to
inward/inward_report_invoice_journal.xhtml. - Set the date range (From Date, To Date).
- Select filters as needed:
- Ward or unit
- Charge category (All, or specific InwardChargeType)
- Bill status (Active, Cancelled, or both)
- Click Generate.
- The report renders in the browser.
- Use Export to Excel to download for accounting software import.
Report Columns
One row per admission. The current fixed columns are:
| Column | Description |
|---|---|
| BHT No | Bed Head Ticket / admission reference |
| Patient Name | Admitted patient |
| Admitted / Discharged | Admission and discharge dates |
| Final Bill No | The admission's confirmed final bill number |
| Admission Type | BHT, OPD Card, or another configured admission type |
| (one column per InwardChargeType) | See "Charge-type column order is configurable" below |
| Discount / Service Charge / Gross Total | Shown only when the "Inpatient Reports - Show Gross Value, Discount and Service Charge" config option is enabled |
| Net Total | Gross − Discount + Service Charge (always shown) |
| Total Final Payment | Sum of final-bill payments for the admission |
| Total Deposit | Sum of "Make a Deposit" amounts |
| Credit Settlement | Amount settled by a credit company |
| Credit Company Due | Outstanding balance still owed by the credit company |
| Credit Company | Name of the credit company billed, if any |
Column totals are shown in the table footer.
Configure Columns
(Issue #23515) A collapsible Configure Columns panel sits above the results table, with one checkbox per fixed column listed above (the per-charge-type columns and the Discount/Service Charge/Gross Total columns are not included — those are controlled separately, by the data itself and by the config option respectively). Unchecking a column hides it immediately; the choice is saved automatically per user and remembered the next time you open this report.

Every column visible — the default state.

Same report with "Patient Name" unchecked via Configure Columns — the column disappears and the remaining columns shift left.
Whichever columns you uncheck are omitted consistently from the on-screen table, Print, Excel, and PDF — all four surfaces always agree.
Charge-type column order is configurable
One column renders per InwardChargeType that has at least one non-zero
value in the current result set (an all-zero column is hidden). Their
left-to-right order is controlled by the Report Order number set per
charge type on the Inpatient Charge Type Labels
page — not by the enum's internal declaration order. This lets an admin
group related charges (e.g. all room-related charges) next to each other
without needing a code change:

Room Charges (Report Order 139) now appears before Professional Charge (default Report Order 300), reversing their previous enum-declaration order — patient names redacted.
Assisting Charge has its own column only if your hospital separates it
By default a doctor's fee is filed as a Professional Charge when the staff member is a consultant, and as an Assisting Charge otherwise (nurses, junior doctors, assistants), so the journal shows both columns.
Hospitals that bill both as a single doctor's fee enable the setting "Professional Fee and Assisting Fees are shown as one charge type on the final bill.". Every inpatient doctor's fee is then a professional charge, and the Assisting Charge column is not shown at all — its values are included in Professional Charge instead:

With the setting enabled, Professional Charge carries the consultant and assisting fees together — the second row's 13,000.00 is a 7,000.00 consultant fee plus a 6,000.00 assisting fee. Patient names redacted.
The same setting governs the rest of the system consistently: the final bill shows one doctors' section rather than two, the interim bill drops its separate Assisting Charges tab, Assisting Charge disappears from the charge-type pickers on the charge-type reports, and the Professional & Other Fee Summary counts assisting fees in its Professional Fee Total.
This ordering is independent of the Final Bill's own charge-type order, which is unaffected by this setting (issue #23340).
Deposit, Final Payment, and Credit Company Due columns
After the charge-type columns and Net Total, the report shows five reconciliation columns:
| Column | Meaning |
|---|---|
| Total Final Payment | Total paid via the Make a Payment button (BillTypeAtomic.INWARD_PAYMENT), net of any cancellation or refund |
| Total Deposit | Total paid via the Make a Deposit button (BillTypeAtomic.INWARD_DEPOSIT), net of any cancellation or refund |
| Credit Settlement | Amount already settled/received from the credit company for this admission |
| Credit Company Due | Amount still outstanding — owed by the credit company but not yet settled |
| Credit Company | Name of the credit company/companies funding this admission, if any |
"Total Final Payment" was previously mislabeled "Total Deposits". Before
issue #23518, this column was
named "Total Deposits" but actually queried INWARD_PAYMENT bills — a
naming bug left over from when "Make a Payment" and "Make a Deposit" were a
single combined feature (see Inward Payment vs Deposit
for the historical split). It has been renamed to correctly describe what it
has always shown; the genuine deposit total ("Total Deposit") and the
outstanding "Credit Company Due" figure are new. "Credit Company Due" is
computed dynamically per credit-company commitment bill
(netTotal − CreditBean.getSettledAmountByCompany(...)), the same
authoritative pattern used by the Inward Credit Company Debtor Report
(credit/inward_credit_company_debtor_report.xhtml) — see
Inward CC Settlement Tracking
— so it stays correct even after a settlement is cancelled.

Right-hand columns of the report: one admission with a genuine deposit (Total Deposit 223,587.97, no credit company), and one insurance-funded admission with an unsettled Credit Company Due of 56,350.10 — patient names and BHT numbers redacted.
Note (issue #23539): refunding or cancelling a deposit/payment previously left "Total Deposit" / "Total Final Payment" unchanged at their full, un-deducted value — a refund creates a separate
_REFUNDbill (own billTypeAtomic, negative amount) rather than altering the original, so the query only matching the single original billTypeAtomic never saw it. Both totals now match the full 4-type family already used elsewhere in the codebase for the same scenario (INWARD_DEPOSIT/INWARD_PAYMENT+_CANCELLATION+_REFUND+_REFUND_CANCELLATION), summed with each row's natural sign, so a refund or cancellation is correctly deducted.
A Rs 5,000 deposit with a Rs 1,000 refund now shows Total Deposit = 4,000.00 (test patient; other rows' patient names redacted).
All five columns get footer grand-totals and are included automatically in Excel/PDF export and Print, the same as every other column on this report.
Use Cases
Internal Accounting Reconciliation
The invoice journal allows the accounts department to verify that all inpatient charges have been captured and to reconcile the billing system totals against the general ledger.
QuickBooks IIF Export
When configured for QuickBooks integration, the invoice journal can generate an IIF-format file that is imported directly into QuickBooks as journal entries. See QuickBooks Integration Overview.
Insurance / Credit Company Verification
Filter by payment method = Credit to view all insurance-billed charges for a period, then match against insurer claim reports.
Filtering Tips
- Use a narrow date range (single day) for daily journal posting.
- Filter by ward to produce department-level revenue summaries.
- Export to Excel before importing to QuickBooks or other accounting tools.
- The results table can be wider than your screen — scroll horizontally within the table to reach every column instead of relying on the browser to shrink them; BHT No, Patient Name, and Credit Company stay on one line so they're always readable.
Related Report
Need just the Professional Fee vs. Other Fee split for each admission, without the full charge-type breakdown? See the Professional & Other Fee Summary Report, a focused three-column view built from the same underlying data.
Technical Reference
| Item | Detail |
|---|---|
| Page | inward/inward_report_invoice_journal.xhtml |
| Controller | InwardInvoiceJournalController |
| Export format | Excel (Apache POI) |
| QB integration | See Finance-QB-Integration-Overview |
