← Back to team overview

dhis2-users team mailing list archive

Re: [Dhis2-devs] Request for Assistance

 

            Thanks, Ola.  

            I am still grokking the idea of DHIS2 interpolating or averaging automatically when the period covered by a report is a sub-period of, crosses the boundary of, or contains multiple reporting periods for its data elements.  The solution seems to require extensive logic, I need to understand it better and get comfortable with it.  Further, because periodicity is a property of the data set, I need to think about whether it would always apply to all the members of the dataset, or if not the consequences for data entry.

            So much to learn, so little time.  

 

From: Ola Hodne Titlestad [mailto:olatitle@xxxxxxxxx] 
Sent: Friday, April 30, 2010 9:33 AM
To: Friedman, Roger (CDC/OID/NCHHSTP) (CTR); dhis2-users@xxxxxxxxxxxxxxxxxxx
Cc: Johan Ivar Sæbø
Subject: Re: [Dhis2-devs] Request for Assistance

 

Hi Roger,

I think the kind of data values you are talking about here would fit under what we in DHIS call the OnChange PeriodType (frequency).

A dataset with onChange data such as your site surveys, which sounds similar to the WHO Service Availability Mapping (SAM) dataset, has "floating" validity periods for the values rather than fixed routine periods. If a facility reports that it has 10 maternity beds in 05.01.2010 then you would get a datavalue with a start date of 05.01.2010 and an enddate of 31.12.9999. Then when something changes, say in 10.12.2010 they get another 2 beds, so totally 12 beds, then you would enter the new value 12 with a start date of 10.12.2010. What happens then is that you get two values in the system, one with the value 10 with start date 05.01.2010 and end date 09.12.2010, and then the new value 12 with start date 10.12.2010 and end date 31.12.9999. So when you run a report for January 2011 or later, the valid data value would be 12, while the value for used for reports for Nov 2010 would be 10. For Dec it would be an average for the month, weighed on the number of days each value is valid in that month (since the change took place in the middle of the month). That is the logic of data values registered for data elements with the OnChange PeriodType.

Unfortunately I don't think this is fully implemented yet, at least I am not sure that you can create a dataset and enter data for these types of periods. It has been in the pipeline for some time, but been delayed due to other more pressing features. The business logic of storing and processing such values are in place though, so it is "only" a matter of adding this functionality to the data entry process I think. Lars or others, please correct me if I am wrong here, don't really have time to check this right now.

Roger, would this feature cater for your site survey data needs? If not, what would be needed do you think?


Ola
---------

On 30 April 2010 14:52, Friedman, Roger (CDC/OID/NCHHSTP) (CTR) <rdf4@xxxxxxx> wrote:

Ola --

            Sorry not to get back to you sooner.  Thanks for the info.  

            Re 2, site surveys are conducted on a rolling 5-year cycle with new data added or revised when they open, when they are renovated or when they suffer a catastrophe.  So we are only interested in the most recent data.  Another use case of this would be using the most recent available data as a proxy for missing current data.

Thanks, Roger

 

From: Ola Hodne Titlestad [mailto:olatitle@xxxxxxxxx] 
Sent: Thursday, April 29, 2010 10:45 AM
To: Friedman, Roger (CDC/OID/NCHHSTP) (CTR)
Cc: dhis2-users@xxxxxxxxxxxxxxxxxxx; DHIS 2 developers; Johan Ivar Sæbø
Subject: Re: [Dhis2-devs] Request for Assistance

 

Hi Roger,

Lot's of good questions and reminders that our documentation on reports is not completed.

I don't have a lot of time right now, but will try to give you some pointers anyway. I'll try to find more time tomorrow to continue, and hopefully others like Edem and Jason could join in.

See my text inline..

On 29 April 2010 14:07, Friedman, Roger (CDC/OID/NCHHSTP) (CTR) <rdf4@xxxxxxx> wrote:

Listers --

            I am trying to build some reports, and this part of the user manual has no text.  Here are some of the questions I have:

            1.         What triggers a roll-up of data through the org hierarchy?

Aggregation of data takes place either as a stand-alone data mart process which populates two database tables (aggregateddatavalue and aggregatedindicatorvalue), or as a built in service to some of the other tools (report tables and charts, and perhaps more...).

You can read more on how to set up your datamart exports here:
http://dhis-developers-list.1563109.n2.nabble.com/Aggregation-in-the-datamart-and-orgunit-level-specification-tt4627202.html#a4627378

but that part definitely lacks in the manual. A more conceptual introduction to how DHIS aggregates data up the hierarchy and across time can be found in section 9.1 of the manual.

