GSoC/GCI Archive
Google Summer of Code 2011


Web Page:

Mailing List:


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

Thank you for your interest in OpenMRS! OpenMRS has been accepted for the 5th year as a mentoring organization for Google Summer of Code in 2011. We're enjoyed participating in this great program in the last 4 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.

The Summer of Code page on our wiki describes potential projects and our mentors this year. 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.

Why OpenMRS?

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%) are 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 developing countries, including South Africa, Kenya, Rwanda, Lesotho, Uganda, Tanzania, Haiti, Mozambique, Sierra Leone, and many more. This work is supported in part by organizations such as the World Health Organization (WHO), the Centers for Disease Control (CDC), the Rockefeller Foundation, the International Development Research Centre (IDRC) and the US President's Emergency Plan for AIDS Relief (PEPFAR).

Read more about OpenMRS at


  • Atlas Module (Design Page) The OpenMRS community would like to automate (or at least semi-automate) the OpenMRS Atlas information, but do not want to force implementations to join the atlas or even allow it to happen accidentally; rather, it would like to create a way for implementations to opt-in to the joining the OpenMRS Atlas in a manner that is fun and useful to them.
  • Database Message Properties Module If the messages had the ability to be stored in the database, then the installation could easily change them. If the properties are left in the war file as they are now, then the installation will not want to edit them. The MessageSourceService is already a registered service and calls are made through it. This module simply needs to hook into that and provide additional keys.
  • Enabling SMART Apps in OpenMRS OpenMRS is an open source EMR, with its own method of extension through modules.Likewise all EMRs have their own way of extending their functionality.This is annoying for a developer,He has to develop a couple of applications to all possible EMR to ensure that his idea reaches to all the users regardless of what EMR they are using.The SMART platform provides a method to develop applications that can run within any EMR.The purpose of this project is to enable SMART capabilities in OpenMRS.
  • Enhance module maven archetype Creating a module is currently a laborious process that includes a lot of file renaming and copy/pasting from other module templates. A maven wizard (archetype) that walked a user through creating the different types of modules to create and naming things correctly would help to at least speed up the initial creation time.
  • Enhance Patient Matching Module The current OpenMRS patient de-duplication module, which identifies potentially duplicate patients using a sophisticated probabilistic matching algorithm, requires multiple enhancements to ensure effective and efficient use in real-world installations.
  • Expanding on Coded Value Sources in Obs Data collected by the OpenMRS system is stored as patient specific observations. However the current API only supports a finite list of data types for observables. It does not allow users to introduce Observations for OpenMRS domain objects such as Patients or Locations Etc. This project will resolve this issue by enhancing the existing API to allow users to create observations for such domain objects.
  • General Feedback Mechanism This module will make the interaction between system users and admin/support more interactive , making it easy to keep the system up-running in a {{good}} condition. The intention of this project is to provide a mechanism for users to communicate with system supporters/admins with system-related (not patient-specific) messages.
  • Human Resources Module The purpose of the project is to develop an OpenMRS module to maintain personnel information and generate reports useful at the clinical level and compatible with a national personnel system. The design is based on iHRIS (an open source personnel management and qualifications system written in PHP), but is integrated with the new OpenMRS provider model. (Additional or modified requirements may come from other international projects currently underway.)
  • Improve the HTML Form Entry Module (Designer + Schemas) This project consists on improving the HTML Form Entry module, by doing two major improvements: Use Schemas in HTML Form Entry module Update the WYSIWYG HTML Form Entry Designer module
  • Improved Person Attribute Types Create new datatypes for the Person Attribute Type Update the API layer to have methods for working with the new datatypes Add unit tests for the new methods added to the API. Update the relevant documentation pages
  • Laboratory Information System Interoperability A large hospital might use OpenMRS for the clinical patient record, and a separate Laboratory Information System to store detailed information about specimens and samples. Or a national-scale medical record might have OpenMRS running as a centralized database-of-record, with multiple mobile applications connecting to it.
  • Localization of initial setup and update wizard OpenMRS web-app includes initial setup and update wizards those greatly simplifies DB creation, configuration and update on web-app startup. The main aim of this project is to provide ability for user to run these wizards in their selected language. Localization style must be alike desktop's application with choosing preferred language at 1st step of setup wizard, with ability to move back and change it while wizard is running and with storing that selected language by app for further using it.
  • Message Delivery Triggered by Conditions within OpenMRS OpenMRS is an open source, enterprise electronic medical record system platform, widely used for managing health systems in developing countries. This project focus on leveraging Notifiable Condition Detection (NCD) module and Messaging module, to send reminder messages to patients of their upcoming appointments in reducing absenteeism, and informing patients of their test results in order to improve their interest in the provision of healthcare.
  • Metadata Sharing OpenMRS is a huge system, which is written to be scalable and configurable. This model requires creating a large quantity of metadata. It would be great if the application administrator could share metadata, in order to others didn't have to repeat his work. This project will enable sharing metadata through the Internet, allowing subscribing a “package” from given URL. All I want to do is to give users an useful module, which will help them in everyday work.
  • Universal Search Box My name is Christopher Zakian and I am a Computer Science and Linguistics major at IU Bloomington. I became interested in the Universal Search box after talking with Jeremy when OpenMRS did an Info Session at IU. This project would combine my study of Language in linguistics with computer science to benefit OpenMRS.