← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 4922: Merge linelisting module from 2.3 to trunk

 

------------------------------------------------------------
revno: 4922
committer: Mithilesh Kumar Thakur<mithilesh.hisp@xxxxxxxxx>
branch nick: dhis2
timestamp: Thu 2011-10-13 14:43:08 +0530
message:
  Merge linelisting module from 2.3 to trunk
modified:
  local/in/dhis-web-dataentry-linelisting/src/main/java/org/hisp/dhis/den/action/RemoveLLRecordAction.java
  local/in/dhis-web-dataentry-linelisting/src/main/java/org/hisp/dhis/den/api/LLDataSets.java
  local/in/dhis-web-dataentry-linelisting/src/main/java/org/hisp/dhis/den/impl/HibernateLLDataValueStore.java
  local/in/dhis-web-dataentry-linelisting/src/main/webapp/dhis-web-dataentry-national/javascript/general.js
  local/in/dhis-web-dataentry-linelisting/src/main/webapp/dhis-web-dataentry-national/llbirthForm.vm
  local/in/dhis-web-dataentry-linelisting/src/main/webapp/dhis-web-dataentry-national/llidspl.vm
  local/in/dhis-web-reports-national/src/main/java/org/hisp/dhis/reports/activeplan/action/ActivePlanReportsResultAction.java
  local/in/dhis-web-reports-national/src/main/java/org/hisp/dhis/reports/portal/action/PortalReportsResultAction.java
  local/in/dhis-web-reports-national/src/main/webapp/dhis-web-reports/portalReportForm.vm


--
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 'local/in/dhis-web-dataentry-linelisting/src/main/java/org/hisp/dhis/den/action/RemoveLLRecordAction.java'
--- local/in/dhis-web-dataentry-linelisting/src/main/java/org/hisp/dhis/den/action/RemoveLLRecordAction.java	2010-06-04 11:50:05 +0000
+++ local/in/dhis-web-dataentry-linelisting/src/main/java/org/hisp/dhis/den/action/RemoveLLRecordAction.java	2011-10-13 09:13:08 +0000
@@ -33,6 +33,8 @@
 
     public String execute() throws Exception
     {
+        System.out.println("Inside remove ll record action");
+        
         lldataValueService.removeLLRecord( recordId );
 
         return SUCCESS;

=== modified file 'local/in/dhis-web-dataentry-linelisting/src/main/java/org/hisp/dhis/den/api/LLDataSets.java'
--- local/in/dhis-web-dataentry-linelisting/src/main/java/org/hisp/dhis/den/api/LLDataSets.java	2010-06-04 11:50:05 +0000
+++ local/in/dhis-web-dataentry-linelisting/src/main/java/org/hisp/dhis/den/api/LLDataSets.java	2011-10-13 09:13:08 +0000
@@ -35,9 +35,21 @@
     public static final String LL_UU_IDSP_EVENTS = "Line listing Unusual IDSP events- FormS";
     public static final String LL_UU_IDSP_EVENTSP = "Line listing Unusual IDSP events- FormP";
     public static final String LL_DEATHS_IDSP = "Line listing Deaths IDSP";
-    public static final String LL_IDSP_LAB = "Line listing IDSP Lab Positive Test Cases";
+    public static final String LL_IDSP_LAB = "Line Listing IDSP Lab";
+    public static final String LL_COLD_CHAIN = "Line listing  Cold Chain";
 
     //----------------------------------------------------------------
+    // LineListing Cold Chain
+    //----------------------------------------------------------------
+    //public static final int LLCC_EQUIPMENT = ;
+    //public static final int LLCC_MACHINE =;
+    //public static final int LLCC_MACHINE_WORKING =;
+    //public static final int LLCC_BREAKDOWN_DATE =;
+    //public static final int LLCC_INTIMATION_DATE =;
+    //public static final int LLCC_REPAIR_DATE =;
+    //public static final int LLCC_REMARKS =;
+    
+    //----------------------------------------------------------------
     // LineListing IDSP LAB
     //----------------------------------------------------------------
     public static final int LLIDSPL_PATIENT_NAME = 1053;

=== modified file 'local/in/dhis-web-dataentry-linelisting/src/main/java/org/hisp/dhis/den/impl/HibernateLLDataValueStore.java'
--- local/in/dhis-web-dataentry-linelisting/src/main/java/org/hisp/dhis/den/impl/HibernateLLDataValueStore.java	2011-10-07 12:25:01 +0000
+++ local/in/dhis-web-dataentry-linelisting/src/main/java/org/hisp/dhis/den/impl/HibernateLLDataValueStore.java	2011-10-13 09:13:08 +0000
@@ -2375,45 +2375,7 @@
 
         return deValueMap;
     }
- /*  
-    public void removeLLRecord( int recordNo )
-    {
-        //Connection con = sessionFactory.getCurrentSession().connection();
-
-        //PreparedStatement pst = null;
-
-        //String query = "DELETE from lldatavalue WHERE recordno = " + recordNo;
-
-        try
-        {
-           // Connection con = jdbcTemplate.getDataSource().getConnection();
-            
-            //pst = con.prepareStatement( query );
-
-            //pst.executeUpdate();
-            //int sqlResult = jdbcTemplate.update( query );
-        }
-        catch ( Exception e )
-        {
-            System.out.println( "SQL Exception while deleting : " + e.getMessage() );
-        }
-        finally
-        {
-            try
-            {
-                //if ( pst != null )
-                 //   pst.close();
-
-                // if ( con != null )
-                // con.close();
-            }
-            catch ( Exception e )
-            {
-                System.out.println( "Exception while closing DB Connections : " + e.getMessage() );
-            }
-        }
-    }
- */   
+   
     public void removeLLRecord( int recordNo )
     {
         String query = "DELETE from lldatavalue WHERE recordno = " + recordNo;

=== modified file 'local/in/dhis-web-dataentry-linelisting/src/main/webapp/dhis-web-dataentry-national/javascript/general.js'
--- local/in/dhis-web-dataentry-linelisting/src/main/webapp/dhis-web-dataentry-national/javascript/general.js	2010-06-04 11:50:05 +0000
+++ local/in/dhis-web-dataentry-linelisting/src/main/webapp/dhis-web-dataentry-national/javascript/general.js	2011-10-13 09:13:08 +0000
@@ -71,6 +71,426 @@
     return stringToTrim.replace(/^\s+|\s+$/g,"");
 }
 
+//-----------------------------------------------------------------------------
+//Linelisting IDSP Form L Related Methods for Validation
+//-----------------------------------------------------------------------------
+
+function isIDSPLDaignosisFieldEntered( )
+{
+    if(lastRecordNo == -1) return true;
+
+    var dataElementId = 1058;
+    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + lastRecordNo + '].value' );
+    var resVal = field.selectedIndex;
+
+    if( resVal <= 0 )
+    {
+        alert("Please enter Diagnosis Field in Previous Record" );
+        return false;
+    }
+    else
+    {
+        return true;
+    }
+}
+
+function validateIDSPLNameField( dataElementId, recordNo )
+{
+    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
+    var resVal = field.value;
+    resVal = resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
+
+    if( isIDSPLDaignosisFieldEntered() )
+    {
+        if(resVal == null || resVal == "" )
+        {
+            alert("Please enter name");
+            field.value = "";
+            //field.focus();
+            setTimeout(function(){
+                field.focus();field.select();
+            },2);
+            return false;
+        }
+        if (isInteger(resVal))
+        {
+            alert("For Name field Only Digits are not Allowed");
+            field.value = "";
+            setTimeout(function(){
+                field.focus();field.select();
+            },2);
+            return false;
+        }
+        if(havingSpecialChar(resVal))
+        {
+            alert("For Name field special characters are not allowed");
+            field.value = "";
+            setTimeout(function(){
+                field.focus();field.select();
+            },2);
+            return false;
+        }
+        if(isFirstLetter(resVal))
+        {
+            alert("Name field should start with Letter");
+            field.value = "";
+            setTimeout(function(){
+                field.focus();field.select();
+            },2);
+            return false;
+        }
+        else
+        {
+            saveLLbirthValue( dataElementId, recordNo );
+            document.getElementById(recordNo).style.display = 'block';
+            document.getElementById('actions').style.display = 'block';
+        }
+    }
+    else
+    {
+        field.value = "";
+
+        return false;
+    }
+}
+
+
+function isIDSPLNameFiledEntered( recordNo )
+{
+    var dataElementId = 1053;
+    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
+    var resVal = field.value;
+
+    if(resVal == null || resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '') == "" )
+    {
+        alert("Please enter NAME");
+        field.focus();
+        field.select();
+        return false;
+    }
+    else
+    {
+        return true;
+    }
+}
+
+function validateIDSPLAgeField( dataElementId, recordNo )
+{
+    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
+    var resVal = field.value;
+    var resVal = resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
+  
+    if( isIDSPLNameFiledEntered( recordNo ) )
+    {
+        if(resVal == null || resVal == "" )
+        {
+            field.value = "";
+            setTimeout(function(){
+                field.focus();field.select();
+            },2);
+	    
+            return false;
+        }
+  
+        if( isInteger( resVal) )
+        {
+            saveLLbirthValue( dataElementId, recordNo );
+            document.getElementById(recordNo).style.display = 'block';
+            document.getElementById('actions').style.display = 'block';
+        }
+        else
+        {
+            alert("Please enter valid AGE");
+            field.value = "";
+            setTimeout(function(){
+                field.focus();field.select();
+            },2);
+	    
+            return false;
+        }
+    }
+    else
+    {
+        field.value = "";
+    
+        return false;
+    }
+}
+
+function isIDSPLAgeFiledEntered( recordNo )
+{
+    var dataElementId = 1055;
+    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
+    var resVal = field.value;
+
+    if(resVal == null || resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '') == "" )
+    {
+        alert("Please enter AGE");
+        field.focus();
+        field.select();
+        return false;
+    }
+    else
+    {
+        return true;
+    }
+}
+
+function validateIDSPLSexField( dataElementId, recordNo )
+{
+    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
+    var resVal = field.selectedIndex;
+
+    if( isIDSPLAgeFiledEntered( recordNo ) )
+    {
+        if(resVal <= 0 || resVal == "---")
+        {
+            alert("Please Select Sex");
+            field.options[0].selected = false;
+
+            setTimeout(function(){
+                field.focus();field.select();
+            },2);
+            return false;
+        }
+        else
+        {
+            saveLLbirthValue( dataElementId, recordNo );
+            document.getElementById(recordNo).style.display = 'block';
+            document.getElementById('actions').style.display = 'block';
+        }
+    }
+    else
+    {
+        field.options[0].selected = true;
+
+        return false;
+    }
+}
+
+function isIDSPLSexFieldEntered( recordNo )
+{
+    var dataElementId = 1054;
+    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
+    var resVal = field.selectedIndex;
+    
+    if(resVal <= 0 || resVal == "---")
+    {
+        alert("Please enter SEX ");
+        field.focus();
+        return false
+    }
+  
+    return true;
+}
+
+function validateIDSPLAddressField( dataElementId, recordNo )
+{
+    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
+    var resVal = field.value;
+    resVal = resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
+
+    if(isIDSPLSexFieldEntered( recordNo ))
+    {
+        if(resVal == null || resVal == "" )
+        {
+            alert("Please enter Address");
+            field.value = "";
+            setTimeout(function(){
+                field.focus();
+                field.select();
+            },2);
+            return false;
+        }
+        if (isInteger(resVal))
+        {
+            alert("For Address field Only Digits are not Allowed");
+            field.value = "";
+            setTimeout(function(){
+                field.focus();
+                field.select();
+            },2);
+            return false;
+        }
+        if(isVillageNotValid(resVal))
+        {
+            alert("Please enter valid Address, only . - _ / special chars are allowed");
+            field.value = "";
+            setTimeout(function(){
+                field.focus();field.select();
+            },2);
+            return false;
+        }
+        else
+        {
+            saveLLbirthValue( dataElementId, recordNo );
+            document.getElementById(recordNo).style.display = 'block';
+            document.getElementById('actions').style.display = 'block';
+        }
+    }
+    else
+    {
+        field.value = "";
+
+        return false;
+    }
+}
+
+function isIDSPLAddressFiledEntered( recordNo )
+{
+    var dataElementId = 1056;
+    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
+    var resVal = field.value;
+
+    if(resVal == null || resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '') == "" )
+    {
+        alert("Please enter ADDRESS");
+        field.focus();
+        field.select();
+        return false;
+    }
+    else
+    {
+        return true;
+    }
+}
+
+function validateIDSPLTestField( dataElementId, recordNo )
+{
+    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
+    var resVal = field.value;
+    resVal = resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
+
+    if( isIDSPLAddressFiledEntered( recordNo ) )
+    {
+        if(resVal == null || resVal == "" )
+        {
+            alert("Please enter Test");
+            field.value = "";
+            setTimeout(function(){
+                field.focus();field.select();
+            },2);
+            return false;
+        }
+        if (isInteger(resVal))
+        {
+            alert("For Test field Only Digits are not Allowed");
+            field.value = "";
+            setTimeout(function(){
+                field.focus();field.select();
+            },2);
+            return false;
+        }
+        if(havingSpecialChar(resVal))
+        {
+            alert("For Test field special characters are not allowed");
+            field.value = "";
+            setTimeout(function(){
+                field.focus();field.select();
+            },2);
+            return false;
+        }
+        if(isFirstLetter(resVal))
+        {
+            alert("Test field should start with Letter");
+            field.value = "";
+            setTimeout(function(){
+                field.focus();field.select();
+            },2);
+            return false;
+        }
+        else
+        {
+            saveLLbirthValue( dataElementId, recordNo );
+            document.getElementById(recordNo).style.display = 'block';
+            document.getElementById('actions').style.display = 'block';
+        }
+    }
+    else
+    {
+        field.value = "";
+        return false;
+    }
+}
+
+function isIDSPLTestFieldEntered( recordNo )
+{
+    var dataElementId = 1057;
+    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
+    var resVal = field.value;
+
+    if(resVal == null || resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '') == "" )
+    {
+        alert("Please enter TEST");
+        field.focus();
+        field.select();
+        return false;
+    }
+    else
+    {
+        return true;
+    }
+}
+
+function validateIDSPLDaignosisField( dataElementId, recordNo )
+{
+    var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].value' );
+    var resVal = field.value;
+    resVal = resVal.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
+
+    if( isIDSPLTestFieldEntered( recordNo ) )
+    {
+        if(resVal == null || resVal == "" )
+        {
+            alert("Please enter Diagnosis");
+            field.value = "";
+            setTimeout(function(){
+                field.focus();field.select();
+            },2);
+            return false;
+        }
+        if (isInteger(resVal))
+        {
+            alert("For Diagnosis field Only Digits are not Allowed");
+            field.value = "";
+            setTimeout(function(){
+                field.focus();field.select();
+            },2);
+            return false;
+        }
+        if(havingSpecialChar(resVal))
+        {
+            alert("For Diagnosis field special characters are not allowed");
+            field.value = "";
+            setTimeout(function(){
+                field.focus();field.select();
+            },2);
+            return false;
+        }
+        if(isFirstLetter(resVal))
+        {
+            alert("Diagnosis field should start with Letter");
+            field.value = "";
+            setTimeout(function(){
+                field.focus();field.select();
+            },2);
+            return false;
+        }
+        else
+        {
+            saveLLbirthValue( dataElementId, recordNo );
+            //document.getElementById(recordNo).style.display = 'block';
+           // document.getElementById('actions').style.display = 'block';
+        }
+        addLLIDSPLNewRow( resVal, 1053, recordNo );
+    }
+    else
+    {
+        field.value = "";
+        return false;
+    }
+}
+
 // -----------------------------------------------------------------------------
 // Linelisting LiveBirth Related Methods for Validation
 // -----------------------------------------------------------------------------
@@ -1558,7 +1978,11 @@
     
     field.style.backgroundColor = '#ffffcc';
     
-    if(dataElementId == 1022 || dataElementId == 1025 || dataElementId == 1029 || dataElementId == 1030 || dataElementId == 1031 || dataElementId == 1035 || dataElementId == 1036 || dataElementId == 1037 || dataElementId == 1038 || dataElementId == 1039 || dataElementId == 1040 || dataElementId == 1043 || dataElementId == 1046 || dataElementId == 1050 || dataElementId == 1051 || dataElementId == 1052 || dataElementId == 1054)
+    if(dataElementId == 1022 || dataElementId == 1025 || dataElementId == 1029 || dataElementId == 1030 || dataElementId == 1031 || 
+    		dataElementId == 1035 || dataElementId == 1036 || dataElementId == 1037 || dataElementId == 1038 || 
+    		dataElementId == 1039 || dataElementId == 1040 || dataElementId == 1043 || dataElementId == 1046 || 
+    		dataElementId == 1050 || dataElementId == 1051 || dataElementId == 1052 || dataElementId == 1054
+    		)
     {
         resVal = field.options[field.selectedIndex].value;
         if(resVal == "NONE") return;
@@ -1994,7 +2418,7 @@
     if ( result )
     {
         //window.location.href = 'delLLRecord.action?recordId=' + nextRecordNo;
-        document.delForm.recordId.value = nextRecordNo;
+        document.getElementById("recordId").value = nextRecordNo;
         document.delForm.submit();
     }
 }

=== modified file 'local/in/dhis-web-dataentry-linelisting/src/main/webapp/dhis-web-dataentry-national/llbirthForm.vm'
--- local/in/dhis-web-dataentry-linelisting/src/main/webapp/dhis-web-dataentry-national/llbirthForm.vm	2011-06-24 07:27:57 +0000
+++ local/in/dhis-web-dataentry-linelisting/src/main/webapp/dhis-web-dataentry-national/llbirthForm.vm	2011-10-13 09:13:08 +0000
@@ -90,7 +90,7 @@
 #foreach( $mapKey in $mapKeys)
     <tr>
     #set($llDataValues = $lldataValueMap.get($mapKey))
-    #set($count1 = 1)   
+    #set($count1 = 1)
     #foreach( $llDataValue in $llDataValues)
         #if($count1 == 3)
             <td>

=== modified file 'local/in/dhis-web-dataentry-linelisting/src/main/webapp/dhis-web-dataentry-national/llidspl.vm'
--- local/in/dhis-web-dataentry-linelisting/src/main/webapp/dhis-web-dataentry-national/llidspl.vm	2010-06-04 11:50:05 +0000
+++ local/in/dhis-web-dataentry-linelisting/src/main/webapp/dhis-web-dataentry-national/llidspl.vm	2011-10-13 09:13:08 +0000
@@ -1,64 +1,86 @@
+
+<form id="delForm" name="delForm" action="delLLRecord.action" method="post">
+    <input type="hidden" name="recordId" id="recordId" />
+</form>
+
 #set($recordNo = $maxRecordNo + 1)
+#set($lastRecord = -1)
 
 <script>
-	var nextRecordNo = $recordNo;
-	var nextFlag = 0;
+    var nextRecordNo = $recordNo;
+    var nextFlag = 0;
+    
+    var slnos = $recordNos.size()+1;    
+    var lastRecordNo = -1;
 	
-	function addLLIDSPLNewRow()
+	function addLLIDSPLNewRow( thisValue, dataElementId, recordNo )
 	{
-		if(nextFlag == 0)
-		{
-		   nextFlag = 1;
-		}
-		else
-		{
-		    return;
-		}
+        var field = document.getElementById( 'value[' + dataElementId + '].value:value[' + recordNo + '].slno' );    
+        var resVal = field.innerHTML;
+        
+       if( thisValue <= 0 || slnos != resVal )
+       {
+            return;
+       }
+
+       if( !isIDSPLDaignosisFieldEntered( ) )
+       {
+           return;
+       }
 		
-		nextRecordNo++;
+        lastRecordNo = nextRecordNo;
+        nextRecordNo++;
+        slnos++;
+        
+        var tbl = document.getElementById("tblGrid");
+        var lastRow = tbl.rows.length;
+        var newRow = tbl.insertRow(lastRow);        
 			
-		var tbl = document.getElementById("tblGrid");
-		var lastRow = tbl.rows.length;
-		var newRow = tbl.insertRow(lastRow);		
+        var oCell = newRow.insertCell(0);
+        oCell.innerHTML = "<div id='value[1053].value:value["+nextRecordNo+"].slno' align='center'>" + slnos + "</div>";
             
-    	var oCell = newRow.insertCell(0);
-    	oCell.innerHTML = "<input name='entryfield' id='value[1053].value:value["+nextRecordNo+"].value' type='text' value=' ' onchange='saveLLbirthValue(1053,"+nextRecordNo+")' onkeypress='return keyPress(event, this)' onblur='addLLIDSPLNewRow()' style='width:100% text-align:center'>";
-    
-    	oCell = newRow.insertCell(1);
-    	oCell.innerHTML = "<input name='entryfield' id='value[1055].value:value["+nextRecordNo+"].value' type='text' value=' ' onchange='saveLLbirthValue(1055,"+nextRecordNo+")' onkeypress='return keyPress(event, this)' style='width:100% text-align:center'>";
+    	var oCell = newRow.insertCell(1);    	
+        oCell.innerHTML = "<input name='entryfield' id='value[1053].value:value["+nextRecordNo+"].value' type='text' value='' onchange='validateIDSPLNameField(1053,"+nextRecordNo+")' onkeypress='return keyPress(event, this)' style='width:100% text-align:center'>";
     
     	oCell = newRow.insertCell(2);
-    	oCell.innerHTML = "<select name='entryfield' id='value[1054].value:value["+nextRecordNo+"].value' onchange='saveLLbirthValue(1054,"+nextRecordNo+")' onkeypress='return keyPress(event, this)' style='width:100% text-align:center'><option value='NONE' selected>---</option><option value='M'>Male</option><option value='F'>Female</option></select>";    	
-
+        oCell.innerHTML = "<input name='entryfield' id='value[1055].value:value["+nextRecordNo+"].value' type='text' value='' onchange='validateIDSPLAgeField(1055,"+nextRecordNo+")' onkeypress='return keyPress(event, this)' style='width:100% text-align:center'>";
+    
     	oCell = newRow.insertCell(3);
-    	oCell.innerHTML = "<input name='entryfield' id='value[1056].value:value["+nextRecordNo+"].value' type='text' value=' ' onchange='saveLLbirthValue(1056,"+nextRecordNo+")' onkeypress='return keyPress(event, this)' style='width:100% text-align:center'>";
+        oCell.innerHTML = "<select name='entryfield' id='value[1054].value:value["+nextRecordNo+"].value' onchange='validateIDSPLSexField(1054,"+nextRecordNo+")' onkeypress='return keyPress(event, this)' style='width:100% text-align:center'><option value='NONE' selected>---</option><option value='M'>Male</option><option value='F'>Female</option></select>";        
+
+    	oCell = newRow.insertCell(4);
+        oCell.innerHTML = "<input name='entryfield' id='value[1056].value:value["+nextRecordNo+"].value' type='text' value='' onchange='validateIDSPLAddressField(1056,"+nextRecordNo+")' onkeypress='return keyPress(event, this)' style='width:100% text-align:center'>";
     		    	        	
-    	oCell = newRow.insertCell(4);
-    	oCell.innerHTML = "<input name='entryfield' id='value[1057].value:value["+nextRecordNo+"].value' type='text' value=' ' onchange='saveLLbirthValue(1057,"+nextRecordNo+")' onkeypress='return keyPress(event, this)' style='width:100% text-align:center'>";
-
     	oCell = newRow.insertCell(5);
-    	oCell.innerHTML = "<input name='entryfield' id='value[1058].value:value["+nextRecordNo+"].value' type='text' value=' ' onchange='saveLLbirthValue(1058,"+nextRecordNo+")' onkeypress='return keyPress(event, this)' style='width:100% text-align:center'>";
+        oCell.innerHTML = "<input name='entryfield' id='value[1057].value:value["+nextRecordNo+"].value' type='text' value='' onchange='validateIDSPLTestField(1057,"+nextRecordNo+")' onkeypress='return keyPress(event, this)' style='width:100% text-align:center'>";
+
+    	oCell = newRow.insertCell(6);
+        oCell.innerHTML = "<input name='entryfield' id='value[1058].value:value["+nextRecordNo+"].value' type='text' value='' onchange='validateIDSPLDaignosisField(1058,"+nextRecordNo+")' onkeypress='return keyPress(event, this)' style='width:100% text-align:center'>";
+
+        oCell = newRow.insertCell(7);
+        oCell.innerHTML = "<div id='"+nextRecordNo+"' style='display: none;'><a href='javascript:removeLLRecord( " + nextRecordNo + " )' title='remove'><img src='../images/delete.png' alt='remove'></a></div>";
 
 	}
 </script>
 
 
-
 <div align="center"><h3><u>Line listing IDSP Lab Positive Test Cases</u></h3></div>
 
-
 <table id="tblGrid" width="100%">
 	<tr>
