[Branch ~dhis2-devs-core/dhis2/trunk] Rev 1743: Improve the min/max value functionality.

revision-diff.txt (25.6 KB)

Hi Tran, I think this commit causes a build error:

[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------

[INFO] Compilation failure
D:\development\source\bzr\dhis2\dhis-2\dhis-web\dhis-web-validationrule\src\main\java\org\hisp\dhis\validationrule\action\dataanalysis\GetAnalysisAction.java:[2
23,40] incompatible types

found : java.util.Collection<capture#274 of ?>
required: java.util.Collection<org.hisp.dhis.datavalue.DeflatedDataValue>

Please fix.

···

On Wed, Apr 7, 2010 at 2:32 PM, noreply@launchpad.net wrote:


revno: 1743

committer: Tran Chau tran.hispvietnam@gmail.com

branch nick: trunk

timestamp: Wed 2010-04-07 19:27:42 +0700

message:

Improve the min/max value functionality.

modified:

dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataanalysis/DataAnalysisService.java

dhis-2/dhis-options/src/main/java/org/hisp/dhis/options/SystemSettingManager.java

dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataanalysis/StdDevOutlierAnalysisService.java

dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml

dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/META-INF/dhis/beans.xml

dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties

dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/struts.xml

dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/index.vm

dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/menu.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

=== modified file ‘dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataanalysis/DataAnalysisService.java’

— dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataanalysis/DataAnalysisService.java 2009-12-23 17:34:18 +0000

+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataanalysis/DataAnalysisService.java 2010-04-07 12:27:42 +0000

@@ -30,18 +30,18 @@

import java.util.Collection;

import org.hisp.dhis.dataelement.DataElement;

-import org.hisp.dhis.datavalue.DeflatedDataValue;

import org.hisp.dhis.organisationunit.OrganisationUnit;

import org.hisp.dhis.period.Period;

/**

  • @author Dag Haavi Finstad
    • @version $Id: StdDevOutlierAnalysisService.java 882 2009-05-14 23:09:31Z daghf $
    • @version $Id: StdDevOutlierAnalysisService.java 882 2009-05-14 23:09:31Z
    •      daghf $
      

    */

public interface DataAnalysisService

{

 String ID = DataAnalysisService.class.getName();
  • Collection analyse( OrganisationUnit organisationUnit, Collection dataElements,
  • Collection<?> analyse( OrganisationUnit organisationUnit, Collection dataElements,

    Collection<Period> periods, Double stdDevFactor );
    

}

=== modified file ‘dhis-2/dhis-options/src/main/java/org/hisp/dhis/options/SystemSettingManager.java’

— dhis-2/dhis-options/src/main/java/org/hisp/dhis/options/SystemSettingManager.java 2010-03-31 16:44:55 +0000

+++ dhis-2/dhis-options/src/main/java/org/hisp/dhis/options/SystemSettingManager.java 2010-04-07 12:27:42 +0000

@@ -58,6 +58,8 @@

 final String KEY_GIS_LATITUDE = "latitude";



 final String KEY_DISABLE_DATAENTRYFORM_WHEN_COMPLETED = "dataEntryFormCompleted";
  • final String KEY_FACTOR_OF_DEVIATION = “factorDeviation”;

    void saveSystemSetting( String name, Serializable value );

=== modified file ‘dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataanalysis/StdDevOutlierAnalysisService.java’

— dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataanalysis/StdDevOutlierAnalysisService.java 2009-12-24 08:55:53 +0000

+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataanalysis/StdDevOutlierAnalysisService.java 2010-04-07 12:27:42 +0000

@@ -58,12 +58,12 @@

 }



 private OrganisationUnitService organisationUnitService;
 public void setOrganisationUnitService( OrganisationUnitService organisationUnitService )

 {

     this.organisationUnitService = organisationUnitService;

 }
 // -------------------------------------------------------------------------

 // OutlierAnalysisService implementation

 // -------------------------------------------------------------------------

@@ -71,21 +71,24 @@

 public final Collection<DeflatedDataValue> analyse( OrganisationUnit organisationUnit,

     Collection<DataElement> dataElements, Collection<Period> periods, Double stdDevFactor )

 {
  •    Collection<OrganisationUnit> units = organisationUnitService.getOrganisationUnitWithChildren( organisationUnit.getId() );
    
  •    Collection<OrganisationUnit> units = organisationUnitService.getOrganisationUnitWithChildren( organisationUnit
    
  •        .getId() );
    
     Collection<DeflatedDataValue> outlierCollection = new ArrayList<DeflatedDataValue>();
     for ( DataElement dataElement : dataElements )

     {

         if ( dataElement.getType().equals( DataElement.VALUE_TYPE_INT ) )
  •        {
    
  •            Collection<DataElementCategoryOptionCombo> categoryOptionCombos = dataElement.getCategoryCombo().getOptionCombos();
    
  •        {
    
  •            Collection<DataElementCategoryOptionCombo> categoryOptionCombos = dataElement.getCategoryCombo()
    
  •                .getOptionCombos();
    
             for ( DataElementCategoryOptionCombo categoryOptionCombo : categoryOptionCombos )

             {

                 for ( OrganisationUnit unit : units )

                 {
  •                    outlierCollection.addAll( findOutliers( unit, dataElement, categoryOptionCombo, periods, stdDevFactor ) );
    
  •                    outlierCollection.addAll( findOutliers( unit, dataElement, categoryOptionCombo, periods,
    
  •                        stdDevFactor ) );
    
                   }
    
               }
    
           }
    

@@ -98,23 +101,23 @@

 // Supportive methods

 // -------------------------------------------------------------------------
  • private Collection findOutliers( OrganisationUnit organisationUnit, DataElement dataElement,
  • private Collection findOutliers( OrganisationUnit organisationUnit, DataElement dataElement,

    DataElementCategoryOptionCombo categoryOptionCombo, Collection<Period> periods, Double stdDevFactor )
    

    {

    Double stdDev = dataAnalysisStore.getStandardDeviation( dataElement, categoryOptionCombo, organisationUnit );
    
  •    if ( !isEqual( stdDev, 0.0 ) ) // No values found or no outliers exist when 0.0
    
  •    if ( !isEqual( stdDev, 0.0 ) ) // No values found or no outliers exist
    
  •    // when 0.0
    
       {
    
           Double avg = dataAnalysisStore.getAverage( dataElement, categoryOptionCombo, organisationUnit );
    
  •        double deviation = stdDev * stdDevFactor;
    
  •        double deviation = stdDev * stdDevFactor;
    
           Double lowerBound = avg - deviation;
    
           Double upperBound = avg + deviation;
    
  •        return dataAnalysisStore.getDeflatedDataValues( dataElement, categoryOptionCombo, periods,
    
  •            organisationUnit, lowerBound.intValue(), upperBound.intValue() );
    
  •        return dataAnalysisStore.getDeflatedDataValues( dataElement, categoryOptionCombo, periods,
    
  •            organisationUnit, lowerBound.intValue(), upperBound.intValue() );
    
       }
    
     return new ArrayList<DeflatedDataValue>();

 }

}

=== modified file ‘dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml’

— dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml 2010-04-05 15:47:53 +0000

+++ dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml 2010-04-07 12:27:42 +0000

@@ -379,6 +379,12 @@

   ref="org.hisp.dhis.dataanalysis.jdbc.DataAnalysisStore"/>
  • <bean id=“org.hisp.dhis.dataanalysis.MinMaxValuesGeneratingService”

  • class=“org.hisp.dhis.dataanalysis.MinMaxValuesGeneratingService”>

  • <property name=“dataAnalysisStore”

  •  ref="org.hisp.dhis.dataanalysis.jdbc.DataAnalysisStore"/>
    

<bean id=“dataAnalysisServiceProvider”

    class="org.hisp.dhis.common.ServiceProvider">

    <property name="services">

@@ -399,6 +405,10 @@

             <key><value>followup</value></key>

             <ref bean="org.hisp.dhis.dataanalysis.FollowupAnalysisService"/>

         </entry>
  •        <!-- <entry>
    
  •            <key><value>minmax</value></key>
    
  •            <ref bean="org.hisp.dhis.dataanalysis.MinMaxValuesGeneratingService"/>
    
  •        </entry> -->
    
              </map>
    
      </property>
    

=== modified file ‘dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/META-INF/dhis/beans.xml’

— dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/META-INF/dhis/beans.xml 2010-02-01 15:30:27 +0000

+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/META-INF/dhis/beans.xml 2010-04-07 12:27:42 +0000

@@ -268,15 +268,16 @@

                    ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />

    </bean>
  •   <!-- Duplicate data elimination -->
    
    <bean

            id="org.hisp.dhis.dataadmin.action.duplicatedataelimination.EliminateDuplicateDataAction"

            class="org.hisp.dhis.dataadmin.action.duplicatedataelimination.EliminateDuplicateDataAction"

            scope="prototype">

            <property name="dataMergeService" ref="org.hisp.dhis.datamerge.DataMergeService" />

            <property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
  •           <property name="categoryService" ref="org.hisp.dhis.dataelement.DataElementCategoryService" />
    
  •           <property name="categoryService"
    
  •                   ref="org.hisp.dhis.dataelement.DataElementCategoryService" />
    
      </bean>
    
    
    
      <!--  Data Element Zero Value Storage Management -->
    

@@ -303,19 +304,133 @@

    </bean>



    <!-- Data archive -->
  •   <bean
    
  •           id="org.hisp.dhis.dataadmin.action.dataarchive.ArchiveDataAction"
    
  •   <bean id="org.hisp.dhis.dataadmin.action.dataarchive.ArchiveDataAction"
    
              class="org.hisp.dhis.dataadmin.action.dataarchive.ArchiveDataAction"
    
              scope="prototype">
    
  •           <property name="dataArchiveService" ref="org.hisp.dhis.dataarchive.DataArchiveService"/>
    
  •   </bean>
    
  • <bean

  •    id="org.hisp.dhis.dataadmin.action.dataarchive.GetNumberOfOverlapsAction"
    
  •    class="org.hisp.dhis.dataadmin.action.dataarchive.GetNumberOfOverlapsAction"
    
  •    scope="prototype">
    
  •    <property name="dataArchiveService" ref="org.hisp.dhis.dataarchive.DataArchiveService"/>
    
  •           <property name="dataArchiveService" ref="org.hisp.dhis.dataarchive.DataArchiveService" />
    
  •   </bean>
    
  •   <bean
    
  •           id="org.hisp.dhis.dataadmin.action.dataarchive.GetNumberOfOverlapsAction"
    
  •           class="org.hisp.dhis.dataadmin.action.dataarchive.GetNumberOfOverlapsAction"
    
  •           scope="prototype">
    
  •           <property name="dataArchiveService" ref="org.hisp.dhis.dataarchive.DataArchiveService" />
    
  •   </bean>
    
  •   <!-- Min/Max validation -->
    
  •   <bean
    
  •           id="org.hisp.dhis.dataadmin.action.minmaxvalidation.GetMinMaxValidationParamsAction"
    
  •           class="org.hisp.dhis.dataadmin.action.minmaxvalidation.GetMinMaxValidationParamsAction"
    
  •           scope="prototype">
    
  •           <property name="dataSetService" ref="org.hisp.dhis.dataset.DataSetService" />
    
  •           <property name="organisationUnitService"
    
  •                   ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
    
  •           <property name="selectionTreeManager"
    
  •                   ref="org.hisp.dhis.oust.manager.SelectionTreeManager" />
    
  •   </bean>
    
  •   <bean id="org.hisp.dhis.dataadmin.action.minmaxvalidation.SetupTreeAction"
    
  •           class="org.hisp.dhis.dataadmin.action.minmaxvalidation.SetupTreeAction"
    
  •           scope="prototype">
    
  •           <property name="selectionTreeManager">
    
  •                   <ref bean="org.hisp.dhis.oust.manager.SelectionTreeManager" />
    
  •           </property>
    
  •           <property name="dataSetService">
    
  •                   <ref bean="org.hisp.dhis.dataset.DataSetService" />
    
  •           </property>
    
  •   </bean>
    
  •   <bean
    
  •           id="org.hisp.dhis.dataadmin.action.minmaxvalidation.MinMaxGeneratingAction"
    
  •           class="org.hisp.dhis.dataadmin.action.minmaxvalidation.MinMaxGeneratingAction">
    
  •           <property name="organisationUnitSelectionManager">
    
  •                   <ref bean="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
    
  •           </property>
    
  •           <property name="dataSetService">
    
  •                   <ref bean="org.hisp.dhis.dataset.DataSetService" />
    
  •           </property>
    
  •           <property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
    
  •           <property name="minMaxValuesGeneratingService"
    
  •                   ref="org.hisp.dhis.dataanalysis.MinMaxValuesGeneratingService" />
    
  •           <property name="minMaxDataElementService"
    
  •                   ref="org.hisp.dhis.minmax.MinMaxDataElementService" />
    
  •           <property name="systemSettingManager">
    
  •                   <ref bean="org.hisp.dhis.options.SystemSettingManager" />
    
  •           </property>
    
  •   </bean>
    
  •   <!-- Min/Max validation - Factor -->
    
  •   <bean
    
  •           id="org.hisp.dhis.dataadmin.action.minmaxvalidation.GetFactoryAction"
    
  •           class="org.hisp.dhis.dataadmin.action.minmaxvalidation.GetFactoryAction">
    
  •           <property name="systemSettingManager">
    
  •                   <ref bean="org.hisp.dhis.options.SystemSettingManager" />
    
  •           </property>
    
  •   </bean>
    
  •   <bean
    
  •           id="org.hisp.dhis.dataadmin.action.minmaxvalidation.SaveFactoryAction"
    
  •           class="org.hisp.dhis.dataadmin.action.minmaxvalidation.SaveFactoryAction">
    
  •           <property name="systemSettingManager">
    
  •                   <ref bean="org.hisp.dhis.options.SystemSettingManager" />
    
  •           </property>
    
  •   </bean>
    
  •   <!-- Min/Max validation - Organisation Unit tree -->
    
  •   <bean
    
  •           id="org.hisp.dhis.dataadmin.action.minmaxvalidation.SelectLevelAction"
    
  •           class="org.hisp.dhis.dataadmin.action.minmaxvalidation.SelectLevelAction"
    
  •           scope="prototype">
    
  •           <property name="selectionTreeManager">
    
  •                   <ref bean="org.hisp.dhis.oust.manager.SelectionTreeManager" />
    
  •           </property>
    
  •   </bean>
    
  •   <bean
    
  •           id="org.hisp.dhis.dataadmin.action.minmaxvalidation.SelectOrganisationUnitGroupAction"
    
  •           class="org.hisp.dhis.dataadmin.action.minmaxvalidation.SelectOrganisationUnitGroupAction"
    
  •           scope="prototype">
    
  •           <property name="selectionTreeManager">
    
  •                   <ref bean="org.hisp.dhis.oust.manager.SelectionTreeManager" />
    
  •           </property>
    
  •           <property name="organisationUnitGroupService">
    
  •                   <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitGroupService" />
    
  •           </property>
    
  •   </bean>
    
  •   <bean
    
  •           id="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectAllAction"
    
  •           class="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectAllAction"
    
  •           scope="prototype">
    
  •           <property name="selectionTreeManager">
    
  •                   <ref bean="org.hisp.dhis.oust.manager.SelectionTreeManager" />
    
  •           </property>
    
  •   </bean>
    
  •   <bean
    
  •           id="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectLevelAction"
    
  •           class="oorg.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectLevelAction"
    
  •           scope="prototype">
    
  •           <property name="selectionTreeManager">
    
  •                   <ref bean="org.hisp.dhis.oust.manager.SelectionTreeManager" />
    
  •           </property>
    
  •   </bean>
    
  •   <bean
    
  •           id="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectOrganisationUnitGroupAction"
    
  •           class="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectOrganisationUnitGroupAction"
    
  •           scope="prototype">
    
  •           <property name="selectionTreeManager">
    
  •                   <ref bean="org.hisp.dhis.oust.manager.SelectionTreeManager" />
    
  •           </property>
    
  •           <property name="organisationUnitGroupService">
    
  •                   <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitGroupService" />
    
  •           </property>
    
  •   </bean>
    

=== modified file ‘dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties’

— dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties 2010-02-18 15:41:11 +0000

+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties 2010-04-07 12:27:42 +0000

@@ -178,4 +178,21 @@

unarchive = Unarchive

archiving = Archiving

unarchiving = Unarchiving

-done_number_of_values = done. Number of archived values is now

\ No newline at end of file

+done_number_of_values = done. Number of archived values is now

+min_max_validation = Min/Max Validation

+intro_min_max_validation = Generate min/max values for any combination of selected organisation unit/dataset.

+start_date = Start date

+end_date = End date

+available_dataset = Available Datasets

+organisation_unit = Organisation unit

+generate_min_max_value_success = Generate min max value successfully.

+not_choose_dataset = Please specify a dataset.

+not_choose_organisation = Please specify a organisation.

+unselect_all = Unselect All

+select_all_in_group = Select all in group

+unselect_all_in_group = Unselect all in group

+generate_min_max_values = Generate Min/Max values

+generate_values_success = Generate values successfully.

+set_factor = Set Factor

+factor = Factor

+save_factory_success = Save factory successfully

\ No newline at end of file

=== modified file ‘dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/struts.xml’

— dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/struts.xml 2010-03-12 12:03:07 +0000

+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/struts.xml 2010-04-07 12:27:42 +0000

@@ -199,17 +199,17 @@

            <!-- Data integrity -->
  •           <action name="displayDataIntegrityForm"
    
  •                   class="org.hisp.dhis.dataadmin.action.NoAction">
    
  •           <action name="displayDataIntegrityForm" class="org.hisp.dhis.dataadmin.action.NoAction">
    
                      <result name="success" type="velocity">/main.vm</result>
    
                      <param name="page">/dhis-web-maintenance-dataadmin/dataIntegrityForm.vm</param>
    
                      <param name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
    
                      <param name="javascripts">javascript/dataIntegrity.js</param>
    
              </action>
    
            <action name="getDataIntegrity"

                    class="org.hisp.dhis.dataadmin.action.dataintegrity.GetDataIntegrityAction">
  •                   <result name="success" type="velocity-json">/dhis-web-maintenance-dataadmin/responseDataIntegrity.vm</result>
    
  •                   <result name="success" type="velocity-json">
    
  •                           /dhis-web-maintenance-dataadmin/responseDataIntegrity.vm</result>
    
              </action>
    
    
    
              <!-- Statistics -->
    

@@ -311,18 +311,18 @@

            </action>



            <!-- Duplicate data elimination -->
            <action name="displayDuplicateDataEliminationForm" class="org.hisp.dhis.dataadmin.action.NoAction">

                    <result name="success" type="velocity">/main.vm</result>
  •        <param name="page">/dhis-web-maintenance-dataadmin/duplicateDataEliminationForm.vm</param>
    
  •        <param name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
    
  •        <param name="javascripts">javascript/duplicateDataElimination.js</param>
    
  •    </action>
    
  •                   <param name="page">/dhis-web-maintenance-dataadmin/duplicateDataEliminationForm.vm</param>
    
  •                   <param name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
    
  •                   <param name="javascripts">javascript/duplicateDataElimination.js</param>
    
  •           </action>
    
  •           <action name="eliminateDuplicateData"
    
  •           <action name="eliminateDuplicateData"
    
                      class="org.hisp.dhis.dataadmin.action.duplicatedataelimination.EliminateDuplicateDataAction">
    
                      <result name="success" type="redirect">
    
  •            displayDuplicateDataEliminationForm.action</result>
    
  •                           displayDuplicateDataEliminationForm.action</result>
    
              </action>
    
    
    
              <!-- Data Element Zero Value Storage Management -->
    

@@ -348,23 +348,112 @@

            <!-- Data archive -->
  •           <action name="displayDataArchiveForm"
    
  •                   class="org.hisp.dhis.dataadmin.action.NoAction">
    
  •           <action name="displayDataArchiveForm" class="org.hisp.dhis.dataadmin.action.NoAction">
    
                      <result name="success" type="velocity">/main.vm</result>
    
  •        <param name="page">/dhis-web-maintenance-dataadmin/dataArchiveForm.vm</param>
    
  •        <param name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
    
  •        <param name="javascripts">javascript/dataArchive.js</param>
    
  •                   <param name="page">/dhis-web-maintenance-dataadmin/dataArchiveForm.vm</param>
    
  •                   <param name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
    
  •                   <param name="javascripts">javascript/dataArchive.js</param>
    
              </action>
    
    
    
              <action name="archiveData"
    
                      class="org.hisp.dhis.dataadmin.action.dataarchive.ArchiveDataAction">
    
  •                   <result name="success" type="velocity-json">/dhis-web-maintenance-dataadmin/responseNumber.vm</result>
    
  •                   <result name="success" type="velocity-json">
    
  •                           /dhis-web-maintenance-dataadmin/responseNumber.vm</result>
    
              </action>
    
    
    
              <action name="getNumberOfOverlaps"
    
                      class="org.hisp.dhis.dataadmin.action.dataarchive.GetNumberOfOverlapsAction">
    
  •                   <result name="success" type="velocity-json">/dhis-web-maintenance-dataadmin/responseNumber.vm</result>
    
  •    </action>
    
  •                   <result name="success" type="velocity-json">
    
  •                           /dhis-web-maintenance-dataadmin/responseNumber.vm</result>
    
  •           </action>
    
  •           <!-- Min/Max validation -->
    
  •           <action name="getMinMaxValidationParams"
    
  •                   class="org.hisp.dhis.dataadmin.action.minmaxvalidation.MinMaxGeneratingAction">
    
  •                   <result name="success" type="chain">
    
  •                           getMinMaxValidationParamsChain</result>
    
  •                   <result name="input" type="chain">
    
  •                           getMinMaxValidationParamsChain</result>
    
  •           </action>
    
  •           <action name="getMinMaxValidationParamsChain"
    
  •                   class="org.hisp.dhis.dataadmin.action.minmaxvalidation.GetMinMaxValidationParamsAction">
    
  •                   <interceptor-ref name="organisationUnitTreeStack" />
    
  •                   <result name="success" type="velocity">/main.vm</result>
    
  •                   <param name="page">/dhis-web-maintenance-dataadmin/minMaxValidation.vm</param>
    
  •                   <param name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
    
  •                   <param name="stylesheets">style/ui.all.css</param>
    
  •                   <param name="javascripts">
    
  •                           ../dhis-web-commons/oust/oust.js,
    
  •                           ../dhis-web-commons/util/jquery-ui.js,
    
  •                           ../dhis-web-commons/util/validate/jquery.validate.js,
    
  •                           ../dhis-web-commons/util/jquery.metadata.js,
    
  •                           ../dhis-web-commons/util/validate/additional-methods.js,
    
  •                           ../dhis-web-commons/util/validate/messages_locale.js,
    
  •                           ../dhis-web-commons/calendar/calendar.js,
    
  •                           ../dhis-web-commons/calendar/calendar-lang.js,
    
  •                           ../dhis-web-commons/calendar/calendar-setup.js,
    
  •                           javascript/minMaxValidation.js
    
  •        </param>
    
  •           </action>
    
  •           <!-- Min/Max validation - Factor -->
    
  •           <action name="getFactor"
    
  •                   class="org.hisp.dhis.dataadmin.action.minmaxvalidation.GetFactoryAction">
    
  •                   <result name="success" type="velocity">/main.vm</result>
    
  •                   <param name="page">/dhis-web-maintenance-dataadmin/factor.vm</param>
    
  •                   <param name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
    
  •                   <param name="stylesheets">style/ui.all.css</param>
    
  •                   <param name="javascripts">
    
  •                           ../dhis-web-commons/oust/oust.js,
    
  •                           ../dhis-web-commons/util/jquery-ui.js,
    
  •                           ../dhis-web-commons/util/validate/jquery.validate.js,
    
  •                           ../dhis-web-commons/util/jquery.metadata.js,
    
  •                           ../dhis-web-commons/util/validate/additional-methods.js,
    
  •                           ../dhis-web-commons/util/validate/messages_locale.js,
    
  •                           javascript/minMaxValidation.js
    
  •        </param>
    
  •           </action>
    
  •           <action name="saveFactor"
    
  •                   class="org.hisp.dhis.dataadmin.action.minmaxvalidation.SaveFactoryAction">
    
  •                   <result name="success" type="velocity-xml">
    
  •                           /dhis-web-maintenance-dataadmin/responseSuccess.vm</result>
    
  •           </action>
    
  •           <!-- Min/Max validation - Organisation units -->
    
  •           <action name="selectLevel"
    
  •                   class="org.hisp.dhis.dataadmin.action.minmaxvalidation.SelectLevelAction">
    
  •                   <result name="success" type="velocity-xml">
    
  •                           /dhis-web-maintenance-dataadmin/responseSuccess.vm</result>
    
  •           </action>
    
  •           <action name="unselectLevel"
    
  •                   class="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectLevelAction">
    
  •                   <result name="success" type="velocity-xml">
    
  •                           /dhis-web-maintenance-dataadmin/responseSuccess.vm</result>
    
  •           </action>
    
  •           <action name="selectOrganisationUnitGroup"
    
  •                   class="org.hisp.dhis.dataadmin.action.minmaxvalidation.SelectOrganisationUnitGroupAction">
    
  •                   <result name="success" type="velocity-xml">
    
  •                           /dhis-web-maintenance-dataadmin/responseSuccess.vm</result>
    
  •           </action>
    
  •           <action name="unselectOrganisationUnitGroup"
    
  •                   class="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectOrganisationUnitGroupAction">
    
  •                   <result name="success" type="velocity-xml">
    
  •                           /dhis-web-maintenance-dataadmin/responseSuccess.vm</result>
    
  •           </action>
    
  •           <action name="unselectAll"
    
  •                   class="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectAllAction">
    
  •                   <result name="success" type="velocity-xml">
    
  •                           /dhis-web-maintenance-dataadmin/responseSuccess.vm</result>
    
  •           </action>
    
    
    
      </package>
    

=== modified file ‘dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/index.vm’

— dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/index.vm 2010-02-01 15:30:27 +0000

+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/index.vm 2010-04-07 12:27:42 +0000

@@ -12,5 +12,6 @@

 #introListItem( "viewStatistics.action" "data_statistics" )

 #introListItem( "displayLockingForm.action" "data_locking" )

 #introListItem( "zeroValueStorageManagement.action" "zero_storage_management" )
  •   #introListItem( "getMinMaxValidationParams.action" "min_max_validation" )
    

    #introListItem( “showCache.action” “cache_statistics” )

=== modified file ‘dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/menu.vm’

— dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/menu.vm 2010-02-01 15:30:27 +0000

+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/menu.vm 2010-04-07 12:27:42 +0000

@@ -11,8 +11,14 @@

            <li><a href="viewStatistics.action">$i18n.getString( "data_statistics" )&nbsp;</a></li>

     <li><a href="displayLockingForm.action">$i18n.getString( "data_locking" )&nbsp;</a></li>

            <li><a href="zeroValueStorageManagement.action">$i18n.getString( "zero_storage_management" )&nbsp;</a></li>
  •           </ul>
    

+

$i18n.getString( “min_max_validation” ) 

  •   <ul>
    
  •           <li><a href="getFactor.action">$i18n.getString( "set_factor")&nbsp;</a></li>
    
  •           <li><a href="getMinMaxValidationParams.action">$i18n.getString( "generate_min_max_values")&nbsp;</a></li>
    
      </ul>
    

$i18n.getString( "system_administration" ) 

 <ul>

     <li><a href="showCache.action">$i18n.getString( "cache_statistics" )&nbsp;</a></li>

Mailing list: https://launchpad.net/~dhis2-devs

Post to : dhis2-devs@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-devs

More help : https://help.launchpad.net/ListHelp

Hi Tran, I think this commit causes a build error:

[INFO] ------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO] ------------------------------------------------------------------------

[INFO] Compilation failure
D:\development\source\bzr\dhis2\dhis-2\dhis-web\dhis-web-validationrule\src\main\java\org\hisp\dhis\validationrule\action\dataanalysis\GetAnalysisAction.java:[2
23,40] incompatible types

found : java.util.Collection<capture#274 of ?>
required: java.util.Collection<org.hisp.dhis.datavalue.DeflatedDataValue>

Had a look at this and can’t really see whats going on… anyone got a clue?

···

On Wed, Apr 7, 2010 at 5:00 PM, Jan Henrik Øverland janhenrik.overland@gmail.com wrote:

Please fix.

On Wed, Apr 7, 2010 at 2:32 PM, noreply@launchpad.net wrote:


revno: 1743

committer: Tran Chau tran.hispvietnam@gmail.com

branch nick: trunk

timestamp: Wed 2010-04-07 19:27:42 +0700

message:

Improve the min/max value functionality.

modified:

dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataanalysis/DataAnalysisService.java

dhis-2/dhis-options/src/main/java/org/hisp/dhis/options/SystemSettingManager.java

dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataanalysis/StdDevOutlierAnalysisService.java

dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml

dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/META-INF/dhis/beans.xml

dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties

dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/struts.xml

dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/index.vm

dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/menu.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

=== modified file ‘dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataanalysis/DataAnalysisService.java’

— dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataanalysis/DataAnalysisService.java 2009-12-23 17:34:18 +0000

+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataanalysis/DataAnalysisService.java 2010-04-07 12:27:42 +0000

@@ -30,18 +30,18 @@

import java.util.Collection;

import org.hisp.dhis.dataelement.DataElement;

-import org.hisp.dhis.datavalue.DeflatedDataValue;

import org.hisp.dhis.organisationunit.OrganisationUnit;

import org.hisp.dhis.period.Period;

/**

  • @author Dag Haavi Finstad
    • @version $Id: StdDevOutlierAnalysisService.java 882 2009-05-14 23:09:31Z daghf $
    • @version $Id: StdDevOutlierAnalysisService.java 882 2009-05-14 23:09:31Z
    •      daghf $
      

    */

public interface DataAnalysisService

{

 String ID = DataAnalysisService.class.getName();
  • Collection analyse( OrganisationUnit organisationUnit, Collection dataElements,
  • Collection<?> analyse( OrganisationUnit organisationUnit, Collection dataElements,

    Collection<Period> periods, Double stdDevFactor );
    

}

=== modified file ‘dhis-2/dhis-options/src/main/java/org/hisp/dhis/options/SystemSettingManager.java’

— dhis-2/dhis-options/src/main/java/org/hisp/dhis/options/SystemSettingManager.java 2010-03-31 16:44:55 +0000

+++ dhis-2/dhis-options/src/main/java/org/hisp/dhis/options/SystemSettingManager.java 2010-04-07 12:27:42 +0000

@@ -58,6 +58,8 @@

 final String KEY_GIS_LATITUDE = "latitude";



 final String KEY_DISABLE_DATAENTRYFORM_WHEN_COMPLETED = "dataEntryFormCompleted";
  • final String KEY_FACTOR_OF_DEVIATION = “factorDeviation”;

    void saveSystemSetting( String name, Serializable value );

=== modified file ‘dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataanalysis/StdDevOutlierAnalysisService.java’

— dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataanalysis/StdDevOutlierAnalysisService.java 2009-12-24 08:55:53 +0000

+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataanalysis/StdDevOutlierAnalysisService.java 2010-04-07 12:27:42 +0000

@@ -58,12 +58,12 @@

 }



 private OrganisationUnitService organisationUnitService;
 public void setOrganisationUnitService( OrganisationUnitService organisationUnitService )

 {

     this.organisationUnitService = organisationUnitService;

 }
 // -------------------------------------------------------------------------

 // OutlierAnalysisService implementation

 // -------------------------------------------------------------------------

@@ -71,21 +71,24 @@

 public final Collection<DeflatedDataValue> analyse( OrganisationUnit organisationUnit,

     Collection<DataElement> dataElements, Collection<Period> periods, Double stdDevFactor )

 {
  •    Collection<OrganisationUnit> units = organisationUnitService.getOrganisationUnitWithChildren( organisationUnit.getId() );
    
  •    Collection<OrganisationUnit> units = organisationUnitService.getOrganisationUnitWithChildren( organisationUnit
    
  •        .getId() );
    
     Collection<DeflatedDataValue> outlierCollection = new ArrayList<DeflatedDataValue>();
     for ( DataElement dataElement : dataElements )

     {

         if ( dataElement.getType().equals( DataElement.VALUE_TYPE_INT ) )
  •        {
    
  •            Collection<DataElementCategoryOptionCombo> categoryOptionCombos = dataElement.getCategoryCombo().getOptionCombos();
    
  •        {
    
  •            Collection<DataElementCategoryOptionCombo> categoryOptionCombos = dataElement.getCategoryCombo()
    
  •                .getOptionCombos();
    
             for ( DataElementCategoryOptionCombo categoryOptionCombo : categoryOptionCombos )

             {

                 for ( OrganisationUnit unit : units )

                 {
  •                    outlierCollection.addAll( findOutliers( unit, dataElement, categoryOptionCombo, periods, stdDevFactor ) );
    
  •                    outlierCollection.addAll( findOutliers( unit, dataElement, categoryOptionCombo, periods,
    
  •                        stdDevFactor ) );
    
                   }
    
               }
    
           }
    

@@ -98,23 +101,23 @@

 // Supportive methods

 // -------------------------------------------------------------------------
  • private Collection findOutliers( OrganisationUnit organisationUnit, DataElement dataElement,
  • private Collection findOutliers( OrganisationUnit organisationUnit, DataElement dataElement,

    DataElementCategoryOptionCombo categoryOptionCombo, Collection<Period> periods, Double stdDevFactor )
    

    {

    Double stdDev = dataAnalysisStore.getStandardDeviation( dataElement, categoryOptionCombo, organisationUnit );
    
  •    if ( !isEqual( stdDev, 0.0 ) ) // No values found or no outliers exist when 0.0
    
  •    if ( !isEqual( stdDev, 0.0 ) ) // No values found or no outliers exist
    
  •    // when 0.0
    
       {
    
           Double avg = dataAnalysisStore.getAverage( dataElement, categoryOptionCombo, organisationUnit );
    
  •        double deviation = stdDev * stdDevFactor;
    
  •        double deviation = stdDev * stdDevFactor;
    
           Double lowerBound = avg - deviation;
    
           Double upperBound = avg + deviation;
    
  •        return dataAnalysisStore.getDeflatedDataValues( dataElement, categoryOptionCombo, periods,
    
  •            organisationUnit, lowerBound.intValue(), upperBound.intValue() );
    
  •        return dataAnalysisStore.getDeflatedDataValues( dataElement, categoryOptionCombo, periods,
    
  •            organisationUnit, lowerBound.intValue(), upperBound.intValue() );
    
       }
    
     return new ArrayList<DeflatedDataValue>();

 }

}

=== modified file ‘dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml’

— dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml 2010-04-05 15:47:53 +0000

+++ dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml 2010-04-07 12:27:42 +0000

@@ -379,6 +379,12 @@

   ref="org.hisp.dhis.dataanalysis.jdbc.DataAnalysisStore"/>
  • <bean id=“org.hisp.dhis.dataanalysis.MinMaxValuesGeneratingService”

  • class=“org.hisp.dhis.dataanalysis.MinMaxValuesGeneratingService”>

  • <property name=“dataAnalysisStore”

  •  ref="org.hisp.dhis.dataanalysis.jdbc.DataAnalysisStore"/>
    

<bean id=“dataAnalysisServiceProvider”

    class="org.hisp.dhis.common.ServiceProvider">

    <property name="services">

@@ -399,6 +405,10 @@

             <key><value>followup</value></key>

             <ref bean="org.hisp.dhis.dataanalysis.FollowupAnalysisService"/>

         </entry>
  •        <!-- <entry>
    
  •            <key><value>minmax</value></key>
    
  •            <ref bean="org.hisp.dhis.dataanalysis.MinMaxValuesGeneratingService"/>
    
  •        </entry> -->
    
              </map>
    
      </property>
    

=== modified file ‘dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/META-INF/dhis/beans.xml’

— dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/META-INF/dhis/beans.xml 2010-02-01 15:30:27 +0000

+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/META-INF/dhis/beans.xml 2010-04-07 12:27:42 +0000

@@ -268,15 +268,16 @@

                    ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />

    </bean>
  •   <!-- Duplicate data elimination -->
    
    <bean

            id="org.hisp.dhis.dataadmin.action.duplicatedataelimination.EliminateDuplicateDataAction"

            class="org.hisp.dhis.dataadmin.action.duplicatedataelimination.EliminateDuplicateDataAction"

            scope="prototype">

            <property name="dataMergeService" ref="org.hisp.dhis.datamerge.DataMergeService" />

            <property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
  •           <property name="categoryService" ref="org.hisp.dhis.dataelement.DataElementCategoryService" />
    
  •           <property name="categoryService"
    
  •                   ref="org.hisp.dhis.dataelement.DataElementCategoryService" />
    
      </bean>
    
    
    
      <!--  Data Element Zero Value Storage Management -->
    

@@ -303,19 +304,133 @@

    </bean>



    <!-- Data archive -->
  •   <bean
    
  •           id="org.hisp.dhis.dataadmin.action.dataarchive.ArchiveDataAction"
    
  •   <bean id="org.hisp.dhis.dataadmin.action.dataarchive.ArchiveDataAction"
    
              class="org.hisp.dhis.dataadmin.action.dataarchive.ArchiveDataAction"
    
              scope="prototype">
    
  •           <property name="dataArchiveService" ref="org.hisp.dhis.dataarchive.DataArchiveService"/>
    
  •   </bean>
    
  • <bean

  •    id="org.hisp.dhis.dataadmin.action.dataarchive.GetNumberOfOverlapsAction"
    
  •    class="org.hisp.dhis.dataadmin.action.dataarchive.GetNumberOfOverlapsAction"
    
  •    scope="prototype">
    
  •    <property name="dataArchiveService" ref="org.hisp.dhis.dataarchive.DataArchiveService"/>
    
  •           <property name="dataArchiveService" ref="org.hisp.dhis.dataarchive.DataArchiveService" />
    
  •   </bean>
    
  •   <bean
    
  •           id="org.hisp.dhis.dataadmin.action.dataarchive.GetNumberOfOverlapsAction"
    
  •           class="org.hisp.dhis.dataadmin.action.dataarchive.GetNumberOfOverlapsAction"
    
  •           scope="prototype">
    
  •           <property name="dataArchiveService" ref="org.hisp.dhis.dataarchive.DataArchiveService" />
    
  •   </bean>
    
  •   <!-- Min/Max validation -->
    
  •   <bean
    
  •           id="org.hisp.dhis.dataadmin.action.minmaxvalidation.GetMinMaxValidationParamsAction"
    
  •           class="org.hisp.dhis.dataadmin.action.minmaxvalidation.GetMinMaxValidationParamsAction"
    
  •           scope="prototype">
    
  •           <property name="dataSetService" ref="org.hisp.dhis.dataset.DataSetService" />
    
  •           <property name="organisationUnitService"
    
  •                   ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
    
  •           <property name="selectionTreeManager"
    
  •                   ref="org.hisp.dhis.oust.manager.SelectionTreeManager" />
    
  •   </bean>
    
  •   <bean id="org.hisp.dhis.dataadmin.action.minmaxvalidation.SetupTreeAction"
    
  •           class="org.hisp.dhis.dataadmin.action.minmaxvalidation.SetupTreeAction"
    
  •           scope="prototype">
    
  •           <property name="selectionTreeManager">
    
  •                   <ref bean="org.hisp.dhis.oust.manager.SelectionTreeManager" />
    
  •           </property>
    
  •           <property name="dataSetService">
    
  •                   <ref bean="org.hisp.dhis.dataset.DataSetService" />
    
  •           </property>
    
  •   </bean>
    
  •   <bean
    
  •           id="org.hisp.dhis.dataadmin.action.minmaxvalidation.MinMaxGeneratingAction"
    
  •           class="org.hisp.dhis.dataadmin.action.minmaxvalidation.MinMaxGeneratingAction">
    
  •           <property name="organisationUnitSelectionManager">
    
  •                   <ref bean="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
    
  •           </property>
    
  •           <property name="dataSetService">
    
  •                   <ref bean="org.hisp.dhis.dataset.DataSetService" />
    
  •           </property>
    
  •           <property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
    
  •           <property name="minMaxValuesGeneratingService"
    
  •                   ref="org.hisp.dhis.dataanalysis.MinMaxValuesGeneratingService" />
    
  •           <property name="minMaxDataElementService"
    
  •                   ref="org.hisp.dhis.minmax.MinMaxDataElementService" />
    
  •           <property name="systemSettingManager">
    
  •                   <ref bean="org.hisp.dhis.options.SystemSettingManager" />
    
  •           </property>
    
  •   </bean>
    
  •   <!-- Min/Max validation - Factor -->
    
  •   <bean
    
  •           id="org.hisp.dhis.dataadmin.action.minmaxvalidation.GetFactoryAction"
    
  •           class="org.hisp.dhis.dataadmin.action.minmaxvalidation.GetFactoryAction">
    
  •           <property name="systemSettingManager">
    
  •                   <ref bean="org.hisp.dhis.options.SystemSettingManager" />
    
  •           </property>
    
  •   </bean>
    
  •   <bean
    
  •           id="org.hisp.dhis.dataadmin.action.minmaxvalidation.SaveFactoryAction"
    
  •           class="org.hisp.dhis.dataadmin.action.minmaxvalidation.SaveFactoryAction">
    
  •           <property name="systemSettingManager">
    
  •                   <ref bean="org.hisp.dhis.options.SystemSettingManager" />
    
  •           </property>
    
  •   </bean>
    
  •   <!-- Min/Max validation - Organisation Unit tree -->
    
  •   <bean
    
  •           id="org.hisp.dhis.dataadmin.action.minmaxvalidation.SelectLevelAction"
    
  •           class="org.hisp.dhis.dataadmin.action.minmaxvalidation.SelectLevelAction"
    
  •           scope="prototype">
    
  •           <property name="selectionTreeManager">
    
  •                   <ref bean="org.hisp.dhis.oust.manager.SelectionTreeManager" />
    
  •           </property>
    
  •   </bean>
    
  •   <bean
    
  •           id="org.hisp.dhis.dataadmin.action.minmaxvalidation.SelectOrganisationUnitGroupAction"
    
  •           class="org.hisp.dhis.dataadmin.action.minmaxvalidation.SelectOrganisationUnitGroupAction"
    
  •           scope="prototype">
    
  •           <property name="selectionTreeManager">
    
  •                   <ref bean="org.hisp.dhis.oust.manager.SelectionTreeManager" />
    
  •           </property>
    
  •           <property name="organisationUnitGroupService">
    
  •                   <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitGroupService" />
    
  •           </property>
    
  •   </bean>
    
  •   <bean
    
  •           id="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectAllAction"
    
  •           class="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectAllAction"
    
  •           scope="prototype">
    
  •           <property name="selectionTreeManager">
    
  •                   <ref bean="org.hisp.dhis.oust.manager.SelectionTreeManager" />
    
  •           </property>
    
  •   </bean>
    
  •   <bean
    
  •           id="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectLevelAction"
    
  •           class="oorg.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectLevelAction"
    
  •           scope="prototype">
    
  •           <property name="selectionTreeManager">
    
  •                   <ref bean="org.hisp.dhis.oust.manager.SelectionTreeManager" />
    
  •           </property>
    
  •   </bean>
    
  •   <bean
    
  •           id="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectOrganisationUnitGroupAction"
    
  •           class="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectOrganisationUnitGroupAction"
    
  •           scope="prototype">
    
  •           <property name="selectionTreeManager">
    
  •                   <ref bean="org.hisp.dhis.oust.manager.SelectionTreeManager" />
    
  •           </property>
    
  •           <property name="organisationUnitGroupService">
    
  •                   <ref bean="org.hisp.dhis.organisationunit.OrganisationUnitGroupService" />
    
  •           </property>
    
  •   </bean>
    

=== modified file ‘dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties’

— dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties 2010-02-18 15:41:11 +0000

+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties 2010-04-07 12:27:42 +0000

@@ -178,4 +178,21 @@

unarchive = Unarchive

archiving = Archiving

unarchiving = Unarchiving

-done_number_of_values = done. Number of archived values is now

\ No newline at end of file

+done_number_of_values = done. Number of archived values is now

+min_max_validation = Min/Max Validation

+intro_min_max_validation = Generate min/max values for any combination of selected organisation unit/dataset.

+start_date = Start date

+end_date = End date

+available_dataset = Available Datasets

+organisation_unit = Organisation unit

+generate_min_max_value_success = Generate min max value successfully.

+not_choose_dataset = Please specify a dataset.

+not_choose_organisation = Please specify a organisation.

+unselect_all = Unselect All

+select_all_in_group = Select all in group

+unselect_all_in_group = Unselect all in group

+generate_min_max_values = Generate Min/Max values

+generate_values_success = Generate values successfully.

+set_factor = Set Factor

+factor = Factor

+save_factory_success = Save factory successfully

\ No newline at end of file

=== modified file ‘dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/struts.xml’

— dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/struts.xml 2010-03-12 12:03:07 +0000

+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/struts.xml 2010-04-07 12:27:42 +0000

@@ -199,17 +199,17 @@

            <!-- Data integrity -->
  •           <action name="displayDataIntegrityForm"
    
  •                   class="org.hisp.dhis.dataadmin.action.NoAction">
    
  •           <action name="displayDataIntegrityForm" class="org.hisp.dhis.dataadmin.action.NoAction">
    
                      <result name="success" type="velocity">/main.vm</result>
    
                      <param name="page">/dhis-web-maintenance-dataadmin/dataIntegrityForm.vm</param>
    
                      <param name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
    
                      <param name="javascripts">javascript/dataIntegrity.js</param>
    
              </action>
    
            <action name="getDataIntegrity"

                    class="org.hisp.dhis.dataadmin.action.dataintegrity.GetDataIntegrityAction">
  •                   <result name="success" type="velocity-json">/dhis-web-maintenance-dataadmin/responseDataIntegrity.vm</result>
    
  •                   <result name="success" type="velocity-json">
    
  •                           /dhis-web-maintenance-dataadmin/responseDataIntegrity.vm</result>
    
              </action>
    
    
    
              <!-- Statistics -->
    

@@ -311,18 +311,18 @@

            </action>



            <!-- Duplicate data elimination -->
            <action name="displayDuplicateDataEliminationForm" class="org.hisp.dhis.dataadmin.action.NoAction">

                    <result name="success" type="velocity">/main.vm</result>
  •        <param name="page">/dhis-web-maintenance-dataadmin/duplicateDataEliminationForm.vm</param>
    
  •        <param name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
    
  •        <param name="javascripts">javascript/duplicateDataElimination.js</param>
    
  •    </action>
    
  •                   <param name="page">/dhis-web-maintenance-dataadmin/duplicateDataEliminationForm.vm</param>
    
  •                   <param name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
    
  •                   <param name="javascripts">javascript/duplicateDataElimination.js</param>
    
  •           </action>
    
  •           <action name="eliminateDuplicateData"
    
  •           <action name="eliminateDuplicateData"
    
                      class="org.hisp.dhis.dataadmin.action.duplicatedataelimination.EliminateDuplicateDataAction">
    
                      <result name="success" type="redirect">
    
  •            displayDuplicateDataEliminationForm.action</result>
    
  •                           displayDuplicateDataEliminationForm.action</result>
    
              </action>
    
    
    
              <!-- Data Element Zero Value Storage Management -->
    

@@ -348,23 +348,112 @@

            <!-- Data archive -->
  •           <action name="displayDataArchiveForm"
    
  •                   class="org.hisp.dhis.dataadmin.action.NoAction">
    
  •           <action name="displayDataArchiveForm" class="org.hisp.dhis.dataadmin.action.NoAction">
    
                      <result name="success" type="velocity">/main.vm</result>
    
  •        <param name="page">/dhis-web-maintenance-dataadmin/dataArchiveForm.vm</param>
    
  •        <param name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
    
  •        <param name="javascripts">javascript/dataArchive.js</param>
    
  •                   <param name="page">/dhis-web-maintenance-dataadmin/dataArchiveForm.vm</param>
    
  •                   <param name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
    
  •                   <param name="javascripts">javascript/dataArchive.js</param>
    
              </action>
    
    
    
              <action name="archiveData"
    
                      class="org.hisp.dhis.dataadmin.action.dataarchive.ArchiveDataAction">
    
  •                   <result name="success" type="velocity-json">/dhis-web-maintenance-dataadmin/responseNumber.vm</result>
    
  •                   <result name="success" type="velocity-json">
    
  •                           /dhis-web-maintenance-dataadmin/responseNumber.vm</result>
    
              </action>
    
    
    
              <action name="getNumberOfOverlaps"
    
                      class="org.hisp.dhis.dataadmin.action.dataarchive.GetNumberOfOverlapsAction">
    
  •                   <result name="success" type="velocity-json">/dhis-web-maintenance-dataadmin/responseNumber.vm</result>
    
  •    </action>
    
  •                   <result name="success" type="velocity-json">
    
  •                           /dhis-web-maintenance-dataadmin/responseNumber.vm</result>
    
  •           </action>
    
  •           <!-- Min/Max validation -->
    
  •           <action name="getMinMaxValidationParams"
    
  •                   class="org.hisp.dhis.dataadmin.action.minmaxvalidation.MinMaxGeneratingAction">
    
  •                   <result name="success" type="chain">
    
  •                           getMinMaxValidationParamsChain</result>
    
  •                   <result name="input" type="chain">
    
  •                           getMinMaxValidationParamsChain</result>
    
  •           </action>
    
  •           <action name="getMinMaxValidationParamsChain"
    
  •                   class="org.hisp.dhis.dataadmin.action.minmaxvalidation.GetMinMaxValidationParamsAction">
    
  •                   <interceptor-ref name="organisationUnitTreeStack" />
    
  •                   <result name="success" type="velocity">/main.vm</result>
    
  •                   <param name="page">/dhis-web-maintenance-dataadmin/minMaxValidation.vm</param>
    
  •                   <param name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
    
  •                   <param name="stylesheets">style/ui.all.css</param>
    
  •                   <param name="javascripts">
    
  •                           ../dhis-web-commons/oust/oust.js,
    
  •                           ../dhis-web-commons/util/jquery-ui.js,
    
  •                           ../dhis-web-commons/util/validate/jquery.validate.js,
    
  •                           ../dhis-web-commons/util/jquery.metadata.js,
    
  •                           ../dhis-web-commons/util/validate/additional-methods.js,
    
  •                           ../dhis-web-commons/util/validate/messages_locale.js,
    
  •                           ../dhis-web-commons/calendar/calendar.js,
    
  •                           ../dhis-web-commons/calendar/calendar-lang.js,
    
  •                           ../dhis-web-commons/calendar/calendar-setup.js,
    
  •                           javascript/minMaxValidation.js
    
  •        </param>
    
  •           </action>
    
  •           <!-- Min/Max validation - Factor -->
    
  •           <action name="getFactor"
    
  •                   class="org.hisp.dhis.dataadmin.action.minmaxvalidation.GetFactoryAction">
    
  •                   <result name="success" type="velocity">/main.vm</result>
    
  •                   <param name="page">/dhis-web-maintenance-dataadmin/factor.vm</param>
    
  •                   <param name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
    
  •                   <param name="stylesheets">style/ui.all.css</param>
    
  •                   <param name="javascripts">
    
  •                           ../dhis-web-commons/oust/oust.js,
    
  •                           ../dhis-web-commons/util/jquery-ui.js,
    
  •                           ../dhis-web-commons/util/validate/jquery.validate.js,
    
  •                           ../dhis-web-commons/util/jquery.metadata.js,
    
  •                           ../dhis-web-commons/util/validate/additional-methods.js,
    
  •                           ../dhis-web-commons/util/validate/messages_locale.js,
    
  •                           javascript/minMaxValidation.js
    
  •        </param>
    
  •           </action>
    
  •           <action name="saveFactor"
    
  •                   class="org.hisp.dhis.dataadmin.action.minmaxvalidation.SaveFactoryAction">
    
  •                   <result name="success" type="velocity-xml">
    
  •                           /dhis-web-maintenance-dataadmin/responseSuccess.vm</result>
    
  •           </action>
    
  •           <!-- Min/Max validation - Organisation units -->
    
  •           <action name="selectLevel"
    
  •                   class="org.hisp.dhis.dataadmin.action.minmaxvalidation.SelectLevelAction">
    
  •                   <result name="success" type="velocity-xml">
    
  •                           /dhis-web-maintenance-dataadmin/responseSuccess.vm</result>
    
  •           </action>
    
  •           <action name="unselectLevel"
    
  •                   class="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectLevelAction">
    
  •                   <result name="success" type="velocity-xml">
    
  •                           /dhis-web-maintenance-dataadmin/responseSuccess.vm</result>
    
  •           </action>
    
  •           <action name="selectOrganisationUnitGroup"
    
  •                   class="org.hisp.dhis.dataadmin.action.minmaxvalidation.SelectOrganisationUnitGroupAction">
    
  •                   <result name="success" type="velocity-xml">
    
  •                           /dhis-web-maintenance-dataadmin/responseSuccess.vm</result>
    
  •           </action>
    
  •           <action name="unselectOrganisationUnitGroup"
    
  •                   class="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectOrganisationUnitGroupAction">
    
  •                   <result name="success" type="velocity-xml">
    
  •                           /dhis-web-maintenance-dataadmin/responseSuccess.vm</result>
    
  •           </action>
    
  •           <action name="unselectAll"
    
  •                   class="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectAllAction">
    
  •                   <result name="success" type="velocity-xml">
    
  •                           /dhis-web-maintenance-dataadmin/responseSuccess.vm</result>
    
  •           </action>
    
    
    
      </package>
    

=== modified file ‘dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/index.vm’

— dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/index.vm 2010-02-01 15:30:27 +0000

+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/index.vm 2010-04-07 12:27:42 +0000

@@ -12,5 +12,6 @@

 #introListItem( "viewStatistics.action" "data_statistics" )

 #introListItem( "displayLockingForm.action" "data_locking" )

 #introListItem( "zeroValueStorageManagement.action" "zero_storage_management" )
  •   #introListItem( "getMinMaxValidationParams.action" "min_max_validation" )
    

    #introListItem( “showCache.action” “cache_statistics” )

=== modified file ‘dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/menu.vm’

— dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/menu.vm 2010-02-01 15:30:27 +0000

+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/menu.vm 2010-04-07 12:27:42 +0000

@@ -11,8 +11,14 @@

            <li><a href="viewStatistics.action">$i18n.getString( "data_statistics" )&nbsp;</a></li>

     <li><a href="displayLockingForm.action">$i18n.getString( "data_locking" )&nbsp;</a></li>

            <li><a href="zeroValueStorageManagement.action">$i18n.getString( "zero_storage_management" )&nbsp;</a></li>
  •           </ul>
    

+

$i18n.getString( “min_max_validation” ) 

  •   <ul>
    
  •           <li><a href="getFactor.action">$i18n.getString( "set_factor")&nbsp;</a></li>
    
  •           <li><a href="getMinMaxValidationParams.action">$i18n.getString( "generate_min_max_values")&nbsp;</a></li>
    
      </ul>
    

$i18n.getString( "system_administration" ) 

 <ul>

     <li><a href="showCache.action">$i18n.getString( "cache_statistics" )&nbsp;</a></li>

Mailing list: https://launchpad.net/~dhis2-devs

Post to : dhis2-devs@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-devs

More help : https://help.launchpad.net/ListHelp


Mailing list: https://launchpad.net/~dhis2-devs

Post to : dhis2-devs@lists.launchpad.net

Unsubscribe : https://launchpad.net/~dhis2-devs

More help : https://help.launchpad.net/ListHelp

Dunno. Its weird. java templates are a bit weird anyway :slight_smile: But if
you cast the result it seems to go away:

            dataValues =
(Collection<DeflatedDataValue>)service.analyse( organisationUnit,
dataElements, periods, standardDeviation );

···

On 7 April 2010 17:25, Lars Helge Øverland <larshelge@gmail.com> wrote:

On Wed, Apr 7, 2010 at 5:00 PM, Jan Henrik Øverland > <janhenrik.overland@gmail.com> wrote:

Hi Tran, I think this commit causes a build error:

[INFO]
------------------------------------------------------------------------
[ERROR] BUILD FAILURE
[INFO]
------------------------------------------------------------------------
[INFO] Compilation failure

D:\development\source\bzr\dhis2\dhis-2\dhis-web\dhis-web-validationrule\src\main\java\org\hisp\dhis\validationrule\action\dataanalysis\GetAnalysisAction.java:[2
23,40] incompatible types
found : java.util.Collection<capture#274 of ?>
required: java.util.Collection<org.hisp.dhis.datavalue.DeflatedDataValue>

Had a look at this and can't really see whats going on.. anyone got a clue?

Please fix.

On Wed, Apr 7, 2010 at 2:32 PM, <noreply@launchpad.net> wrote:

------------------------------------------------------------
revno: 1743
committer: Tran Chau <tran.hispvietnam@gmail.com>
branch nick: trunk
timestamp: Wed 2010-04-07 19:27:42 +0700
message:
Improve the min/max value functionality.
modified:

dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataanalysis/DataAnalysisService.java

dhis-2/dhis-options/src/main/java/org/hisp/dhis/options/SystemSettingManager.java

dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataanalysis/StdDevOutlierAnalysisService.java

dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml

dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/META-INF/dhis/beans.xml

dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties

dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/struts.xml

dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/index.vm

dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/menu.vm

--
lp:dhis2
trunk : Code : DHIS

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to
OpenID transaction in progress

=== modified file
'dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataanalysis/DataAnalysisService.java'
---
dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataanalysis/DataAnalysisService.java
2009-12-23 17:34:18 +0000
+++
dhis-2/dhis-api/src/main/java/org/hisp/dhis/dataanalysis/DataAnalysisService.java
2010-04-07 12:27:42 +0000
@@ -30,18 +30,18 @@
import java.util.Collection;

import org.hisp.dhis.dataelement.DataElement;
-import org.hisp.dhis.datavalue.DeflatedDataValue;
import org.hisp.dhis.organisationunit.OrganisationUnit;
import org.hisp.dhis.period.Period;

/**
* @author Dag Haavi Finstad
- * @version $Id: StdDevOutlierAnalysisService.java 882 2009-05-14
23:09:31Z daghf $
+ * @version $Id: StdDevOutlierAnalysisService.java 882 2009-05-14
23:09:31Z
+ * daghf $
*/
public interface DataAnalysisService
{
String ID = DataAnalysisService.class.getName();

- Collection<DeflatedDataValue> analyse( OrganisationUnit
organisationUnit, Collection<DataElement> dataElements,
+ Collection<?> analyse( OrganisationUnit organisationUnit,
Collection<DataElement> dataElements,
Collection<Period> periods, Double stdDevFactor );
}

=== modified file
'dhis-2/dhis-options/src/main/java/org/hisp/dhis/options/SystemSettingManager.java'
---
dhis-2/dhis-options/src/main/java/org/hisp/dhis/options/SystemSettingManager.java
2010-03-31 16:44:55 +0000
+++
dhis-2/dhis-options/src/main/java/org/hisp/dhis/options/SystemSettingManager.java
2010-04-07 12:27:42 +0000
@@ -58,6 +58,8 @@
final String KEY_GIS_LATITUDE = "latitude";

final String KEY\_DISABLE\_DATAENTRYFORM\_WHEN\_COMPLETED =

"dataEntryFormCompleted";
+
+ final String KEY_FACTOR_OF_DEVIATION = "factorDeviation";

void saveSystemSetting\( String name, Serializable value \);

=== modified file
'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataanalysis/StdDevOutlierAnalysisService.java'
---
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataanalysis/StdDevOutlierAnalysisService.java
2009-12-24 08:55:53 +0000
+++
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataanalysis/StdDevOutlierAnalysisService.java
2010-04-07 12:27:42 +0000
@@ -58,12 +58,12 @@
}

private OrganisationUnitService organisationUnitService;

-
+
public void setOrganisationUnitService( OrganisationUnitService
organisationUnitService )
{
this.organisationUnitService = organisationUnitService;
}
-
+
//
-------------------------------------------------------------------------
// OutlierAnalysisService implementation
//
-------------------------------------------------------------------------
@@ -71,21 +71,24 @@
public final Collection<DeflatedDataValue> analyse( OrganisationUnit
organisationUnit,
Collection<DataElement> dataElements, Collection<Period> periods,
Double stdDevFactor )
{
- Collection<OrganisationUnit> units =
organisationUnitService.getOrganisationUnitWithChildren(
organisationUnit.getId() );
-
+ Collection<OrganisationUnit> units =
organisationUnitService.getOrganisationUnitWithChildren( organisationUnit
+ .getId() );
+
Collection<DeflatedDataValue> outlierCollection = new
ArrayList<DeflatedDataValue>();
-
+
for ( DataElement dataElement : dataElements )
{
if ( dataElement.getType().equals( DataElement.VALUE_TYPE_INT
) )
- {
- Collection<DataElementCategoryOptionCombo>
categoryOptionCombos = dataElement.getCategoryCombo().getOptionCombos();
-
+ {
+ Collection<DataElementCategoryOptionCombo>
categoryOptionCombos = dataElement.getCategoryCombo()
+ .getOptionCombos();
+
for ( DataElementCategoryOptionCombo categoryOptionCombo
: categoryOptionCombos )
{
for ( OrganisationUnit unit : units )
{
- outlierCollection.addAll( findOutliers( unit,
dataElement, categoryOptionCombo, periods, stdDevFactor ) );
+ outlierCollection.addAll( findOutliers( unit,
dataElement, categoryOptionCombo, periods,
+ stdDevFactor ) );
}
}
}
@@ -98,23 +101,23 @@
// Supportive methods
//
-------------------------------------------------------------------------

- private Collection<DeflatedDataValue> findOutliers( OrganisationUnit
organisationUnit, DataElement dataElement,
+ private Collection<DeflatedDataValue> findOutliers( OrganisationUnit
organisationUnit, DataElement dataElement,
DataElementCategoryOptionCombo categoryOptionCombo,
Collection<Period> periods, Double stdDevFactor )
{
Double stdDev = dataAnalysisStore.getStandardDeviation(
dataElement, categoryOptionCombo, organisationUnit );
-
- if ( !isEqual( stdDev, 0.0 ) ) // No values found or no outliers
exist when 0.0
+
+ if ( !isEqual( stdDev, 0.0 ) ) // No values found or no outliers
exist
+ // when 0.0
{
Double avg = dataAnalysisStore.getAverage( dataElement,
categoryOptionCombo, organisationUnit );
-
- double deviation = stdDev * stdDevFactor;
+
+ double deviation = stdDev * stdDevFactor;
Double lowerBound = avg - deviation;
Double upperBound = avg + deviation;
-
- return dataAnalysisStore.getDeflatedDataValues( dataElement,
categoryOptionCombo, periods,
- organisationUnit, lowerBound.intValue(),
upperBound.intValue() );
+ return dataAnalysisStore.getDeflatedDataValues( dataElement,
categoryOptionCombo, periods,
+ organisationUnit, lowerBound.intValue(),
upperBound.intValue() );
}
-
+
return new ArrayList<DeflatedDataValue>();
}
}

=== modified file
'dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml'
---
dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml
2010-04-05 15:47:53 +0000
+++
dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml
2010-04-07 12:27:42 +0000
@@ -379,6 +379,12 @@
ref="org.hisp.dhis.dataanalysis.jdbc.DataAnalysisStore"/>
</bean>

+ <bean id="org.hisp.dhis.dataanalysis.MinMaxValuesGeneratingService"
+ class="org.hisp.dhis.dataanalysis.MinMaxValuesGeneratingService">
+ <property name="dataAnalysisStore"
+ ref="org.hisp.dhis.dataanalysis.jdbc.DataAnalysisStore"/>
+ </bean>
+
<bean id="dataAnalysisServiceProvider"
class="org.hisp.dhis.common.ServiceProvider">
<property name="services">
@@ -399,6 +405,10 @@
<key><value>followup</value></key>
<ref
bean="org.hisp.dhis.dataanalysis.FollowupAnalysisService"/>
</entry>
+ <!-- <entry>
+ <key><value>minmax</value></key>
+ <ref
bean="org.hisp.dhis.dataanalysis.MinMaxValuesGeneratingService"/>
+ </entry> -->
</map>
</property>
</bean>

=== modified file
'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/META-INF/dhis/beans.xml'
---
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/META-INF/dhis/beans.xml
2010-02-01 15:30:27 +0000
+++
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/META-INF/dhis/beans.xml
2010-04-07 12:27:42 +0000
@@ -268,15 +268,16 @@

ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
</bean>

- <!-- Duplicate data elimination -->
-
+ <!-- Duplicate data elimination -->
+
<bean

id="org.hisp.dhis.dataadmin.action.duplicatedataelimination.EliminateDuplicateDataAction"

class="org.hisp.dhis.dataadmin.action.duplicatedataelimination.EliminateDuplicateDataAction"
scope="prototype">
<property name="dataMergeService"
ref="org.hisp.dhis.datamerge.DataMergeService" />
<property name="dataElementService"
ref="org.hisp.dhis.dataelement.DataElementService" />
- <property name="categoryService"
ref="org.hisp.dhis.dataelement.DataElementCategoryService" />
+ <property name="categoryService"
+
ref="org.hisp.dhis.dataelement.DataElementCategoryService" />
</bean>

   &lt;\!\-\-  Data Element Zero Value Storage Management \-\-&gt;

@@ -303,19 +304,133 @@
</bean>

   &lt;\!\-\- Data archive \-\-&gt;

-
- <bean
-
id="org.hisp.dhis.dataadmin.action.dataarchive.ArchiveDataAction"
+
+ <bean
id="org.hisp.dhis.dataadmin.action.dataarchive.ArchiveDataAction"

class="org.hisp.dhis.dataadmin.action.dataarchive.ArchiveDataAction"
scope="prototype">
- <property name="dataArchiveService"
ref="org.hisp.dhis.dataarchive.DataArchiveService"/>
- </bean>
-
- <bean
-
id="org.hisp.dhis.dataadmin.action.dataarchive.GetNumberOfOverlapsAction"
-
class="org.hisp.dhis.dataadmin.action.dataarchive.GetNumberOfOverlapsAction"
- scope="prototype">
- <property name="dataArchiveService"
ref="org.hisp.dhis.dataarchive.DataArchiveService"/>
- </bean>
+ <property name="dataArchiveService"
ref="org.hisp.dhis.dataarchive.DataArchiveService" />
+ </bean>
+
+ <bean
+
id="org.hisp.dhis.dataadmin.action.dataarchive.GetNumberOfOverlapsAction"
+
class="org.hisp.dhis.dataadmin.action.dataarchive.GetNumberOfOverlapsAction"
+ scope="prototype">
+ <property name="dataArchiveService"
ref="org.hisp.dhis.dataarchive.DataArchiveService" />
+ </bean>
+
+ <!-- Min/Max validation -->
+
+ <bean
+
id="org.hisp.dhis.dataadmin.action.minmaxvalidation.GetMinMaxValidationParamsAction"
+
class="org.hisp.dhis.dataadmin.action.minmaxvalidation.GetMinMaxValidationParamsAction"
+ scope="prototype">
+ <property name="dataSetService"
ref="org.hisp.dhis.dataset.DataSetService" />
+ <property name="organisationUnitService"
+
ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+ <property name="selectionTreeManager"
+
ref="org.hisp.dhis.oust.manager.SelectionTreeManager" />
+ </bean>
+
+ <bean
id="org.hisp.dhis.dataadmin.action.minmaxvalidation.SetupTreeAction"
+
class="org.hisp.dhis.dataadmin.action.minmaxvalidation.SetupTreeAction"
+ scope="prototype">
+ <property name="selectionTreeManager">
+ <ref
bean="org.hisp.dhis.oust.manager.SelectionTreeManager" />
+ </property>
+ <property name="dataSetService">
+ <ref bean="org.hisp.dhis.dataset.DataSetService"
/>
+ </property>
+ </bean>
+
+ <bean
+
id="org.hisp.dhis.dataadmin.action.minmaxvalidation.MinMaxGeneratingAction"
+
class="org.hisp.dhis.dataadmin.action.minmaxvalidation.MinMaxGeneratingAction">
+ <property name="organisationUnitSelectionManager">
+ <ref
bean="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
+ </property>
+ <property name="dataSetService">
+ <ref bean="org.hisp.dhis.dataset.DataSetService"
/>
+ </property>
+ <property name="periodService"
ref="org.hisp.dhis.period.PeriodService" />
+ <property name="minMaxValuesGeneratingService"
+
ref="org.hisp.dhis.dataanalysis.MinMaxValuesGeneratingService" />
+ <property name="minMaxDataElementService"
+
ref="org.hisp.dhis.minmax.MinMaxDataElementService" />
+ <property name="systemSettingManager">
+ <ref
bean="org.hisp.dhis.options.SystemSettingManager" />
+ </property>
+ </bean>
+
+ <!-- Min/Max validation - Factor -->
+
+ <bean
+
id="org.hisp.dhis.dataadmin.action.minmaxvalidation.GetFactoryAction"
+
class="org.hisp.dhis.dataadmin.action.minmaxvalidation.GetFactoryAction">
+ <property name="systemSettingManager">
+ <ref
bean="org.hisp.dhis.options.SystemSettingManager" />
+ </property>
+ </bean>
+
+ <bean
+
id="org.hisp.dhis.dataadmin.action.minmaxvalidation.SaveFactoryAction"
+
class="org.hisp.dhis.dataadmin.action.minmaxvalidation.SaveFactoryAction">
+ <property name="systemSettingManager">
+ <ref
bean="org.hisp.dhis.options.SystemSettingManager" />
+ </property>
+ </bean>
+
+ <!-- Min/Max validation - Organisation Unit tree -->
+
+ <bean
+
id="org.hisp.dhis.dataadmin.action.minmaxvalidation.SelectLevelAction"
+
class="org.hisp.dhis.dataadmin.action.minmaxvalidation.SelectLevelAction"
+ scope="prototype">
+ <property name="selectionTreeManager">
+ <ref
bean="org.hisp.dhis.oust.manager.SelectionTreeManager" />
+ </property>
+ </bean>
+
+ <bean
+
id="org.hisp.dhis.dataadmin.action.minmaxvalidation.SelectOrganisationUnitGroupAction"
+
class="org.hisp.dhis.dataadmin.action.minmaxvalidation.SelectOrganisationUnitGroupAction"
+ scope="prototype">
+ <property name="selectionTreeManager">
+ <ref
bean="org.hisp.dhis.oust.manager.SelectionTreeManager" />
+ </property>
+ <property name="organisationUnitGroupService">
+ <ref
bean="org.hisp.dhis.organisationunit.OrganisationUnitGroupService" />
+ </property>
+ </bean>
+
+ <bean
+
id="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectAllAction"
+
class="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectAllAction"
+ scope="prototype">
+ <property name="selectionTreeManager">
+ <ref
bean="org.hisp.dhis.oust.manager.SelectionTreeManager" />
+ </property>
+ </bean>
+
+ <bean
+
id="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectLevelAction"
+
class="oorg.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectLevelAction"
+ scope="prototype">
+ <property name="selectionTreeManager">
+ <ref
bean="org.hisp.dhis.oust.manager.SelectionTreeManager" />
+ </property>
+ </bean>
+
+ <bean
+
id="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectOrganisationUnitGroupAction"
+
class="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectOrganisationUnitGroupAction"
+ scope="prototype">
+ <property name="selectionTreeManager">
+ <ref
bean="org.hisp.dhis.oust.manager.SelectionTreeManager" />
+ </property>
+ <property name="organisationUnitGroupService">
+ <ref
bean="org.hisp.dhis.organisationunit.OrganisationUnitGroupService" />
+ </property>
+ </bean>
+

</beans>

=== modified file
'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties'
---
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties
2010-02-18 15:41:11 +0000
+++
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/org/hisp/dhis/dataadmin/i18n_module.properties
2010-04-07 12:27:42 +0000
@@ -178,4 +178,21 @@
unarchive
= Unarchive
archiving
= Archiving
unarchiving
= Unarchiving
-done_number_of_values
= done. Number of archived values is
now
\ No newline at end of file
+done_number_of_values
= done. Number of archived values is
now
+min_max_validation
= Min/Max Validation
+intro_min_max_validation
= Generate min/max values for any
combination of selected organisation unit/dataset.
+start_date
= Start date
+end_date
= End date
+available_dataset
= Available Datasets
+organisation_unit
= Organisation unit
+generate_min_max_value_success
= Generate min max value successfully.
+not_choose_dataset
= Please specify a dataset.
+not_choose_organisation
= Please specify a
organisation.
+unselect_all
= Unselect All
+select_all_in_group
= Select all in group
+unselect_all_in_group
= Unselect all in group
+generate_min_max_values
= Generate Min/Max values
+generate_values_success
= Generate values successfully.
+set_factor
= Set Factor
+factor
= Factor
+save_factory_success
= Save factory successfully
\ No newline at end of file

=== modified file
'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/struts.xml'
---
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/struts.xml
2010-03-12 12:03:07 +0000
+++
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/resources/struts.xml
2010-04-07 12:27:42 +0000
@@ -199,17 +199,17 @@

           &lt;\!\-\- Data integrity \-\-&gt;

- <action name="displayDataIntegrityForm"
- class="org.hisp.dhis.dataadmin.action.NoAction">
+ <action name="displayDataIntegrityForm"
class="org.hisp.dhis.dataadmin.action.NoAction">
<result name="success"
type="velocity">/main.vm</result>
<param
name="page">/dhis-web-maintenance-dataadmin/dataIntegrityForm.vm</param>
<param
name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
<param
name="javascripts">javascript/dataIntegrity.js</param>
</action>
-
+
<action name="getDataIntegrity"

class="org.hisp.dhis.dataadmin.action.dataintegrity.GetDataIntegrityAction">
- <result name="success"
type="velocity-json">/dhis-web-maintenance-dataadmin/responseDataIntegrity.vm</result>
+ <result name="success" type="velocity-json">
+
/dhis-web-maintenance-dataadmin/responseDataIntegrity.vm</result>
</action>

           &lt;\!\-\- Statistics \-\-&gt;

@@ -311,18 +311,18 @@
</action>

           &lt;\!\-\- Duplicate data elimination \-\-&gt;

-
+
<action name="displayDuplicateDataEliminationForm"
class="org.hisp.dhis.dataadmin.action.NoAction">
<result name="success"
type="velocity">/main.vm</result>
- <param
name="page">/dhis-web-maintenance-dataadmin/duplicateDataEliminationForm.vm</param>
- <param
name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
- <param
name="javascripts">javascript/duplicateDataElimination.js</param>
- </action>
+ <param
name="page">/dhis-web-maintenance-dataadmin/duplicateDataEliminationForm.vm</param>
+ <param
name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
+ <param
name="javascripts">javascript/duplicateDataElimination.js</param>
+ </action>

- <action name="eliminateDuplicateData"
+ <action name="eliminateDuplicateData"

class="org.hisp.dhis.dataadmin.action.duplicatedataelimination.EliminateDuplicateDataAction">
<result name="success" type="redirect">
- displayDuplicateDataEliminationForm.action</result>
+
displayDuplicateDataEliminationForm.action</result>
</action>

           &lt;\!\-\- Data Element Zero Value Storage Management \-\-&gt;

@@ -348,23 +348,112 @@

           &lt;\!\-\- Data archive \-\-&gt;

- <action name="displayDataArchiveForm"
- class="org.hisp.dhis.dataadmin.action.NoAction">
+ <action name="displayDataArchiveForm"
class="org.hisp.dhis.dataadmin.action.NoAction">
<result name="success"
type="velocity">/main.vm</result>
- <param
name="page">/dhis-web-maintenance-dataadmin/dataArchiveForm.vm</param>
- <param
name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
- <param name="javascripts">javascript/dataArchive.js</param>
+ <param
name="page">/dhis-web-maintenance-dataadmin/dataArchiveForm.vm</param>
+ <param
name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
+ <param
name="javascripts">javascript/dataArchive.js</param>
</action>

           &lt;action name=&quot;archiveData&quot;

class="org.hisp.dhis.dataadmin.action.dataarchive.ArchiveDataAction">
- <result name="success"
type="velocity-json">/dhis-web-maintenance-dataadmin/responseNumber.vm</result>
+ <result name="success" type="velocity-json">
+
/dhis-web-maintenance-dataadmin/responseNumber.vm</result>
</action>

           &lt;action name=&quot;getNumberOfOverlaps&quot;

class="org.hisp.dhis.dataadmin.action.dataarchive.GetNumberOfOverlapsAction">
- <result name="success"
type="velocity-json">/dhis-web-maintenance-dataadmin/responseNumber.vm</result>
- </action>
+ <result name="success" type="velocity-json">
+
/dhis-web-maintenance-dataadmin/responseNumber.vm</result>
+ </action>
+
+ <!-- Min/Max validation -->
+
+ <action name="getMinMaxValidationParams"
+
class="org.hisp.dhis.dataadmin.action.minmaxvalidation.MinMaxGeneratingAction">
+ <result name="success" type="chain">
+ getMinMaxValidationParamsChain</result>
+ <result name="input" type="chain">
+ getMinMaxValidationParamsChain</result>
+ </action>
+
+ <action name="getMinMaxValidationParamsChain"
+
class="org.hisp.dhis.dataadmin.action.minmaxvalidation.GetMinMaxValidationParamsAction">
+ <interceptor-ref name="organisationUnitTreeStack"
/>
+ <result name="success"
type="velocity">/main.vm</result>
+ <param
name="page">/dhis-web-maintenance-dataadmin/minMaxValidation.vm</param>
+ <param
name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
+ <param
name="stylesheets">style/ui.all.css</param>
+ <param name="javascripts">
+ ../dhis-web-commons/oust/oust.js,
+ ../dhis-web-commons/util/jquery-ui.js,
+
../dhis-web-commons/util/validate/jquery.validate.js,
+
../dhis-web-commons/util/jquery.metadata.js,
+
../dhis-web-commons/util/validate/additional-methods.js,
+
../dhis-web-commons/util/validate/messages_locale.js,
+ ../dhis-web-commons/calendar/calendar.js,
+
../dhis-web-commons/calendar/calendar-lang.js,
+
../dhis-web-commons/calendar/calendar-setup.js,
+ javascript/minMaxValidation.js
+ </param>
+ </action>
+
+ <!-- Min/Max validation - Factor -->
+
+ <action name="getFactor"
+
class="org.hisp.dhis.dataadmin.action.minmaxvalidation.GetFactoryAction">
+ <result name="success"
type="velocity">/main.vm</result>
+ <param
name="page">/dhis-web-maintenance-dataadmin/factor.vm</param>
+ <param
name="menu">/dhis-web-maintenance-dataadmin/menu.vm</param>
+ <param
name="stylesheets">style/ui.all.css</param>
+ <param name="javascripts">
+ ../dhis-web-commons/oust/oust.js,
+ ../dhis-web-commons/util/jquery-ui.js,
+
../dhis-web-commons/util/validate/jquery.validate.js,
+
../dhis-web-commons/util/jquery.metadata.js,
+
../dhis-web-commons/util/validate/additional-methods.js,
+
../dhis-web-commons/util/validate/messages_locale.js,
+ javascript/minMaxValidation.js
+ </param>
+ </action>
+
+ <action name="saveFactor"
+
class="org.hisp.dhis.dataadmin.action.minmaxvalidation.SaveFactoryAction">
+ <result name="success" type="velocity-xml">
+
/dhis-web-maintenance-dataadmin/responseSuccess.vm</result>
+ </action>
+
+ <!-- Min/Max validation - Organisation units -->
+
+ <action name="selectLevel"
+
class="org.hisp.dhis.dataadmin.action.minmaxvalidation.SelectLevelAction">
+ <result name="success" type="velocity-xml">
+
/dhis-web-maintenance-dataadmin/responseSuccess.vm</result>
+ </action>
+
+ <action name="unselectLevel"
+
class="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectLevelAction">
+ <result name="success" type="velocity-xml">
+
/dhis-web-maintenance-dataadmin/responseSuccess.vm</result>
+ </action>
+
+ <action name="selectOrganisationUnitGroup"
+
class="org.hisp.dhis.dataadmin.action.minmaxvalidation.SelectOrganisationUnitGroupAction">
+ <result name="success" type="velocity-xml">
+
/dhis-web-maintenance-dataadmin/responseSuccess.vm</result>
+ </action>
+
+ <action name="unselectOrganisationUnitGroup"
+
class="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectOrganisationUnitGroupAction">
+ <result name="success" type="velocity-xml">
+
/dhis-web-maintenance-dataadmin/responseSuccess.vm</result>
+ </action>
+
+ <action name="unselectAll"
+
class="org.hisp.dhis.dataadmin.action.minmaxvalidation.UnselectAllAction">
+ <result name="success" type="velocity-xml">
+
/dhis-web-maintenance-dataadmin/responseSuccess.vm</result>
+ </action>

   &lt;/package&gt;

</struts>

=== modified file
'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/index.vm'
---
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/index.vm
2010-02-01 15:30:27 +0000
+++
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/index.vm
2010-04-07 12:27:42 +0000
@@ -12,5 +12,6 @@
#introListItem( "viewStatistics.action" "data_statistics" )
#introListItem( "displayLockingForm.action" "data_locking" )
#introListItem( "zeroValueStorageManagement.action"
"zero_storage_management" )
+ #introListItem( "getMinMaxValidationParams.action"
"min_max_validation" )
#introListItem( "showCache.action" "cache_statistics" )
</ul>

=== modified file
'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/menu.vm'
---
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/menu.vm
2010-02-01 15:30:27 +0000
+++
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/menu.vm
2010-04-07 12:27:42 +0000
@@ -11,8 +11,14 @@
<li><a href="viewStatistics.action">$i18n.getString(
"data_statistics" )&nbsp;</a></li>
<li><a href="displayLockingForm.action">$i18n.getString(
"data_locking" )&nbsp;</a></li>
<li><a
href="zeroValueStorageManagement.action">$i18n.getString(
"zero_storage_management" )&nbsp;</a></li>
+ </ul>
+
+<h2>$i18n.getString( "min_max_validation" )&nbsp;</h2>
+ <ul>
+ <li><a href="getFactor.action">$i18n.getString(
"set_factor")&nbsp;</a></li>
+ <li><a
href="getMinMaxValidationParams.action">$i18n.getString(
"generate_min_max_values")&nbsp;</a></li>
</ul>
-
+
<h2>$i18n.getString( "system_administration" )&nbsp;</h2>
<ul>
<li><a href="showCache.action">$i18n.getString(
"cache_statistics" )&nbsp;</a></li>

_______________________________________________
Mailing list: https://launchpad.net/~dhis2-devs
Post to : dhis2-devs@lists.launchpad.net
Unsubscribe : https://launchpad.net/~dhis2-devs
More help : https://help.launchpad.net/ListHelp

_______________________________________________
Mailing list: https://launchpad.net/~dhis2-devs
Post to : dhis2-devs@lists.launchpad.net
Unsubscribe : https://launchpad.net/~dhis2-devs
More help : https://help.launchpad.net/ListHelp

_______________________________________________
Mailing list: https://launchpad.net/~dhis2-devs
Post to : dhis2-devs@lists.launchpad.net
Unsubscribe : https://launchpad.net/~dhis2-devs
More help : https://help.launchpad.net/ListHelp