dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #07635
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 2202: Fix bug: when clicking Generate min/mix Button the internal server error ocur "Operation failed -...
------------------------------------------------------------
revno: 2202
committer: Tran Chau <tran.hispvietnam@xxxxxxxxx>
branch nick: trunk
timestamp: Thu 2010-09-23 13:55:57 +0700
message:
Fix bug: when clicking Generate min/mix Button the internal server error ocur "Operation failed - internal server error.
modified:
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataanalysis/jdbc/JdbcDataAnalysisStore.java
dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml
dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/StatementBuilder.java
dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/statementbuilder/DerbyStatementBuilder.java
dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/statementbuilder/H2StatementBuilder.java
dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/statementbuilder/MySQLStatementBuilder.java
dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/statementbuilder/PostgreSQLStatementBuilder.java
--
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-services/dhis-service-core/src/main/java/org/hisp/dhis/dataanalysis/jdbc/JdbcDataAnalysisStore.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataanalysis/jdbc/JdbcDataAnalysisStore.java 2010-09-23 04:50:45 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataanalysis/jdbc/JdbcDataAnalysisStore.java 2010-09-23 06:55:57 +0000
@@ -31,24 +31,9 @@
import java.sql.SQLException;
import java.util.Collection;
-import javax.management.Query;
-
import org.amplecode.quick.StatementHolder;
import org.amplecode.quick.StatementManager;
import org.amplecode.quick.mapper.ObjectMapper;
-import org.hibernate.Criteria;
-import org.hibernate.Hibernate;
-import org.hibernate.Session;
-import org.hibernate.SessionFactory;
-import org.hibernate.criterion.AggregateProjection;
-import org.hibernate.criterion.CountProjection;
-import org.hibernate.criterion.Disjunction;
-import org.hibernate.criterion.Expression;
-import org.hibernate.criterion.Projection;
-import org.hibernate.criterion.Projections;
-import org.hibernate.criterion.Property;
-import org.hibernate.criterion.Restrictions;
-import org.hibernate.criterion.SQLCriterion;
import org.hisp.dhis.dataanalysis.DataAnalysisStore;
import org.hisp.dhis.dataelement.DataElement;
import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo;
@@ -77,12 +62,6 @@
@Autowired
private StatementBuilder statementBuilder;
- protected SessionFactory sessionFactory;
-
- public void setSessionFactory( SessionFactory sessionFactory )
- {
- this.sessionFactory = sessionFactory;
- }
// -------------------------------------------------------------------------
// OutlierAnalysisStore implementation
@@ -90,23 +69,15 @@
public Double getStandardDeviation( DataElement dataElement, DataElementCategoryOptionCombo categoryOptionCombo, OrganisationUnit organisationUnit )
{
- final String sql =
- "SELECT STDDEV( CAST( value AS " + statementBuilder.getDoubleColumnType() + " ) ) FROM datavalue " +
- "WHERE dataelementid='" + dataElement.getId() + "' " +
- "AND categoryoptioncomboid='" + categoryOptionCombo.getId() + "' " +
- "AND sourceid='" + organisationUnit.getId() + "'";
+ final String sql = statementBuilder.getStandardDeviation(dataElement.getId(), categoryOptionCombo.getId(), organisationUnit.getId() );
return statementManager.getHolder().queryForDouble( sql );
}
public Double getAverage( DataElement dataElement, DataElementCategoryOptionCombo categoryOptionCombo, OrganisationUnit organisationUnit )
{
- final String sql =
- "SELECT AVG( CAST( value AS " + statementBuilder.getDoubleColumnType() + " ) ) FROM datavalue " +
- "WHERE dataelementid='" + dataElement.getId() + "' " +
- "AND categoryoptioncomboid='" + categoryOptionCombo.getId() + "' " +
- "AND sourceid='" + organisationUnit.getId() + "'";
-
+ final String sql = statementBuilder.getStandardDeviation(dataElement.getId(), categoryOptionCombo.getId(), organisationUnit.getId() );
+
return statementManager.getHolder().queryForDouble( sql );
}
@@ -119,21 +90,8 @@
final String periodIds = TextUtils.getCommaDelimitedString( ConversionUtils.getIdentifiers( Period.class, periods ) );
- final String sql =
- "SELECT dv.dataelementid, dv.periodid, dv.sourceid, dv.categoryoptioncomboid, dv.value, dv.storedby, dv.lastupdated, " +
- "dv.comment, dv.followup, '" + lowerBound + "' AS minvalue, '" + upperBound + "' AS maxvalue, " +
- statementBuilder.encode( dataElement.getName() ) + " AS dataelementname, pt.name AS periodtypename, pe.startdate, pe.enddate, " +
- statementBuilder.encode( organisationUnit.getName() ) + " AS sourcename, cc.categoryoptioncomboname " +
- "FROM datavalue AS dv " +
- "JOIN period AS pe USING (periodid) " +
- "JOIN periodtype AS pt USING (periodtypeid) " +
- "LEFT JOIN _categoryoptioncomboname AS cc USING (categoryoptioncomboid) " +
- "WHERE dv.dataelementid='" + dataElement.getId() + "' " +
- "AND dv.categoryoptioncomboid='" + categoryOptionCombo.getId() + "' " +
- "AND dv.periodid IN (" + periodIds + ") " +
- "AND dv.sourceid='" + organisationUnit.getId() + "' " +
- "AND ( CAST( dv.value AS " + statementBuilder.getDoubleColumnType() + " ) < '" + lowerBound + "' " +
- "OR CAST( dv.value AS " + statementBuilder.getDoubleColumnType() + " ) > '" + upperBound + "' )";
+ final String sql = statementBuilder.getDeflatedDataValues( dataElement.getId(), dataElement.getName(), categoryOptionCombo.getId(),
+ periodIds, organisationUnit.getId(), organisationUnit.getName(), lowerBound, upperBound );
try
{
@@ -172,7 +130,7 @@
"AND dataelementid='" + dataElement.getId() + "' " +
"AND categoryoptioncomboid='" + categoryOptionCombo.getId() + "'";
- final String sql =
+ final String sql =
"SELECT '" + dataElement.getId() + "' AS dataelementid, pe.periodid, " +
"'" + organisationUnit.getId() + "' AS sourceid, '" + categoryOptionCombo.getId() + "' AS categoryoptioncomboid, " +
"'' AS value, '' AS storedby, '1900-01-01' AS lastupdated, '' AS comment, false AS followup, " +
=== 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-09-23 04:50:45 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/resources/META-INF/dhis/beans.xml 2010-09-23 06:55:57 +0000
@@ -151,7 +151,6 @@
<bean id="org.hisp.dhis.dataanalysis.jdbc.DataAnalysisStore"
class="org.hisp.dhis.dataanalysis.jdbc.JdbcDataAnalysisStore" >
- <property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="org.hisp.dhis.datavalue.DataValueAuditStore"
=== modified file 'dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/StatementBuilder.java'
--- dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/StatementBuilder.java 2010-09-06 15:22:49 +0000
+++ dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/StatementBuilder.java 2010-09-23 06:55:57 +0000
@@ -112,4 +112,13 @@
String getUpdateDestination( int destDataElementId, int destCategoryOptionComboId,
int sourceDataElementId, int sourceCategoryOptionComboId );
+
+ String getStandardDeviation( int dataElementId, int categoryOptionComboId, int organisationUnitId );
+
+ String getAverage( int dataElementId, int categoryOptionComboId, int organisationUnitId );
+
+ String getDeflatedDataValues( int dataElementId, String dataElementName, int categoryOptionComboId,
+ String periodIds, int organisationUnitId, String organisationUnitName, int lowerBound, int upperBound );
+
+
}
=== modified file 'dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/statementbuilder/DerbyStatementBuilder.java'
--- dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/statementbuilder/DerbyStatementBuilder.java 2010-09-06 15:22:49 +0000
+++ dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/statementbuilder/DerbyStatementBuilder.java 2010-09-23 06:55:57 +0000
@@ -185,4 +185,39 @@
+ "AND d2.dataelementid="
+ sourceDataElementId + " AND d2.categoryoptioncomboid=" + sourceCategoryOptionComboId + ";";
}
+
+ public String getStandardDeviation( int dataElementId, int categoryOptionComboId, int organisationUnitId ){
+
+ return "SELECT STDDEV( CAST( value AS " + getDoubleColumnType() + " ) ) FROM datavalue " +
+ "WHERE dataelementid='" + dataElementId + "' " +
+ "AND categoryoptioncomboid='" + categoryOptionComboId + "' " +
+ "AND sourceid='" + organisationUnitId + "'";
+
+ }
+
+ public String getAverage( int dataElementId, int categoryOptionComboId, int organisationUnitId ){
+ return "SELECT AVG( CAST( value AS " + getDoubleColumnType() + " ) ) FROM datavalue " +
+ "WHERE dataelementid='" + dataElementId + "' " +
+ "AND categoryoptioncomboid='" + categoryOptionComboId + "' " +
+ "AND sourceid='" + organisationUnitId + "'";
+ }
+
+ public String getDeflatedDataValues( int dataElementId, String dataElementName, int categoryOptionComboId,
+ String periodIds, int organisationUnitId, String organisationUnitName, int lowerBound, int upperBound ){
+
+ return "SELECT dv.dataelementid, dv.periodid, dv.sourceid, dv.categoryoptioncomboid, dv.value, dv.storedby, dv.lastupdated, " +
+ "dv.comment, dv.followup, '" + lowerBound + "' AS minvalue, '" + upperBound + "' AS maxvalue, " +
+ encode( dataElementName ) + " AS dataelementname, pt.name AS periodtypename, pe.startdate, pe.enddate, " +
+ encode( organisationUnitName ) + " AS sourcename, cc.categoryoptioncomboname " +
+ "FROM datavalue AS dv " +
+ "JOIN period AS pe USING (periodid) " +
+ "JOIN periodtype AS pt USING (periodtypeid) " +
+ "LEFT JOIN _categoryoptioncomboname AS cc USING (categoryoptioncomboid) " +
+ "WHERE dv.dataelementid='" + dataElementId + "' " +
+ "AND dv.categoryoptioncomboid='" + categoryOptionComboId + "' " +
+ "AND dv.periodid IN (" + periodIds + ") " +
+ "AND dv.sourceid='" + organisationUnitId + "' " +
+ "AND ( CAST( dv.value AS " + getDoubleColumnType() + " ) < '" + lowerBound + "' " +
+ "OR CAST( dv.value AS " + getDoubleColumnType() + " ) > '" + upperBound + "' )";
+ }
}
=== modified file 'dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/statementbuilder/H2StatementBuilder.java'
--- dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/statementbuilder/H2StatementBuilder.java 2010-09-06 15:22:49 +0000
+++ dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/statementbuilder/H2StatementBuilder.java 2010-09-23 06:55:57 +0000
@@ -183,4 +183,39 @@
+ "AND d2.dataelementid="
+ sourceDataElementId + " AND d2.categoryoptioncomboid=" + sourceCategoryOptionComboId + ";";
}
+
+ public String getStandardDeviation( int dataElementId, int categoryOptionComboId, int organisationUnitId ){
+
+ return "SELECT STDDEV( CAST( value AS " + getDoubleColumnType() + " ) ) FROM datavalue " +
+ "WHERE dataelementid='" + dataElementId + "' " +
+ "AND categoryoptioncomboid='" + categoryOptionComboId + "' " +
+ "AND sourceid='" + organisationUnitId + "'";
+
+ }
+
+ public String getAverage( int dataElementId, int categoryOptionComboId, int organisationUnitId ){
+ return "SELECT AVG( CAST( value AS " + getDoubleColumnType() + " ) ) FROM datavalue " +
+ "WHERE dataelementid='" + dataElementId + "' " +
+ "AND categoryoptioncomboid='" + categoryOptionComboId + "' " +
+ "AND sourceid='" + organisationUnitId + "'";
+ }
+
+ public String getDeflatedDataValues( int dataElementId, String dataElementName, int categoryOptionComboId,
+ String periodIds, int organisationUnitId, String organisationUnitName, int lowerBound, int upperBound ){
+
+ return "SELECT dv.dataelementid, dv.periodid, dv.sourceid, dv.categoryoptioncomboid, dv.value, dv.storedby, dv.lastupdated, " +
+ "dv.comment, dv.followup, '" + lowerBound + "' AS minvalue, '" + upperBound + "' AS maxvalue, " +
+ encode( dataElementName ) + " AS dataelementname, pt.name AS periodtypename, pe.startdate, pe.enddate, " +
+ encode( organisationUnitName ) + " AS sourcename, cc.categoryoptioncomboname " +
+ "FROM datavalue AS dv " +
+ "JOIN period AS pe USING (periodid) " +
+ "JOIN periodtype AS pt USING (periodtypeid) " +
+ "LEFT JOIN _categoryoptioncomboname AS cc USING (categoryoptioncomboid) " +
+ "WHERE dv.dataelementid='" + dataElementId + "' " +
+ "AND dv.categoryoptioncomboid='" + categoryOptionComboId + "' " +
+ "AND dv.periodid IN (" + periodIds + ") " +
+ "AND dv.sourceid='" + organisationUnitId + "' " +
+ "AND ( CAST( dv.value AS " + getDoubleColumnType() + " ) < '" + lowerBound + "' " +
+ "OR CAST( dv.value AS " + getDoubleColumnType() + " ) > '" + upperBound + "' )";
+ }
}
=== modified file 'dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/statementbuilder/MySQLStatementBuilder.java'
--- dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/statementbuilder/MySQLStatementBuilder.java 2010-09-06 15:22:49 +0000
+++ dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/statementbuilder/MySQLStatementBuilder.java 2010-09-23 06:55:57 +0000
@@ -185,4 +185,40 @@
+ sourceDataElementId
+ " AND d2.categoryoptioncomboid=" + sourceCategoryOptionComboId + ";";
}
+
+ public String getStandardDeviation( int dataElementId, int categoryOptionComboId, int organisationUnitId ){
+
+ return "SELECT STDDEV( value ) FROM datavalue " +
+ "WHERE dataelementid='" + dataElementId + "' " +
+ "AND categoryoptioncomboid='" + categoryOptionComboId + "' " +
+ "AND sourceid='" + organisationUnitId + "'";
+
+ }
+
+ public String getAverage( int dataElementId, int categoryOptionComboId, int organisationUnitId ){
+ return "SELECT AVG( value ) FROM datavalue " +
+ "WHERE dataelementid='" + dataElementId + "' " +
+ "AND categoryoptioncomboid='" + categoryOptionComboId + "' " +
+ "AND sourceid='" + organisationUnitId + "'";
+ }
+
+ public String getDeflatedDataValues( int dataElementId, String dataElementName, int categoryOptionComboId,
+ String periodIds, int organisationUnitId, String organisationUnitName, int lowerBound, int upperBound ){
+
+ return "SELECT dv.dataelementid, dv.periodid, dv.sourceid, dv.categoryoptioncomboid, dv.value, dv.storedby, dv.lastupdated, " +
+ "dv.comment, dv.followup, '" + lowerBound + "' AS minvalue, '" + upperBound + "' AS maxvalue, " +
+ encode( dataElementName ) + " AS dataelementname, pt.name AS periodtypename, pe.startdate, pe.enddate, " +
+ encode( organisationUnitName ) + " AS sourcename, cc.categoryoptioncomboname " +
+ "FROM datavalue AS dv " +
+ "JOIN period AS pe USING (periodid) " +
+ "JOIN periodtype AS pt USING (periodtypeid) " +
+ "LEFT JOIN _categoryoptioncomboname AS cc USING (categoryoptioncomboid) " +
+ "WHERE dv.dataelementid='" + dataElementId + "' " +
+ "AND dv.categoryoptioncomboid='" + categoryOptionComboId + "' " +
+ "AND dv.periodid IN (" + periodIds + ") " +
+ "AND dv.sourceid='" + organisationUnitId + "' " +
+ "AND dv.value < '" + lowerBound + "' " +
+ "OR dv.value > '" + upperBound + "' )";
+ }
+
}
=== modified file 'dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/statementbuilder/PostgreSQLStatementBuilder.java'
--- dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/statementbuilder/PostgreSQLStatementBuilder.java 2010-09-06 15:22:49 +0000
+++ dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/statementbuilder/PostgreSQLStatementBuilder.java 2010-09-23 06:55:57 +0000
@@ -185,4 +185,39 @@
+ "AND d2.dataelementid="
+ sourceDataElementId + " AND d2.categoryoptioncomboid=" + sourceCategoryOptionComboId + ";";
}
+
+ public String getStandardDeviation( int dataElementId, int categoryOptionComboId, int organisationUnitId ){
+
+ return "SELECT STDDEV( CAST( value AS " + getDoubleColumnType() + " ) ) FROM datavalue " +
+ "WHERE dataelementid='" + dataElementId + "' " +
+ "AND categoryoptioncomboid='" + categoryOptionComboId + "' " +
+ "AND sourceid='" + organisationUnitId + "'";
+
+ }
+
+ public String getAverage( int dataElementId, int categoryOptionComboId, int organisationUnitId ){
+ return "SELECT AVG( CAST( value AS " + getDoubleColumnType() + " ) ) FROM datavalue " +
+ "WHERE dataelementid='" + dataElementId + "' " +
+ "AND categoryoptioncomboid='" + categoryOptionComboId + "' " +
+ "AND sourceid='" + organisationUnitId + "'";
+ }
+
+ public String getDeflatedDataValues( int dataElementId, String dataElementName, int categoryOptionComboId,
+ String periodIds, int organisationUnitId, String organisationUnitName, int lowerBound, int upperBound ){
+
+ return "SELECT dv.dataelementid, dv.periodid, dv.sourceid, dv.categoryoptioncomboid, dv.value, dv.storedby, dv.lastupdated, " +
+ "dv.comment, dv.followup, '" + lowerBound + "' AS minvalue, '" + upperBound + "' AS maxvalue, " +
+ encode( dataElementName ) + " AS dataelementname, pt.name AS periodtypename, pe.startdate, pe.enddate, " +
+ encode( organisationUnitName ) + " AS sourcename, cc.categoryoptioncomboname " +
+ "FROM datavalue AS dv " +
+ "JOIN period AS pe USING (periodid) " +
+ "JOIN periodtype AS pt USING (periodtypeid) " +
+ "LEFT JOIN _categoryoptioncomboname AS cc USING (categoryoptioncomboid) " +
+ "WHERE dv.dataelementid='" + dataElementId + "' " +
+ "AND dv.categoryoptioncomboid='" + categoryOptionComboId + "' " +
+ "AND dv.periodid IN (" + periodIds + ") " +
+ "AND dv.sourceid='" + organisationUnitId + "' " +
+ "AND ( CAST( dv.value AS " + getDoubleColumnType() + " ) < '" + lowerBound + "' " +
+ "OR CAST( dv.value AS " + getDoubleColumnType() + " ) > '" + upperBound + "' )";
+ }
}