← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 9333: Display details of persons when to click on a number in statistical program report.

 

------------------------------------------------------------
revno: 9333
committer: Tran Chau <tran.hispvietnam@xxxxxxxxx>
branch nick: dhis2
timestamp: Mon 2012-12-17 09:42:30 +0700
message:
  Display details of persons when to click on a number in statistical program report.
modified:
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstanceService.java
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstanceStore.java
  dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramStageInstanceService.java
  dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java
  dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/report/GenerateStatisticalProgramReportAction.java
  dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml
  dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties
  dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/struts.xml
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/statisticalReport.js
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/listPatient.vm
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/statisticalProgramReportSelect.vm
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/style/style.css


--
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/program/ProgramStageInstanceService.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstanceService.java	2012-12-14 07:29:29 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstanceService.java	2012-12-17 02:42:30 +0000
@@ -105,4 +105,7 @@
     
     Grid getStatisticalReport( Program program, Collection<Integer> orgunitIds,
         Date startDate, Date endDate, I18n i18n, I18nFormat format );
+    
+    List<ProgramStageInstance> getStatisticalProgramStageDetailsReport( ProgramStage programStage, Collection<Integer> orgunitIds,
+        Date startDate, Date endDate, int status, Integer max, Integer min );
 }

=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstanceStore.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstanceStore.java	2012-12-14 07:29:29 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramStageInstanceStore.java	2012-12-17 02:42:30 +0000
@@ -95,4 +95,7 @@
     int getStatisticalProgramStageReport( ProgramStage programStage, Collection<Integer> orgunitIds,
         Date startDate, Date endDate, int status );
     
+    List<ProgramStageInstance> getStatisticalProgramStageDetailsReport( ProgramStage programStage, Collection<Integer> orgunitIds,
+        Date startDate, Date endDate, int status, Integer min, Integer max );
+    
 }

=== modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramStageInstanceService.java'
--- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramStageInstanceService.java	2012-12-14 08:41:56 +0000
+++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramStageInstanceService.java	2012-12-17 02:42:30 +0000
@@ -295,12 +295,13 @@
 
         if ( total > 0 )
         {
+            grid.addHeader( new GridHeader( i18n.getString( "id" ), true, true ) );
             grid.addHeader( new GridHeader( i18n.getString( "program_stage" ), false, true ) );
             grid.addHeader( new GridHeader( i18n.getString( "completed" ), false, false ) );
             grid.addHeader( new GridHeader( i18n.getString( "percent_completed" ), false, false ) );
             grid.addHeader( new GridHeader( i18n.getString( "incomplete" ), false, false ) );
             grid.addHeader( new GridHeader( i18n.getString( "percent_incomplete" ), false, false ) );
-            grid.addHeader( new GridHeader( i18n.getString( "Scheduled" ), false, false ) );
+            grid.addHeader( new GridHeader( i18n.getString( "scheduled" ), false, false ) );
             grid.addHeader( new GridHeader( i18n.getString( "percent_Scheduled" ), false, false ) );
             grid.addHeader( new GridHeader( i18n.getString( "overdue" ), false, false ) );
             grid.addHeader( new GridHeader( i18n.getString( "percent_overdue" ), false, false ) );
@@ -308,8 +309,9 @@
             for ( ProgramStage programStage : program.getProgramStages() )
             {
                 grid.addRow();
+                grid.addValue( programStage.getId() );
                 grid.addValue( programStage.getName() );
-
+                
                 int completed = programStageInstanceStore.getStatisticalProgramStageReport( programStage, orgunitIds,
                     startDate, endDate, ProgramStageInstance.COMPLETED_STATUS );
                 grid.addValue( completed );
@@ -335,4 +337,11 @@
         return grid;
     }
 
+    public List<ProgramStageInstance> getStatisticalProgramStageDetailsReport( ProgramStage programStage,
+        Collection<Integer> orgunitIds, Date startDate, Date endDate, int status, Integer min, Integer max )
+    {
+        return programStageInstanceStore.getStatisticalProgramStageDetailsReport( programStage, orgunitIds, startDate,
+            endDate, status, min, max );
+    }
+
 }

=== modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java'
--- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java	2012-12-14 07:29:29 +0000
+++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/hibernate/HibernateProgramStageInstanceStore.java	2012-12-17 02:42:30 +0000
@@ -347,42 +347,28 @@
     public int getStatisticalProgramStageReport( ProgramStage programStage, Collection<Integer> orgunitIds,
         Date startDate, Date endDate, int status )
     {
-        Criteria criteria = getCriteria( Restrictions.eq( "programStage", programStage ),
-            Restrictions.isNull( "programInstance.endDate" ) );
-        criteria.createAlias( "programInstance", "programInstance" );
-        criteria.createAlias( "programInstance.patient", "patient" );
-        criteria.createAlias( "patient.organisationUnit", "regOrgunit" );
-        criteria.add( Restrictions.in( "regOrgunit.id", orgunitIds ) );
-
-        switch ( status )
-        {
-        case ProgramStageInstance.COMPLETED_STATUS:
-            criteria.add( Restrictions.eq( "completed", true ) );
-            criteria.add( Restrictions.between( "executionDate", startDate, endDate ) );
-            break;
-        case ProgramStageInstance.VISITED_STATUS:
-            criteria.add( Restrictions.eq( "completed", false ) );
-            criteria.add( Restrictions.between( "executionDate", startDate, endDate ) );
-            break;
-        case ProgramStageInstance.FUTURE_VISIT_STATUS:
-            criteria.add( Restrictions.between( "programInstance.enrollmentDate", startDate, endDate ) );
-            criteria.add( Restrictions.isNull( "executionDate" ) );
-            criteria.add( Restrictions.ge( "dueDate", new Date() ) );
-            break;
-        case ProgramStageInstance.LATE_VISIT_STATUS:
-            criteria.add( Restrictions.between( "programInstance.enrollmentDate", startDate, endDate ) );
-            criteria.add( Restrictions.isNull( "executionDate" ) );
-            criteria.add( Restrictions.lt( "dueDate", new Date() ) );
-            break;
-        default:
-            break;
-        }
+        Criteria criteria = getStatisticalProgramStageCriteria( programStage, orgunitIds, startDate, endDate, status );
 
         Number rs = (Number) criteria.setProjection( Projections.rowCount() ).uniqueResult();
 
         return rs != null ? rs.intValue() : 0;
     }
 
+    @SuppressWarnings( "unchecked" )
+    public List<ProgramStageInstance> getStatisticalProgramStageDetailsReport( ProgramStage programStage,
+        Collection<Integer> orgunitIds, Date startDate, Date endDate, int status, Integer min, Integer max )
+    {
+        Criteria criteria = getStatisticalProgramStageCriteria( programStage, orgunitIds, startDate, endDate, status );
+       
+        if ( min != null && max != null )
+        {
+            criteria.setFirstResult( min );
+            criteria.setMaxResults( max );
+        }
+        
+        return criteria.list();
+    }
+
     // -------------------------------------------------------------------------
     // Supportive methods
     // -------------------------------------------------------------------------
@@ -526,4 +512,41 @@
         return sql;
     }
 
+    private Criteria getStatisticalProgramStageCriteria( ProgramStage programStage, Collection<Integer> orgunitIds,
+        Date startDate, Date endDate, int status )
+    {
+        Criteria criteria = getCriteria( Restrictions.eq( "programStage", programStage ),
+            Restrictions.isNull( "programInstance.endDate" ) );
+        criteria.createAlias( "programInstance", "programInstance" );
+        criteria.createAlias( "programInstance.patient", "patient" );
+        criteria.createAlias( "patient.organisationUnit", "regOrgunit" );
+        criteria.add( Restrictions.in( "regOrgunit.id", orgunitIds ) );
+
+        switch ( status )
+        {
+        case ProgramStageInstance.COMPLETED_STATUS:
+            criteria.add( Restrictions.eq( "completed", true ) );
+            criteria.add( Restrictions.between( "executionDate", startDate, endDate ) );
+            break;
+        case ProgramStageInstance.VISITED_STATUS:
+            criteria.add( Restrictions.eq( "completed", false ) );
+            criteria.add( Restrictions.between( "executionDate", startDate, endDate ) );
+            break;
+        case ProgramStageInstance.FUTURE_VISIT_STATUS:
+            criteria.add( Restrictions.between( "programInstance.enrollmentDate", startDate, endDate ) );
+            criteria.add( Restrictions.isNull( "executionDate" ) );
+            criteria.add( Restrictions.ge( "dueDate", new Date() ) );
+            break;
+        case ProgramStageInstance.LATE_VISIT_STATUS:
+            criteria.add( Restrictions.between( "programInstance.enrollmentDate", startDate, endDate ) );
+            criteria.add( Restrictions.isNull( "executionDate" ) );
+            criteria.add( Restrictions.lt( "dueDate", new Date() ) );
+            break;
+        default:
+            break;
+        }
+
+        return criteria;
+    }
+
 }

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/report/GenerateStatisticalProgramReportAction.java'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/report/GenerateStatisticalProgramReportAction.java	2012-12-14 07:29:29 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/report/GenerateStatisticalProgramReportAction.java	2012-12-17 02:42:30 +0000
@@ -30,9 +30,7 @@
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.HashSet;
-import java.util.Map;
 
 import org.hisp.dhis.common.Grid;
 import org.hisp.dhis.i18n.I18n;
