← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 8162: Put Identifiers/Attributes which belong to selected program into Enrollment-program form.

 

------------------------------------------------------------
revno: 8162
committer: Tran Chau <tran.hispvietnam@xxxxxxxxx>
branch nick: dhis2
timestamp: Thu 2012-09-20 20:04:02 +0700
message:
  Put Identifiers/Attributes which belong to selected program into Enrollment-program form.
added:
  dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/GetProgramAction.java
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/identifierAndAttributeForm.vm
modified:
  dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/GetPatientHistoryAction.java
  dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/SaveIdentifierAndAttributeAction.java
  dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml
  dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/struts.xml
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/patient.js
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/patientProgramTracking.vm
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/programEnrollmentForm.vm
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/programEnrollmentSelectForm.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-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/GetPatientHistoryAction.java'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/GetPatientHistoryAction.java	2012-03-09 11:46:58 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/GetPatientHistoryAction.java	2012-09-20 13:04:02 +0000
@@ -47,7 +47,7 @@
     implements Action
 {
     // -------------------------------------------------------------------------
-    // Implementation Action
+    // Dependencies
     // -------------------------------------------------------------------------
 
     private PatientService patientService;

=== added file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/GetProgramAction.java'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/GetProgramAction.java	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/GetProgramAction.java	2012-09-20 13:04:02 +0000
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2004-2009, 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.caseentry.action.patient;
+
+import org.hisp.dhis.program.Program;
+import org.hisp.dhis.program.ProgramService;
+
+import com.opensymphony.xwork2.Action;
+
+/**
+ * @author Chau Thu Tran
+ * 
+ * @version GetProgramAction.java 6:28:06 PM Sep 20, 2012 $
+ */
+public class GetProgramAction
+    implements Action
+{
+    // -------------------------------------------------------------------------
+    // Dependency
+    // -------------------------------------------------------------------------
+
+    private ProgramService programService;
+
+    public void setProgramService( ProgramService programService )
+    {
+        this.programService = programService;
+    }
+
+    // -------------------------------------------------------------------------
+    // Getter && Setter
+    // -------------------------------------------------------------------------
+
+    private Integer id;
+
+    public void setId( Integer id )
+    {
+        this.id = id;
+    }
+
+    private Program program;
+
+    public Program getProgram()
+    {
+        return program;
+    }
+
+    // -------------------------------------------------------------------------
+    // Implementation Action
+    // -------------------------------------------------------------------------
+
+    @Override
+    public String execute()
+        throws Exception
+    {
+        program = programService.getProgram( id );
+        
+        return SUCCESS;
+    }
+
+}

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/SaveIdentifierAndAttributeAction.java'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/SaveIdentifierAndAttributeAction.java	2012-09-05 14:30:23 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/SaveIdentifierAndAttributeAction.java	2012-09-20 13:04:02 +0000
@@ -115,6 +115,16 @@
         this.patientIdentifierService = patientIdentifierService;
     }
 
