← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 2270: Improve Beneficiary Aggregation function.

 

------------------------------------------------------------
revno: 2270
committer: Tran Chau <tran.hispvietnam@xxxxxxxxx>
branch nick: dhis2
timestamp: Fri 2010-12-03 13:08:58 +0700
message:
  Improve Beneficiary Aggregation function.
removed:
  dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/GetDataSetPeriodsAction.java
  dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/GetOrgUnitsAction.java
added:
  dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/LoadPeriodsAction.java
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/responsePeriods.vm
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-caseentry/src/main/resources/META-INF/dhis/beans.xml
  dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties
  dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/struts.xml
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/caseAggregationForm.vm
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/caseAggregationResult.vm
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/caseagg.js


--
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	2010-11-25 22:22:10 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/CaseAggregationResultAction.java	2010-12-03 06:08:58 +0000
@@ -30,8 +30,10 @@
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -43,13 +45,14 @@
 import org.hisp.dhis.dataset.DataSetService;
 import org.hisp.dhis.datavalue.DataValue;
 import org.hisp.dhis.datavalue.DataValueService;
+import org.hisp.dhis.i18n.I18n;
+import org.hisp.dhis.i18n.I18nFormat;
 import org.hisp.dhis.organisationunit.OrganisationUnit;
 import org.hisp.dhis.organisationunit.comparator.OrganisationUnitNameComparator;
 import org.hisp.dhis.organisationunit.comparator.OrganisationUnitShortNameComparator;
 import org.hisp.dhis.oust.manager.SelectionTreeManager;
 import org.hisp.dhis.period.Period;
 import org.hisp.dhis.period.PeriodService;
-import org.hisp.dhis.period.PeriodType;
 import org.hisp.dhis.user.CurrentUserService;
 
 import com.opensymphony.xwork2.Action;
@@ -105,6 +108,20 @@
         this.currentUserService = currentUserService;
     }
 
+    private I18nFormat format;
+
+    public void setFormat( I18nFormat format )
+    {
+        this.format = format;
+    }
+
+    private I18n i18n;
+
+    public void setI18n( I18n i18n )
+    {
+        this.i18n = i18n;
+    }
+
     // ---------------------------------------------------------------
     // Input & Output Parameters
     // ---------------------------------------------------------------
@@ -130,78 +147,95 @@
         this.facilityLB = facilityLB;
     }
 
-    private String selectedDataSets;
-
-    public void setSelectedDataSets( String selectedDataSets )
-    {
-        this.selectedDataSets = selectedDataSets;
-    }
-
-    private String resultMessage;
-
-    public String getResultMessage()
-    {
-        return resultMessage;
-    }
-
-    private DataSet selDataSet;
-
-    private OrganisationUnit selOrgUnit;
-
-    private List<OrganisationUnit> orgUnitList;
-
-    private List<DataElement> dataElementList;
-
-    private List<Period> periodList;
-
-    private String storedBy;
-
-    // ---------------------------------------------------------------
+    private List<Period> periods;
+
+    public List<Period> getPeriods()
+    {
+        return periods;
+    }
+
+    public void setPeriods( List<Period> periods )
+    {
+        this.periods = periods;
+    }
+
+    private Integer dataSetId;
+
+    public void setDataSetId( Integer dataSetId )
+    {
+        this.dataSetId = dataSetId;
+    }
+
+    private Map<DataValue, String> mapDataValues;
+
+    public Map<DataValue, String> getMapDataValues()
+    {
+        return mapDataValues;
+    }
+
+    // -------------------------------------------------------------------------
     // Action Implementation
