GSoC 2024: Validating And Updating OpenMRS Patient Flag Module - Final Presentation

GSoC 2024 : Validating And Updating OpenMRS Patient Flag Module

Overview

The primary objectives of this project were to enhance the performance and modernize the codebase of the existing patient flag module in OpenMRS. Additionally, the project aimed to improve OpenMRS interoperability by introducing FHIR Flag Resource mapping with the OpenMRS flag data model.

Objectives

The primary objectives of the project “Validating and updating the Patient flag module” were:

  • Identify and optimize areas of the module that contribute to performance issues :white_check_mark:
  • add support for java 17 without removing java 8 :white_check_mark:
  • Revamp the module codebase and update to modern OpenMRS standards :white_check_mark:
  • Introduce a new functionality to facilitate the translation of patient flags between the Flag — FHIR v4.0.0 Resource and the OMRS Flag model :white_check_mark:

Contribution

Git-hub repository that I worked on,

Issues and PRs

Weekly Blog Posts

Resources

Final Presentation

Talk Thread

Project Update talk thread : GSOC 24 : Validating and re-writing openmrs patient flag module - project updates

Final evaluation report: GSoC 2024: Validating And Updating OpenMRS Patient Flag Module | by Manojlakshan | Aug, 2024 | Medium

Proposal

Google Doc Link of this Proposal: Manoj Rathnapriya — GSOC Proposal

Future Works

Looking ahead, there are some exciting possibilities for future work on the project. Right now, the main improvement could be integrating OpenMRS flag module with OpenMRS O3 UI. This would enhance the visibility of generated patient flags within the patient dashboard in O3. There is an existing OWA (Open Web App) developed for the patient flag module, which includes functionalities for managing flags. I suggest enhancing this web app to add a section in the patient dashboard, similar to what is done in O2. When the module loads, it should automatically include a section to display flags on the patient dashboard.

For further improvements in the module performance, current module evaluates all flags within the module each time flag evaluation is performed for patients. Doing incremental updates instead of evaluating all patient flags each time the form submission. Only patient related flags that have changed since the last evaluation or those that are relevant to the current context. This can reduce the amount of computation needed during the evaluation process. Additionally, enhancing the flexibility of creating flags by providing an option to create flags without a criteria. This would allow for more general use cases and could be particularly useful when implementing FHIR flag resource mapping to the OpenMRS flag data model.

The current module is not as user-friendly, because it requires users to have knowledge of SQL or Java to create a patient flag. This limitation makes it challenging for non-technical users to interact with the module effectively. By enabling users without technical knowledge to create flags, that will make a positive impact on the OpenMRS patient flag module, offering a better user experience and making the system more accessible to a broader range of users.

Thoughts On GSoC

Participating in GSoC 2024 has been a remarkable learning journey for me. This hands-on experience has been crucial in helping me grow as a developer. I am truly thankful for the guidance and support from my mentors Wikum and Daniel, who have been instrumental in overcoming challenges and expanding my skills. Moving forward, I am excited about the prospect of continuing my contributions to open-source projects.

6 Likes

Awesome work @manojll

2 Likes

This is awesome! Thanks a ton for all your hard work this summer, Monoj!

2 Likes