Datamart is mainly needed for external reporting tools that are not integrated into the DHIS2, like Excel pivot tables. The mapping component also still requires manual datamart exports I think (although that needs to change).

Report tables (Service->Reports->report Table) are a bit like the datamart, but more specified reporting data sources with names written out( not only IDs), with cross tab options (periods, data elements, indicators, or categories) on columns, and they can be set up with relative periods (reporting month) and orgunit parameters to be easily reusable with e.g.  the same monthly report template design from BIRT every month.

Report tables can be linked to report design templates in the integrated BIRT or Jasper reports module (Service->Reports->Standard Report).

I would guess that either BIRT reports or Jasper (designed in iReport) combined with report tables, and sometimes to your custom sql datasets would meet many of your reporting needs.
 

	            2.         How can I get a "most recent" period for reporting site survey data?  (I find much about relative periods but no way to select/specify)

I am not sure I understand your question, could you clarify a bit more or use an example?
When you run a predefined report table that has reporting month as a parameter then the report table gets populated with the month selected by the user, would that help? A BIRT report design linked to a report table would then get the same parameter popup before generating the report, if set up as a standard report in DHIS with reference to the design template and the report table(s) needed.

 

	            3.         How can I partially roll up disaggregations (e.g. if numerator is disaggregated sex-age and denominator is only disaggregated sex; or a data element is disaggregated sex-age and I want to display it by year by sex)?

The report table supports categories crosstabbed on columns and include subtotals and totals for those categories. Have a look at the report table type called Data Element Dimensions Table. When defining indicators you must add together the various categoryoptioncombos to form your partial roll-ups, this right now is a bit tedious if you have lots of options combined, and for 2.0.5 there will be support for picking subtotals and totals for data elements and categories directly when defining indicator formulas.

 

	            4.         How can I get disaggregations in a "banked" way (e.g. like default input format) for reports?

The default input format (data collection form) can be printed with raw or aggregated data using the dataset report functionality. You could also use the report tables for data element dimensions (categories).

 

	            5.         How can I get disaggregations x orgunitgroupset?

Right now that is only possible in external tools and using your custom sql, but will be supported in report tables from 2.0.5. At least to have report tables aggregated by orgunit groups within one group set, e.g by facility type in stead of the individual facilities themselves.
 

	            6.         Can I create org groups/data elements based on indicators (e.g. high incidence/low incidence districts)? 

Sounds like a great idea, but not supported. We should write up a blueprint for this.
For now you could set up Excel pivot tables that would give you this kind of data analysis view to the data.

 

	            7.         How can I get data on a period per column basis?  How can I get both period per column and cumulative or year-to-date ?  How can I get period per column with corresponding period of previous years?

Report tables with the period dimension ticked as one of the cross tab dimensions. Under relative periods you could select both reporting month and this_month_last_year, and if periods are crosstabbed and you select reporting month as a parameter then you would get these two columns in your report table, and combined with a few selected indicators on columns if you tick indicators as crosstab, or simply list indicators on the rows of one indicator column if not set as cross tab.

	            8.         If I have to build SQL for some of these, can I store this SQL for later reuse?  Can I trigger the SQL to run during roll-ups?

Jason has been working on something like this I think. I know that there are plans for 2.0.5 to build in a few so called pivot views (sql queries) into the system, but don't know the details, and I'm not sure they will be completely custom for the 2.0.5 release. 
 

	            9.         What are the mechanics of locking for roll-up and report generation?  Do I have to worry about people running reports during monthly peak data entry load?

I guess you could block the datamart module for some of the users and make sure a system admin generates the necessary datamarts for all users. For reports it is possible to run the reports from existing data source, so if one users has already generated a report for March 2010 then the report table is already populated and can be reused by other users later. We could think of ways to block the option to run the report with new data source (which triggers the aggregation process), but that sounds complicated. For now what you could do is to train users to use the right button for running reports.
 
 

	I was wondering if somebody would have some time for a phone call or some type of internet work sharing to help me with some of this stuff.

Not today, but maybe tomorrow. I'm a bit rushed now preparing for my Sierra Leone trip on Sunday. I will be there all next week. 

WE really need to get our acts together and document all of this... sorry.


Ola
---------
 

	Thanks, Roger

	 

	 

	
	_______________________________________________
	Mailing list: https://launchpad.net/~dhis2-devs <https://launchpad.net/%7Edhis2-devs> 
	Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
	Unsubscribe : https://launchpad.net/~dhis2-devs <https://launchpad.net/%7Edhis2-devs> 
	More help   : https://help.launchpad.net/ListHelp

 

 


References