← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 3583: Case entry - Visit plan - Showed the list of visit plan based on the selected sorting attribute b...

 

------------------------------------------------------------
revno: 3583
committer: Hieu <hieu.hispvietnam@xxxxxxxxx>
branch nick: dhis2
timestamp: Thu 2011-05-12 14:02:28 +0700
message:
  Case entry - Visit plan - Showed the list of visit plan based on the selected sorting attribute by ajax. And do paging for this list.
added:
  dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/visitplan/SearchVisitPlanAction.java
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/loadVisitPlan.vm
modified:
  dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/visitplan/VisitPlanAction.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/org/hisp/dhis/caseentry/i18n_module.properties
  dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module_vi_VN.properties
  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/visitPlan.js
  dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/visitPlan.vm
  dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/paging/paging.vm
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/listPatient.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
=== added file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/visitplan/SearchVisitPlanAction.java'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/visitplan/SearchVisitPlanAction.java	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/visitplan/SearchVisitPlanAction.java	2011-05-12 07:02:28 +0000
@@ -0,0 +1,223 @@
+/*
+ * 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.visitplan;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.hisp.dhis.activityplan.Activity;
+import org.hisp.dhis.activityplan.ActivityPlanService;
+import org.hisp.dhis.organisationunit.OrganisationUnit;
+import org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager;
+import org.hisp.dhis.paging.ActionPagingSupport;
+import org.hisp.dhis.patient.Patient;
+import org.hisp.dhis.patient.PatientAttribute;
+import org.hisp.dhis.patient.PatientAttributeService;
+import org.hisp.dhis.patient.PatientService;
+import org.hisp.dhis.patientattributevalue.PatientAttributeValue;
+import org.hisp.dhis.patientattributevalue.PatientAttributeValueService;
+import org.hisp.dhis.program.ProgramStageInstance;
+
+/**
+ * @author Dang Duy Hieu
+ * @version $Id$
+ */
+public class SearchVisitPlanAction
+    extends ActionPagingSupport<Patient>
+{
+    // -------------------------------------------------------------------------
+    // Dependencies
+    // -------------------------------------------------------------------------
+
+    private OrganisationUnitSelectionManager selectionManager;
+
+    public void setSelectionManager( OrganisationUnitSelectionManager selectionManager )
+    {
+        this.selectionManager = selectionManager;
+    }
+
+    private PatientService patientService;
+
+    public void setPatientService( PatientService patientService )
+    {
+        this.patientService = patientService;
+    }
+
+    private PatientAttributeValueService patientAttributeValueService;
+
+    public void setPatientAttributeValueService( PatientAttributeValueService patientAttributeValueService )
+    {
+        this.patientAttributeValueService = patientAttributeValueService;
+    }
+
+    private PatientAttributeService patientAttributeService;
+
+    public void setPatientAttributeService( PatientAttributeService patientAttributeService )
+    {
+        this.patientAttributeService = patientAttributeService;
+    }
+
+    private ActivityPlanService activityPlanService;
+
+    public void setActivityPlanService( ActivityPlanService activityPlanService )
+    {
+        this.activityPlanService = activityPlanService;
+    }
+
+    // -------------------------------------------------------------------------
+    // Input/output
+    // -------------------------------------------------------------------------
+
+    private Integer sortingAttributeId;
+
+    public void setSortingAttributeId( Integer sortingAttributeId )
+    {
+        this.sortingAttributeId = sortingAttributeId;
+    }
+
+    public Integer getSortingAttributeId()
+    {
+        return sortingAttributeId;
+    }
+
+    private PatientAttribute sortingAttribute;
+
+    public PatientAttribute getSortingAttribute()
+    {
+        return sortingAttribute;
+    }
+
+    private OrganisationUnit organisationUnit;
+
+    public OrganisationUnit getOrganisationUnit()
+    {
+        return organisationUnit;
+    }
+
+    private Map<Patient, Set<ProgramStageInstance>> visitsByPatients = new HashMap<Patient, Set<ProgramStageInstance>>();
+
+    public Map<Patient, Set<ProgramStageInstance>> getVisitsByPatients()
+    {
+        return visitsByPatients;
+    }
+
+    private Map<Integer, Collection<PatientAttributeValue>> attributeValueMap = new HashMap<Integer, Collection<PatientAttributeValue>>();
+
+    public Map<Integer, Collection<PatientAttributeValue>> getAttributeValueMap()
+    {
+        return attributeValueMap;
+    }
+
+    private Collection<Patient> sortedPatients = new ArrayList<Patient>();
+
+    public Collection<Patient> getSortedPatients()
+    {
+        return sortedPatients;
+    }
+
+    private Collection<Activity> activities = new ArrayList<Activity>();
+
+    public Collection<Activity> getActivities()
+    {
+        return activities;
+    }
+
+    // -------------------------------------------------------------------------
+    // Action implementation
+    // -------------------------------------------------------------------------
+
+    public String execute()
+        throws Exception
+    {
+        // ---------------------------------------------------------------------
+        // Get the facility planning to do a visit
+        // ---------------------------------------------------------------------
+
+        organisationUnit = selectionManager.getSelectedOrganisationUnit();
+
+        activities = activityPlanService.getActivitiesByProvider( organisationUnit );
+
+        for ( Activity activity : activities )
+        {
+            if ( visitsByPatients.containsKey( activity.getBeneficiary() ) )
+            {
+                visitsByPatients.get( activity.getBeneficiary() ).add( activity.getTask() );
+            }
+            else
+            {
+                Set<ProgramStageInstance> programStageInstancess = new HashSet<ProgramStageInstance>();
+
+                programStageInstancess.add( activity.getTask() );
+
+                visitsByPatients.put( activity.getBeneficiary(), programStageInstancess );
+            }
+        }
+
+        if ( !visitsByPatients.keySet().isEmpty() )
+        {
+            Collection<Patient> patientsToBeVisited = visitsByPatients.keySet();
+
+            this.paging = this.createPaging( patientsToBeVisited.size() );
+
+            patientsToBeVisited = this.getBlockElement( new ArrayList<Patient>( patientsToBeVisited ), paging
+                .getStartPos(), paging.getEndPos() );
+
+            // -------------------------------------------------------------
+            // Get all the attributes of the patients to be visited (in case
+            // users want to make sorting based on attributes
+            // -------------------------------------------------------------
+
+            attributeValueMap = patientAttributeValueService
+                .getPatientAttributeValueMapForPatients( patientsToBeVisited );
+
+            // -------------------------------------------------------------
+            // Sort patients to be visited based on the chosen attribute
+            // -------------------------------------------------------------
+
+            if ( sortingAttributeId != null )
+            {
+                sortingAttribute = patientAttributeService.getPatientAttribute( sortingAttributeId );
+            }
+
+            if ( sortingAttribute != null )
+            {
+                sortedPatients = patientService.sortPatientsByAttribute( patientsToBeVisited, sortingAttribute );
+            }
+            else
+            {
+                sortedPatients = patientsToBeVisited;
+            }
+        }
+
+        return SUCCESS;
+    }
+}

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/visitplan/VisitPlanAction.java'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/visitplan/VisitPlanAction.java	2011-03-31 01:49:21 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/java/org/hisp/dhis/caseentry/action/visitplan/VisitPlanAction.java	2011-05-12 07:02:28 +0000
@@ -27,30 +27,18 @@
 
 package org.hisp.dhis.caseentry.action.visitplan;
 
-import java.util.ArrayList;
 import java.util.Collection;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
 
-import org.hisp.dhis.activityplan.Activity;
-import org.hisp.dhis.activityplan.ActivityPlanService;
-import org.hisp.dhis.organisationunit.OrganisationUnit;
-import org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager;
-import org.hisp.dhis.patient.Patient;
 import org.hisp.dhis.patient.PatientAttribute;
 import org.hisp.dhis.patient.PatientAttributeService;
-import org.hisp.dhis.patient.PatientService;
-import org.hisp.dhis.patientattributevalue.PatientAttributeValue;
-import org.hisp.dhis.patientattributevalue.PatientAttributeValueService;
-import org.hisp.dhis.program.ProgramStageInstance;
 
 import com.opensymphony.xwork2.Action;
 
 /**
  * @author Abyot Asalefew Gizaw
  * @version $Id$
+ * @modifier Dang Duy Hieu
+ * @since 2011-12-05
  */
 public class VisitPlanAction
     implements Action
@@ -59,27 +47,6 @@
     // Dependencies
     // -------------------------------------------------------------------------
 
-    private OrganisationUnitSelectionManager selectionManager;
-
-    public void setSelectionManager( OrganisationUnitSelectionManager selectionManager )
-    {
-        this.selectionManager = selectionManager;
-    }
-
-    private PatientService patientService;
-
-    public void setPatientService( PatientService patientService )
-    {
-        this.patientService = patientService;
-    }
-
-    private PatientAttributeValueService patientAttributeValueService;
-
-    public void setPatientAttributeValueService( PatientAttributeValueService patientAttributeValueService )
-    {
-        this.patientAttributeValueService = patientAttributeValueService;
-    }
-
     private PatientAttributeService patientAttributeService;
 
     public void setPatientAttributeService( PatientAttributeService patientAttributeService )
@@ -87,35 +54,9 @@
         this.patientAttributeService = patientAttributeService;
     }
 
-    private ActivityPlanService activityPlanService;
-
-    public void setActivityPlanService( ActivityPlanService activityPlanService )
-    {
-        this.activityPlanService = activityPlanService;
-    }
-
-    // -------------------------------------------------------------------------
-    // Input/output
-    // -------------------------------------------------------------------------
-
-    private Integer sortingAttributeId;
-
-    public void setSortingAttributeId( Integer sortingAttributeId )
-    {
-        this.sortingAttributeId = sortingAttributeId;
-    }
-
-    public Integer getSortingAttributeId()
-    {
-        return sortingAttributeId;
-    }
-
-    private PatientAttribute sortingAttribute;
-
-    public PatientAttribute getSortingAttribute()
-    {
-        return sortingAttribute;
-    }
+    // -------------------------------------------------------------------------
+    // Output
+    // -------------------------------------------------------------------------
 
     private Collection<PatientAttribute> attributes;
 
@@ -124,41 +65,6 @@
         return attributes;
     }
 
-    private OrganisationUnit organisationUnit;
-
-    public OrganisationUnit getOrganisationUnit()
-    {
-        return organisationUnit;
-    }
-
-    private Map<Patient, Set<ProgramStageInstance>> visitsByPatients = new HashMap<Patient, Set<ProgramStageInstance>>();
-
-    public Map<Patient, Set<ProgramStageInstance>> getVisitsByPatients()
-    {
-        return visitsByPatients;
-    }
-
-    private Map<Integer, Collection<PatientAttributeValue>> attributeValueMap = new HashMap<Integer, Collection<PatientAttributeValue>>();
-
-    public Map<Integer, Collection<PatientAttributeValue>> getAttributeValueMap()
-    {
-        return attributeValueMap;
-    }
-
-    private Collection<Patient> sortedPatients = new ArrayList<Patient>();
-
-    public Collection<Patient> getSortedPatients()
-    {
-        return sortedPatients;
-    }
-
-    private Collection<Activity> activities = new ArrayList<Activity>();
-
-    public Collection<Activity> getActivities()
-    {
-        return activities;
-    }
-
     // -------------------------------------------------------------------------
     // Action implementation
     // -------------------------------------------------------------------------
