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 }