comparison OrthancServer/OrthancMoveRequestHandler.cpp @ 772:31cc399c7762

RemoteModalityParameters
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 30 Apr 2014 14:51:43 +0200
parents 537837f50fbb
children be87dd517416
comparison
equal deleted inserted replaced
771:537837f50fbb 772:31cc399c7762
31 31
32 #include "OrthancMoveRequestHandler.h" 32 #include "OrthancMoveRequestHandler.h"
33 33
34 #include <glog/logging.h> 34 #include <glog/logging.h>
35 35
36 #include "DicomProtocol/DicomUserConnection.h"
37 #include "OrthancInitialization.h" 36 #include "OrthancInitialization.h"
38 37
39 namespace Orthanc 38 namespace Orthanc
40 { 39 {
41 namespace 40 namespace
46 { 45 {
47 private: 46 private:
48 ServerContext& context_; 47 ServerContext& context_;
49 std::vector<std::string> instances_; 48 std::vector<std::string> instances_;
50 size_t position_; 49 size_t position_;
51 50 RemoteModalityParameters remote_;
52 std::string aet_, address_;
53 int port_;
54 ModalityManufacturer manufacturer_;
55 51
56 public: 52 public:
57 OrthancMoveRequestIterator(ServerContext& context, 53 OrthancMoveRequestIterator(ServerContext& context,
58 const std::string& aet, 54 const std::string& aet,
59 const std::string& publicId) : 55 const std::string& publicId) :
60 context_(context), 56 context_(context),
61 position_(0), 57 position_(0)
62 aet_(aet)
63 { 58 {
64 LOG(INFO) << "Sending resource " << publicId << " to modality \"" << aet << "\""; 59 LOG(INFO) << "Sending resource " << publicId << " to modality \"" << aet << "\"";
65 60
66 std::list<std::string> tmp; 61 std::list<std::string> tmp;
67 context_.GetIndex().GetChildInstances(tmp, publicId); 62 context_.GetIndex().GetChildInstances(tmp, publicId);
70 for (std::list<std::string>::iterator it = tmp.begin(); it != tmp.end(); ++it) 65 for (std::list<std::string>::iterator it = tmp.begin(); it != tmp.end(); ++it)
71 { 66 {
72 instances_.push_back(*it); 67 instances_.push_back(*it);
73 } 68 }
74 69
75 std::string symbolicName; 70 remote_ = GetModalityUsingAet(aet);
76 if (!LookupDicomModalityUsingAETitle(aet_, symbolicName, address_, port_, manufacturer_))
77 {
78 throw OrthancException("Unknown modality: " + aet_);
79 }
80 } 71 }
81 72
82 virtual unsigned int GetSubOperationCount() const 73 virtual unsigned int GetSubOperationCount() const
83 { 74 {
84 return instances_.size(); 75 return instances_.size();
95 86
96 std::string dicom; 87 std::string dicom;
97 context_.ReadFile(dicom, id, FileContentType_Dicom); 88 context_.ReadFile(dicom, id, FileContentType_Dicom);
98 89
99 { 90 {
100 ReusableDicomUserConnection::Connection connection(context_.GetReusableDicomUserConnection(), 91 ReusableDicomUserConnection::Connection connection
101 aet_, address_, port_, manufacturer_); 92 (context_.GetReusableDicomUserConnection(), remote_);
102 connection.GetConnection().Store(dicom); 93 connection.GetConnection().Store(dicom);
103 } 94 }
104 95
105 return Status_Success; 96 return Status_Success;
106 } 97 }