@@ -172,66 +78,6 @@
 
         attributes = patientAttributeService.getAllPatientAttributes();
 
-        // ---------------------------------------------------------------------
-        // Get the facility planning to do a visit
-        // ---------------------------------------------------------------------
-
-        organisationUnit = selectionManager.getSelectedOrganisationUnit();
-
-        activities = activityPlanService.getActivitiesByProvider( organisationUnit );
-
-        for ( Activity activity : activities )
-        {
-            if ( visitsByPatients.containsKey( activity.getBeneficiary() ) )
-            {
-                visitsByPatients.get( activity.getBeneficiary() ).add( activity.getTask() );
-            }
-            else
-            {
-                Set<ProgramStageInstance> programStageInstancess = new HashSet<ProgramStageInstance>();
-
-                programStageInstancess.add( activity.getTask() );
-
-                visitsByPatients.put( activity.getBeneficiary(), programStageInstancess );
-            }
-        }
-
-        if ( !visitsByPatients.keySet().isEmpty() )
-        {
-            Collection<Patient> patientsToBeVisted = visitsByPatients.keySet();
-
-            // -------------------------------------------------------------
-            // Get all the attributes of the patients to be visited (in case
-            // users want to make sorting based on attributes
-            // -------------------------------------------------------------
-
-            attributeValueMap = patientAttributeValueService
-                .getPatientAttributeValueMapForPatients( patientsToBeVisted );
-
-            // -------------------------------------------------------------
-            // Sort patients to be visited based on the chosen attribute
-            // -------------------------------------------------------------
-
-            if ( attributes.size() > 0 )
-            {
-                sortingAttribute = attributes.iterator().next();
-            }
-
-            if ( sortingAttributeId != null )
-            {
-                sortingAttribute = patientAttributeService.getPatientAttribute( sortingAttributeId );
-            }
-
-            if ( sortingAttribute != null )
-            {
-                sortedPatients = patientService.sortPatientsByAttribute( patientsToBeVisted, sortingAttribute );
-            }
-            else
-            {
-                sortedPatients = patientsToBeVisted;
-            }
-        }
-
         return SUCCESS;
     }
 }

=== 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	2011-05-11 02:13:32 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/META-INF/dhis/beans.xml	2011-05-12 07:02:28 +0000
@@ -239,6 +239,13 @@
 	<bean id="org.hisp.dhis.caseentry.action.visitplan.VisitPlanAction"
 		class="org.hisp.dhis.caseentry.action.visitplan.VisitPlanAction"
 		scope="prototype">
+		<property name="patientAttributeService"
+			ref="org.hisp.dhis.patient.PatientAttributeService" />
+	</bean>
+
+	<bean id="org.hisp.dhis.caseentry.action.visitplan.SearchVisitPlanAction"
+		class="org.hisp.dhis.caseentry.action.visitplan.SearchVisitPlanAction"
+		scope="prototype">
 		<property name="selectionManager"
 			ref="org.hisp.dhis.ouwt.manager.OrganisationUnitSelectionManager" />
 		<property name="patientService" ref="org.hisp.dhis.patient.PatientService" />

=== 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	2011-05-10 07:25:28 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module.properties	2011-05-12 07:02:28 +0000
@@ -307,4 +307,5 @@
 should															= should
 validation														= Validation
 program_validation_description									= Program Validation Description
-please_select_village											= Please select village
\ No newline at end of file
+please_select_village											= Please select village
+select_sorting_attribute										= Select a specfied attribute / ALL
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module_vi_VN.properties'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module_vi_VN.properties	2011-02-22 09:18:34 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/org/hisp/dhis/caseentry/i18n_module_vi_VN.properties	2011-05-12 07:02:28 +0000
@@ -1,80 +1,80 @@
-weight_of_the_child	                                            = C\u00E2n n\u1EB7ng tr\u1EBB
-weight_of_pregnant_women	                                    = C\u00E2n n\u1EB7ng ph\u1EE5 n\u1EEF mang thai
-weight_of_child                                                 = C\u00E2n n\u1EB7ng tr\u1EBB
-weight_of_chield	                                            = C\u00E2n n\u1EB7ng tr\u1EBB
-weight	                                                        = C\u00E2n n\u1EB7ng
-vitamina_dose9	                                                = Vitamin A ( Li\u1EC1u 9)
-vitamina_dose8	                                                = Vitamin A ( Li\u1EC1u 8)
-vitamina_dose7	                                                = Vitamin A ( Li\u1EC1u 7)
-vitamina_dose6	                                                = Vitamin A ( Li\u1EC1u 6)
-vitamina_dose5	                                                = Vitamin A ( Li\u1EC1u 5)
-vitamina_dose4	                                                = Vitamin A ( Li\u1EC1u 4)
-vitamina_dose3	                                                = Vitamin A ( Li\u1EC1u 3)
-vitamina_dose2	                                                = Vitamin A ( Li\u1EC1u 2)
-vitamina_dose1	                                                = Vitamin A ( Li\u1EC1u 1)
-visit_plan 														= K\u1EBF ho\u1EA1ch \u0111\u1ECBnh k\u1EF3
-village 														= \u0110\u01A1n v\u1ECB
-value_must_positive_number										= Gi\u00E1 tr\u1ECB ph\u1EA3i l\u00E0 m\u1ED9t s\u1ED1 nguy\u00EAn d\u01B0\u01A1ng
-value_must_number												= Gi\u00E1 tr\u1ECB ph\u1EA3i l\u00E0 m\u1ED9t con s\u1ED1
-value_must_negative_number										= Gi\u00E1 tr\u1ECB ph\u1EA3i l\u00E0 m\u1ED9t s\u1ED1 nguy\u00EAn \u00E2m
-value_must_integer 												= Gi\u00E1 tr\u1ECB ph\u1EA3i l\u00E0 m\u1ED9t s\u1ED1 nguy\u00EAn
-value															= Gi\u00E1 tr\u1ECB
-use_default_form 												= D\u00F9ng m\u1EABu m\u1EB7c \u0111\u1ECBnh
-use_custom_form 												= D\u00F9ng m\u1EABu thi\u1EBFt k\u1EBF
-urine_test_sugar	                                            = Ki\u1EC3m tra Urine - \u0110\u01B0\u1EDDng
-urine_test_infection                                            = Ki\u1EC3m tra nhi\u1EC5m Urine
-urine_test_albumin	                                            = Ki\u1EC3m tra Urine - Albumin
-urine_test_Infection                                            = Ki\u1EC3m tra nhi\u1EC5m Urine 
+weight_of_the_child	                                            = C\u00e2n n\u1eb7ng tr\u1ebb
+weight_of_pregnant_women	                                    = C\u00e2n n\u1eb7ng ph\u1ee5 n\u1eef mang thai
+weight_of_child                                                 = C\u00e2n n\u1eb7ng tr\u1ebb
+weight_of_chield	                                            = C\u00e2n n\u1eb7ng tr\u1ebb
+weight	                                                        = C\u00e2n n\u1eb7ng
+vitamina_dose9	                                                = Vitamin A ( Li\u1ec1u 9)
+vitamina_dose8	                                                = Vitamin A ( Li\u1ec1u 8)
+vitamina_dose7	                                                = Vitamin A ( Li\u1ec1u 7)
+vitamina_dose6	                                                = Vitamin A ( Li\u1ec1u 6)
+vitamina_dose5	                                                = Vitamin A ( Li\u1ec1u 5)
+vitamina_dose4	                                                = Vitamin A ( Li\u1ec1u 4)
+vitamina_dose3	                                                = Vitamin A ( Li\u1ec1u 3)
+vitamina_dose2	                                                = Vitamin A ( Li\u1ec1u 2)
+vitamina_dose1	                                                = Vitamin A ( Li\u1ec1u 1)
+visit_plan 														= K\u1ebf ho\u1ea1ch \u0111\u1ecbnh k\u1ef3
+village 														= \u0110\u01a1n v\u1ecb
+value_must_positive_number										= Gi\u00e1 tr\u1ecb ph\u1ea3i l\u00e0 m\u1ed9t s\u1ed1 nguy\u00ean d\u01b0\u01a1ng
+value_must_number												= Gi\u00e1 tr\u1ecb ph\u1ea3i l\u00e0 m\u1ed9t con s\u1ed1
+value_must_negative_number										= Gi\u00e1 tr\u1ecb ph\u1ea3i l\u00e0 m\u1ed9t s\u1ed1 nguy\u00ean \u00e2m
+value_must_integer 												= Gi\u00e1 tr\u1ecb ph\u1ea3i l\u00e0 m\u1ed9t s\u1ed1 nguy\u00ean
+value															= Gi\u00e1 tr\u1ecb
+use_default_form 												= D\u00f9ng m\u1eabu m\u1eb7c \u0111\u1ecbnh
+use_custom_form 												= D\u00f9ng m\u1eabu thi\u1ebft k\u1ebf
+urine_test_sugar	                                            = Ki\u1ec3m tra Urine - \u0110\u01b0\u1eddng
+urine_test_infection                                            = Ki\u1ec3m tra nhi\u1ec5m Urine
+urine_test_albumin	                                            = Ki\u1ec3m tra Urine - Albumin
+urine_test_Infection                                            = Ki\u1ec3m tra nhi\u1ec5m Urine 
 urine_test_Infection 	                                        = Urine Test \u2013 Infection (Pus Cells, Bacteria)
-updated															= \u0110\u00E3 \u0111\u01B0\u1EE3c c\u1EADp nh\u1EADt
-unknow_clinic 													= Ph\u00F2n kh\u00E1m t\u01B0
-typhoid_vaccine	                                                = V\u1EAFc xin th\u01B0\u01A1ng h\u00E0n
-type_of_delivery	                                            = Ki\u1EC3u sinh
-two_years_above	                                                = 2 tu\u1ED5i & l\u1EDBn h\u01A1n
+updated															= \u0110\u00e3 \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt
+unknow_clinic 													= Ph\u00f2n kh\u00e1m t\u01b0
+typhoid_vaccine	                                                = V\u1eafc xin th\u01b0\u01a1ng h\u00e0n
+type_of_delivery	                                            = Ki\u1ec3u sinh
+two_years_above	                                                = 2 tu\u1ed5i & l\u1edbn h\u01a1n
 tt_booster	                                                    = TT Booster
