dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #14330
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 4834: Add Test function for patient aggregation into add and update form.
------------------------------------------------------------
revno: 4834
committer: Tran Chau <tran.hispvietnam@xxxxxxxxx>
branch nick: dhis2
timestamp: Wed 2011-10-05 16:19:52 +0700
message:
Add Test function for patient aggregation into add and update form.
added:
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/caseaggregation/TestCaseAggregationConditionAction.java
modified:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/caseaggregation/CaseAggregationConditionService.java
dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/caseaggregation/DefaultCaseAggregationConditionService.java
dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/caseaggregation/jdbc/JdbcCaseAggregationConditionStore.java
dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/CaseAggregationResultAction.java
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/caseaggregation/GetAggConditionDescriptionAction.java
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/META-INF/dhis/beans.xml
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/org/hisp/dhis/patient/i18n_module.properties
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/struts.xml
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/addCaseAggregation.vm
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/caseaggregation.js
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateCaseAggregation.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 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/caseaggregation/CaseAggregationConditionService.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/caseaggregation/CaseAggregationConditionService.java 2011-07-01 07:26:42 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/caseaggregation/CaseAggregationConditionService.java 2011-10-05 09:19:52 +0000
@@ -58,7 +58,7 @@
Collection<CaseAggregationCondition> getCaseAggregationCondition( DataElement dataElement );
- double parseConditition( CaseAggregationCondition aggregationCondition, OrganisationUnit orgunit, Period period );
+ Double parseConditition( CaseAggregationCondition aggregationCondition, OrganisationUnit orgunit, Period period );
Collection<PatientDataValue> getPatientDataValues( CaseAggregationCondition aggregationCondition, OrganisationUnit orgunit, Period period );
=== modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/caseaggregation/DefaultCaseAggregationConditionService.java'
--- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/caseaggregation/DefaultCaseAggregationConditionService.java 2011-10-05 08:42:46 +0000
+++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/caseaggregation/DefaultCaseAggregationConditionService.java 2011-10-05 09:19:52 +0000
@@ -197,13 +197,18 @@
}
@Override
- public double parseConditition( CaseAggregationCondition aggregationCondition, OrganisationUnit orgunit,
+ public Double parseConditition( CaseAggregationCondition aggregationCondition, OrganisationUnit orgunit,
Period period )
{
String sql = createSQL( aggregationCondition, orgunit, period );
Collection<Integer> patientIds = aggregationConditionStore.executeSQL( sql );
+ if ( patientIds == null )
+ {
+ return null;
+ }
+
return calValue( patientIds, aggregationCondition.getOperator() );
}
@@ -292,9 +297,9 @@
else
{
String[] ids = info[1].split( SEPARATOR_ID );
-
- int objectId = Integer.parseInt(ids[0]);
-
+
+ int objectId = Integer.parseInt( ids[0] );
+
if ( info[0].equalsIgnoreCase( OBJECT_PATIENT_ATTRIBUTE ) )
{
PatientAttribute patientAttribute = patientAttributeService.getPatientAttribute( objectId );
@@ -304,7 +309,8 @@
return INVALID_CONDITION;
}
- matcher.appendReplacement( description, "[" + OBJECT_PATIENT_ATTRIBUTE + SEPARATOR_OBJECT + patientAttribute.getName() + "]" );
+ matcher.appendReplacement( description, "[" + OBJECT_PATIENT_ATTRIBUTE + SEPARATOR_OBJECT
+ + patientAttribute.getName() + "]" );
}
else if ( info[0].equalsIgnoreCase( OBJECT_PROGRAM ) )
{
@@ -315,7 +321,8 @@
return INVALID_CONDITION;
}
- matcher.appendReplacement( description, "[" + OBJECT_PROGRAM + SEPARATOR_OBJECT + program.getName() + "]" );
+ matcher.appendReplacement( description, "[" + OBJECT_PROGRAM + SEPARATOR_OBJECT + program.getName()
+ + "]" );
}
}
@@ -663,13 +670,8 @@
return sql;
}
- public double calValue( Collection<Integer> patientIds, String operator )
+ public Double calValue( Collection<Integer> patientIds, String operator )
{
- if ( patientIds == null )
- {
- return 0.0;
- }
-
- return patientIds.size();
+ return new Double( patientIds.size() );
}
}
=== modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/caseaggregation/jdbc/JdbcCaseAggregationConditionStore.java'
--- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/caseaggregation/jdbc/JdbcCaseAggregationConditionStore.java 2011-06-24 07:55:22 +0000
+++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/caseaggregation/jdbc/JdbcCaseAggregationConditionStore.java 2011-10-05 09:19:52 +0000
@@ -94,7 +94,6 @@
}
catch ( Exception ex )
{
- ex.printStackTrace();
return null;
}
finally
=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/CaseAggregationResultAction.java'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/CaseAggregationResultAction.java 2011-07-15 03:35:57 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/caseaggregation/CaseAggregationResultAction.java 2011-10-05 09:19:52 +0000
@@ -236,13 +236,13 @@
{
String message = i18n.getString( "in" ) + " " + format.formatPeriod( period );
- double resultValue = aggregationConditionService.parseConditition( condition, orgUnit,
+ Double resultValue = aggregationConditionService.parseConditition( condition, orgUnit,
period );
DataValue dataValue = dataValueService
.getDataValue( orgUnit, dElement, period, optionCombo );
- if ( resultValue != 0 )
+ if ( resultValue != null && resultValue != 0.0 )
{
if ( dataValue == null )
{
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/caseaggregation/GetAggConditionDescriptionAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/caseaggregation/GetAggConditionDescriptionAction.java 2011-03-31 01:42:05 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/caseaggregation/GetAggConditionDescriptionAction.java 2011-10-05 09:19:52 +0000
@@ -45,7 +45,7 @@
private CaseAggregationConditionService aggregationConditionService;
// -------------------------------------------------------------------------
- // Getters && Setters
+ // Input && Output
// -------------------------------------------------------------------------
private String condition;
=== added file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/caseaggregation/TestCaseAggregationConditionAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/caseaggregation/TestCaseAggregationConditionAction.java 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/caseaggregation/TestCaseAggregationConditionAction.java 2011-10-05 09:19:52 +0000
@@ -0,0 +1,100 @@
+/*
+ * Copyright (c) 2004-2010, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * * Neither the name of the HISP project nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package org.hisp.dhis.patient.action.caseaggregation;
+
+import java.util.Date;
+
+import org.hisp.dhis.caseaggregation.CaseAggregationCondition;
+import static org.hisp.dhis.caseaggregation.CaseAggregationCondition.AGGRERATION_COUNT;
+import org.hisp.dhis.caseaggregation.CaseAggregationConditionService;
+import org.hisp.dhis.organisationunit.OrganisationUnit;
+import org.hisp.dhis.period.Period;
+
+import com.opensymphony.xwork2.Action;
+
+/**
+ * @author Chau Thu Tran
+ *
+ * @version $Id: TestCaseAggregationConditionAction.java Oct 5, 2011 3:45:20 PM
+ * $
+ */
+public class TestCaseAggregationConditionAction
+ implements Action
+{
+
+ // -------------------------------------------------------------------------
+ // Dependency
+ // -------------------------------------------------------------------------
+
+ private CaseAggregationConditionService aggregationConditionService;
+
+ public void setAggregationConditionService( CaseAggregationConditionService aggregationConditionService )
+ {
+ this.aggregationConditionService = aggregationConditionService;
+ }
+
+ // -------------------------------------------------------------------------
+ // Getters && Setters
+ // -------------------------------------------------------------------------
+
+ private String condition;
+
+ public void setCondition( String condition )
+ {
+ this.condition = condition;
+ }
+
+ // -------------------------------------------------------------------------
+ // Action implementation
+ // -------------------------------------------------------------------------
+
+ @Override
+ public String execute()
+ throws Exception
+ {
+ CaseAggregationCondition aggCondition = new CaseAggregationCondition( "", AGGRERATION_COUNT, condition, null,
+ null );
+
+ OrganisationUnit orgunit = new OrganisationUnit();
+ orgunit.setId( 1 );
+
+ Period period = new Period();
+ period.setStartDate( new Date() );
+ period.setEndDate( new Date() );
+
+ Double value = aggregationConditionService.parseConditition( aggCondition, orgunit, period );
+
+ if ( value == null )
+ {
+ return INPUT;
+ }
+
+ return SUCCESS;
+ }
+
+}
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/META-INF/dhis/beans.xml'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/META-INF/dhis/beans.xml 2011-10-03 09:40:38 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/META-INF/dhis/beans.xml 2011-10-05 09:19:52 +0000
@@ -703,6 +703,15 @@
</property>
</bean>
+ <bean
+ id="org.hisp.dhis.patient.action.caseaggregation.TestCaseAggregationConditionAction"
+ class="org.hisp.dhis.patient.action.caseaggregation.TestCaseAggregationConditionAction"
+ scope="prototype">
+ <property name="aggregationConditionService">
+ <ref bean="org.hisp.dhis.caseaggregation.CaseAggregationConditionService" />
+ </property>
+ </bean>
+
<!-- Validation - PatientValidationCriteria -->
<bean
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/org/hisp/dhis/patient/i18n_module.properties'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/org/hisp/dhis/patient/i18n_module.properties 2011-10-05 07:27:10 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/org/hisp/dhis/patient/i18n_module.properties 2011-10-05 09:19:52 +0000
@@ -379,4 +379,7 @@
verified = Verified
declared = Declared
approximated = Approximated
-others = Others
\ No newline at end of file
+others = Others
+test_condition = Test condition
+run_success = Run successful
+run_fail = run fail
\ No newline at end of file
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/struts.xml'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/struts.xml 2011-10-03 09:40:38 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/struts.xml 2011-10-05 09:19:52 +0000
@@ -738,6 +738,15 @@
/dhis-web-commons/ajax/jsonResponseInput.vm</result>
<param name="onExceptionReturn">plainTextError</param>
</action>
+
+ <action name="testCaseAggregationCondition"
+ class="org.hisp.dhis.patient.action.caseaggregation.TestCaseAggregationConditionAction">
+ <result name="success" type="velocity-json">
+ /dhis-web-commons/ajax/jsonResponseSuccess.vm</result>
+ <result name="input" type="velocity-json">
+ /dhis-web-commons/ajax/jsonResponseInput.vm</result>
+ <param name="onExceptionReturn">plainTextError</param>
+ </action>
<!-- Validation - PatientValidationCriteria -->
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/addCaseAggregation.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/addCaseAggregation.vm 2011-10-05 07:36:08 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/addCaseAggregation.vm 2011-10-05 09:19:52 +0000
@@ -206,6 +206,7 @@
<tr>
<td colspan='3'>
<input type="submit" value="$i18n.getString( 'add' )" style="width:10em"/>
+ <input type="button" value="$i18n.getString( 'test_condition' )" style="width:10em" onclick='testCaseAggregationCondition();'/>
<input type="button" value="$i18n.getString( 'cancel' )" onclick="window.location.href='caseAggregation.action'" style="width:10em"/>
</td>
</tr>
@@ -217,4 +218,6 @@
byId('description').focus();
getAggDataElements();
getProgramStages();
+ var i18n_run_success = '$encoder.jsEscape( $i18n.getString( "run_success" ) , "'" )';
+ var i18n_run_fail = '$encoder.jsEscape( $i18n.getString( "run_fail" ) , "'" )';
</script>
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/caseaggregation.js'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/caseaggregation.js 2011-10-05 07:36:08 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/caseaggregation.js 2011-10-05 09:19:52 +0000
@@ -174,3 +174,26 @@
},'html');
}
+// -----------------------------------------------------------------------------
+// Test condition
+// -----------------------------------------------------------------------------
+
+function testCaseAggregationCondition()
+{
+ $.postJSON( 'testCaseAggregationCondition.action',
+ {
+ condition:getFieldValue('aggregationCondition')
+ },function (json)
+ {
+ var type = json.response;
+
+ if ( type == "input" )
+ {
+ showWarningMessage( i18n_run_fail );
+ }
+ else
+ {
+ showSuccessMessage( i18n_run_success );
+ }
+ });
+}
\ No newline at end of file
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateCaseAggregation.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateCaseAggregation.vm 2011-10-05 07:36:08 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateCaseAggregation.vm 2011-10-05 09:19:52 +0000
@@ -209,11 +209,14 @@
<p>
<input type="submit" value="$i18n.getString( "update" )" style="width:10em">
- <input type="button" value="$i18n.getString( "cancel" )" onclick="window.location.href='caseAggregation.action'" style="width:10em">
+ <input type="button" value="$i18n.getString( 'test_condition' )" style="width:10em" onclick='testCaseAggregationCondition();'/>
+ <input type="button" value="$i18n.getString( "cancel" )" onclick="window.location.href='caseAggregation.action'" style="width:10em">
</p>
</form>
<script>
byId('description').focus();
+ var i18n_run_success = '$encoder.jsEscape( $i18n.getString( "run_success" ) , "'" )';
+ var i18n_run_fail = '$encoder.jsEscape( $i18n.getString( "run_fail" ) , "'" )';
</script>