Admin Inpatient Price Adjustments - hmislk/hmis GitHub Wiki

Admin — Inpatient Price Adjustments

Four sibling pages, each adjusting prices for one family of items when billed against an inward (BHT) bill.

Page URL Adjusts
Service /inward/inward_price_adjustment_service.xhtml Service items (clinical services, theatre, nursing care)
Investigation /inward/inward_price_adjustment_investigation.xhtml Lab and radiology investigation items
Pharmacy /inward/inward_price_adjustment_pharmacy.xhtml Pharmaceutical items (drugs, consumables)
Store /inward/inward_price_adjustment_store.xhtml Non-pharmacy store items (consumables, supplies)

Reached from Admin — Manage Inpatient ServicesPrice Matrix tab. Controller: InwardPriceAdjustmntController (note: the class name typo is intentional — kept for DB compatibility). Privilege: InwardAdministration.

What price adjustments do

Where the Discount Matrix defines percent off, price adjustments allow absolute or formula-based markups or markdowns to be applied for inward billing.

Common uses:

  • A 10% markup on all inward pharmacy items vs. OPD pharmacy pricing.
  • A flat add-on per service item for inward services to cover ward overheads.
  • A markdown on certain categories for credit-company patients.

The adjustment is consulted at bill-time, after the base price is fetched, and before discount-matrix percentage cuts are applied.

Page layout

Each of the four pages has the same shape:

  • A list of existing adjustment rules.
  • An Add button to create a new rule (preparedAdd() action).
  • A detail form for the selected rule:
    • Item / Item category — which items the rule applies to.
    • Adjustment type — markup percentage, markup amount, fixed price override, etc.
    • Value — the percentage or amount.
    • Effective from / to — date range.
    • Department / Institution / Site scope.
    • Payment method scope where applicable.

How adjustments stack with discount matrix

For an inward pharmacy item priced at 1,000:

  1. Base price = 1,000.
  2. Price adjustment (e.g., +10% markup) → 1,100.
  3. Discount matrix (e.g., 15% off for credit company X) → 935.

Always check the order is what your institution intends. Two adjustments that move in the same direction can compound unexpectedly.

Editing existing adjustments

Adjustments are versioned by the effective-from / to dates. Best practice:

  • Don't edit an old rule in place. Close it with an effective-to date.
  • Add a new rule for the new period with effective-from set to the boundary.

This keeps the historical bill totals reproducible (you can re-derive what an old bill should have been).

Auditing

Each price adjustment carries a created-by / last-edited-by trail. When a bill total looks wrong, the standard diagnosis flow is:

  1. Find the inward bill item.
  2. Look up the base price for the item.
  3. Apply the active price adjustment for the bill date + scope.
  4. Apply the discount matrix entry.
  5. Compare to the billed netValue.

Any mismatch points to either an out-of-window rule, a wrong scope, or a manual override on the bill line.

See also