Mercurial > hg > orthanc
comparison OrthancServer/Sources/Database/FindRequest.cpp @ 5621:732ec9feeea8 find-refactoring
introduction of FindRequest::ChildrenRetrieveSpecification
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Sat, 11 May 2024 15:43:07 +0200 |
parents | 1864b16bc7b1 |
children | 3f13db27b399 |
comparison
equal
deleted
inserted
replaced
5620:4bfd885fb45f | 5621:732ec9feeea8 |
---|---|
53 throw OrthancException(ErrorCode_ParameterOutOfRange); | 53 throw OrthancException(ErrorCode_ParameterOutOfRange); |
54 } | 54 } |
55 } | 55 } |
56 | 56 |
57 | 57 |
58 FindRequest::ChildrenRetrieveSpecification& FindRequest::GetChildrenRetrieveSpecification(ResourceType level) | |
59 { | |
60 if (!IsResourceLevelAboveOrEqual(level_, level)) | |
61 { | |
62 throw OrthancException(ErrorCode_ParameterOutOfRange); | |
63 } | |
64 | |
65 switch (level) | |
66 { | |
67 case ResourceType_Study: | |
68 return retrieveChildrenStudies_; | |
69 | |
70 case ResourceType_Series: | |
71 return retrieveChildrenSeries_; | |
72 | |
73 case ResourceType_Instance: | |
74 return retrieveChildrenInstances_; | |
75 | |
76 default: | |
77 throw OrthancException(ErrorCode_ParameterOutOfRange); | |
78 } | |
79 } | |
80 | |
81 | |
58 FindRequest::FindRequest(ResourceType level) : | 82 FindRequest::FindRequest(ResourceType level) : |
59 level_(level), | 83 level_(level), |
60 hasLimits_(false), | 84 hasLimits_(false), |
61 limitsSince_(0), | 85 limitsSince_(0), |
62 limitsCount_(0), | 86 limitsCount_(0), |
63 retrieveMainDicomTags_(false), | 87 retrieveMainDicomTags_(false), |
64 retrieveMetadata_(false), | 88 retrieveMetadata_(false), |
65 retrieveLabels_(false), | 89 retrieveLabels_(false), |
66 retrieveAttachments_(false), | 90 retrieveAttachments_(false), |
67 retrieveParentIdentifier_(false), | 91 retrieveParentIdentifier_(false), |
68 retrieveChildrenIdentifiers_(false), | |
69 retrieveOneInstanceIdentifier_(false) | 92 retrieveOneInstanceIdentifier_(false) |
70 { | 93 { |
71 } | 94 } |
72 | 95 |
73 | 96 |
267 retrieveParentIdentifier_ = retrieve; | 290 retrieveParentIdentifier_ = retrieve; |
268 } | 291 } |
269 } | 292 } |
270 | 293 |
271 | 294 |
272 void FindRequest::SetRetrieveChildrenIdentifiers(bool retrieve) | 295 void FindRequest::AddRetrieveChildrenMetadata(MetadataType metadata) |
296 { | |
297 if (IsRetrieveChildrenMetadata(metadata)) | |
298 { | |
299 throw OrthancException(ErrorCode_BadSequenceOfCalls); | |
300 } | |
301 else | |
302 { | |
303 retrieveChildrenMetadata_.insert(metadata); | |
304 } | |
305 } | |
306 | |
307 | |
308 void FindRequest::SetRetrieveOneInstanceIdentifier(bool retrieve) | |
273 { | 309 { |
274 if (level_ == ResourceType_Instance) | 310 if (level_ == ResourceType_Instance) |
275 { | 311 { |
276 throw OrthancException(ErrorCode_BadParameterType); | |
277 } | |
278 else | |
279 { | |
280 retrieveChildrenIdentifiers_ = retrieve; | |
281 } | |
282 } | |
283 | |
284 | |
285 void FindRequest::AddRetrieveChildrenMetadata(MetadataType metadata) | |
286 { | |
287 if (IsRetrieveChildrenMetadata(metadata)) | |
288 { | |
289 throw OrthancException(ErrorCode_BadSequenceOfCalls); | |
290 } | |
291 else | |
292 { | |
293 retrieveChildrenMetadata_.insert(metadata); | |
294 } | |
295 } | |
296 | |
297 | |
298 void FindRequest::SetRetrieveOneInstanceIdentifier(bool retrieve) | |
299 { | |
300 if (level_ == ResourceType_Instance) | |
301 { | |
302 throw OrthancException(ErrorCode_BadSequenceOfCalls); | 312 throw OrthancException(ErrorCode_BadSequenceOfCalls); |
303 } | 313 } |
304 else | 314 else |
305 { | 315 { |
306 retrieveOneInstanceIdentifier_ = retrieve; | 316 retrieveOneInstanceIdentifier_ = retrieve; |