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

  1. Navigate to inward/inward_report_invoice_journal.xhtml.
  2. Set the date range (From Date, To Date).
  3. Select filters as needed:
    • Ward or unit
    • Charge category (All, or specific InwardChargeType)
    • Bill status (Active, Cancelled, or both)
  4. Click Generate.
  5. The report renders in the browser.
  6. 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.

Inpatient Invoice Journal with every configurable column checked

Every column visible — the default state.

Inpatient Invoice Journal with Patient Name unchecked

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:

Inpatient Invoice Journal report with Room Charges reordered to appear immediately after Admission Fee — ahead of Professional Charge, which sits later in the underlying enum but has a higher (later-sorting) Report Order value

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:

Inpatient Invoice Journal for a hospital that merges the two: Professional Charge sits directly between Operation Theatre Charges and Room Charges, with no Assisting Charge column

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.

Inpatient Invoice Journal report showing the Net Total, Total Final Payment, Total Deposit, Credit Settlement, Credit Company Due, and Credit Company columns for two admissions

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 _REFUND bill (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.

Inpatient Invoice Journal report showing Total Deposit correctly reduced after a partial refund

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