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