diff OrthancServer/main.cpp @ 1797:23722a191e4e worklists

worklists are working
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 20 Nov 2015 11:37:58 +0100
parents 5e08a5fe6b27
children 4f01c9d73f02
line wrap: on
line diff
--- a/OrthancServer/main.cpp	Thu Nov 19 18:32:00 2015 +0100
+++ b/OrthancServer/main.cpp	Fri Nov 20 11:37:58 2015 +0100
@@ -57,6 +57,9 @@
 using namespace Orthanc;
 
 
+
+
+
 class OrthancStoreRequestHandler : public IStoreRequestHandler
 {
 private:
@@ -91,6 +94,8 @@
 };
 
 
+
+
 class OrthancWorklistRequestHandler : public IWorklistRequestHandler
 {
 private:
@@ -107,33 +112,42 @@
                       const std::string& remoteIp,
                       const std::string& remoteAet)
   {
-    printf("=====================================================================\n");
-    printf("Worklist\n");
-
     bool caseSensitivePN = Configuration::GetGlobalBoolParameter("CaseSensitivePN", false);
     HierarchicalMatcher matcher(query, caseSensitivePN);
 
-    std::cout << matcher.Format();
+    boost::filesystem::path source("/tmp/worklists/db/ORTHANCTEST");
+    boost::filesystem::directory_iterator end;
 
-    for (unsigned int i = 1; i <= 10; i++)
+    try
     {
-      std::string p = "/tmp/worklists/db/OFFIS/item" + boost::lexical_cast<std::string>(i) + ".wl";
-      std::string s;
-      Toolbox::ReadFile(s, p);
-      ParsedDicomFile f(s);
-      std::cout << p << " => " << matcher.Match(f) << std::endl;
+      for (boost::filesystem::directory_iterator it(source); it != end; ++it)
+      {
+        if (is_regular_file(it->status()))
+        {
+          std::string extension = boost::filesystem::extension(it->path());
+          Toolbox::ToLowerCase(extension);
 
-      if (matcher.Match(f))
-      {
-        std::auto_ptr<ParsedDicomFile> e(matcher.Extract(f));
+          if (extension == ".wl")
+          {
+            std::string s;
+            Toolbox::ReadFile(s, it->path().string());
+            ParsedDicomFile f(s);
 
-        Json::Value v;
-        e->ToJson(v, DicomToJsonFormat_Short, DicomToJsonFlags_Default, 0);
-        std::cout << v;
+            if (matcher.Match(f))
+            {
+              std::auto_ptr<ParsedDicomFile> e(matcher.Extract(f));
+              answers.Add(*e);
+            }
+          }
+        }
       }
     }
+    catch (boost::filesystem::filesystem_error&)
+    {
+      LOG(ERROR) << "Inexistent folder while scanning for worklists: " << source;
+    }
 
-    return true;
+    return true;  // All the worklists have been returned
   }
 };