More Metadata Management in AdminUI - GSoC 2017 Project

Overview

  • Primary Mentor: @Daniel Kayiwa

  • Backup Mentor: @Wyclif Luyima

  • Student: @Suthagar Kailayapathy

OpenMRS Legacy Module contains a lot of administrative functionalities which are needed to manage the reference application. Most of this administrative functionalities contain a legacy model and less experience to the users. So OpenMRS Community wanted to migrate those administrative features to the Modern view.  More Metadata Management in AdminUI project is one of those projects which are designed to migrate some of these administrative functionalities to the modern view. In the More  Meta data Management in AdminUI project will focus on this following functionalities while migrating,

  1. Manage modules

  2. System Information

  3. Manage Scheduler

Those features are implemented as Open Web Apps with the modern view to the users.

Project Goals

  1. Migrate the legacy functionalities to the modern open web apps

  2.  

    1. Manage Modules

    2. System Information

    3.  Manage Schedule

  3. Increase the user experience and feasibility of the legacy functionalities

  4.  

    1. Use some better user interfaces instead of legacy model

    2. Change the workflow of the functionalities to increase the usability

    3. Simplify the administrative functionalities for the users.

  5. Extend the usage of the legacy functionalities with REST APIs

  6. Extend the administrative features using existing functionalities

  7. Improve the problems which are identified in the legacy UI modal

  8.  

    1. Implement Module Drag and Drop features

    2. Implement Module Information page

    3. Allow user to directly download the modules from OpenMRS Addons

    4. Increase the System Information view

    5. Implement Real Time Task Execute features

Implementation

Those features are implemented as an Open Web App and included into the SysAdmin Open Wep App. 

Used technologies for the developments, 

  • Front End Development : HTML, CSS, Angular JS, jQuery

  • Back End Development: Java, REST API

Manage Modules

This feature will be used to manage the modules in the OpenMRS reference application. Users can use this implementation for this following functionalities,

Features of the Manage Modules

 

Functionalities

Modification

New/ Existing/ Modified Feature

1. List all the installed Module

New Icons used to indicate the module status

Modified Feature

2. Start the module

No Modifications

Existing Feature

3. Stop the module

Confirmation Pop up will be shown with the dependent modules details to alert the user

Modified Feature

4. Delete/Unload the module

Confirmation Pop up will be shown with the dependent modules details to alert the user

Modified Feature

5. Check updates

Module updates will be checked with OpenMRS AddOns and listed in the new page for
the user selection.

Modified Feature

6. Check one module update

Check the update with OpenMRS AddOns and indicate the update status

New Feature

7. Start All Modules

No Modifications

Existing Feature

8. Add/Upgrade Modules

Implemented Drag and Drop feature

Modified Feature

9. Search Modules

Connected with OpenMRS Addons and user can search the module independently

Modified Feature

10. Search Module Information

User can view the detailed information about the searched module

New Feature

11. Module Information View

Used to display the module information with required modules, aware of modules,
and depend on module details

New Feature

12. View not installed module information

Connected with OpenMRS add-ons and indicate the user about the installation features.

New Feature

 

System Information

This feature will be used to display the System information about the OpenMRS server and the system. Users can use this feature to get this following information,

  1. OpenMRS Information

  2. Operating System Information

  3. Java Runtime Information

  4. User Information

  5. Memory Information

  6. Database Information

  7. Module Information

New Features

  1. Divided the existing System Information under different set of categories to increase the usability

  2. Used some new kind of Icons to illustrate the Information Category properly

  3. Modified Module Information Section with some new ideas.

Manage Scheduler

This feature will be used to manage the tasks in the OpenMRS reference application. Users can use this implementation for this following functionalities,

Features of the Manage Modules

 

Functionalities

Modification

New/Existing/Modified Feature

1.List all the installed Module

New Icons and UI used to indicate the module status

Modified Feature

2. Schedule Task

 No Modifications

Existing Feature

3. Shutdown Task

Confirmation Pop up will be shown to alert the user

Modified Feature

4. Reschedule Task

It will reschedule the existing task in the system

New Feature

5. Delete Task

Confirmation Pop up will be shown to alert the user

Modified Feature

6. Reschedule All Tasks

It will reschedule all the tasks in the system

New Feature

7. Shutdown All Tasks

It will shut down all the tasks in the system

New Feature

8. Startup Tasks

It will reschedule all the tasks in the system

New Feature

9. Refresh Tasks

It will refresh the list of registered tasks

Existing Feature

10. Add New Task Definition

Used to create new Task Definition

Implemented new UI for this functionality

Modified Feature

11. Edit Task Definition

Used to edit existing Task Definition

Implemented new UI for this functionality

Modified Feature

 

Resources

OpenMRS talk discussions links, (You can get more information about the projects development workflow using those talk threads)

  1. GSoC 2017 - More Metadata Management in AdminUI

  2. REST Implementation for Scheduler in Legacy UI Module 

  3. Manage Scheduler Implementation on SysAdmin OWA

  4. New REST Implementation for SystemInformation

  5. System Information Page Interface Modification

Created and worked tickets during the project development

  1. OWA-21 : Implement Module Management Functionalities in OWA

  2. OWA-22 : Implement System Information functionality in OWA

  3. OWA-24 : OWA-22 / Modify System Info Page

  4. OWA-25 : OWA-21 / Implement Module Details view page

  5. OWA-26 : OWA-21 / Integrate with OpenMRS Add-Ons to get module updates

  6. OWA-27 : Implement Manage Scheduler functionalities in OWA

  7. RESTWS-673 : Implement REST services to Manage Scheduler functionalities.

  8. RESTWS-674 : Include More Test cases for ModuleController1_8 in REST Module

  9. OWA-31 : OWA-21 Implement Drag and Drop module upload feature

Created tickets for the issues by me during the development period

  1. AO-8 :Allow cross-origin calls to our REST API

  2. AO-9 :REST endpoint for getting a module by it's modulePackage value

  3. PDMO-1 :Implement Encounters functionalities in OWA

Weekly Blog posts during the development period




Github Code base: https://github.com/suthagar23/openmrs-owa-sysadmin