Wiki Spaces
Documentation
Projects
Resources
Get Help from Others
Q&A: Ask OpenMRS
Discussion: OpenMRS Talk
Real-Time: IRC Chat | Slack
OpenMRS has a collection of administration pages used to manage system settings, administer data, manage modules, etc (System Administration > Advanced Administration in the Reference Application). Remarkably, these OpenMRS administration pages haven’t changed in over 15 years. On October 5, 2005, Ben Wolfe committed administration pages using Java Server Pages (JSP) that are still in 2021 being used in nearly every instance or distribution of OpenMRS, in most cases through the Legacy UI module that allows the original administration pages to run within OpenMRS 2.x.
The OpenMRS community needs to move away from server-side rendering of web pages (like JSPs) and toward contemporary development of client-side applications leveraging data via web services (FHIR whenever possible; otherwise our bespoke REST API). Now, with the work of the Micro Frontend Squad, we have a framework in which to build contemporary administration functions.
This is the perfect time to rebuild our administration functions:
These functions provide the fundamental tools to manage users within OpenMRS. See System Administration > Manage Accounts in the Reference Application.
Manage Users | List and search users, add/edit user form
Extra credit
|
Manage Roles | List, search, add, edit, and delete roles. Prevent system roles from being edited/deleted. Extra credit:
|
Manage Privileges | List, search, add, edit, and delete privileges. Prevent system privileges from being edit/deleted. |
Manage Alerts | Create system-wide messages. |
These functions provide administrative functions for patient records within OpenMRS. Ideally, wherever possible, these functions would be performed via FHIR API calls.
Manage Patients | List and search patients, add/edit patient form.
Extra credit:
|
Find Patients to Merge | Search and list potential patients to merge.
Extra credit:
|
Manage Identifier Types | List/search and add/edit form for patient identifier types. Ability to retire or purge a patient identifier type.
Extra credit:
|
Manage Patient Identifier Sources | List/search, add, and configure patient identifier sources.
|
Auto-Generation Options | Manage auto-generation features for identifier types.
|
View Log Entries | Search patient identifier generation logs.
|
These functions provide administration for Person entries and associated metadata within OpenMRS. In OpenMRS, a Person is used to store demographic and other person-specific information for Patients, Users, Providers, and people related to patients (children, relatives, caretakers, etc.)
Manage Persons | List/search, add/edit Person form, and delete persons. |
Manage Relationship Types | List/search, add, edit, retire, and delete Relationship Types. Relationship Types define the types of relationships between Persons. Also manage how relationship types are show to the user (which types are shown by default and in which order).
|
Manage Person Attribute Types | List/search, add, edit, retire, and delete Person Attributes. These are local (implementation-specific) extensions of a Person. Also control how person attributes are displayed to users.
|
Provides functions for managing visits resources within OpenMRS as well as configuring how visits are used. A visit can contain 0-to-n encounters.
Manage Visit Types | List/search, add, edit, retire, and delete visit types. |
Manage Visit Attribute Types | List/search, add, edit, retire, and delete visit attribute types. |
Configure Visits | Control visit behavior within the system (e.g., auto-closing of visits and how encounters are assigned to a visit).
|
Provides functions for managing clinical encounters within OpenMRS.
Manage Encounters | Allows the creation and editing of clinical encounters. These are relatively complex resources comprising encounter details (patient, location, date, type, associated visit), provider(s) involved in the encounter, and any observations collected within the encounter. There are several types of observations, so making an interface to view and/or edit any observations is non-trivial. |
Manage Encounter Types | List/search, add, edit, retire, and delete encounter types.
|
Manage Encounter Roles | List/search, add, edit, retire, and delete encounter roles.
|
Provides functions for managing Provider accounts within OpenMRS. Provider accounts are used to record who provided clinical care (e.g., within encounters). While provider accounts often refer to users within the system (people who are logging into OpenMRS like doctors & nurses), they can refer to people who are not users of the system (have no User account) and even to providers from other institutions (in which case they may not refer to a Person). There is also a Provider Management module that implements some of these features.
Manage Providers | List/search, add, edit, retire, and delete provider accounts. Providers may optionally be linked to a Person.
|
Manage Provider Attribute Types | List/search, add, edit, retire, and delete provider attribute types.
|
Provides functions to manage location metadata within OpenMRS.
Manage Locations | List/search, add, edit, retire, and delete locations. This includes tagging locations and the ability to create a hierarchy (parent/child relationships between locations).
|
Manage Location Tags | List/search, add, edit, retire, and delete location tags.
|
View Location Hierarchy | Configure how locations are displayed in the application (e.g., as Tree or Selector).
|
Manage Location Attribute Types | List/search, add, edit, retire, and delete location attribute types. |
Manage Address Template | XML editor textarea |
Provides features for system administration of clinical observations collected within OpenMRS.
Manage Observations | Find observations by person & concept OR by encounter, then redirects to Encounter management for editing.
|
Provides the functions to manage scheduled (background) processes within OpenMRS. Implemented in System Administration > Manage Scheduler as well as within the Advanced Administration pages.
Manage Scheduler | List/search, add, edit, start, stop, run, and delete scheduled tasks. |
Provides functions to manage programs within OpenMRS. Programs represent treatments programs or studies. A program can have associated workflows and each workflow can have states. Patients placed in a program can be assigned any state within a workflow in that program. This allows, for example, to identify all patients in the "HIV Program" in the "On active treatment" state. Programs, workflows, and states are all concepts.
Need to confirm the extent to which these functions are actively used and which features are (still) important for implementations
Manage Program | List/search, add/edit program form, and ability to retire programs. Programs can have one or more workflows and each workflow can have states a list of valid states within that workflow.
|
Manage Triggered State Conversions | Define concepts (presumably an observation) that should automatically trigger conversion of a patient from one state to another within a workflow.
|
View Concept Dictionary | |
Manage Concept Drugs | |
Manage Proposed Concepts | |
Manage Concept Classes | |
Manage Concept Datatypes | |
Manage Concept Sources | |
Manage Concept Stop Word | |
Manage Reference Terms | |
Manage Concept Attribute Types |
Manage Forms | |
Manage Fields | |
Manage Field Types | |
Merge Duplicate Fields |
Manage HL7 Sources | |
Manage Queued Messages | |
Manage Held Messages | |
Manage HL7 Errors | |
Manage HL7 Archives | |
Migrate HL7 Archives |
Provides some key miscellaneous administration functions for OpenMRS, including access to fundamental configuration settings.
Set Implementation Id | |
System Information | |
View Quick Reports | |
Settings | |
Advanced Settings | |
View Server Log | |
View Database Changes | |
Manage Locales and Themes | |
View Logged In Users | |
Search Index |
Provides functions to install, start & stop, configure, and remove OpenMRS modules. Implemented in System Administration > Manage Modules as well as within the Advanced Administration pages. These features should respect the runtime setting module.allow_upload=false
to disable module management from the web interface.
Manage Modules | List/search, install, start, stop, and remove modules. |
Module Properties | Configuration settings for modules. |
Modules can add their own administration section. The Legacy UI module renders each as a new section (header and links) in the third column. Admin 3.0 should render these as additional sections as well with links the same as provided by the Legacy UI module for backwards compatibility.
There are some popular modules that we would want to make sure are supported such as: