dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #14463
[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%"> </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> </td>
+ <td> </td>
+ </tr>
+ <tr id="timeTR">
+ <td class="NormalB">
+ <table>
+ <tr>
+ <td>$i18n.getString( 'hour' )</td>
+ <td> </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> </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> </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> </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> </td>
<td> </td>
</tr>
@@ -98,7 +164,9 @@
<tr>
<td> </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>
-
-