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;