-    // ---------------------------------------------------------------
+    // -------------------------------------------------------------------------
+
     public String execute()
         throws Exception
     {
-        storedBy = currentUserService.getCurrentUsername() + "_CAE";
-
-        resultMessage = "";
-
-        // DataSet and DataElement
-        selDataSet = dataSetService.getDataSet( Integer.parseInt( selectedDataSets ) );
-        dataElementList = new ArrayList<DataElement>( selDataSet.getDataElements() );
-
-        selOrgUnit = selectionTreeManager.getReloadedSelectedOrganisationUnit();
-
-        orgUnitList = new ArrayList<OrganisationUnit>();
+        mapDataValues = new HashMap<DataValue, String>();
+
+        String storedBy = currentUserService.getCurrentUsername() + "_CAE";
+        // ---------------------------------------------------------------------
+        // Get selected orgunits
+        // ---------------------------------------------------------------------
+
+        OrganisationUnit selectedOrgunit = selectionTreeManager.getReloadedSelectedOrganisationUnit();
+
+        if ( selectedOrgunit == null )
+        {
+            return SUCCESS;
+        }
+
+        List<OrganisationUnit> orgUnitList = new ArrayList<OrganisationUnit>();
         if ( facilityLB.equals( "children" ) )
         {
-            orgUnitList = getChildOrgUnitTree( selOrgUnit );
+            orgUnitList = getChildOrgUnitTree( selectedOrgunit );
         }
         else if ( facilityLB.equals( "immChildren" ) )
         {
-            orgUnitList.add( selOrgUnit );
-            List<OrganisationUnit> organisationUnits = new ArrayList<OrganisationUnit>( selOrgUnit.getChildren() );
+            orgUnitList.add( selectedOrgunit );
+            List<OrganisationUnit> organisationUnits = new ArrayList<OrganisationUnit>( selectedOrgunit.getChildren() );
             Collections.sort( organisationUnits, new OrganisationUnitShortNameComparator() );
             orgUnitList.addAll( organisationUnits );
         }
         else
         {
-            orgUnitList.add( selOrgUnit );
-        }
-
-        // Period Related Info
-        Period startPeriod = periodService.getPeriod( sDateLB );
-        Period endPeriod = periodService.getPeriod( eDateLB );
-
-        PeriodType dataSetPeriodType = selDataSet.getPeriodType();
-        periodList = new ArrayList<Period>( periodService.getIntersectingPeriodsByPeriodType( dataSetPeriodType,
-            startPeriod.getStartDate(), endPeriod.getEndDate() ) );
-
-        // Orgunit Iteration for Aggregation
+            orgUnitList.add( selectedOrgunit );
+        }
+
+        // ---------------------------------------------------------------------
+        // Get DataElement list of selected dataset
+        // ---------------------------------------------------------------------
+
+        DataSet selectedDataSet = dataSetService.getDataSet( dataSetId );
+
+        List<DataElement> dataElementList = new ArrayList<DataElement>( selectedDataSet.getDataElements() );
+
+        // ---------------------------------------------------------------------
+        // Get selected periods list
+        // ---------------------------------------------------------------------
+
+        List<Period> periodList = new ArrayList<Period>();
+
+        if ( sDateLB != -1 && eDateLB != -1 )
+        {
+            periodList = periods.subList( sDateLB, eDateLB + 1 );
+        }
+        
+        // ---------------------------------------------------------------------
+        // Aggregation
+        // ---------------------------------------------------------------------
 
         for ( OrganisationUnit orgUnit : orgUnitList )
         {
-
             for ( DataElement dElement : dataElementList )
             {
                 List<DataElementCategoryOptionCombo> deCOCList = new ArrayList<DataElementCategoryOptionCombo>(
@@ -217,21 +251,22 @@
 
                     for ( Period period : periodList )
                     {
+                        String message = i18n.getString( "in" ) + " " + format.formatPeriod( period );
+
                         double resultValue = aggregationConditionService.parseConditition( condition, orgUnit, period );
-                        
+
                         if ( resultValue != 0 )
                         {
-                            String tempStr = "" + orgUnit.getName() + "_" + dElement.getName() + "_"
-                                + period.getStartDate() + "_";
                             DataValue dataValue = dataValueService
                                 .getDataValue( orgUnit, dElement, period, optionCombo );
+
                             if ( dataValue == null )
                             {
                                 dataValue = new DataValue( dElement, period, orgUnit, "" + resultValue, storedBy,
                                     new Date(), null, optionCombo );
 
                                 dataValueService.addDataValue( dataValue );
-                                tempStr += resultValue + "Added.";
+                                mapDataValues.put( dataValue, i18n.getString( "added" ) + " " + message );
                             }
                             else
                             {
@@ -240,11 +275,10 @@
                                 dataValue.setStoredBy( storedBy );
 
                                 dataValueService.updateDataValue( dataValue );
-                                tempStr += resultValue + "Updated.";
+
+                                mapDataValues.put( dataValue, i18n.getString( "updated" ) + " " + message );
                             }
 
-                            System.out.println( tempStr );
-                            resultMessage += "<br>" + tempStr;
                         }
 
                     }// PeriodList end

=== removed file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/GetDataSetPeriodsAction.java'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/GetDataSetPeriodsAction.java	2010-11-29 02:04:22 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/GetDataSetPeriodsAction.java	1970-01-01 00:00:00 +0000
@@ -1,194 +0,0 @@
-/*
- * Copyright (c) 2004-2010, University of Oslo
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright notice, this
- *   list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice,
- *   this list of conditions and the following disclaimer in the documentation
- *   and/or other materials provided with the distribution.
- * * Neither the name of the HISP project nor the names of its contributors may
- *   be used to endorse or promote products derived from this software without
- *   specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-package org.hisp.dhis.caseentry.action.caseaggregation;
-
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-
-import org.hisp.dhis.dataset.DataSet;
-import org.hisp.dhis.dataset.DataSetService;
-import org.hisp.dhis.period.Period;
-import org.hisp.dhis.period.PeriodService;
-import org.hisp.dhis.period.PeriodType;
-import org.hisp.dhis.period.comparator.PeriodComparator;
-
-import com.opensymphony.xwork2.Action;
-
-public class GetDataSetPeriodsAction
-    implements Action
-{
-    // -------------------------------------------------------------------------
-    // Dependencies
-    // -------------------------------------------------------------------------
-
-    private PeriodService periodService;
-
-    public void setPeriodService( PeriodService periodService )
-    {
-        this.periodService = periodService;
-    }
-
-    private DataSetService dataSetService;
-
-    public void setDataSetService( DataSetService dataSetService )
-    {
-        this.dataSetService = dataSetService;
-    }
-
-    // -------------------------------------------------------------------------
-    // Input & output
-    // -------------------------------------------------------------------------
-
-    private Integer selectedDataSets;
-
-    public void setSelectedDataSets( Integer selectedDataSets )
-    {
-        this.selectedDataSets = selectedDataSets;
-    }
-
-    private List<Period> periods;
-
-    public List<Period> getPeriods()
-    {
-        return periods;
-    }
-
-    private List<String> periodNameList;
-
-    public List<String> getPeriodNameList()
-    {
-        return periodNameList;
-    }
-
-    private SimpleDateFormat simpleDateFormat1;
-
-    private SimpleDateFormat simpleDateFormat2;
-
-    private PeriodType periodType;
-
-    public PeriodType getPeriodType()
-    {
-        return periodType;
-    }
-
-    // -------------------------------------------------------------------------
-    // Action implementation
-    // -------------------------------------------------------------------------
-
-    public String execute()
-        throws Exception
-    {
-        periodNameList = new ArrayList<String>();
-
-        DataSet dSet = dataSetService.getDataSet( selectedDataSets );
-        periodType = dSet.getPeriodType();
-
-        periods = new ArrayList<Period>( periodService.getPeriodsByPeriodType( periodType ) );
-
-        Iterator<Period> periodIterator = periods.iterator();
-        while ( periodIterator.hasNext() )
-        {
-            Period p1 = periodIterator.next();
-
-            if ( p1.getStartDate().compareTo( new Date() ) > 0 )
-            {
-                periodIterator.remove();
-            }
-
-        }
-
-        Collections.sort( periods, new PeriodComparator() );
-
-        if ( periodType.getName().equalsIgnoreCase( "monthly" ) )
-        {
-            simpleDateFormat1 = new SimpleDateFormat( "MMM-yyyy" );
-            for ( Period p1 : periods )
-            {
-                // if ( p1.getStartDate().compareTo( new Date() ) <= 0 )
-                periodNameList.add( simpleDateFormat1.format( p1.getStartDate() ) );
-
-            }
-
-        }
-        else if ( periodType.getName().equalsIgnoreCase( "quarterly" ) )
-        {
-            simpleDateFormat1 = new SimpleDateFormat( "MMM" );
-            simpleDateFormat2 = new SimpleDateFormat( "MMM-yyyy" );
-
-            for ( Period p1 : periods )
-            {
-                // if ( p1.getStartDate().compareTo( new Date() ) <= 0 )
-                {
-                    String tempPeriodName = simpleDateFormat1.format( p1.getStartDate() ) + " - "
-                        + simpleDateFormat2.format( p1.getEndDate() );
-                    periodNameList.add( tempPeriodName );
-                }
-            }
-        }
-        /*
-         * else if(periodType.getName().equalsIgnoreCase("yearly")) {
-         * simpleDateFormat1 = new SimpleDateFormat( "yyyy" ); for(Period p1 :
-         * periods) { periodNameList.add(
-         * simpleDateFormat1.format(p1.getStartDate() ) ); } }
-         */
-
-        else if ( periodType.getName().equalsIgnoreCase( "yearly" ) )
-        {
-            simpleDateFormat1 = new SimpleDateFormat( "yyyy" );
-            int year;
-            for ( Period p1 : periods )
-            {
-                // if ( p1.getStartDate().compareTo( new Date() ) <= 0 )
-                {
-                    year = Integer.parseInt( simpleDateFormat1.format( p1.getStartDate() ) ) + 1;
-                    periodNameList.add( simpleDateFormat1.format( p1.getStartDate() ) + "-" + year );
-                }
-            }
-        }
-        else
-        {
-            simpleDateFormat1 = new SimpleDateFormat( "yyyy-mm-dd" );
-            for ( Period p1 : periods )
-            {
-                // if ( p1.getStartDate().compareTo( new Date() ) <= 0 )
-                {
-                    String tempPeriodName = simpleDateFormat1.format( p1.getStartDate() ) + " - "
-                        + simpleDateFormat1.format( p1.getEndDate() );
-                    periodNameList.add( tempPeriodName );
-                }
-            }
-        }
-
-        return SUCCESS;
-    }
-
-}

=== removed file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/GetOrgUnitsAction.java'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/GetOrgUnitsAction.java	2010-11-25 22:22:10 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/GetOrgUnitsAction.java	1970-01-01 00:00:00 +0000
@@ -1,91 +0,0 @@
-/*
- * Copyright (c) 2004-2010, University of Oslo
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright notice, this
- *   list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice,
- *   this list of conditions and the following disclaimer in the documentation
- *   and/or other materials provided with the distribution.
- * * Neither the name of the HISP project nor the names of its contributors may
- *   be used to endorse or promote products derived from this software without
- *   specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-package org.hisp.dhis.caseentry.action.caseaggregation;
-
-import org.hisp.dhis.organisationunit.OrganisationUnit;
-import org.hisp.dhis.organisationunit.OrganisationUnitService;
-
-import com.opensymphony.xwork2.ActionSupport;
-
-public class GetOrgUnitsAction
-    extends ActionSupport
-{
-    // -------------------------------------------------------------------------
-    // Dependencies
-    // -------------------------------------------------------------------------
-
-    private OrganisationUnitService organisationUnitService;
-
-    public void setOrganisationUnitService( OrganisationUnitService organisationUnitService )
-    {
-        this.organisationUnitService = organisationUnitService;
-    }
-
-    // -------------------------------------------------------------------------
-    // Getters & Setters
-    // -------------------------------------------------------------------------
-
-    private Integer orgUnitId;
-
-    public void setOrgUnitId( Integer orgUnitId )
-    {
-        this.orgUnitId = orgUnitId;
-    }
-    
-    private OrganisationUnit orgUnit;
-
-    public OrganisationUnit getOrgUnit()
-    {
-        return orgUnit;
-    }
-
-    private Integer orgUnitLevel;
-
-    public Integer getOrgUnitLevel()
-    {
-        return orgUnitLevel;
-    }
-    
-    // -------------------------------------------------------------------------
-    // Action implementation
-    // -------------------------------------------------------------------------
-
-    public String execute() throws Exception
-    {
-        /* OrganisationUnit */
-        if ( orgUnitId != null )
-        {
-            orgUnit = organisationUnitService.getOrganisationUnit( orgUnitId );
-        }
-
-        orgUnitLevel = organisationUnitService.getLevelOfOrganisationUnit( orgUnit );
-        
-        return SUCCESS;
-    }
-
-}

