@Override public void storePatientPushInfo(String localPatientID, String remoteServerName, String remotePatientGUID, String remotePatientID, String remotePatientURL) { if (localPatientID == null || remoteServerName == null) { return; } PatientPushedToInfo existing = getPatientPushInfo(localPatientID, remoteServerName); Session session = this.sessionFactory.getSessionFactory().openSession(); Transaction t = session.beginTransaction(); t.begin(); if (existing != null) { this.logger.debug("Updating patient push info for [{}]: [{}@{}] -> [{}@{}]", localPatientID, existing.getRemotePatientID(), existing.getRemoteServerName(), remotePatientID, remoteServerName); existing.setLastPushTimeToNow(); existing.setRemotePatientID(remotePatientID); existing.setRemotePatientGUID(remotePatientGUID); existing.setRemotePatientURL(remotePatientURL); session.update(existing); } else { this.logger.debug("Saving new patient push info [{}]: [{}@{}]", localPatientID, remotePatientID, remoteServerName); session.save(new PatientPushedToInfo(localPatientID, remoteServerName, remotePatientGUID, remotePatientID, remotePatientURL)); } t.commit(); }