=== modified file 'local/in/dhis-web-dashboard/src/main/java/org/hisp/dhis/dataanalyser/action/DashBoardHomePageAction.java' --- local/in/dhis-web-dashboard/src/main/java/org/hisp/dhis/dataanalyser/action/DashBoardHomePageAction.java 2011-10-13 09:49:44 +0000 +++ local/in/dhis-web-dashboard/src/main/java/org/hisp/dhis/dataanalyser/action/DashBoardHomePageAction.java 2011-10-14 12:26:01 +0000 @@ -30,12 +30,14 @@ import static org.hisp.dhis.system.util.ConversionUtils.getIdentifiers; import static org.hisp.dhis.system.util.TextUtils.getCommaDelimitedString; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.HashMap; +import java.util.Iterator; import java.util.List; import java.util.Map; @@ -147,6 +149,20 @@ return totalEnrollCountMap; } + Map totalEnrollCountForSelDateMap; + + public Map getTotalEnrollCountForSelDateMap() + { + return totalEnrollCountForSelDateMap; + } + + Integer totalRegCountForSelDate = 0; + + public Integer getTotalRegCountForSelDate() + { + return totalRegCountForSelDate; + } + Integer totalRegCount = 0; public Integer getTotalRegCount() @@ -161,6 +177,13 @@ return totalRegCountList; } + List totalRegCountListForSelDate; + + public List getTotalRegCountListForSelDate() + { + return totalRegCountListForSelDate; + } + List programList; public List getProgramList() @@ -195,7 +218,13 @@ { return navigationString; } + + private String toDaysDate; + public String getToDaysDate() + { + return toDaysDate; + } // --------------------------------------------------------------- // Action Implementation @@ -211,17 +240,37 @@ programList = new ArrayList(); rootOrgUnitEnrollCountList = new ArrayList(); totalRegCountList = new ArrayList(); + totalRegCountListForSelDate = new ArrayList(); + totalEnrollCountForSelDateMap = new HashMap(); resultString = ""; navigationString = "Tracker Dashboard"; + Date toDay = new Date(); + Calendar cal = Calendar.getInstance(); + cal.setTime( toDay ); + //cal.roll( Calendar.DATE, false ); + cal.add( Calendar.DATE, -1 ); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + toDaysDate = simpleDateFormat.format( cal.getTime() ); + // getIndicatorValues(); programList.addAll( programService.getAllPrograms() ); if( programList != null && programList.size() > 0 ) { + Iterator progIterator = programList.iterator(); + while( progIterator.hasNext() ) + { + Program prg = progIterator.next(); + if( prg.getOrganisationUnits() == null || prg.getOrganisationUnits().size() <= 0) + { + progIterator.remove(); + } + } + List rootOrgUnitList = new ArrayList( ); if( drillDownOrgUnitId != null ) { @@ -259,6 +308,8 @@ String orgUnitIdsByComma = getCommaDelimitedString( getIdentifiers( OrganisationUnit.class, childTree ) ); Map enrollCountMap = dashBoardService.getTotalEnrolledNumber( orgUnitIdsByComma ); + + Map enrollCountForSelDateMap = dashBoardService.getTotalEnrolledNumberForSelectedDate( orgUnitIdsByComma, toDaysDate ); if ( enrollCountMap != null ) { for ( Program program : programList ) @@ -278,6 +329,22 @@ { totalEnrollCountMap.put( rootOrgUnitName+":"+program.getId(), tempResult ); } + + Integer tempResult1 = enrollCountForSelDateMap.get( program.getId() ); + if( tempResult1 == null ) + { + tempResult1 = 0; + } + totalEnrollCountForSelDateMap.put( program.getId()+":"+ou.getId(), tempResult1 ); + Integer tempInteger1 = totalEnrollCountForSelDateMap.get( rootOrgUnitName+":"+program.getId() ); + if( tempInteger1 != null ) + { + totalEnrollCountForSelDateMap.put( rootOrgUnitName+":"+program.getId(), tempResult1+tempInteger1 ); + } + else + { + totalEnrollCountForSelDateMap.put( rootOrgUnitName+":"+program.getId(), tempResult1 ); + } } } @@ -286,6 +353,12 @@ totalRegCountList.add( regCount ); totalRegCount += regCount; + + Integer regCountForSelDate = dashBoardService.getTotalRegisteredCountForSelDate( orgUnitIdsByComma, toDaysDate ); + + totalRegCountListForSelDate.add( regCountForSelDate ); + + totalRegCountForSelDate += regCountForSelDate; } } } @@ -295,6 +368,7 @@ return SUCCESS; } + @SuppressWarnings( "unused" ) private void getIndicatorValues() { === modified file 'local/in/dhis-web-dashboard/src/main/java/org/hisp/dhis/dataanalyser/ds/action/GenerateDataStatusResultAction.java' --- local/in/dhis-web-dashboard/src/main/java/org/hisp/dhis/dataanalyser/ds/action/GenerateDataStatusResultAction.java 2011-09-03 09:46:15 +0000 +++ local/in/dhis-web-dashboard/src/main/java/org/hisp/dhis/dataanalyser/ds/action/GenerateDataStatusResultAction.java 2011-10-14 12:26:01 +0000 @@ -352,7 +352,13 @@ { return dataElementCount; } + + private List dso; + public List getDso() + { + return dso; + } // --------------------------------------------------------------- // Action Implementation @@ -500,7 +506,7 @@ Iterator orgUnitListIterator = orgUnitList.iterator(); OrganisationUnit o; // Set dso = new HashSet(); - List dso = new ArrayList( selDataSet.getSources() ); + dso = new ArrayList( selDataSet.getSources() ); Iterator periodIterator; // dso = selDataSet.getSources(); @@ -529,8 +535,6 @@ periodInfo = "" + p.getId(); dataElementCount = 0; - - if ( dso == null ) { dsResults.add( -1 ); @@ -540,16 +544,18 @@ else if ( !dso.contains( o ) ) { System.out.println("Dataset : " + selDataSet.getName() + " not assign to " + o.getName() ); - /* + List childOrgUnits = new ArrayList(); + childOrgUnits = filterChildOrgUnitsByDataSet( o, dso ); + + if( childOrgUnits == null || childOrgUnits.size() <= 0 ) { dsResults.add( -2 ); continue; } - - else*/ - //{ - /*orgUnitInfo = "-1"; + else + { + orgUnitInfo = "-1"; orgUnitCount = 0; getOrgUnitInfo( o, dso ); @@ -589,13 +595,14 @@ dataStatusPercentatge = 100; dataStatusPercentatge = Math.round( dataStatusPercentatge * Math.pow( 10, 0 ) ) / Math.pow( 10, 0 ); - */ - //dsResults.add( (int) dataStatusPercentatge ); - dsResults.add( -1 ); - //dataElementCount = sqlResultSet.getInt( 1 ); - deCounts.add( -1 ); + + dsResults.add( (int) dataStatusPercentatge ); + //dsResults.add( -1 ); + dataElementCount = sqlResultSet.getInt( 1 ); + //deCounts.add( -1 ); + deCounts.add( dataElementCount ); continue; - //} + } } orgUnitInfo = "" + o.getId(); @@ -814,16 +821,24 @@ } } - /* - * private void getOrgUnitInfo( OrganisationUnit organisationUnit, - * List dso ) { Collection children = - * organisationUnit.getChildren(); - * - * Iterator childIterator = children.iterator(); - * OrganisationUnit child; while ( childIterator.hasNext() ) { child = - * childIterator.next(); if ( dso.contains( child ) ) { orgUnitInfo += "," + - * child.getId(); orgUnitCount++; } getOrgUnitInfo( child, dso ); } } - */ + + private void getOrgUnitInfo( OrganisationUnit organisationUnit, List dso ) + { + Collection children = organisationUnit.getChildren(); + + Iterator childIterator = children.iterator(); + OrganisationUnit child; + while ( childIterator.hasNext() ) + { + child = childIterator.next(); + if ( dso.contains( child ) ) + { + orgUnitInfo += "," + child.getId(); orgUnitCount++; + } + getOrgUnitInfo( child, dso ); + } + } + private String getDEInfo( Collection dataElements ) { StringBuffer deInfo = new StringBuffer( "-1" ); @@ -834,14 +849,12 @@ } return deInfo.toString(); } - /* - * private List filterChildOrgUnitsByDataSet( - * OrganisationUnit selectedOrganisationUnit, List dso ) { - * List filteredOrganisationUnits = new - * ArrayList( - * organisationUnitService.getOrganisationUnitWithChildren( - * selectedOrganisationUnit.getId() ) ); - * filteredOrganisationUnits.retainAll( dso ); return - * filteredOrganisationUnits; } - */ + + private List filterChildOrgUnitsByDataSet( OrganisationUnit selectedOrganisationUnit, List dso ) + { + List filteredOrganisationUnits = new ArrayList( organisationUnitService.getOrganisationUnitWithChildren( selectedOrganisationUnit.getId() ) ); + filteredOrganisationUnits.retainAll( dso ); return + filteredOrganisationUnits; + } + }// class end === modified file 'local/in/dhis-web-dashboard/src/main/java/org/hisp/dhis/dataanalyser/ds/action/GenerateSummaryDataStatusResultAction.java' --- local/in/dhis-web-dashboard/src/main/java/org/hisp/dhis/dataanalyser/ds/action/GenerateSummaryDataStatusResultAction.java 2011-04-27 17:15:13 +0000 +++ local/in/dhis-web-dashboard/src/main/java/org/hisp/dhis/dataanalyser/ds/action/GenerateSummaryDataStatusResultAction.java 2011-10-14 12:26:01 +0000 @@ -1,5 +1,8 @@ package org.hisp.dhis.dataanalyser.ds.action; +import static org.hisp.dhis.system.util.ConversionUtils.getIdentifiers; +import static org.hisp.dhis.system.util.TextUtils.getCommaDelimitedString; + import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -306,9 +309,17 @@ deInfo = "-1"; DataSet dSet = dataSetService.getDataSet( Integer.parseInt( selectedDataSets ) ); selDataSet = dSet; - for ( DataElement de : dSet.getDataElements() ) - deInfo += "," + de.getId(); - + Collection dataElements = new ArrayList(); + dataElements = selDataSet.getDataElements(); + int dataSetMemberCount1 = 0; + for ( DataElement de1 : dataElements ) + { + dataSetMemberCount1 += de1.getCategoryCombo().getOptionCombos().size(); + } + Collection dataElementIds = new ArrayList( getIdentifiers(DataElement.class, dataElements ) ); + deInfo = getCommaDelimitedString( dataElementIds ); + //deInfo = getDEInfo( dataElements ); + // OrgUnit Related Info OrganisationUnit selectedOrgUnit = new OrganisationUnit(); orgUnitList = new ArrayList(); @@ -323,8 +334,7 @@ Iterator orgUnitIterator = orgUnitListCB.iterator(); while ( orgUnitIterator.hasNext() ) { - OrganisationUnit o = organisationUnitService.getOrganisationUnit( Integer - .parseInt( (String) orgUnitIterator.next() ) ); + OrganisationUnit o = organisationUnitService.getOrganisationUnit( Integer.parseInt( (String) orgUnitIterator.next() ) ); orgUnitList.add( o ); List organisationUnits = new ArrayList( o.getChildren() ); Collections.sort( organisationUnits, new OrganisationUnitShortNameComparator() ); @@ -373,13 +383,14 @@ Period endPeriod = periodService.getPeriod( eDateLB ); PeriodType dataSetPeriodType = selDataSet.getPeriodType(); - periodList = periodService.getPeriodsBetweenDates( dataSetPeriodType, startPeriod.getStartDate(), - endPeriod.getEndDate() ); + periodList = periodService.getPeriodsBetweenDates( dataSetPeriodType, startPeriod.getStartDate(), endPeriod.getEndDate() ); periodInfo = "-1"; for ( Period p : periodList ) + { periodInfo += "," + p.getId(); - + } + dataViewName = createDataView( orgUnitInfo, deInfo, periodInfo ); String query = ""; String query2 = ""; @@ -390,16 +401,6 @@ query2 = "SELECT COUNT(*) FROM " + dataViewName + " WHERE dataelementid IN (?) AND sourceid = ? AND periodid IN (?)"; - Collection dataElements = new ArrayList(); - dataElements = selDataSet.getDataElements(); - - int dataSetMemberCount1 = 0; - for ( DataElement de1 : dataElements ) - { - dataSetMemberCount1 += de1.getCategoryCombo().getOptionCombos().size(); - } - - deInfo = getDEInfo( dataElements ); Iterator orgUnitListIterator = orgUnitList.iterator(); OrganisationUnit o; dso = new HashSet(); === modified file 'local/in/dhis-web-dashboard/src/main/java/org/hisp/dhis/dataanalyser/dsMart/action/GenerateDataEntrySummaryStatusResultAction.java' --- local/in/dhis-web-dashboard/src/main/java/org/hisp/dhis/dataanalyser/dsMart/action/GenerateDataEntrySummaryStatusResultAction.java 2011-09-03 09:46:15 +0000 +++ local/in/dhis-web-dashboard/src/main/java/org/hisp/dhis/dataanalyser/dsMart/action/GenerateDataEntrySummaryStatusResultAction.java 2011-10-14 12:26:01 +0000 @@ -145,7 +145,6 @@ this.facilityLB = facilityLB; } - private String immChildOption; public void setImmChildOption( String immChildOption ) @@ -246,8 +245,6 @@ String orgUnitInfo; - String periodInfo; - String deInfo; int orgUnitCount; @@ -282,6 +279,7 @@ { return ouMapForChildDSAssociation; } + // --------------------------------------------------------------- // Action Implementation // --------------------------------------------------------------- @@ -316,22 +314,11 @@ selectedDataSets = Integer.parseInt( dsId ); } - // Data Set Related Information selDataSet = dataSetService.getDataSet( selectedDataSets ); - dataSetName = selDataSet.getName(); - - Collection dataElements = new ArrayList(); - dataElements = selDataSet.getDataElements(); - totalDataElementCount = 0; - for ( DataElement de1 : dataElements ) - { - totalDataElementCount += de1.getCategoryCombo().getOptionCombos().size(); - } - + dataSetName = selDataSet.getName(); dataSetSources = new ArrayList( selDataSet.getSources() ); - // Period Related Info Period startPeriod = periodService.getPeriod( sDateLB ); Period endPeriod = periodService.getPeriod( eDateLB ); @@ -341,27 +328,10 @@ periodNameList = dashBoardService.getPeriodNamesByPeriodType( dataSetPeriodType, periodList ); - periodInfo = "-1"; - for ( Period p : periodList ) - periodInfo += "," + p.getId(); - - - /* - Iterator periodIterator = periodList.iterator(); - Period p; - periodInfo = "-1"; - while( periodIterator.hasNext() ) - { - p = (Period) periodIterator.next(); - periodInfo += "," + p.getId(); - } - */ // Period Information for map Collection periodIds = new ArrayList( getIdentifiers(Period.class, periodList ) ); - periodIdsByComma = getCommaDelimitedString( periodIds ); - // OrgUnit Related Info OrganisationUnit selectedOrgUnit = new OrganisationUnit(); orgUnitList = new ArrayList(); @@ -370,11 +340,7 @@ selectedOrgUnit = organisationUnitService.getOrganisationUnit( Integer.parseInt( orgUnitListCB.get( 0 ) ) ); orgUnitList = new ArrayList( organisationUnitService.getOrganisationUnitWithChildren( selectedOrgUnit.getId() ) ); - tempOrgUnitList = new ArrayList( organisationUnitService.getOrganisationUnitWithChildren( selectedOrgUnit.getId() ) ); - - // for Map - //childOrgUnitTreeIds = new ArrayList( getIdentifiers( OrganisationUnit.class, tempOrgUnitList ) ); - //childOrgUnitsByComma = getCommaDelimitedString( childOrgUnitTreeIds ); + tempOrgUnitList = new ArrayList( organisationUnitService.getOrganisationUnitWithChildren( selectedOrgUnit.getId() ) ); } else if ( facilityLB.equals( "immChildren" ) ) { @@ -632,58 +598,7 @@ levelNames.add( ouLevelNames[count1] ); count1++; } - - /* - - String query2 = ""; - if ( includeZeros == null ) - { - query2 = "SELECT organisationunitid, periodid, value FROM dataentrystatus WHERE datasetid = " + selDataSet.getId() + " AND organisationunitid IN (" + orgUnitInfo + ") AND periodid IN (" + periodInfo + ") and includezero ='N' "; - } - else - { - query2 = "SELECT organisationunitid, periodid, value FROM dataentrystatus WHERE datasetid = " + selDataSet.getId() + " AND organisationunitid IN (" + orgUnitInfo + ") AND periodid IN (" + periodInfo + ") and includezero ='Y' "; - } - - SqlRowSet rs = jdbcTemplate.queryForRowSet( query ); - - double value ; - int result; - while ( rs.next() ) - { - Integer orgUnitId = rs.getInt( 1 ); - Integer periodId = rs.getInt( 2 ); - String tempValue = rs.getString( 3 ); - - try - { - value = Double.parseDouble( tempValue ); - } - catch ( Exception e ) - { - value = 0.0; - } - - if ( value >= 5.0 ) - { - result = 1; - } - - else - { - result = 0; - } - - String orgIdPeriodId = orgUnitId + ":" + periodId; - //double dataElementCount = ( value * (double) totalDataElementCount ) / 100; - - //value = Math.round( value * Math.pow( 10, 0 ) ) / Math.pow( 10, 0 ); - //dataElementCount = Math.round( dataElementCount * Math.pow( 10, 0 ) ) / Math.pow( 10, 0 ); - - ouMapDataEntryStatusResult.put( orgIdPeriodId, result ); - //ouMapDataElementCount.put( orgIdPeriodId, (int)dataElementCount ); - } -*/ + System.out.println( "Data Entry Summary Status Using Mart End Time : " + new Date() ); return SUCCESS; } === modified file 'local/in/dhis-web-dashboard/src/main/java/org/hisp/dhis/dataanalyser/util/DashBoardService.java' --- local/in/dhis-web-dashboard/src/main/java/org/hisp/dhis/dataanalyser/util/DashBoardService.java 2011-10-13 09:49:44 +0000 +++ local/in/dhis-web-dashboard/src/main/java/org/hisp/dhis/dataanalyser/util/DashBoardService.java 2011-10-14 12:26:01 +0000 @@ -191,6 +191,35 @@ } } + public Map getTotalEnrolledNumberForSelectedDate( String orgUnitIdsByComma, String toDaysDate ) + { + Map aggDeMap = new HashMap(); + try + { + String query = "SELECT programinstance.programid, COUNT(*) FROM programinstance INNER JOIN patient " + + " ON programinstance.patientid = patient.patientid " + + " WHERE patient.organisationunitid IN ("+ orgUnitIdsByComma +") AND " + + " patient.registrationdate LIKE '"+ toDaysDate+"%' GROUP BY programid"; + + SqlRowSet rs = jdbcTemplate.queryForRowSet( query ); + + while ( rs.next() ) + { + Integer programId = rs.getInt( 1 ); + Integer totalCount = rs.getInt( 2 ); + { + aggDeMap.put( programId, totalCount ); + } + } + + return aggDeMap; + } + catch( Exception e ) + { + throw new RuntimeException( e ); + } + } + public Integer getTotalRegisteredCount( String orgUnitIdsByComma ) { Integer totalRegCount = 0; @@ -214,6 +243,30 @@ } } + public Integer getTotalRegisteredCountForSelDate( String orgUnitIdsByComma, String selDate ) + { + Integer totalRegCount = 0; + try + { + String query = "SELECT COUNT(*) FROM patient " + + " WHERE organisationunitid IN ("+ orgUnitIdsByComma +") AND " + + " registrationdate LIKE '"+ selDate+"%'"; + + SqlRowSet rs = jdbcTemplate.queryForRowSet( query ); + + if ( rs != null && rs.next() ) + { + totalRegCount = rs.getInt( 1 ); + } + + return totalRegCount; + } + catch( Exception e ) + { + throw new RuntimeException( e ); + } + } + public List getMonthlyPeriods( Date start, Date end ) { === modified file 'local/in/dhis-web-dashboard/src/main/webapp/dhis-web-dashboard/dataStatusResult.vm' --- local/in/dhis-web-dashboard/src/main/webapp/dhis-web-dashboard/dataStatusResult.vm 2011-07-07 07:02:33 +0000 +++ local/in/dhis-web-dashboard/src/main/webapp/dhis-web-dashboard/dataStatusResult.vm 2011-10-14 12:26:01 +0000 @@ -126,13 +126,13 @@ #if( $result < 0 )   #elseif( $result == 0 ) - $result% #if( $deCount != -1 ) ( $deCount ) #end + #if( $dso.contains($chiildorgUnit) )$result% #if( $deCount != -1 ) ( $deCount ) #end#else $result% #end #elseif( $result > 75 ) - $result% #if( $deCount != -1 ) ( $deCount ) #end + #if( $dso.contains($chiildorgUnit) )$result% #if( $deCount != -1 ) ( $deCount ) #end #else $result% #end #elseif( $result > 40 && $result <= 75 ) - $result% #if( $deCount != -1 ) ( $deCount ) #end + #if( $dso.contains($chiildorgUnit) )$result% #if( $deCount != -1 ) ( $deCount ) #end #else $result% #end #else - $result% #if( $deCount != -1 ) ( $deCount ) #end + #if( $dso.contains($chiildorgUnit) )$result% #if( $deCount != -1 ) ( $deCount ) #end #else $result% #end #end #set( $count2 = $count2 + 1 ) #end === modified file 'local/in/dhis-web-dashboard/src/main/webapp/dhis-web-dashboard/welcomeTracker.vm' --- local/in/dhis-web-dashboard/src/main/webapp/dhis-web-dashboard/welcomeTracker.vm 2011-09-03 09:46:15 +0000 +++ local/in/dhis-web-dashboard/src/main/webapp/dhis-web-dashboard/welcomeTracker.vm 2011-10-14 12:26:01 +0000 @@ -7,48 +7,55 @@ #set( $mark = 0 ) - - - - - + #set( $count1 = 0 ) + #foreach( $orgUnit in $immChildrenList ) + + + + + #foreach( $program in $programList ) + + + #end + + #set( $count1 = $count1 + 1 ) + #if( $mark == 1 ) + #set( $mark = 0 ) + #else + #set( $mark = 1 ) + #end + #end + + + + + #foreach( $program in $programList ) + + + #end
- - - - - #foreach( $program in $programList ) - - #end - - #set( $count1 = 0 ) - #foreach( $orgUnit in $immChildrenList ) - - - - #foreach( $program in $programList ) - - #end - - #set( $count1 = $count1 + 1 ) - #if( $mark == 1 ) - #set( $mark = 0 ) - #else - #set( $mark = 1 ) - #end - #end - - - - #foreach( $program in $programList ) - - #end - +
$rootOrgUnitNameRegistered$program.name
$orgUnit.shortName$totalRegCountList.get( $count1 )$totalEnrollCountMap.get( "$program.id:$orgUnit.id" )
Total :$totalRegCount$!totalEnrollCountMap.get( "$rootOrgUnitName:$program.id" )
+ + + + #foreach( $program in $programList ) + + #end + + + + + #foreach( $program in $programList ) + + + #end + -
$rootOrgUnitNameRegistered$program.name
Total$toDaysDateTotal$toDaysDate
-
   
$orgUnit.shortName$totalRegCountList.get( $count1 )$totalRegCountListForSelDate.get( $count1 )$totalEnrollCountMap.get( "$program.id:$orgUnit.id" )$totalEnrollCountForSelDateMap.get( "$program.id:$orgUnit.id" )
Total :$totalRegCount$totalRegCountForSelDate$!totalEnrollCountMap.get( "$rootOrgUnitName:$program.id" )$!totalEnrollCountForSelDateMap.get( "$rootOrgUnitName:$program.id" )
+
+
+