GSoC/GCI Archive
Google Summer of Code 2010


Web Page:

Mailing List:


Write Code. Save Lives. Join OpenMRS for Google Summer of Code 2010.

View our 2010 student project code repository. Full source code is always available at

Thank you for your interest in OpenMRS! OpenMRS has been accepted for the 4th year as a mentoring organization for Google Summer of Code™ in 2010. We're enjoyed participating in this great program in the last 3 years and are even more excited about the projects and mentors we have available this year. Coding for OpenMRS is a great way to practice your coding skills and, at the same time, help benefit people in developing countries who are on the front lines of the battle against HIV/AIDS, TB, and Malaria.

See the OpenMRS Projects page for available projects and their descriptions. These aren't "busy work" - we've reviewed our actual project list and identified ones that can be completed by students (advised by our team of excellent mentors) during Summer of Code this year. Look for the projects marked with the green 2010 GSoC logo.

Our world continues to be ravaged by a pandemic of epic proportions, as over 40 million people are infected with or dying from HIV/AIDS — most (up to 95%) in developing countries. Prevention and treatment of HIV/AIDS on this scale requires efficient information management, which is critical as HIV/AIDS care must increasingly be entrusted to less skilled providers. Whether for lack of time, developers, or money, most HIV/AIDS programs in developing countries manage their information with simple spreadsheets or small, poorly designed databases ... if anything at all. To help them, we need to find a way not only to improve management tools, but also to reduce unnecessary, duplicative efforts.

As a response to these challenges, OpenMRS formed in 2004 as a open source medical record system framework for developing countries — a tide which rises all ships. OpenMRS is a multi-institution, nonprofit collaborative led by Regenstrief Institute, a world-renowned leader in medical informatics research, and Partners In Health, a Boston-based philanthropic organization with a focus on improving the lives of underprivileged people worldwide through health care service and advocacy. These teams nurture a growing worldwide network of individuals and organizations all focused on creating medical record systems and a corresponding implementation network to allow system development self reliance within resource constrained environments. To date, OpenMRS has been implemented in several African countries, including South Africa, Kenya, Rwanda, Lesotho, Uganda, and Tanzania. This work is supported in part by organizations such as the World Health Organization (WHO), the Centers for Disease Control (CDC), The Rockefeller Foundation, and the President's Emergency Plan for AIDS Relief (PEPFAR).

Take a look at our project ideas and the Developer How-To Guide. For more information about OpenMRS, look around the rest of this site, follow us on Twitter, or check out some OpenMRS videos on YouTube.


  • Advanced Concept Management module The current concept management system in openmrs is a very basic one. I want to improve the search by adding more advanced search features like search for certain criteria in order to increase the usability. Furthermore I want to redesign the concept viewer to display information in a more accurate way.
  • Application for OpenMRS GSOC’10: HTML Form Entry module enhancements The HTML Form Entry module allows anyone capable of writing HTML to design a data entry form. Many hospitals and clinics use this as their primary tool for data collection.
  • Approximate Date Support for OpenMRS My aim in this project is to enhance the representation of approximate (estimated) date of birth and date of death in the OpenMRS Electronic Medical Record System. This will allow the users to specify an approximate/estimated date more flexibly and intuitively within the system. Successful completion of this project would allow OpenMRS to store and render internationalized (i18n supported) approximate dates for patient birth dates and dates of death.
  • Enhancing the Patient De-duplication Module First, the module must be updated and tested for version 1.6 of OpenMRS. Second, the module must accurately display the current state of the de-duplication process,currently the status is not accurately updated. Third, because identifying duplicate patients across the entire OpenMRS patient registry can be computationally intensive, it may be desirable to schedule the process to run during off-peak times . Fourth, the module produces a list of potentially duplicate patients
  • Genome Data Storage and Drug Resistance Prediction RegaDB, a specialist application that performs the genotypic prediction algorithms and presents the data RegaDB.The aim of this project is to integrate OpenMRS with RegaDB such that patient and diagnostic data may be managed in OpenMRS or RegaDB and interchanged between the two applications. In the former use case, genotyping data along with mutation patterns and clinical predictions are exported and stored in OpenMRS and presented to the clinical user.
  • Global Caching Support for OpenMRS Logic Service The main goal of this project is to create a global robust caching system to replcae the old caching system of the logic service to improve performance of this service and the whole system. The new caching system will be implemented with existing widely used cache framework like ehcache, jcs, oscache, jboss cahce or any other.
  • Localization Tools Currently, only some aspects of OpenMRS support localization. These are: (1)The Concept Dictionary - localized concept names (2)Pre-defined pages that can draw from message resource bundles This project will support the localization of metadata which can be defined at runtime by end-user, e.g.,
  • Longitudinal Data Review (Discrete Data Flowsheet) Module OpenMRS is an open-source, enterprise electronic medical record system platform which is widely used for managing health systems in the developing countries. One of the major requirement for a person working with this system is to view patient data in reverse chronological order. This feature will allow the users to get an overall idea about a patient at a glance. This project for implementing Longitudinal Data Review Module intends to present patient data in different views for easy review.
  • Metadata Sharing Module Sharing metadata would greatly reduce the work required from users to setup and maintain instances of OpenMRS. My goals would be: 1. Find a common way to export metadata to an xml file 2. Publish exported xml files using REST/WebServices and let them being downloaded manually from website 3. Create a possibility to import xmls and a subscription mechanism (querying publishers in a timely manner with Spring scheduling) 4. If time allows, resolve collisions instead of overriding
  • OpenMRS Media Viewer Enhancements for Radiology The usability tests conducted for doctors will give valuable insights on the feature requirement. The side-by-side viewer functionality is managed by UI functionality provided by flex/flash along with DOM/CSS. Search and preview thumbnail functionality is built using the existing infrastructure and ontologies which also are useful when using markers or text for annotations. The components would be developed in flash/flex to enable portability across different implementations as an add-on.
  • Refine OpenMRS Module Administration OpenMRS supports a great way to integrate Modules into the core system. But these modules are not hot swappable but gives the impression of hotswappable. Each time a module is uploaded, stopped or restarted the OpenMRS system literally restarts itself to put that action into effect. All scheduled tasks and background processes currently running will be interrupted. This project proposes an effective solution for this problem.
  • Remark module Project proposal for Remark module from Chircu Cristian Alexandru
  • Remote Data Transfer Module : Kenneth MacDonald The goal of the Remote Data Transfer Module project is to provide a utility module, primarily for use with other OpenMRS modules, that will provide an interface to allow users to add objects to a transfer queue. The objects in the queue will then later be transferred to a remote location either via http send (online) or manual transfer (offline).