← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 1768: Updated files for caseentry module.

 

------------------------------------------------------------
revno: 1768
committer: Viet <Viet@Viet-Laptop>
branch nick: trunk
timestamp: Mon 2010-04-12 15:28:26 +0700
message:
  Updated files for caseentry module.
added:
  dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/
  dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/CaseAggregationFormAction.java
  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/GetDataSetPeriodsAction.java
  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/webapp/dhis-web-caseentry/caseAggregationForm.vm
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/caseAggregationMenu.vm
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/caseAggregationResult.vm


--
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
=== added directory 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation'
=== added file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/CaseAggregationFormAction.java'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/CaseAggregationFormAction.java	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/CaseAggregationFormAction.java	2010-04-12 08:28:26 +0000
@@ -0,0 +1,62 @@
+package org.hisp.dhis.caseentry.action.caseaggregation;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Iterator;
+import java.util.List;
+
+import org.hisp.dhis.dataset.DataSet;
+import org.hisp.dhis.dataset.DataSetService;
+import org.hisp.dhis.dataset.comparator.DataSetNameComparator;
+
+import com.opensymphony.xwork2.Action;
+
+public class CaseAggregationFormAction implements Action 
+{
+    // -------------------------------------------------------------------------
+    // Dependencies
+    // -------------------------------------------------------------------------
+
+	private DataSetService dataSetService;
+	
+	public void setDataSetService(DataSetService dataSetService) 
+	{
+		this.dataSetService = dataSetService;
+	}
+	
+    // -------------------------------------------------------------------------
+    // Input/Output
+    // -------------------------------------------------------------------------
+
+	private List<DataSet> datasets;
+	
+	public List<DataSet> getDatasets() 
+	{
+		return datasets;
+	}
+	
+    // -------------------------------------------------------------------------
+    // Action implementation
+    // -------------------------------------------------------------------------
+
+    public String execute() throws Exception
+    {
+    	
+    	datasets = new ArrayList<DataSet>( dataSetService.getAllDataSets() );
+    	
+        Iterator<DataSet> dataSetListIterator = datasets.iterator();
+        
+        while(dataSetListIterator.hasNext())
+        {
+            DataSet d = (DataSet)dataSetListIterator.next();
+            
+            if(d.getSources().size() <= 0)
+                
+                dataSetListIterator.remove( );
+        }
+        
+        Collections.sort( datasets, new DataSetNameComparator() );
+
+    	return SUCCESS;
+    }
+}

