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

  1. Click AdministrationManage Institutions
  2. Select Institution Options from the institution management index

Required privilege: AdminInstitutions

The Institution Options Screen

The screen allows you to:

  1. Select the Institution from the dropdown
  2. View and edit ConfigOption records scoped to that institution
  3. Add new institution-specific options

Adding a New Institution Option

  1. Select the institution
  2. Click to add a new option (or find an existing one to edit)
  3. Enter the Key name, Value Type, and Value
  4. 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:

  1. Check for a USER-scoped option for the current user → use it
  2. Check for a DEPARTMENT-scoped option for the current department → use it
  3. Check for an INSTITUTION-scoped option for the current institution → use it
  4. 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.

Related Features