dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #18421
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 7763: Exception when adding/updating program validation form.
------------------------------------------------------------
revno: 7763
committer: Tran Chau <tran.hispvietnam@xxxxxxxxx>
branch nick: dhis2
timestamp: Mon 2012-07-30 17:10:18 +0700
message:
Exception when adding/updating program validation form.
added:
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/validation/GetProgramValidationDescriptionAction.java
modified:
dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramValidationService.java
dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramValidationService.java
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/validation/GetProgramValidationAction.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/struts.xml
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/addMultiProgramValidationForm.vm
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/programValidation.js
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateMultiProgramValidationForm.vm
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateSingleProgramValidationForm.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/program/ProgramValidationService.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramValidationService.java 2012-03-26 06:36:24 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramValidationService.java 2012-07-30 10:10:18 +0000
@@ -59,4 +59,6 @@
boolean runValidation( ProgramValidation validation, ProgramStageInstance programStageInstance,
I18nFormat format );
+
+ String getValidationDescription( String condition );
}
=== modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramValidationService.java'
--- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramValidationService.java 2012-03-23 03:46:08 +0000
+++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramValidationService.java 2012-07-30 10:10:18 +0000
@@ -27,6 +27,9 @@
package org.hisp.dhis.program;
+import static org.hisp.dhis.caseaggregation.CaseAggregationCondition.OBJECT_PROGRAM_STAGE_DATAELEMENT;
+import static org.hisp.dhis.caseaggregation.CaseAggregationCondition.SEPARATOR_ID;
+import static org.hisp.dhis.caseaggregation.CaseAggregationCondition.SEPARATOR_OBJECT;
import static org.hisp.dhis.program.ProgramValidation.AFTER_CURRENT_DATE;
import static org.hisp.dhis.program.ProgramValidation.AFTER_DUE_DATE;
import static org.hisp.dhis.program.ProgramValidation.AFTER_OR_EQUALS_TO_CURRENT_DATE;
@@ -36,9 +39,6 @@
import static org.hisp.dhis.program.ProgramValidation.BEFORE_DUE_DATE_PLUS_OR_MINUS_MAX_DAYS;
import static org.hisp.dhis.program.ProgramValidation.BEFORE_OR_EQUALS_TO_CURRENT_DATE;
import static org.hisp.dhis.program.ProgramValidation.BEFORE_OR_EQUALS_TO_DUE_DATE;
-import static org.hisp.dhis.program.ProgramValidation.OBJECT_PROGRAM_STAGE_DATAELEMENT;
-import static org.hisp.dhis.program.ProgramValidation.SEPARATOR_ID;
-import static org.hisp.dhis.program.ProgramValidation.SEPARATOR_OBJECT;
import java.util.Collection;
import java.util.Date;
@@ -66,6 +66,8 @@
private final String regExp = "\\[" + OBJECT_PROGRAM_STAGE_DATAELEMENT + SEPARATOR_OBJECT + "([a-zA-Z0-9\\- ]+["
+ SEPARATOR_ID + "[0-9]*]*)" + "\\]";
+ private final String INVALID_CONDITION = "Invalid condition";
+
private ProgramValidationStore validationStore;
private ProgramStageService programStageService;
@@ -330,6 +332,43 @@
return programValidation;
}
+ public String getValidationDescription( String condition )
+ {
+ StringBuffer description = new StringBuffer();
+
+ Pattern patternCondition = Pattern.compile( regExp );
+
+ Matcher matcher = patternCondition.matcher( condition );
+
+ while ( matcher.find() )
+ {
+ String match = matcher.group();
+ match = match.replaceAll( "[\\[\\]]", "" );
+
+ String[] info = match.split( SEPARATOR_OBJECT );
+ String[] ids = info[1].split( SEPARATOR_ID );
+
+ String programStageId = ids[0];
+ ProgramStage programStage = programStageService.getProgramStage( Integer.parseInt( programStageId ) );
+
+ int dataElementId = Integer.parseInt( ids[1] );
+ DataElement dataElement = dataElementService.getDataElement( dataElementId );
+
+ if ( programStage == null || dataElement == null )
+ {
+ return INVALID_CONDITION;
+ }
+
+ matcher.appendReplacement( description, "[" + programStage.getName() + SEPARATOR_ID + dataElement.getName()
+ + "]" );
+
+ }
+
+ matcher.appendTail( description );
+
+ return description.toString();
+ }
+
// -------------------------------------------------------------------------
// Supportive methods
// -------------------------------------------------------------------------
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/validation/GetProgramValidationAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/validation/GetProgramValidationAction.java 2012-01-11 05:31:53 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/validation/GetProgramValidationAction.java 2012-07-30 10:10:18 +0000
@@ -27,7 +27,6 @@
package org.hisp.dhis.patient.action.validation;
-import org.hisp.dhis.caseaggregation.CaseAggregationConditionService;
import org.hisp.dhis.program.ProgramValidation;
import org.hisp.dhis.program.ProgramValidationService;
@@ -45,9 +44,7 @@
// -------------------------------------------------------------------------
private ProgramValidationService programValidationService;
-
- private CaseAggregationConditionService aggregationConditionService;
-
+
// -------------------------------------------------------------------------
// Input && Output
// -------------------------------------------------------------------------
@@ -79,11 +76,6 @@
this.programValidationService = programValidationService;
}
- public void setAggregationConditionService( CaseAggregationConditionService aggregationConditionService )
- {
- this.aggregationConditionService = aggregationConditionService;
- }
-
public void setValidationId( Integer validationId )
{
this.validationId = validationId;
@@ -104,8 +96,8 @@
{
validation = programValidationService.getProgramValidation( validationId );
- leftDescription = aggregationConditionService.getConditionDescription( validation.getLeftSide() );
- rightDescription = aggregationConditionService.getConditionDescription( validation.getRightSide() );
+ leftDescription = programValidationService.getValidationDescription( validation.getLeftSide() );
+ rightDescription = programValidationService.getValidationDescription( validation.getRightSide() );
return SUCCESS;
}
=== added file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/validation/GetProgramValidationDescriptionAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/validation/GetProgramValidationDescriptionAction.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/validation/GetProgramValidationDescriptionAction.java 2012-07-30 10:10:18 +0000
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2004-2012, 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.validation;
+
+import org.hisp.dhis.program.ProgramValidationService;
+
+import com.opensymphony.xwork2.Action;
+
+/**
+ * @author Chau Thu Tran
+ * @version $ID : GetAggConditionDescriptionAction.java Jan 11, 2011 9:14:19 PM
+ * $
+ */
+public class GetProgramValidationDescriptionAction
+ implements Action
+{
+ // -------------------------------------------------------------------------
+ // Dependency
+ // -------------------------------------------------------------------------
+
+ private ProgramValidationService programValidationService;
+
+ // -------------------------------------------------------------------------
+ // Input && Output
+ // -------------------------------------------------------------------------
+
+ private String condition;
+
+ private String description;
+
+ // -------------------------------------------------------------------------
+ // Getters && Setters
+ // -------------------------------------------------------------------------
+
+ public void setProgramValidationService( ProgramValidationService programValidationService )
+ {
+ this.programValidationService = programValidationService;
+ }
+
+ public String getDescription()
+ {
+ return description;
+ }
+
+ public void setCondition( String condition )
+ {
+ this.condition = condition;
+ }
+
+ // -------------------------------------------------------------------------
+ // Action implementation
+ // -------------------------------------------------------------------------
+
+ @Override
+ public String execute()
+ throws Exception
+ {
+ description = programValidationService.getValidationDescription( condition );
+
+ 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 2012-07-06 15:37:11 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/META-INF/dhis/beans.xml 2012-07-30 10:10:18 +0000
@@ -777,9 +777,6 @@
<property name="programValidationService">
<ref bean="org.hisp.dhis.program.ProgramValidationService" />
</property>
- <property name="aggregationConditionService">
- <ref bean="org.hisp.dhis.caseaggregation.CaseAggregationConditionService" />
- </property>
</bean>
<bean
@@ -822,5 +819,14 @@
<property name="programValidationService"
ref="org.hisp.dhis.program.ProgramValidationService" />
</bean>
+
+ <bean
+ id="org.hisp.dhis.patient.action.validation.GetProgramValidationDescriptionAction"
+ class="org.hisp.dhis.patient.action.validation.GetProgramValidationDescriptionAction"
+ scope="prototype">
+ <property name="programValidationService">
+ <ref bean="org.hisp.dhis.program.ProgramValidationService" />
+ </property>
+ </bean>
</beans>
\ 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 2012-07-06 15:37:11 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/struts.xml 2012-07-30 10:10:18 +0000
@@ -835,5 +835,12 @@
<param name="requiredAuthorities">F_PROGRAM_VALIDATION</param>
</action>
+ <action name="getProgramValidationDescription"
+ class="org.hisp.dhis.patient.action.validation.GetProgramValidationDescriptionAction">
+ <result name="success" type="velocity">
+ /dhis-web-maintenance-patient/responseCaseAggDescription.vm</result>
+ <param name="onExceptionReturn">plainTextError</param>
+ </action>
+
</package>
</struts>
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/addMultiProgramValidationForm.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/addMultiProgramValidationForm.vm 2012-03-15 09:28:38 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/addMultiProgramValidationForm.vm 2012-07-30 10:10:18 +0000
@@ -41,7 +41,7 @@
</tr>
<tr>
<td>
- <select id='leftStage' name='leftStage' onchange="getLeftPrgramStageDataElements();">
+ <select id='leftStage' name='leftStage' onchange="getLeftPrgramStageDataElements();" style='width:320px'>
<option value=''>[$i18n.getString( "please_select" )]</option>
#foreach($stage in $program.programStages)
<option value='$stage.id'>$stage.name</option>
@@ -49,7 +49,7 @@
</select>
</td>
<td>
- <select id='rightStage' name='rightStage' onchange="getRightPrgramStageDataElements();">
+ <select id='rightStage' name='rightStage' onchange="getRightPrgramStageDataElements();" style='width:320px'>
<option value=''>[$i18n.getString( "please_select" )]</option>
#foreach($stage in $program.programStages)
<option value='$stage.id'>$stage.name</option>
@@ -59,11 +59,11 @@
</tr>
<tr>
<td>
- <select id='leftSideDE' name='leftSideDE' size='7' ondblclick="insertDataElement(this, 'leftSide', 'leftStageDescription');" >
+ <select id='leftSideDE' name='leftSideDE' size='7' ondblclick="insertDataElement(this, 'leftSide', 'leftStageDescription');" style='width:320px'>
</select>
</td>
<td>
- <select id='rightSideDE' name='rightSideDE' size='7' ondblclick="insertDataElement(this, 'rightSide', 'rightStageDescription' );">
+ <select id='rightSideDE' name='rightSideDE' size='7' ondblclick="insertDataElement(this, 'rightSide', 'rightStageDescription' );" style='width:320px'>
</select>
</td>
</tr>
@@ -95,10 +95,10 @@
</tr>
<tr>
<td>
- <textarea rows='5' id='leftSide' name='leftSide' class="{validate:{required:true,minlength:4}}" onkeyup="getValidationDescription('leftStageDescription', 'leftSide')"></textarea>
+ <textarea rows='5' id='leftSide' name='leftSide' class="{validate:{required:true,minlength:4}}" onkeyup="getValidationDescription('leftStageDescription', 'leftSide')" style='width:320px'></textarea>
</td>
<td>
- <textarea rows='5' id='rightSide' name='rightSide' class="{validate:{required:true,minlength:4}}" onkeyup="getValidationDescription('rightStageDescription', 'rightSide')"></textarea>
+ <textarea rows='5' id='rightSide' name='rightSide' class="{validate:{required:true,minlength:4}}" onkeyup="getValidationDescription('rightStageDescription', 'rightSide')" style='width:320px'></textarea>
</td>
</tr>
<tr>
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/programValidation.js'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/programValidation.js 2012-03-13 09:47:39 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/programValidation.js 2012-07-30 10:10:18 +0000
@@ -69,7 +69,7 @@
function getValidationDescription( decriptionDiv, sideDiv )
{
- $.get("getCaseAggregationDescription.action",
+ $.postUTF8("getProgramValidationDescription.action",
{
condition: getFieldValue( sideDiv )
},
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateMultiProgramValidationForm.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateMultiProgramValidationForm.vm 2012-03-15 09:28:38 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateMultiProgramValidationForm.vm 2012-07-30 10:10:18 +0000
@@ -19,7 +19,7 @@
</tr>
<tr>
<td colspan='2'>
- <input type="text" id='description' style='width:640px' name='description' value='$validation.description'>
+ <input type="text" id='description' style='width:640px' name='description' value='$validation.description' style='width:640px;'>
</td>
</tr>
<tr>
@@ -40,7 +40,7 @@
</tr>
<tr>
<td>
- <select id='leftStage' name='leftStage' onchange="getLeftPrgramStageDataElements();">
+ <select id='leftStage' name='leftStage' onchange="getLeftPrgramStageDataElements();" style='width:320px;'>
<option value=''>[$i18n.getString( "please_select" )]</option>
#foreach($stage in $validation.program.programStages)
<option value='$stage.id'>$stage.name</option>
@@ -48,7 +48,7 @@
</select>
</td>
<td>
- <select id='rightStage' name='rightStage' onchange="getRightPrgramStageDataElements();">
+ <select id='rightStage' name='rightStage' onchange="getRightPrgramStageDataElements();" style='width:320px;'>
<option value=''>[$i18n.getString( "please_select" )]</option>
#foreach($stage in $validation.program.programStages)
<option value='$stage.id'>$stage.name</option>
@@ -58,11 +58,11 @@
</tr>
<tr>
<td>
- <select id='leftSideDE' name='leftSideDE' size='7' ondblclick="insertDataElement(this, 'leftSide');">
+ <select id='leftSideDE' name='leftSideDE' size='7' ondblclick="insertDataElement(this, 'leftSide');" style='width:320px;'>
</select>
</td>
<td>
- <select id='rightSideDE' name='rightSideDE' size='7' ondblclick="insertDataElement(this, 'rightSide');">
+ <select id='rightSideDE' name='rightSideDE' size='7' ondblclick="insertDataElement(this, 'rightSide');" style='width:320px;'>
</select>
</td>
</tr>
@@ -95,23 +95,23 @@
</tr>
<tr>
<td>
- <textarea rows='5' id='leftSide' name='leftSide' onkeyup="getValidationDescription('leftStageDescription', 'leftSide')">$validation.leftSide</textarea>
+ <textarea rows='5' id='leftSide' name='leftSide' onkeyup="getValidationDescription('leftStageDescription', 'leftSide')" style='width:320px;'>$validation.leftSide</textarea>
</td>
<td>
- <textarea rows='5' id='rightSide' name='rightSide' onkeyup="getValidationDescription('rightStageDescription', 'rightSide')">$validation.rightSide</textarea>
+ <textarea rows='5' id='rightSide' name='rightSide' onkeyup="getValidationDescription('rightStageDescription', 'rightSide')" style='width:320px;'>$validation.rightSide</textarea>
</td>
</tr>
<tr>
<td>
<fieldset>
<legend>$i18n.getString( "description" )</legend>
- <div id='leftStageDescription'>$!leftDescription</div>
+ <div id='leftStageDescription' style='width:320px;'>$!leftDescription</div>
</fieldset>
</td>
<td>
<fieldset>
<legend>$i18n.getString( "description" )</legend>
- <div id='rightStageDescription'>$!rightDescription</div>
+ <div id='rightStageDescription' style='width:320px;'>$!rightDescription</div>
</fieldset>
</td>
</tr>
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateSingleProgramValidationForm.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateSingleProgramValidationForm.vm 2012-03-22 03:06:42 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateSingleProgramValidationForm.vm 2012-07-30 10:10:18 +0000
@@ -39,7 +39,7 @@
</tr>
<tr>
<td>
- <select id='leftSideDE' name='leftSideDE' size='7' ondblclick="insertDataElement(this, 'leftSide');">
+ <select id='leftSideDE' name='leftSideDE' size='7' ondblclick="insertDataElement(this, 'leftSide', 'leftStageDescription');">
</select>
</td>
</tr>
@@ -59,7 +59,7 @@
</tr>
<tr>
<td>
- <textarea rows='5' id='leftSide' name='leftSide' onkeyup="getValidationDescription('leftStageDescription', 'leftSide')">$validation.leftSide</textarea>
+ <textarea rows='5' id='leftSide' name='leftSide' onkeyup="getValidationDescription('leftStageDescription', 'leftSide')" style='width:320px;'>$validation.leftSide</textarea>
<input type='hidden' id='rightSide' name='rightSide' value='1==1'>
</td>
</tr>
@@ -67,7 +67,7 @@
<td>
<fieldset>
<legend>$i18n.getString( "description" )</legend>
- <div id='leftStageDescription'>$!leftDescription</div>
+ <div id='leftStageDescription' style='width:320px;'>$!leftDescription</div>
</fieldset>
</td>
</tr>