Admin Base Fees - hmislk/hmis GitHub Wiki
Base Fees — Setting and Editing
Overview
Base fees are the default prices for all services and investigations. They apply everywhere a more specific fee (department or site) has not been configured. This is where you set the standard price for a service across the entire hospital.
When to Use
- Setting the price for a newly created service
- Updating a fee as part of an annual price revision
- Adding fee components (e.g. a doctor fee and hospital fee) to a service
- Reviewing the full fee structure for a service
Navigating to Base Fee Management
- Click Administration → Manage Pricing
- Select Manage Base Fees from the pricing index
Required privilege: AdminPrices
The Manage Base Fees Screen
The screen has two sections:
Top section — Item selector:
- Select Item autocomplete — search for the service or investigation by name. The dropdown shows Code, Type, Name, Institution, Department, and Total.
- After selecting an item, the screen shows:
- Item Code — the item's code
- Total Fee — the current sum of all fee components
- Total Fee for Foreigners — the sum of foreigner-rate fee components
Bottom section — Current Fees table: A table of all existing fee components for the selected item, with editable fields.
Viewing Existing Fees
After selecting an item, the Current Fees table appears with columns:
- No — row number
- Name — fee component name (editable inline)
- Type — fee type label
- Discount Allowed — toggle button
- Service Charge Allowed — toggle button
- For — institution or department if the fee is institution/department-specific
- Fee / Foreigner Fee — amounts (editable inline)
Click Update to save any inline changes.
Adding a New Fee Component
- Select the item using the autocomplete
- Click Add New Fee (green button) — a dialog opens
- Fill in the Adding a new Fee dialog:
| Field | Description |
|---|---|
| Fee Name | A descriptive label (e.g. "Hospital Fee", "Doctor Fee", "Consultation") |
| Fee Type | The category — select from the full FeeType list |
| Discounts Allowed | Toggle: can discounts be applied to this component? |
| Service Charge Allowed | Toggle: can a margin/service charge be added to this component? |
| Fee | The amount in the local currency |
| Foreigner Fee | The fee for foreign patients (leave 0 to use the regular fee) |
-
Depending on the Fee Type selected, additional fields appear:
- OtherInstitution / OwnInstitution / Referral: Institution and Department selector (see Fees by Speciality and Staff Member)
- Staff: Speciality and Doctor/Staff selector (see Fees by Speciality and Staff Member)
-
Click Save in the dialog header
Bulk Fee Editing
For updating fees across many items at once:
- Navigate to Manage Base Fees Bulk from the pricing index
- This provides a tabular interface for editing multiple items' fees simultaneously
Downloading and Uploading Fees
- Download Base Item Fees — exports all base fees to a spreadsheet
- Item Fee Upload to Replace — replaces all base fees from a spreadsheet
- Upload Changed Item Fees — updates only fees that have changed
Technical Notes (Admin/Developer)
Base fees are stored as Fee entities linked to Item via item.fees. The feeType field maps to the FeeType enum. The fee field holds the local amount; ffee (foreigner fee) defaults to fee if set to 0 via the getter. After adding or updating fees, item.total and item.totalForForeigner are recalculated automatically. The itemFeeManager.addNewFee() method handles creation; itemFeeManager.updateFee() handles inline saves.