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 |
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.