Mercurial > hg > orthanc
diff OrthancServer/Database/SQLiteDatabaseWrapper.cpp @ 3124:c0d7aee8c3f8 db-changes
Fix issue #58 (Patient recycling order should be defined by their received last instance)
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 15 Jan 2019 21:09:33 +0100 |
parents | f86ebf971a72 |
children | 4bbadcd03966 |
line wrap: on
line diff
--- a/OrthancServer/Database/SQLiteDatabaseWrapper.cpp Mon Jan 14 16:23:08 2019 +0100 +++ b/OrthancServer/Database/SQLiteDatabaseWrapper.cpp Tue Jan 15 21:09:33 2019 +0100 @@ -1323,8 +1323,29 @@ } - void SQLiteDatabaseWrapper::TagAsMostRecentPatient(int64_t patient) + void SQLiteDatabaseWrapper::TagMostRecentPatient(int64_t patient) { - // TODO + { + SQLite::Statement s(db_, SQLITE_FROM_HERE, + "DELETE FROM PatientRecyclingOrder WHERE patientId=?"); + s.BindInt64(0, patient); + s.Run(); + + assert(db_.GetLastChangeCount() == 0 || + db_.GetLastChangeCount() == 1); + + if (db_.GetLastChangeCount() == 0) + { + // The patient was protected, there was nothing to delete from the recycling order + return; + } + } + + { + SQLite::Statement s(db_, SQLITE_FROM_HERE, + "INSERT INTO PatientRecyclingOrder VALUES(NULL, ?)"); + s.BindInt64(0, patient); + s.Run(); + } } }