=== modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/ValidationAction.java' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/ValidationAction.java 2010-01-29 13:22:17 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/ValidationAction.java 2010-01-29 17:10:33 +0000 @@ -33,6 +33,7 @@ import java.util.List; import java.util.Map; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.hisp.dhis.dataanalysis.DataAnalysisService; @@ -100,6 +101,13 @@ this.stdDevOutlierAnalysisService = stdDevOutlierAnalysisService; } + private DataAnalysisService minMaxOutlierAnalysisService; + + public void setMinMaxOutlierAnalysisService( DataAnalysisService minMaxOutlierAnalysisService ) + { + this.minMaxOutlierAnalysisService = minMaxOutlierAnalysisService; + } + // ------------------------------------------------------------------------- // Output // ------------------------------------------------------------------------- @@ -136,6 +144,7 @@ // Action implementation // ------------------------------------------------------------------------- + @SuppressWarnings( "unchecked" ) public String execute() throws Exception { @@ -170,8 +179,14 @@ } } - dataValues = stdDevOutlierAnalysisService.analyse( orgUnit, dataSet.getDataElements(), ListUtils.getCollection( period ), STD_DEV ); + Collection stdDevs = stdDevOutlierAnalysisService. + analyse( orgUnit, dataSet.getDataElements(), ListUtils.getCollection( period ), STD_DEV ); + Collection minMaxs = minMaxOutlierAnalysisService. + analyse( orgUnit, dataSet.getDataElements(), ListUtils.getCollection( period ), null ); + + dataValues = CollectionUtils.union( stdDevs, minMaxs ); + log.info( "Number of outlier values: " + dataValues.size() ); return SUCCESS; === modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/META-INF/dhis/beans.xml 2010-01-29 13:22:17 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/META-INF/dhis/beans.xml 2010-01-29 17:10:33 +0000 @@ -294,6 +294,7 @@ + === modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/org/hisp/dhis/de/i18n_module.properties' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/org/hisp/dhis/de/i18n_module.properties 2010-01-29 09:39:22 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/org/hisp/dhis/de/i18n_module.properties 2010-01-29 17:10:33 +0000 @@ -114,3 +114,5 @@ followup = Follow-up interpolation = Interpolation validation_rule = Validation rule +the_following_values_are_outliers = The following values are considered as outliers (min-max or std dev). +no_outlier_values_found = No outlier values found. \ No newline at end of file === modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/validationResult.vm' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/validationResult.vm 2010-01-29 13:22:17 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/validationResult.vm 2010-01-29 17:10:33 +0000 @@ -20,7 +20,7 @@ #set ( $leftFormula = $leftsideFormulaMap.get( $id ) ) #set ( $rightFormula = $rightsideFormulaMap.get( $id ) ) - $encoder.htmlEncode( $result.validationRule.name ) + $encoder.htmlEncode( $result.validationRule.name ) $leftFormula $result.validationRule.operator $rightFormula $!encoder.htmlEncode( $result.validationRule.leftSide.description ) $result.leftsideValue @@ -37,4 +37,34 @@ #end +
+ +#if( $dataValues.size() == 0 ) +

$encoder.htmlEncode( $i18n.getString( "no_outlier_values_found" ) )

+#else +

$encoder.htmlEncode( $i18n.getString( "the_following_values_are_outliers" ) )

+ + + + + + + + #set( $mark = false ) + #foreach( $value in $dataValues ) + + + + + + + #if( $mark ) + #set( $mark = false ) + #else + #set( $mark = true ) + #end + #end +
$i18n.getString( "data_element" )$i18n.getString( "min" )$i18n.getString( "value" )$i18n.getString( "max" )
$value.dataElementName $value.categoryOptionComboNameParsed$value.min$value.value$value.max
+#end +