-		<th width="20%">Name of Patient</th>
+		<th width="3%">Sl. No.</th>
+		<th width="17%">Name of Patient</th>
 		<th width="10%">Age</th>
 		<th width="10%">Sex</th>
 		<th width="20%">Address</th>
-		<th width="20%">Name of Test done</th>
+		<th width="18%">Name of Test done</th>
 		<th width="20%">Lab Diagnosis</th>
+		<th width="2%">&nbsp;</th>
 	<tr>
 
 #set($calInfo = "")
 #set( $mapKeys = $recordNos )
+#set($slno = 1)
 #foreach( $mapKey in $mapKeys)
 	<tr>
 	#set($llDataValues = $lldataValueMap.get($mapKey))
@@ -67,31 +89,69 @@
 	#foreach( $llDataValue in $llDataValues)
 		#if($count1 == 3)
 			<td>
-				<select name="entryfield" id="value[$llDataValue.getDataElement().getId()].value:value[$llDataValue.getRecordNo()].value" onchange="saveLLbirthValue($llDataValue.getDataElement().getId(),$llDataValue.getRecordNo())" onkeypress="return keyPress(event, this)" style="width:100% text-align:center">
+				<select name="entryfield" id="value[$llDataValue.getDataElement().getId()].value:value[$llDataValue.getRecordNo()].value" onchange="validateIDSPLSexField($llDataValue.getDataElement().getId(),$llDataValue.getRecordNo())" onkeypress="return keyPress(event, this)" style="width:100% text-align:center">
 					<option value="NONE" #if(!$llDataValue.getValue() || $llDataValue.getValue()=="NONE") selected #end>---</option>
 					<option value="M" #if($llDataValue.getValue() && $llDataValue.getValue()=="M") selected #end>Male</option>
 					<option value="F" #if($llDataValue.getValue() && $llDataValue.getValue()=="F") selected #end>Female</option>
 				</select>
 			</td>			
-		#else
-			<td><input name="entryfield" id="value[$llDataValue.getDataElement().getId()].value:value[$llDataValue.getRecordNo()].value" type="text" value="#if($llDataValue.getValue()) $llDataValue.getValue() #end" onchange="saveLLbirthValue($llDataValue.getDataElement().getId(),$llDataValue.getRecordNo())" onkeypress="return keyPress(event, this)" style="width:100% text-align:center"></td>		
-		#end
+		#elseif($count1 == 1)
+			<td align="center"><div id="value[$llDataValue.getDataElement().getId()].value:value[$llDataValue.getRecordNo()].slno" align='center'>$slno</div></td>
+			<td><input name="entryfield" id="value[$llDataValue.getDataElement().getId()].value:value[$llDataValue.getRecordNo()].value" type="text" value="#if($llDataValue.getValue()) $llDataValue.getValue() #end" onchange="validateIDSPLNameField($llDataValue.getDataElement().getId(),$llDataValue.getRecordNo())" onkeypress="return keyPress(event, this)" style="width:100% text-align:center" #if( $locked ) disabled="disabled"#end></td>		
+        #elseif($count1 == 2)
+            <td><input name="entryfield" id="value[$llDataValue.getDataElement().getId()].value:value[$llDataValue.getRecordNo()].value" type="text" value="#if($llDataValue.getValue()) $llDataValue.getValue() #end" onchange="validateIDSPLAgeField($llDataValue.getDataElement().getId(),$llDataValue.getRecordNo())" onkeypress="return keyPress(event, this)" style="width:100% text-align:center" #if( $locked ) disabled="disabled"#end></td>       
+        #elseif($count1 == 4)
+            <td><input name="entryfield" id="value[$llDataValue.getDataElement().getId()].value:value[$llDataValue.getRecordNo()].value" type="text" value="#if($llDataValue.getValue()) $llDataValue.getValue() #end" onchange="validateIDSPLAddressField($llDataValue.getDataElement().getId(),$llDataValue.getRecordNo())" onkeypress="return keyPress(event, this)" style="width:100% text-align:center" #if( $locked ) disabled="disabled"#end></td>
+        #elseif($count1 == 5)
+            <td><input name="entryfield" id="value[$llDataValue.getDataElement().getId()].value:value[$llDataValue.getRecordNo()].value" type="text" value="#if($llDataValue.getValue()) $llDataValue.getValue() #end" onchange="validateIDSPLTestField($llDataValue.getDataElement().getId(),$llDataValue.getRecordNo())" onkeypress="return keyPress(event, this)" style="width:100% text-align:center" #if( $locked ) disabled="disabled"#end></td>
+        #elseif($count1 == 6)
+            <td><input name="entryfield" id="value[$llDataValue.getDataElement().getId()].value:value[$llDataValue.getRecordNo()].value" type="text" value="#if($llDataValue.getValue()) $llDataValue.getValue() #end" onchange="validateIDSPLDaignosisField($llDataValue.getDataElement().getId(),$llDataValue.getRecordNo())" onkeypress="return keyPress(event, this)" style="width:100% text-align:center" #if( $locked ) disabled="disabled"#end></td>
+			<td #if( $locked ) style="display:none" #end>
+                <a href="#" onclick="javascript:removeLLRecord( '$llDataValue.getRecordNo()' )" title="$i18n.getString( "remove" )" #if( $locked ) disabled="disabled"#end><img src="../images/delete.png" alt="$i18n.getString( "remove" )"></a>
+            </td>
+        #end
 		#set($count1 = $count1+1)
+		#set( $lastRecord = $llDataValue.getRecordNo() )
 	#end
-	</tr>	
+	#set( $slno = $slno + 1 )
+	</tr>
 #end
+
+#if( !$locked )
 <tr>
-	<td><input name="entryfield" id="value[1053].value:value[$recordNo].value" type="text" value=" " onchange="saveLLbirthValue(1053,$recordNo )" onkeypress="return keyPress(event, this)" onblur="addLLIDSPLNewRow()" style="width:100% text-align:center"></td>
-	<td><input name="entryfield" id="value[1055].value:value[$recordNo].value" type="text" value=" " onchange="saveLLbirthValue(1055,$recordNo )" onkeypress="return keyPress(event, this)" style="width:100% text-align:center"></td>
+	<td align="center"><div id='value[1053].value:value[$recordNo].slno' align='center'>$slno</div></td>
+	<td><input name="entryfield" id="value[1053].value:value[$recordNo].value" type="text" value=" " onchange="validateIDSPLNameField(1053,$recordNo )" onkeypress="return keyPress(event, this)" style="width:100% text-align:center"></td>
+	<td><input name="entryfield" id="value[1055].value:value[$recordNo].value" type="text" value=" " onchange="validateIDSPLAgeField(1055,$recordNo )" onkeypress="return keyPress(event, this)" style="width:100% text-align:center"></td>
 	<td>
