- |
- Discussion |
- Edit |
- History
Active Projects
Contents |
Data Synchronization: Create New Sync Node
| Primary mentor: | Maros Cunderlik |
| Backup mentor: | Ben Wolfe |
| Assigned to: | Antoine Nzeyimana |
Abstract: Data synchronization is a new OpenMRS feature allowing synchronization of data amongst a set of loosely networked servers. Such ability to exchange data is essential for operation of EMR system in rural areas where connectivity amongst sites maybe unreliable yet the need for timely centralized collection and analysis of data from remote sites exists.
One of the challenges in creating and maintaining the network of servers is the initial setup of 'child' node and establishing the relationship between parent and child such that no data is lost during the process. This process is today performed as a set of manual steps including:
- register newly created child with parent
- back up parent server DB and move the backup to the new child server
- restore parent's DB
- assign new server sync ID
- change any server identifying information from parent to child (i.e. form entry server URL)
- test sync connection between parent and child and finally establish periodic sync schedule
As shown above, performing these steps requires administrative knowledge and access to the system resources such as DB login. What is needed is the user administration interface in OpenMRS that will allow system administrator to add new child node to the system without resorting to manual procedure as outlined above.
Target: Successful completion of the project would include:
- Design and document the best programmatic approach to the manual process. Some considerations: What steps may be easy/hard to do in code? What is the best and most reliable way to 'clone' database from 'active' web application?
- Design the appropriate user interface: identify and document user interactions; design web screen for the admin user interface.
- Create project approach utilizing Agile software development methods: define user stories to document design, create task backlog, plan sprints, and deliver feature in several increments.
- create appropriate unit tests using standard OpenMRS unit testing approach, see Unit_Testing_Conventions and Unit_Testing
- for each user story create automated behavior and/or integration tests thus providing minimally one-to-one integration test coverage for each user story
Extra credit: At times, it is also necessary to physically bring existing child node that may have been offline, or otherwise unavailable back onto parent's network. In those cases, what is generally needed is to 'send' any data entry performed offline to parent and then rebuilt the child database from 'scratch'. The solution developed to to create new child would ideally support this need also.
OpenMRS Patient Authentication via Hybrid Online/Offline Mobile Phones
| Primary mentor: | Zack Anderson |
| Backup mentor: | RJ Ryan and Gari Clifford |
| Assigned to: | Jenny Liu |
Abstract: Moca is an end-to-end remote medical diagnostics application that runs on Google Android phones and integrates with OpenMRS. We want to add powerful functionality for OpenMRS patient authentication directly from a mobile handset, even in an out-of-coverage-area scenario. The project will entail programming in Java using the Android SDK. Successful completion of this project will span a number of technologies.
Target: Relevant deliverables will include: a 2D barcode scanner on the G1 phone (using the camera) to read patient ID cards, creating a database local to the phone containing minimal authentication information, a synchronization utility for this information, a new patient enrollment procedure, and security for the implementation.
Resources: Moca Homepage
Integration of OpenMRS with EpiHandy
Mentors: Jørn Klungsøyr
Assigned to: Rajesh Kashid
Abstract: OpenMRS is a system for storing patient-based electronic medical record information. EpiHandy is an open source survey design and data collection application for handheld computers. Both applications have significant implementations in sub-Saharan Africa. The central database design pattern in OpenMRS hard codes the notion of an encounter between two classes of person with a number of observations stored at each encounter. This pattern is very similar to that of a survey. OpenMRS and EpiHandy (Microsoft SQL Server/VB.Net) have different application architectures. The aim of this project is to integrate OpenMRS with EpiHandy such that the OpenMRS database can be used for routine data storage of EpiHandy survey and medical record data.
OpenMRS J2ME Application
Mentors: Simon Kelly/Neal Lesh
Abstract: The Mobile Forms collaborative has developed a pilot J2ME application that receives and displays XForms on PDAs and mobile phones. The forms are completed and data stored on the device before being uploaded to a central server. The aim of this project will be to extend the functionality of the core J2ME application.
LDAP Module
| Mentor(s): | Ben Wolfe and Burke Mamlin |
| Assigned to: | Antoine Poulet (and classmates) |
Abstract: One of the goals of OpenMRS is to find ways to interact with other complimentary systems. When multiple systems are being used together, unified authentication (single sign-on) can greatly improve the user experience. An LDAP module for OpenMRS would override the existing authentication scheme and instead use a connection to an w:LDAP server to authenticate users within OpenMRS.
Target: This should be implemented as a module. Changes to Context or UserContext in core may be necessary to facilitate this working as a module.
Mental Health Module
| Primary mentor: | Not decided yet |
| Backup mentor: | Not decided |
| Assigned to: | Judy Wawira, Dr. Akawame |
Abstract: We are developing a mental health module that use OpenMRS as backend with Open Data Kit (data collection tool) on Android phones in Ghana. The module will summarize the verbose nature of mental health and allow for follow up of patients both outpatient, inpatient and for community based visits.
We will allow users the option of using the ICD 10 or the DSM IV TR coding and various diseases scoring criteria.
Target: To deploy the module and facilitate research on the use of mobile computing technologies for Community Mental Health care delivery in developing countries.

