Patient Narratives Upload - Project Proposal

Google Summer of Code 2013 Project



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.
 


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