General Info

Topic: Reporting

Type of Project (Spike, Sprint, Epic): Sprint

Lead (Product Owner): James Arbaugh

Developer Lead: Mike Seaton

Known Developers Assigned (amount of effort in hrs dedicated to this work if possible): 

Sprint Dashboard: https://tickets.openmrs.org/secure/RapidBoard.jspa?rapidView=45

Source code at: 


Date: 11/14/2013-11/27/2013

How to Participate


The general process:

  1. New to OpenMRS sprints? Want help getting started? Join the IRC channel and say "???": I'd like to participate in the sprint!"
  2. Checkout code:
    1. Fork https://github.com/openmrs/openmrs-module-webservices.rest 
    2. Clone your fork: git clone https://github.com/YOUR_USERNAME/openmrs-module-webservices.rest.git
    3. Add upstream: git remote add upstream https://github.com/openmrs/openmrs-module-webservices.rest.git
    4. Fetch all branches: git fetch --all
    5. Checkout the sprint branch: git checkout sprint-201302
  3. Compile code:
    1. Run: mvn clean install
  4. Setup OpenMRS. Get  the standalone:
    1. Unpack and start openmrs-standalone.jar. Choose the demo database.
    2. Go to http://localhost:8081/openmrs-standalone/admin/modules/module.list and upload a compiled webservices.rest omod, which you can find in webservices.rest/omod/target.
  5. Pick a ticket from the available tickets in the top-left of the sprint dashboard page (listed below). Make sure it does not depend on a ticket that is incomplete. If you have any questions about the ticket, ask on the group chat
  6. Create a local branch for your ticket (see also our HOWTO for git, use 'sprint-201302' instead of 'master')
    1. git checkout -b REPORT-123 sprint-201302
    2. git push origin REPORT-123
  7. Do the ticket.
    1. Stage changes: git add -i
    2. Commit: git commit -m "REPORT-123: ticket title"
    3. Push changes: git push -f
  8. Issue a pull request for the 'sprint-201302' branch (see github help) or if you have push rights: whatever works for you! If you don't like pull requests, don't send them. Commit and push directly to the upstream repo. If you do like pull requests, fork the repo and send pull requests, but merge them right after. My favorite way is to work on the repo, but create local branches (without pushing them to the repo). Merge branches locally to the sprint branch and push to the repo.
  9. If you push directly to the repo check if tests for the sprint branch in reporting are passing: https://ci.openmrs.org/browse/BUNDLED-RESTWS0 (Favorite the branch to be notified about failures: Login into Bamboo, Choose Actions -> Favorite Branch)
  10. Join the daily scrum to share your updates





Need to know more about Goals? Click here.


Goals: Must Have, Should Have, Could Have and Won’t Have

Must Have means we must have this as part of the solution. It is a requirement or we should rethink doing this work.  This is what we will deliver before the end of the work period this also doubles as our DOD “Definition Of Done”

Should have means we would be embarrassed not to have it. We could technically produce the solution without it but people would be surprised.

Could have means anything else we could do.  But this does not always mean low priority.  But our selection of which could haves to include or exclude (or deliver later).  Also is considered low hanging fruit (if we are in this code already for x reason wecan deliver  y with little or no extra effort) or can be items or ideas for this module that can be packaged for a later spike or sprint.

Won’t Have means this will not happen.  It might be technically impossible, a taboo for our organization or out of scope. It does not mean “might happen or would be nice”. 


Must Have:

Should Have

Could Have

Won't Have



What should go into a Design ?  Click here for more information


There should be multiple design meetings.  The first starts off with a small group working with the leader to determine the high level scope of the project and then to break down into smaller pieces to eventually place as tickets.  Once those meetings havehappened use of the community design meeting time should be used to refine the tickets and if possible assign them to who will be doing the work.
Risks (these should be resolved prior to or during the design meetings):

Enter anything that is still questionable or worrisome that has not been answered: (open issues, potential concerns) Once a decision is made make sure that a summarized answer is included.

Example: Q. How will we handle issues with conflicting userID’s?  A. All ID’s will have an added identifier that is unique.

Effort Accounted For: (At the end of the design call all tickets should have an estimated effort and that total should be balanced against the known available effort of the developers assigned) (Yes/No)

 If not in balance in favor of success why and the action plan for remaining items
via IRC on the [#openmrs|IRC:Home] channel on freenode.

Use this channel for ALL debugging and random questions having to do with the sprint. Please avoid direct messaging to personal contacts. If you have a question, someone else most likely does too, and our geographically distributed community benefitsfrom public group discussion.

Sprint Break down: If tickets have not already been laid out or explained this is a good place for this.

REPORT-531 - Need easy way to run reports for "all locations that are tagged with X"

FACILITY-19 – Integrate Facility Data Module data into Reporting Framework

HSHOLD-3 -  Error while running sql: ALTER TABLE `household_obs` DROP KEY `household_obs_grouping_uuid` . Message: Cannot drop index 'household_obs_grouping_uuid': needed in a foreign key constraint

REPORT-288 – Incorporate the Location Hierarchy capabilities into the reporting module

            Note: If we’ve got REPORT-531 that could be used as a work-around to this ticket. It’d be nice to be able to specify locations either way when a report is run.  No need to have this ability at the preview screens for indicators/cohorts/etc.

REPORT-184 - Provide a means for more easily creating and adding saved Cohort Queries as count indicators in an indicator report

REPORT-450 - Automatically suggest keys and labels

REPORT-114 - Support running a report multiple times for a range of parameter options and merge these results into a single output document



 Risks: ?

Enter anything that is still questionable or worrisome that has not been answered: ?

Effort Accounted For: ?

Sprint Break down: ?

Kickoff Meeting

Kickoff meeting Date: TBD

Kickoff meeting recording:

(Meeting setup with known developers after the final design meeting, but prior to the start date):


During Project Notes


Notes (Click here to expand to Etherpad)


Post Project (Retrospective)


Retrospective (Click here to expand to Etherpad)



Additional Information:


Kickoff meeting recording: ??