comparison OrthancServer/Internals/FindScp.cpp @ 1799:4f01c9d73f02 worklists

calledAet made available to all the handlers
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 20 Nov 2015 12:57:14 +0100
parents bdcc1dba4a53
children 30e97a1f4093
comparison
equal deleted inserted replaced
1798:e92cd8841a5f 1799:4f01c9d73f02
99 IWorklistRequestHandler* worklistHandler_; 99 IWorklistRequestHandler* worklistHandler_;
100 DicomFindAnswers answers_; 100 DicomFindAnswers answers_;
101 DcmDataset* lastRequest_; 101 DcmDataset* lastRequest_;
102 const std::string* remoteIp_; 102 const std::string* remoteIp_;
103 const std::string* remoteAet_; 103 const std::string* remoteAet_;
104 const std::string* calledAet_;
104 bool noCroppingOfResults_; 105 bool noCroppingOfResults_;
105 }; 106 };
106 107
107 108
108 void FindScpCallback( 109 void FindScpCallback(
133 { 134 {
134 if (data.worklistHandler_ != NULL) 135 if (data.worklistHandler_ != NULL)
135 { 136 {
136 ParsedDicomFile query(*requestIdentifiers); 137 ParsedDicomFile query(*requestIdentifiers);
137 data.noCroppingOfResults_ = data.worklistHandler_->Handle(data.answers_, query, 138 data.noCroppingOfResults_ = data.worklistHandler_->Handle(data.answers_, query,
138 *data.remoteIp_, *data.remoteAet_); 139 *data.remoteIp_, *data.remoteAet_,
140 *data.calledAet_);
139 ok = true; 141 ok = true;
140 } 142 }
141 else 143 else
142 { 144 {
143 LOG(ERROR) << "No worklist handler is installed, cannot handle this C-FIND request"; 145 LOG(ERROR) << "No worklist handler is installed, cannot handle this C-FIND request";
148 if (data.findHandler_ != NULL) 150 if (data.findHandler_ != NULL)
149 { 151 {
150 DicomMap input; 152 DicomMap input;
151 FromDcmtkBridge::Convert(input, *requestIdentifiers); 153 FromDcmtkBridge::Convert(input, *requestIdentifiers);
152 data.noCroppingOfResults_ = data.findHandler_->Handle(data.answers_, input, 154 data.noCroppingOfResults_ = data.findHandler_->Handle(data.answers_, input,
153 *data.remoteIp_, *data.remoteAet_); 155 *data.remoteIp_, *data.remoteAet_,
156 *data.calledAet_);
154 ok = true; 157 ok = true;
155 } 158 }
156 else 159 else
157 { 160 {
158 LOG(ERROR) << "No C-Find handler is installed, cannot handle this request"; 161 LOG(ERROR) << "No C-Find handler is installed, cannot handle this request";
209 T_DIMSE_Message * msg, 212 T_DIMSE_Message * msg,
210 T_ASC_PresentationContextID presID, 213 T_ASC_PresentationContextID presID,
211 IFindRequestHandler* findHandler, 214 IFindRequestHandler* findHandler,
212 IWorklistRequestHandler* worklistHandler, 215 IWorklistRequestHandler* worklistHandler,
213 const std::string& remoteIp, 216 const std::string& remoteIp,
214 const std::string& remoteAet) 217 const std::string& remoteAet,
218 const std::string& calledAet)
215 { 219 {
216 FindScpData data; 220 FindScpData data;
217 data.lastRequest_ = NULL; 221 data.lastRequest_ = NULL;
218 data.findHandler_ = findHandler; 222 data.findHandler_ = findHandler;
219 data.worklistHandler_ = worklistHandler; 223 data.worklistHandler_ = worklistHandler;
220 data.remoteIp_ = &remoteIp; 224 data.remoteIp_ = &remoteIp;
221 data.remoteAet_ = &remoteAet; 225 data.remoteAet_ = &remoteAet;
226 data.calledAet_ = &calledAet;
222 data.noCroppingOfResults_ = true; 227 data.noCroppingOfResults_ = true;
223 228
224 OFCondition cond = DIMSE_findProvider(assoc, presID, &msg->msg.CFindRQ, 229 OFCondition cond = DIMSE_findProvider(assoc, presID, &msg->msg.CFindRQ,
225 FindScpCallback, &data, 230 FindScpCallback, &data,
226 /*opt_blockMode*/ DIMSE_BLOCKING, 231 /*opt_blockMode*/ DIMSE_BLOCKING,