@@ -42,9 +40,7 @@
 import org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager;
 import org.hisp.dhis.program.Program;
 import org.hisp.dhis.program.ProgramInstance;
-import org.hisp.dhis.program.ProgramInstanceService;
 import org.hisp.dhis.program.ProgramService;
-import org.hisp.dhis.program.ProgramStage;
 import org.hisp.dhis.program.ProgramStageInstanceService;
 
 import com.opensymphony.xwork2.Action;
@@ -76,13 +72,6 @@
         this.programService = programService;
     }
 
-    private ProgramInstanceService programInstanceService;
-
-    public void setProgramInstanceService( ProgramInstanceService programInstanceService )
-    {
-        this.programInstanceService = programInstanceService;
-    }
-
     private ProgramStageInstanceService programStageInstanceService;
 
     public void setProgramStageInstanceService( ProgramStageInstanceService programStageInstanceService )
@@ -143,13 +132,6 @@
         this.facilityLB = facilityLB;
     }
 
-    private OrganisationUnit organisationUnit;
-
-    public OrganisationUnit getOrganisationUnit()
-    {
-        return organisationUnit;
-    }
-
     private Collection<ProgramInstance> programInstances = new ArrayList<ProgramInstance>();
 
     public Collection<ProgramInstance> getProgramInstances()
@@ -157,34 +139,13 @@
         return programInstances;
     }
 
-    private Map<Integer, Integer> statusMap = new HashMap<Integer, Integer>();
-
-    public Map<Integer, Integer> getStatusMap()
-    {
-        return statusMap;
-    }
-
-    private Program program;
-
-    public Program getProgram()
-    {
-        return program;
-    }
-
-    private int total;
-
-    public int getTotal()
-    {
-        return total;
-    }
-
     private Grid grid;
 
     public Grid getGrid()
     {
         return grid;
     }
-
+    
     // -------------------------------------------------------------------------
     // Action implementation
     // -------------------------------------------------------------------------