=== added 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	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/CaseAggregationResultAction.java	2010-04-12 08:28:26 +0000
@@ -0,0 +1,273 @@
+package org.hisp.dhis.caseentry.action.caseaggregation;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.List;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.hisp.dhis.caseaggregation.CaseAggregationMapping;
+import org.hisp.dhis.caseaggregation.CaseAggregationMappingService;
+import org.hisp.dhis.dataelement.DataElement;
+import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo;
+import org.hisp.dhis.dataset.DataSet;
+import org.hisp.dhis.dataset.DataSetService;
+import org.hisp.dhis.datavalue.DataValue;
+import org.hisp.dhis.datavalue.DataValueService;
+import org.hisp.dhis.organisationunit.OrganisationUnit;
+import org.hisp.dhis.organisationunit.OrganisationUnitService;
+import org.hisp.dhis.organisationunit.comparator.OrganisationUnitNameComparator;
+import org.hisp.dhis.organisationunit.comparator.OrganisationUnitShortNameComparator;
+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;
+
+public class CaseAggregationResultAction
+    implements Action
+{
+
+    Log log = LogFactory.getLog( getClass() );
+    // ---------------------------------------------------------------
+    // Dependencies
+    // ---------------------------------------------------------------
+
+    private OrganisationUnitService organisationUnitService;
+
+    public void setOrganisationUnitService( OrganisationUnitService organisationUnitService )
+    {
+        this.organisationUnitService = organisationUnitService;
+    }
+
+    private PeriodService periodService;
+
+    public void setPeriodService( PeriodService periodService )
+    {
+        this.periodService = periodService;
+    }
+
+    private DataSetService dataSetService;
+
+    public void setDataSetService( DataSetService dataSetService )
+    {
+        this.dataSetService = dataSetService;
+    }
+
+    private CaseAggregationMappingService caseAggregationService;
+
+    public void setCaseAggregationService( CaseAggregationMappingService caseAggregationService )
+    {
+        this.caseAggregationService = caseAggregationService;
+    }
+
+    private DataValueService dataValueService;
+
+    public void setDataValueService( DataValueService dataValueService )
+    {
+        this.dataValueService = dataValueService;
+    }
+
+    private CurrentUserService currentUserService;
+
+    public void setCurrentUserService( CurrentUserService currentUserService )
+    {
+        this.currentUserService = currentUserService;
+    }
+
+    // ---------------------------------------------------------------
+    // Input & Output Parameters
+    // ---------------------------------------------------------------
+
+    private int sDateLB;
+
+    public void setSDateLB( int dateLB )
+    {
+        sDateLB = dateLB;
+    }
+
+    private int eDateLB;
+
+    public void setEDateLB( int dateLB )
+    {
+        eDateLB = dateLB;
+    }
+
+    private String facilityLB;
+
+    public void setFacilityLB( String facilityLB )
+    {
+        this.facilityLB = facilityLB;
+    }
+
+    private String orgUnitListCB;
+
+    public void setOrgUnitListCB( String orgUnitListCB )
+    {
+        this.orgUnitListCB = orgUnitListCB;
+    }
+
+    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;
+
+    // ---------------------------------------------------------------
+    // Action Implementation
+    // ---------------------------------------------------------------
+    public String execute()
+        throws Exception
+    {
+        
+//        if ( true )
+//        {
+//            int resultValue1 = caseAggregationService.getCaseAggregateValue( null, null,
+//                null );
+//            
+//            
+//            return SUCCESS;
+//        }
+        
+        storedBy = currentUserService.getCurrentUsername() + "_CAE";
+
+        resultMessage = "";
+
+        // DataSet and DataElement
+        selDataSet = dataSetService.getDataSet( Integer.parseInt( selectedDataSets ) );
+        dataElementList = new ArrayList<DataElement>( selDataSet.getDataElements() );
+
+        // Orgunnit list
+        selOrgUnit = organisationUnitService.getOrganisationUnit( Integer.parseInt( orgUnitListCB ) );
+
+        orgUnitList = new ArrayList<OrganisationUnit>();
+        if ( facilityLB.equals( "children" ) )
+        {
+            orgUnitList = getChildOrgUnitTree( selOrgUnit );
+        }
+        else if ( facilityLB.equals( "immChildren" ) )
+        {
+            orgUnitList.add( selOrgUnit );
+            List<OrganisationUnit> organisationUnits = new ArrayList<OrganisationUnit>( selOrgUnit.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
+        
+        for ( OrganisationUnit orgUnit : orgUnitList )
+        {
+
+            for ( DataElement dElement : dataElementList )
+            {
+                List<DataElementCategoryOptionCombo> deCOCList = new ArrayList<DataElementCategoryOptionCombo>(
+                    dElement.getCategoryCombo().getOptionCombos() );
+                
+                for ( DataElementCategoryOptionCombo optionCombo : deCOCList )
+                {
+                    CaseAggregationMapping caseAggregationMapping = caseAggregationService
+                        .getCaseAggregationMappingByOptionCombo( dElement, optionCombo );
+
+                    if ( caseAggregationMapping == null || caseAggregationMapping.getExpression() == null
+                        || caseAggregationMapping.getExpression().trim().equals( "" ) )
+                        break;
+                    
+                    for ( Period period : periodList )
+                    {
+                        int resultValue = caseAggregationService.getCaseAggregateValue( orgUnit, period,
+                            caseAggregationMapping );
+                        
+                        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.";
+                            }
+                            else
+                            {
+                                dataValue.setValue( "" + resultValue );
+                                dataValue.setTimestamp( new Date() );
+                                dataValue.setStoredBy( storedBy );
+
+                                dataValueService.updateDataValue( dataValue );
+                                tempStr += resultValue + "Updated.";
+                            }
+
+                            System.out.println( tempStr );
+                            resultMessage += "<br>" + tempStr;
+                        }
+
+                    }// PeriodList end
+
+                }// OptionComboList end
+            }// DataElementList end
+
+        }// Orgunit for loop end
+
+        return SUCCESS;
+    }
+
+    // Returns the OrgUnitTree for which Root is the orgUnit
+    @SuppressWarnings( "unchecked" )
+    public List<OrganisationUnit> getChildOrgUnitTree( OrganisationUnit orgUnit )
+    {
+        List<OrganisationUnit> orgUnitTree = new ArrayList<OrganisationUnit>();
+        orgUnitTree.add( orgUnit );
+
+        List<OrganisationUnit> children = new ArrayList<OrganisationUnit>( orgUnit.getChildren() );
+        Collections.sort( children, new OrganisationUnitNameComparator() );
+
+        Iterator childIterator = children.iterator();
+        OrganisationUnit child;
+        while ( childIterator.hasNext() )
+        {
+            child = (OrganisationUnit) childIterator.next();
+            orgUnitTree.addAll( getChildOrgUnitTree( child ) );
+        }
+        return orgUnitTree;
+    }// getChildOrgUnitTree end
+
+}

=== added 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	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/GetDataSetPeriodsAction.java	2010-04-12 08:28:26 +0000
@@ -0,0 +1,166 @@
+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 id;
+
+    public void setId( Integer id )
+    {
+        this.id = id;
+    }
+
+    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;
+        dSet = dataSetService.getDataSet( id );
+        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;
+    }
+
+}

