comparison OrthancServer/OrthancRestApi/OrthancRestModalities.cpp @ 2222:21713ce8717b

Fix handling of Move Originator AET and ID in C-MOVE SCP
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 13 Dec 2016 14:34:33 +0100
parents f8d4543e3fef
children a3a65de1840f
comparison
equal deleted inserted replaced
2221:e7beca979562 2222:21713ce8717b
684 } 684 }
685 685
686 std::string localAet = Toolbox::GetJsonStringField(request, "LocalAet", context.GetDefaultLocalApplicationEntityTitle()); 686 std::string localAet = Toolbox::GetJsonStringField(request, "LocalAet", context.GetDefaultLocalApplicationEntityTitle());
687 bool permissive = Toolbox::GetJsonBooleanField(request, "Permissive", false); 687 bool permissive = Toolbox::GetJsonBooleanField(request, "Permissive", false);
688 bool asynchronous = Toolbox::GetJsonBooleanField(request, "Asynchronous", false); 688 bool asynchronous = Toolbox::GetJsonBooleanField(request, "Asynchronous", false);
689 std::string moveOriginatorAET = Toolbox::GetJsonStringField(request, "MoveOriginatorAet", context.GetDefaultLocalApplicationEntityTitle());
689 int moveOriginatorID = Toolbox::GetJsonIntegerField(request, "MoveOriginatorID", 0 /* By default, not a C-MOVE */); 690 int moveOriginatorID = Toolbox::GetJsonIntegerField(request, "MoveOriginatorID", 0 /* By default, not a C-MOVE */);
690 691
691 if (moveOriginatorID < 0 || 692 if (moveOriginatorID < 0 ||
692 moveOriginatorID >= 65536) 693 moveOriginatorID >= 65536)
693 { 694 {
698 699
699 ServerJob job; 700 ServerJob job;
700 for (std::list<std::string>::const_iterator 701 for (std::list<std::string>::const_iterator
701 it = instances.begin(); it != instances.end(); ++it) 702 it = instances.begin(); it != instances.end(); ++it)
702 { 703 {
703 job.AddCommand(new StoreScuCommand(context, localAet, p, permissive, 704 std::auto_ptr<StoreScuCommand> command(new StoreScuCommand(context, localAet, p, permissive));
704 static_cast<uint16_t>(moveOriginatorID))).AddInput(*it); 705
706 if (moveOriginatorID != 0)
707 {
708 command->SetMoveOriginator(moveOriginatorAET, static_cast<uint16_t>(moveOriginatorID));
709 }
710
711 job.AddCommand(command.release()).AddInput(*it);
705 } 712 }
706 713
707 job.SetDescription("HTTP request: Store-SCU to peer \"" + remote + "\""); 714 job.SetDescription("HTTP request: Store-SCU to peer \"" + remote + "\"");
708 715
709 if (asynchronous) 716 if (asynchronous)