comparison OrthancServer/Sources/Database/StatelessDatabaseOperations.cpp @ 5586:fc3914c07dd3 find-refactoring

refactoring FindResponse
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 03 May 2024 17:02:02 +0200
parents 74cc31c8db2b
children b51ee994cd6f
comparison
equal deleted inserted replaced
5583:74cc31c8db2b 5586:fc3914c07dd3
3863 3863
3864 // TODO-FIND: we reuse the ExpandedResource class to reuse Serialization code from ExpandedResource 3864 // TODO-FIND: we reuse the ExpandedResource class to reuse Serialization code from ExpandedResource
3865 // But, finally, we might just get rid of ExpandedResource and replace it by FindResponse 3865 // But, finally, we might just get rid of ExpandedResource and replace it by FindResponse
3866 ExpandedResource::ExpandedResource(const FindRequest& request, 3866 ExpandedResource::ExpandedResource(const FindRequest& request,
3867 const FindResponse::Item& item) : 3867 const FindResponse::Item& item) :
3868 id_(item.GetIdentifiers().GetLevel(request.GetLevel())), 3868 id_(item.GetIdentifier()),
3869 level_(request.GetLevel()), 3869 level_(request.GetLevel()),
3870 isStable_(false), 3870 isStable_(false),
3871 expectedNumberOfInstances_(0), 3871 expectedNumberOfInstances_(0),
3872 fileSize_(0), 3872 fileSize_(0),
3873 indexInSeries_(0) 3873 indexInSeries_(0)
3874 { 3874 {
3875 if (request.HasResponseContent(FindRequest::ResponseContent_MainDicomTags)) 3875 if (request.HasResponseContent(FindRequest::ResponseContent_MainDicomTags))
3876 { 3876 {
3877 tags_.Assign(item.GetDicomMap()); 3877 item.GetDicomTagsAtLevel(tags_, request.GetLevel());
3878 } 3878 }
3879 3879
3880 if (request.HasResponseContent(FindRequest::ResponseContent_Children)) 3880 if (request.HasResponseContent(FindRequest::ResponseContent_Children))
3881 { 3881 {
3882 childrenIds_ = item.GetChildren(); 3882 const std::set<std::string>& s = item.GetChildrenIdentifiers(GetChildResourceType(request.GetLevel()));
3883 for (std::set<std::string>::const_iterator it = s.begin(); it != s.end(); ++it)
3884 {
3885 childrenIds_.push_back(*it);
3886 }
3883 } 3887 }
3884 3888
3885 if (request.HasResponseContent(FindRequest::ResponseContent_Parent)) 3889 if (request.HasResponseContent(FindRequest::ResponseContent_Parent))
3886 { 3890 {
3887 parentId_ = item.GetIdentifiers().GetLevel(GetParentResourceType(request.GetLevel())); 3891 parentId_ = item.GetParentIdentifier();
3888 } 3892 }
3889 3893
3890 if (request.HasResponseContent(FindRequest::ResponseContent_Metadata)) 3894 if (request.HasResponseContent(FindRequest::ResponseContent_Metadata))
3891 { 3895 {
3892 metadata_ = item.GetMetadata(); 3896 metadata_ = item.GetMetadata();