← Back to team overview

dhis2-devs team mailing list archive

[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 + "' )";
+  }
 }