Mercurial > hg > orthanc
comparison OrthancFramework/Sources/DicomFormat/DicomPath.cpp @ 4690:13efc0967cea
cppcheck
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 10 Jun 2021 11:21:22 +0200 |
parents | ead3b81f4541 |
children | e17fdc43ef6c |
comparison
equal
deleted
inserted
replaced
4689:ead3b81f4541 | 4690:13efc0967cea |
---|---|
110 return prefix_[i]; | 110 return prefix_[i]; |
111 } | 111 } |
112 } | 112 } |
113 | 113 |
114 | 114 |
115 DicomPath::DicomPath(const Orthanc::DicomTag& tag) : | |
116 finalTag_(tag) | |
117 { | |
118 } | |
119 | |
120 | |
115 DicomPath::DicomPath(const Orthanc::DicomTag& sequence, | 121 DicomPath::DicomPath(const Orthanc::DicomTag& sequence, |
116 size_t index, | 122 size_t index, |
117 const Orthanc::DicomTag& tag) : | 123 const Orthanc::DicomTag& tag) : |
118 finalTag_(tag) | 124 finalTag_(tag) |
119 { | 125 { |
147 AddIndexedTagToPrefix(sequence3, index3); | 153 AddIndexedTagToPrefix(sequence3, index3); |
148 } | 154 } |
149 | 155 |
150 | 156 |
151 DicomPath::DicomPath(const std::vector<Orthanc::DicomTag>& parentTags, | 157 DicomPath::DicomPath(const std::vector<Orthanc::DicomTag>& parentTags, |
152 const std::vector<size_t> parentIndexes, | 158 const std::vector<size_t>& parentIndexes, |
153 const Orthanc::DicomTag& finalTag) : | 159 const Orthanc::DicomTag& finalTag) : |
154 finalTag_(finalTag) | 160 finalTag_(finalTag) |
155 { | 161 { |
156 if (parentTags.size() != parentIndexes.size()) | 162 if (parentTags.size() != parentIndexes.size()) |
157 { | 163 { |
179 void DicomPath::AddUniversalTagToPrefix(const Orthanc::DicomTag& tag) | 185 void DicomPath::AddUniversalTagToPrefix(const Orthanc::DicomTag& tag) |
180 { | 186 { |
181 prefix_.push_back(PrefixItem::CreateUniversal(tag)); | 187 prefix_.push_back(PrefixItem::CreateUniversal(tag)); |
182 } | 188 } |
183 | 189 |
190 | |
191 size_t DicomPath::GetPrefixLength() const | |
192 { | |
193 return prefix_.size(); | |
194 } | |
195 | |
196 | |
197 const Orthanc::DicomTag& DicomPath::GetFinalTag() const | |
198 { | |
199 return finalTag_; | |
200 } | |
201 | |
202 | |
203 const Orthanc::DicomTag& DicomPath::GetPrefixTag(size_t level) const | |
204 { | |
205 return GetLevel(level).GetTag(); | |
206 } | |
207 | |
208 | |
209 bool DicomPath::IsPrefixUniversal(size_t level) const | |
210 { | |
211 return GetLevel(level).IsUniversal(); | |
212 } | |
213 | |
214 | |
215 size_t DicomPath::GetPrefixIndex(size_t level) const | |
216 { | |
217 return GetLevel(level).GetIndex(); | |
218 } | |
219 | |
184 | 220 |
185 bool DicomPath::HasUniversal() const | 221 bool DicomPath::HasUniversal() const |
186 { | 222 { |
187 for (size_t i = 0; i < prefix_.size(); i++) | 223 for (size_t i = 0; i < prefix_.size(); i++) |
188 { | 224 { |
271 { | 307 { |
272 DicomTag tag = ParseTag(left); | 308 DicomTag tag = ParseTag(left); |
273 | 309 |
274 try | 310 try |
275 { | 311 { |
276 std::string s = Toolbox::StripSpaces(right.substr(0, right.size() - 1)); | 312 std::string t = Toolbox::StripSpaces(right.substr(0, right.size() - 1)); |
277 if (s == "*") | 313 if (t == "*") |
278 { | 314 { |
279 path.AddUniversalTagToPrefix(tag); | 315 path.AddUniversalTagToPrefix(tag); |
280 } | 316 } |
281 else | 317 else |
282 { | 318 { |
283 int index = boost::lexical_cast<int>(s); | 319 int index = boost::lexical_cast<int>(t); |
284 if (index < 0) | 320 if (index < 0) |
285 { | 321 { |
286 throw OrthancException(ErrorCode_ParameterOutOfRange, "Negative index in parent path: " + s); | 322 throw OrthancException(ErrorCode_ParameterOutOfRange, "Negative index in parent path: " + t); |
287 } | 323 } |
288 else | 324 else |
289 { | 325 { |
290 path.AddIndexedTagToPrefix(tag, static_cast<size_t>(index)); | 326 path.AddIndexedTagToPrefix(tag, static_cast<size_t>(index)); |
291 } | 327 } |