Downloads Documentation Community Contribute Demo






Show Sidebar
Login | Register
Show
Ignore:
Timestamp:
08/06/08 17:17:55 (5 months ago)
Author:
mseaton
Message:

synchronization_bidirectional_branch: merge from [4734] to [5181].

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • openmrs/branches/data_synchronization_bidirectional/src/api/org/openmrs/api/impl/PatientServiceImpl.java

    r4969 r5183  
    163163                 
    164164        /** 
     165         * @deprecated replaced by {@link #getPatients(String, String, List, boolean)} 
    165166     * @see org.openmrs.api.PatientService#getPatients(java.lang.String, java.lang.String, java.util.List) 
    166167     */ 
     
    168169            List<PatientIdentifierType> identifierTypes) 
    169170            throws APIException { 
     171        return getPatients(name, identifier, identifierTypes, false); 
     172        } 
     173     
     174    /** 
     175     * @see org.openmrs.api.PatientService#getPatients(java.lang.String, java.lang.String, java.util.List, boolean) 
     176     */ 
     177    public List<Patient> getPatients(String name, String identifier, 
     178            List<PatientIdentifierType> identifierTypes, boolean matchIdentifierExactly) 
     179            throws APIException { 
    170180                 
    171181        if (identifierTypes == null) 
    172182                identifierTypes = Collections.emptyList(); 
    173183                 
    174         return dao.getPatients(name, identifier, identifierTypes); 
     184        return dao.getPatients(name, identifier, identifierTypes, matchIdentifierExactly); 
    175185        } 
    176186 
     
    214224                        // TODO: check patient has at least one "sufficient" identifier 
    215225 
    216                         // check this patient for duplicate identifiers 
    217                         if (identifiersUsed.contains(pi.getIdentifier())) { 
     226                        // check this patient for duplicate identifiers+identifierType 
     227                        if (identifiersUsed.contains(pi.getIdentifier() + " id type #: " + pi.getIdentifierType().getPatientIdentifierTypeId())) { 
    218228                                patient.removeIdentifier(pi); 
    219229                                throw new DuplicateIdentifierException("This patient has two identical identifiers of type " 
     
    225235                                                                       pi); 
    226236                        } 
    227                          
    228                         else 
    229                                identifiersUsed.add(pi.getIdentifier()); 
     237                        else { 
     238                               identifiersUsed.add(pi.getIdentifier() + " id type #: " + pi.getIdentifierType().getPatientIdentifierTypeId()); 
     239                        } 
    230240                } 
    231241 
     
    326336         * @param pi PatientIdentifier 
    327337         * @return true/false whether or not this PatientIdentifier is in use 
    328          * @deprecated use getPatientByIdentifier(String) instead 
     338         * @deprecated use {@link #getPatientsByIdentifier(String, boolean)}yIdentifier(String) instead 
    329339         */ 
    330340        private Patient identifierInUse(PatientIdentifier pi) { 
     
    345355                List<PatientIdentifierType> types = new Vector<PatientIdentifierType>(); 
    346356                types.add(type); 
    347                 List<Patient> patients = getPatients(null, identifier, types); 
     357                List<Patient> patients = getPatients(null, identifier, types, /* exact name+identifier search */ true); 
    348358                 
    349359                // ignore this patient (loop until no changes made) 
     
    357367 
    358368        /** 
    359          * @deprecated replaced by @deprecated replaced by {@link #getPatients(String, String, List, String)} 
     369         * @deprecated replaced by @deprecated replaced by {@link #getPatients(String, String, List)} 
    360370         * @see org.openmrs.api.PatientService#getPatientsByIdentifier(java.lang.String, boolean) 
    361371         */ 
     
    370380         
    371381        /** 
    372          * @deprecated replaced by @deprecated replaced by {@link #getPatients(String, String, List, String)} 
     382         * @deprecated replaced by {@link #getPatients(String, String, List, String)} 
    373383         * @see org.openmrs.api.PatientService#getPatientsByIdentifierPattern(java.lang.String, boolean) 
    374384         */