protected void cmdSaveSelected() { if (fieldsOk()) { Set<PatientIdentifier> patientIds = localPatient.getPatientIdentifiers(); for (PatientIdentifier newId : identiers) { if (newId.getValueEdit() == null || newId.getValueEdit().isEmpty()) { if (newId.getId() != -1) { patientIds.remove(newId); changesMade = true; } continue; } if (newId.getId() == -1) { changesMade = true; patientIds.add(newId); newId.setValue(newId.getValueEdit()); newId.setValueEdit(null); continue; } // check if an existing id was changed if (!newId.getValue().equals(newId.getValueEdit())) { changesMade = true; AlternatePatientIdentifier alt = new AlternatePatientIdentifier( newId.getValue(), localPatient, new Date(), true, newId.getType()); localPatient.getAlternateIdentifiers().add(alt); newId.setValue(newId.getValueEdit()); newId.setValueEdit(null); } } localPatient.setPatientId(localPatient.getPreferredIdentifier().getValue()); cmdCloseSelected(); } }
@Override protected Object getValue(Object element) { PatientIdentifier model = (PatientIdentifier) element; return model.getValueEdit(); }
private boolean fieldsOk() { boolean allEmpty = true; for (PatientIdentifier newId : identiers) { if (newId.getValueEdit() == null || newId.getValueEdit().isEmpty()) continue; allEmpty = false; String illegalText = iDARTUtil.checkPatientId(newId.getValueEdit()); if (illegalText != null) { showMessage( MessageDialog.ERROR, MessageFormat.format( Messages.getString("patient.error.badCharacterInPatientId.title"), // $NON-NLS-1$ illegalText), MessageFormat.format( Messages.getString("patient.error.badCharacterInPatientId"), // $NON-NLS-1$ iDartProperties.illegalPatientIdChars)); return false; } if (PatientManager.checkPatientIdentifier( getHSession(), newId.getPatient(), newId.getType(), newId.getValueEdit())) { showMessage( MessageDialog.ERROR, Messages.getString("PatientIdDialog.error.exists.title"), // $NON-NLS-1$ MessageFormat.format( Messages.getString("PatientIdDialog.error.exists.message"), // $NON-NLS-1$ newId.getType().getName(), newId.getValueEdit())); return false; } List<Patient> altPatients = PatientManager.getPatientsByAltId(getHSession(), newId.getType(), newId.getValueEdit()); if (!altPatients.isEmpty()) { String patientsWithThisOldId = EMPTY; for (Patient p : altPatients) { patientsWithThisOldId += (p.getPatientId() + ", "); // $NON-NLS-1$ } patientsWithThisOldId = patientsWithThisOldId.substring(0, patientsWithThisOldId.length() - 2); MessageBox mSave = new MessageBox(getShell(), SWT.ICON_WARNING | SWT.YES | SWT.NO); mSave.setText(Messages.getString("patient.warning.saveDuplicateId.title")); // $NON-NLS-1$ mSave.setMessage( MessageFormat.format( Messages.getString("patient.warning.saveDuplicateId"), // $NON-NLS-1$ patientsWithThisOldId)); if (mSave.open() != SWT.YES) { return false; } } } if (allEmpty) { showMessage( MessageDialog.ERROR, Messages.getString("PatientIdDialog.error.empty.title"), // $NON-NLS-1$ Messages.getString("PatientIdDialog.error.empyt.message")); // $NON-NLS-1$ return false; } return true; }