+    public Integer getProgramId()
+    {
+        return programId;
+    }
+
+    public Integer getPatientId()
+    {
+        return patientId;
+    }
+
     public void setPatientId( Integer patientId )
     {
         this.patientId = patientId;

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml	2012-09-13 09:25:01 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml	2012-09-20 13:04:02 +0000
@@ -656,6 +656,13 @@
 		<property name="patientService" ref="org.hisp.dhis.patient.PatientService" />
 		<property name="programInstanceService" ref="org.hisp.dhis.program.ProgramInstanceService" />
 	</bean>
+	
+	<bean
+		id="org.hisp.dhis.caseentry.action.patient.GetProgramAction"
+		class="org.hisp.dhis.caseentry.action.patient.GetProgramAction"
+		scope="prototype">
+		<property name="programService" ref="org.hisp.dhis.program.ProgramService" />
+	</bean>
 
 	<!-- Relationship -->
 

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/struts.xml'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/struts.xml	2012-09-15 04:18:54 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/struts.xml	2012-09-20 13:04:02 +0000
@@ -328,6 +328,7 @@
 				/dhis-web-caseentry/responsePrograms.vm
 			</result>
 		</action>
+		
 		<!-- i18n -->
 
 		<action name="i18n" class="org.hisp.dhis.caseentry.action.NoAction">
@@ -618,6 +619,13 @@
 			<result name="success" type="velocity-xml">status.vm</result>
 			<param name="requiredAuthorities">F_PATIENT_UPDATE, F_PROGRAM_ENROLLMENT</param>
 		</action>
+		
+		<action name="getPatientIdentifierAndAttribute"
+			class="org.hisp.dhis.caseentry.action.patient.GetProgramAction">
+			<result name="success" type="velocity">/content.vm</result>
+			<param name="page">/dhis-web-caseentry/identifierAndAttributeForm.vm</param>
+			<param name="requiredAuthorities">F_PATIENT_UPDATE</param>
+		</action>
 
 		<!-- Relationship -->
 

=== added file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/identifierAndAttributeForm.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/identifierAndAttributeForm.vm	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/identifierAndAttributeForm.vm	2012-09-20 13:04:02 +0000
@@ -0,0 +1,38 @@
+
+#foreach ($identifierType in $program.patientIdentifierTypes) 
+	<tr #alternate( $mark )>
+		<td class='text-column'><label>$identifierType.name #if($identifierType.mandatory == true )<em title="$i18n.getString( 'required' )" class="required">*</em> #end</label></td>       
+		<td class="input-column">
+			<input type="text" id="iden$identifierType.id" name="iden$identifierType.id" class="{validate:{required:$identifierType.mandatory, #if($!identifierType.noChars) maxlength:$identifierType.noChars, #end #if($identifierType.type=='number') number:true #elseif($!identifierType.type=='letter') lettersonly:true #end }}" />
+		</td>
+	</tr>
+#end
+				
+#foreach($attribute in $program.patientAttributes )
+	<tr #alternate( $mark )>
+		<td class='text-column'><label>$attribute.name #if($attribute.mandatory)<em title="$i18n.getString( "required" )" class="required">*</em> #end</label></td>
+		<td class="input-column" >
+			#if( $attribute.valueType == "YES/NO" )
+				<select id="attr$attribute.id" name="attr$attribute.id" >              
+					<option value="">[$i18n.getString( "please_select" )]</option>
+					<option value="true">$i18n.getString( "yes" )</option>
+					<option value="false">$i18n.getString( "no" )</option>
+				</select>                
+			#elseif( $attribute.valueType == "DATE" )
+				<input type="text" id="attr$attribute.id" name="attr$attribute.id" objectId='$attribute.id' objectType='attr' class=' #validate( "default"  $attribute.mandatory )' >
+				<script type="text/javascript">
+					datePickerValid( 'attr$attribute.id' );
+				</script>                 
+			#elseif( $attribute.valueType == "COMBO" )
+				<select  id="attr$attribute.id" name="attr$attribute.id" class=' #validate( "default"  $attribute.mandatory )' >
+					 <option value="">[$i18n.getString( "please_select" )]</option>
+				#foreach ($option in $attribute.attributeOptions )
+					<option value="$option.id">$option.name</option>
+				#end
+				</select>
+			#else 
+				<input type="text"  id="attr$attribute.id" name="attr$attribute.id" class="{validate:{required:$attribute.mandatory #if($!attribute.noChars),maxlength:$attribute.noChars #end #if($attribute.valueType=='NUMBER'),number:true #end }}"  > 
+			#end
+		</td>		
+	</tr>
+#end
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/patient.js'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/patient.js	2012-09-20 08:09:14 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/patient.js	2012-09-20 13:04:02 +0000
@@ -346,10 +346,10 @@
 			title: i18n_enroll_program,
 			maximize: true, 
 			closable: true,
-			modal:false,
+			modal:true,
 			overlay:{background:'#000000', opacity:0.1},
-			width: 500,
-			height: 200
+			width: 550,
+			height: 450
 		});
 }
 
@@ -378,19 +378,27 @@
 			
 			var displayIncidentDate = jQuery('#enrollmentDiv [name=programId] option:selected').attr('displayIncidentDate');
 			if( displayIncidentDate=='true'){
-				showById( 'dateOfIncidentTR');
+				showById('dateOfIncidentTR');
 				enable('dateOfIncident');
 			}
 			else{
-				hideById( 'dateOfIncidentTR');
+				hideById('dateOfIncidentTR');
 				disable('dateOfIncident');
 			}
 		}
+		var programId = jQuery('#programEnrollmentSelectDiv [id=programId] option:selected').val();
+		jQuery('#identifierAndAttributeDiv').load("getPatientIdentifierAndAttribute.action", 
+		{
+			id:programId
+		}, function(){
+			showById('identifierAndAttributeDiv');
+		});
 	}
 }
 
 function saveEnrollment( patientId, programId )
 {
+	var patientId = jQuery('#enrollmentDiv [id=patientId]').val();
 	var programId = jQuery('#enrollmentDiv [id=programId] option:selected').val();
 	var programName = jQuery('#enrollmentDiv [id=programId] option:selected').text();
 	var dateOfIncident = jQuery('#enrollmentDiv [id=dateOfIncidentField]').val();
@@ -398,7 +406,7 @@
 	
 	jQuery.postJSON( "saveProgramEnrollment.action",
 		{
-			patientId: jQuery('#enrollmentDiv [id=patientId]').val(),
+			patientId: patientId,
 			programId: programId,
 			dateOfIncident: dateOfIncident,
 			enrollmentDate: enrollmentDate
@@ -426,7 +434,7 @@
 
 			jQuery('#activeTB' ).prepend(activedRow);
 			jQuery('#enrollmentDiv').dialog("close");
-			
+			saveIdentifierAndAttribute( patientId, programId,'identifierAndAttributeDiv' );
 			loadProgramInstance( programInstanceId, false );
 			showSuccessMessage(i18n_enrol_success);
 		});
@@ -552,7 +560,7 @@
 			jQuery('#completedList' ).append('<option value="' +  programInstanceId + '">' + getInnerHTML('infor_' + programInstanceId ) + '</option>');
 			hideById('tr1_' + programInstanceId );
 			hideById('tr2_' + programInstanceId );
-			hideById('programEnrollmentDiv');
+			setInnerHTML('programEnrollmentDiv','');
 			showSuccessMessage( i18n_unenrol_success );
 		}
     });
