Patient Narratives Upload - Project Proposal
Google Summer of Code 2013 Project
Project at Google melange: https://google-melange.appspot.com/gsoc/project/google/gsoc2013/durapix/118001
1. Introduction (Motivation for the project)
Just think of a situation where a patient isn’t capable of attending clinic to get proper health-care treatment. But he/she might have the Internet facility at their homes or may be at their neighbourhoods. So in that case If the person could get medical advice through internet that would be really cool, isnt it ?
So that’s where the Patient Narratives Module’s idea comes from. The care-seeking patient can simply login to the publicly hosted OpenMRS system and Navigate to Patient Narratives interface and fill, upload the required information (simply they could just say their story) submit it! And wait for the confirmation from Care-providers who are generously waiting to provide health-care support for them.
[Figure-1] Highlevel diagram: http://www.gliffy.com/pubdoc/4484591/L.png
2. Project goals.
Interface of the Care-Seeker
Embed HTML-Form/X-Form with a new Encounter
Develop HTML5-Mediastream capture mechanism.
Develop multiple file uploads capability.
Integrate reCAPTCHA API
Care-Provider’s Console
Register valid patient / Change status of the record to valid
List all the received patient narratives records
Display the detailed patient narrative for a selected record
3. Implementation.
Phase 1: Interface of the Care-Seeker
Embed HTML-Form/X-Form with a new Encounter Type:
Create a new HTML or X form by including the required information fields for the patient narrative. And need to implement a new Encounter type called “under-review” and gather all the HTML/Xforms submitted under it.
Develop HTML5-Mediastream capture mechanism.
HTML5-Mediastream allows users to simply capture video streams by just using their Web browsers. So there won’t be any hassle for the user to Setup streaming softwares, configurations and etc. However to run the MediaStream interface the web browser need to have the support for HTML5 and WebRTC API. Almost all of the modern web browsers (including Firefox, Chrome) supports these APIs. (I have done pretty similar to this under last year which is to Capture User web browser screenshot entirely handled using Javascript without no server side interaction: https://github.com/openmrs/openmrs-module-feedback)
Develop multiple file uploads capability with OpenMRS Complex Ob Handler.
Convert the HTML mediastream into OpenMRS complex object and save. For this purpose need to develop a custom OpenMRS Complex Obs data handler for HTML5 mediastream.
Integrate Captcha API, using Google’s reCaptcha API
I am planning to use reCAPTCHA as the captcha tool. its a free CAPTCHA service by Google that protects site against spam, malicious registrations and other forms of attacks where computers try to disguise themselves as a human.
[Figure-2] Care-Seeker UI: http://www.gliffy.com/pubdoc/4486736/L.png
Phase 2: Care-Provider’s Console
To differentiate the care-seekers and care-providers I am planning to use a new "OpenMRS-Role" called “care-provider” for the use of Patient Narratives module. So the admins could simply add that ‘ROLE’ for the users in need. Only those users will allowed to access ‘Care-Provider Console’, And they will have the privilege to:
Register valid patient / Change status of the record to valid
List all the received patient narratives records
Display the detailed patient narrative for a selected record
[Figure-3] Care-Provider’s Console UI: http://www.gliffy.com/pubdoc/4487237/L.png
[Figure-4] Flow chart of Care-Seeker: http://www.gliffy.com/pubdoc/4489375/L.png
[Figure-5] Flow chart of Care-Provider: http://www.gliffy.com/pubdoc/4489416/L.png
[Figure-6] Use case diagram: http://www.gliffy.com/pubdoc/4489447/L.png
4. Tentative Timeline
June 17 - Coding begins - Make sure the UI design is ready, Finalize
June 19 - Start implementing interface of the Care-Seeker
July 29 - Finalize the Care-Seeker UI and Java backend. (for mid-term evaluation)
July 30 - Start implementing Care-Provider’s Console.
August 20 - Finalize the Care-Provider’s Console.
September 10 - Make sure everything is working as it should and take necessary actions if not, Continuous integration with testing.
September 16 - Format code, write JUNIT test cases, improve documentation, etc.
September 23 - Pencils down
After that - Host the OMOD at OpenMRS module repository and Finish whatever is left and merge/release all the code