GSoC 2014

Last week of GSoC 2014 – Refactoring code

Hi, am glad that we have now almost come to the end of Google Summer of Code for this year since for me this week has marked the end of coding for GSoC 2014, this week i have been mainly refactoring previously written code, here is my progress on a daily basis.

GSoC- Chart Search Module For Ref App | & OMRS 1.11 Release
Monday 11/08/2014
I did  OPenMRS 1.11 tickets testing and adding feedback to tickets and feedback page.

Tuesday 12/08/2014
I did more OPenMRS 1.11 tickets testing and adding feedback and also wrote  some Chart Search Module documentation

Wednesday 13/08/2014
I wrote testing invitation emails to all Reporters of 1.11 tickets and announced 1.11 test sprint 1 results

Thursday 14/08/2014
I responding to some 1.11 testing feedback ,write some tests for the Chart Search Module, editted previous test sprint pages, and then i created 1.11 testing sprint 2 pages after which i sent out invitations for people to begin the testing,
The second iteration for testing OpenMRS 1.11 tickets began this day at 19:00 UTC

Friday 15/08/2014
I wrote more testcases for chat search module the editted to add release notes for Chartsearch 1.1 release
I then Refactored the CSM’s projects’ code see ticket: CSM-66 and CSM-67


I have not had blockers and am so thankful to OpenMRS and Google Summer of Code for the opportunity given me to work on the Chartsearch module as my project this summer,

Just a reminder i wrote my final presentation post and added a video which you can find  here


regards 🙂

GSoC 2014

GSoC 2014 Last coding week – Releasing ChartSearch 1.1


Great thanks to you dear reader for following up my weekly posts from when we began eleven weeks before, it has been my great pleasure to share with you how i have been progressing until this time when we are almost ended with this year’s Google Summer of Code.

In the last twelfth week, i have been fixing lots of bugs that were noticed by several users and community members that tested the module after i released the first version, you can check out these bugs and other proposed features from

After fixing a majority of those bugs and working on quite a number of new features, i finally on Friday released the next version of the Chart Search Module, version 1.1, the new version can be obtained from the openmrs module’s repository and also you can straight away test the module from


Am so thankful to the Google Summer of Code and OpenMRS for the opportunity provided to me throughout the previous three months, for me to be engaged in such great development of this module.

GSoC 2014

Week 11 – Adding different indexing policies

Hi dear reader,

Am so glad that since GSoC 2014 began, I have been adding weekly update blogs, please check my other blogs in this category for reference.

Here is once again another wonderful week of development, from Monday to Friday I have been working on Adding different indexing policies to the Chart search module in addition to indexing one patient at a time when the user accesses either the chart search main page.

Monday 28/07/2014

  • Added a way to index many documents without specifying a patient see
  • Added ChartSearchCustomIndexer to handle the above behavior.
  • Added some support for retrieving patient data using openmrs API . But for now, i used jdbc connection from within the openMRS api to run query to get data from the OpenMRs database.

Tuesday 29/07/2014

  • Cleared issues with indexing, the user can now index any specified number of documents without specifying a particular patient
  • Began working on a way to return logs back to the view as process progresses
  • Sent out welcome emails for OpenMRS 1.11 testing sprint , being the OpenMRs 1.11 release manager

Wednesday 30/07/2014

  • Did lots of work on OpenMRS 1.11 test sprint , updating pages, responding to feedback etc

Thursday 31/07/2014

  • Set up and installed openmrs reference application with the chart search module for people to test out the module and return their feedback.
  • Sent out emails about the module; testing and ways of obtaining user’s feedback
  • Attended the OpenMRS Developer forum
  • Spoke to some Ugandan contributors about testing 1.11 sprint and invited them to take part
  • Did some work on 1.11 test sprint

Friday 01/08/2014

GSoC 2014

Week 10 – Testing OpenMRS 1.11 and adding privilege checks for CSM


Moving forward after releasing Chart Search Module, this week i have handled privilege issues for the chart search module, say what should happen when the current logged in user doesn’t have privileges to see certain information!!! Here is a detailed update for this week’s work that i have been doing.

Monday 21/07/2014

  • I checked out another ticket CSM-5 which i began working on and added an initial commit for it, then opened up a new pull request.
  • I installed OpenMRS 1.11 on a remote test server,
  • Started a testing sprint, see.
  • Attended Project Management call.
  • Attended Design forum.

Tuesday 22/07/2014

Wednesday 23/07/2014

  • Upgraded the remote OpenMRS 1.11, to the currently built after pulling with rafal’s merge
  • Updated the Testing OpenMRS 1.11 Release Tickets sprint pages
  • Continued work on CSM-5, about privileges with chart search module.

Thursday 24/07/2014

  • Increased OpenMRS 1.11 remote test server memory, etc.
  • Added a commit for CSM-5, | privileges | later merged into the module’s github repository.
  • Planned to work on other Chart issue ticket.

Friday 25/07/2014

  • OpenMRS 1.11 release testing.
  • Blog post.
  • Weekly update.



Finally, this week has been quite a good one with time spent on OpenMRS 1.11 testing related issues and also working on GSoC CSM-5 which i resolved.

I hope to have yet a good next week working on both testing Chart Search Module and OpenMRS 1.11 by engaging the OpenMRS community 🙂

GSoC 2014

