dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #16490
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 6281: Improved reporting rate summary
------------------------------------------------------------
revno: 6281
committer: Lars Helge Overland <larshelge@xxxxxxxxx>
branch nick: dhis2
timestamp: Fri 2012-03-16 13:05:01 +0100
message:
Improved reporting rate summary
modified:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/period/MonthlyPeriodType.java
dhis-2/dhis-api/src/main/java/org/hisp/dhis/period/Period.java
dhis-2/dhis-api/src/test/java/org/hisp/dhis/period/MonthlyPeriodTypeTest.java
dhis-2/dhis-api/src/test/java/org/hisp/dhis/period/QuarterlyPeriodTypeTest.java
dhis-2/dhis-api/src/test/java/org/hisp/dhis/period/WeeklyPeriodTypeTest.java
dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/completeness/impl/AbstractDataSetCompletenessService.java
dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/completeness/impl/CompulsoryDataSetCompletenessService.java
dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/completeness/impl/RatioDataSetCompletenessService.java
dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/completeness/impl/RegistrationDataSetCompletenessService.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-api/src/main/java/org/hisp/dhis/period/MonthlyPeriodType.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/period/MonthlyPeriodType.java 2012-02-13 14:30:59 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/period/MonthlyPeriodType.java 2012-03-16 12:05:01 +0000
@@ -62,6 +62,7 @@
// -------------------------------------------------------------------------
// PeriodType functionality
// -------------------------------------------------------------------------
+
@Override
public String getName()
{
=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/period/Period.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/period/Period.java 2011-12-26 10:07:59 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/period/Period.java 2012-03-16 12:05:01 +0000
@@ -200,11 +200,27 @@
format.applyPattern( DEFAULT_DATE_FORMAT );
return dateString != null ? format.parse( dateString ) : null;
- } catch ( ParseException ex )
+ }
+ catch ( ParseException ex )
{
throw new RuntimeException( "Failed to parse medium date", ex );
}
}
+
+ /**
+ * Return the potential number of periods of the given period type which is
+ * spanned by this period.
+ *
+ * @param type the period type.
+ * @return the potential number of periods of the given period type spanned
+ * by this period.
+ */
+ public int getPeriodSpan( PeriodType type )
+ {
+ double no = (double) this.periodType.getFrequencyOrder() / type.getFrequencyOrder();
+
+ return (int) Math.round( no );
+ }
// -------------------------------------------------------------------------
// hashCode, equals and toString
=== modified file 'dhis-2/dhis-api/src/test/java/org/hisp/dhis/period/MonthlyPeriodTypeTest.java'
--- dhis-2/dhis-api/src/test/java/org/hisp/dhis/period/MonthlyPeriodTypeTest.java 2012-02-12 17:57:41 +0000
+++ dhis-2/dhis-api/src/test/java/org/hisp/dhis/period/MonthlyPeriodTypeTest.java 2012-03-16 12:05:01 +0000
@@ -1,4 +1,5 @@
package org.hisp.dhis.period;
+
/*
* Copyright (c) 2004-2012, University of Oslo
* All rights reserved.
@@ -26,7 +27,7 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import static junit.framework.Assert.assertEquals;
+import static org.junit.Assert.assertEquals;
import java.util.List;
@@ -192,4 +193,14 @@
assertEquals( periodType.createPeriod( new Cal( 2010, 1, 1 ).time() ), periods.get( 5 ) );
assertEquals( periodType.createPeriod( new Cal( 2010, 2, 1 ).time() ), periods.get( 6 ) );
}
+
+ @Test
+ public void testGetPeriodsBetween()
+ {
+ assertEquals( 1, periodType.createPeriod().getPeriodSpan( periodType ) );
+ assertEquals( 2, new BiMonthlyPeriodType().createPeriod().getPeriodSpan( periodType ) );
+ assertEquals( 3, new QuarterlyPeriodType().createPeriod().getPeriodSpan( periodType ) );
+ assertEquals( 6, new SixMonthlyPeriodType().createPeriod().getPeriodSpan( periodType ) );
+ assertEquals( 12, new YearlyPeriodType().createPeriod().getPeriodSpan( periodType ) );
+ }
}
=== modified file 'dhis-2/dhis-api/src/test/java/org/hisp/dhis/period/QuarterlyPeriodTypeTest.java'
--- dhis-2/dhis-api/src/test/java/org/hisp/dhis/period/QuarterlyPeriodTypeTest.java 2012-02-12 17:57:41 +0000
+++ dhis-2/dhis-api/src/test/java/org/hisp/dhis/period/QuarterlyPeriodTypeTest.java 2012-03-16 12:05:01 +0000
@@ -27,7 +27,7 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-import static junit.framework.Assert.assertEquals;
+import static org.junit.Assert.assertEquals;
import java.util.List;
@@ -165,4 +165,12 @@
assertEquals( periodType.createPeriod( new Cal( 2009, 10, 1 ).time() ), periods.get( 1 ) );
assertEquals( periodType.createPeriod( new Cal( 2010, 1, 1 ).time() ), periods.get( 2 ) );
}
+
+ @Test
+ public void testGetPeriodsBetween()
+ {
+ assertEquals( 1, periodType.createPeriod().getPeriodSpan( periodType ) );
+ assertEquals( 2, new SixMonthlyPeriodType().createPeriod().getPeriodSpan( periodType ) );
+ assertEquals( 4, new YearlyPeriodType().createPeriod().getPeriodSpan( periodType ) );
+ }
}
=== modified file 'dhis-2/dhis-api/src/test/java/org/hisp/dhis/period/WeeklyPeriodTypeTest.java'
--- dhis-2/dhis-api/src/test/java/org/hisp/dhis/period/WeeklyPeriodTypeTest.java 2011-04-11 11:59:53 +0000
+++ dhis-2/dhis-api/src/test/java/org/hisp/dhis/period/WeeklyPeriodTypeTest.java 2012-03-16 12:05:01 +0000
@@ -27,7 +27,6 @@
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@@ -44,37 +43,26 @@
*/
public class WeeklyPeriodTypeTest
{
- /**
- * Test method for
- * {@link org.hisp.dhis.period.WeeklyPeriodType#generatePeriods(org.hisp.dhis.period.Period)}
- * .
- */
@Test
@Ignore
public void testGeneratePeriods()
{
- // get calendar of default locale
Calendar testCal = Calendar.getInstance();
WeeklyPeriodType wpt = new WeeklyPeriodType();
+
for ( int year = 1990; year < 2020; year++ )
{
for ( int day = -7; day < 7; day++ )
{
testCal.set( year, 0, 1 ); // 1st day of year
testCal.add( Calendar.DATE, day );
- // System.err.println("testing "+testCal.getTime());
Period p1 = wpt.createPeriod( testCal.getTime() );
List<Period> generatedPeriods = wpt.generatePeriods( p1 );
assertTrue( "Period " + p1 + " in generated set", generatedPeriods.contains( p1 ) );
}
}
-
}
- /**
- * Test method for
- * {@link org.hisp.dhis.period.WeeklyPeriodType#createPeriod(Calendar)}.
- */
@Test
public void testCreatePeriod()
{
@@ -110,20 +98,19 @@
Period period = weekly.createPeriod( "2009W1" );
- assertEquals(cal.getTime(), period.getStartDate());
+ assertEquals( cal.getTime(), period.getStartDate() );
cal.set( 2011, 0, 3 );
period = weekly.createPeriod( "2011W1" );
- assertEquals(cal.getTime(), period.getStartDate());
+ assertEquals( cal.getTime(), period.getStartDate() );
period = weekly.createPeriod( "2011W11" );
cal.set( 2011, 2, 14 );
- assertEquals(cal.getTime(), period.getStartDate());
-
+ assertEquals( cal.getTime(), period.getStartDate() );
}
@Test
@@ -135,4 +122,17 @@
Period p = wpt.createPeriod( cal.getTime() );
assertEquals( p.getIsoDate(), "2011W1");
}
+
+ @Test
+ public void testGetPeriodsBetween()
+ {
+ PeriodType periodType = new WeeklyPeriodType();
+
+ assertEquals( 1, periodType.createPeriod().getPeriodSpan( periodType ) );
+ assertEquals( 4, new MonthlyPeriodType().createPeriod().getPeriodSpan( periodType ) );
+ assertEquals( 9, new BiMonthlyPeriodType().createPeriod().getPeriodSpan( periodType ) );
+ assertEquals( 13, new QuarterlyPeriodType().createPeriod().getPeriodSpan( periodType ) );
+ assertEquals( 26, new SixMonthlyPeriodType().createPeriod().getPeriodSpan( periodType ) );
+ assertEquals( 52, new YearlyPeriodType().createPeriod().getPeriodSpan( periodType ) );
+ }
}
=== modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/completeness/impl/AbstractDataSetCompletenessService.java'
--- dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/completeness/impl/AbstractDataSetCompletenessService.java 2012-03-15 16:04:20 +0000
+++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/completeness/impl/AbstractDataSetCompletenessService.java 2012-03-16 12:05:01 +0000
@@ -142,7 +142,7 @@
public abstract int getRegistrationsOnTime( DataSet dataSet, Collection<Integer> relevantSources, Collection<Integer> periods,
Date deadline );
- public abstract int getSources( DataSet dataSet, Collection<Integer> relevantSources, Collection<Integer> periods );
+ public abstract int getSources( DataSet dataSet, Collection<Integer> relevantSources, Period period );
// -------------------------------------------------------------------------
// DataSetCompleteness
@@ -258,7 +258,7 @@
final DataSetCompletenessResult result = new DataSetCompletenessResult();
- result.setSources( getSources( dataSet, relevantSources, periodsBetweenDates ) );
+ result.setSources( getSources( dataSet, relevantSources, period ) );
if ( result.getSources() > 0 )
{
@@ -342,7 +342,7 @@
final DataSetCompletenessResult result = new DataSetCompletenessResult();
result.setName( unit.getName() );
- result.setSources( getSources( dataSet, relevantSources, periodsBetweenDates ) );
+ result.setSources( getSources( dataSet, relevantSources, period ) );
if ( result.getSources() > 0 )
{
=== modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/completeness/impl/CompulsoryDataSetCompletenessService.java'
--- dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/completeness/impl/CompulsoryDataSetCompletenessService.java 2012-03-15 16:04:20 +0000
+++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/completeness/impl/CompulsoryDataSetCompletenessService.java 2012-03-16 12:05:01 +0000
@@ -31,6 +31,7 @@
import java.util.Date;
import org.hisp.dhis.dataset.DataSet;
+import org.hisp.dhis.period.Period;
/**
* @author Lars Helge Overland
@@ -51,8 +52,8 @@
}
@Override
- public int getSources( DataSet dataSet, Collection<Integer> relevantSources, Collection<Integer> periods )
+ public int getSources( DataSet dataSet, Collection<Integer> relevantSources, Period period )
{
- return relevantSources.size() * periods.size();
+ return relevantSources.size() * period.getPeriodSpan( dataSet.getPeriodType() );
}
}
=== modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/completeness/impl/RatioDataSetCompletenessService.java'
--- dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/completeness/impl/RatioDataSetCompletenessService.java 2012-03-15 16:04:20 +0000
+++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/completeness/impl/RatioDataSetCompletenessService.java 2012-03-16 12:05:01 +0000
@@ -32,6 +32,7 @@
import org.hisp.dhis.dataelement.DataElementOperand;
import org.hisp.dhis.dataset.DataSet;
+import org.hisp.dhis.period.Period;
/**
* @author Lars Helge Overland
@@ -53,12 +54,12 @@
}
@Override
- public int getSources( DataSet dataSet, Collection<Integer> relevantSources, Collection<Integer> periods )
+ public int getSources( DataSet dataSet, Collection<Integer> relevantSources, Period period )
{
Collection<DataElementOperand> operands = dataElementService.getAllGeneratedOperands( dataSet.getDataElements() );
// Number of operands in data set times number of organisation units times number of periods
- return operands != null && relevantSources != null ? ( operands.size() * relevantSources.size() * periods.size() ) : 0;
+ return operands != null && relevantSources != null ? ( operands.size() * relevantSources.size() * period.getPeriodSpan( dataSet.getPeriodType() ) ) : 0;
}
}
=== modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/completeness/impl/RegistrationDataSetCompletenessService.java'
--- dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/completeness/impl/RegistrationDataSetCompletenessService.java 2012-03-15 16:04:20 +0000
+++ dhis-2/dhis-services/dhis-service-reporting/src/main/java/org/hisp/dhis/completeness/impl/RegistrationDataSetCompletenessService.java 2012-03-16 12:05:01 +0000
@@ -31,6 +31,7 @@
import java.util.Date;
import org.hisp.dhis.dataset.DataSet;
+import org.hisp.dhis.period.Period;
/**
* @author Lars Helge Overland
@@ -51,8 +52,8 @@
}
@Override
- public int getSources( DataSet dataSet, Collection<Integer> relevantSources, Collection<Integer> periods )
+ public int getSources( DataSet dataSet, Collection<Integer> relevantSources, Period period )
{
- return relevantSources.size() * periods.size();
+ return relevantSources.size() * period.getPeriodSpan( dataSet.getPeriodType() );
}
}