-tt2_date	                                                    = Ng\u00E0y TT2
-tt1_date	                                                    = Ng\u00E0y TT1
-to 																= \u0110\u1EBFn
-time_difference_between_present_and_last_pregnancy_mother       = Th\u1EDDi gian t\u1EEB l\u1EA7n mang thai l\u1EA7n cu\u1ED1i \u0111\u1EBFn nay 
-time_difference_between_present_and_last_pregnancy              = Th\u1EDDi gian t\u1EEB l\u1EA7n mang thai l\u1EA7n cu\u1ED1i \u0111\u1EBFn nay (s\u1ED1 th\u00E1ng)
-third_visit	                                                    = L\u1EA7n kh\u00E1m th\u1EE9 3
+tt2_date	                                                    = Ng\u00e0y TT2
+tt1_date	                                                    = Ng\u00e0y TT1
+to 																= \u0110\u1ebfn
+time_difference_between_present_and_last_pregnancy_mother       = Th\u1eddi gian t\u1eeb l\u1ea7n mang thai l\u1ea7n cu\u1ed1i \u0111\u1ebfn nay 
+time_difference_between_present_and_last_pregnancy              = Th\u1eddi gian t\u1eeb l\u1ea7n mang thai l\u1ea7n cu\u1ed1i \u0111\u1ebfn nay (s\u1ed1 th\u00e1ng)
+third_visit	                                                    = L\u1ea7n kh\u00e1m th\u1ee9 3
 tetanus_toxoid_tt16	                                            = Tetanus Toxoid (TT) 16
 etanus_toxoid_tt10	                                            = Tetanus Toxoid (TT) 10
 testing_for_hepatitis_b	                                        = Testing For Hepatitis-B
 test_for_thalassemia	                                        = Test For Thalassemia
-temperature_after_delivery	                                    = Th\u00E2n nhi\u1EC7t sau sinh
-summary_report 													= Th\u1ED1ng k\u00EA chung
+temperature_after_delivery	                                    = Th\u00e2n nhi\u1ec7t sau sinh
+summary_report 													= Th\u1ed1ng k\u00ea chung
 sub_center 														= Sub center
 still_birth	                                                    = Still Birth
 status															= Status
-start_date 														= Ng\u00E0y b\u1EAFt \u0111\u1EA7u
-stage 															= Giai \u0111o\u1EA1n
-specify_a_search_criteria 										= H\u00E3y x\u00E1c \u0111\u1ECBnh \u0111i\u1EC1u ki\u1EC7n t\u00ECm ki\u1EBFm
-sort_by 														= S\u1EAFp x\u1EBFp theo
-sixth_visit                                                     = L\u1EA7n kh\u00E1m th\u1EE9 6
-sisteen_to_twentyfourth_months_after_birth	                    = 16-24 th\u00E1ng sau sinh
-seventh_visit                                                   = L\u1EA7n kh\u00E1m th\u1EE9 7
-services	                                                    = C\u00E1c d\u1ECBch v\u1EE5
-service_date 													= Ch\u1ECDn d\u1ECBch v\u1EE5
-select_value 													= Ch\u1ECDn gi\u00E1 tr\u1ECB
-select 															= Ch\u1ECDn
-second_visit	                                                = L\u1EA7n kh\u00E1m th\u1EE9 2
-searching_patient_failed 										= L\u1ED7i khi t\u00ECm ki\u1EBFm c\u00E1 th\u1EC3
-search_result_matching_the_search_criteria 						= K\u1EBFt qu\u1EA3 t\u00ECm ki\u1EBFm theo \u0111i\u1EC1u ki\u1EC7n\:
-search_by_name_identifier 										= T\u00ECm ki\u1EBFm theo t\u00EAn v\u00E0 m\u00E3 s\u1ED1 (h\u1EC7 th\u1ED1ng)
-search 															= T\u00ECm ki\u1EBFm
-scheduled_for 													= D\u1EF1 t\u00EDnh v\u00E0o  
-saving_value_failed_status_code 								= L\u01B0u d\u1EEF li\u1EC7u b\u1ECB l\u1ED7i v\u00E0 tr\u1EA1ng th\u00E1i l\u1ED7i 
-saving_value_failed_error_code 									= L\u01B0u d\u1EEF li\u1EC7u b\u1ECB l\u1ED7i v\u00E0 m\u00E3 l\u1ED7i
-requried 														= B\u1EAFt bu\u1ED9c
-reports 														= C\u00E1c b\u00E1o c\u00E1o
-reporting_unit 													= \u0110\u01A1n v\u1ECB b\u00E1o c\u00E1o
-report_management 												= Qu\u1EA3n l\u00FD b\u00E1o c\u00E1o
-report_generation_failed 										= L\u1ED7i xu\u1EA5t b\u00E1o c\u00E1o
-report_date_warning 											= H\u00E3y ch\u1ECDn ng\u00E0y b\u00E1o c\u00E1o tr\u01B0\u1EDBc ng\u00E0y nh\u1EADp d\u1EEF li\u1EC7u \u0111\u1ED1i v\u1EDBi giai \u0111o\u1EA1n n\u00E0y c\u1EE7a ch\u01B0\u01A1ng tr\u00ECnh
-report_date 													= Ng\u00E0y b\u00E1o c\u00E1o
-registration_date 												= Ng\u00E0y \u0111\u0103ng k\u00FD
-registering_unit 												= \u0110\u01A1n v\u1ECB \u0111\u0103ng k\u00FD
+start_date 														= Ng\u00e0y b\u1eaft \u0111\u1ea7u
+stage 															= Giai \u0111o\u1ea1n
+specify_a_search_criteria 										= H\u00e3y x\u00e1c \u0111\u1ecbnh \u0111i\u1ec1u ki\u1ec7n t\u00ecm ki\u1ebfm
+sort_by 														= S\u1eafp x\u1ebfp theo
+sixth_visit                                                     = L\u1ea7n kh\u00e1m th\u1ee9 6
+sisteen_to_twentyfourth_months_after_birth	                    = 16-24 th\u00e1ng sau sinh
+seventh_visit                                                   = L\u1ea7n kh\u00e1m th\u1ee9 7
+services	                                                    = C\u00e1c d\u1ecbch v\u1ee5
+service_date 													= Ch\u1ecdn d\u1ecbch v\u1ee5
+select_value 													= Ch\u1ecdn gi\u00e1 tr\u1ecb
+select 															= Ch\u1ecdn
+second_visit	                                                = L\u1ea7n kh\u00e1m th\u1ee9 2
+searching_patient_failed 										= L\u1ed7i khi t\u00ecm ki\u1ebfm c\u00e1 th\u1ec3
+search_result_matching_the_search_criteria 						= K\u1ebft qu\u1ea3 t\u00ecm ki\u1ebfm theo \u0111i\u1ec1u ki\u1ec7n\:
+search_by_name_identifier 										= T\u00ecm ki\u1ebfm theo t\u00ean v\u00e0 m\u00e3 s\u1ed1 (h\u1ec7 th\u1ed1ng)
+search 															= T\u00ecm ki\u1ebfm
+scheduled_for 													= D\u1ef1 t\u00ednh v\u00e0o  
+saving_value_failed_status_code 								= L\u01b0u d\u1eef li\u1ec7u b\u1ecb l\u1ed7i v\u00e0 tr\u1ea1ng th\u00e1i l\u1ed7i 
+saving_value_failed_error_code 									= L\u01b0u d\u1eef li\u1ec7u b\u1ecb l\u1ed7i v\u00e0 m\u00e3 l\u1ed7i
+requried 														= B\u1eaft bu\u1ed9c
+reports 														= C\u00e1c b\u00e1o c\u00e1o
+reporting_unit 													= \u0110\u01a1n v\u1ecb b\u00e1o c\u00e1o
+report_management 												= Qu\u1ea3n l\u00fd b\u00e1o c\u00e1o
+report_generation_failed 										= L\u1ed7i xu\u1ea5t b\u00e1o c\u00e1o
+report_date_warning 											= H\u00e3y ch\u1ecdn ng\u00e0y b\u00e1o c\u00e1o tr\u01b0\u1edbc ng\u00e0y nh\u1eadp d\u1eef li\u1ec7u \u0111\u1ed1i v\u1edbi giai \u0111o\u1ea1n n\u00e0y c\u1ee7a ch\u01b0\u01a1ng tr\u00ecnh
+report_date 													= Ng\u00e0y b\u00e1o c\u00e1o
+registration_date 												= Ng\u00e0y \u0111\u0103ng k\u00fd
+registering_unit 												= \u0110\u01a1n v\u1ecb \u0111\u0103ng k\u00fd
 referred_to                                                     = Referred To
 referred_for	                                                = Referred For
 referred_by	                                                    = Referred By
@@ -83,18 +83,18 @@
 referral_date	                                                = Referral Date	
 referral_centres                                                = Referral Centres
 referral	                                                    = Referral
-records_for 													= H\u1ED3 s\u01A1 cho
-recording_date 													= Ng\u00E0y ghi nh\u1EADn
-pulse_after_delivery	                                        = Nh\u1ECBp tim sau sinh
-pulse	                                                        = Nh\u1ECBp tim
-program_stages_history_plan 									= Ti\u1EC1n s\u1EED/ K\u1EBF ho\u1EA1ch c\u00E1c Giai \u0111o\u1EA1n c\u1EE7a ch\u01B0\u01A1ng tr\u00ECnh
-program_stage_name 												= T\u00EAn giai \u0111o\u1EA1n ch\u01B0\u01A1ng tr\u00ECnh
-program_stage 													= Giai \u0111o\u1EA1n c\u1EE7a ch\u01B0\u01A1ng tr\u00ECnh
-program 														= Ch\u01B0\u01A1ng tr\u00ECnh
+records_for 													= H\u1ed3 s\u01a1 cho
+recording_date 													= Ng\u00e0y ghi nh\u1eadn
+pulse_after_delivery	                                        = Nh\u1ecbp tim sau sinh
+pulse	                                                        = Nh\u1ecbp tim
+program_stages_history_plan 									= Ti\u1ec1n s\u1eed/ K\u1ebf ho\u1ea1ch c\u00e1c Giai \u0111o\u1ea1n c\u1ee7a ch\u01b0\u01a1ng tr\u00ecnh
+program_stage_name 												= T\u00ean giai \u0111o\u1ea1n ch\u01b0\u01a1ng tr\u00ecnh
+program_stage 													= Giai \u0111o\u1ea1n c\u1ee7a ch\u01b0\u01a1ng tr\u00ecnh
+program 														= Ch\u01b0\u01a1ng tr\u00ecnh
 previous_still_births	                                        = Previous Still Births
 previous_live_births_male	                                    = Previous Live Births Male
 previous_live_births_female	                                    = Previous Live Births Female
-previous_abortion	                                            = Ph\u00E1 thai l\u1EA7n tr\u01B0\u1EDBc
+previous_abortion	                                            = Ph\u00e1 thai l\u1ea7n tr\u01b0\u1edbc
 pregnant_women_under_gone_ultrasound_checkup	                = Pregnant Women Under Gone Ultrasound Checkup
 pregnant_women_diabetic	                                        = Pregnant Women Diabetic
 pregnancy_outcome_details                                       = Pregnancy Outcome Details
