← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 19395: Analytics, indicator calculation, made code more robust

 

------------------------------------------------------------
revno: 19395
committer: Lars Helge Overland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Sun 2015-06-14 16:18:36 +0200
message:
  Analytics, indicator calculation, made code more robust
modified:
  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/data/DefaultAnalyticsService.java'
--- dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java	2015-06-14 13:15:06 +0000
+++ dhis-2/dhis-services/dhis-service-analytics/src/main/java/org/hisp/dhis/analytics/data/DefaultAnalyticsService.java	2015-06-14 14:18:36 +0000
@@ -276,11 +276,15 @@
     {
         if ( params.getIndicators() != null )
         {
-            int indicatorIndex = params.getIndicatorDimensionIndex();
+            DataQueryParams dataSourceParams = params.instance();
+            dataSourceParams.removeDimension( DATAELEMENT_DIM_ID );
+            dataSourceParams.removeDimension( DATASET_DIM_ID );
+
+            int indicatorIndex = dataSourceParams.getIndicatorDimensionIndex();
             
-            List<Indicator> indicators = asTypedList( params.getIndicators() );
+            List<Indicator> indicators = asTypedList( dataSourceParams.getIndicators() );
 
-            Period filterPeriod = params.getFilterPeriod();
+            Period filterPeriod = dataSourceParams.getFilterPeriod();
 
             Map<String, Double> constantMap = constantService.getConstantMap();
 
@@ -288,11 +292,11 @@
             // Get indicator values
             // -----------------------------------------------------------------
 
-            Map<String, Map<String, Integer>> permutationOrgUnitTargetMap = getOrgUnitTargetMap( params, indicators );
-
-            List<List<DimensionItem>> dimensionItemPermutations = params.getDimensionItemPermutations();
-
-            Map<String, Map<DataElementOperand, Double>> permutationOperandValueMap = getPermutationOperandValueMap( params );
+            Map<String, Map<String, Integer>> permutationOrgUnitTargetMap = getOrgUnitTargetMap( dataSourceParams, indicators );
+
+            List<List<DimensionItem>> dimensionItemPermutations = dataSourceParams.getDimensionItemPermutations();
+
+            Map<String, Map<DataElementOperand, Double>> permutationOperandValueMap = getPermutationOperandValueMap( dataSourceParams );
 
             for ( Indicator indicator : indicators )
             {
@@ -327,7 +331,7 @@
                         
                         grid.addRow();
                         grid.addValues( DimensionItem.getItemIdentifiers( row ) );
-                        grid.addValue( params.isSkipRounding() ? value : roundedValue );
+                        grid.addValue( dataSourceParams.isSkipRounding() ? value : roundedValue );
                     }
                 }
             }