This project is part of GSOC 2021: Modernizing Administration functions for OpenMRS
In order to meet our goal of migrating our administration functions to our new micro frontend framework, we need to make sure all of our administration functions are accessible through REST APIs. This is a unique opportunity to work at the heart of OpenMRS and with some of the most experienced OpenMRS developers while extending the capabilities of the platform.
The Legacy UI uses an extension point on its admin page to render a list of administration links for installed modules. This list can be seen on the advanced administration screen of the Reference Application (demo.openmrs.org) as everything listed after the "Modules" section in the third (rightmost) column. The "Modules" section is hardcoded onto this admin screen, but everything below it is dynamically generated based on which modules are installed and running in OpenMRS.
Modules implement the AdministrationSectionExt interface (examples: Basic Module and HTML Form Entry) to participate in this list. The goal of this project will be to find a backwards-compatible way to expose this list via the REST API to properly authenticated users (i.e., users who could see this list in the admin page of the Legacy UI should be able to retrieve the list of modules and their links via the REST API). This REST endpoint will be needed to allow a Micro Frontend-based administration application to discover and render the appropriate links.
- Proficiency with Java
- Experience with designing and/or writing REST APIs
- Interest in learning about the Fast Health Interoperability Resources (FHIR) standard
- Create REST endpoints for managing administration functions that are not yet available via REST - COMPLETED
- Wherever possible & appropriate, build FHIR-based endpoints within the FHIR2 module (may not be relevant to this particular project) - COMPLETED
The goal of this project is to be able to render links to administration pages for install modules within a new (REACT-based) administration application. The links will still go to the legacy administration screens for most/all modules (probably best in a new tab to avoid losing context within the single page app running the new administration functions). Refactoring administration screens for the myriad of OpenMRS modules is not within scope for this project.
- OpenMRS 3.0: A Frontend Framework that enables collaboration and better User Experience
- REST Web Services API For Clients
- OpenMRS HL7 FHIR Solutions
- Project proposal
- Project Talk thread
- Project Updates Talk thread
- Wiki page
- Finding a way to support the admin list for installed modules that not only works for existing implementations (backwards compatible), but also works without requiring the Legacy UI module to be installed.