diff OrthancServer/ServerIndex.cpp @ 238:e4148b0ab1d0

statistics URI
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 30 Nov 2012 16:09:24 +0100
parents 16a4ac70bd8a
children 30887f3593dd
line wrap: on
line diff
--- a/OrthancServer/ServerIndex.cpp	Fri Nov 30 15:45:15 2012 +0100
+++ b/OrthancServer/ServerIndex.cpp	Fri Nov 30 16:09:24 2012 +0100
@@ -350,17 +350,24 @@
   }
 
 
-  uint64_t ServerIndex::GetTotalCompressedSize()
+  void ServerIndex::ComputeStatistics(Json::Value& target)
   {
     boost::mutex::scoped_lock lock(mutex_);
-    return db_->GetTotalCompressedSize();
-  }
+    target = Json::objectValue;
 
-  uint64_t ServerIndex::GetTotalUncompressedSize()
-  {
-    boost::mutex::scoped_lock lock(mutex_);
-    return db_->GetTotalUncompressedSize();
-  }
+    uint64_t cs = db_->GetTotalCompressedSize();
+    uint64_t us = db_->GetTotalUncompressedSize();
+    target["TotalDiskSize"] = boost::lexical_cast<std::string>(cs);
+    target["TotalUncompressedSize"] = boost::lexical_cast<std::string>(us);
+    target["TotalDiskSizeMB"] = boost::lexical_cast<unsigned int>(cs / (1024llu * 1024llu));
+    target["TotalUncompressedSizeMB"] = boost::lexical_cast<unsigned int>(us / (1024llu * 1024llu));
+
+    target["CountPatients"] = static_cast<unsigned int>(db_->GetResourceCount(ResourceType_Patient));
+    target["CountStudies"] = static_cast<unsigned int>(db_->GetResourceCount(ResourceType_Study));
+    target["CountSeries"] = static_cast<unsigned int>(db_->GetResourceCount(ResourceType_Series));
+    target["CountInstances"] = static_cast<unsigned int>(db_->GetResourceCount(ResourceType_Instance));
+  }          
+
 
 
   SeriesStatus ServerIndex::GetSeriesStatus(int id)