=== 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-11-23 10:55:32 +0000 +++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/dataanalysis/jdbc/JdbcDataAnalysisStore.java 2010-11-24 09:49:54 +0000 @@ -73,43 +73,36 @@ // OutlierAnalysisStore implementation // ------------------------------------------------------------------------- - public Double getStandardDeviation( DataElement dataElement, DataElementCategoryOptionCombo categoryOptionCombo, - OrganisationUnit organisationUnit ) - { - 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 = statementBuilder.getStandardDeviation( dataElement.getId(), categoryOptionCombo.getId(), - organisationUnit.getId() ); - - return statementManager.getHolder().queryForDouble( sql ); - } - - public Collection getDeflatedDataValues( DataElement dataElement, - DataElementCategoryOptionCombo categoryOptionCombo, Collection periods, - OrganisationUnit organisationUnit, int lowerBound, int upperBound ) + public Double getStandardDeviation( DataElement dataElement, DataElementCategoryOptionCombo categoryOptionCombo, OrganisationUnit organisationUnit ) + { + 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 = statementBuilder.getStandardDeviation(dataElement.getId(), categoryOptionCombo.getId(), organisationUnit.getId() ); + + return statementManager.getHolder().queryForDouble( sql ); + } + + public Collection getDeflatedDataValues( DataElement dataElement, DataElementCategoryOptionCombo categoryOptionCombo, + Collection periods, OrganisationUnit organisationUnit, int lowerBound, int upperBound ) { final StatementHolder holder = statementManager.getHolder(); - + final ObjectMapper mapper = new ObjectMapper(); - - final String periodIds = TextUtils.getCommaDelimitedString( ConversionUtils.getIdentifiers( Period.class, - periods ) ); - - final String sql = statementBuilder.getDeflatedDataValues( dataElement.getId(), dataElement.getName(), - categoryOptionCombo.getId(), periodIds, organisationUnit.getId(), organisationUnit.getName(), lowerBound, - upperBound ); - + + final String periodIds = TextUtils.getCommaDelimitedString( ConversionUtils.getIdentifiers( Period.class, periods ) ); + + final String sql = statementBuilder.getDeflatedDataValues( dataElement.getId(), dataElement.getName(), categoryOptionCombo.getId(), + periodIds, organisationUnit.getId(), organisationUnit.getName(), lowerBound, upperBound ); + try - { + { final ResultSet resultSet = holder.getStatement().executeQuery( sql ); - + return mapper.getCollection( resultSet, new DeflatedDataValueNameMinMaxRowMapper() ); } catch ( SQLException ex ) @@ -121,33 +114,50 @@ holder.close(); } } - - public Collection getDeflatedDataValueGaps( DataElement dataElement, - DataElementCategoryOptionCombo categoryOptionCombo, Collection periods, - OrganisationUnit organisationUnit ) + + public Collection getDeflatedDataValueGaps( DataElement dataElement, DataElementCategoryOptionCombo categoryOptionCombo, + Collection periods, OrganisationUnit organisationUnit ) { final StatementHolder holder = statementManager.getHolder(); final ObjectMapper mapper = new ObjectMapper(); - - final String periodIds = TextUtils.getCommaDelimitedString( ConversionUtils.getIdentifiers( Period.class, - periods ) ); - - final String minValueSql = "SELECT minvalue FROM minmaxdataelement " + "WHERE sourceid=' " - + organisationUnit.getId() + "' " + "AND dataelementid='" + dataElement.getId() + "' " - + "AND categoryoptioncomboid='" + categoryOptionCombo.getId() + "'"; - - final String maxValueSql = "SELECT maxvalue FROM minmaxdataelement " + "WHERE sourceid=' " - + organisationUnit.getId() + "' " + "AND dataelementid='" + dataElement.getId() + "' " - + "AND categoryoptioncomboid='" + categoryOptionCombo.getId() + "'"; - - final String sql = statementBuilder.getDeflatedDataValueGaps( dataElement, categoryOptionCombo, - organisationUnit, minValueSql, maxValueSql, periodIds ); - + + final String periodIds = TextUtils.getCommaDelimitedString( ConversionUtils.getIdentifiers( Period.class, periods ) ); + + final String minValueSql = + "SELECT minvalue FROM minmaxdataelement " + + "WHERE sourceid=' " + organisationUnit.getId() + "' " + + "AND dataelementid='" + dataElement.getId() + "' " + + "AND categoryoptioncomboid='" + categoryOptionCombo.getId() + "'"; + + final String maxValueSql = + "SELECT maxvalue FROM minmaxdataelement " + + "WHERE sourceid=' " + organisationUnit.getId() + "' " + + "AND dataelementid='" + dataElement.getId() + "' " + + "AND categoryoptioncomboid='" + categoryOptionCombo.getId() + "'"; + + 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, " + + "( " + minValueSql + " ) AS minvalue, ( " + maxValueSql + " ) AS maxvalue, " + + statementBuilder.encode( dataElement.getName() ) + " AS dataelementname, pt.name AS periodtypename, pe.startdate, pe.enddate, " + + statementBuilder.encode( organisationUnit.getName() ) + " AS sourcename, " + + statementBuilder.encode( categoryOptionCombo.getName() ) + " AS categoryoptioncomboname " + //TODO join? + "FROM period AS pe " + + "JOIN periodtype AS pt USING (periodtypeid) " + + "WHERE periodid IN (" + periodIds + ") " + + "AND periodtypeid='" + dataElement.getPeriodType().getId() + "' " + + "AND periodid NOT IN ( " + + "SELECT periodid FROM datavalue " + + "WHERE dataelementid='" + dataElement.getId() + "' " + + "AND categoryoptioncomboid='" + categoryOptionCombo.getId() + "' " + + "AND sourceid='" + organisationUnit.getId() + "' )"; + try - { + { final ResultSet resultSet = holder.getStatement().executeQuery( sql ); - + return mapper.getCollection( resultSet, new DeflatedDataValueNameMinMaxRowMapper() ); } catch ( SQLException ex ) @@ -163,23 +173,26 @@ public Collection getDataValuesMarkedForFollowup() { final StatementHolder holder = statementManager.getHolder(); - - final String sql = "SELECT dv.dataelementid, dv.periodid, dv.sourceid, dv.categoryoptioncomboid, dv.value, " - + "dv.storedby, dv.lastupdated, dv.comment, dv.followup, mm.minvalue, mm.maxvalue, de.name AS dataelementname, " - + "pe.startdate, pe.enddate, pt.name AS periodtypename, ou.name AS sourcename, cc.categoryoptioncomboname " - + "FROM datavalue AS dv " - + "LEFT JOIN minmaxdataelement AS mm using (sourceid, dataelementid, categoryoptioncomboid) " - + "JOIN dataelement AS de using (dataelementid) " + "JOIN period AS pe using (periodid) " - + "JOIN periodtype AS pt using (periodtypeid) " + "JOIN source AS sr using (sourceid) " - + "LEFT JOIN organisationunit AS ou on ou.organisationunitid=sr.sourceid " - + "LEFT JOIN _categoryoptioncomboname AS cc using (categoryoptioncomboid) " + "WHERE dv.followup=true"; - + + final String sql = + "SELECT dv.dataelementid, dv.periodid, dv.sourceid, dv.categoryoptioncomboid, dv.value, " + + "dv.storedby, dv.lastupdated, dv.comment, dv.followup, mm.minvalue, mm.maxvalue, de.name AS dataelementname, " + + "pe.startdate, pe.enddate, pt.name AS periodtypename, ou.name AS sourcename, cc.categoryoptioncomboname " + + "FROM datavalue AS dv " + + "LEFT JOIN minmaxdataelement AS mm using (sourceid, dataelementid, categoryoptioncomboid) " + + "JOIN dataelement AS de using (dataelementid) " + + "JOIN period AS pe using (periodid) " + + "JOIN periodtype AS pt using (periodtypeid) " + + "JOIN source AS sr using (sourceid) " + + "LEFT JOIN organisationunit AS ou on ou.organisationunitid=sr.sourceid " + + "LEFT JOIN _categoryoptioncomboname AS cc using (categoryoptioncomboid) " + + "WHERE dv.followup=true"; + try { final ResultSet resultSet = holder.getStatement().executeQuery( sql ); - - return new ObjectMapper().getCollection( resultSet, - new DeflatedDataValueNameMinMaxRowMapper() ); + + return new ObjectMapper().getCollection( resultSet, new DeflatedDataValueNameMinMaxRowMapper() ); } catch ( SQLException ex ) { @@ -189,6 +202,5 @@ { holder.close(); } - } - + } } === 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-11-23 10:55:32 +0000 +++ dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/StatementBuilder.java 2010-11-24 09:49:54 +0000 @@ -27,9 +27,6 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -import org.hisp.dhis.dataelement.DataElement; -import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo; -import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.period.Period; /** @@ -39,7 +36,7 @@ public interface StatementBuilder { final String QUOTE = "'"; - + /** * Encodes the provided SQL value. * @@ -47,73 +44,65 @@ * @return the SQL encoded value. */ String encode( String value ); - + /** * Returns the name of a double column type. - * * @return the name of a double column type. */ String getDoubleColumnType(); - + /** * Creates a SELECT statement returning the identifier of the given Period. * - * @param period the Period to use in the statement. + * @param period the Period to use in the statement. * @return a SELECT statement returning the identifier of the given Period. */ String getPeriodIdentifierStatement( Period period ); - + /** * Creates a create table statement fot the aggregated datavalue table. - * * @return a create table statement fot the aggregated datavalue table. */ String getCreateAggregatedDataValueTable(); - + /** * Creates a create table statement for the aggregated indicatorvalue table. - * * @return a create table statement for the aggregated indicatorvalue table. - */ + */ String getCreateAggregatedIndicatorTable(); /** - * Creates a create table statement for the aggregated datasetcompleteness - * table. - * - * @return a create table statement for the aggregated datasetcompleteness - * table. + * Creates a create table statement for the aggregated datasetcompleteness table. + * @return a create table statement for the aggregated datasetcompleteness table. */ String getCreateDataSetCompletenessTable(); - + /** * Creates a create index statement for the datavalue table. - * * @return a create index statement for the datavalue table. */ String getCreateDataValueIndex(); - + /** * Creates a delete datavalue statement. - * * @return a delete datavalue statement. */ String getDeleteZeroDataValues(); - + /** * Returns the maximum number of columns in a table. * * @return the maximum number of columns in a table. */ int getMaximumNumberOfColumns(); - + /** - * Drop Dataset foreign key for DataEntryForm table - * + * Drop Dataset foreign key for DataEntryForm table + * * @return */ String getDropDatasetForeignKeyForDataEntryFormTable(); - + String getMoveDataValueToDestination( int sourceId, int destinationId ); String getSummarizeDestinationAndSourceWhereMatching( int sourceId, int destinationId ); @@ -121,40 +110,37 @@ String getMoveFromSourceToDestination( int destDataElementId, int destCategoryOptionComboId, int sourceDataElementId, int sourceCategoryOptionComboId ); - String getUpdateDestination( int destDataElementId, int destCategoryOptionComboId, int sourceDataElementId, - int sourceCategoryOptionComboId ); - + 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 ); - - String getDeflatedDataValueGaps( DataElement dataElement, DataElementCategoryOptionCombo categoryOptionCombo, - OrganisationUnit organisationUnit, String minValueSql, String maxValueSql, String periodIds ); - + String periodIds, int organisationUnitId, String organisationUnitName, int lowerBound, int upperBound ); + String archiveData( String startDate, String endDate ); - + String unArchiveData( String startDate, String endDate ); - + String deleteRegularOverlappingData(); - + String deleteArchivedOverlappingData(); - + String deleteOldestOverlappingDataValue(); - + String deleteOldestOverlappingArchiveData(); - - String archivePatientData( String startDate, String endDate ); - - String unArchivePatientData( String startDate, String endDate ); - + + String archivePatientData ( String startDate, String endDate ); + + String unArchivePatientData ( String startDate, String endDate ); + String deleteRegularOverlappingPatientData(); - + String deleteArchivedOverlappingPatientData(); - + String deleteOldestOverlappingPatientDataValue(); - + String deleteOldestOverlappingPatientArchiveData(); } === 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-11-23 10:55:32 +0000 +++ dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/statementbuilder/DerbyStatementBuilder.java 2010-11-24 09:49:54 +0000 @@ -29,10 +29,7 @@ import static org.hisp.dhis.system.util.DateUtils.getSqlDateString; -import org.hisp.dhis.dataelement.DataElement; -import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo; import org.hisp.dhis.jdbc.StatementBuilder; -import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.period.Period; /** @@ -196,7 +193,7 @@ "AND categoryoptioncomboid='" + categoryOptionComboId + "' " + "AND sourceid='" + organisationUnitId + "'"; - } + } public String getAverage( int dataElementId, int categoryOptionComboId, int organisationUnitId ){ return "SELECT AVG( CAST( value AS " + getDoubleColumnType() + " ) ) FROM datavalue " + @@ -222,50 +219,27 @@ "AND dv.sourceid='" + organisationUnitId + "' " + "AND ( CAST( dv.value AS " + getDoubleColumnType() + " ) < '" + lowerBound + "' " + "OR CAST( dv.value AS " + getDoubleColumnType() + " ) > '" + upperBound + "' )"; - } - - public String getDeflatedDataValueGaps( DataElement dataElement, DataElementCategoryOptionCombo categoryOptionCombo, - OrganisationUnit organisationUnit, String minValueSql, String maxValueSql, String periodIds ) - { - return "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, " - + "( " + minValueSql + " ) AS minvalue, ( " + maxValueSql + " ) AS maxvalue, " - + encode( dataElement.getName() ) + " AS dataelementname, pt.name AS periodtypename, pe.startdate, pe.enddate, " - + encode( organisationUnit.getName() ) + " AS sourcename, " - + encode( categoryOptionCombo.getName() ) + " AS categoryoptioncomboname " - + // TODO join? - "FROM period AS pe " - + "JOIN periodtype AS pt USING (periodtypeid) " - + "WHERE pe.periodid IN (" + periodIds + ") " - + "AND pe.periodtypeid='" + dataElement.getPeriodType().getId() + "' " - + "AND pe.periodid NOT IN ( " - + "SELECT DISTINCT periodid FROM datavalue " - + "WHERE dataelementid='" + dataElement.getId() + "' " - + "AND categoryoptioncomboid='" + categoryOptionCombo.getId() + "' " - + "AND sourceid='" + organisationUnit.getId() + "' )"; - } - - public String archiveData( String startDate, String endDate ){ + } + + public String archiveData( String startDate, String endDate ){ return "DELETE FROM datavaluearchive AS a " + "USING period AS p " + "WHERE a.periodid=p.periodid " + "AND p.startdate>='" + startDate + "' " + "AND p.enddate<='" + endDate + "'"; - } + } - public String unArchiveData( String startDate, String endDate ){ + public String unArchiveData( String startDate, String endDate ){ return "DELETE FROM datavaluearchive AS a " + "USING period AS p " + "WHERE a.periodid=p.periodid " + "AND p.startdate>='" + startDate + "' " + "AND p.enddate<='" + endDate + "'"; - } + } - public String deleteRegularOverlappingData(){ + public String deleteRegularOverlappingData(){ return "DELETE FROM datavalue AS d " + "USING datavaluearchive AS a " + @@ -274,9 +248,9 @@ "AND d.sourceid=a.sourceid " + "AND d.categoryoptioncomboid=a.categoryoptioncomboid"; - } + } - public String deleteArchivedOverlappingData(){ + public String deleteArchivedOverlappingData(){ return "DELETE FROM datavaluearchive AS a " + "USING datavalue AS d " + @@ -284,9 +258,9 @@ "AND a.periodid=d.periodid " + "AND a.sourceid=d.sourceid " + "AND a.categoryoptioncomboid=d.categoryoptioncomboid"; - } + } - public String deleteOldestOverlappingDataValue(){ + public String deleteOldestOverlappingDataValue(){ return "DELETE FROM datavalue AS d " + "USING datavaluearchive AS a " + @@ -295,9 +269,9 @@ "AND d.sourceid=a.sourceid " + "AND d.categoryoptioncomboid=a.categoryoptioncomboid " + "AND d.lastupdated= '" + startDate + "' " + "AND pi.enddate <= '" + endDate + "';"; - } + } - public String unArchivePatientData ( String startDate, String endDate ) - { + public String unArchivePatientData ( String startDate, String endDate ) + { return "DELETE FROM patientdatavaluearchive AS pdv " + "USING programstageinstance AS psi , programinstance AS pi " + "WHERE pdv.programstageinstanceid = psi.programstageinstanceid " + "AND pi.programinstanceid = psi.programinstanceid " + "WHERE pi.enddate >= '" + startDate + "' " + "AND pi.enddate <= '" + endDate + "';"; - } + } - public String deleteRegularOverlappingPatientData() - { + public String deleteRegularOverlappingPatientData() + { return "DELETE FROM patientdatavalue AS d " + "USING patientdatavaluearchive AS a " + "WHERE d.programstageinstanceid=a.programstageinstanceid " + @@ -337,20 +311,20 @@ "AND d.organisationunitid=a.organisationunitid " + "AND d.categoryoptioncomboid=a.categoryoptioncomboid " + "AND d.timestamp '" + upperBound + "' )"; } - public String getDeflatedDataValueGaps( DataElement dataElement, DataElementCategoryOptionCombo categoryOptionCombo, - OrganisationUnit organisationUnit, String minValueSql, String maxValueSql, String periodIds ) - { - return "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, " - + "( " + minValueSql + " ) AS minvalue, ( " + maxValueSql + " ) AS maxvalue, " - + encode( dataElement.getName() ) + " AS dataelementname, pt.name AS periodtypename, pe.startdate, pe.enddate, " - + encode( organisationUnit.getName() ) + " AS sourcename, " - + encode( categoryOptionCombo.getName() ) + " AS categoryoptioncomboname " - + // TODO join? - "FROM period AS pe " - + "JOIN periodtype AS pt ON (pe.periodtypeid = pt.periodtypeid) " - + "WHERE pe.periodid IN (" + periodIds + ") " - + "AND pe.periodtypeid='" + dataElement.getPeriodType().getId() + "' " - + "AND pe.periodid NOT IN ( " - + "SELECT DISTINCT periodid FROM datavalue " - + "WHERE dataelementid='" + dataElement.getId() + "' " - + "AND categoryoptioncomboid='" + categoryOptionCombo.getId() + "' " - + "AND sourceid='" + organisationUnit.getId() + "' )"; - } - public String archiveData( String startDate, String endDate ) { return "DELETE FROM datavalue AS a " + === 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-11-23 10:55:32 +0000 +++ dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/statementbuilder/MySQLStatementBuilder.java 2010-11-24 09:49:54 +0000 @@ -29,10 +29,7 @@ import static org.hisp.dhis.system.util.DateUtils.getSqlDateString; -import org.hisp.dhis.dataelement.DataElement; -import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo; import org.hisp.dhis.jdbc.StatementBuilder; -import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.period.Period; /** @@ -222,31 +219,8 @@ "AND dv.sourceid='" + organisationUnitId + "' " + "AND ( dv.value < '" + lowerBound + "' " + "OR dv.value > '" + upperBound + "' )"; - } + } - public String getDeflatedDataValueGaps( DataElement dataElement, DataElementCategoryOptionCombo categoryOptionCombo, - OrganisationUnit organisationUnit, String minValueSql, String maxValueSql, String periodIds ) - { - return "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, " - + "( " + minValueSql + " ) AS minvalue, ( " + maxValueSql + " ) AS maxvalue, " - + encode( dataElement.getName() ) + " AS dataelementname, pt.name AS periodtypename, pe.startdate, pe.enddate, " - + encode( organisationUnit.getName() ) + " AS sourcename, " - + encode( categoryOptionCombo.getName() ) + " AS categoryoptioncomboname " - + // TODO join? - "FROM period AS pe " - + "JOIN periodtype AS pt USING (periodtypeid) " - + "WHERE pe.periodid IN (" + periodIds + ") " - + "AND pe.periodtypeid='" + dataElement.getPeriodType().getId() + "' " - + "AND pe.periodid NOT IN ( " - + "SELECT DISTINCT periodid FROM datavalue " - + "WHERE dataelementid='" + dataElement.getId() + "' " - + "AND categoryoptioncomboid='" + categoryOptionCombo.getId() + "' " - + "AND sourceid='" + organisationUnit.getId() + "' )"; - } - public String archiveData( String startDate, String endDate ) { return "DELETE d FROM datavalue AS d " + === 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-11-23 10:55:32 +0000 +++ dhis-2/dhis-support/dhis-support-jdbc/src/main/java/org/hisp/dhis/jdbc/statementbuilder/PostgreSQLStatementBuilder.java 2010-11-24 09:49:54 +0000 @@ -29,10 +29,7 @@ import static org.hisp.dhis.system.util.DateUtils.getSqlDateString; -import org.hisp.dhis.dataelement.DataElement; -import org.hisp.dhis.dataelement.DataElementCategoryOptionCombo; import org.hisp.dhis.jdbc.StatementBuilder; -import org.hisp.dhis.organisationunit.OrganisationUnit; import org.hisp.dhis.period.Period; /** @@ -225,29 +222,6 @@ "OR CAST( dv.value AS " + getDoubleColumnType() + " ) > '" + upperBound + "' )"; } - public String getDeflatedDataValueGaps( DataElement dataElement, DataElementCategoryOptionCombo categoryOptionCombo, - OrganisationUnit organisationUnit, String minValueSql, String maxValueSql, String periodIds ) - { - return "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, " - + "( " + minValueSql + " ) AS minvalue, ( " + maxValueSql + " ) AS maxvalue, " - + encode( dataElement.getName() ) + " AS dataelementname, pt.name AS periodtypename, pe.startdate, pe.enddate, " - + encode( organisationUnit.getName() ) + " AS sourcename, " - + encode( categoryOptionCombo.getName() ) + " AS categoryoptioncomboname " - + // TODO join? - "FROM period AS pe " - + "JOIN periodtype AS pt USING (periodtypeid) " - + "WHERE pe.periodid IN (" + periodIds + ") " - + "AND pe.periodtypeid='" + dataElement.getPeriodType().getId() + "' " - + "AND pe.periodid NOT IN ( " - + "SELECT DISTINCT periodid FROM datavalue " - + "WHERE dataelementid='" + dataElement.getId() + "' " - + "AND categoryoptioncomboid='" + categoryOptionCombo.getId() + "' " - + "AND sourceid='" + organisationUnit.getId() + "' )"; - } - public String archiveData( String startDate, String endDate ) { return "DELETE FROM datavaluearchive AS a " +