Wednesday, August 19, 2009

Google Summer of Code 2009 wrap-up

Google Summer of Code 2009 officially ended on August 17, 2009 at 19:00 UTC (12:00 PDT). I had an amazing time this summer. While stressful at times, it was well worth it.

I would like to thank the following people for my success this summer:

My mentor Mike Seaton for helping me throughout various misunderstandings surrounding the project's requirements. I probably made him work more than he had to. I attribute the success this summer to that one factor. This man is quite brilliant and knows his stuff.

My backup mentor Darius Jazayeri, for stepping in and helping at times and providing guidance when necessary. He is truly a brilliant man.

Ben Wolfe for answering any questions I had. He didn't have to help, but he did. I am very grateful.

Paul Biondich and Burke Mamlin for believing in me and giving me a second chance this summer. Did I mention these guys are doctors? Burke, an internist and Paul a pediatrician. Sorry for clumping you guys together.

Finally, without Leslie Hawthorn, Cat Allman, and Ellen Ko from Google, this program would not exist. They deserve a huge thank you. These three women are amazing. Thank you so much!!

Monday, August 17, 2009

Facility Data Module User Guide

The Facility Data Module is a tool to collect non-patient centric aggregate data for reporting to external funding sources.

To download it use the svn version: do a checkout:
svn co http://svn.openmrs.org/openmrs-modules/facilitydata

To create a report:

1) Create all your questions

2) Create all of your form sections

3) Finally add all the sections to your form schema

I'll go into detail how to do each:

Creating/Managing questions

From the admin screen: select "Manage Questions."



Now, once on the question management page you will see a list of existing questions. under the "Action" column is a garbage can image -- this deletes the question from the database and is irreversible.

Once created, a question's data type cannot be changed, this is due to the design.


Now, once on the "Add New Question" page there are several properties. Most of which are required.

1) name - required
2) question data type - required
3) aggregation method - required
4) description - optional

Question Data Types are as follows:

NumericQuestion - a question that has a numeric answer (optionally has a min/max value and whether or not to allow decimal values.) -- these fields show only if you select "NumericQuestion."

BooleanCodedQuestion - a coded question with 3 answers: "t","f","not applicable"

StockQuestion - a question that tracks stock of vaccines, supplies, etc. This is a special coded question with the following answers: "not_stocked_out", "stocked_out", "expired", "not_applicable" and the comments field used to track the numbers of days stocked out and reason.

To add more questions after you save a question -- click "Add New Question" link above the form box.

Creating/Managing Form Sections

Once you have created all of your questions -- it's time to organize them into sections. You can easily navigate to the "Manage Form Sections" page from the "Add New Question" page.


Now, once on the section management page -- you'll see a list of all sections saved and the associated schema. Next, you'll want to click "Add New Form Section"


Now, once on the add questions page: you'll enter:

1) Display Name - required
2) Description - optional
3) Form Schema -optional (can be deferred)

Mentioned seperately is questions you're adding to the section (these are referred to as form questions by the system).
1) Name
2) Question Number
3) Question
4) Description
To add a question: click "Add New Question" to remove a question, click the "Remove" button next to the button (see image after the one below).


The section below is a section that was defined programmatically in a mock schema that was designed and used throughout the summer.
As you can see, there is a "Remove" button next to each Form Question in the section.

Creating/Managing Form Schemas


From the Section creation page: click "Manage Form Schemas"

After clicking that link you will see the page below. It allows you to delete a schema, and information relevant to te form schema.


Now, after clicking the "Add New Form Schema" link you will see the page below. The following information is needed:
1) Display Name - required
2) Data Entry Frequency -required
3) Validity Period -optional
4) Description - optional
5) Sections specified in this form schema (and the ordering) -- just drag them into the left-side of the pane.

Now, for the shortcomings:

  • Ordering of questions cannot be changed once saved

  • Sections cannot be associated with two schemas at once.





Viewing and Entering Data


Will be completed at a later date.

Tuesday, August 4, 2009

Project Update

So we're in the home stretch folks! 13 days to go until the "Pencils Down" date! Hope everybody's project is going well. Here's how mine is going:
  • Reports can be saved and reloaded (with all relevant data filled out (fields etc -- reports can be viewed in editable or "view only" mode).
  • Each component of the report (Questions, Form Questions(allows a question to exist on multiple reports), and Sections can be created in isolation
  • A page to view the status of a report (complete, partially complete or incomplete) is done for reports that are to be entered daily in a monthly calendar view; monthly still needs to be completed.
Overall, i feel the project is progressing well -- I expect to finish either on time, or early. (Let's hope for early!)

Cheers!