@@ -104,187 +104,188 @@
 post_delivery_complication_attended_at_facility	                = Post Delivery Complication Attended At Facility
 post_delivery_complication	                                    = Post Delivery Complication
 position_of_foetus	                                            = Position Of Foetus
-pnc_home_visit	                                                = Th\u0103m b\u1EC7nh t\u1EA1i nh\u00E0
-pnc_check_up                                                    = Kh\u00E1m b\u1EC7nh
-please_select_item_from_menu 									= H\u00E3y ch\u1ECDn m\u1EE5c t\u1EEB thanh ch\u1ECDn
-please_select_a_reporting_unit 									= H\u00E3y ch\u1ECDn m\u1ED9t \u0111\u01A1n v\u1ECB b\u00E1o c\u00E1o
-please_select_a_program 										= H\u00E3y ch\u1ECDn m\u1ED9t ch\u01B0\u01A1ng tr\u00ECnh
-please_select													= H\u00E3y ch\u1ECDn
-please_choose_a_valid_start_end_date 							= H\u00E3y ch\u1ECDn m\u1ED9t ng\u00E0y \u0111\u1EA7u v\u00E0 cu\u1ED1i h\u1EE3p l\u1EC7
-please_choose_a_valid_start_date 								= H\u00E3y ch\u1ECDn m\u1ED9t ng\u00E0y b\u1EAFt \u0111\u1EA7u h\u1EE3p l\u1EC7
-please_choose_a_valid_end_date 									= H\u00E3y ch\u1ECDn m\u1ED9t ng\u00E0y cu\u1ED1i h\u1EE3p l\u1EC7
-place_of_elivery	                                            = Ng\u00E0y sinh
-place_of_dlivery                                                = Ng\u00E0y sinh
-place_of_birth	                                                = N\u01A1i sinh
-period_of_amenorrhoea	                                        = Th\u1EDDi k\u00ECnh v\u00F4 kinh
-patient_identifier_s 											= \u0110\u1ECBnh d\u1EA1ng c\u00E1 th\u1EC3
-patient_identifier 												= \u0110\u1ECBnh d\u1EA1ng c\u00E1 th\u1EC3
-parity	                                                        = T\u01B0\u01A1ng \u0111\u1ED3ng
-other_facility 													= C\u01A1 s\u1EDF Y t\u1EBF kh\u00E1c
-other_attributes                                                = C\u00E1c thu\u1ED9c t\u00EDnh kh\u00E1c
-org_unit_name 													= \u0110\u01B0\u1EE3c cung c\u1EA5p b\u1EDFi
+pnc_home_visit	                                                = Th\u0103m b\u1ec7nh t\u1ea1i nh\u00e0
+pnc_check_up                                                    = Kh\u00e1m b\u1ec7nh
+please_select_item_from_menu 									= H\u00e3y ch\u1ecdn m\u1ee5c t\u1eeb thanh ch\u1ecdn
+please_select_a_reporting_unit 									= H\u00e3y ch\u1ecdn m\u1ed9t \u0111\u01a1n v\u1ecb b\u00e1o c\u00e1o
+please_select_a_program 										= H\u00e3y ch\u1ecdn m\u1ed9t ch\u01b0\u01a1ng tr\u00ecnh
+please_select													= H\u00e3y ch\u1ecdn
+please_choose_a_valid_start_end_date 							= H\u00e3y ch\u1ecdn m\u1ed9t ng\u00e0y \u0111\u1ea7u v\u00e0 cu\u1ed1i h\u1ee3p l\u1ec7
+please_choose_a_valid_start_date 								= H\u00e3y ch\u1ecdn m\u1ed9t ng\u00e0y b\u1eaft \u0111\u1ea7u h\u1ee3p l\u1ec7
+please_choose_a_valid_end_date 									= H\u00e3y ch\u1ecdn m\u1ed9t ng\u00e0y cu\u1ed1i h\u1ee3p l\u1ec7
+place_of_elivery	                                            = Ng\u00e0y sinh
+place_of_dlivery                                                = Ng\u00e0y sinh
+place_of_birth	                                                = N\u01a1i sinh
+period_of_amenorrhoea	                                        = Th\u1eddi k\u00ecnh v\u00f4 kinh
+patient_identifier_s 											= \u0110\u1ecbnh d\u1ea1ng c\u00e1 th\u1ec3
+patient_identifier 												= \u0110\u1ecbnh d\u1ea1ng c\u00e1 th\u1ec3
+parity	                                                        = T\u01b0\u01a1ng \u0111\u1ed3ng
+other_facility 													= C\u01a1 s\u1edf Y t\u1ebf kh\u00e1c
+other_attributes                                                = C\u00e1c thu\u1ed9c t\u00ednh kh\u00e1c
+org_unit_name 													= \u0110\u01b0\u1ee3c cung c\u1ea5p b\u1edfi
 opv_booster	                                                    = OPV Booster
 opv	                                                            = OPV
-operation 														= Ph\u1EA9u thu\u1EADt
-oedema						                                    = Ph\u00F9
-number_of_living_children	                                    = S\u1ED1 tr\u1EBB em s\u1ED1ng
-number_of_foetus	                                            = S\u1ED1 thai nhi
-nr 																= S\u1ED1
-not_available 													= Kh\u00F4ng c\u00F3 s\u1EB5n
-no_value_added_or_update										= Kh\u00F4ng d\u1EEF n\u00E0o \u0111\u01B0\u1EE3c th\u00EAm v\u00E0o hay c\u1EADp nh\u1EADt.
-no_value 														= H\u00E3y ch\u1ECDn
-no_custom_data_entry_exist 										= Kh\u00F4ng t\u1ED3n t\u1EA1i bi\u1EC3u nh\u1EADp thi\u1EBFt k\u1EBF
-nine_to_twelve_months_after_birth	                            = 9-12 th\u00E1ng sau sinh
-need_for_referral                                               = C\u1EA7n gi\u1EDBi thi\u1EC7u
-name_of_facility	                                            = T\u00EAn c\u1EE7a c\u01A1 s\u1EDF Y t\u1EBF
-name_based_data_entry_and_reports 								= Nh\u1EADp d\u1EEF li\u1EC7u cho c\u00E1 th\u1EC3 v\u00E0 C\u00E1c b\u00E1o c\u00E1o
-name_based_data_entry 											= Nh\u1EADp d\u1EEF li\u1EC7u cho c\u00E1 th\u1EC3
-multiple_data_entry												= Nh\u1EADp d\u1EEF li\u1EC7u cho nhi\u1EC1u c\u00E1 th\u1EC3
-mmr_vaccine	                                                    = V\u1EAFc-xin MMR
-min_days														= Ng\u00E0y t\u1ED1i thi\u1EC3u
-middle_name 													= T\u00EAn \u0111\u1EC7m
-measles_vaccine	                                                = V\u1EAFc-xin ph\u00F2ng s\u1EDFi
-max_days														= Ng\u00E0y t\u1ED1i \u0111a
-maternal_health_program_sheet	                                = B\u1EA3ng s\u1EE9c kh\u1ECFe b\u00E0 m\u1EB9
+operation 														= Ph\u1ea9u thu\u1eadt
+oedema						                                    = Ph\u00f9
+number_of_living_children	                                    = S\u1ed1 tr\u1ebb em s\u1ed1ng
+number_of_foetus	                                            = S\u1ed1 thai nhi
+nr 																= S\u1ed1
+not_available 													= Kh\u00f4ng c\u00f3 s\u1eb5n
+no_value_added_or_update										= Kh\u00f4ng d\u1eef n\u00e0o \u0111\u01b0\u1ee3c th\u00eam v\u00e0o hay c\u1eadp nh\u1eadt.
+no_value 														= H\u00e3y ch\u1ecdn
+no_custom_data_entry_exist 										= Kh\u00f4ng t\u1ed3n t\u1ea1i bi\u1ec3u nh\u1eadp thi\u1ebft k\u1ebf
+nine_to_twelve_months_after_birth	                            = 9-12 th\u00e1ng sau sinh
+need_for_referral                                               = C\u1ea7n gi\u1edbi thi\u1ec7u
+name_of_facility	                                            = T\u00ean c\u1ee7a c\u01a1 s\u1edf Y t\u1ebf
+name_based_data_entry_and_reports 								= Nh\u1eadp d\u1eef li\u1ec7u cho c\u00e1 th\u1ec3 v\u00e0 C\u00e1c b\u00e1o c\u00e1o
+name_based_data_entry 											= Nh\u1eadp d\u1eef li\u1ec7u cho c\u00e1 th\u1ec3
+multiple_data_entry												= Nh\u1eadp d\u1eef li\u1ec7u cho nhi\u1ec1u c\u00e1 th\u1ec3
+mmr_vaccine	                                                    = V\u1eafc-xin MMR
+min_days														= Ng\u00e0y t\u1ed1i thi\u1ec3u
+middle_name 													= T\u00ean \u0111\u1ec7m
+measles_vaccine	                                                = V\u1eafc-xin ph\u00f2ng s\u1edfi
+max_days														= Ng\u00e0y t\u1ed1i \u0111a
+maternal_health_program_sheet	                                = B\u1ea3ng s\u1ee9c kh\u1ecfe b\u00e0 m\u1eb9
 male 															= Nam
 madilu_kit                                                      = Madilu Kit
-live_birth_male	                                                = C\u00E1c tr\u1EBB s\u01A1 sinh s\u1ED1ng NAM
-live_birth_female	                                            = C\u00E1c tr\u1EBB s\u01A1 sinh s\u1ED1ng N\u1EEE
-list_all_patients 												= Li\u1EC7t k\u00EA t\u1EA5t c\u1EA3 c\u00E1c c\u00E1 th\u1EC3
-linked_facility_for_delivery	                                = N\u01A1i sinh (tr\u1EA1m Y t\u1EBF/b\u1EC7nh vi\u1EC7n tuy\u1EBFn/c\u01A1 s\u1EDF Y t\u1EBF kh\u00E1c...)
-last_name 														= H\u1ECD
-last_menstrual_period_date	                                    = L\u1EA7n h\u00E0nh kinh cu\u1ED1i c\u00F9ng
-jsy_registered                                                  = JSY \u0111\u00E3 \u0111\u0103ng k\u00FD
+live_birth_male	                                                = C\u00e1c tr\u1ebb s\u01a1 sinh s\u1ed1ng NAM
+live_birth_female	                                            = C\u00e1c tr\u1ebb s\u01a1 sinh s\u1ed1ng N\u1eee
+list_all_patients 												= Li\u1ec7t k\u00ea t\u1ea5t c\u1ea3 c\u00e1c c\u00e1 th\u1ec3
+linked_facility_for_delivery	                                = N\u01a1i sinh (tr\u1ea1m Y t\u1ebf/b\u1ec7nh vi\u1ec7n tuy\u1ebfn/c\u01a1 s\u1edf Y t\u1ebf kh\u00e1c...)
+last_name 														= H\u1ecd
+last_menstrual_period_date	                                    = L\u1ea7n h\u00e0nh kinh cu\u1ed1i c\u00f9ng
+jsy_registered                                                  = JSY \u0111\u00e3 \u0111\u0103ng k\u00fd
 jsy_motivator	                                                = JSY Motivator	
 jsy_details                                                     = JSY Details
 jsy_benificiary	                                                = JSY Benificiary
 jsy_benefit_paid_to_pregnant_amount_in_rs	                    = JSY Benefit Paid To Pregnant (Amount in Rs)
 jsy	                                                            = JSY
 je_vaccine	                                                    = JE Vaccine