=== added file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/LoadPeriodsAction.java'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/LoadPeriodsAction.java	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/LoadPeriodsAction.java	2010-12-03 06:08:58 +0000
@@ -0,0 +1,109 @@
+package org.hisp.dhis.caseentry.action.caseaggregation;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+
+import org.hisp.dhis.dataelement.DataElement;
+import org.hisp.dhis.dataset.DataSet;
+import org.hisp.dhis.dataset.DataSetService;
+import org.hisp.dhis.period.CalendarPeriodType;
+import org.hisp.dhis.period.Period;
+
+import com.opensymphony.xwork2.Action;
+
+public class LoadPeriodsAction
+    implements Action
+{
+    // -------------------------------------------------------------------------
+    // Dependencies
+    // -------------------------------------------------------------------------
+
+    private DataSetService dataSetService;
+
+    public void setDataSetService( DataSetService dataSetService )
+    {
+        this.dataSetService = dataSetService;
+    }
+
+    // -------------------------------------------------------------------------
+    // Input
+    // -------------------------------------------------------------------------
+
+    private Integer dataSetId;
+
+    public void setDataSetId( Integer dataSetId )
+    {
+        this.dataSetId = dataSetId;
+    }
+
+    // -------------------------------------------------------------------------
+    // Output
+    // -------------------------------------------------------------------------
+
+    private List<Period> periods = new ArrayList<Period>();
+
+    public Collection<Period> getPeriods()
+    {
+        return periods;
+    }
+
+    private boolean periodValid;
+
+    public boolean isPeriodValid()
+    {
+        return periodValid;
+    }
+
+    private Collection<DataElement> significantZeros = new HashSet<DataElement>();
+
+    public Collection<DataElement> getSignificantZeros()
+    {
+        return significantZeros;
+    }
+
+    // -------------------------------------------------------------------------
+    // Action implementation
+    // -------------------------------------------------------------------------
+
+    public String execute()
+    {
+        DataSet selectedDataSet = dataSetService.getDataSet( dataSetId );
+
+        if ( selectedDataSet != null )
+        {
+            periods = getPeriodList( (CalendarPeriodType) selectedDataSet.getPeriodType() );
+        }
+
+        return SUCCESS;
+    }
+
+    // -------------------------------------------------------------------------
+    // Support method
+    // -------------------------------------------------------------------------
+
+    private List<Period> getPeriodList( CalendarPeriodType periodType )
+    {
+        Period basePeriod = periodType.createPeriod();
+
+        List<Period> periods = periodType.generatePeriods( basePeriod );
+
+        Date now = new Date();
+
+        Iterator<Period> iterator = periods.iterator();
+
+        while ( iterator.hasNext() )
+        {
+            if ( iterator.next().getStartDate().after( now ) )
+            {
+                iterator.remove();
+            }
+        }
+
+        return periods;
+    }
+
+}

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml	2010-11-25 22:22:10 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml	2010-12-03 06:08:58 +0000
@@ -1,399 +1,367 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans";
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-       xsi:schemaLocation="
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+	xsi:schemaLocation="
 http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd";>
