Mercurial > hg > orthanc
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 } };