comparison OrthancServer/Sources/Database/StatelessDatabaseOperations.h @ 5222:3a61fd50f804 db-protobuf

starting refactoring ExpandedResource
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 03 Apr 2023 21:14:45 +0200
parents d0f7c742d397
children cd2258ca7894
comparison
equal deleted inserted replaced
5221:d0f7c742d397 5222:3a61fd50f804
35 { 35 {
36 class DatabaseLookup; 36 class DatabaseLookup;
37 class ParsedDicomFile; 37 class ParsedDicomFile;
38 struct ServerIndexChange; 38 struct ServerIndexChange;
39 39
40 struct ExpandedResource : public boost::noncopyable 40 class ExpandedResource : public boost::noncopyable
41 { 41 {
42 private:
42 std::string id_; 43 std::string id_;
43 DicomMap tags_; // all main tags and main sequences from DB 44 ResourceType level_;
45 DicomMap tags_; // all main tags and main sequences from DB
46
47 public:
44 std::string mainDicomTagsSignature_; 48 std::string mainDicomTagsSignature_;
45 std::string parentId_; 49 std::string parentId_;
46 std::list<std::string> childrenIds_; 50 std::list<std::string> childrenIds_;
47 std::map<MetadataType, std::string> metadata_; 51 std::map<MetadataType, std::string> metadata_;
48 ResourceType type_;
49 std::string anonymizedFrom_; 52 std::string anonymizedFrom_;
50 std::string modifiedFrom_; 53 std::string modifiedFrom_;
51 std::string lastUpdate_; 54 std::string lastUpdate_;
52 std::set<DicomTag> missingRequestedTags_; 55 std::set<DicomTag> missingRequestedTags_;
53 56
63 std::string fileUuid_; 66 std::string fileUuid_;
64 int indexInSeries_; 67 int indexInSeries_;
65 68
66 // New in Orthanc 1.12.0 69 // New in Orthanc 1.12.0
67 std::set<std::string> labels_; 70 std::set<std::string> labels_;
71
72 public:
73 void SetResource(ResourceType level,
74 const std::string& id)
75 {
76 level_ = level;
77 id_ = id;
78 }
79
80 const std::string& GetPublicId() const
81 {
82 return id_;
83 }
84
85 ResourceType GetLevel() const
86 {
87 return level_;
88 }
89
90 DicomMap& GetMainDicomTags()
91 {
92 return tags_;
93 }
94
95 const DicomMap& GetMainDicomTags() const
96 {
97 return tags_;
98 }
68 }; 99 };
69 100
70 enum ExpandResourceDbFlags 101 enum ExpandResourceFlags
71 { 102 {
72 ExpandResourceDbFlags_None = 0, 103 ExpandResourceFlags_None = 0,
73 ExpandResourceDbFlags_IncludeMetadata = (1 << 0), 104 ExpandResourceFlags_IncludeMetadata = (1 << 0),
74 ExpandResourceDbFlags_IncludeChildren = (1 << 1), 105 ExpandResourceFlags_IncludeChildren = (1 << 1),
75 ExpandResourceDbFlags_IncludeMainDicomTags = (1 << 2), 106 ExpandResourceFlags_IncludeMainDicomTags = (1 << 2),
76 ExpandResourceDbFlags_IncludeLabels = (1 << 3), 107 ExpandResourceFlags_IncludeLabels = (1 << 3),
77 108
78 ExpandResourceDbFlags_Default = (ExpandResourceDbFlags_IncludeMetadata | 109 ExpandResourceFlags_Default = (ExpandResourceFlags_IncludeMetadata |
79 ExpandResourceDbFlags_IncludeChildren | 110 ExpandResourceFlags_IncludeChildren |
80 ExpandResourceDbFlags_IncludeMainDicomTags | 111 ExpandResourceFlags_IncludeMainDicomTags |
81 ExpandResourceDbFlags_IncludeLabels) 112 ExpandResourceFlags_IncludeLabels)
82 }; 113 };
83 114
84 class StatelessDatabaseOperations : public boost::noncopyable 115 class StatelessDatabaseOperations : public boost::noncopyable
85 { 116 {
86 public: 117 public:
532 563
533 bool ExpandResource(ExpandedResource& target, 564 bool ExpandResource(ExpandedResource& target,
534 const std::string& publicId, 565 const std::string& publicId,
535 ResourceType level, 566 ResourceType level,
536 const std::set<DicomTag>& requestedTags, 567 const std::set<DicomTag>& requestedTags,
537 ExpandResourceDbFlags expandFlags); 568 ExpandResourceFlags expandFlags);
538 569
539 void GetAllMetadata(std::map<MetadataType, std::string>& target, 570 void GetAllMetadata(std::map<MetadataType, std::string>& target,
540 const std::string& publicId, 571 const std::string& publicId,
541 ResourceType level); 572 ResourceType level);
542 573