GSoC 2022: Redo Legacy UI Cohort Builder
Primary mentor | |
Backup mentor | |
Assigned to | Anjula Samarasinghe |
Abstract
Re-do legacy UI cohort builder in 3. x. In addition to supporting all current functionality, would also like to be able to save search history.
Required Skills
React
JavaScript
Typescript
Jest
Project Rating and length
Medium
175 hours
Objectives
- OpenMRS 1.0 has a wonderful cohort builder tool that allows a user to create a complex set of criteria to create cohorts of patients with particular characteristics
- We would rebuild this functionality in OpenMR3.0
- This will entail
- creating a REST API on the backend to support the operations of the cohort
- creating a frontend, essentially identical to the current version in 1.0
Documentation
Detailed Project Report
The Cohort Builder is a tool in OpenMRS 3.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. The Cohort Builder 3.0 have the following features.
Search for patients using concepts
Searching by observations gives the user the option to search via concepts or observations existing in the system. This component has an input to search and a to search including verbose or without verbose.
Ability to view the search history
This is where a history of executed searches is saved and displayed to the user, each search can be saved either as a cohort or as a definition. There are 4 fields under this component, namely
- Query: This is where the name or description of the query is displayed
- Query Definition Options
- Save: This saves a definition to the database
- Delete: This removes a definition from the search history
- Results: This contains a list of all the patients contained in the search result
- Query Definition Options
- Save: This saves a cohort to the database
- Delete: This removes a definition from the search history
Search for patients using demographics
Searching by demographics is where the user can create cohorts using the demographics and patient attributes.
There are 5 demographic search options namely:
- Gender - Search by gender option
- Age - Filter patient search results by age range i.e. 0-14
- Birthdate - Filter patient search results by birthdate range ie 20 Feb 1988 - 03 May 2006
- Alive - Search only for patients who are alive.
- Dead - Search for deceased patients.
Search for patients using personal attributes
There are 10 person attributes search options:
- Birthplace filter by place of birth
- Citizenship - Filter patient results by specifying their country of origin
- Civil Status
- Health Center - Filter by details of health centre attended by patients
- Health District allows you to filter by similar health districts
- Mother’s Name - Filter by similar mother’s name
- Race - Filter results by the patient's racial background
- Telephone number - Filter by similar phone numbers
- Unknown patient
- Test patient
This allows the user to search for patients with specific information that further describes them.
Search for patients using encounters
Search by Encounter uses to search patients with a specific type of activity or encounter. For example, check-in, check-out, transfer, admission etc.
There are 5 search options namely: -
- Of Type allows you to filter by the type of the encounter
- The location allows you to filter by the location of the encounter
- At least this many allows you to filter by the minimum encounter count
- Up to this many allows you to filter by the maximum encounter type
- From - To allows you to filter by the date range in which the encounter(s) occurred.
Search for patients using a location
Search by location allows the user to search for patients by the encounter location. Ex: Amani hospital, inpatient ward, isolation ward etc.
Here the filters will be applied according to the following:-
Patients belonging to a group of encounters from a specific location.
According to the timeline of the encounter
Search for patients using program enrolments
Searching by program enrollments has the following fields required by the user to perform the search.
Program:
Date Ranges for the following
In The Program
Enrolled in the program
Completed the program
Ability to save the cohorts and the definitions
Saved definitions search gives the user the option to search for a saved cohort or definition, it has two fields,
- Search Saved Definitions allows the user to search for a saved definition by its name
- Search Saved Cohort allows the user to search for a saved cohort by its name
Search for patients using drug orders
Search for patients taking specific drugs
- Drugs
- Care setting
- When
- Composition
A composition query combines together the results of multiple cohorts using the logical operators: AND, OR and NOT.
Weekly Reports
Issues
Medium Articles
Meeting Notes
Final Presentation
Resources
https://guide.openmrs.org/en/Using%20Data/cohort-builder.html
OpenMRS 3.0: A Frontend Framework that enables collaboration and better User Experience