Monday 16 September 2013

Pencils Down Week

Hi Everyone :-)

This might be the last blog post regarding the work done in GSOC 2013 , Not that the work is going to stop :-)

First of all sorry for the delay of the blog post, It has been a hectic week! And well to speak officially my coding must stop today! except for some scrubbing and small changes.

Well, it had been a great summer for me , for i have learned things that i wouldn't have if i had been working in a corporate office. I can openly declare that what i have learned this summer is more than what i have learned my whole undergrad life. And i must thank all of this to my mentor Roger Friedman.

You might wonder what i have gained so much in these three months that i consider more than my engineering study! I agree in theory what we learn in college cant be compensated but, what I've learned here in these three months is more of a practical learning which i consider more important. So below is the list of things I've learned and gained this summer.

-->Spring 3.0
-->Openmrs Architecture
-->Coding Conventions
-->Information Exchange Standards in the Health Domain(SDMX-HD)
-->Presentation skills
-->OpenMRS module structure
-->Importance of right tools in the health care domain(DHIS)
-->Working towards a Solution
-->Importance of open source contribution

Finally, but the most important of all :

-->Roger (My Mentor,I will be grateful to this person my whole life)
-->A Community,Special mention : Daniel Kayiwa, Jeremy Kieper, Mike Seaton(they helped me with the problems I've faced this summer and helped me code better).

Some of you might wonder why do i mention things other than software, well these things matter and will play a major part in a person's life, in my opinion the things that i learned other than software are the ones that will be shaping my life. How? I would be doing my masters next fall and it would most likely be in Health Domain or in Computer Science with a health domain side option :-) Thank you OpenMRS and Thank you Roger. I will be contributing to the OpenMRS community in whatever way possible and encouraging my fellow mates to participate in OpenMRS.

Now, Getting back to the work aspect of the blog:

As far as the calls with Roger, well, we'd been having chats and calls daily and there was a day when we had to work 10 hours straight!

And the work completed this week :

1)Location Mapping Page

2) Results History Page

3) Run Reports Page

4) Report Parameters Mapping Portlet

5)Solved Git conflicts that had been hindering the project's progress


The Project is not yet release ready. But we are planning to release it in a couple of weeks.

It been an evolving project from the start when we only knew the what was needed -- a way to integrate Dhis and OpenMRS in a way that would be the simplest to the user and would require his minimal involvement. Just to indicate how evolving it has been, it was envisioned to do this project SDMX-HD was a main part of it, i.e the way in which the data would be exchanged , but later through investigation it was found that the main focus must be on making it simpler for the user rather than to focus on the exchange format.

You might ask how user friendly is this compared to the other modules that exist because there are other modules that does the integration.I'll list out the prominent features of this module:

All the user needs to know in the OpenMRS environment to be able to use this module

1.Creating Cohorts
2.Mapping the Cohorts(Selecting the appropriate cohort from a drop down for a Data Element* and Category Option*)(* being DHIS Terminology)
3.Running the Report(Clicking on the play and Entering the Parameters for the Report like start date and location)

How is Our module different in terms of functionality :
 (1) Support for multiple servers
 (2) Downloading of metadata(of the respective server)
 (3) Using cohorts rather than SQL queries as what user has to create
 (4) Completely compatible with Reporting Module (OpenMRS)

Thank you for following my post :-)

Friday 6 September 2013

31st August to 6th September

Calls With Roger:

Had a discussion with Roger daily mainly regarding the Design of Reporting Part and integration problem that was interrupting the work after the integration of code. And others were status update. Worked together to understand the Reporting module's behavior.

Work Done this Week :

1) Reverted the code back to the previous version to resolve the integration issues, and Integrated parts of code necessary.

2) Resolved the wiring issues and cleaned up the xmls and converted everything to be according to the spring version 3.0

3) Designed the Reporting Integration.

4)Started work on the resultHistory.jsp .

5)Solved the UI issues mentioned in the last week's blog.

Friday 30 August 2013

23rd to 30th August update

