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"));