private void loadPatientIdentifiers() { List<IdentifierType> types = PatientManager.getAllIdentifierTypes(getHSession()); identiers = new ArrayList<PatientIdentifier>(); typeLoop: for (IdentifierType type : types) { if (type.isVoided()) continue; for (PatientIdentifier identifier : localPatient.getPatientIdentifiers()) { if (identifier.getType().getId() == type.getId()) { identifier.setValueEdit(identifier.getValue()); identiers.add(identifier); continue typeLoop; } } // create new identifier if the patient doesn't already have on for this type PatientIdentifier identifier = new PatientIdentifier(); identifier.setType(type); identifier.setValueEdit(EMPTY); identifier.setPatient(localPatient); identiers.add(identifier); } tblViewer.setInput(identiers); }
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(); } }