Admin Institution Level Configuration - hmislk/hmis GitHub Wiki
Institution-Level Configuration
Overview
Institution-level configuration options apply to one specific institution. They allow you to customise system behaviour for a particular hospital or branch without affecting other institutions. Institution options take priority over application-level defaults for that institution.
When to Use
- Setting an institution-specific feature toggle (e.g. enable a feature for one branch only)
- Configuring institution-specific billing rules
- Setting preferences that differ between your main hospital and branches
Navigating to Institution Options
- Click Administration → Manage Institutions
- Select Institution Options from the institution management index
Required privilege: AdminInstitutions
The Institution Options Screen
The screen allows you to:
- Select the Institution from the dropdown
- View and edit ConfigOption records scoped to that institution
- Add new institution-specific options
Adding a New Institution Option
- Select the institution
- Click to add a new option (or find an existing one to edit)
- Enter the Key name, Value Type, and Value
- Save
Institution Preferences
A companion page, Institution Preferences, provides a simplified interface for commonly used institution-level settings (display preferences, module visibility, etc.) without requiring direct ConfigOption editing.
Scope Priority
When the system resolves a configuration key:
- Check for a USER-scoped option for the current user → use it
- Check for a DEPARTMENT-scoped option for the current department → use it
- Check for an INSTITUTION-scoped option for the current institution → use it
- Fall back to the APPLICATION-scoped option → use it
So institution options override application defaults but are overridden by department options.
Technical Notes (Admin/Developer)
Institution-scoped options are stored as ConfigOption entities with optionScope = OptionScope.INSTITUTION and a non-null institution field. configOptionController handles CRUD. Access is via configOptionApplicationController.getBooleanValueByKey(key, institution) or similar overloads.