comparison 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
comparison
equal deleted inserted replaced
1799:4f01c9d73f02 1800:30e97a1f4093
105 OrthancWorklistRequestHandler(ServerContext& context) : 105 OrthancWorklistRequestHandler(ServerContext& context) :
106 server_(context) 106 server_(context)
107 { 107 {
108 } 108 }
109 109
110 virtual bool Handle(DicomFindAnswers& answers, 110 virtual void Handle(DicomFindAnswers& answers,
111 ParsedDicomFile& query, 111 ParsedDicomFile& query,
112 const std::string& remoteIp, 112 const std::string& remoteIp,
113 const std::string& remoteAet, 113 const std::string& remoteAet,
114 const std::string& calledAet) 114 const std::string& calledAet)
115 { 115 {
148 catch (boost::filesystem::filesystem_error&) 148 catch (boost::filesystem::filesystem_error&)
149 { 149 {
150 LOG(ERROR) << "Inexistent folder while scanning for worklists: " << source; 150 LOG(ERROR) << "Inexistent folder while scanning for worklists: " << source;
151 } 151 }
152 152
153 return true; // All the worklists have been returned 153 answers.SetComplete(true); // All the worklists have been returned
154 } 154 }
155 }; 155 };
156 156
157 157
158 class MyDicomServerFactory : 158 class MyDicomServerFactory :
159 public IStoreRequestHandlerFactory, 159 public IStoreRequestHandlerFactory,
160 public IFindRequestHandlerFactory, 160 public IFindRequestHandlerFactory,
161 public IWorklistRequestHandlerFactory,
162 public IMoveRequestHandlerFactory 161 public IMoveRequestHandlerFactory
163 { 162 {
164 private: 163 private:
165 ServerContext& context_; 164 ServerContext& context_;
166 165
205 } 204 }
206 205
207 virtual IMoveRequestHandler* ConstructMoveRequestHandler() 206 virtual IMoveRequestHandler* ConstructMoveRequestHandler()
208 { 207 {
209 return new OrthancMoveRequestHandler(context_); 208 return new OrthancMoveRequestHandler(context_);
210 }
211
212 virtual IWorklistRequestHandler* ConstructWorklistRequestHandler()
213 {
214 return new OrthancWorklistRequestHandler(context_);
215 } 209 }
216 210
217 void Done() 211 void Done()
218 { 212 {
219 } 213 }
778 dicomServer.SetCalledApplicationEntityTitleCheck(Configuration::GetGlobalBoolParameter("DicomCheckCalledAet", false)); 772 dicomServer.SetCalledApplicationEntityTitleCheck(Configuration::GetGlobalBoolParameter("DicomCheckCalledAet", false));
779 dicomServer.SetStoreRequestHandlerFactory(serverFactory); 773 dicomServer.SetStoreRequestHandlerFactory(serverFactory);
780 dicomServer.SetMoveRequestHandlerFactory(serverFactory); 774 dicomServer.SetMoveRequestHandlerFactory(serverFactory);
781 dicomServer.SetFindRequestHandlerFactory(serverFactory); 775 dicomServer.SetFindRequestHandlerFactory(serverFactory);
782 776
783 // TODO - Disable the following line if no worklist plugin is available 777 #if ORTHANC_PLUGINS_ENABLED == 1
784 dicomServer.SetWorklistRequestHandlerFactory(serverFactory); 778 if (plugins)
779 {
780 dicomServer.SetWorklistRequestHandlerFactory(*plugins);
781 }
782 #endif
785 783
786 dicomServer.SetPortNumber(Configuration::GetGlobalIntegerParameter("DicomPort", 4242)); 784 dicomServer.SetPortNumber(Configuration::GetGlobalIntegerParameter("DicomPort", 4242));
787 dicomServer.SetApplicationEntityTitle(Configuration::GetGlobalStringParameter("DicomAet", "ORTHANC")); 785 dicomServer.SetApplicationEntityTitle(Configuration::GetGlobalStringParameter("DicomAet", "ORTHANC"));
788 dicomServer.SetApplicationEntityFilter(dicomFilter); 786 dicomServer.SetApplicationEntityFilter(dicomFilter);
789 787