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