GSoC 2022: OCL Subscription Module for OpenMRS 3

Primary mentor

Ian Bacher                            

Backup mentor

Assigned to

Piumal Rathnayake 

Abstract

OCL Subscription Module is one of the most valuable modules used with OpenMRS to make the implementations easier. The existing OCL subscription module is built targetting the OpenMRS RefApp 2.x, and its frontend runs as an OpenWebApp (with the help of the OWA Module). When it comes to OpenMRS 3.x, the OWA module is deprecated but it is still used due to the unavailability of the micro frontend of the OCL Subscription Module. This project is focused on creating a micro frontend for the above-mentioned OpenMRS OCL Module (OCL Subscription Module) admin tool. With that modern frontend technologies, it enables OpenMRS users and developers around the world to share more frontend functionalities, reduce duplicated effort, and have a better user experience.

Objectives

  • To avail the OCL Module functionality as a micro frontend
    • Ability to manage(add/edit/remove) a subscription ✅

    • Ability to Import Concepts using the saved subscription ✅

    • Ability to Import Concepts using a zip file ✅

    • Ability to see the list of previous imports ✅

    • Ability to see the details of a selected previous import ✅

Requirements

By analysing the stakeholders and observing the existing module, the following functional requirements were gathered and prioritized.

#

Requirement

Priority Level

Status

FR-01

Should be able to add and save a subscription

Must-Have

Completed

FR-02

Should be able to edit the saved subscription

Must-Have

Completed

FR-03

Should be able to remove the saved subscription

Must-Have

Completed

FR-04

Should be able to start an import from the subscription 

Must-Have

Completed

FR-05

Should be able to start an import from a file

Must-Have

Completed

FR-06

Should be able to see the list of previous imports

Must-Have

Completed

FR-07

Should be able to see the details of a single previous import

Must-Have

Completed

FR-08

Should be able to see the status of the running import

Could Have

-

FR-09

Should be able to schedule automatic imports

Could Have

-

FR-10

Should be able to set up multiple subscriptions

Could Have

-

FR-11

Should be able to run multiple imports concurrently

Could Have

-

FR-12

Should be able to check the available updates before updating

Will Not Have

-

The requirements with the highest priority (FR-01 to FR-07) were completed during the project. FR-08 to FR-12 can be added to the module as further improvements.

Required skills

  • React
  • Javascript
  • Typescript

Project Rating and length

Medium

175 hours

Documentation

Weekly Reports

  1. Working with OCL Subscriptions — GSoC 2022 Week 1 | by Piumal Rathnayake | Medium
  2. Completing the OCL Subscription Component — GSoC 2022 Week 2 | by Piumal Rathnayake | Medium
  3. A Component for Importing Concepts — GSoC 2022 Week 3 | by Piumal Rathnayake | Medium
  4. Configuring the Unit Tests — GSoC 2022 Week 4 | by Piumal Rathnayake | Jul, 2022 | Medium
  5. More testing — GSoC 2022 Week 5 | by Piumal Rathnayake | Jul, 2022 | Medium
  6. Designing the Previous Imports Component — GSoC 2022 Week 6 | by Piumal Rathnayake | Jul, 2022 | Medium
  7. A Component for Viewing Previous OCL Imports — GSoC 2022 Week 7 | by Piumal Rathnayake | Aug, 2022 | Medium
  8. Deploying OCL Subscription Module — GSoC 2022 Week 8 | by Piumal Rathnayake | Aug, 2022 | Medium
  9. Upgrading the Module Dependencies — GSoC 2022 Week 9 | by Piumal Rathnayake | Aug, 2022 | Medium
  10. Fixing the Broken Components — GSoC 2022 Week 10 | by Piumal Rathnayake | Aug, 2022 | Medium | Medium
  11. Minor Issues — GSoC 2022 Week 11 | by Piumal Rathnayake | Aug, 2022 | Medium

Final Presentation

youtu.be

Future Work

  • Automation/Scheduling Support
  • Supporting multiple subscriptions

Resources

https://openconceptlab.org/openmrs-dictionary-manager/#:~:text=OCL%20provides%20an%20easy%20way,manage%20and%20distribute%20these%20dictionaries.

OpenMRS 3.0: A Frontend Framework that enables collaboration and better User Experience

https://talk.openmrs.org/t/how-to-get-started-with-micro-front-end-newbie/35258

Jira Epic: https://issues.openmrs.org/browse/O3-1323

Project proposal: https://docs.google.com/document/d/1zJj2v4Y0p-ulrTCjRrFvqXdeKQqaE1lTbSG3iqfZuUA/edit?usp=sharing