-is_pregnant_women_having_rtisti	                                = Ph\u1EE5 n\u1EEF mang thai c\u00F3 b\u1ECB RTI/STI kh\u00F4ng?
-is_pregnant_women_having_essential_hypertension_high_bp         = Ph\u1EE5 n\u1EEF mang thai c\u00F3 b\u1ECB cao huy\u1EBFt \u00E1p kh\u00F4ng?
-is_pregnant_women_having_essential_hypertension                 = Ph\u1EE5 n\u1EEF mang thai c\u00F3 b\u1ECB cao huy\u1EBFt \u00E1p kh\u00F4ng?
-invalid_date 													= Ng\u00E0y kh\u00F4ng h\u1EE3p l\u1EC7
-intro_visit_plan 												= Xem k\u1EBF ho\u1EA1ch \u0111\u1ECBnh k\u1EF3 \u0111\u1EC3 c\u00F3 t\u1EA7m nh\u00ECn chung v\u1EC1 nh\u1EEFng th\u1EDDi k\u1EF3 c\u1EE7a giai \u0111o\u1EA1n ch\u01B0\u01A1ng tr\u00ECnh\: kh\u00E1c bi\u1EC7t, \u0111ang ch\u1EDD v\u00E0 \u0111\u00E3 ho\u00E0n t\u1EA5t.
-intro_summary_report 											= Xem th\u1ED1ng k\u00EA t\u1ED5ng qu\u00E1t \u0111\u1EC3 c\u00F3 t\u1EA7m nh\u00ECn chung v\u1EC1 c\u00E1c d\u1ECBch v\u1EE5 cung c\u1EA5p cho m\u1ED9t ch\u01B0\u01A1ng tr\u00ECnh.
-intro_data_entry 												= H\u00E3y nh\u1EADp d\u1EEF li\u1EC7u cho c\u00E1c c\u00E1 th\u1EC3 v\u00E0 c\u00E1c ch\u01B0\u01A1ng tr\u00ECnh t\u01B0\u01A1ng \u1EE9ng c\u00F9ng v\u1EDBi c\u00E1c giai \u0111o\u1EA1n c\u1EE7a ch\u01B0\u01A1ng tr\u00ECnh.
-intro_case_aggregation											= T\u1EF1 sinh ra c\u00E1c d\u1EEF li\u1EC7u theo \u0111\u1ECBnh k\u1EF3 t\u1EEB c\u00E1c d\u1EEF li\u1EC7u c\u00E1 th\u1EC3 theo th\u00E1ng (ho\u1EB7c c\u00E1c lo\u1EA1i th\u1EDDi \u0111i\u1EC3m kh\u00E1c n\u1EBFu mu\u1ED1n) v\u00E0 \u0111\u01A1n v\u1ECB.
-in																= v\u00E0o
-immunisation	                                                = Ti\u00EAm ch\u1EE7ng
+is_pregnant_women_having_rtisti	                                = Ph\u1ee5 n\u1eef mang thai c\u00f3 b\u1ecb RTI/STI kh\u00f4ng?
+is_pregnant_women_having_essential_hypertension_high_bp         = Ph\u1ee5 n\u1eef mang thai c\u00f3 b\u1ecb cao huy\u1ebft \u00e1p kh\u00f4ng?
+is_pregnant_women_having_essential_hypertension                 = Ph\u1ee5 n\u1eef mang thai c\u00f3 b\u1ecb cao huy\u1ebft \u00e1p kh\u00f4ng?
+invalid_date 													= Ng\u00e0y kh\u00f4ng h\u1ee3p l\u1ec7
+intro_visit_plan 												= Xem k\u1ebf ho\u1ea1ch \u0111\u1ecbnh k\u1ef3 \u0111\u1ec3 c\u00f3 t\u1ea7m nh\u00ecn chung v\u1ec1 nh\u1eefng th\u1eddi k\u1ef3 c\u1ee7a giai \u0111o\u1ea1n ch\u01b0\u01a1ng tr\u00ecnh\: kh\u00e1c bi\u1ec7t, \u0111ang ch\u1edd v\u00e0 \u0111\u00e3 ho\u00e0n t\u1ea5t.
+intro_summary_report 											= Xem th\u1ed1ng k\u00ea t\u1ed5ng qu\u00e1t \u0111\u1ec3 c\u00f3 t\u1ea7m nh\u00ecn chung v\u1ec1 c\u00e1c d\u1ecbch v\u1ee5 cung c\u1ea5p cho m\u1ed9t ch\u01b0\u01a1ng tr\u00ecnh.
+intro_data_entry 												= H\u00e3y nh\u1eadp d\u1eef li\u1ec7u cho c\u00e1c c\u00e1 th\u1ec3 v\u00e0 c\u00e1c ch\u01b0\u01a1ng tr\u00ecnh t\u01b0\u01a1ng \u1ee9ng c\u00f9ng v\u1edbi c\u00e1c giai \u0111o\u1ea1n c\u1ee7a ch\u01b0\u01a1ng tr\u00ecnh.
+intro_case_aggregation											= T\u1ef1 sinh ra c\u00e1c d\u1eef li\u1ec7u theo \u0111\u1ecbnh k\u1ef3 t\u1eeb c\u00e1c d\u1eef li\u1ec7u c\u00e1 th\u1ec3 theo th\u00e1ng (ho\u1eb7c c\u00e1c lo\u1ea1i th\u1eddi \u0111i\u1ec3m kh\u00e1c n\u1ebfu mu\u1ed1n) v\u00e0 \u0111\u01a1n v\u1ecb.
+in																= v\u00e0o
+immunisation	                                                = Ti\u00eam ch\u1ee7ng
 immediate_children												= Immediate Children
-ifa_tablets_given                                               = Thu\u1ED1c IFA \u0111\u01B0\u1EE3c c\u1EA5p
-ifa_tablets	                                                    = Thu\u1ED1c IFA
-identifier 														= \u0110\u1ECBnh danh
-hepatitis_b	                                                    = Vi\u00EAm gan B
-height_of_the_child                                             = Chi\u1EC1u cao tr\u1EBB
-height_of_pregnant_women	                                    = Chi\u1EC1u cao ph\u1EE5 n\u1EEF mang thai
-height_of_fundus                                                = Chi\u1EC1u cao c\u1EE7a \u0111\u00E1y m\u1EAFt
-height_of_child                                                 = Chi\u1EC1u cao tr\u1EBB
-greater_then_from_date											= Gi\u00E1 tr\u1ECB n\u00E0y l\u1EDBn h\u01A1n ng\u00E0y b\u1EAFt \u0111\u1EA7u
-generate 														= T\u1EA1o ra
-gender 															= Gi\u1EDBi t\u00EDnh
-ga_orgunit                                                      = \u0110\u01A1n v\u1ECB
-ga_facilityby                                                   = T\u1EA1i \u0111\u01A1n v\u1ECB
-full_name 														= H\u1ECD v\u00E0 t\u00EAn (\u0111\u1EA7y \u0111\u1EE7)
-from 															= T\u1EEB
-fourth_visit	                                                = L\u1EA7n kh\u00E1m th\u1EE9 4
-oetal_movement	                                                = C\u1EED \u0111\u1ED9ng Foetal
-foetal_heart_rate	                                            = Nh\u1ECBp tim Foetal
-first_visit	                                                    = L\u1EA7n kh\u00E1m \u0111\u1EA7u ti\u00EAn
-first_name 														= T\u00EAn
-fifth_visit                                                     = L\u1EA7n kh\u00E1m th\u1EE9 5
-female 															= N\u1EEF
-facility_provided_data 											= S\u1ED1 li\u1EC7u cung c\u1EA5p b\u1EDFi
-expected_date_of_delivery	                                    = Ng\u00E0y sinh d\u1EF1 ki\u1EBFn
-error_required_field 											= H\u00E3y nh\u1EADp gi\u00E1 tr\u1ECB cho c\u00E1c \u00F4 \u0111\u00E1nh d\u1EA5u m\u00E0u \u0111\u1ECF.
-entry 															= \u0110\u1EA7u v\u00E0o
-enrolled_in_program 											= K\u1EBFt n\u1EA1p v\u00E0o ch\u01B0\u01A1ng tr\u00ECnh
-end_date 														= Ng\u00E0y cu\u1ED1i
-duration_of_stay	                                            = Th\u1EDDi gian n\u1EB1m vi\u1EC7n
-duration_of_pregnancy	                                        = Th\u1EDDi gian mang thai (tu\u1EA7n)
-due_date 														= K\u1EF3 h\u1EA1n
+ifa_tablets_given                                               = Thu\u1ed1c IFA \u0111\u01b0\u1ee3c c\u1ea5p
+ifa_tablets	                                                    = Thu\u1ed1c IFA
+identifier 														= \u0110\u1ecbnh danh
+hepatitis_b	                                                    = Vi\u00eam gan B
+height_of_the_child                                             = Chi\u1ec1u cao tr\u1ebb
+height_of_pregnant_women	                                    = Chi\u1ec1u cao ph\u1ee5 n\u1eef mang thai
+height_of_fundus                                                = Chi\u1ec1u cao c\u1ee7a \u0111\u00e1y m\u1eaft
+height_of_child                                                 = Chi\u1ec1u cao tr\u1ebb
+greater_then_from_date											= Gi\u00e1 tr\u1ecb n\u00e0y l\u1edbn h\u01a1n ng\u00e0y b\u1eaft \u0111\u1ea7u
+generate 														= T\u1ea1o ra
+gender 															= Gi\u1edbi t\u00ednh
+ga_orgunit                                                      = \u0110\u01a1n v\u1ecb
+ga_facilityby                                                   = T\u1ea1i \u0111\u01a1n v\u1ecb
+full_name 														= H\u1ecd v\u00e0 t\u00ean (\u0111\u1ea7y \u0111\u1ee7)
+from 															= T\u1eeb
+fourth_visit	                                                = L\u1ea7n kh\u00e1m th\u1ee9 4
+oetal_movement	                                                = C\u1eed \u0111\u1ed9ng Foetal
+foetal_heart_rate	                                            = Nh\u1ecbp tim Foetal
+first_visit	                                                    = L\u1ea7n kh\u00e1m \u0111\u1ea7u ti\u00ean
+first_name 														= T\u00ean
+fifth_visit                                                     = L\u1ea7n kh\u00e1m th\u1ee9 5
+female 															= N\u1eef
+facility_provided_data 											= S\u1ed1 li\u1ec7u cung c\u1ea5p b\u1edfi
+expected_date_of_delivery	                                    = Ng\u00e0y sinh d\u1ef1 ki\u1ebfn
+error_required_field 											= H\u00e3y nh\u1eadp gi\u00e1 tr\u1ecb cho c\u00e1c \u00f4 \u0111\u00e1nh d\u1ea5u m\u00e0u \u0111\u1ecf.
+entry 															= \u0110\u1ea7u v\u00e0o
+enrolled_in_program 											= K\u1ebft n\u1ea1p v\u00e0o ch\u01b0\u01a1ng tr\u00ecnh
+end_date 														= Ng\u00e0y cu\u1ed1i
+duration_of_stay	                                            = Th\u1eddi gian n\u1eb1m vi\u1ec7n
+duration_of_pregnancy	                                        = Th\u1eddi gian mang thai (tu\u1ea7n)
+due_date 														= K\u1ef3 h\u1ea1n
 dt5	                                                            = DT 5
 dpt_boosters	                                                = DPT Booster
 dpt	                                                            = DPT