@@ -192,9 +153,9 @@
     public String execute()
         throws Exception
     {
-        organisationUnit = selectionManager.getSelectedOrganisationUnit();
+        OrganisationUnit organisationUnit = selectionManager.getSelectedOrganisationUnit();
 
-        program = programService.getProgram( programId );
+        Program program = programService.getProgram( programId );
 
         Date sDate = format.parseDate( startDate );
 
@@ -205,7 +166,7 @@
         // ---------------------------------------------------------------------
 
         Collection<Integer> orgunitIds = new HashSet<Integer>();
-
+        
         if ( facilityLB.equals( "selected" ) )
         {
             orgunitIds.add( organisationUnit.getId() );

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml	2012-12-14 13:46:47 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml	2012-12-17 02:42:30 +0000
@@ -261,10 +261,20 @@
 		<property name="selectionManager"
 			ref="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
 		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
-		<property name="programInstanceService" ref="org.hisp.dhis.program.ProgramInstanceService" />
-		<property name="organisationUnitService"
-			ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
-		<property name="programStageInstanceService" ref="org.hisp.dhis.program.ProgramStageInstanceService" />
+		<property name="organisationUnitService"
+			ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+		<property name="programStageInstanceService" ref="org.hisp.dhis.program.ProgramStageInstanceService" />
+	</bean>
+	
+	<bean id="org.hisp.dhis.caseentry.action.report.StatisticalProgramDetailsReportAction"
+		class="org.hisp.dhis.caseentry.action.report.StatisticalProgramDetailsReportAction"
+		scope="prototype">
+		<property name="programStageService" ref="org.hisp.dhis.program.ProgramStageService" />
+		<property name="programStageInstanceService" ref="org.hisp.dhis.program.ProgramStageInstanceService" />
+		<property name="organisationUnitService"
+			ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+		<property name="selectionManager"
+			ref="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
 	</bean>
 
 	<!-- Case Aggregation -->

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties	2012-12-14 07:29:29 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties	2012-12-17 02:42:30 +0000
@@ -484,4 +484,5 @@
 percent_completed = Percent Completed
 percent_incomplete = Percent Incomplete
 percent_Scheduled = Percent scheduled
-percent_overdue = Percent Overdue
\ No newline at end of file
+percent_overdue = Percent Overdue
+scheduled = Scheduled
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/struts.xml'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/struts.xml	2012-12-14 07:29:29 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/struts.xml	2012-12-17 02:42:30 +0000
@@ -346,7 +346,14 @@
 		<action name="generateStatisticalProgramReport"
 			class="org.hisp.dhis.caseentry.action.report.GenerateStatisticalProgramReportAction">
 			<result name="success" type="velocity">/content.vm</result>
-			<param name="page">/dhis-web-commons/ajax/htmlGrid.vm</param>
+			<param name="page">/dhis-web-caseentry/statisticalProgramReport.vm</param>
+			<param name="requiredAuthorities">F_GENERATE_STATISTICAL_PROGRAM_REPORT</param>
+		</action>
+		
+		<action name="statisticalProgramDetailsReport"
+			class="org.hisp.dhis.caseentry.action.report.StatisticalProgramDetailsReportAction">
+			<result name="success" type="velocity">/content.vm</result>
+			<param name="page">/dhis-web-caseentry/statisticalProgramDetailsReport.vm</param>
 			<param name="requiredAuthorities">F_GENERATE_STATISTICAL_PROGRAM_REPORT</param>
 		</action>
 		

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/statisticalReport.js'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/statisticalReport.js	2012-12-14 05:49:05 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/statisticalReport.js	2012-12-17 02:42:30 +0000
@@ -1,3 +1,4 @@
+isAjax = true;
 function organisationUnitSelected( orgUnits, orgUnitNames )
 {
     setFieldValue( 'orgunitname', orgUnitNames[0] );
@@ -7,18 +8,68 @@
 
 function generatedStatisticalProgramReport()
 {
-	showLoader();
-	
-	jQuery( "#contentDiv" ).load( "generateStatisticalProgramReport.action",
-	{
-		programId: getFieldValue( 'programId' ),
+	hideById('backBtn');
+	hideById('statisticalReportDiv');
+	hideById('detailsDiv');
+	showLoader();
+	jQuery( "#statisticalReportDiv" ).load( "generateStatisticalProgramReport.action",
+	{
+		programId: getFieldValue('programId'),
+		startDate: getFieldValue('startDate'),
+		endDate: getFieldValue( 'endDate' ),
+		facilityLB: $('input[name=facilityLB]:checked').val()
+	}, function() 
+	{ 
+		setTableStyles();
+		hideById('reportForm');
+		showById('statisticalReportDiv');
+		showById('reportTbl');
+		hideLoader();
+	});
+}
+
+function statisticalProgramDetailsReport( programStageId, status, total )
+{
+	showLoader();
+	hideById( 'reportTbl' );
+	hideById( 'detailsDiv' );
+	contentDiv = 'detailsDiv';
+	jQuery( "#detailsDiv" ).load( "statisticalProgramDetailsReport.action",
+	{
+		programStageId: programStageId,
 		startDate: getFieldValue( 'startDate' ),
 		endDate: getFieldValue( 'endDate' ),
+		status:status,
+		total: total,
 		facilityLB: $('input[name=facilityLB]:checked').val()
 	}, function() 
 	{ 
-		setTableStyles();
+		setFieldValue('status',status);
+		setFieldValue('total',total);
+		var subTitle = getFieldValue("programStageName") 
+			+ " - " + getStatusString( status ) 
+			+ " - " + i18n_total_result + ": " + total;
+		setInnerHTML('gridSubtitleDetails', subTitle );
+		showById( 'detailsDiv');
+		showById('backBtn');
 		hideLoader();
-		showById( 'contentDiv' );
 	});
-}
\ No newline at end of file
+}
+
+function getStatusString( status )
+{
+	switch(status){
+		case 1: return i18n_completed;
+		case 2: return i18n_incomplete;
+		case 3: return i18n_scheduled;
+		case 4: return i18n_overdue;
+		default: return "";
+	}
+}
+
+function backOnClick()
+{
+	hideById('backBtn');
+	showById('reportTbl');
+	hideById('detailsDiv');
+}

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/listPatient.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/listPatient.vm	2012-12-14 17:07:44 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/listPatient.vm	2012-12-17 02:42:30 +0000
@@ -22,7 +22,7 @@
 </table>
 
 <br> 
-<table>
+<table class="mainPageTable">
 <tr><td>
 <table class="listTable">  
 	<colgroup>

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/statisticalProgramReportSelect.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/statisticalProgramReportSelect.vm	2012-12-14 05:49:05 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/statisticalProgramReportSelect.vm	2012-12-17 02:42:30 +0000
@@ -8,72 +8,70 @@
 </script>
 
 <h3>$i18n.getString( "statistical_program_report" )</h3>
+
+<p>
+	<input type="button" onclick="showById('reportForm');" value="$i18n.getString('data')">
+	<input type="button" id="backBtn" name="backBtn" onclick="backOnClick();" value="$i18n.getString('back')" class="hidden">
+</p>
+
 <form id="reportForm" name="reportForm" method="post">
-
-<div class="inputCriteria" style="width:600px;height:180px;margin-bottom:20px;">
-
-<table>	
-    <tr>
-	  <td><label>$i18n.getString( "orgunit_boundary" )</label></td>
-	  <td><input type="text" readonly="readonly" id='orgunitname' name='orgunitname' #if($!orgunit) value="$!orgunit.name" #else value="[$i18n.getString( 'please_select' )]" #end ></td>
-    </tr>
-    
-    <tr>
-        <td><label for="programId">$i18n.getString( "program" ) <em title="$i18n.getString( 'required' )" class="required">*</em></label></td>
-        <td>
-            <select id="programId" name="programId" #if($!programs) #else disabled #end class="{validate:{required:true}}" >
-				<option value=''>[$i18n.getString('please_select_a_program')]</option>
-				#foreach( $program in $programs )
-				<option value='$program.id'>$program.name</option>
-				#end
-			</select>
-        </td>
-    </tr>
-        
-    <tr>
-        <td><label>$i18n.getString( "start_date" ) <em title="$i18n.getString( 'required' )" class="required">*</em></label></td>
-        <td>
-            <input type="text" id="startDate" name="startDate" />
-        </td>
-    </tr>
-    
-    <tr>
-        <td><label>$i18n.getString( "end_date" ) <em title="$i18n.getString( 'required' )" class="required">*</em></label></td>
-        <td>
-            <input type="text" id="endDate" name="endDate" />
-        </td>      
-    </tr>
-	
-	<tr>
-		<td>$i18n.getString('use_data_from_level')</td>
-		<td>
-			<input type="radio" id='facilityLB1' name="facilityLB" value="selected" checked> $i18n.getString('selected')
-			<input type="radio" id='facilityLB2' name="facilityLB" value="childrenOnly"> $i18n.getString('children_only')
-			<input type="radio" id='facilityLB3' name="facilityLB" value="all"> $i18n.getString('all')
-		</td>
-	</tr>
-    
-    <tr>
-    	<td></td>
-    	<td><input type="submit" id='generateBtn' name='generateBtn' #if($!programs) #else disabled #end value="$i18n.getString( 'generate' )" style="width:10em" />
-    		<input type="button" value="$i18n.getString( 'cancel' )" onclick="window.location.href='index.action'" style="width:10em"/>
-    	</td>
-    </tr>	                		
-</table>
-
-</div>
-
+	<input type="hidden" id="status" name="status">
+	<input type="hidden" id="total" name="total">
+	<div class="inputCriteria" style="width:600px;height:180px;margin-bottom:20px;">
+		<table>	
+			<tr>
+			  <td><label>$i18n.getString( "orgunit_boundary" )</label></td>
+			  <td><input type="text" readonly="readonly" id='orgunitname' name='orgunitname' #if($!orgunit) value="$!orgunit.name" #else value="[$i18n.getString( 'please_select' )]" #end ></td>
+			</tr>
+			<tr>
+				<td><label for="programId">$i18n.getString( "program" ) <em title="$i18n.getString( 'required' )" class="required">*</em></label></td>
+				<td>
+					<select id="programId" name="programId" #if($!programs) #else disabled #end class="{validate:{required:true}}" >
+						<option value=''>[$i18n.getString('please_select_a_program')]</option>
+						#foreach( $program in $programs )
+						<option value='$program.id'>$program.name</option>
+						#end
+					</select>
+				</td>
+			</tr>
+			<tr>
+				<td><label>$i18n.getString( "start_date" ) <em title="$i18n.getString( 'required' )" class="required">*</em></label></td>
+				<td>
+					<input type="text" id="startDate" name="startDate" />
+				</td>
+			</tr>
+			<tr>
+				<td><label>$i18n.getString( "end_date" ) <em title="$i18n.getString( 'required' )" class="required">*</em></label></td>
+				<td>
+					<input type="text" id="endDate" name="endDate" />
+				</td>      
+			</tr>
+			<tr>
+				<td>$i18n.getString('use_data_from_level')</td>
+				<td>
+					<input type="radio" id='facilityLB1' name="facilityLB" value="selected" checked> $i18n.getString('selected')
+					<input type="radio" id='facilityLB2' name="facilityLB" value="childrenOnly"> $i18n.getString('children_only')
+					<input type="radio" id='facilityLB3' name="facilityLB" value="all"> $i18n.getString('all')
+				</td>
+			</tr>
+			<tr>
+				<td></td>
+				<td><input type="submit" id='generateBtn' name='generateBtn' #if($!programs) #else disabled #end value="$i18n.getString( 'generate' )" style="width:10em" />
+					<input type="button" value="$i18n.getString( 'cancel' )" onclick="hideById('reportForm');" style="width:10em"/>
+				</td>
+			</tr>	                		
+		</table>
+	</div>
 </form>
 
+<div id="statisticalReportDiv"></div>
+
 #parse( "dhis-web-commons/loader/loader.vm" )
 
-<div id="contentDiv"></div>
-
 <script type="text/javascript">   
-    var i18n_report_generation_failed = '$encoder.jsEscape( $i18n.getString( "report_generation_failed" ), "'")';    
-	var i18n_please_select_a_program = '[' + '$encoder.jsEscape( $i18n.getString( "please_select_a_program" ), "'")' + ']'; 
-	var i18n_reports = '$encoder.jsEscape( $i18n.getString( "reports" ), "'")';    	
-	var i18n_patient_profile = '$encoder.jsEscape( $i18n.getString( "patient_profile" ), "'")';    	
-	var i18n_show_all_items = '$encoder.jsEscape( $i18n.getString( "show_all_items" ), "'")';    	
-	var i18n_color_quick_help = '$encoder.jsEscape( $i18n.getString( "color_quick_help" ) , "'")';
+    var i18n_completed = '$encoder.jsEscape( $i18n.getString( "completed" ), "'")'; 
+	var i18n_incomplete = '$encoder.jsEscape( $i18n.getString( "incomplete" ), "'")';    	
+	var i18n_scheduled = '$encoder.jsEscape( $i18n.getString( "scheduled" ), "'")';    	
+	var i18n_overdue = '$encoder.jsEscape( $i18n.getString( "overdue" ), "'")';   
+	var i18n_total_result = '$encoder.jsEscape( $i18n.getString( "total_result" ), "'")'; 	
 </script>   

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/style/style.css'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/style/style.css	2012-12-14 17:07:44 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/style/style.css	2012-12-17 02:42:30 +0000
@@ -500,7 +500,6 @@
 
 .gridTable th, .gridTable td {
     line-height: 170%;
-    text-align: center;
     width: 150px;
 }