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