GSoC 2022: Rebuild OpenMRS Cohort Builder - Final Evaluation

GSoC 2022: Rebuild OpenMRS Cohort Builder

Overview

  • The Cohort Builder is a tool in OpenMRS 1.0 in the Reporting Compatibility module that lets the user perform ad-hoc queries for patients with defined characteristics, and combines multiple queries into more complex ones

Objective

Rebuild the same functionality in OpenMRS 1.0 Cohort Builder in OpenMR 3.0 which includes the following,

  1. Searching by Observations/Concepts :white_check_mark:
  2. Searching by demographics :white_check_mark:
  3. Searching by encounters :white_check_mark:
  4. Searching by location :white_check_mark:
  5. Searching by program enrollments :white_check_mark:
  6. Searching by Drug Order :white_check_mark:
  7. Combining searches :white_check_mark:

Apart from this, a save search feature is required :white_check_mark:

Contributions

I’ve worked on three OpenMRS repositories:

Tickets

Issue Number Issue Link Pull Request Status
O3-1311 [O3-1311] Setting up the project - OpenMRS Issues O3-1311: Initial setup of the project Merged
O3-1300 [O3-1028] Add support to display value Codeable Concept for test results - OpenMRS Issues O3-1300: Implement search by concept component Merged
O3-1385 [O3-1385] Write unit tests for test the search by concepts - OpenMRS Issues O3-1385: Write unit tests to test the components Merged
O3-1302 [O3-1302] Implement the Search History component - OpenMRS Issues O3-1302: Implement the Search History component Merged
O3-1394 [O3-1394] Update the UI according to the new design - OpenMRS Issues O3-1394: Update the UI according to the new design Merged
O3-1303 [O3-1303] Implementation of the search by demographics component - OpenMRS Issues O3-1303: Implement the search by demographics and person attributes feature Merged
O3-1304 [O3-1304] Implementation of the search by encounters component - OpenMRS Issues O3-1304: Implement the search by encounters and search by location feature Merged
O3-1417 [O3-1417] Use SWR hook to make the API calls - OpenMRS Issues O3-1417: Use SWR for data fetching Merged
O3-1305 [O3-1305] Implementation of the search by program enrolments component - OpenMRS Issues O3-1305: Implement the search by enrollments feature Merged
O3-1427 [O3-1427] Update the github workflow to deploy the changes - OpenMRS Issues O3-1427: Add the deploy job to the workflow Merged
REPORT-890 [REPORT-890] Add drug order filter support for the adhoc query - OpenMRS Issues REPORT-890: Add the missing api module dependency Merged
O3-1309 [O3-1309] Implementation of the saved component - OpenMRS Issues O3-1309: Implement the search definitions feature Merged
O3-1443 [O3-1443] Cohort builder is not responsive on lower resolutions - OpenMRS Issues O3-1443: Improve the tablet and small desktop layout Merged
O3-1306 [O3-1306] Implementation of the search by drug order component - OpenMRS Issues O3-1306: Implement the search by drug order feature Merged
O3-1445 [O3-1445] Implement the search by composition feature - OpenMRS Issues O3-1445: Add search composition feature Merged
O3-1471 [O3-1471] Fix the broken user interfaces - OpenMRS Issues O3-1471: Add css to fix the broken UI layout Merged
O3-1472 [O3-1472] Fix the tests that are being skipped due to the migration - OpenMRS Issues O3-1472: Fix the tests that were skipped due to the migration Merged
O3-1482 [O3-1482] Wrap the global selectors with a separate class - OpenMRS Issues O3-1482: Wrap the global selectors with a custom class Merged
REPORT-890 [REPORT-890] Add drug order filter support for the adhoc query - OpenMRS Issues REPORT-890: Update the openMRS version for the api 1.10 Merged

Weekly Blog Posts

Video Presentation

GSoC 2022 - Rebuild OpenMRS Cohort Builder - Final Presentation

Resources

Future Works

The main requirement of this project is covered. Cohort Builder search criteria can be extended more for example Search by allergies, extending these search criteria gives more options to the user when it comes to creating cohorts.

The code base also can have more test coverage specially E2E testing can be added. Currently, there are only unit and integration tests. I’m looking forward create E2E tests as well.

Thoughts on GSoC

The last 12 weeks were life-changing for me. It was such a great opportunity to work with OpenMRS where I can leave a positive impact on the world. I really liked the architecture of OpenMRS 3.0 and it’s really easy to get started on. The OpenMRS community is also very supportive which includes different people from different parts of the world.

I would like to thank my mentors: Jayasanka Weerasinghe and Brandon Istenenes, who helped me to overcome the blockers I had and reviewed my pull requests on time. Once again I would like to thank OpenMRS and Google for giving me this opportunity. This is a dream come true. Also special thanks to Jayasanka Weerasinghe for supporting me from the very beginning to getting selected and also throughout the project. I’m looking forward to continuing my contributions to OpenMRS.

6 Likes

Congratulations @anjisvj ! Wish you all the best for your upcoming challenges :tada::tada::clap:

1 Like

@anjisvj Congratulations upon this great achievement. Hope to see you more often in the community!

1 Like

Congratulations and well done @anjisvj .

I want to be very clear for the record: @jayasanka did all the work of mentoring Anjula, and I think he did a great job. I was only the mentor on paper. All credit to Anjula and Jayasanka for their well-executed work.

1 Like

I really like this work. Congratulations to you indeed.

1 Like

Thank you so much! @rukundob451