Mercurial > hg > orthanc
comparison OrthancServer/DatabaseWrapper.cpp @ 204:7f4acf490179
changes api
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 28 Nov 2012 11:27:57 +0100 |
parents | 9283552c25df |
children | 6ab754744446 |
comparison
equal
deleted
inserted
replaced
203:9283552c25df | 204:7f4acf490179 |
---|---|
513 s.BindString(3, boost::posix_time::to_iso_string(date)); | 513 s.BindString(3, boost::posix_time::to_iso_string(date)); |
514 s.Run(); | 514 s.Run(); |
515 } | 515 } |
516 | 516 |
517 | 517 |
518 void DatabaseWrapper::GetChanges(Json::Value& target, | |
519 int64_t since, | |
520 unsigned int maxResults) | |
521 { | |
522 SQLite::Statement s(db_, SQLITE_FROM_HERE, "SELECT * FROM Changes WHERE seq>? ORDER BY seq LIMIT ?"); | |
523 s.BindInt(0, since); | |
524 s.BindInt(1, maxResults + 1); | |
525 | |
526 Json::Value changes = Json::arrayValue; | |
527 int64_t last = 0; | |
528 | |
529 while (changes.size() < maxResults && s.Step()) | |
530 { | |
531 int64_t seq = s.ColumnInt(0); | |
532 ChangeType changeType = static_cast<ChangeType>(s.ColumnInt(1)); | |
533 int64_t internalId = s.ColumnInt(2); | |
534 ResourceType resourceType = static_cast<ResourceType>(s.ColumnInt(3)); | |
535 const std::string& date = s.ColumnString(4); | |
536 | |
537 Json::Value item = Json::objectValue; | |
538 item["Seq"] = static_cast<int>(seq); | |
539 item["ChangeType"] = ToString(changeType); | |
540 item["ResourceType"] = ToString(resourceType); | |
541 item["ID"] = GetPublicId(internalId); | |
542 item["Date"] = date; | |
543 last = seq; | |
544 | |
545 changes.append(item); | |
546 } | |
547 | |
548 target = Json::objectValue; | |
549 target["Changes"] = changes; | |
550 target["PendingChanges"] = (changes.size() == maxResults && s.Step()); | |
551 target["LastSeq"] = static_cast<int>(last); | |
552 } | |
553 | |
554 | |
518 void DatabaseWrapper::LogExportedInstance(const std::string& remoteModality, | 555 void DatabaseWrapper::LogExportedInstance(const std::string& remoteModality, |
519 DicomInstanceHasher& hasher, | 556 DicomInstanceHasher& hasher, |
520 const boost::posix_time::ptime& date) | 557 const boost::posix_time::ptime& date) |
521 { | 558 { |
522 SQLite::Statement s(db_, SQLITE_FROM_HERE, "INSERT INTO ExportedInstances VALUES(NULL, ?, ?, ?, ?, ?, ?)"); | 559 SQLite::Statement s(db_, SQLITE_FROM_HERE, "INSERT INTO ExportedInstances VALUES(NULL, ?, ?, ?, ?, ?, ?)"); |