GSoC 2014 – Week 9 Update – Releasing Chart Search Module 1.0

Hi dear reader, here is my update for this week, by the way, this is the week in which we have released the first version of our Chart Search Module for Reference Application 🙂

Monday 14/07/2014

– Worked on CSM-55,

– Committed and opened up a Pull Request, see

– Tried to attend the project management call

Tuesday 15/07/2014

– Cleared url issue with ajax to link directly to fragment controller method

– using @RequestBody JSONObject to send data from search page to controller as phrase, patientId, categories

– Spl the passed JSONObject to use passed objects from the ajax/view and using it to search and retrieve results.

– Blocker: (1) Ajax Call

+ Communicated with my mentor about the above blocker and cleared it

+ Finished work on search with ajax

+ Supported searching when a delay of 2s in typing is detected

+ Supported searching with double quotes without adding a backward slash before them

+ Supported displaying detailed results for the first result

Wednesday 16/07/2014

+ worked on updating category filter on every searching

+ Supported keeping checked categories checked after a search

+ Added the above commit that was later merged into repo repository

+ Passed by on University call

+ Participated in OpenMRS’s Social hour

+ Planned for 1.0 release for Chart Search Module


+ Worked on OMRS 1.11 Release, setting up test server.

Thursday 17/07/2014

+ Built skip test 1.11 war file to deploy on live server , but wouldn’t deploy

+ Developer Forum

+ Then proceeded with Chart Search Module Release

– Blockers: (1) while

running clean install of omrs1.11/api

+ Prepared Chart Search Module’s release

+ Performed Chart Search Module’s Release

Friday 18/07/2014

+ Released Chart Search Module 1.0

+ Created initial documentations for Chart Search Module

+ Uploaded Chart Search Module 1.0 to module’s repository

+ Wrote a weekly blog post

+ Submitted a weekly update

GSoC 2014

GSoC 2014 – Week 8 Update – Searching With AJax

Hi dear reader, am glad to be sharing with you again another update for what I have been working on the whole of this week,

Summery of tasks:

  • Hand over all search functionality of the chart search module whether it is by pressing search button, or pressing enter or pressing OK button on the categories filter UI component to Ajax, instead of reloading the whole page.

  • Automatically update search results without clicking “search” on the chart search page.

  • Et-cetera.

I had of a thought of creating another ticket for the first task but never theless I decided to work on it while working upon the second as it described in this ticket.

With this week’s task, I have been working with Ajax, jquery and SpringMVC for my first time and it has been a nice learning experience for me, I have gone over several pages over the internet trying to solve these issues and done a lot of reading and side applications testing, where by I had to create several small webapps about this and how to achieve it,

At first I worked upon it and was returning a full page from the server which I would then populate on to the whole body but I knew that this of-course much time consuming and a bad practice so I advanced in rather returning grenerated search results from the controller on to the view, and I had to look at several ways of achieving this, tried out many but this seemed to grow into some blocker on my side and so I shared it with my mentor and for much time this week we have been troubleshooting this.

As you can possibly follow up several commits I had to make some of which I even reset from here.

And then today I again encountered a troublesome issue of having openmrs reference application modules failing to start which has still taken much time for me troubleshooting it. But nevertheless am determined to finish these tasks either this week or as early as next week.

Any assistance about the shared blocker in my blog is highly appreciated, you can just visit the github link above to share what you think about them or comment over from here.



GSoC 2014

GSoC 2014 – Define search syntaxes

Hi dear reader,

This week began with such joy as when I received an email that I had passed mid-term evaluation, thanks once again to Google Summer Of Code and OpenMRS for this wonderful opportunity to students.

This week I have been focusing on providing several opinions to the user after he/she makes a such with in the Chart Search Module, I have been working on CSM-25 which deals with Defining search syntax, and I have handled the greatest parts of it. Here is my progress through out this week.

30/06/2014 – Monday

I had my week plan drawn for which I would handle the above ticket/issue, I also wrote some code to test out my plan.

01/07/2014 – Tuesday

I wrote code that deals with separating the text/statement that the user enters in the search box, so that we can handle the search in word form instead of the full sentence, after which we can search for each word separately or a near by word to the specified.

Say for-example if the user searches for “Blood Pressure”, we search for “Blood”, “Blood*”, “*Blood*”, “Blood~” “Pressure”, “Pressure*”, “*Pressure*”, “Pressure~”.

The * character representing all other options, and then ~ character, which handles a search for fracture to return any results with “fracture”, “fractures”, “fracturing”, etc in the name or answer.

I also added use of OR in the search phrase, and handled a search for a numeric like 36 to include 36.*

02/07/2014 – Wednesday

Added support for searching parts of words

Then made a provision for the user to search for a non modified phrase that may contain words, for-example a search for \”Blood Pressure\” returns only where the exact phrase exists.

03/07/2014 – Thursday

Added a way of allowing the user to search over a given field that is searchable, something like “obs:blood” though I still have some issues with this so-far, am handling this with my mentor.

04/07/2014 – Friday

Visited and Communicated with my mentor one on one, about mid-term evaluation and other GSoC related issues.

I then wrote this blog post, and submitted a weekly update.


We have not yet merged this week’s code into the module’s repository on github but you can checkout the Pull Request from here.

Please respond back in-case you have anything you would want us to know about this week’s task or even the past tasks.