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.