=== modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/DefaultPatientService.java' --- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/DefaultPatientService.java 2012-07-06 09:59:36 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/patient/DefaultPatientService.java 2012-07-30 08:32:34 +0000 @@ -27,17 +27,10 @@ package org.hisp.dhis.patient; -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Date; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - import org.apache.commons.lang.StringUtils; import org.hisp.dhis.i18n.I18nFormat; import org.hisp.dhis.organisationunit.OrganisationUnit; +import org.hisp.dhis.organisationunit.OrganisationUnitService; import org.hisp.dhis.patientattributevalue.PatientAttributeValue; import org.hisp.dhis.patientattributevalue.PatientAttributeValueService; import org.hisp.dhis.program.Program; @@ -47,6 +40,9 @@ import org.hisp.dhis.relationship.RelationshipTypeService; import org.springframework.transaction.annotation.Transactional; +import java.lang.reflect.Type; +import java.util.*; + /** * @author Abyot Asalefew Gizaw * @version $Id$ @@ -108,6 +104,13 @@ this.relationshipTypeService = relationshipTypeService; } + private OrganisationUnitService organisationUnitService; + + public void setOrganisationUnitService( OrganisationUnitService organisationUnitService ) + { + this.organisationUnitService = organisationUnitService; + } + // ------------------------------------------------------------------------- // Implementation methods // ------------------------------------------------------------------------- @@ -120,7 +123,7 @@ @Override public int createPatient( Patient patient, Integer representativeId, Integer relationshipTypeId, - List patientAttributeValues ) + List patientAttributeValues ) { int patientid = savePatient( patient ); @@ -188,7 +191,7 @@ @Override public Collection getPatients( String firstName, String middleName, String lastName, Date birthdate, - String gender ) + String gender ) { return patientStore.get( firstName, middleName, lastName, birthdate, gender ); } @@ -249,29 +252,26 @@ @Override public Collection getPatientsForMobile( String searchText, int orgUnitId ) { - int countPatientName = patientStore.countGetPatientsByName( searchText ); - int countPatientIndentifier = patientIdentifierService.countGetPatientsByIdentifier( searchText ); - Set patients = new HashSet(); - patients.addAll( patientIdentifierService.getPatientsByIdentifier( searchText, 0, countPatientIndentifier ) ); - - Collection patientByName = getPatientsByNames( searchText, 0, countPatientName ); - + patients.addAll( patientIdentifierService.getPatientsByIdentifier( searchText, 0, Integer.MAX_VALUE ) ); + patients.addAll( getPatientsByNames( searchText, 0, Integer.MAX_VALUE ) ); + + // if an orgunit has been selected, filter out every patient that has a different ou if ( orgUnitId != 0 ) { Set toRemoveList = new HashSet(); - for ( Patient patient : patientByName ) + + for ( Patient patient : patients ) { if ( patient.getOrganisationUnit().getId() != orgUnitId ) { toRemoveList.add( patient ); } } - patientByName.removeAll( toRemoveList ); + + patients.removeAll( toRemoveList ); } - patients.addAll( patientByName ); - return patients; } @@ -283,7 +283,7 @@ @Override public Collection getPatients( OrganisationUnit organisationUnit, PatientAttribute patientAttribute, - Integer min, Integer max ) + Integer min, Integer max ) { List patientList = new ArrayList( patientStore.getByOrgUnit( organisationUnit, min, max ) ); @@ -299,7 +299,7 @@ @Override public Collection getPatients( OrganisationUnit organisationUnit, String searchText, Integer min, - Integer max ) + Integer max ) { Collection patients = new ArrayList(); @@ -410,8 +410,8 @@ @Override public void updatePatient( Patient patient, Integer representativeId, Integer relationshipTypeId, - List valuesForSave, List valuesForUpdate, - Collection valuesForDelete ) + List valuesForSave, List valuesForUpdate, + Collection valuesForDelete ) { patientStore.update( patient ); @@ -504,8 +504,7 @@ } return value; - } - catch ( Exception ex ) + } catch ( Exception ex ) { ex.printStackTrace(); } @@ -527,7 +526,7 @@ { return patientStore.search( searchKeys, orgunit, min, max ); } - + public int countSearchPatients( List searchKeys, OrganisationUnit orgunit ) { return patientStore.countSearch( searchKeys, orgunit ); === modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-services/dhis-service-patient/src/main/resources/META-INF/dhis/beans.xml 2012-07-26 11:26:41 +0000 +++ dhis-2/dhis-services/dhis-service-patient/src/main/resources/META-INF/dhis/beans.xml 2012-07-30 08:32:34 +0000 @@ -238,6 +238,8 @@ ref="org.hisp.dhis.relationship.RelationshipTypeService" /> + === modified file 'dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/namebaseddataentry/action/FindBeneficiarytAction.java' --- dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/namebaseddataentry/action/FindBeneficiarytAction.java 2012-06-11 10:11:21 +0000 +++ dhis-2/dhis-web/dhis-web-light/src/main/java/org/hisp/dhis/light/namebaseddataentry/action/FindBeneficiarytAction.java 2012-07-30 08:32:34 +0000 @@ -26,10 +26,11 @@ */ package org.hisp.dhis.light.namebaseddataentry.action; -import java.util.Collection; +import com.opensymphony.xwork2.Action; import org.hisp.dhis.patient.Patient; import org.hisp.dhis.patient.PatientService; -import com.opensymphony.xwork2.Action; + +import java.util.Collection; public class FindBeneficiarytAction implements Action @@ -146,6 +147,7 @@ } patients = patientService.getPatientsForMobile( keyword, organisationUnitId ); + if ( patients.size() == 1 ) { Patient patient = patients.iterator().next();