Admin Application Level Configuration - hmislk/hmis GitHub Wiki
Application-Level Configuration
Overview
Application-level configuration options apply to the entire HMIS installation — every institution, every department, and every user. These are the global settings that control system-wide behaviour such as feature toggles, bill numbering rules, and integration credentials.
When to Use
- Enabling or disabling a system-wide feature for all users
- Changing global billing rules (e.g. bill number format)
- Setting integration credentials (SMS gateway, API keys)
- Reviewing all active configuration keys to diagnose unexpected behaviour
Navigating to Application Options
- Click Administration → Manage Institutions
- Select Application Options from the institution management index
Required privilege: AdminInstitutions (Admin privilege recommended)
The Application Options Screen
The screen shows all application-level ConfigOption records in a searchable, filterable table.
Table Columns
| Column | Description |
|---|---|
| Key | The configuration key name — sort/filter to find a specific key |
| Value Type | Boolean, String, Decimal, Short Text, Long Text |
| Value | The current value |
| Description | What this option controls |
Actions (Header Buttons)
| Button | What It Does |
|---|---|
| List Application Options | Reloads and displays all application options |
| Reload Config | Forces all active sessions to use the latest config values — use after changes |
| Export Selected | Downloads selected options as a file (for backup or environment migration) |
| Import | Imports a previously exported config file |
| Delete Selected | Deletes the selected option records (use with care) |
| Excel | Exports the visible table to Excel |
| Duplicates | Navigates to a screen that identifies duplicate option keys |
Editing an Option
- Click a row in the table to select it
- An edit form appears (inline or in the right panel depending on UI version)
- Update the value
- Save
Common Application-Level Configuration Keys
| Key | Type | Purpose |
|---|---|---|
Allow admin to force password change |
Boolean | Enables the "Force Password Reset" button in user management |
Enable filtering logged users name on the View Users Page |
Boolean | Shows the Name column with filter in the user list |
Bill Number Suffix for OPD_BILL_WITH_PAYMENT |
String | Suffix appended to individual OPD bill numbers |
Bill Number Suffix for OPD_BATCH_BILL_WITH_PAYMENT |
String | Suffix appended to OPD batch bill numbers |
Inward Admission - Mandatory Fields Enabled |
Boolean | Requires completion of mandatory fields during inpatient admission |
Inward Admission - Show Claimable Field |
Boolean | Shows/hides the Claimable field on admission forms |
DATABASE_DDL_VERSION |
Short Text | Tracks the applied database schema version |
Block Inward Final Bill When Category Adjusted Total Differs From Actual Total |
Boolean | Default true. When true, Settle on the Final Bill is blocked if the sum of category totals doesn't match the sum of adjusted totals |
Block Inward Final Bill When Credit Allocation Total Differs From Net Due Amount |
Boolean | Default true. When true, Settle on the Final Bill is blocked if the credit company + patient allocation rows don't sum to the net due amount |
Inward Final Bill - Allow Editing Adjusted Total For All Charge Types |
Boolean | Default false. When true, the Adjusted Total field is editable for every charge category, including the ones normally locked (Room, MO, Maintain, Nursing, Linen, Medical Care ICU, Administration, and Professional Charges) |
After Making Changes
Always click Reload Config after changing application options. The reload forces the ConfigOptionApplicationController (application-scoped bean) to re-read all values from the database. Without a reload, active sessions may continue using cached values until they restart.
Technical Notes (Admin/Developer)
Application options are stored as ConfigOption entities with optionScope = OptionScope.APPLICATION and null institution/department/user. They are loaded into the ConfigOptionApplicationController (ApplicationScoped) on startup and on loadApplicationOptions(). Access is via configOptionApplicationController.getBooleanValueByKey(key), getShortTextValueByKey(key), etc.
Related Features
- Configuration Overview
- Institution-Level Configuration
- Department-Level Configuration
- Password and Login Security Configuration — all keys controlling password strength, expiration, reuse, forced reset, and session timeout
- Mark Foreigner / Mark Local Buttons Configuration — controls visibility of the Mark Foreigner / Mark Local buttons across OPD, Channel Booking, Clinic Sessions, and Inward Service Bill screens
- Admin — Separate Bill Number Serial Per Admission Type — splits Make a Payment, Make a Deposit, and Post Final Payment bill numbers into a separate serial per Admission Type (e.g. BHT vs OPD Card)