Large project ideas:
-
Archiving voided data: Voiding in OpenMRS is a form of soft-deleting. We basically set a binary column to
1
and attempt to ignore data at various points. Voiding data is meant to mark it as invalid for one reason or another (e.g., an obs has been superceded or data was recorded against the wrong patient). This is very useful, because voided data can be easily restored, but over the long term (especially with “immutable” objects likes obs), this causes some OpenMRS tables to grow to contain far more voided data than non-voided data. To address this, we should add a mechanism to archive voided data with the possibility of restoring it. -
Integrating Data Filter for Data Segregation / Multitenancy: Data Filter is a powerful module that uses Hibernate’s filtering APIs to add additional where clauses to various SELECT statements. The use-case for this is to allow system-wide filters to be applied to the data added. Currently Data Filter includes a default set of filters that restrict the availability of data on patients to a set of locations a user has access to. The point of this project would be to expand on these capabilities to add things like: an administrative UI for associating users and patients with specific locations, additional rules to account for the various modules used in the O3 RefApp, templates for additional rules that may be useful (i.e., tie the ability to see obs with certain codes to certain privileges).
Medium project ideas:
-
Service Queues: We have a service queues app in O3, which is functional, but needs some attention, both to the frontend design and to the backend APIs that are used to populate it. The goal here would be to fix various UI issues and improve the overall performance and reliability of the queue module. The Service Queues view is incredibly useful for managing outpatient clinics, allowing users to track who is waiting for service, how long they’ve been waiting for etc.
-
Appointments: Scheduling appointments is an important function of an EMR. Unfortunately, the RefApp is currently stuck on an older version of the appointments module. What we would probably want to do here is (unfortunately) fork the appointments module to get the various fixes the OpenMRS community needs, update to the latest version of the module.
-
Improved Appointments Calendar View: We have an appointments calendar that is meant to give an overview of appointments. Unfortunately, it is currently less useful than it should be. A few things we need to address: the ability to drill-down into, e.g., monthly, weekly, and daily views; the ability to see all appointments, not just the number per service, instead of changing screens when clicking on a day or service, the app should likely display a modal; the calendar view should not be hard-coded around the Gregorian calendar, but support the various calendars from the @internationalized/date package.
Given my current time commitments, I’m not sure I can commit to actually mentoring a GSoC project this year; however, I am willing to be consulted on basically anything that’s happening in GSoC.