A Django site.
August 6, 2009
» “Garage model” Leprosy MIS

While the world’s managers and venture capitalists have lost faith in the “garage model” of business, I am still a firm believer that the best innovations come from individual efforts and not concentrated directional movement in large organizations. Today, was yet another day in the field showing how homebrew software has innovations that many large software suites lack.

Just to give a background on what I’m talking about - a product that I’ve been working on lately is a patient-tracking system for the National Leprosy Eradication Programme. Since DHIS2 is the widely deployed HMIS application in India and aggregated reports for the Government of India are generated through DHIS2, we needed some kind of patient-tracking, yet required aggregate numbers of these patients through DHIS2. For this purpose, the most ideal way we found out was using OpenMRS for the patient-tracking and then generating reports through DHIS2. Thus, we are able to create rich and generic medical records of a leprosy patient, which can later be used not just for leprosy patient care, but future medical treatment of the person for any other disease or health service provisioning.

But today when I arrived to demonstrate this system in Maharashtra State Health Society, I was pleasantly surprised to see a homebrew application. We finished our presentation on the system, demonstrated the application, decided upon pilot process, future meetings and the whole process before we can go live with the system state-wide. Just after we finished our stuff, one of the leprosy health officers told us that he had privately worked on something that was suited for the NLEP program. Most people just ignored his comment, but I was eager to see what he had developed.

And when I saw his application, I was very much stunned. A really nice and intuitive user-interface using Adobe Flex, neat use of data using good-looking reporting and visualization tools, basic reports using excel sheets and a neat-little data model, similar to the ideas in OpenMRS. Maybe the data-model is not suited to a medical records system like OpenMRS, but it very well met the requirements. From what I learnt, it was developed in about a month’s time by one developer, who happens to be the son of this medical officer.

“Commendable effort and nice design decisions”, is what I complemented the medical officer. But what got etched in my mind is that, some best software are written in “that car garage” on a single computer.

July 11, 2007
» Updates

One thing I'm learning during the SOC is that updates make a difference. I got back from a 2 week trip to San Diego, a holiday of sorts, much required escape from college !

I've been working with Hugo on getting Open Flash Charts (OFC) to fit in well with the OpenMRS environment. First off, here are few things that I have completed:

1. Run through the Actionscript code of the OFC to understand how it works. This was tough initially because almost all the code was in a single .fla file that could be read only by the Flash IDE. The most recent update for OFC came in after I had tried to do the same thing : Split the code into various classes for easy handling. Now the code is far more structured and much easier to work with.
2. The data format required by OFC was fixed, I worked on it's interaction with Javascript and now the chart can be rendered by calls made to it by Javascript, all the data is passed into it as one graph object. This simplifies the rendering and allows on the fly changes to be made without reloading the swf component. With simple AJAX calls, we can add, remove and alter data within the component. Also, since we will be working to integrate the swf with html elements in the page, this seems like a good option. A working page can be found here.

TODO:
The immediate todo list consists of 2 things:
1.What I am working on currently is the functionality of the chart to chart data in the form of tuples {(x1,y1),(x2,y2),...} instead of the current form of a data series {x1,x2,x3...}. Without this, it is difficult to plot a data series that is discontinous. This is very important because it will later allow us to scale the graph on the fly.
2. Use the DWR functions to get OpenMRS data using only javascript ! (I was ignorant about this until Ben pointed this out to me recently) I had worked on creating a servlet to generate the same data in XML and javascript on the client side to handle that XML. It helps to keep talking about your work, not only to your mentor but also to the rest of the folks with knowledge about the code base !

Once this is done (My personal deadline for both of this is the end of the week, but I want to get it done sooner.) I can get down the some actual visualization work.

Watch this space for more updates !