-  
-  <!-- Selection -->
-  
-  <bean id="org.hisp.dhis.caseentry.state.SelectedStateManager"
-    class="org.hisp.dhis.caseentry.state.DefaultSelectedStateManager">
-    <property name="patientService"
-      ref="org.hisp.dhis.patient.PatientService"/>
-    <property name="programService"
-      ref="org.hisp.dhis.program.ProgramService"/>
-    <property name="programStageService"
-      ref="org.hisp.dhis.program.ProgramStageService"/>
-    <property name="selectionManager"
-      ref="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager"/>
-  </bean>
-  
-  <!-- Data Entry -->
-  
-  <bean id="org.hisp.dhis.caseentry.action.caseentry.GetPatientAction"
-    class="org.hisp.dhis.caseentry.action.caseentry.GetPatientAction" 
-    scope="prototype">    
-    <property name="patientService"
-      ref="org.hisp.dhis.patient.PatientService"/>
-    <property name="patientIdentifierService"
-      ref="org.hisp.dhis.patient.PatientIdentifierService"/> 
-    <property name="programService"
-      ref="org.hisp.dhis.program.ProgramService"/>   
-    <property name="patientAttributeValueService"
-      ref="org.hisp.dhis.patientattributevalue.PatientAttributeValueService"/>  
-  </bean>
-  
-  <bean id="org.hisp.dhis.caseentry.action.caseentry.DataEntrySelectAction"
-    class="org.hisp.dhis.caseentry.action.caseentry.DataEntrySelectAction" 
-    scope="prototype">
-    <property name="selectionManager"
-      ref="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager"/>           
-  </bean>
-  
-  <bean id="org.hisp.dhis.caseentry.action.caseentry.SearchPatientFormAction"
-    class="org.hisp.dhis.caseentry.action.caseentry.SearchPatientFormAction" 
-    scope="prototype">
-    <property name="selectionManager"
-      ref="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager"/>
-    <property name="patientAttributeService"
-      ref="org.hisp.dhis.patient.PatientAttributeService"/>      
-  </bean>
-  
-  <bean id="org.hisp.dhis.caseentry.action.caseentry.ValidateSearchAction"
-    class="org.hisp.dhis.caseentry.action.caseentry.ValidateSearchAction" 
-    scope="prototype">
-    <property name="selectionManager"
-      ref="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager"/>
-  </bean>
-  
-  <bean id="org.hisp.dhis.caseentry.action.caseentry.SearchPatientAction"
-    class="org.hisp.dhis.caseentry.action.caseentry.SearchPatientAction" 
-    scope="prototype">
-    <property name="selectionManager"
-      ref="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager"/>
-    <property name="selectedStateManager"
-      ref="org.hisp.dhis.caseentry.state.SelectedStateManager"/>
-    <property name="patientService"
-      ref="org.hisp.dhis.patient.PatientService"/>
-    <property name="patientAttributeValueService"
-      ref="org.hisp.dhis.patientattributevalue.PatientAttributeValueService"/>
-    <property name="patientAttributeService"
-      ref="org.hisp.dhis.patient.PatientAttributeService"/>      
-  </bean>
-  
-  <bean id="org.hisp.dhis.caseentry.action.caseentry.DataRecordingSelectAction"
-    class="org.hisp.dhis.caseentry.action.caseentry.DataRecordingSelectAction" 
-    scope="prototype">   
-    <property name="selectedStateManager"
-      ref="org.hisp.dhis.caseentry.state.SelectedStateManager"/>
-    <property name="patientService"
-      ref="org.hisp.dhis.patient.PatientService"/>    
-    <property name="programService"
-      ref="org.hisp.dhis.program.ProgramService"/>
-    <property name="programStageService"
-      ref="org.hisp.dhis.program.ProgramStageService"/>
-    <property name="programInstanceService"
-      ref="org.hisp.dhis.program.ProgramInstanceService"/>
-    <property name="programStageInstanceService"
-      ref="org.hisp.dhis.program.ProgramStageInstanceService"/> 
-  </bean>
-  
-  <bean id="org.hisp.dhis.caseentry.action.caseentry.SaveExecutionDateAction"
-    class="org.hisp.dhis.caseentry.action.caseentry.SaveExecutionDateAction" 
-    scope="prototype">   
-    <property name="programStageInstanceService"
-      ref="org.hisp.dhis.program.ProgramStageInstanceService"/>                   
-  </bean>
-  
-  <bean id="org.hisp.dhis.caseentry.action.caseentry.DataEntryAction"
-    class="org.hisp.dhis.caseentry.action.caseentry.DataEntryAction" 
-    scope="prototype">       
-    <property name="programInstanceService"
-      ref="org.hisp.dhis.program.ProgramInstanceService"/>
-    <property name="programStageInstanceService"
-      ref="org.hisp.dhis.program.ProgramStageInstanceService"/>
-    <property name="patientDataValueService"
-      ref="org.hisp.dhis.patientdatavalue.PatientDataValueService"/>
-     <property name="selectedStateManager"
-      ref="org.hisp.dhis.caseentry.state.SelectedStateManager"/>  
-      <property name="programStageDataElementService" ref="org.hisp.dhis.program.ProgramStageDataElementService" />         
-  </bean>
-  
-  <bean id="org.hisp.dhis.caseentry.action.caseentry.SaveValueAction"
-    class="org.hisp.dhis.caseentry.action.caseentry.SaveValueAction" 
-    scope="prototype">   
-    <property name="selectedStateManager"
-      ref="org.hisp.dhis.caseentry.state.SelectedStateManager"/>    
-    <property name="dataElementService" 
-      ref="org.hisp.dhis.dataelement.DataElementService"/>
-    <property name="dataElementCategoryService"
-      ref="org.hisp.dhis.dataelement.DataElementCategoryService"/>
-    <property name="programInstanceService"
-      ref="org.hisp.dhis.program.ProgramInstanceService"/>
-    <property name="programStageInstanceService"
-      ref="org.hisp.dhis.program.ProgramStageInstanceService"/>
-    <property name="patientDataValueService"
-      ref="org.hisp.dhis.patientdatavalue.PatientDataValueService"/>
-    </bean>
-  
-  <bean id="org.hisp.dhis.caseentry.action.caseentry.SaveDateValueAction"
-    class="org.hisp.dhis.caseentry.action.caseentry.SaveDateValueAction" 
-    scope="prototype">   
-    <property name="selectedStateManager"
-      ref="org.hisp.dhis.caseentry.state.SelectedStateManager"/>    
-    <property name="dataElementService" 
-      ref="org.hisp.dhis.dataelement.DataElementService"/>    
-    <property name="programInstanceService"
-      ref="org.hisp.dhis.program.ProgramInstanceService"/>
-    <property name="programStageInstanceService"
-      ref="org.hisp.dhis.program.ProgramStageInstanceService"/>
-    <property name="patientDataValueService"
-      ref="org.hisp.dhis.patientdatavalue.PatientDataValueService"/>               
-  </bean>
-  
-  <bean id="org.hisp.dhis.caseentry.action.caseentry.SaveProvidingFacilityAction"
-    class="org.hisp.dhis.caseentry.action.caseentry.SaveProvidingFacilityAction" 
-    scope="prototype">   
-    <property name="selectedStateManager"
-      ref="org.hisp.dhis.caseentry.state.SelectedStateManager"/>    
-    <property name="dataElementService" 
-      ref="org.hisp.dhis.dataelement.DataElementService"/>    
-    <property name="programInstanceService"
-      ref="org.hisp.dhis.program.ProgramInstanceService"/>
-    <property name="programStageInstanceService"
-      ref="org.hisp.dhis.program.ProgramStageInstanceService"/>
-    <property name="patientDataValueService"
-      ref="org.hisp.dhis.patientdatavalue.PatientDataValueService"/>               
-  </bean>
-  
-   <bean id="org.hisp.dhis.caseentry.screen.DataEntryScreenManager"
-    class="org.hisp.dhis.caseentry.screen.DefaultDataEntryScreenManager" scope="prototype">    
-    <property name="dataElementService"
-      ref="org.hisp.dhis.dataelement.DataElementService"/>
-    <property name="programStageInstanceService">
-      <ref bean="org.hisp.dhis.program.ProgramStageInstanceService"/>
-    </property>     
-    <property name="programStageService">
-      <ref bean="org.hisp.dhis.program.ProgramStageService"/>
-    </property>       
-    <property name="patientDataValueService">
-      <ref bean="org.hisp.dhis.patientdatavalue.PatientDataValueService"/>
-    </property>   
-    <property name="programStageDataElementService" ref="org.hisp.dhis.program.ProgramStageDataElementService" /> 
-  </bean>
-  
-   <bean id="org.hisp.dhis.caseentry.action.caseentry.CustomDataEntryAction"
-    class="org.hisp.dhis.caseentry.action.caseentry.CustomDataEntryAction" scope="prototype">    
-		<property name="minMaxDataElementService"
-      ref="org.hisp.dhis.minmax.MinMaxDataElementService"/>
-      	<property name="dataEntryScreenManager"
-      ref="org.hisp.dhis.caseentry.screen.DataEntryScreenManager"/>       
-         <property name="systemSettingManager"
-      ref="org.hisp.dhis.options.SystemSettingManager"/>
-         <property name="selectedStateManager"
-      ref="org.hisp.dhis.caseentry.state.SelectedStateManager"/>
-         <property name="patientDataValueService"
-      ref="org.hisp.dhis.patientdatavalue.PatientDataValueService"/>
-         <property name="patientIdentifierService"
-      ref="org.hisp.dhis.patient.PatientIdentifierService"/>
-         <property name="programStageInstanceService"
-      ref="org.hisp.dhis.program.ProgramStageInstanceService"/>
-         <property name="programStageService"
-      ref="org.hisp.dhis.program.ProgramStageService"/>
-         <property name="programInstanceService"
-      ref="org.hisp.dhis.program.ProgramInstanceService"/>
-         <property name="programService"
-      ref="org.hisp.dhis.program.ProgramService"/>
-         <property name="patientService"
-      ref="org.hisp.dhis.patient.PatientService"/>      
-  </bean>
-  
-  <bean id="org.hisp.dhis.caseentry.action.caseentry.CompleteDataEntryAction" 
-   class="org.hisp.dhis.caseentry.action.caseentry.CompleteDataEntryAction" scope="prototype">
-  	   <property name="programStageInstanceService"
-      ref="org.hisp.dhis.program.ProgramStageInstanceService"/>
-       <property name="programInstanceService"
-      ref="org.hisp.dhis.program.ProgramInstanceService"/>
-  </bean>
-  
-  <bean id="org.hisp.dhis.caseentry.action.caseentry.ValidateValueAction" 
-   class="org.hisp.dhis.caseentry.action.caseentry.ValidateValueAction" scope="prototype">
-  	<property name="selectedStateManager"
-      ref="org.hisp.dhis.caseentry.state.SelectedStateManager"/>    
-    <property name="dataElementService" 
-      ref="org.hisp.dhis.dataelement.DataElementService"/>
-    <property name="programInstanceService"
-      ref="org.hisp.dhis.program.ProgramInstanceService"/>
-    <property name="programStageInstanceService"
-      ref="org.hisp.dhis.program.ProgramStageInstanceService"/>
-    <property name="patientDataValueService"
-      ref="org.hisp.dhis.patientdatavalue.PatientDataValueService"/>
-    <property name="validationService"
-      ref="org.hisp.dhis.program.ProgramStageDataElementValidationService"/>
-    </bean>
-
-  <!-- Multi DataEntry -->
-
-  <bean id="org.hisp.dhis.caseentry.action.caseentry.MultiDataEntrySelectAction"
-    class="org.hisp.dhis.caseentry.action.caseentry.MultiDataEntrySelectAction" 
-    scope="prototype">
-    <property name="selectedStateManager"
-      ref="org.hisp.dhis.caseentry.state.SelectedStateManager"/>
-    <property name="programService"
-      ref="org.hisp.dhis.program.ProgramService"/>
-    <property name="patientAttributeService"
-      ref="org.hisp.dhis.patient.PatientAttributeService"/>      
-  </bean>
-  
-  <bean id="org.hisp.dhis.caseentry.action.caseentry.GetDataRecordsAction"
-    class="org.hisp.dhis.caseentry.action.caseentry.GetDataRecordsAction" 
-    scope="prototype">
-    <property name="selectedStateManager"
-      ref="org.hisp.dhis.caseentry.state.SelectedStateManager"/>
-    <property name="programService"
-      ref="org.hisp.dhis.program.ProgramService"/>
-    <property name="programInstanceService"
-      ref="org.hisp.dhis.program.ProgramInstanceService"/>   
-    <property name="programStageInstanceService"
-      ref="org.hisp.dhis.program.ProgramStageInstanceService"/>      
-    <property name="patientService"
-      ref="org.hisp.dhis.patient.PatientService"/>
-    <property name="patientAttributeService"
-      ref="org.hisp.dhis.patient.PatientAttributeService"/>
-    <property name="patientAttributeValueService"
-      ref="org.hisp.dhis.patientattributevalue.PatientAttributeValueService"/>	        
-  </bean>
-
-   <bean id="org.hisp.dhis.caseentry.action.caseentry.ProgramStageCustomDataEntryAction"
-    class="org.hisp.dhis.caseentry.action.caseentry.ProgramStageCustomDataEntryAction" scope="prototype">    
-        <property name="minMaxDataElementService"
-      ref="org.hisp.dhis.minmax.MinMaxDataElementService"/>
-        <property name="dataEntryScreenManager"
-      ref="org.hisp.dhis.caseentry.screen.DataEntryScreenManager"/>
-        <property name="systemSettingManager"
-      ref="org.hisp.dhis.options.SystemSettingManager"/>
-         <property name="selectedStateManager"
-      ref="org.hisp.dhis.caseentry.state.SelectedStateManager"/>
-         <property name="patientDataValueService"
-      ref="org.hisp.dhis.patientdatavalue.PatientDataValueService"/>
-         <property name="patientIdentifierService"
-      ref="org.hisp.dhis.patient.PatientIdentifierService"/>
-         <property name="programStageInstanceService"
-      ref="org.hisp.dhis.program.ProgramStageInstanceService"/>
-  </bean>
-  
-  <!-- Visit Plan -->
-  
-  <bean id="org.hisp.dhis.caseentry.action.visitplan.VisitPlanSelectAction"
-    class="org.hisp.dhis.caseentry.action.visitplan.VisitPlanSelectAction" 
-    scope="prototype">
-    <property name="selectionManager"
-      ref="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager"/>           
-  </bean>  
-  
-  <bean id="org.hisp.dhis.caseentry.action.visitplan.VisitPlanAction"
-    class="org.hisp.dhis.caseentry.action.visitplan.VisitPlanAction" 
-    scope="prototype">
-    <property name="selectionManager"
-      ref="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager"/>
-    <property name="patientService"
-      ref="org.hisp.dhis.patient.PatientService"/>  
-    <property name="patientAttributeValueService"
-      ref="org.hisp.dhis.patientattributevalue.PatientAttributeValueService"/>
-    <property name="patientAttributeService"
-      ref="org.hisp.dhis.patient.PatientAttributeService"/>    
-	<property name="activityPlanService"
-      ref="org.hisp.dhis.activityplan.ActivityPlanService"/>        
-  </bean>
-  
-  <!-- Report --> 
-  
-  <bean id="org.hisp.dhis.caseentry.action.report.ReportSelectAction"
-    class="org.hisp.dhis.caseentry.action.report.ReportSelectAction" 
-    scope="prototype">
-    <property name="selectedStateManager"
-      ref="org.hisp.dhis.caseentry.state.SelectedStateManager"/>
-    <property name="programService"
-      ref="org.hisp.dhis.program.ProgramService"/>           
-  </bean>  
-  
-  <bean id="org.hisp.dhis.caseentry.action.report.ValidateReportParametersAction"
-    class="org.hisp.dhis.caseentry.action.report.ValidateReportParametersAction" 
-    scope="prototype">
-    <property name="selectedStateManager"
-      ref="org.hisp.dhis.caseentry.state.SelectedStateManager"/>
-  </bean>
-  
-  <bean id="org.hisp.dhis.caseentry.action.report.GenerateReportAction"
-    class="org.hisp.dhis.caseentry.action.report.GenerateReportAction" 
-    scope="prototype">
-    <property name="selectedStateManager"
-      ref="org.hisp.dhis.caseentry.state.SelectedStateManager"/>
-    <property name="programService"
-      ref="org.hisp.dhis.program.ProgramService"/>
-    <property name="programInstanceService"
-      ref="org.hisp.dhis.program.ProgramInstanceService"/>   
-    <property name="programStageInstanceService"
-      ref="org.hisp.dhis.program.ProgramStageInstanceService"/>
-  </bean>
-  
-  <bean id="org.hisp.dhis.caseentry.action.report.ViewRecordsAction"
-    class="org.hisp.dhis.caseentry.action.report.ViewRecordsAction" 
-    scope="prototype">     
-    <property name="patientDataValueService"
-      ref="org.hisp.dhis.patientdatavalue.PatientDataValueService"/>
-    <property name="programStageInstanceService"
-      ref="org.hisp.dhis.program.ProgramStageInstanceService"/>
-    <property name="dataElementCategoryService"
-      ref="org.hisp.dhis.dataelement.DataElementCategoryService"/>                 
-  </bean>
-  
-  <bean id="org.hisp.dhis.caseentry.action.report.GetPatientDetailsAction"
-        class="org.hisp.dhis.caseentry.action.report.GetPatientDetailsAction" scope="prototype">
-        <property name="patientService" ref="org.hisp.dhis.patient.PatientService" />
-        <property name="patientIdentifierService"
-            ref="org.hisp.dhis.patient.PatientIdentifierService" />
-        <property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-        <property name="patientAttributeValueService"
-            ref="org.hisp.dhis.patientattributevalue.PatientAttributeValueService" />
-        <property name="patientAttributeService">
-            <ref bean="org.hisp.dhis.patient.PatientAttributeService" />
-        </property>
-        <property name="patientAttributeGroupService"
-            ref="org.hisp.dhis.patient.PatientAttributeGroupService" />
-        <property name="patientIdentifierTypeService">
-            <ref bean="org.hisp.dhis.patient.PatientIdentifierTypeService" />
-        </property>
-    </bean>
-  
-  <!-- Case Aggregation -->
-  <bean id="org.hisp.dhis.caseentry.action.caseaggregation.CaseAggregationFormAction"
-    class="org.hisp.dhis.caseentry.action.caseaggregation.CaseAggregationFormAction" 
-    scope="prototype">     
-    <property name="dataSetService"
-      ref="org.hisp.dhis.dataset.DataSetService"/>
-  </bean>
-  
-  <bean id="org.hisp.dhis.caseentry.action.caseaggregation.GetOrgUnitsAction"
-	class="org.hisp.dhis.caseentry.action.caseaggregation.GetOrgUnitsAction"
-	scope="prototype">
-	  <property name="organisationUnitService"
-		ref="org.hisp.dhis.organisationunit.OrganisationUnitService"/>
-  </bean>
-  
-  <bean id="org.hisp.dhis.caseentry.action.caseaggregation.GetDataSetPeriodsAction"
-	class="org.hisp.dhis.caseentry.action.caseaggregation.GetDataSetPeriodsAction"
-	scope="prototype">
-	  <property name="periodService"
-		ref="org.hisp.dhis.period.PeriodService"/>
-	  <property name="dataSetService"
-		ref="org.hisp.dhis.dataset.DataSetService"/>
-  </bean>
-
-  <bean id="org.hisp.dhis.caseentry.action.caseaggregation.CaseAggregationResultAction"
-    class="org.hisp.dhis.caseentry.action.caseaggregation.CaseAggregationResultAction" 
-    scope="prototype">     
-    <property name="selectionTreeManager" 
-      ref="org.hisp.dhis.oust.manager.SelectionTreeManager"/>
-    <property name="periodService" 
-      ref="org.hisp.dhis.period.PeriodService"/>
-    <property name="dataSetService" 
-      ref="org.hisp.dhis.dataset.DataSetService"/>
-    <property name="aggregationConditionService" 
-      ref="org.hisp.dhis.caseaggregation.CaseAggregationConditionService"/>
-    <property name="dataValueService" 
-      ref="org.hisp.dhis.datavalue.DataValueService"/>
-    <property name="currentUserService" 
-      ref="org.hisp.dhis.user.CurrentUserService"/>
-  </bean>
+
+	<!-- Selection -->
+
+	<bean id="org.hisp.dhis.caseentry.state.SelectedStateManager"
+		class="org.hisp.dhis.caseentry.state.DefaultSelectedStateManager">
+		<property name="patientService" ref="org.hisp.dhis.patient.PatientService" />
+		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+		<property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
+		<property name="selectionManager"
+			ref="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
+	</bean>
+
+	<!-- Data Entry -->
+
+	<bean id="org.hisp.dhis.caseentry.action.caseentry.GetPatientAction"
+		class="org.hisp.dhis.caseentry.action.caseentry.GetPatientAction"
+		scope="prototype">
+		<property name="patientService" ref="org.hisp.dhis.patient.PatientService" />
+		<property name="patientIdentifierService"
+			ref="org.hisp.dhis.patient.PatientIdentifierService" />
+		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+		<property name="patientAttributeValueService"
+			ref="org.hisp.dhis.patientattributevalue.PatientAttributeValueService" />
+	</bean>
+
+	<bean id="org.hisp.dhis.caseentry.action.caseentry.DataEntrySelectAction"
+		class="org.hisp.dhis.caseentry.action.caseentry.DataEntrySelectAction"
+		scope="prototype">
+		<property name="selectionManager"
+			ref="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
+	</bean>
+
+	<bean
+		id="org.hisp.dhis.caseentry.action.caseentry.SearchPatientFormAction"
+		class="org.hisp.dhis.caseentry.action.caseentry.SearchPatientFormAction"
+		scope="prototype">
+		<property name="selectionManager"
+			ref="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
+		<property name="patientAttributeService"
+			ref="org.hisp.dhis.patient.PatientAttributeService" />
+	</bean>
+
+	<bean id="org.hisp.dhis.caseentry.action.caseentry.ValidateSearchAction"
+		class="org.hisp.dhis.caseentry.action.caseentry.ValidateSearchAction"
+		scope="prototype">
+		<property name="selectionManager"
+			ref="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
+	</bean>
+
+	<bean id="org.hisp.dhis.caseentry.action.caseentry.SearchPatientAction"
+		class="org.hisp.dhis.caseentry.action.caseentry.SearchPatientAction"
+		scope="prototype">
+		<property name="selectionManager"
+			ref="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
+		<property name="selectedStateManager"
+			ref="org.hisp.dhis.caseentry.state.SelectedStateManager" />
+		<property name="patientService" ref="org.hisp.dhis.patient.PatientService" />
+		<property name="patientAttributeValueService"
+			ref="org.hisp.dhis.patientattributevalue.PatientAttributeValueService" />
+		<property name="patientAttributeService"
+			ref="org.hisp.dhis.patient.PatientAttributeService" />
+	</bean>
+
+	<bean
+		id="org.hisp.dhis.caseentry.action.caseentry.DataRecordingSelectAction"
+		class="org.hisp.dhis.caseentry.action.caseentry.DataRecordingSelectAction"
+		scope="prototype">
+		<property name="selectedStateManager"
+			ref="org.hisp.dhis.caseentry.state.SelectedStateManager" />
+		<property name="patientService" ref="org.hisp.dhis.patient.PatientService" />
+		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+		<property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
+		<property name="programInstanceService" ref="org.hisp.dhis.program.ProgramInstanceService" />
+		<property name="programStageInstanceService"
+			ref="org.hisp.dhis.program.ProgramStageInstanceService" />
+	</bean>
+
+	<bean
+		id="org.hisp.dhis.caseentry.action.caseentry.SaveExecutionDateAction"
+		class="org.hisp.dhis.caseentry.action.caseentry.SaveExecutionDateAction"
+		scope="prototype">
+		<property name="programStageInstanceService"
+			ref="org.hisp.dhis.program.ProgramStageInstanceService" />
+	</bean>
+
+	<bean id="org.hisp.dhis.caseentry.action.caseentry.DataEntryAction"
+		class="org.hisp.dhis.caseentry.action.caseentry.DataEntryAction"
+		scope="prototype">
+		<property name="programInstanceService" ref="org.hisp.dhis.program.ProgramInstanceService" />
+		<property name="programStageInstanceService"
+			ref="org.hisp.dhis.program.ProgramStageInstanceService" />
+		<property name="patientDataValueService"
+			ref="org.hisp.dhis.patientdatavalue.PatientDataValueService" />
+		<property name="selectedStateManager"
+			ref="org.hisp.dhis.caseentry.state.SelectedStateManager" />
+		<property name="programStageDataElementService"
+			ref="org.hisp.dhis.program.ProgramStageDataElementService" />
+	</bean>
+
+	<bean id="org.hisp.dhis.caseentry.action.caseentry.SaveValueAction"
+		class="org.hisp.dhis.caseentry.action.caseentry.SaveValueAction"
+		scope="prototype">
+		<property name="selectedStateManager"
+			ref="org.hisp.dhis.caseentry.state.SelectedStateManager" />
+		<property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+		<property name="dataElementCategoryService"
+			ref="org.hisp.dhis.dataelement.DataElementCategoryService" />
+		<property name="programInstanceService" ref="org.hisp.dhis.program.ProgramInstanceService" />
+		<property name="programStageInstanceService"
+			ref="org.hisp.dhis.program.ProgramStageInstanceService" />
+		<property name="patientDataValueService"
+			ref="org.hisp.dhis.patientdatavalue.PatientDataValueService" />
+	</bean>
+
+	<bean id="org.hisp.dhis.caseentry.action.caseentry.SaveDateValueAction"
+		class="org.hisp.dhis.caseentry.action.caseentry.SaveDateValueAction"
+		scope="prototype">
+		<property name="selectedStateManager"
+			ref="org.hisp.dhis.caseentry.state.SelectedStateManager" />
+		<property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+		<property name="programInstanceService" ref="org.hisp.dhis.program.ProgramInstanceService" />
+		<property name="programStageInstanceService"
+			ref="org.hisp.dhis.program.ProgramStageInstanceService" />
+		<property name="patientDataValueService"
+			ref="org.hisp.dhis.patientdatavalue.PatientDataValueService" />
+	</bean>
+
+	<bean
+		id="org.hisp.dhis.caseentry.action.caseentry.SaveProvidingFacilityAction"
+		class="org.hisp.dhis.caseentry.action.caseentry.SaveProvidingFacilityAction"
+		scope="prototype">
+		<property name="selectedStateManager"
+			ref="org.hisp.dhis.caseentry.state.SelectedStateManager" />
+		<property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+		<property name="programInstanceService" ref="org.hisp.dhis.program.ProgramInstanceService" />
+		<property name="programStageInstanceService"
+			ref="org.hisp.dhis.program.ProgramStageInstanceService" />
+		<property name="patientDataValueService"
+			ref="org.hisp.dhis.patientdatavalue.PatientDataValueService" />
+	</bean>
+
+	<bean id="org.hisp.dhis.caseentry.screen.DataEntryScreenManager"
+		class="org.hisp.dhis.caseentry.screen.DefaultDataEntryScreenManager"
+		scope="prototype">
+		<property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+		<property name="programStageInstanceService">
+			<ref bean="org.hisp.dhis.program.ProgramStageInstanceService" />
+		</property>
+		<property name="programStageService">
+			<ref bean="org.hisp.dhis.program.ProgramStageService" />
+		</property>
+		<property name="patientDataValueService">
+			<ref bean="org.hisp.dhis.patientdatavalue.PatientDataValueService" />
+		</property>
+		<property name="programStageDataElementService"
+			ref="org.hisp.dhis.program.ProgramStageDataElementService" />
+	</bean>
+
+	<bean id="org.hisp.dhis.caseentry.action.caseentry.CustomDataEntryAction"
+		class="org.hisp.dhis.caseentry.action.caseentry.CustomDataEntryAction"
+		scope="prototype">
+		<property name="minMaxDataElementService"
+			ref="org.hisp.dhis.minmax.MinMaxDataElementService" />
+		<property name="dataEntryScreenManager"
+			ref="org.hisp.dhis.caseentry.screen.DataEntryScreenManager" />
+		<property name="systemSettingManager" ref="org.hisp.dhis.options.SystemSettingManager" />
+		<property name="selectedStateManager"
+			ref="org.hisp.dhis.caseentry.state.SelectedStateManager" />
+		<property name="patientDataValueService"
+			ref="org.hisp.dhis.patientdatavalue.PatientDataValueService" />
+		<property name="patientIdentifierService"
+			ref="org.hisp.dhis.patient.PatientIdentifierService" />
+		<property name="programStageInstanceService"
+			ref="org.hisp.dhis.program.ProgramStageInstanceService" />
+		<property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
+		<property name="programInstanceService" ref="org.hisp.dhis.program.ProgramInstanceService" />
+		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+		<property name="patientService" ref="org.hisp.dhis.patient.PatientService" />
+	</bean>
+
+	<bean
+		id="org.hisp.dhis.caseentry.action.caseentry.CompleteDataEntryAction"
+		class="org.hisp.dhis.caseentry.action.caseentry.CompleteDataEntryAction"
+		scope="prototype">
+		<property name="programStageInstanceService"
+			ref="org.hisp.dhis.program.ProgramStageInstanceService" />
+		<property name="programInstanceService" ref="org.hisp.dhis.program.ProgramInstanceService" />
+	</bean>
+
+	<bean id="org.hisp.dhis.caseentry.action.caseentry.ValidateValueAction"
+		class="org.hisp.dhis.caseentry.action.caseentry.ValidateValueAction"
+		scope="prototype">
+		<property name="selectedStateManager"
+			ref="org.hisp.dhis.caseentry.state.SelectedStateManager" />
+		<property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+		<property name="programInstanceService" ref="org.hisp.dhis.program.ProgramInstanceService" />
+		<property name="programStageInstanceService"
+			ref="org.hisp.dhis.program.ProgramStageInstanceService" />
+		<property name="patientDataValueService"
+			ref="org.hisp.dhis.patientdatavalue.PatientDataValueService" />
+		<property name="validationService"
+			ref="org.hisp.dhis.program.ProgramStageDataElementValidationService" />
+	</bean>
+
+	<!-- Multi DataEntry -->
+
+	<bean
+		id="org.hisp.dhis.caseentry.action.caseentry.MultiDataEntrySelectAction"
+		class="org.hisp.dhis.caseentry.action.caseentry.MultiDataEntrySelectAction"
+		scope="prototype">
+		<property name="selectedStateManager"
+			ref="org.hisp.dhis.caseentry.state.SelectedStateManager" />
+		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+		<property name="patientAttributeService"
+			ref="org.hisp.dhis.patient.PatientAttributeService" />
+	</bean>
+
+	<bean id="org.hisp.dhis.caseentry.action.caseentry.GetDataRecordsAction"
+		class="org.hisp.dhis.caseentry.action.caseentry.GetDataRecordsAction"
+		scope="prototype">
+		<property name="selectedStateManager"
+			ref="org.hisp.dhis.caseentry.state.SelectedStateManager" />
+		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+		<property name="programInstanceService" ref="org.hisp.dhis.program.ProgramInstanceService" />
+		<property name="programStageInstanceService"
+			ref="org.hisp.dhis.program.ProgramStageInstanceService" />
+		<property name="patientService" ref="org.hisp.dhis.patient.PatientService" />
+		<property name="patientAttributeService"
+			ref="org.hisp.dhis.patient.PatientAttributeService" />
+		<property name="patientAttributeValueService"
+			ref="org.hisp.dhis.patientattributevalue.PatientAttributeValueService" />
+	</bean>
+
+	<bean
+		id="org.hisp.dhis.caseentry.action.caseentry.ProgramStageCustomDataEntryAction"
+		class="org.hisp.dhis.caseentry.action.caseentry.ProgramStageCustomDataEntryAction"
+		scope="prototype">
+		<property name="minMaxDataElementService"
+			ref="org.hisp.dhis.minmax.MinMaxDataElementService" />
+		<property name="dataEntryScreenManager"
+			ref="org.hisp.dhis.caseentry.screen.DataEntryScreenManager" />
+		<property name="systemSettingManager" ref="org.hisp.dhis.options.SystemSettingManager" />
+		<property name="selectedStateManager"
+			ref="org.hisp.dhis.caseentry.state.SelectedStateManager" />
+		<property name="patientDataValueService"
+			ref="org.hisp.dhis.patientdatavalue.PatientDataValueService" />
+		<property name="patientIdentifierService"
+			ref="org.hisp.dhis.patient.PatientIdentifierService" />
+		<property name="programStageInstanceService"
+			ref="org.hisp.dhis.program.ProgramStageInstanceService" />
+	</bean>
+
+	<!-- Visit Plan -->
+
+	<bean id="org.hisp.dhis.caseentry.action.visitplan.VisitPlanSelectAction"
+		class="org.hisp.dhis.caseentry.action.visitplan.VisitPlanSelectAction"
+		scope="prototype">
+		<property name="selectionManager"
+			ref="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
+	</bean>
+
+	<bean id="org.hisp.dhis.caseentry.action.visitplan.VisitPlanAction"
+		class="org.hisp.dhis.caseentry.action.visitplan.VisitPlanAction"
+		scope="prototype">
+		<property name="selectionManager"
+			ref="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
+		<property name="patientService" ref="org.hisp.dhis.patient.PatientService" />
+		<property name="patientAttributeValueService"
+			ref="org.hisp.dhis.patientattributevalue.PatientAttributeValueService" />
+		<property name="patientAttributeService"
+			ref="org.hisp.dhis.patient.PatientAttributeService" />
+		<property name="activityPlanService"
+			ref="org.hisp.dhis.activityplan.ActivityPlanService" />
+	</bean>
+
+	<!-- Report -->
+
+	<bean id="org.hisp.dhis.caseentry.action.report.ReportSelectAction"
+		class="org.hisp.dhis.caseentry.action.report.ReportSelectAction"
+		scope="prototype">
+		<property name="selectedStateManager"
+			ref="org.hisp.dhis.caseentry.state.SelectedStateManager" />
+		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+	</bean>
+
+	<bean
+		id="org.hisp.dhis.caseentry.action.report.ValidateReportParametersAction"
+		class="org.hisp.dhis.caseentry.action.report.ValidateReportParametersAction"
+		scope="prototype">
+		<property name="selectedStateManager"
+			ref="org.hisp.dhis.caseentry.state.SelectedStateManager" />
+	</bean>
+
+	<bean id="org.hisp.dhis.caseentry.action.report.GenerateReportAction"
+		class="org.hisp.dhis.caseentry.action.report.GenerateReportAction"
+		scope="prototype">
+		<property name="selectedStateManager"
+			ref="org.hisp.dhis.caseentry.state.SelectedStateManager" />
+		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+		<property name="programInstanceService" ref="org.hisp.dhis.program.ProgramInstanceService" />
+		<property name="programStageInstanceService"
+			ref="org.hisp.dhis.program.ProgramStageInstanceService" />
+	</bean>
+
+	<bean id="org.hisp.dhis.caseentry.action.report.ViewRecordsAction"
+		class="org.hisp.dhis.caseentry.action.report.ViewRecordsAction" scope="prototype">
+		<property name="patientDataValueService"
+			ref="org.hisp.dhis.patientdatavalue.PatientDataValueService" />
+		<property name="programStageInstanceService"
+			ref="org.hisp.dhis.program.ProgramStageInstanceService" />
+		<property name="dataElementCategoryService"
+			ref="org.hisp.dhis.dataelement.DataElementCategoryService" />
+	</bean>
+
+	<bean id="org.hisp.dhis.caseentry.action.report.GetPatientDetailsAction"
+		class="org.hisp.dhis.caseentry.action.report.GetPatientDetailsAction"
+		scope="prototype">
+		<property name="patientService" ref="org.hisp.dhis.patient.PatientService" />
+		<property name="patientIdentifierService"
+			ref="org.hisp.dhis.patient.PatientIdentifierService" />
+		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+		<property name="patientAttributeValueService"
+			ref="org.hisp.dhis.patientattributevalue.PatientAttributeValueService" />
+		<property name="patientAttributeService">
+			<ref bean="org.hisp.dhis.patient.PatientAttributeService" />
+		</property>
+		<property name="patientAttributeGroupService"
+			ref="org.hisp.dhis.patient.PatientAttributeGroupService" />
+		<property name="patientIdentifierTypeService">
+			<ref bean="org.hisp.dhis.patient.PatientIdentifierTypeService" />
+		</property>
+	</bean>
+
+	<!-- Case Aggregation -->
+	<bean
+		id="org.hisp.dhis.caseentry.action.caseaggregation.CaseAggregationFormAction"
+		class="org.hisp.dhis.caseentry.action.caseaggregation.CaseAggregationFormAction"
+		scope="prototype">
+		<property name="dataSetService" ref="org.hisp.dhis.dataset.DataSetService" />
+	</bean>
+
+	<bean
+		id="org.hisp.dhis.caseentry.action.caseaggregation.LoadPeriodsAction"
+		class="org.hisp.dhis.caseentry.action.caseaggregation.LoadPeriodsAction"
+		scope="prototype">
+		<property name="dataSetService" ref="org.hisp.dhis.dataset.DataSetService" />
+	</bean>
+
+	<bean
+		id="org.hisp.dhis.caseentry.action.caseaggregation.CaseAggregationResultAction"
+		class="org.hisp.dhis.caseentry.action.caseaggregation.CaseAggregationResultAction"
+		scope="prototype">
+		<property name="selectionTreeManager"
+			ref="org.hisp.dhis.oust.manager.SelectionTreeManager" />
+		<property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
+		<property name="dataSetService" ref="org.hisp.dhis.dataset.DataSetService" />
+		<property name="aggregationConditionService"
+			ref="org.hisp.dhis.caseaggregation.CaseAggregationConditionService" />
+		<property name="dataValueService" ref="org.hisp.dhis.datavalue.DataValueService" />
+		<property name="currentUserService" ref="org.hisp.dhis.user.CurrentUserService" />
+	</bean>
 </beans>

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties	2010-11-29 07:29:38 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties	2010-12-03 06:08:58 +0000
@@ -475,3 +475,10 @@
 immediate_children												= Immediate Children
 child_tree														= Child Tree
 aggregate	 													= Aggregate
