Admin Department Level Configuration - hmislk/hmis GitHub Wiki
Department-Level Configuration
Overview
Department-level configuration options apply to a single department within an institution. They provide the most granular control in the configuration hierarchy, overriding both institution and application defaults. This allows individual departments to have unique behaviours — for example, enabling a feature in the ICU but not in general wards.
When to Use
- Enabling a feature for a specific department only (e.g. a specialist billing workflow)
- Setting department-specific display or operational preferences
- Overriding an institution default for one particular counter or ward
Navigating to Department Options
- Click Administration → Manage Institutions
- Select Department Options from the institution management index
Required privilege: AdminInstitutions
The Department Options Screen
- Select the Department from the dropdown (filtered to your logged-in departments)
- The table shows all ConfigOption records scoped to that department
- Edit values inline or add new department-specific options
- Save changes
Department Preferences
A companion page, Department Preferences, provides a simplified user interface for commonly used department-level settings (printer type, default views, etc.) without requiring direct ConfigOption editing.
Typical Department Configuration Keys
| Key | Effect |
|---|---|
Printer type (e.g. Bill Printer Type) |
Controls whether bills print on A4, POS, or 5×5 paper for this department |
| Feature-specific toggles | Enable/disable optional features for this department's workflows |
The exact keys depend on which modules are configured for the department. System administrators can review all available keys in the Application Options screen.
Scope Priority Reminder
Department options sit at the top of the override hierarchy:
- USER scope (highest)
- DEPARTMENT scope ← you are configuring this level
- INSTITUTION scope
- APPLICATION scope (lowest)
Technical Notes (Admin/Developer)
Department-scoped options are stored as ConfigOption entities with optionScope = OptionScope.DEPARTMENT and a non-null department field. configOptionController.department holds the selected department. Access is via configOptionController.getBooleanValueByKey(key, department).