=== added 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	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/GetOrgUnitsAction.java	2010-04-12 08:28:26 +0000
@@ -0,0 +1,64 @@
+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/webapp/dhis-web-caseentry/caseAggregationForm.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/caseAggregationForm.vm	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/caseAggregationForm.vm	2010-04-12 08:28:26 +0000
@@ -0,0 +1,99 @@
+
+<script>
+	//Global Variables
+	var curPeriodType="";
+</script>
+
+<h1>Case Aggregation Form</h1>
+<hr />
+	<form id="caseAggregationForm" name="caseAggregationForm" action="caseAggregationResult.action" method="post" onsubmit="return formValidationsForCaseAggMapping()">
+		<table align="center" style=" border-collapse: collapse; margin-top: 0;" cellpadding="0" cellspacing="0" width="730" border=0>
+			<colgroup>
+                    <col width="325">
+                    <col width="80">
+                    <col width="325">
+                </colgroup>
+
+                <tr>
+                    <td class="NormalB" align="center">
+                        <table>
+                            <tr>
+                                <td class="NormalB" colspan="2">
+                                    $i18n.getString( "ds_dataset_list" ) : <br>
+                                    <select id="selectedDataSets" name="selectedDataSets" onchange="getdSetPeriods()" >
+                                        #foreach ( $dataSet in $datasets )
+                                            <option value='$dataSet.id' title='$dataSet.name'>$dataSet.name</option>
+                                        #end
+                                    </select>
+                                </td>
+                            </tr>
+                            
+                            <tr>
+                                <td class="NormalB">&nbsp;</td>
+                            </tr>
+                                                        
+                            <tr>
+                                <td class="NormalB">
+                                    $i18n.getString( "from" )<br>
+                                    <select id="sDateLB" name="sDateLB"></select>
+                                </td>
+                                <td class="NormalB">
+                                    $i18n.getString( "to" )<br>
+                                    <select id="eDateLB" name="eDateLB"></select>
+                                </td>
+                            </tr>
+                                <td class="NormalB">&nbsp;</td>
+                                <td class="NormalB">&nbsp;</td>
+                            </tr>
+
+                            <tr>
+                                <td class="NormalB"><br/><input type="submit" name="Aggregate" value="Aggregate" style="font-family: Arial; font-weight: bold; color: rgb(0, 0, 0);" /></td>
+                                <td class="NormalB">
+                                    $i18n.getString( "ga_facilityby" )<br>
+                                        <select id="facilityLB" name="facilityLB">
+                                            <option value="random" selected>Selected</option>
+                                            <option value="immChildren" >Immediate Children</option>
+                                            <option value="children" >Child Tree</option>
+                                        </select>
+                                </td>
+                            </tr>
+                            
+                        </table>
+                    </td>
+                    <td class="NormalB">&nbsp; </td>
+
+                    <td class="NormalB">
+                        <table>
+                            <tr>
+                                <td class="NormalB">&nbsp;
+                                </td>
+                            </tr>
+                            <tr>
+                                <td class="NormalB">
+                                    $i18n.getString( "ga_orgunit" )<br>
+                                    <select name="orgUnitListCB" id="orgUnitListCB" multiple style="width: 325px;height: 110px" ondblclick="remOUFunction()">
+                                    </select>
+                                </td>
+                            </tr>
+                       </table>
+                   </td>
+
+                </tr>
+
+		<tr>                    
+                    <td class="NormalB"> </td>
+                    <td class="NormalB"> </td>
+                    <td class="NormalB"> </td>
+                </tr>
+		<tr>
+                    <td>
+                    </td>
+                    <td class="NormalB">&nbsp; </td>
+                    <td>&nbsp;</td>
+                        
+		</tr>
+            </table>
+        </form>
+<script>
+	window.onload=getdSetPeriods;
+</script>
\ No newline at end of file

=== added file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/caseAggregationMenu.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/caseAggregationMenu.vm	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/caseAggregationMenu.vm	2010-04-12 08:28:26 +0000
@@ -0,0 +1,25 @@
+
+<a href="index.action"><h2>$i18n.getString( "case_aggragation" )&nbsp;</h2></a>
+<ul>
+    <li><a href="caseAggregationForm.action">$i18n.getString( "case_aggregation" )</a></li>     
+</ul>
+
+<br>
+#parse( "/dhis-web-commons/ouwt/orgunittree.vm" )
+
+<script type="text/javascript">
+
+function orgUnitHasBeenSelected( orgUnitIds )
+{    
+	if(orgUnitIds == null || orgUnitIds == "" )
+	{
+		return;
+	}
+
+	if(orgUnitIds != null)
+		getOrgUDetails(orgUnitIds);	
+}
+
+selection.setListenerFunction( orgUnitHasBeenSelected );
+
+</script>

=== added 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	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/caseAggregationResult.vm	2010-04-12 08:28:26 +0000
@@ -0,0 +1,2 @@
+
+<div align="center">$resultMessage</div>
\ No newline at end of file