public void Delete(Patient patient, String homeCommunityId) { log.info( "Attemping to Delete identifiers for community: " + homeCommunityId + " for patient: " + patient.getName().getFirstName() + " " + patient.getName().getLastName()); Patients existingPatients = Search(patient, true, true); int patIdx = 0; int idIdx = 0; if (existingPatients.size() > 1) { log.info("ERROR: Multiple instances of the patient were found"); } else if (existingPatients.size() == 1) { log.info("Found 1 entry in MPI for the patient"); for (Patient tmpPatient : getPatients()) { if (existingPatients.get(0) == tmpPatient) { log.info("Found a match in index " + patIdx); for (Identifier id : getPatients().get(patIdx).getIdentifiers()) { if (homeCommunityId.contentEquals(id.getOrganizationId())) { log.info("Found a match for identifiers in index" + idIdx); Identifier result = getPatients().get(patIdx).getIdentifiers().remove(idIdx); break; } idIdx++; } break; } patIdx++; } } else { // System.out.println("ERROR: Patient not found in MPI"); log.info("ERROR: Patient not found in MPI"); } SaveData(); }
public Patient AddUpdate(Patient newPatient) { Patient resultPatient = null; ValidateNewPatient(newPatient); Patients existingPatients = Search(newPatient, true, true); if (existingPatients.size() == 2) { // throw exception } else if (existingPatients.size() == 1) { resultPatient = existingPatients.get(0); resultPatient.getIdentifiers().add(newPatient.getIdentifiers()); resultPatient.setName(newPatient.getName()); resultPatient.setGender(newPatient.getGender()); resultPatient.setOptedIn(newPatient.isOptedIn()); } else { getPatients().add(newPatient); resultPatient = newPatient; } SaveData(); return resultPatient; }