Calls With Roger:

Had many calls and chats with Roger , mainly related to two particular issues. One regarding the Reporting module's CohortDefinitionService, and the other being the portlet model and it's behavior. Other calls were status update. Today's call was about the integration of Roger's code.

Work done this week:

1) Internationalization
2)Created new Report page
3) Created the new portlet model for the options, dataElements and Report Templates page.
4)Worked on an issue of Reporting module for it's integration into our module
5) Integrated Roger's code , related to jaxb integration.

Main Work Remaining :

1)Integration of the Reporting module's creating reports and extracting the data.
2)Secondly the total workflow of jaxb integration
3)Some minor Ui Changes and functionality changes

Friday 23 August 2013

Week 16th to 23rd August

This week I've been completing the refactoring of the code for the java classes and the view pages. And some methods have been added. The new methods added needed some lazy loading problem handling that required some time.

Calls with Roger:
 Had couple of calls with Roger regarding the hibernate exceptions and lazy loading problems.
Discussed about new page models and further goals of the project.

Work done this week:
1)Code refactoring
2)Setup of database with the new data model and data.
2)New methods for some pages.
3)New page models according to the call with Roger.
4) Modal windows have been added instead of in page editing tables.

Thursday 15 August 2013

August 12th to 16th Update

As the earlier blog was written on the 12th of August, it explains the state till that day. This is the continuation of that blog.

This week I've looked at reporting api services that will be useful for me to incorporate in this module. And started to refactor the whole project as we know it.  The tables have been changed and many new tables have been added to better accommodate the DHIS data and easily retrieve and utilize them. The new .hbm.xml files , dao files, service files and hibernate files have been created. The forms are in progress and 3 forms are left out until they reach the state before refactoring.

The call with Roger was held yesterday. It was a status update call. Roger had been looking at jaxb connecters and the classes that would be useful for the data transfer. There were some github problems where the code checking was not possible. Anyway, as this was only  status call and there wasn't much to review until we move forward from the point where refactoring was started, Roger said that for further interaction it would be best to have a call after some extra work has been started.

This coming week, the goal is to complete the refactoring part, add the reporting api methods, get the location and run reports forms to a viewable state. Start work on Internationalization and learn the information given by Roger on Jaxb and probably start work on data exchange.

Monday 12 August 2013

Code Review Week

Hi, Sorry for the late blog, it had been a very busy week!

This was the code review week whenre we had setup a cal with James Kariuki , Bob, Jolliffe,Saptarshi Purkayastha. Due to some call clash issues and connectivity issues Bob and Saptarshi could not join the call. But we had their review through mail where they mentioned that they were happy with the direction how the project has been progressing. So we had the call with James and had gotten positive reviews about how the project handled the diasaggregation issues of the data being exchanged.

The week that had gone by I've been working on completing the pages completely and creating the workable formats and created two new dummy pages.So, every page needed for the project has been created.

I had many calls with Roger, the previous week where we discussed like what changes we would like to have and how.

This week , i have a lot of refactoring to do as a new table format has been proposed by Roger which will solve some of the issues and will be a better model.There will be changes in the whole structure of the project.
Then there are some other tasks of fully making them working as in presenting them to the end user, that needs to be completed this week.

Sunday 4 August 2013

Midterm Week!!

First of all, i am very very happy to have cleared the mid term and congratulations to everyone who passed it :).This week had been pretty busy!

The coming few weeks would be busy as well :)

There were many calls with Roger, lot of them involving design of the pages and the tables. One even was the review of my presentation. It is all thanks to Roger that i didn't goof up in my presentation in the mid term!. He meticulously went through my presentation and pointed out the mistakes i was making and helped me resolve them.

I've been working on getting the pages ready and was successful to some extent :).  Almost all the pages are done in basic working state excepting one.  The database is also almost final, there might be some minor changes but the database is also in working state.

So the priority #1 for the coming week would be getting the full functionality of all pages ready! after that i would have to research on the consummation of the data from the Dhis2 server.

Saludos, Maurya :)