GSoC Week 12

Hi everyone,

This week I made some slight changes in different CSS files to improve the look of various pages of the module. With the functionality part of the module finished I have started preparing End Term Presentation which I would be uploading by Monday night. Next week as given in GSoC guidelines I plan to finish any documentation of the module that is needed.

GSoC Week 11

Hi everyone,

This week I was not able to achieve much as I had to attend a camp organised by my college. However I was able to add some functionality to some pages. Some pages lacked navigation options which I have added this week. I had previously not added breadcrumbs and Logout options for registration pages and have done so in this week. Next week I’ll be giving finishing touches to the project and preparing for the final presentation.

GSoC Week 10(July 21-July 27)

Hi everyone,

I started this week my completing RegisterPatient Fuctionality of the module and solving a bug because of which location for a particular session was not being stored correctly. Now the tasks remaining for the project completion is improving the UI. I focused on improving the initial responsiveness of heavy pages, therefore I am defering(i.e loading them after the initial content has been displayed) Javascript files(those that are not needed for the initial content). Rest of the week i worked mainly on the style guide of the module.

GSoC Week 9(13th-20th July)

This week I had two tasks – to implement the functionality of registrationApp module and the other thing was to figure out a way to reduce the size of large JS files which are used in various pages such as FindPatient Page and PatientDashboard  page. I was thinking along the lines of minifying those JS files and compressing them to reduce the data that has to be transferred over the server as almost all web browsers today support compression and decompression of files. I also had a discussion over the mailing list regarding this topics where I got valued inputs for Darius, Burke and Lluis. While i got to know from Burke that OpenMRS already has GZiP turned on, so all files between the server and the browser are automatically compressed and decompressed. So the size of the pages would already be reduced to some extent.

Now the next step in making this module more light weight would be to focus on the initial responsiveness of specific high value pages( an advice given by Darius).

Meanwhile, I also completed the above mentioned task of implementing RegistrationApp module. 

Now from the next week onwards I’ll start with the style guide of the module, while continuing my efforts to find out ways to reduce size of large JS files.

I am adding screenshots of various pages.

Login Index Find_patient RegisterPatient Dashboard


GSoC Week 8

This week I continued with adding apps on the home page of the module and implementing their respective functionalities.  The apps have the same functionality as the ones in the coreapps module. The issue now is to decrease page size. These pages currently use a lot of javascript. They involve downloading large library files of JQuery. The options  I see now are to minify all other javascript files. However this would not reduce the page sizes a lot. 

The other thing I wanted to try out in the coming week is to try if it is possible to send compressed versions of these files (and whether or not it is a good option), as if it is, it would help in reducing the page size by almost 80%. 

In the next week, I also have to add functionality of registrationApp module in the Lite module itself as currently it uses registrationApp module for registering patient.

My latest commits can be found here

Week 7

Hi everyone, this week I had to start configuring apps on the home page of the module. The apps I had to configure were to have the same functionality as the Registration App and CoreApps module. The only difference was that the size of the pages should be much smaller than currently used in these apps. The way I saw it I had two options:

1. The first one was to use two extra modules corresponding to Registertration App module and coreapps module with the only difference being the amount of Javascript and css used in the page views. I modified the page views of these modules to see what can be the minimum size of the pages while achieving the required functionality. I tried doing that and these are the screenshots



The above screenshot shows the register patient App page with a size of 20KBs only.


2. The first approach while easy to implement doesnt look quite right. Making new versions of coreapps module and registerpatient app module and making the light module depend on them is not necessary when the same thing can be achieved via a single module. So I moved to this approach which tries to combine the functionality of coreapps module, registration module and of course reference application. I successfully had written the code for Find patient App and in the coming two week will try to implement the functionality of all the apps. The Image of the home page shows two Find Patient App, one of them is the one that is dependent on the coreapps  module and the other one which is a part of the Lite module.



GSoC Week 6

Hi everyone, so this was the week of mid-term evaluations. Glad to have passed the midterm evaluations 🙂 . Unfortunately I could not achieve a lot during this week but here are the things that I was able to do

1. Read about Coreapps module and tried to understand the code of the module.

2. Was able to add links of a few more apps to the homepage of the module, but I am getting some errors while using some of those links.

During the next week I have to decide whether to modify and use the coreapps module for the project or not as I believe certain features of the coreapps module are designed specifically for the referenceapplication.

GSoC Week 5 (June 16th-June 22nd)

This week I started with configuration of some apps on the home page of the module. This is how the home page looks after the addition of some of the apps.



I am facing an error while trying to use Register Patient App and have sent a mail to the dev list regarding the same. Hopefully I would be able to solve the error early next week.The following is the screenshot of the style guide



The style guide that is currently being used in the module is the same as that of the reference application. I will be modifying it considerably to suit the needs of the module.I will also be adding more apps in the coming weeks to the home page.

Regarding next weeks tasks I have to chalk out some details with Jeremy Sir.

GSoC week 4

Reference Application makes use of an extra module-ReferenceMetadata to set required global properties and any necessary configurations that are required to make the application functional. So this week’s task was to imitate the same behaviour for the OpenMRS Lite module. So I had to make a decision of whether to use ReferenceMetadata module(that is to make OpenMRS Lite module depend on ReferenceMetadata or to have these properties declared and used in the Lite module itself). So for now I decided to make use of ReferenceMetadata as it is.  I made the required changes in the module activator for this purpose. I also made changes to authenticate the users data entered in the login page.



The home page 




Tasks to be accomplished in the next week

1. Configure different apps used in the reference application.

2. Make a video for the mid-term presentation.

Work done in the third week (2nd June-8th June)

 This week I continued with the creation of Login page for the module. The task at hand was to override the current Login page that is encountered in the Legacy OpenMRS and redirect the user to the new Login page. I created the login page and wrote the necessary controller for it by seeing how it was done for the reference application. I also created the Home page for the module.


This week also involved a lot of reading of the UI FrameWork module ( and AppFramework services (


I also made my first commit this week.


Challenges faced

The challenges I am currently facing are how to use data from different modules on which this module depends.



A fine site