-		<select name="entryfield" id="value[1054].value:value[$recordNo].value" onchange="saveLLbirthValue(1054,$recordNo)" onkeypress="return keyPress(event, this)" style="width:100% text-align:center">
+		<select name="entryfield" id="value[1054].value:value[$recordNo].value" onchange="validateIDSPLSexField(1054,$recordNo)" onkeypress="return keyPress(event, this)" style="width:100% text-align:center">
 			<option value="NONE" selected>---</option>
 			<option value="M">Male</option>
 			<option value="F">Female</option>
 		</select>		
 	</td>	
-	<td><input name="entryfield" id="value[1056].value:value[$recordNo].value" type="text" value=" " onchange="saveLLbirthValue(1056,$recordNo )" onkeypress="return keyPress(event, this)" style="width:100% text-align:center"></td>
-	<td><input name="entryfield" id="value[1057].value:value[$recordNo].value" type="text" value=" " onchange="saveLLbirthValue(1057,$recordNo )" onkeypress="return keyPress(event, this)" style="width:100% text-align:center"></td>
-	<td><input name="entryfield" id="value[1058].value:value[$recordNo].value" type="text" value=" " onchange="saveLLbirthValue(1058,$recordNo )" onkeypress="return keyPress(event, this)" style="width:100% text-align:center"></td>
-</tr>		
+	<td><input name="entryfield" id="value[1056].value:value[$recordNo].value" type="text" value=" " onchange="validateIDSPLAddressField(1056,$recordNo )" onkeypress="return keyPress(event, this)" style="width:100% text-align:center"></td>
+	<td><input name="entryfield" id="value[1057].value:value[$recordNo].value" type="text" value=" " onchange="validateIDSPLTestField(1057,$recordNo )" onkeypress="return keyPress(event, this)" style="width:100% text-align:center"></td>
+	<td><input name="entryfield" id="value[1058].value:value[$recordNo].value" type="text" value=" " onchange="validateIDSPLDaignosisField(1058,$recordNo )" onkeypress="return keyPress(event, this)" style="width:100% text-align:center" onblur="addLLIDSPLNewRow()" ></td>
+    <td><div id='$recordNo' style="display: none;"><a href="javascript:removeLLRecord( '$recordNo' ) " title="$i18n.getString( "remove" )"><img src="../images/delete.png" alt="$i18n.getString( "remove" )"></a></div></td>   		
+</tr>
+#end		
 </table>
+
+<script type="text/javascript">
+    
+    lastRecordNo = $lastRecord;
+    
+    function onLoad()
+    {
+        var recordSize = $recordNos.size();
+        if( recordSize >= 1)
+        {
+            document.getElementById('actions').style.display = 'block';
+        }
+    }
+</script>
+
+<script type="text/javascript">
+    onLoad();
+    <div id="caleninfo" name="caleninfo">aaa</div>
+</script>
\ No newline at end of file

=== modified file 'local/in/dhis-web-reports-national/src/main/java/org/hisp/dhis/reports/activeplan/action/ActivePlanReportsResultAction.java'
--- local/in/dhis-web-reports-national/src/main/java/org/hisp/dhis/reports/activeplan/action/ActivePlanReportsResultAction.java	2011-07-07 10:56:12 +0000
+++ local/in/dhis-web-reports-national/src/main/java/org/hisp/dhis/reports/activeplan/action/ActivePlanReportsResultAction.java	2011-10-13 09:13:08 +0000
@@ -425,7 +425,7 @@
         inputTemplatePath = System.getenv( "DHIS2_HOME" ) + File.separator + raFolderName + File.separator + "template" + File.separator + reportFileNameTB;
         //outputReportPath = System.getenv( "DHIS2_HOME" ) + File.separator + raFolderName + File.separator + "output" + File.separator + UUID.randomUUID().toString() + ".xls";
 
-        String outputReportPath = System.getenv( "DHIS2_HOME" ) + File.separator +  Configuration_IN.DEFAULT_TEMPFOLDER;
+        outputReportPath = System.getenv( "DHIS2_HOME" ) + File.separator +  Configuration_IN.DEFAULT_TEMPFOLDER;
         File newdir = new File( outputReportPath );
         if( !newdir.exists() )
         {
@@ -1541,3 +1541,5 @@
     }// getDECodes end
 
 }
+
+

=== modified file 'local/in/dhis-web-reports-national/src/main/java/org/hisp/dhis/reports/portal/action/PortalReportsResultAction.java'
--- local/in/dhis-web-reports-national/src/main/java/org/hisp/dhis/reports/portal/action/PortalReportsResultAction.java	2011-09-03 05:48:23 +0000
+++ local/in/dhis-web-reports-national/src/main/java/org/hisp/dhis/reports/portal/action/PortalReportsResultAction.java	2011-10-13 09:13:08 +0000
@@ -311,6 +311,7 @@
     private String inputTemplatePath;
     private String outputReportPath;
     private String deCodesXMLFileName;
+    
     private String startDate;
 
     public void setStartDate( String startDate )
@@ -323,16 +324,49 @@
     {
         this.endDate = endDate;
     }
-    private Boolean includePeriod;
-
-    public void setIncludePeriod( Boolean includePeriod )
+
+    private String includePeriod;
+
+    public void setIncludePeriod( String includePeriod )
     {
         this.includePeriod = includePeriod;
     }
+
+    private String startHour;
+
+    public void setStartHour( String startHour )
+    {
+        this.startHour = startHour;
+    }
+
+    private String startMinute;
+
+    public void setStartMinute( String startMinute )
+    {
+        this.startMinute = startMinute;
+    }
+
+    private String endHour;
+    
+    public void setEndHour( String endHour )
+    {
+        this.endHour = endHour;
+    }
+
+    private String endMinute;
+
+    public void setEndMinute( String endMinute )
+    {
+        this.endMinute = endMinute;
+    }
+
     private int rowCount;
     private Date sDate;
     private Date eDate;
 
