comparison OrthancServer/Internals/FindScp.cpp @ 1859:4e7c318a3f69

C-FIND SCP will return tags with sequence value representation
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 02 Dec 2015 11:22:05 +0100
parents 30e97a1f4093
children b1291df2f780
comparison
equal deleted inserted replaced
1856:36ab170733d6 1859:4e7c318a3f69
146 } 146 }
147 else 147 else
148 { 148 {
149 if (data.findHandler_ != NULL) 149 if (data.findHandler_ != NULL)
150 { 150 {
151 std::list<DicomTag> sequencesToReturn;
152
153 for (unsigned long i = 0; i < requestIdentifiers->card(); i++)
154 {
155 DcmElement* element = requestIdentifiers->getElement(i);
156 if (element && !element->isLeaf())
157 {
158 const DicomTag tag(FromDcmtkBridge::Convert(element->getTag()));
159
160 DcmSequenceOfItems& sequence = dynamic_cast<DcmSequenceOfItems&>(*element);
161 if (sequence.card() != 0)
162 {
163 LOG(WARNING) << "Orthanc only supports sequence matching on worklists, "
164 << "ignoring C-FIND SCU constraint on tag (" << tag.Format()
165 << ") " << FromDcmtkBridge::GetName(tag);
166 }
167
168 sequencesToReturn.push_back(tag);
169 }
170 }
171
151 DicomMap input; 172 DicomMap input;
152 FromDcmtkBridge::Convert(input, *requestIdentifiers); 173 FromDcmtkBridge::Convert(input, *requestIdentifiers);
153 data.findHandler_->Handle(data.answers_, input, 174 data.findHandler_->Handle(data.answers_, input, sequencesToReturn,
154 *data.remoteIp_, *data.remoteAet_, 175 *data.remoteIp_, *data.remoteAet_,
155 *data.calledAet_); 176 *data.calledAet_);
156 ok = true; 177 ok = true;
157 } 178 }
158 else 179 else