dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #22775
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 11052: Analytics, supporting reporting rates with periods as filter
------------------------------------------------------------
revno: 11052
committer: Lars Helge Øverland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Tue 2013-05-28 16:01:31 +0200
message:
Analytics, supporting reporting rates with periods as filter
modified:
dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/DataQueryParams.java
dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/DataQueryParams.java'
--- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/DataQueryParams.java 2013-05-28 13:48:36 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/DataQueryParams.java 2013-05-28 14:01:31 +0000
@@ -411,6 +411,22 @@
}
/**
+ * Returns the period type of the first period specified as filter. Returns
+ * null if there is no period filter.
+ */
+ public PeriodType getFilterPeriodType()
+ {
+ List<NameableObject> filterPeriods = getFilterPeriods();
+
+ if ( filterPeriods != null && !filterPeriods.isEmpty() )
+ {
+ return ( (Period) filterPeriods.get( 0 ) ).getPeriodType();
+ }
+
+ return null;
+ }
+
+ /**
* Returns the number of dimension option permutations. Merges the three data
* dimensions into one prior to the calculation.
*/
=== modified file 'dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java'
--- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java 2013-05-28 13:48:36 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java 2013-05-28 14:01:31 +0000
@@ -52,6 +52,7 @@
import static org.hisp.dhis.organisationunit.OrganisationUnit.KEY_LEVEL;
import static org.hisp.dhis.organisationunit.OrganisationUnit.KEY_USER_ORGUNIT;
import static org.hisp.dhis.organisationunit.OrganisationUnit.KEY_USER_ORGUNIT_CHILDREN;
+import static org.hisp.dhis.period.PeriodType.getPeriodTypeFromIsoString;
import static org.hisp.dhis.reporttable.ReportTable.IRT2D;
import static org.hisp.dhis.reporttable.ReportTable.addIfEmpty;
@@ -307,6 +308,8 @@
Map<String, PeriodType> dsPtMap = dataSourceParams.getDataSetPeriodTypeMap();
+ PeriodType filterPeriodType = dataSourceParams.getFilterPeriodType();
+
// -----------------------------------------------------------------
// Join data maps, calculate completeness and add to grid
// -----------------------------------------------------------------
@@ -318,10 +321,10 @@
List<String> targetRow = ListUtils.getAtIndexes( dataRow, completenessDimIndexes );
String targetKey = StringUtils.join( targetRow, DIMENSION_SEP );
Double target = targetMap.get( targetKey );
-
+
if ( target != null && entry.getValue() != null )
{
- PeriodType queryPt = PeriodType.getPeriodTypeFromIsoString( dataRow.get( periodIndex ) );
+ PeriodType queryPt = filterPeriodType != null ? filterPeriodType : getPeriodTypeFromIsoString( dataRow.get( periodIndex ) );
PeriodType dataSetPt = dsPtMap.get( dataRow.get( dataSetIndex ) );
target = target * queryPt.getPeriodSpan( dataSetPt );