+    private long sRegDate;
+    private long eRegDate;
+    
     // -------------------------------------------------------------------------
     // Action implementation
     // -------------------------------------------------------------------------
@@ -354,7 +388,7 @@
         rowList = new ArrayList<Integer>();
         colList = new ArrayList<Integer>();
         progList = new ArrayList<Integer>();
-        if ( includePeriod != null )
+        if ( includePeriod.equalsIgnoreCase( "periodincluding" ) )
         {
             Calendar c = Calendar.getInstance();
             c.setTime( format.parseDate( startDate ) );
@@ -366,6 +400,24 @@
             sDate = format.parseDate( startDate );
             eDate = format.parseDate( endDate );
         }
+        else if ( includePeriod.equalsIgnoreCase( "uploadingmcts" ) )
+        {
+            Calendar c = Calendar.getInstance();
+            c.setTime( format.parseDate( startDate ) );
+            c.set( Calendar.HOUR, Integer.parseInt( startHour ) );
+            c.set( Calendar.MINUTE, Integer.parseInt( startMinute )  );
+            c.set( Calendar.SECOND, 0 );
+            c.set( Calendar.MILLISECOND, 0 );
+            
+            //String tempDate = format.formatDate( c.getTime() );;
+            sRegDate = c.getTimeInMillis();
+            
+            c.setTime( format.parseDate( endDate ) );
+            c.set( Calendar.HOUR, Integer.parseInt( endHour ) );
+            c.set( Calendar.MINUTE, Integer.parseInt( endMinute )  );             
+            eRegDate = c.getTimeInMillis();
+        }
+        
         simpleDateFormat = new SimpleDateFormat( "MMM-yyyy" );
         inputTemplatePath = System.getenv( "DHIS2_HOME" ) + File.separator + raFolderName + File.separator + "template" + File.separator + reportFileNameTB;
         //outputReportPath = System.getenv( "DHIS2_HOME" ) + File.separator + raFolderName + File.separator + "output" + File.separator + UUID.randomUUID().toString() + ".xls";
