Department Scoped Preferences - hmislk/hmis GitHub Wiki
Department Preferences
Overview
Department Preferences allow individual departments to customize HMIS features without affecting other departments or the entire institution. Each department can configure settings specific to their workflows and operational needs.
Key Concept: Instead of a one-size-fits-all approach, departments with different requirements (pharmacy, nursing, finance, etc.) can enable or disable features independently.
Who Uses Department Preferences?
- Department Heads/Administrators — Configure preferences for their department
- Department Staff — Benefit from customized workflows configured by their department head
- System Administrators — Understand scope of department preferences vs. application-wide settings
How Are They Different from Application-Wide Config?
| Aspect | Application Settings | Department Preferences |
|---|---|---|
| Scope | Applies to entire institution | Applies only to one department |
| Managed by | System administrators (Admin privilege) | Department head/admin (Admin privilege) |
| Access | /admin/application_configuration |
/admin/department_preferences |
| Use Case | Global rules, email gateways, system behavior | Department-specific workflows, feature toggles |
Available Department Preferences
Pharmacy Department
Allow Disposal Issue to Same Department
Setting Key: Pharmacy - Allow Issue to Same Department
Default: Disabled (false)
What it does:
- When enabled, staff in a pharmacy can create disposal issues within their own department
- When disabled (default), staff can only create disposal issues to other departments
Why use this?
- Some departments need to internally track disposal/waste management
- Other departments prefer strict inter-departmental transfers for audit trails
Related: See Pharmacy Disposal Issue — Same Department
Managing Department Preferences
See Department Preferences — Administrator Guide for step-by-step instructions on accessing and modifying preferences.
Technical Details
Storage: Department preferences are stored in the ConfigOption table with:
scope=DEPARTMENTdepartment= the department entity referenceoptionKey= preference name (e.g., "Pharmacy - Allow Issue to Same Department")optionValue= "true" or "false"
Code: Preferences are queried and managed via ConfigOptionApplicationController methods:
getBooleanValueByKeyForDepartment(key, department, defaultValue)setBooleanValueByKeyForDepartment(key, department, value)
Access Control: Modifying department preferences requires the Admin privilege on your user account.
Future Preferences
This framework supports adding new department-specific preferences as needed:
- Finance department — payment method restrictions
- Nursing — specific admission workflows
- OPD — consultation room assignments
Submit requests to your system administrator for new preferences.
See Also: