Contributing to OpenHospital: An Undergraduate Team's First Open Source Experience
CEME 1202 | Sun 09 Aug 2 p.m.–2:45 p.m.
Presented by
-
Abhigna is a junior at the University of Washington Bothell pursuing Computer Science and Data Science. She is passionate about developing software for real-world impact, and is currently researching cybersecurity risks that generative AI poses to open source software with Dr. Kaylea Champion. Her interests span IP law, generative AI, and user-centered applications. She enjoys teaching coding and exploring the broader implications of AI on technology - from its impact on CVE databases to how it can support developers without compromising software quality and integrity.
-
Likitha Nanduri
https://www.linkedin.com/in/likithastem/
Likitha Nanduri is an undergraduate Computer Science & Software Engineering student at the University of Washington Bothell, with a minor in Data Science. She is part of a student team contributing to OpenHospital, a free and open-source health information management system for healthcare settings.
Her OpenHospital work focuses on improving sortable and filterable tables in the desktop GUI, starting with the Exam Browser. She has also contributed to Graphitti, an open-source neural network simulator developed by the UWB Biocomputing Group, where she worked on recorder subsystem research, documentation, and understanding how simulation data is captured across different models.
Abhigna is a junior at the University of Washington Bothell pursuing Computer Science and Data Science. She is passionate about developing software for real-world impact, and is currently researching cybersecurity risks that generative AI poses to open source software with Dr. Kaylea Champion. Her interests span IP law, generative AI, and user-centered applications. She enjoys teaching coding and exploring the broader implications of AI on technology - from its impact on CVE databases to how it can support developers without compromising software quality and integrity.
Likitha Nanduri
https://www.linkedin.com/in/likithastem/
Likitha Nanduri is an undergraduate Computer Science & Software Engineering student at the University of Washington Bothell, with a minor in Data Science. She is part of a student team contributing to OpenHospital, a free and open-source health information management system for healthcare settings. Her OpenHospital work focuses on improving sortable and filterable tables in the desktop GUI, starting with the Exam Browser. She has also contributed to Graphitti, an open-source neural network simulator developed by the UWB Biocomputing Group, where she worked on recorder subsystem research, documentation, and understanding how simulation data is captured across different models.
Abstract
OpenHospital is a free and open-source health information management system used in hospitals across Uganda, Ethiopia, and other resource-limited regions. Built by Informatici Senza Frontiere, it manages patient records, laboratory results, pharmacy stock, and statistical reporting for healthcare workers and patients who depend on it daily.
As a team of four undergraduate students contributing to OpenHospital for the first time, we each tackled a separate "good first issues" in the OpenHospital ecosystem. This talk shares what components we worked on, and what we learned about navigating a large, real-world codebase.
Components We Worked On:
We each tackled a different area of the project, with contributions spanning reporting infrastructure, interface consistency, translation hygiene, and data accessibility across the GUI.
Report Localization Structure
OpenHospital generates clinical reports (patient records, outpatient statistics, lab summaries) using JasperReports. However, managing the translation of these reports includes a lot of manual work. The work on report localization investigates whether this process can be streamlined, which reduces the maintenance burden for contributors and makes it easier to add support for new languages in the future.
Sortable and Filterable Tables
OpenHospital’s desktop GUI uses tables to display information such as exams, patients, lab records, and inventory. However, not all of these tables have consistent sorting and filtering behavior, which can make it harder to quickly find the right record. The work on sortable and filterable tables focuses on applying standard table sorting and natural text filtering across the GUI, starting with the Exam Browser as an initial implementation pattern. This improves data accessibility for users while preserving correct row selection for actions like Edit, Delete, and Results after sorting or filtering.
Orphan Bundle Cleanup
OpenHospital supports multiple languages through translation bundles that map interface text to localization keys used throughout the system. Over time, some translation entries became “orphaned,” meaning they were no longer connected to any active part of the application. This component focuses on identifying and cleaning up these unused translation keys by tracing references across Java source files, reports, and configuration files. Removing outdated entries improves maintainability, reduces confusion for future contributors, and helps keep the localization system organized as the project continues to grow and add language support.
Consistent Save/OK Button Pattern
In different OpenHospital GUI dialogs, many Save/OK button implementations handled insert and update operations using different patterns even though the overall logic was very similar. Some dialogs duplicated insert/update code, some handled exceptions differently, and others used different success-checking approaches. The work on interface consistency involves implementing a common Insert/Edit pattern that standardizes the save flow, error handling, and dialog behavior while still preserving the separate UI events needed for insert vs update actions.
What We Learned
We will share how we selected Open Hospital as a project to work on, and what it feels like to contribute to a production codebase for the first time - from environment setup to navigating Jira, reading unfamiliar code, and drafting pull requests that follow strict contribution guidelines. We hope this talk encourages other students and first-time contributors to take the leap into open source without feeling intimidated.
OpenHospital is a free and open-source health information management system used in hospitals across Uganda, Ethiopia, and other resource-limited regions. Built by Informatici Senza Frontiere, it manages patient records, laboratory results, pharmacy stock, and statistical reporting for healthcare workers and patients who depend on it daily.
As a team of four undergraduate students contributing to OpenHospital for the first time, we each tackled a separate "good first issues" in the OpenHospital ecosystem. This talk shares what components we worked on, and what we learned about navigating a large, real-world codebase.
Components We Worked On: We each tackled a different area of the project, with contributions spanning reporting infrastructure, interface consistency, translation hygiene, and data accessibility across the GUI.
Report Localization Structure OpenHospital generates clinical reports (patient records, outpatient statistics, lab summaries) using JasperReports. However, managing the translation of these reports includes a lot of manual work. The work on report localization investigates whether this process can be streamlined, which reduces the maintenance burden for contributors and makes it easier to add support for new languages in the future.
Sortable and Filterable Tables OpenHospital’s desktop GUI uses tables to display information such as exams, patients, lab records, and inventory. However, not all of these tables have consistent sorting and filtering behavior, which can make it harder to quickly find the right record. The work on sortable and filterable tables focuses on applying standard table sorting and natural text filtering across the GUI, starting with the Exam Browser as an initial implementation pattern. This improves data accessibility for users while preserving correct row selection for actions like Edit, Delete, and Results after sorting or filtering.
Orphan Bundle Cleanup OpenHospital supports multiple languages through translation bundles that map interface text to localization keys used throughout the system. Over time, some translation entries became “orphaned,” meaning they were no longer connected to any active part of the application. This component focuses on identifying and cleaning up these unused translation keys by tracing references across Java source files, reports, and configuration files. Removing outdated entries improves maintainability, reduces confusion for future contributors, and helps keep the localization system organized as the project continues to grow and add language support.
Consistent Save/OK Button Pattern In different OpenHospital GUI dialogs, many Save/OK button implementations handled insert and update operations using different patterns even though the overall logic was very similar. Some dialogs duplicated insert/update code, some handled exceptions differently, and others used different success-checking approaches. The work on interface consistency involves implementing a common Insert/Edit pattern that standardizes the save flow, error handling, and dialog behavior while still preserving the separate UI events needed for insert vs update actions.
What We Learned We will share how we selected Open Hospital as a project to work on, and what it feels like to contribute to a production codebase for the first time - from environment setup to navigating Jira, reading unfamiliar code, and drafting pull requests that follow strict contribution guidelines. We hope this talk encourages other students and first-time contributors to take the leap into open source without feeling intimidated.