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 Services → Price 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:
- Base price = 1,000.
- Price adjustment (e.g., +10% markup) → 1,100.
- 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:
- Find the inward bill item.
- Look up the base price for the item.
- Apply the active price adjustment for the bill date + scope.
- Apply the discount matrix entry.
- 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.