-dose3	                                                        = (Li\u1EC1u-3)
-dose2	                                            		    = (Li\u1EC1u-2)
-dose1	                                                        = (Li\u1EC1u-1)
-dose0	                                                        = (Li\u1EC1u-0)
-district 														= Huy\u1EC7n
-discharge_date_from_institution	                                = Ng\u00E0y xu\u1EA5t vi\u1EC7n
-deworming	                                                    = T\u1EA9y giun
-demographics 													= Nh\u00E2n kh\u1EA9u
-delivery_complication	                                        = Tai bi\u1EBFn l\u00FAc sinh
+dose3	                                                        = (Li\u1ec1u-3)
+dose2	                                            		    = (Li\u1ec1u-2)
+dose1	                                                        = (Li\u1ec1u-1)
+dose0	                                                        = (Li\u1ec1u-0)
+district 														= Huy\u1ec7n
+discharge_date_from_institution	                                = Ng\u00e0y xu\u1ea5t vi\u1ec7n
+deworming	                                                    = T\u1ea9y giun
+demographics 													= Nh\u00e2n kh\u1ea9u
+delivery_complication	                                        = Tai bi\u1ebfn l\u00fac sinh
 delivery	                                                    = Sinh con
-days															= ng\u00E0y
+days															= ng\u00e0y
 date_on_which_jsy_benefits_paid_to_mother                       = Date On Which JSY Benefits Paid To Mother
 date_on_which_jsy_benefits_paid_to_asha                         = Date On Which JSY Benefits Paid To Asha  	
-date_of_referral_visit				                            = Ng\u00E0y t\u00E1i kh\u00E1m
-date_of_pnc_examination	                                        = Ng\u00E0y kh\u00E1m t\u1EA1i PNC
+date_of_referral_visit				                            = Ng\u00e0y t\u00e1i kh\u00e1m
+date_of_pnc_examination	                                        = Ng\u00e0y kh\u00e1m t\u1ea1i PNC
 date_of_payment_of_prasuthi_araike2  	                        = Date Of Payment Of Prasuthi Araike2  	
 date_of_payment_of_prasuthi_araike1                             = Date Of Payment Of Prasuthi Araike1
 date_of_jsy_payment	                                            = Date Of JSY payment
 date_of_giving_madilu_kit                                       = Date Of Giving Madilu Kit
-date_of_delivery	                                            = Ng\u00E0y sinh con
-date_of_birth 													= Ng\u00E0y sinh
-date_of_anc_registration	                                    = Ng\u00E0y \u0111\u0103ng k\u00FD tr\u1EA1m
+date_of_delivery	                                            = Ng\u00e0y sinh con
+date_of_birth 													= Ng\u00e0y sinh
+date_of_anc_registration	                                    = Ng\u00e0y \u0111\u0103ng k\u00fd tr\u1ea1m
 date_less_incident_date											= This date is less then the incident date.
-date_is_less_then_or_equals_plus_no_max_days					= Ng\u00E0y nh\u1EADp l\u1EDBn h\u01A1n ho\u1EB7c b\u1EB1ng [K\u1EF3 h\u1EA1n + S\u1ED1 ng\u00E0y t\u1ED1i \u0111a \u0111\u01B0\u1EE3c nh\u1EADp d\u1EEF li\u1EC7u]
-date_is_greater_then_or_equals_due_date_minus_no_min_days		= Ng\u00E0y nh\u1EADp l\u1EDBn h\u01A1n ho\u1EB7c b\u1EB1ng [K\u1EF3 h\u1EA1n - S\u1ED1 ng\u00E0y t\u1ED1i thi\u1EC3u \u0111\u01B0\u1EE3c nh\u1EADp d\u1EEF li\u1EC7u]
-dataset_list													= Danh s\u00E1ch t\u1EADp d\u1EEF li\u1EC7u
-dataentryform_management_for_program_stage                      = Qu\u1EA3n l\u00FD m\u1EABu d\u1EEF li\u1EC7u nh\u1EADp cho Giai \u0111o\u1EA1n ch\u01B0\u01A1ng tr\u00ECnh
-datae_element_name 												= T\u00EAn ph\u1EA7n t\u1EED d\u1EEF li\u1EC7u
-data_of_anc_examination	                                        = Ng\u00E0y kh\u00E1m t\u1EA1i tr\u1EA1m
-data_entry_and_visit_plans 										= Nh\u1EADp d\u1EEF li\u1EC7u v\u00E0 K\u1EBF ho\u1EA1ch \u0111\u1ECBnh k\u1EF3
-data_entry_and_reports 											= Nh\u1EADp d\u1EEF li\u1EC7u v\u00E0 C\u00E1c b\u00E1o c\u00E1o
-data_entry 														= Nh\u1EADp d\u1EEF li\u1EC7u
-data_element 													= Ph\u1EA7n t\u1EED d\u1EEF li\u1EC7u
-counselling_personal_hygiene	                                = T\u01B0 v\u1EA5n v\u1EC7 sinh c\u00E1 nh\u00E2n
-counselling_nutrition	                                        = T\u01B0 v\u1EA5n dinh d\u01B0\u1EE1ng
-counselling_family_planning_method	                            = T\u01B0 v\u1EA5n k\u1EBF ho\u1EA1ch h\u00F3a \u0111ia \u0111\u00ECnh
-counselling_exclusive_breastfeeding	                            = T\u01B0 v\u1EA5n nu\u00F4i con b\u1EB1ng s\u1EEFa m\u1EB9
-counselling_child_immunisation	                                = T\u01B0 v\u1EA5n ti\u00EAm ch\u1EE7ng tr\u1EBB	
-counselling_about_baby_care	                                    = T\u01B0 v\u1EA5n ch\u0103m s\u00F3c tr\u1EBB
-congenital_anomaly	                                            = B\u1EA5t th\u01B0\u1EDDng b\u1EA9m sinh	
-complication_during_any_previous_pregnancy	                    = Ti\u1EC1n s\u1EED tai bi\u1EBFn
-complication                                                    = Tai bi\u1EBFn
-completed_on 													= \u0110\u01B0\u1EE3c ho\u00E0n t\u1EA5t v\u00E0o  
-complete_confirm_message 										= Th\u00F4ng b\u00E1o x\u00E1c nh\u1EADn ho\u00E0n ch\u1EC9nh d\u1EEF li\u1EC7u
-complete 														= X\u00E1c nh\u1EADn ho\u00E0n ch\u1EC9nh d\u1EEF li\u1EC7u
-child_tree														= C\u00E2y th\u01B0 m\u1EE5c
-child_hospitalized_due_to	                                    = Tr\u1EBB n\u1EB1m vi\u1EC7n \u0111\u1EBFn
-child_health_program_form	                                    = Phi\u1EBFu s\u1EE9c kh\u1ECFe tr\u1EBB em
-case_aggregation_form											= Bi\u1EC3u t\u1ED5ng h\u1EE3p c\u00E1 th\u1EC3
-case_aggregation												= B\u1EAFt \u0111\u1EA7u b\u00FA m\u1EB9
+date_is_less_then_or_equals_plus_no_max_days					= Ng\u00e0y nh\u1eadp l\u1edbn h\u01a1n ho\u1eb7c b\u1eb1ng [K\u1ef3 h\u1ea1n + S\u1ed1 ng\u00e0y t\u1ed1i \u0111a \u0111\u01b0\u1ee3c nh\u1eadp d\u1eef li\u1ec7u]
+date_is_greater_then_or_equals_due_date_minus_no_min_days		= Ng\u00e0y nh\u1eadp l\u1edbn h\u01a1n ho\u1eb7c b\u1eb1ng [K\u1ef3 h\u1ea1n - S\u1ed1 ng\u00e0y t\u1ed1i thi\u1ec3u \u0111\u01b0\u1ee3c nh\u1eadp d\u1eef li\u1ec7u]
+dataset_list													= Danh s\u00e1ch t\u1eadp d\u1eef li\u1ec7u
+dataentryform_management_for_program_stage                      = Qu\u1ea3n l\u00fd m\u1eabu d\u1eef li\u1ec7u nh\u1eadp cho Giai \u0111o\u1ea1n ch\u01b0\u01a1ng tr\u00ecnh
+datae_element_name 												= T\u00ean ph\u1ea7n t\u1eed d\u1eef li\u1ec7u
+data_of_anc_examination	                                        = Ng\u00e0y kh\u00e1m t\u1ea1i tr\u1ea1m
+data_entry_and_visit_plans 										= Nh\u1eadp d\u1eef li\u1ec7u v\u00e0 K\u1ebf ho\u1ea1ch \u0111\u1ecbnh k\u1ef3
+data_entry_and_reports 											= Nh\u1eadp d\u1eef li\u1ec7u v\u00e0 C\u00e1c b\u00e1o c\u00e1o
+data_entry 														= Nh\u1eadp d\u1eef li\u1ec7u
+data_element 													= Ph\u1ea7n t\u1eed d\u1eef li\u1ec7u
+counselling_personal_hygiene	                                = T\u01b0 v\u1ea5n v\u1ec7 sinh c\u00e1 nh\u00e2n
+counselling_nutrition	                                        = T\u01b0 v\u1ea5n dinh d\u01b0\u1ee1ng
+counselling_family_planning_method	                            = T\u01b0 v\u1ea5n k\u1ebf ho\u1ea1ch h\u00f3a \u0111ia \u0111\u00ecnh
+counselling_exclusive_breastfeeding	                            = T\u01b0 v\u1ea5n nu\u00f4i con b\u1eb1ng s\u1eefa m\u1eb9
+counselling_child_immunisation	                                = T\u01b0 v\u1ea5n ti\u00eam ch\u1ee7ng tr\u1ebb	
+counselling_about_baby_care	                                    = T\u01b0 v\u1ea5n ch\u0103m s\u00f3c tr\u1ebb
+congenital_anomaly	                                            = B\u1ea5t th\u01b0\u1eddng b\u1ea9m sinh	
+complication_during_any_previous_pregnancy	                    = Ti\u1ec1n s\u1eed tai bi\u1ebfn
+complication                                                    = Tai bi\u1ebfn
+completed_on 													= \u0110\u01b0\u1ee3c ho\u00e0n t\u1ea5t v\u00e0o  
+complete_confirm_message 										= Th\u00f4ng b\u00e1o x\u00e1c nh\u1eadn ho\u00e0n ch\u1ec9nh d\u1eef li\u1ec7u
+complete 														= X\u00e1c nh\u1eadn ho\u00e0n ch\u1ec9nh d\u1eef li\u1ec7u
+child_tree														= C\u00e2y th\u01b0 m\u1ee5c
+child_hospitalized_due_to	                                    = Tr\u1ebb n\u1eb1m vi\u1ec7n \u0111\u1ebfn
+child_health_program_form	                                    = Phi\u1ebfu s\u1ee9c kh\u1ecfe tr\u1ebb em
+case_aggregation_form											= Bi\u1ec3u t\u1ed5ng h\u1ee3p c\u00e1 th\u1ec3
+case_aggregation												= B\u1eaft \u0111\u1ea7u b\u00fa m\u1eb9
 breast_feeding_initiation	                                    = Bat dau bu me	