+added															= Added
+updated															= Updated
+in																= in
+value															= Value
+status															= Status
+no_value_added_or_update										= No values added or updated.
+greater_then_from_date											= This field is greater then from date.

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/struts.xml'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/struts.xml	2010-12-02 03:44:08 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/struts.xml	2010-12-03 06:08:58 +0000
@@ -223,18 +223,16 @@
       <param name="menu">/dhis-web-caseentry/caseAggregationMenu.vm</param>    
       <param name="javascripts">javascript/caseagg.js,javascript/date.js</param>      
     </action>
-    
-	<action name="getOrgUnitDetails" class="org.hisp.dhis.caseentry.action.caseaggregation.GetOrgUnitsAction">
-		<result name="success" type="velocity">/dhis-web-caseentry/responseOrgUnit.vm</result>			
-		<param name="onExceptionReturn">plainTextError</param>
-	</action>
-	
-	<action name="getDataSetPeriods" class="org.hisp.dhis.caseentry.action.caseaggregation.GetDataSetPeriodsAction">
-		<result name="success" type="velocity">/dhis-web-caseentry/dSetResponsePeriod.vm</result>
-		<param name="onExceptionReturn">plainTextError</param>
-	</action>
-
-    <action name="caseAggregationResult" class="org.hisp.dhis.caseentry.action.caseaggregation.CaseAggregationResultAction">                 
+	
+	<action name="loadPeriods" class="org.hisp.dhis.caseentry.action.caseaggregation.LoadPeriodsAction">
+		<result name="success" type="velocity-json">/dhis-web-caseentry/responsePeriods.vm</result>
+	</action>
+	
+	<action name="caseAggregationResult" class="org.hisp.dhis.caseentry.action.caseaggregation.LoadPeriodsAction">
+		<result name="success" type="chain">caseAggregationResultChain</result>
+	</action>
+	
+    <action name="caseAggregationResultChain" class="org.hisp.dhis.caseentry.action.caseaggregation.CaseAggregationResultAction">                 
       <result name="success" type="velocity">/main.vm</result>
       <param name="page">/dhis-web-caseentry/caseAggregationResult.vm</param>
       <param name="menu">/dhis-web-caseentry/menu.vm</param>      

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/caseAggregationForm.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/caseAggregationForm.vm	2010-11-25 22:22:10 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/caseAggregationForm.vm	2010-12-03 06:08:58 +0000
@@ -1,11 +1,26 @@
 
 <script>
