Admin Site Level Fees - hmislk/hmis GitHub Wiki
Site-Level Fees
Overview
Site fees allow you to set different prices for the same service at different physical locations (sites) within an institution. For example, the main hospital site might charge Rs. 2,000 for a consultation, while the satellite clinic site charges Rs. 1,500 for the same service. Site fees take priority over base fees but are overridden by department fees.
When to Use
- A hospital operates across multiple buildings and prices vary by location
- A specific site has a pricing agreement that differs from the main institution
- You need to set temporary site-specific rates during a promotional period
Navigating to Site Fee Management
- Click Administration → Manage Pricing
- Select Manage Site Fees from the pricing index
Required privilege: AdminPrices
The Manage Site Fees Screen
Filters:
- Select Site — autocomplete to choose the physical site
- Select Item — autocomplete to choose the service or investigation
After selecting both, the screen shows:
- Local Fee — the current site-specific fee for local patients
- Foreigner Fee — the current site-specific fee for foreign patients
The fees table below shows all fee components configured for this site + item combination.
Adding a Site Fee
- Select the Site from the autocomplete
- Select the Item from the autocomplete
- Click Fill Existing Fees (if available) to see any existing fees
- Click Add New Fee to open the fee dialog
- Configure the fee components (same fields as base fees — Name, Fee Type, amounts, discount/margin flags)
- Click Save
Bulk Upload of Site Fees
For setting site fees across many items at once:
- Upload to Add Site Fees by Item Code — adds new site fees from a spreadsheet
- Upload to Replace Site Fees by Item Code — replaces all site fees with the spreadsheet data
- Download Item Fees for Sites — exports current site fees to a spreadsheet
Fee Resolution Reminder
Site fees are the middle layer:
- If a department fee exists → use it (department wins over site)
- If a site fee exists → use it (site wins over base)
- Otherwise → use the base fee
Technical Notes (Admin/Developer)
Site fees are FeeValue entities linking Item to Institution (where the institution is a Site-type entity). itemFeeManager.forSite holds the selected site. The updateItemAndSiteFees() listener loads existing fee values; addNewForSiteFee() creates records. feeValueController.getFeeForLocals(item, site) retrieves the current effective local fee for display.