-breast_feeding_initiated_within_one_hr_of_birth	                = S\u01A1 sinh b\u00FA m\u1EB9 trong gi\u1EDD \u0111\u1EA7u
-blood_vdrl_test	                                                = Ki\u1EC3m tra VDRL
-blood_test_hiv	                                                = Ki\u1EC3m tra HIV
-blood_test_haemoglobin	                                        = Th\u1EED m\u00E1u sau sinh
-blood_pressure_after_delivery	                                = Huy\u1EBFt \u00E1p sau sinh
-blood_pressure	                                                = Huy\u1EBFt \u00E1p
-block 															= Kh\u00F3a
-birth_details	                                                = Chi ti\u1EBFt l\u00FAc sinh
+breast_feeding_initiated_within_one_hr_of_birth	                = S\u01a1 sinh b\u00fa m\u1eb9 trong gi\u1edd \u0111\u1ea7u
+blood_vdrl_test	                                                = Ki\u1ec3m tra VDRL
+blood_test_hiv	                                                = Ki\u1ec3m tra HIV
+blood_test_haemoglobin	                                        = Th\u1eed m\u00e1u sau sinh
+blood_pressure_after_delivery	                                = Huy\u1ebft \u00e1p sau sinh
+blood_pressure	                                                = Huy\u1ebft \u00e1p
+block 															= Kh\u00f3a
+birth_details	                                                = Chi ti\u1ebft l\u00fac sinh
 bcg	                                                            = BCG
-back_to_search 													= Tr\u1EDF v\u1EC1 t\u00ECm ki\u1EBFm
-attributes 														= C\u00E1c thu\u1ED9c t\u00EDnh
-at_birth	                                                    = L\u00FAc sinh
-at_6_weeks_after_birth	                                        = 6 tu\u1EA7n sau sinh
-at_14_weeks_after_birth	                                        = 14 tu\u1EA7n sau sinh
-at_10_weeks_after_birth	                                        = 10 tu\u1EA7n sau sinh
-any_abnormality_in_placenta	                                    = S\u1EF1 b\u1EA5t b\u00ECnh th\u01B0\u1EDDng c\u1EE7a nhau thai
-anemia_moderate                                                 = Thi\u1EBFu m\u00E1u (T\u01B0\u01A1ng \u0111\u1ED1i<11 / Nghi\u00EAm tr\u1ECDng <7 / B\u00ECnh th\u01B0\u1EDDng)
-anemia_hb_level                                                 = Thi\u1EBFu m\u00E1u (\u0111\u1ED9 h\u1ED3ng c\u1EA7u)
-anemia	                                                        = Thi\u1EBFu m\u00E1u
-anc_registration_details	                                    = Chi ti\u1EBFt \u0111\u0103ng k\u00FD ANC
-anc_examination	                                                = Ki\u1EC3m tra ANC
-anc_details                                                     = Chi ti\u1EBFt v\u1EC1 ANC
-aggregate	 													= T\u1ED5ng h\u1EE3p
-age 															= Tu\u1ED5i
-aefi_vacine_type                                                = Lo\u1EA1i v\u1EAFc-xin AEFI
-aefi_type                                                       = Lo\u1EA1i AEFI
+back_to_search 													= Tr\u1edf v\u1ec1 t\u00ecm ki\u1ebfm
+attributes 														= C\u00e1c thu\u1ed9c t\u00ednh
+at_birth	                                                    = L\u00fac sinh
+at_6_weeks_after_birth	                                        = 6 tu\u1ea7n sau sinh
+at_14_weeks_after_birth	                                        = 14 tu\u1ea7n sau sinh
+at_10_weeks_after_birth	                                        = 10 tu\u1ea7n sau sinh
+any_abnormality_in_placenta	                                    = S\u1ef1 b\u1ea5t b\u00ecnh th\u01b0\u1eddng c\u1ee7a nhau thai
+anemia_moderate                                                 = Thi\u1ebfu m\u00e1u (T\u01b0\u01a1ng \u0111\u1ed1i<11 / Nghi\u00eam tr\u1ecdng <7 / B\u00ecnh th\u01b0\u1eddng)
+anemia_hb_level                                                 = Thi\u1ebfu m\u00e1u (\u0111\u1ed9 h\u1ed3ng c\u1ea7u)
+anemia	                                                        = Thi\u1ebfu m\u00e1u
+anc_registration_details	                                    = Chi ti\u1ebft \u0111\u0103ng k\u00fd ANC
+anc_examination	                                                = Ki\u1ec3m tra ANC
+anc_details                                                     = Chi ti\u1ebft v\u1ec1 ANC
+aggregate	 													= T\u1ed5ng h\u1ee3p
+age 															= Tu\u1ed5i
+aefi_vacine_type                                                = Lo\u1ea1i v\u1eafc-xin AEFI
+aefi_type                                                       = Lo\u1ea1i AEFI
 aefi                                                            = AEFI
-adverse_event_following_immunisation	                        = C\u00E1c bi\u1EBFn ch\u1EE9ng do ti\u00EAm ph\u00F2ng
-address 														= \u0110\u1ECBa ch\u1EC9
-added															= \u0110\u00E3 \u0111\u01B0\u1EE3c th\u00EAm v\u00E0o
-abortion	                                                    = Ph\u00E1 thai
\ No newline at end of file
+adverse_event_following_immunisation	                        = C\u00e1c bi\u1ebfn ch\u1ee9ng do ti\u00eam ph\u00f2ng
+address 														= \u0110\u1ecba ch\u1ec9
+added															= \u0110\u00e3 \u0111\u01b0\u1ee3c th\u00eam v\u00e0o
+abortion	                                                    = Ph\u00e1 thai
+select_sorting_attribute										= Ch\u1ecdn thu\u1ed9c t\u00ednh \u0111\u1ec3 t\u00ecm ki\u1ebfm / T\u1ea5t c\u1ea3
\ No newline at end of file

=== 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	2011-05-10 19:49:22 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/resources/struts.xml	2011-05-12 07:02:28 +0000
@@ -156,6 +156,14 @@
       <param name="menu">/dhis-web-caseentry/reportsMenu.vm</param>  
       <param name="javascripts">../dhis-web-commons/ouwt/ouwt.js,javascript/visitPlan.js</param>            
     </action>
