← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 8679: Improve Aggregate Query Builder.

 

------------------------------------------------------------
revno: 8679
committer: Tran Chau <tran.hispvietnam@xxxxxxxxx>
branch nick: dhis2
timestamp: Wed 2012-10-24 14:40:38 +0700
message:
  Improve Aggregate Query Builder.
modified:
  dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/CaseAggregationResultAction.java
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/caseaggregation/GetDataElementsByDataSetAction.java
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/org/hisp/dhis/patient/i18n_module.properties


--
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-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/CaseAggregationResultAction.java'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/CaseAggregationResultAction.java	2012-03-09 04:46:32 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/CaseAggregationResultAction.java	2012-10-24 07:40:38 +0000
@@ -28,6 +28,7 @@
 package org.hisp.dhis.caseentry.action.caseaggregation;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.Date;
 import java.util.HashMap;
@@ -59,11 +60,11 @@
     implements Action
 {
     private String ADD_STATUS = "add";
-    
+
     private String UPDATE_STATUS = "update";
-    
+
     private String DELETE_STATUS = "delete";
-    
+
     // -------------------------------------------------------------------------
     // Dependencies
     // -------------------------------------------------------------------------
@@ -210,8 +211,9 @@
         // ---------------------------------------------------------------------
 
         DataSet selectedDataSet = dataSetService.getDataSet( dataSetId );
-
-        List<DataElement> dataElementList = new ArrayList<DataElement>( selectedDataSet.getDataElements() );
+        
+        Collection<CaseAggregationCondition> aggregationConditions = aggregationConditionService
+            .getAllCaseAggregationCondition();
 
         // ---------------------------------------------------------------------
         // Get selected periods list
@@ -233,70 +235,59 @@
 
         for ( OrganisationUnit orgUnit : orgunits )
         {
-            for ( DataElement dElement : dataElementList )
+            for ( CaseAggregationCondition condition : aggregationConditions )
             {
-                List<DataElementCategoryOptionCombo> deCOCList = new ArrayList<DataElementCategoryOptionCombo>(
-                    dElement.getCategoryCombo().getOptionCombos() );
-
-                for ( DataElementCategoryOptionCombo optionCombo : deCOCList )
+                DataElement dElement = condition.getAggregationDataElement();
+                DataElementCategoryOptionCombo optionCombo = condition.getOptionCombo();
+                
+                for ( Period period : periods )
                 {
-                    CaseAggregationCondition condition = aggregationConditionService.getCaseAggregationCondition(
-                        dElement, optionCombo );
-
-                    if ( condition != null )
-                    {
-                        for ( Period period : periods )
-                        {
-                            Double resultValue = aggregationConditionService.parseConditition( condition, orgUnit,
-                                period );
-
-                            DataValue dataValue = dataValueService
-                                .getDataValue( orgUnit, dElement, period, optionCombo );
-
-                            String key = orgUnit.getId() + "-" + format.formatPeriod( period );
-                            String keyStatus = key + "-" + dElement.getId();
-
-                            if ( resultValue != null && resultValue != 0.0 )
-                            {
-                                if ( dataValue == null )
-                                {
-                                    dataValue = new DataValue( dElement, period, orgUnit, "" + resultValue, "",
-                                        new Date(), null, optionCombo );
-
-                                    mapStatusValues.put( keyStatus, i18n.getString( ADD_STATUS ) );
-                                }
-                                else
-                                {
-                                    dataValue.setValue( "" + resultValue );
-                                    dataValue.setTimestamp( new Date() );
-
-                                    mapStatusValues.put( keyStatus, i18n.getString( UPDATE_STATUS ) );
-                                }
-
-                                mapCaseAggCondition.put( dataValue, condition );
-
-                            }
-                            else if ( dataValue != null )
-                            {
-                                mapStatusValues.put( keyStatus, i18n.getString( DELETE_STATUS ) );
-                            }
-                            
-                            if ( dataValue != null )
-                            {
-                                Set<DataValue> dataValues = null;
-                                if ( mapDataValues.containsKey( key ) )
-                                {
-                                    dataValues = mapDataValues.get( key );
-                                }
-                                else
-                                {
-                                    dataValues = new HashSet<DataValue>();
-                                }
-
-                                dataValues.add( dataValue );
-                                mapDataValues.put( key, dataValues );
-                            }
-                        }
+                    Double resultValue = aggregationConditionService.parseConditition( condition, orgUnit, period );
+
+                    DataValue dataValue = dataValueService.getDataValue( orgUnit, dElement, period, optionCombo );
+
+                    String key = orgUnit.getId() + "-" + format.formatPeriod( period );
+                    String keyStatus = key + "-" + dElement.getId();
+
+                    if ( resultValue != null && resultValue != 0.0 )
+                    {
+                        if ( dataValue == null )
+                        {
+                            dataValue = new DataValue( dElement, period, orgUnit, "" + resultValue, "", new Date(),
+                                null, optionCombo );
+
+                            mapStatusValues.put( keyStatus, i18n.getString( ADD_STATUS ) );
+                        }
+                        else
+                        {
+                            dataValue.setValue( "" + resultValue );
+                            dataValue.setTimestamp( new Date() );
+
+                            mapStatusValues.put( keyStatus, i18n.getString( UPDATE_STATUS ) );
+                        }
+
+                        mapCaseAggCondition.put( dataValue, condition );
+
+                    }
+                    else if ( dataValue != null )
+                    {
+                        mapStatusValues.put( keyStatus, i18n.getString( DELETE_STATUS ) );
+                    }
+
+                    if ( dataValue != null )
+                    {
+                        Set<DataValue> dataValues = null;
+                        if ( mapDataValues.containsKey( key ) )
+                        {
+                            dataValues = mapDataValues.get( key );
+                        }
+                        else
+                        {
+                            dataValues = new HashSet<DataValue>();
+                        }
+
+                        dataValues.add( dataValue );
+                        mapDataValues.put( key, dataValues );
                     }
                 }
             }

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/caseaggregation/GetDataElementsByDataSetAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/caseaggregation/GetDataElementsByDataSetAction.java	2012-08-14 07:27:41 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/caseaggregation/GetDataElementsByDataSetAction.java	2012-10-24 07:40:38 +0000
@@ -28,7 +28,6 @@
 package org.hisp.dhis.patient.action.caseaggregation;
 
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.Collections;
 import java.util.List;
 

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/org/hisp/dhis/patient/i18n_module.properties'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/org/hisp/dhis/patient/i18n_module.properties	2012-10-23 04:48:39 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/org/hisp/dhis/patient/i18n_module.properties	2012-10-24 07:40:38 +0000
@@ -315,4 +315,5 @@
 add_single_rule = Add single rule
 add_multi_rule = Add multi rule
 no_aggregation = No aggregation
-please_select_program_stage = Please select program stage
\ No newline at end of file
+please_select_program_stage = Please select program stage
+never = Never
\ No newline at end of file