-	//Global Variables
-	var curPeriodType="";
+	var isSubmit = true;
+	jQuery(document).ready(	function(){
+			validation( 'caseAggregationForm', function(form){
+				if(isSubmit) form.submit();
+			}, function(){
+				var periodFrom = $( '#sDateLB' ).val();
+				var periodTo = $( '#eDateLB' ).val();
+				
+				if(periodFrom > periodTo){
+					var i18n_greater_then_from_date = '$encoder.jsEscape( $i18n.getString( "greater_then_from_date" ) , "'" )';
+					byId('warningMessage').innerHTML = i18n_greater_then_from_date;
+					isSubmit = false;
+				}else{
+					isSubmit = true;
+				}
+			})
+	}); 
 </script>
 
 <h1> $i18n.getString( "case_aggregation_form" )</h1>
-<hr />
+<hr/>
 <form id="caseAggregationForm" name="caseAggregationForm" action="caseAggregationResult.action" method="post">
 	<table>
 	
@@ -14,8 +29,8 @@
 				$i18n.getString( "dataset_list" )
 			</td>
 			<td>
-				<select id="selectedDataSets" name="selectedDataSets" onchange="getdSetPeriods()" style="width: 30em">
-					<option value='0'>[$i18n.getString('please_select')]</option>
+				<select id="dataSetId" name="dataSetId" onchange="dataSetSelected()" style="width: 30em" class="{validate:{required:true}}">
+					<option value=''>[$i18n.getString('please_select')]</option>
 					#foreach ( $dataSet in $datasets )
 						<option value='$dataSet.id' title='$dataSet.name'>$dataSet.name</option>
 					#end
