dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #16659
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 6387: (patient) Put DOB Type and Birthdate in one row in Add/Update patient form.
------------------------------------------------------------
revno: 6387
committer: Tran Chau <tran.hispvietnam@xxxxxxxxx>
branch nick: dhis2
timestamp: Tue 2012-03-27 11:22:51 +0700
message:
(patient) Put DOB Type and Birthdate in one row in Add/Update patient form.
modified:
dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/hibernate/HibernatePatientAttributeGroupStore.java
dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/AddPatientAction.java
dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/UpdatePatientAction.java
dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties
dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/addPatientForm.vm
dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/commons.js
dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/patientForm.vm
dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/patientRegistrationList.vm
dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/style/patient.css
dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/updatePatientForm.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-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/hibernate/HibernatePatientAttributeGroupStore.java'
--- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/hibernate/HibernatePatientAttributeGroupStore.java 2012-03-27 01:29:30 +0000
+++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/hibernate/HibernatePatientAttributeGroupStore.java 2012-03-27 04:22:51 +0000
@@ -58,8 +58,8 @@
@Override
public Collection<PatientAttributeGroup> getWithoutProgram()
{
- return getCriteria().createAlias( "attributes", "attribute" ).add( Restrictions.isNull( "attribute.program" ) )
- .list();
+ return getCriteria().setResultTransformer( Criteria.DISTINCT_ROOT_ENTITY ).createAlias( "attributes",
+ "attribute" ).add( Restrictions.isNull( "attribute.program" ) ).list();
}
}
=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/AddPatientAction.java'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/AddPatientAction.java 2011-09-14 06:36:13 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/AddPatientAction.java 2012-03-27 04:22:51 +0000
@@ -94,11 +94,9 @@
private String birthDate;
- private char ageType;
-
private Integer age;
- private Character dobType;
+ private Boolean verified;
private String gender;
@@ -127,6 +125,8 @@
OrganisationUnit organisationUnit = selectionManager.getSelectedOrganisationUnit();
Patient patient = new Patient();
+
+ verified = ( verified == null ) ? false : true ;
// ---------------------------------------------------------------------
// Set FirstName, MiddleName, LastName by FullName
@@ -170,6 +170,13 @@
patient.setUnderAge( underAge );
patient.setOrganisationUnit( organisationUnit );
+ Character dobType = ( verified ) ? 'V' : 'D';
+
+ if( !verified && age != null )
+ {
+ dobType = 'A';
+ }
+
if ( dobType == Patient.DOB_TYPE_VERIFIED || dobType == Patient.DOB_TYPE_DECLARED )
{
birthDate = birthDate.trim();
@@ -177,7 +184,7 @@
}
else
{
- patient.setBirthDateFromAge( age.intValue(), ageType );
+ patient.setBirthDateFromAge( age.intValue(), 'Y' );
}
patient.setDobType( dobType );
@@ -309,6 +316,11 @@
return message;
}
+ public void setVerified( Boolean verified )
+ {
+ this.verified = verified;
+ }
+
public void setPatientIdentifierTypeService( PatientIdentifierTypeService patientIdentifierTypeService )
{
this.patientIdentifierTypeService = patientIdentifierTypeService;
@@ -393,14 +405,4 @@
{
this.underAge = underAge;
}
-
- public void setDobType( Character dobType )
- {
- this.dobType = dobType;
- }
-
- public void setAgeType( char ageType )
- {
- this.ageType = ageType;
- }
}
=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/UpdatePatientAction.java'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/UpdatePatientAction.java 2012-03-12 10:20:25 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/patient/UpdatePatientAction.java 2012-03-27 04:22:51 +0000
@@ -96,10 +96,8 @@
private Integer age;
- private char ageType;
-
- private Character dobType;
-
+ private Boolean verified;
+
private String gender;
private String bloodGroup;
@@ -126,6 +124,8 @@
OrganisationUnit organisationUnit = selectionManager.getSelectedOrganisationUnit();
patient = patientService.getPatient( id );
+
+ verified = ( verified == null ) ? false : true ;
// ---------------------------------------------------------------------
// Set FirstName, MiddleName, LastName by FullName
@@ -174,6 +174,13 @@
patient.setUnderAge( underAge );
patient.setOrganisationUnit( organisationUnit );
+ Character dobType = ( verified ) ? 'V' : 'D';
+
+ if( !verified && age != null )
+ {
+ dobType = 'A';
+ }
+
if ( dobType == Patient.DOB_TYPE_VERIFIED || dobType == Patient.DOB_TYPE_DECLARED )
{
birthDate = birthDate.trim();
@@ -181,7 +188,7 @@
}
else
{
- patient.setBirthDateFromAge( age.intValue(), ageType );
+ patient.setBirthDateFromAge( age.intValue(), 'Y' );
}
patient.setDobType( dobType );
@@ -424,13 +431,9 @@
this.relationshipTypeId = relationshipTypeId;
}
- public void setDobType( Character dobType )
+ public void setVerified( Boolean verified )
{
- this.dobType = dobType;
+ this.verified = verified;
}
- public void setAgeType( char ageType )
- {
- this.ageType = ageType;
- }
}
=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties 2012-03-26 06:36:24 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties 2012-03-27 04:22:51 +0000
@@ -288,3 +288,4 @@
orgunit_hiererachy_included_on = Organisation unit hiererachy included on
level = Level
patient_identifier_and_attributes = Beneficiary identifier and attributes
+please_fill_out_only_one_of_these_fields = Please fill out at only one of these fields.
\ No newline at end of file
=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/addPatientForm.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/addPatientForm.vm 2012-02-01 09:10:08 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/addPatientForm.vm 2012-03-27 04:22:51 +0000
@@ -14,18 +14,31 @@
}
,beforeValidateHandler: function(form)
{
- var dobType = $('#patientForm [id=dobType]').val();
+ var checked = byId( 'verified' ).checked;
- if( dobType=='V' || dobType=='D' )
- {
- var birthDate = $('#patientForm [id=birthDate]').val();
- if( birthDate != '' ){
- $("#patientForm [id=memberValidator]").val(birthDate);
- }
- }else{
- var age = $('#patientForm [id=age]').val();
- $("#patientForm [id=memberValidator]").val(age);
- }
+ var birthDate = $('#patientForm [id=birthDate]').val();
+ var age = $('#patientForm [id=age]').val();
+ if( birthDate != '' && age!='' )
+ {
+ showById( 'validateBirthdate' );
+ $("#patientForm [id=memberValidator]").val("birthDate");
+ return false;
+ }
+ else if( birthDate == '' && age == '' ) {
+ jQuery( '#validateBirthdate' ).removeClass( 'error').addClass('error valid');
+ $("#patientForm [id=memberValidator]").val("");
+ }
+ else if ( birthDate != '' )
+ {
+ jQuery( '#validateBirthdate' ).removeClass( 'error').addClass('error valid');
+ $("#patientForm [id=memberValidator]").val("birthDate");
+ }
+ else if ( age=='' )
+ {
+ jQuery( '#validateBirthdate' ).removeClass( 'error').addClass('error valid');
+ $("#patientForm [id=memberValidator]").val("age");
+ }
+ hideById( 'validateBirthdate' );
}
});
=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/commons.js'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/commons.js 2012-03-09 01:56:35 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/commons.js 2012-03-27 04:22:51 +0000
@@ -1,25 +1,14 @@
-function dobTypeOnChange( container ){
+function verifiedOnchange( container ){
- var type = jQuery('#' + container + ' [id=dobType]').val();
-
- if(type == 'V' || type == 'D'){
- jQuery('#' + container + ' [id=age]').rules("remove","required");
- jQuery('#' + container + ' [id=birthDate]').rules("add",{required:true});
-
- showById(container + ' [id=birthdaySpan]');
- hideById(container + ' [id=ageSpan]');
- }else if(type == 'A'){
- jQuery('#' + container + ' [id=birthDate]').rules("remove","required");
- jQuery('#' + container + ' [id=age]').rules("add",{required:true});
-
- hideById(container + ' [id=birthdaySpan]');
- showById(container + ' [id=ageSpan]');
- }else {
- hideById(container + ' [id=birthdaySpan]');
- hideById(container + ' [id=ageSpan]');
- jQuery('#' + container + ' [id=age]').rules("remove","required");
- jQuery('#' + container + ' [id=birthDate]').rules("remove","required");
+ var checked = byId( 'verified' ).checked;
+ if( checked )
+ {
+ disable( 'age' );
+ }
+ else
+ {
+ enable( 'age' );
}
}
=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/patientForm.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/patientForm.vm 2012-02-01 09:10:08 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/patientForm.vm 2012-03-27 04:22:51 +0000
@@ -41,43 +41,23 @@
</tr>
<tr>
- <td class='text-column'><label for="dobType">$i18n.getString( "dob_type" )<em title="$i18n.getString( 'required' )" class="required">*</em></label></td>
- <td class="input-column">
- <select id='dobType' name="dobType" class="{validate:{required:true}}">
- <option value="V" selected="selected">$i18n.getString( "verified" )</option>
- <option value="D" >$i18n.getString( "declared" )</option>
- <option value="A" >$i18n.getString( "approximated" )</option>
- </select>
+ <td class='text-column'><label for="birthDate">$i18n.getString( "date_of_birth" )<em title="$i18n.getString( 'required' )" class="required">*</em></label></td>
+ <td class="input-column">
+ <input type="text" id="birthDate" name="birthDate" style='width:168px' />
+ $i18n.getString( "verified" ) <input type='checkbox' id='verified' name='verified' onchange='verifiedOnchange();' value='true' checked >
+ $i18n.getString( "age" ) <input type="text" id="age" name="age" class="{validate:{number:true}}" style="width:50px" disabled />
</td>
<td></td>
</tr>
-<tr id='birthdaySpan'>
- <td class='text-column'><label for="birthDate">$i18n.getString( "date_of_birth" )<em title="$i18n.getString( 'required' )" class="required">*</em></label></td>
- <td class="input-column">
- <input type="text" id="birthDate" name="birthDate" />
- </td>
- <td></td>
-</tr>
-
-<tr id='ageSpan' class="hidden" >
- <td class='text-column'><label for="age">$i18n.getString( "age" ) </label><em title="$i18n.getString( 'required' )" class="required">*</em></label></td>
- <td class="input-column">
- <select id="ageType" name="ageType" style="width:80px">
- <option value="D"> $i18n.getString('day')</option>
- <option value="M"> $i18n.getString('month')</option>
- <option value="Y"> $i18n.getString('year')</option>
- </select>
- <input type="text" id="age" name="age" class="{validate:{number:true, alphanumeric: true}}" style="width:278px" />
- </td>
- <td></td>
-</tr>
-
<tr>
<td></td>
- <td><input id="memberValidator" class="hidden {validate:{required:true}}"/></td>
+ <td class="input-column" >
+ <span id='validateBirthdate' class="hidden"><i>$i18n.getString('please_fill_out_only_one_of_these_fields')</i></span>
+ <input id="memberValidator" class="hidden {validate:{required:true}}"/>
+ </td>
</tr>
-
+
<tr>
<td class='text-column'><label for="bloodGroup">$i18n.getString( "blood_group" )</label></td>
<td class="input-column">
@@ -113,11 +93,14 @@
<tr><td colspan="2"> </td></tr>
<tr><th colspan="2" class="heading-column">$i18n.getString( "patient_identifiers" )</th></tr>
#foreach ($identifierType in $identifierTypes)
- <tr>
- <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" data="{related:$identifierType.related}" 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>
+ #if( $identifierType.program )
+ #else
+ <tr>
+ <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" data="{related:$identifierType.related}" 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
#end
#end
@@ -126,7 +109,8 @@
<tr><td> </td></tr>
<tr><th colspan="2" class="heading-column">$attributeGroup.name</th></tr>
#foreach($attribute in $attributeGroup.attributes )
- #if($!attribute)
+ #if( $attribute.program )
+ #else
<tr>
<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">
@@ -163,6 +147,8 @@
#if ( $noGroupAttributes && $noGroupAttributes.size() > 0)
<tr><th colspan="2" class="heading-column">$i18n.getString( "other_details" )</th></tr>
#foreach($attribute in $noGroupAttributes )
+ #if( $attribute.program )
+ #else
<tr>
<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">
@@ -189,5 +175,6 @@
#end
</td>
</tr>
+ #end
#end
#end
=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/patientRegistrationList.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/patientRegistrationList.vm 2012-03-27 01:29:30 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/patientRegistrationList.vm 2012-03-27 04:22:51 +0000
@@ -152,5 +152,4 @@
var i18n_program_stage = '$encoder.jsEscape( $i18n.getString( "program_stage" ) , "'")';
var i18n_scheduled_for = '$encoder.jsEscape( $i18n.getString( "scheduled_for" ) , "'")';
var i18n_show_all_items = '$encoder.jsEscape( $i18n.getString( "show_all_items" ) , "'")';
-
</script>
=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/style/patient.css'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/style/patient.css 2012-03-08 08:56:27 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/style/patient.css 2012-03-27 04:22:51 +0000
@@ -52,7 +52,7 @@
.heading-column { width : 450px;}
td.input-column { width : 390px;}
-td.input-column input{ width: 360px;}
+td.input-column input[type="text"]{ width: 360px;}
td.input-column select { width: 367px;}
td.error {padding-left:1em}
=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/updatePatientForm.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/updatePatientForm.vm 2012-03-27 01:29:30 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/updatePatientForm.vm 2012-03-27 04:22:51 +0000
@@ -25,23 +25,26 @@
}
,beforeValidateHandler: function(form)
{
- var dobType = $('#patientForm [id=dobType]').val();
+ var checked = byId( 'verified' ).checked;
- if( dobType=='V' || dobType=='D' )
+ var birthDate = $('#patientForm [id=birthDate]').val();
+ var age = $('#patientForm [id=age]').val();
+ if( birthDate != '' && age!='' )
{
- var birthDate = $('#patientForm [id=birthDate]').val();
- if( birthDate != '' ){
- $("#patientForm [id=memberValidator]").val(birthDate);
- }
- }else{
- var age = $('#patientForm [id=age]').val();
- $("#patientForm [id=memberValidator]").val(age);
- }
+ showById( 'validateBirthdate' );
+ $("#patientForm [id=memberValidator]").val("birthDate");
+ return false;
+ }
+ else if( birthDate == '' && age == '' ) {
+ jQuery( '#validateBirthdate' ).removeClass( 'error').addClass('error valid');
+ $("#patientForm [id=memberValidator]").val("");
+ }
+ hideById( 'validateBirthdate' );
}
});
- dobTypeOnChange( 'patientForm' );
+ verifiedOnchange( 'patientForm' );
checkedDuplicate = false;
if("$!patient.dobType" == 'A'){
var i18n_please_select_relationshipType = '$encoder.jsEscape( $i18n.getString( "please_verify_birthday" ) , "'")';
@@ -92,40 +95,20 @@
</tr>
<tr>
- <td class='text-column'><label for="dobType">$i18n.getString( "dob_type" )<em title="$i18n.getString( "required" )" class="required">*</em></label></td>
- <td class="input-column" >
- <select id='dobType' name="dobType" class="{validate:{required:true}}">
- <option value="" selected="selected">[$i18n.getString( "please_select" )]</option>
- <option value="V" #if($!patient.dobType=='V') selected #end>$i18n.getString( "verified" )</option>
- <option value="D" #if($!patient.dobType=='D') selected #end>$i18n.getString( "declared" )</option>
- <option value="A" #if($!patient.dobType=='A') selected #end>$i18n.getString( "approximated" )</option>
- </select>
- </td>
- </tr>
-
- <tr id='ageSpan' class="hidden" >
- <td class='text-column'><label for="age">$i18n.getString( "age" ) </label><em title="$i18n.getString( "required" )" class="required">*</em> </label></td>
- <td class="input-column" >
- <select id="ageType" name="ageType" >
- <option value="D" #if($!patient.getAgeType()=='D') selected #end> $i18n.getString('day')</option>
- <option value="M" #if($!patient.getAgeType()=='M') selected #end> $i18n.getString('month')</option>
- <option value="Y" #if($!patient.getAgeType()=='Y') selected #end> $i18n.getString('year')</option>
- </select>
- <input type="text" id="age" name="age" class="{validate:{number:true, alphanumeric: true}}">
- $!patient.getAge()
- </td>
- </tr>
-
- <tr id='birthdaySpan' class="hidden" >
- <td class='text-column'><label for="birthDate">$i18n.getString( "date_of_birth" )<em title="$i18n.getString( "required" )" class="required">*</em> </label></td>
- <td class="input-column" >
- <input type="text" id="birthDate" name="birthDate" value="$format.formatDate( $!patient.birthDate )" >
- </td>
- </tr>
-
+ <td class='text-column'><label for="birthDate">$i18n.getString( "date_of_birth" )<em title="$i18n.getString( "required" )" class="required">*</em></label></td>
+ <td class="input-column" >
+ <input type="text" id="birthDate" name="birthDate" value="$format.formatDate( $!patient.birthDate )" style='width:168px' >
+ $i18n.getString( "verified" ) <input type='checkbox' id='verified' name='verified' onchange='verifiedOnchange();' #if($patient.dobType=='V') checked #end >
+ $i18n.getString( "age" )<input type="text" id="age" name="age" class="{validate:{number:true, alphanumeric: true}}" style="width:50px" #if($patient.dobType!='V') disable #end >
+ </td>
+ </tr>
+
<tr>
<td></td>
- <td class="input-column" ><input id="memberValidator" class="hidden {validate:{required:true}}"/></td>
+ <td class="input-column" >
+ <span id='validateBirthdate' class="hidden"><i>$i18n.getString('please_fill_out_only_one_of_these_fields')</i></span>
+ <input id="memberValidator" class="hidden {validate:{required:true}}"/>
+ </td>
</tr>
<tr>