@@ -564,6 +616,23 @@
                         {
                             Patient patient = patientIterator.next();
                             
+                            if( includePeriod.equalsIgnoreCase( "uploadingmcts" ) )
+                            {
+                                if ( patient.getRegistrationDate() != null )
+                                {
+                                    Calendar c = Calendar.getInstance();
+                                    c.setTime( patient.getRegistrationDate() );
+                                    long regTime = c.getTimeInMillis();
+                                    if ( regTime >= sRegDate && regTime <= eRegDate )
+                                    {
+                                    }
+                                    else
+                                    {
+                                        continue;
+                                    }
+                                }
+                            }
+                            
                             //checking if patient is enrolled to curprog then adding them in one list
                             Collection<ProgramInstance> programInstances = new ArrayList<ProgramInstance>();
                             programInstances = programInstanceService.getProgramInstances( patient, curProgram );
@@ -584,7 +653,7 @@
                                         allProgramStageInstances.add( programStageInstance );
 
                                         //taking programstageinstace which are between startdate and enddate
-                                        if ( includePeriod != null )
+                                        if ( includePeriod.equalsIgnoreCase( "periodincluding" ) )
                                         {
                                             if ( programStageInstance.getExecutionDate() != null )
                                             {
@@ -620,6 +689,23 @@
                     //running patient loop
                     for ( Patient patient : patientList )
                     {
+                        if( includePeriod.equalsIgnoreCase( "uploadingmcts" ) )
+                        {
+                            if ( patient.getRegistrationDate() != null )
+                            {
+                                Calendar c = Calendar.getInstance();
+                                c.setTime( patient.getRegistrationDate() );
+                                long regTime = c.getTimeInMillis();
+                                if ( regTime >= sRegDate && regTime <= eRegDate )
+                                {
+                                }
+                                else
+                                {
+                                    continue;
+                                }
+                            }
+                        }
+
                         ProgramInstance programInstance = patientPIList.get( patient );
 
                         String cAPhoneNumberName = "";
@@ -678,7 +764,7 @@
                                         ProgramStageInstance pStageInstance = programStageInstanceService.getProgramStageInstance( programInstance, programStageService.getProgramStage( psId ) );
                                         if ( pStageInstance != null && ( PIPSIList.get( programInstance ).contains( pStageInstance ) || programInstance.isCompleted() == false ) ) {
                                             if ( pStageInstance.getExecutionDate() != null ) {
-                                                if ( includePeriod != null ) {
+                                                if ( includePeriod.equalsIgnoreCase( "periodincluding" ) ) {
                                                     if ( pStageInstance.getExecutionDate().before( eDate ) ) {
                                                         PatientDataValue patientDataValue1 = patientDataValueService.getPatientDataValue( pStageInstance, d1e, patientOuList.get(patient) );
 
@@ -791,7 +877,7 @@
                                                         {
                                                             SimpleDateFormat simpleLmpDateFormat = new SimpleDateFormat( "dd/MM/yyyy" );
                                                             Date doseDate = simpleLmpDateFormat.parse( str );
-                                                            if ( includePeriod != null )
+                                                            if ( includePeriod.equalsIgnoreCase( "periodincluding" ) )
                                                             {
                                                                 if ( doseDate.before( eDate ) )
                                                                 {
@@ -865,7 +951,7 @@
                                                 ProgramStageInstance psi = programStageInstanceService.getProgramStageInstance( programInstance, ps );
                                                 if ( psi.getExecutionDate() != null )
                                                 {
-                                                    if ( includePeriod != null )
+                                                    if ( includePeriod.equalsIgnoreCase( "periodincluding" ) )
                                                     {
                                                         if ( psi.getExecutionDate().before( eDate ) )
                                                         {
@@ -931,7 +1017,7 @@
                                                     {
                                                         SimpleDateFormat simpleLmpDateFormat = new SimpleDateFormat( "dd/MM/yyyy" );
                                                         Date doseDate = simpleLmpDateFormat.parse( str );
-                                                        if ( includePeriod != null )
+                                                        if ( includePeriod.equalsIgnoreCase( "periodincluding" ) )
                                                         {
                                                             if ( doseDate.before( eDate ) )
                                                             {
@@ -1261,7 +1347,7 @@
                                         allProgramStageInstances.add( programStageInstance );
 
                                         //taking programstageinstace wich are between startdate and enddate
-                                        if ( includePeriod != null )
+                                        if ( includePeriod.equalsIgnoreCase( "periodincluding" ) )
                                         {
                                             if ( programStageInstance.getExecutionDate() != null )
                                             {
@@ -1370,7 +1456,7 @@
                                         ProgramStageInstance pStageInstance = programStageInstanceService.getProgramStageInstance( programInstance, programStageService.getProgramStage( psId ) );
                                         if ( pStageInstance != null && ( PIPSIList.get( programInstance ).contains( pStageInstance ) || programInstance.isCompleted() == false ) ) {
                                             if ( pStageInstance.getExecutionDate() != null ) {
-                                                if ( includePeriod != null ) {
+                                                if ( includePeriod.equalsIgnoreCase( "periodincluding" ) ) {
                                                     if ( pStageInstance.getExecutionDate().before( eDate ) ) {
                                                         PatientDataValue patientDataValue1 = patientDataValueService.getPatientDataValue( pStageInstance, d1e, patientOuList.get(patient) );
 
@@ -1483,7 +1569,7 @@
                                                         {
                                                             SimpleDateFormat simpleLmpDateFormat = new SimpleDateFormat( "dd/MM/yyyy" );
                                                             Date doseDate = simpleLmpDateFormat.parse( str );
-                                                            if ( includePeriod != null )
+                                                            if ( includePeriod.equalsIgnoreCase( "periodincluding" ) )
                                                             {
                                                                 if ( doseDate.before( eDate ) )
                                                                 {
@@ -1557,7 +1643,7 @@
                                                 ProgramStageInstance psi = programStageInstanceService.getProgramStageInstance( programInstance, ps );
                                                 if ( psi.getExecutionDate() != null )
                                                 {
-                                                    if ( includePeriod != null )
+                                                    if ( includePeriod.equalsIgnoreCase( "periodincluding" ) )
                                                     {
                                                         if ( psi.getExecutionDate().before( eDate ) )
                                                         {
@@ -1623,7 +1709,7 @@
                                                     {
                                                         SimpleDateFormat simpleLmpDateFormat = new SimpleDateFormat( "dd/MM/yyyy" );
                                                         Date doseDate = simpleLmpDateFormat.parse( str );
-                                                        if ( includePeriod != null )
+                                                        if ( includePeriod.equalsIgnoreCase( "periodincluding" ) )
                                                         {
                                                             if ( doseDate.before( eDate ) )
                                                             {

=== modified file 'local/in/dhis-web-reports-national/src/main/webapp/dhis-web-reports/portalReportForm.vm'
--- local/in/dhis-web-reports-national/src/main/webapp/dhis-web-reports/portalReportForm.vm	2011-01-10 07:58:36 +0000
+++ local/in/dhis-web-reports-national/src/main/webapp/dhis-web-reports/portalReportForm.vm	2011-10-13 09:13:08 +0000
@@ -17,15 +17,23 @@
 
     function showOrHideDates()
     {
-        var includePeriodChecked = document.getElementById( "includePeriod" ).checked;
+		var criteria = $( "input[name='includePeriod']:checked" ).val();
+        //var includePeriodChecked = document.getElementById( "includePeriod" ).checked;
 
-        if( includePeriodChecked == true )
+        if( criteria == 'periodincluding' )
         {
             jQuery("#periodTR").show();
+			jQuery("#timeTR").hide();
         }
+		else if( criteria == 'uploadingmcts' )
+		{
+		    jQuery("#timeTR").show();
+            jQuery("#periodTR").show();
+		}
         else
         {
             jQuery("#periodTR").hide();
+			jQuery("#timeTR").hide();
         }
     }
 
@@ -88,6 +96,64 @@
 			</td>
 		</tr>
 		<tr>
+            <td>&nbsp;</td>
+            <td>&nbsp;</td>
+        </tr>
+        <tr id="timeTR">
+            <td class="NormalB">
+				<table>
+					<tr>
+						<td>$i18n.getString( 'hour' )</td>
+						<td>&nbsp;</td>
+                        <td>$i18n.getString( 'minute' )</td>
+					</tr>
+					<tr>
+						<td>	
+							<select id="startHour" name="startHour">
+							#foreach( $count in [0..23] )
+								<option value="$count">$count</option>
+							#end
+			                </select>
+						</td>
+						<td>&nbsp;</td>
+						<td>
+			                <select id="startMinute" name="startMinute">
+							#foreach( $count in [0..59] )
+								<option value="$count">$count</option>
+							#end
+							</select>
+						</td>
+					</tr>
+				</table>
+            </td>
+            <td class="NormalB">
+                <table>
+                    <tr>
+                        <td>$i18n.getString( 'hour' )</td>
+						<td>&nbsp;</td>
+                        <td>$i18n.getString( 'minute' )</td>
+                    </tr>
+                    <tr>
+                        <td>    
+                            <select id="endHour" name="endHour">
+                            #foreach( $count in [0..23] )
+                                <option value="$count">$count</option>
+                            #end
+                            </select>
+                        </td>
+						<td>&nbsp;</td>
+                        <td>
+                            <select id="endMinute" name="endMinute">
+                            #foreach( $count in [0..59] )
+                                <option value="$count">$count</option>
+                            #end
+                            </select>
+                        </td>
+                    </tr>
+                </table>
+            </td>
+        </tr>
+		<tr>
 			<td>&nbsp;</td>
 			<td>&nbsp;</td>
 		</tr>
@@ -98,7 +164,9 @@
         <tr>
             <td>&nbsp;</td>
 			<td>
-                <input type="checkbox" name="includePeriod" onChange="return showOrHideDates()" id="includePeriod" checked>Report With Specified Period
+				<input type="radio" id="includePeriod" name="includePeriod" value="periodincluding" onClick="showOrHideDates()" checked> Report With Specified Period<br/>
+				<input type="radio" id="includePeriod" name="includePeriod" value="uploadingmcts" onClick="showOrHideDates()" > For uploading to MCTS<br/>
+				<input type="radio" id="includePeriod" name="includePeriod" value="noperiod" onClick="showOrHideDates()" > No Period
                 <br/><br/>
 				<input type="submit" name="generate" value='Generate Report'/>
 				<input type="hidden" name="ouIDTB" id="ouIDTB">
@@ -115,6 +183,6 @@
 	jQuery( function(){
 			datePickerInRange( "startDate", "endDate", false, false );
 	});
+	
+	showOrHideDates();
 </script>
-
-