comparison OrthancServer/Internals/CommandDispatcher.cpp @ 665:41b3e5ccb291

fix for medInria
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 07 Nov 2013 16:25:28 +0100
parents d233b5090105
children aa2ab67d913d
comparison
equal deleted inserted replaced
664:855adbdd75a6 665:41b3e5ccb291
236 236
237 // For C-MOVE 237 // For C-MOVE
238 if (server.HasMoveRequestHandlerFactory()) 238 if (server.HasMoveRequestHandlerFactory())
239 { 239 {
240 knownAbstractSyntaxes.push_back(UID_MOVEStudyRootQueryRetrieveInformationModel); 240 knownAbstractSyntaxes.push_back(UID_MOVEStudyRootQueryRetrieveInformationModel);
241 knownAbstractSyntaxes.push_back(UID_MOVEPatientRootQueryRetrieveInformationModel);
241 } 242 }
242 243
243 cond = ASC_receiveAssociation(net, &assoc, 244 cond = ASC_receiveAssociation(net, &assoc,
244 /*opt_maxPDU*/ ASC_DEFAULTMAXPDU, 245 /*opt_maxPDU*/ ASC_DEFAULTMAXPDU,
245 NULL, NULL, 246 NULL, NULL,
264 265
265 LOG(INFO) << "Association Received"; 266 LOG(INFO) << "Association Received";
266 267
267 std::vector<const char*> transferSyntaxes; 268 std::vector<const char*> transferSyntaxes;
268 269
269 #if 0
270 // This is the list of the transfer syntaxes that were supported up to Orthanc 0.7.1 270 // This is the list of the transfer syntaxes that were supported up to Orthanc 0.7.1
271 transferSyntaxes.push_back(UID_LittleEndianExplicitTransferSyntax); 271 transferSyntaxes.push_back(UID_LittleEndianExplicitTransferSyntax);
272 transferSyntaxes.push_back(UID_BigEndianExplicitTransferSyntax); 272 transferSyntaxes.push_back(UID_BigEndianExplicitTransferSyntax);
273 transferSyntaxes.push_back(UID_LittleEndianImplicitTransferSyntax); 273 transferSyntaxes.push_back(UID_LittleEndianImplicitTransferSyntax);
274 #else 274
275 transferSyntaxes.push_back(UID_LittleEndianImplicitTransferSyntax); 275 // New transfer syntaxes supported since Orthanc 0.7.2
276 transferSyntaxes.push_back(UID_DeflatedExplicitVRLittleEndianTransferSyntax); 276 transferSyntaxes.push_back(UID_DeflatedExplicitVRLittleEndianTransferSyntax);
277 transferSyntaxes.push_back(UID_JPEGProcess1TransferSyntax); 277 transferSyntaxes.push_back(UID_JPEGProcess1TransferSyntax);
278 transferSyntaxes.push_back(UID_JPEGProcess2_4TransferSyntax); 278 transferSyntaxes.push_back(UID_JPEGProcess2_4TransferSyntax);
279 transferSyntaxes.push_back(UID_JPEGProcess3_5TransferSyntax); 279 transferSyntaxes.push_back(UID_JPEGProcess3_5TransferSyntax);
280 transferSyntaxes.push_back(UID_JPEGProcess6_8TransferSyntax); 280 transferSyntaxes.push_back(UID_JPEGProcess6_8TransferSyntax);
301 transferSyntaxes.push_back(UID_JPIPReferencedTransferSyntax); 301 transferSyntaxes.push_back(UID_JPIPReferencedTransferSyntax);
302 transferSyntaxes.push_back(UID_JPIPReferencedDeflateTransferSyntax); 302 transferSyntaxes.push_back(UID_JPIPReferencedDeflateTransferSyntax);
303 transferSyntaxes.push_back(UID_MPEG2MainProfileAtMainLevelTransferSyntax); 303 transferSyntaxes.push_back(UID_MPEG2MainProfileAtMainLevelTransferSyntax);
304 transferSyntaxes.push_back(UID_MPEG2MainProfileAtHighLevelTransferSyntax); 304 transferSyntaxes.push_back(UID_MPEG2MainProfileAtHighLevelTransferSyntax);
305 transferSyntaxes.push_back(UID_RLELosslessTransferSyntax); 305 transferSyntaxes.push_back(UID_RLELosslessTransferSyntax);
306 #endif
307 306
308 /* accept the Verification SOP Class if presented */ 307 /* accept the Verification SOP Class if presented */
309 cond = ASC_acceptContextsWithPreferredTransferSyntaxes( assoc->params, &knownAbstractSyntaxes[0], knownAbstractSyntaxes.size(), &transferSyntaxes[0], transferSyntaxes.size()); 308 cond = ASC_acceptContextsWithPreferredTransferSyntaxes( assoc->params, &knownAbstractSyntaxes[0], knownAbstractSyntaxes.size(), &transferSyntaxes[0], transferSyntaxes.size());
310 if (cond.bad()) 309 if (cond.bad())
311 { 310 {
578 case DicomRequestType_Find: 577 case DicomRequestType_Find:
579 if (server_.HasFindRequestHandlerFactory()) // Should always be true 578 if (server_.HasFindRequestHandlerFactory()) // Should always be true
580 { 579 {
581 std::auto_ptr<IFindRequestHandler> handler 580 std::auto_ptr<IFindRequestHandler> handler
582 (server_.GetFindRequestHandlerFactory().ConstructFindRequestHandler()); 581 (server_.GetFindRequestHandlerFactory().ConstructFindRequestHandler());
583 cond = Internals::findScp(assoc_, &msg, presID, *handler); 582 cond = Internals::findScp(assoc_, &msg, presID, *handler, callingAETitle_);
584 } 583 }
585 break; 584 break;
586 585
587 default: 586 default:
588 // Should never happen 587 // Should never happen
593 else 592 else
594 { 593 {
595 // Bad status, which indicates the closing of the connection by 594 // Bad status, which indicates the closing of the connection by
596 // the peer or a network error 595 // the peer or a network error
597 finished = true; 596 finished = true;
597
598 LOG(ERROR) << cond.text();
598 } 599 }
599 600
600 if (finished) 601 if (finished)
601 { 602 {
602 if (cond == DUL_PEERREQUESTEDRELEASE) 603 if (cond == DUL_PEERREQUESTEDRELEASE)