@@ -699,7 +707,6 @@
 	setFieldValue( 'dateOfIncident', '' );
 	hideById('enrollmentDateTR');
 	hideById('dateOfIncidentTR');
-	//hideById('enrollBtn');
 	hideById('unenrollBtn');
 }
   
@@ -708,7 +715,6 @@
 	showById('enrollmentDateTR');
 	showById('dateOfIncidentTR');
 	enable('dateOfIncident');
-	//showById('enrollBtn');
 }
 
 function hideIncidentDateField()
@@ -723,12 +729,15 @@
 	showById('dateOfIncidentTR');
 }
 
-function saveIdentifierAndAttribute()
+function saveIdentifierAndAttribute( patientId, programId, paramsDiv)
 {
+	var params  = getParamsForDiv(paramsDiv);
+		params += "&patientId=" + patientId;
+		params +="&programId=" + programId;
 	$.ajax({
 			type: "POST",
 			url: 'savePatientIdentifierAndAttribute.action',
-			data: getParamsForDiv('programEnrollmentInforForm'),
+			data: params,
 			success: function(json) 
 			{
 				showSuccessMessage( i18n_save_success );

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/patientProgramTracking.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/patientProgramTracking.vm	2012-09-20 05:15:30 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/patientProgramTracking.vm	2012-09-20 13:04:02 +0000
@@ -189,7 +189,7 @@
 	
 	jQuery("#programEnrollmentInforForm").ready( function(){
 		validation( 'programEnrollmentInforForm', function(form){
-			saveIdentifierAndAttribute();
+			saveIdentifierAndAttribute($!programInstance.patient.id,$!programInstance.program.id,'tab-3');
 		});
 		
 		disable("dateOfIncident");

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/programEnrollmentForm.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/programEnrollmentForm.vm	2012-09-20 05:15:30 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/programEnrollmentForm.vm	2012-09-20 13:04:02 +0000
@@ -41,8 +41,6 @@
 	<div id="tab-2">
 		<form id='programEnrollmentInforForm' name='programEnrollmentInforForm' action='#' method="POST" >
 			#if( ( $!noIden && $!noIden > 0) || ( $!noOtherGroup && $!noOtherGroup > 0) || ( $!noGroup && $!noGroup > 0 ) )
-				<input type='hidden' id='programId' name='programId' value='$programInstance.program.id'>
-				<input type='hidden' id='patientId' name='patientId' value='$programInstance.patient.id'>
 				<!-- IDENTIFIERS -->
 				<table id='enrollmentInforDiv' name='enrollmentInforDiv' class='mainPageTable' >
 					#if( $!noIden && $noIden > 0 )
@@ -223,7 +221,7 @@
 	
 	jQuery("#programEnrollmentInforForm").ready( function(){
 		validation( 'programEnrollmentInforForm', function(form){
-			saveIdentifierAndAttribute();
+			saveIdentifierAndAttribute(programInstance.patient.id,$programInstance.program.id,'programEnrollmentInforForm');
 		});	
 		
 		#if( $!programInstance )

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/programEnrollmentSelectForm.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/programEnrollmentSelectForm.vm	2012-09-20 08:09:14 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/programEnrollmentSelectForm.vm	2012-09-20 13:04:02 +0000
@@ -10,7 +10,6 @@
 		validation( 'programEnrollmentSelectDiv', function(form){
 			form.submit();
 		});
-	
 		datePickerInRangeValid( 'dateOfIncidentField' , 'enrollmentDateField' );
 		setFieldValue("dateOfIncidentField", "");
 		var unSave = false;
@@ -53,6 +52,8 @@
 			<td></td>                             
 		</tr>
 		
+		<tbody id='identifierAndAttributeDiv' name='identifierAndAttributeDiv'></tbody>
+		
 		<tr>
 			<td></td>
 			<td colspan='2'>