+	
+    <action name="visitplanSortByAttribute" 
+	  class="org.hisp.dhis.caseentry.action.visitplan.SearchVisitPlanAction">
+	  <result name="success" type="velocity">/content.vm</result>
+      <param name="page">/dhis-web-caseentry/loadVisitPlan.vm</param>
+      <param name="javascripts">javascript/visitPlan.js</param>  
+	  <param name="stylesheets">/dhis-web-commons/paging/paging.css</param> 
+    </action>
     
     <!-- Report -->   
     

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/visitPlan.js'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/visitPlan.js	2009-10-26 20:17:24 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/javascript/visitPlan.js	2011-05-12 07:02:28 +0000
@@ -1,3 +1,5 @@
+isAjax = true;
+isShowLoader = false;
 
 function organisationUnitSelected( orgUnits )
 {
@@ -7,6 +9,24 @@
 selection.setListenerFunction( organisationUnitSelected );
 
 function sortByAttribute( sortingAttributeId )
-{	
-	window.location = "visitplan.action?sortingAttributeId=" + sortingAttributeId;
+{
+	var url = "visitplanSortByAttribute.action";
+	
+	lockScreen();
+	
+	if ( url.length > 0 )
+	{
+		jQuery( "#contentDiv" ).load( url,
+			{ "sortingAttributeId": sortingAttributeId },
+			function()
+			{
+				jQuery( "table.listTable tbody tr" ).removeClass( "listRow listAlternateRow" );
+				jQuery( "table.listTable tbody tr:odd" ).addClass( "listAlternateRow" );
+				jQuery( "table.listTable tbody tr:even" ).addClass( "listRow" );
+				jQuery( "table.listTable tbody" ).trigger( "update" );
+
+				unLockScreen();
+			}
+		);
+	}
 }

=== added file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/loadVisitPlan.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/loadVisitPlan.vm	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/loadVisitPlan.vm	2011-05-12 07:02:28 +0000
@@ -0,0 +1,54 @@
+#foreach( $patient in $sortedPatients )
+<div id="visitPlanContainer" style="border:1px solid #808080; width:465px;">
+    <table class="mainPageTable"> 
+        <tr>            
+            <td>
+                <strong>$i18n.getString( "full_name" ):</strong>$encoder.htmlEncode( $patient.getFullName() )<br>
+                <strong>$i18n.getString( "gender" ):</strong>$encoder.htmlEncode( $patient.gender )<br>
+                <strong>$i18n.getString( "date_of_birth" ):</strong>$format.formatDate( $patient.birthDate )<br>
+                <strong>$i18n.getString( "age" ):</strong>$encoder.htmlEncode( $patient.getAge() )
+            </td>   
+            <td style="vertical-align:top">
+                <div style="float:right">                        
+                    #set( $attributeValues = false )
+                    #set( $attributeValues = $attributeValueMap.get( $patient.id ) )
+                    #foreach( $attributeValue in $attributeValues )                            
+                        <strong>$encoder.htmlEncode( $attributeValue.patientAttribute.name ):</strong>$encoder.htmlEncode( $attributeValue.value )<br>
+                    #end                         
+                </div>
+            </td>    
+        </tr>            
+    </table>
+    #set( $stageInstances = false )
+    #set( $stageInstances = $visitsByPatients.get( $patient ) )        
+    <table class="listTable">
+        <col>
+        <col>
+        <col>
+        <tr>
+            <th>$i18n.getString( "program" )</th>
+            <th>$i18n.getString( "stage" )</th>
+            <th>$i18n.getString( "due_date" )</th>           
+        </tr>
+        <tbody id="list">   
+            #set( $mark = false )          
+            #foreach( $stageInstance in $stageInstances )                    
+                <tr #alternate( $mark )>                
+                    <td>$!stageInstance.programInstance.program.name</td>
+                    <td>$!stageInstance.programStage.name</td>
+                    <td>$!format.formatDate( $!stageInstance.dueDate )</td>                
+                </tr>
+                #if( $mark )
+                    #set( $mark = false )
+                #else
+                    #set( $mark = true )
+                #end
+            #end            
+        </tbody>            
+    </table>
+</div>
+<p></p>
+#end
+<div class="paging-container">
+	#parse( "/dhis-web-commons/paging/paging.vm" )
+</div>
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/visitPlan.vm'
--- dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/visitPlan.vm	2011-03-24 17:27:39 +0000
+++ dhis-2/dhis-web/dhis-web-caseentry/src/main/webapp/dhis-web-caseentry/visitPlan.vm	2011-05-12 07:02:28 +0000
@@ -11,6 +11,7 @@
         <td>$i18n.getString( "sort_by" )</td>
         <td>
             <select id="sortingAttributeId" name="sortingAttributeId" style="min-width:350px"  onchange="sortByAttribute( this.options[this.selectedIndex].value )" #if( $attributes.size() == 0 ) disabled="disabled" #end>
+				<option value="-1">[ $i18n.getString( "select_sorting_attribute" ) ]</option>
                 #foreach( $attribute in $attributes )
                     <option value="$attribute.id" #if( $sortingAttribute && $attribute.id == $sortingAttribute.id ) selected="selected" #end>$encoder.htmlEncode( $attribute.name )</option>
                 #end
@@ -21,54 +22,6 @@
 
 <hr style="clear:both">
     
-#foreach( $patient in $sortedPatients )
-<div id="visitPlanContainer" style="border:1px solid #808080; width:465px;">
-    <table class="mainPageTable"> 
-        <tr>            
-            <td>
-                <strong>$i18n.getString( "full_name" ):</strong>$encoder.htmlEncode( $patient.getFullName() )<br>
-                <strong>$i18n.getString( "gender" ):</strong>$encoder.htmlEncode( $patient.gender )<br>
-                <strong>$i18n.getString( "date_of_birth" ):</strong>$format.formatDate( $patient.birthDate )<br>
-                <strong>$i18n.getString( "age" ):</strong>$encoder.htmlEncode( $patient.getAge() )
-            </td>   
-            <td style="vertical-align:top">
-                <div style="float:right">                        
-                    #set( $attributeValues = false )
-                    #set( $attributeValues = $attributeValueMap.get( $patient.id ) )
-                    #foreach( $attributeValue in $attributeValues )                            
-                        <strong>$encoder.htmlEncode( $attributeValue.patientAttribute.name ):</strong>$encoder.htmlEncode( $attributeValue.value )<br>
-                    #end                         
-                </div>
-            </td>    
-        </tr>            
-    </table>
-    #set( $stageInstances = false )
-    #set( $stageInstances = $visitsByPatients.get( $patient ) )        
-    <table class="listTable">
-        <col>
-        <col>
-        <col>
-        <tr>
-            <th>$i18n.getString( "program" )</th>
-            <th>$i18n.getString( "stage" )</th>
-            <th>$i18n.getString( "due_date" )</th>           
-        </tr>
-        <tbody id="list">   
-            #set( $mark = false )          
-            #foreach( $stageInstance in $stageInstances )                    
-                <tr #alternate( $mark )>                
-                    <td>$!stageInstance.programInstance.program.name</td>
-                    <td>$!stageInstance.programStage.name</td>
-                    <td>$!format.formatDate( $!stageInstance.dueDate )</td>                
-                </tr>
-                #if( $mark )
-                    #set( $mark = false )
-                #else
-                    #set( $mark = true )
-                #end
-            #end            
-        </tbody>            
-    </table>
-</div>
-<p></p>                       
-#end
+<div id="contentDiv">
+	#parse ( "/dhis-web-caseentry/loadVisitPlan.vm" )
+</div>
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/paging/paging.vm'
--- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/paging/paging.vm	2011-05-09 05:39:07 +0000
+++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/paging/paging.vm	2011-05-12 07:02:28 +0000
@@ -73,6 +73,7 @@
 <script>
 	
 var isAjax;
+var isShowLoader;
 
 function ajaxPaging( currentPage, pageSize )
 {
@@ -82,10 +83,12 @@
 	}
 	else
 	{
-		showLoader();
+		isShowLoader ? showLoader() : lockScreen();
 		var url = '${baseLink}currentPage=' + currentPage + '&pageSize=' + pageSize;
-		$( '#contentDiv' ).load(url);
-		hideLoader();
+		$( '#contentDiv' ).load( url,
+			function(){
+				isShowLoader ? hideLoader() : unLockScreen();
+		});
 	}
 }
 
@@ -93,7 +96,7 @@
 {
     var pageSize = jQuery("#sizeOfPage").val();
     
-    if(pageSize < 1)
+    if ( pageSize < 1 )
     {
     	pageSize = 1;
     }
@@ -101,15 +104,17 @@
 	var currentPage = jQuery("#jumpToPage").val();
 	jQuery.cookie("pageSize", pageSize, {path: "/"});
 	var url = baseLink + 'currentPage=' + currentPage + '&pageSize=' + pageSize;
+	
 	if( isAjax == undefined )
 	{
 		window.location.href = url;
 	}
 	else
 	{
-		showLoader();
-		$( '#contentDiv' ).load(url);
-		hideLoader();
+		isShowLoader ? showLoader() : lockScreen();
+		$( '#contentDiv' ).load( url,
+			function(){ isShowLoader ? hideLoader() : unLockScreen(); }
+		);
 	}
 }
 

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/listPatient.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/listPatient.vm	2011-05-09 05:39:07 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/listPatient.vm	2011-05-12 07:02:28 +0000
@@ -124,15 +124,14 @@
 				#end
 				
 				<td style="text-align:center">
-				  <a href="showProgramEnrollmentForm.action?id=$patient.id" title='$i18n.getString( "manage_program_enrollment" )'><img src="../images/enroll.png" alt='$i18n.getString( "manage_program_enrollment" )'></a>                  
-				  <a href="showProgramUnEnrollmentForm.action?patientId=$patient.id" title='$i18n.getString( "manage_program_unenrollment" )'><img src="../images/unenroll.png" alt='$i18n.getString( "manage_program_unenrollment" )'></a>
-				  <a href="showUpdatePatientForm.action?id=$patient.id" title='$i18n.getString( "edit_profile" )'><img src="../images/edit.png" alt='$i18n.getString( "edit_profile" )'></a>
-				  <a href="showRelationshipList.action?id=$patient.id" title='$i18n.getString( "manage_relationship" )'><img src="../images/relationship.png" alt='$i18n.getString( "manage_relationship" )'></a>
-				  <a href="showAddRelationshipPatient.action?id=$patient.id" title='$i18n.getString( "add_dependent" )'><img src="../images/add.png" alt='$i18n.getString( "add_dependent" )'></a>
-				  <a href="javascript:removePatient( '$patient.id', '$encoder.jsEncode( $patient.getFullName() )' )" title='$i18n.getString( "remove" )'><img src="../images/delete.png" alt='$i18n.getString( "remove" )'></a>
-				  <a href="javascript:showPatientDetails( $patient.id )" title='$i18n.getString( "show_details" )'><img src="../images/information.png" alt='$i18n.getString( "show_details" )'></a>
+				  <a href="showProgramEnrollmentForm.action?id=$patient.id" title='$i18n.getString( "manage_program_enrollment" )'><img src="../images/enroll.png" alt='$i18n.getString( "manage_program_enrollment" )'/></a>       
+				  <a href="showProgramUnEnrollmentForm.action?patientId=$patient.id" title='$i18n.getString( "manage_program_unenrollment" )'><img src="../images/unenroll.png" alt='$i18n.getString( "manage_program_unenrollment" )'/></a>
+				  <a href="showUpdatePatientForm.action?id=$patient.id" title='$i18n.getString( "edit_profile" )'><img src="../images/edit.png" alt='$i18n.getString( "edit_profile" )'/></a>
+				  <a href="showRelationshipList.action?id=$patient.id" title='$i18n.getString( "manage_relationship" )'><img src="../images/relationship.png" alt='$i18n.getString( "manage_relationship" )'/></a>
+				  <a href="showAddRelationshipPatient.action?id=$patient.id" title='$i18n.getString( "add_dependent" )'><img src="../images/add.png" alt='$i18n.getString( "add_dependent" )'/></a>
+				  <a href="javascript:removePatient( '$patient.id', '$encoder.jsEncode( $patient.getFullName() )' )" title='$i18n.getString( "remove" )'><img src="../images/delete.png" alt='$i18n.getString( "remove" )'/></a>
+				  <a href="javascript:showPatientDetails( $patient.id )" title='$i18n.getString( "show_details" )'><img src="../images/information.png" alt='$i18n.getString( "show_details" )'/></a>
 				</td>
-				
 			</tr>
 			#set( $mark = !$mark)
     	#end
@@ -145,7 +144,7 @@
   	<td colspan="6">
 		<p></p>
   		<div class="paging-container">
-				#parse( "/dhis-web-commons/paging/paging.vm" )
+			#parse( "/dhis-web-commons/paging/paging.vm" )
 		</div>
 	</td>
   	<td></td>
@@ -154,10 +153,10 @@
 
 <div id="detailsArea" style="display:none;overflow:auto;height:250px;width:250px">
 	<div style="float:right">
-		<a href="javascript:hideDetails()" title="$i18n.getString( "hide_details" )"><img src="../images/close.png" alt="$i18n.getString( "hide_details" )"></a>
+		<a href="javascript:hideDetails()" title="$i18n.getString( 'hide_details' )"><img src="../images/close.png" alt="$i18n.getString( 'hide_details' )"/></a>
 	</div>
-	<p><label>$i18n.getString( "common_info" ):</label><br><span id="commonInfoField"></span></p>	
-	<p><label>$i18n.getString( "identifier" ):</label><br><span id="identifierField"></span></p>
-	<p><label>$i18n.getString( "attributes" ):</label><br><span id="attributeField"></span></p>
-	<p><label>$i18n.getString( "enrolled_in_program" ):</label><br><span id="programField"></span></p>
+	<p><label>$i18n.getString( "common_info" ):</label><br/><span id="commonInfoField"></span></p>	
+	<p><label>$i18n.getString( "identifier" ):</label><br/><span id="identifierField"></span></p>
+	<p><label>$i18n.getString( "attributes" ):</label><br/><span id="attributeField"></span></p>
+	<p><label>$i18n.getString( "enrolled_in_program" ):</label><br/><span id="programField"></span></p>
 </div>