@@ -28,7 +43,7 @@
 				$i18n.getString( "from" )
 			</td>
 			<td>
-				<select id="sDateLB" name="sDateLB" style="width: 30em"></select>
+				<select id="sDateLB" name="sDateLB" style="width: 30em" class="{validate:{required:true}}"></select>
 			</td>
 		</tr>
 		
@@ -37,8 +52,10 @@
 				$i18n.getString( "to" )
 			</td>
 			<td>
-				<select id="eDateLB" name="eDateLB" style="width: 30em"></select>
+				<select id="eDateLB" name="eDateLB" style="width: 30em" class="{validate:{required:true}}"></select>
+				<i><span id='warningMessage' style="color:red"></span></i>
 			</td>
+				
 		</tr>
 		<tr>
 			<td>
@@ -72,5 +89,5 @@
 </form>
 
 <script>
-	window.onload=getdSetPeriods;
+	var i18n_please_select = '$encoder.jsEscape( $i18n.getString( "please_select" ) , "'" )';
 </script>
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/caseAggregationResult.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/caseAggregationResult.vm	2010-04-12 08:28:26 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/caseAggregationResult.vm	2010-12-03 06:08:58 +0000
@@ -1,2 +1,31 @@
-
-<div align="center">$resultMessage</div>
\ No newline at end of file
+<div>
+    <input type="button" value="$i18n.getString( "back" )" onclick="window.location.href='caseAggregationForm.action'" style="width:10em">
+</div>
+<p></p>
+<div>
+#if( $mapDataValues.keySet().size() > 0 )
+	<table width='100%'>
+		<tr>
+			<th>#</th>
+			<th>$i18n.getString('name')</th>
+			<th>$i18n.getString('value')</th>
+			<th>$i18n.getString('status')</th>
+		</tr>
+	#set ( $keys = $mapDataValues.keySet() )
+	#set ($index = 1)
+	#foreach( $key in $keys)
+		<tr id="tr${key.dataElement.id}">
+			<td>$index</td>
+			<td>$key.dataElement.getName()</td>
+			<td>$key.getValue()</td>
+			<td>$mapDataValues.get($key)</td>
+		</tr>
+		#set ($index = $index + 1)
+	#end
+	</table>
+
+#else
+	$i18n.getString('no_value_added_or_update')
+#end
+
+</div>
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/caseagg.js'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/caseagg.js	2010-11-29 02:04:22 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/caseagg.js	2010-12-03 06:08:58 +0000
@@ -1,132 +1,29 @@
-
-// Removes slected orgunits from the Organisation List
-function remOUFunction()
-{
-	var ouList = document.getElementById("orgUnitListCB");
-	var index = ouList.options.length;
-    var i=0;
-    for(i=index-1;i>=0;i--)
-    {
-    	if(ouList.options[i].selected)
-    		ouList.options[i] = null;
-    }
-}// remOUFunction end
-
-
-//Getting corresponding Period List for Datasets. 
-function getdSetPeriods()
-{
-  var dataSetList = document.getElementById("selectedDataSets");
-  var dataSetId = dataSetList.options[ dataSetList.selectedIndex].value;
-  
-  if(dataSetId == '0')
-  {
-	return;
-  }
-  
-	var url = "getDataSetPeriods.action?selectedDataSets=" + dataSetId;
-    
-    var request = new Request();
-    request.setResponseTypeXML( 'period' );
-    request.setCallbackSuccess( getdSetPeriodsReceived );
-    request.send( url ); 
-}	 
-
-
-function getdSetPeriodsReceived( xmlObject )
-{	
-	var sDateLB = document.getElementById( "sDateLB" );
-	var eDateLB = document.getElementById( "eDateLB" );
-	
-	
-	var periods = xmlObject.getElementsByTagName( "period" );
-	
-	for ( var i = 0; i < periods.length; i++)
+function dataSetSelected()
+{
+	var dataSetId = $( '#dataSetId' ).val();	
+	var periodFrom = $( '#sDateLB' ).val();
+	var periodTo = $( '#eDateLB' ).val();
+	
+	if ( dataSetId && dataSetId != 0 )
 	{
-		var periodType = periods[ i ].getElementsByTagName( "periodtype" )[0].firstChild.nodeValue;
-		
-		if(i ==0 )
-		{
-		  if( periodType == curPeriodType )
-		  {
-			   break;
-		  }
-		  else
-		  {
-			   curPeriodType = periodType;
-			   clearList( sDateLB );
-               clearList( eDateLB );
-		  }
-		}
-		
-		
-		var id = periods[ i ].getElementsByTagName( "id" )[0].firstChild.nodeValue;
-		var periodName = periods[ i ].getElementsByTagName( "periodname" )[0].firstChild.nodeValue;
-							
-			var option1 = document.createElement( "option" );
-			option1.value = id;
-			option1.text = periodName;
-			sDateLB.add( option1, null );
+		var url = 'loadPeriods.action?dataSetId=' + dataSetId;
+
+		var listStartPeriod = document.getElementById( 'sDateLB' );
+		var listEndPeriod = document.getElementById( 'eDateLB' );
+		
+	    clearList( listStartPeriod );
+		clearList( listEndPeriod );
+	    
+	    addOptionToList( listStartPeriod, '', '[' + i18n_please_select + ']' );
+		addOptionToList( listEndPeriod, '', '[' + i18n_please_select + ']' );
+		
+	    $.getJSON( url, function( json ) {
 			
-			var option2 = document.createElement( "option" );
-			option2.value = id;
-			option2.text = periodName;
-			eDateLB.add( option2, null);				
-	}	
-}
-
-
-function getOrgUDetails(orgUnitIds)
-{
-	var url = "getOrgUnitDetails.action?orgUnitId=" + orgUnitIds;
-	
-	var request = new Request();
-	request.setResponseTypeXML( 'orgunit' );
-	request.setCallbackSuccess( getOrgUDetailsRecevied );
-	request.send( url );
-}
-
-function getOrgUDetailsRecevied(xmlObject)
-{		
-	var ouList = document.getElementById("orgUnitListCB");
-	var orgUnits = xmlObject.getElementsByTagName("orgunit");
-	
-	clearList(ouList);
-	
-    for ( var i = 0; i < orgUnits.length; i++ )
-    {
-        var id = orgUnits[ i ].getElementsByTagName("id")[0].firstChild.nodeValue;
-        var orgUnitName = orgUnits[ i ].getElementsByTagName("name")[0].firstChild.nodeValue;
-		
-		ouList.options[0] = new Option(orgUnitName,id,false,false);
-    }
-}
-
-//CaseAgg Form Validations
-function formValidationsForCaseAggMapping()
-{
-	var selOUListIndex = document.caseAggregationForm.orgUnitListCB.options.length;
-	var selDSListSize  = document.caseAggregationForm.selectedDataSets.options.length;
-	
-    sDateIndex    = document.caseAggregationForm.sDateLB.selectedIndex;
-    eDateIndex    = document.caseAggregationForm.eDateLB.selectedIndex;
-    sDateTxt = document.caseAggregationForm.sDateLB.options[sDateIndex].text;
-    sDate = formatDate(new Date(getDateFromFormat(sDateTxt,"MMM - y")),"yyyy-MM-dd");
-    eDateTxt = document.caseAggregationForm.eDateLB.options[eDateIndex].text;
-    eDate = formatDate(new Date(getDateFromFormat(eDateTxt,"MMM - y")),"yyyy-MM-dd");
-    if(selOUListIndex <= 0) {alert("Please Select OrganisationUnit"); return false;}
-    else if(selDSListSize <= 0) {alert("Please Select DataSet"); return false;}
-    else if(sDateIndex < 0) {alert("Please Select Starting Period"); return false;}
-    else if(eDateIndex < 0) {alert("Please Select Ending Period"); return false;}
-    else if(sDate > eDate) {alert("Starting Date is Greater"); return false;}
-
-	var k=0;
-	
-    for(k=0;k<selOUListIndex;k++)
-    {
-    	document.caseAggregationForm.orgUnitListCB.options[k].selected = true;
-    }
-  	  	 	
-  	return true;
-
-} // formValidations Function End	
+	    	for ( i in json.periods ) {
+	    		addOptionToList( listStartPeriod, i, json.periods[i].name );
+				addOptionToList( listEndPeriod, i, json.periods[i].name );
+	    	}
+	    	
+	    } );
+	}
+}
\ No newline at end of file

=== added file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/responsePeriods.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/responsePeriods.vm	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/responsePeriods.vm	2010-12-03 06:08:58 +0000
@@ -0,0 +1,12 @@
+#set( $size1 = $periods.size() )
+{ "periods": [
+#foreach( $period in $periods )
+  {
+    "id": $!{period.id},
+    "startDate": "$!format.formatDate( ${period.startDate} )",
+    "endDate": "$!format.formatDate( ${period.endDate} )",
+    "name": "$!format.formatPeriod( ${period} )",
+    "externalId": "$!{period.externalId}"
+  }#if( $velocityCount < $size1 ),#end
+#end ]
+}