Mercurial > hg > orthanc
diff OrthancServer/main.cpp @ 1802:138664eb59de worklists
sample worklist plugin
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 20 Nov 2015 15:54:07 +0100 |
parents | 30e97a1f4093 |
children | f08978b1f45b cd213ebcaefd |
line wrap: on
line diff
--- a/OrthancServer/main.cpp Fri Nov 20 14:33:41 2015 +0100 +++ b/OrthancServer/main.cpp Fri Nov 20 15:54:07 2015 +0100 @@ -52,14 +52,9 @@ #include "../Plugins/Engine/OrthancPlugins.h" #include "FromDcmtkBridge.h" -#include "Search/HierarchicalMatcher.h" - using namespace Orthanc; - - - class OrthancStoreRequestHandler : public IStoreRequestHandler { private: @@ -95,66 +90,6 @@ - -class OrthancWorklistRequestHandler : public IWorklistRequestHandler -{ -private: - ServerContext& server_; - -public: - OrthancWorklistRequestHandler(ServerContext& context) : - server_(context) - { - } - - virtual void Handle(DicomFindAnswers& answers, - ParsedDicomFile& query, - const std::string& remoteIp, - const std::string& remoteAet, - const std::string& calledAet) - { - LOG(WARNING) << "Worklist Find query from " << remoteAet << " to " << calledAet; - - bool caseSensitivePN = Configuration::GetGlobalBoolParameter("CaseSensitivePN", false); - HierarchicalMatcher matcher(query, caseSensitivePN); - - boost::filesystem::path source("/tmp/worklists/db/ORTHANCTEST"); - boost::filesystem::directory_iterator end; - - try - { - 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 (extension == ".wl") - { - std::string s; - Toolbox::ReadFile(s, it->path().string()); - ParsedDicomFile f(s); - - 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; - } - - answers.SetComplete(true); // All the worklists have been returned - } -}; - - class MyDicomServerFactory : public IStoreRequestHandlerFactory, public IFindRequestHandlerFactory,