GSoC 2013 Ideas Page
Possible Projects for Google Summer of Code 2013:
Project: Build a Registration Module in NodeJS/Meteor
Brief explanation: Build a registration module in meteor
Used Technologies: JavaScript, HTML5, Meteor
Primary Mentor: Surajit Nundy
Secondary Mentor: John Stoecker
Objectives:
Familiarize yourself with NodeJS and meteor formats
Make registration-related calls to MySQL using meteor
Create a webapp that does all the functions of the current module
Create an iOS and Android app that does all the functions of the current module
Document your module so that we can maintain it.
Project: Build a Radiology Image Viewer that Syncs with OpenMRS
Brief explanation: Build a radiology image viewer that will allow radiologists to input notes and diagnoses
Used Technologies: JavaScript, HTML5, Sencha
Primary Mentor: Akhil Ravindran
Secondary Mentor: Barry Levine
Objectives:
Familiarize yourself with dcm4che and DICOM formats
Create an image editor by forking Oviyam DICOM viewer
Allow radiologists to link radiology patients to OpenMRS
Allow radiologists to input diagnoses/thoughts and send them as observations to OpenMRS
Document your image viewer so we can easily make changes in the future
Project: Implement a faster, node.js-based search
Brief explanation: Build a fast, responsive search layer for medical data. Currently, the search layer in OpenMRS performs many unecessary checks before accessing the data. Your task is to bring that data into a lightweight node.js search layer. Before each database lookup, perform a quick check using the OpenMRS API to see if the user is allowed to view that particular resource.
Used Technologies: SQL, node.js, MongoDB/SOLR
Primary Mentor: Piyush Madan
Secondary Mentor: John Stoecker
Suggested Reading:
https://wiki.openmrs.org/display/docs/Data+Model
Objectives:
Familiarize yourself with different search layer/indexing techniques such as node.js/MongoDB/SOLR
Propose a search model for highly structured medical data
Build a search layer for these resources from OpenMRS: person, patient, encounter, obs, orders
Document your search layer's API
Project: Offline mode for Registration, Screener, and Pharmacy Modules
Brief explanation: In rural hospitals and clinics, cell and data connectivity is sporadic and bandwidth-limited. A point-of-care system needs to be responsive, so caching data on connection fail is a requirement. Your project is to build a cache all relevant data for offline mode, then sync when internet is available.
Used Technologies: JavaScript, HTML5, Sencha/ExtJs, SQLite
Primary Mentor: John Stoecker
Secondary Mentor: Surajit Nundy
Suggested Reading:
http://www.sencha.com/learn/taking-sencha-touch-apps-offline/
Familiarize yourself with the Registration, Screener, and Pharmacy modules on raxa.io
Propose a cache model using Sencha caching/session storage/SQlite
Cache patient record/data/images when POST fails
Create dummy records when GET on patient fails
Use lists of most-used resources when GET on diagnosis/drug fails
Document your cache, so when patient record data model changes, we can easily cache these
Project: Implement a timeline-based view for patient record images
Brief explanation: Currently, patient images are saved as part of the whole patient record. A useful image viewing tool for doctors would allow them to view similar images over time, seeing how a lesion changes, or how a bone/ligament is healing in an x-ray. In this project, you would create an interactive, intuitive image gallery viewer tailored specifically for medical data over time. Some features this project might include are editing images (such as circling interesting areas of an x-ray) and adding ICD-10 tags to an image.
Used Technologies: JavaScript, HTML5, Sencha/ExtJs
Primary Mentor: John Stoecker
Secondary Mentor: Nathan Leiby
Objectives:
Familiarize yourself with the Outpatient module on raxa.io/outpatient
Propose a cache model using Sencha caching/session storage/SQlite
Cache patient record/data/images when POST fails
Create dummy records when GET on patient fails
Use lists of most-used resources when GET on diagnosis/drug fails
Document your cache model, so we can easily change caching when the patient record model changes
Project: 2-way SMS menu for patient-facing module
Brief explanation: Medical data must be accessible to a patient through many channels. With this goal in mind, you will create an interactive module to allow a patient to access and edit their information through SMS. Patients will be able to edit their details, view structured medical data, see current prescriptions, and control who is allowed to access their records.
Used Technologies: Java, OpenMRS, Spring/Hibernate
Primary Mentor: John Stoecker
Secondary Mentor: Surajit Nundy
Suggested Reading:
Objectives:
Familiarize yourself with REST api's for mvaayoo's SMS gateway
Familiarize yourself with OpenMRS' data model and the creation of OpenMRS modules
Implement simple session security that checks whether an incoming SMS matches phone number stored for a patient
Connect to mvayoo SMS gateway API to allow GET/POST calls on these OpenMRS resources: person, patient, obs, orders, encounters
Project: Unsupervised Acoustic Model Trainer
Brief explanation: Most languages, especially the ones used in rural parts of the world, don't share the privilege with languages like English, French and Russian, of existence of vast quantities of freely available and carefully transcribed audio data. This forms a bottle-neck in creating a usable speech recognizer for decoding such languages. However, technology like this could form a potential backbone for any organisation providing support in rural regions. Hence, we want to make an unsupervised acoustic model training system that creates it's own database and an acoustic model from audio collected by JSS and it's supporting organisations.
Used Technologies and Prerequisites: CMUSphinx, Java, Machine Learning, CSS CouchDB
Suggested Reading:
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.18.2199
http://dl.acm.org/citation.cfm?id=1786947
Mentor: Apurv Tiwari
Secondary Mentor: TBD
Project: Lab Reports
Brief explanation: The laboratory module needs to generate a variety of reports: test results, daily log, exception reports, monthly statistics, quality control charts, etc. Some of these reports will be saved as PDFs and possibly printed, others will be exported to Excel or other tools. The lab module will also need a report and parameter selection screen.
Used Technologies: BIRT or iReport for report generation, Java for integrating the report generator into the module, jsp with jquery and/or HTML5 for the report and parameter selection screen.
Mentor: Piyush Madan
Project: Arden Syntax Implementation
Brief explanation: Adapt and extend OpenMRS' Arden Syntax implementation at Raxa EMR. The EMR has a data structure derived from OpenMRS on which we are creating point-of-care and after-care interfaces for both providers and patients. These interfaces will have intelligence, both heuristically-derived and data-driven, to provide support so that providers and patients can make evidence-based, informed decisions about their plan of care. These rules will be implemented using Medical Logic Module interfaces such as the Arden Syntax, so that the rules created here can be used by other such systems, and so that rules from other systems can be implemented easily here. During this project, we shall be creating the software interfaces to implement rule-based validation and suggestions during provider data entry and patient behavior.
Resources:
https://wiki.openmrs.org/display/docs/Clinical+Decision+Support
http://healthinformatics.wikispaces.com/Arden+Syntax
Used Technologies: Arden Syntax, OpenMRS
Objectives:
Familiarize yourself with the Arden Syntax as implemented in OpenMRS
Create service for Arden Rules (e.g. https://source.openmrs.org/browse/OpenMRS/branches/1.9.x/api/src/test/java/org/openmrs/arden/include/HiRiskLeadScreen.java?r=24212)
Create user interface using HTML5/Javascript/ExtJS4 that will allow non-developer users to create rules for the system on the backend
Add REST service to the backend to serve Arden Rules to module apps
Insert calls to the REST service in the Outpatient Module frontend code so that Arden rules can be followed
Primary Mentor: Surajit Nundy
Backup Mentor: Dr Rachna Kucheria
Project: E-Triage System
Objectives: Develop e-triage system
Reason: In rural areas of India and other similar parts of the world, patient-doctor ratios may be 10000-1 or lower. Alternative technologies are required to enable emergency response and for optimal connection of doctors to patients. The objective is to develop an IVR setup that patients can call into. The patients will be guided through a brief dialogue system that supports natural language queries and requests. The spoken input will be analyzed, and based on its contents, the system will automatically connect the patient to the optimal available doctor or hospital, where "optimality" will be decided based on emergency level of the call, distance of the patience to the doctor, the doctor's current load and other such factors. In cases of epidemics or other obvious illnesses, the system will also dispense emergency advice to follow before getting to the doctor.
Used Technologies: Open source speech recognition, dialog system and natural language processing tools.
Primary Mentor: Apurv Tiwari
Backup Mentor: TBD
Project: Medical Disaster Response
Objectives: Implement voice-based input/output modalities for a Disaster response system for Raxa
Reason: Disasters, ranging from medical disasters such as cholera or malaria, to earthquakes, floods, etc. require immediate response, access to information, etc. The objective is to adapt disaster management tools into the Raxa structure, with to implement voice-based mechanisms for populating the information databases in it via human input, in addition to current methods, as well as voice-based responses.
Used Technologies: Open source disaster response tools from sahanafoundation.org, open source speech recognition, synthesis and dialog system tools,Ushahidi
Primary Mentor: TBD
Secondary Mentor: TBD
Project: UI for Raxa EMR Analytics and Reporting
Objectives: To create an intuitive, beautiful, and easy-to-use interface for accessing information about the relationships between disease prevalence, geography, demography, the seasonality of illnesses and other contributing factors to health.
Reason: To make healthcare information meaningful, useful and effective in the service of providing better levels of care, providers need to quickly, conveniently access and analyze the data captured in an EMR. The objective is better evaluate treatment protocols, staged interventions and physician responsiveness to the leading causes of morbidity and mortality.
Used Technologies: Open source technologies such as Pentaho, I2B2, Sencha Touch Charts, Greenplum Chorus
Primary Mentor: Surajit Nundy
Secondary Mentor: Shuro Nundy
Project: Geolocation and Mapping Tools
Brief explanation: Create a flexible tool to overlay useful data on a local village maps. The primary focus of this mapping task is to assist community health workers in finding patients and monitoring/updating village-specific data (clean water access, disease trends, landmarks). A major requirement is to emphasize that aspects of this data should be accessible and editable while offline (downloaded/updated while in WiFi areas). This work should be developed in coordination with the Analytics and Reporting project, to ensure maximum overlap in shared functionality.
Used Technologies: OpenLayers, OpenStreetMaps, GoogleMaps , Leaflet, Cloudmade
Mentor: Nathan Leiby
Project: Patient Medical Timeline
Brief explanation: This is basically an idea taken from facebook timeline. Just like we have the timeline in facebook, we could have a timeline of the patient's medical history. Reports like X-ray report, blood report etc will be attached to the specific point in history, which would make it easy to understand and access it, instead of having all attachments in either hard-copy or dumped in a single folder. Later in years to come, we can come-up with ideas to share/export data with other doctors, say for example the patient moves to city for better treatment.
Used Technologies: TBD
Mentor: TBD
Project: CHW Project
Background: Many are community health workers are semi-literate, and request help with decision making. CHWs want knowledge in a particular format; many have an aversion to writen text and would succeed more with images and and audio. The platform must be appropriate.We are working with various technology platforms to provide a couchy feel of application for use by public health at Raxa
Objectives:
Develop a case management platform to allow for users to implement case management for common diseases in JSS
Implement MOTECH engine of connecting to openmrs for platform communication
Improve task management of community health workers
Implement Arden decision rules support for the mobile platform
Improving patient matching and record linkage strategies with the main JSS openmrs system.
Used Technologies: HTML5, Javascript, CSS CouchDb
Mentor: John Stoecker
Backup mentor : to be decided
Resources: