Mercurial > hg > orthanc
diff OrthancServer/main.cpp @ 1800:30e97a1f4093 worklists
callback for handling worklists with plugins
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 20 Nov 2015 13:53:20 +0100 |
parents | 4f01c9d73f02 |
children | 138664eb59de |
line wrap: on
line diff
--- a/OrthancServer/main.cpp Fri Nov 20 12:57:14 2015 +0100 +++ b/OrthancServer/main.cpp Fri Nov 20 13:53:20 2015 +0100 @@ -107,7 +107,7 @@ { } - virtual bool Handle(DicomFindAnswers& answers, + virtual void Handle(DicomFindAnswers& answers, ParsedDicomFile& query, const std::string& remoteIp, const std::string& remoteAet, @@ -150,15 +150,14 @@ LOG(ERROR) << "Inexistent folder while scanning for worklists: " << source; } - return true; // All the worklists have been returned + answers.SetComplete(true); // All the worklists have been returned } }; class MyDicomServerFactory : public IStoreRequestHandlerFactory, - public IFindRequestHandlerFactory, - public IWorklistRequestHandlerFactory, + public IFindRequestHandlerFactory, public IMoveRequestHandlerFactory { private: @@ -209,11 +208,6 @@ return new OrthancMoveRequestHandler(context_); } - virtual IWorklistRequestHandler* ConstructWorklistRequestHandler() - { - return new OrthancWorklistRequestHandler(context_); - } - void Done() { } @@ -780,8 +774,12 @@ dicomServer.SetMoveRequestHandlerFactory(serverFactory); dicomServer.SetFindRequestHandlerFactory(serverFactory); - // TODO - Disable the following line if no worklist plugin is available - dicomServer.SetWorklistRequestHandlerFactory(serverFactory); +#if ORTHANC_PLUGINS_ENABLED == 1 + if (plugins) + { + dicomServer.SetWorklistRequestHandlerFactory(*plugins); + } +#endif dicomServer.SetPortNumber(Configuration::GetGlobalIntegerParameter("DicomPort", 4242)); dicomServer.SetApplicationEntityTitle(Configuration::GetGlobalStringParameter("DicomAet", "ORTHANC"));