comparison OrthancServer/Sources/Database/StatelessDatabaseOperations.h @ 5719:f488fc5c972a find-refactoring-clean

removed StatelessDatabaseOperations::ExpandedResource
author Sebastien Jodogne <s.jodogne@gmail.com>
date Sat, 13 Jul 2024 01:01:50 +0200
parents 77875b51cf95
children 3f97590cc0c9
comparison
equal deleted inserted replaced
5718:77e1ff7f90c7 5719:f488fc5c972a
37 { 37 {
38 class DatabaseLookup; 38 class DatabaseLookup;
39 class ParsedDicomFile; 39 class ParsedDicomFile;
40 struct ServerIndexChange; 40 struct ServerIndexChange;
41 41
42 class ExpandedResource : public boost::noncopyable
43 {
44 private:
45 std::string id_;
46 ResourceType level_;
47 DicomMap tags_; // all main tags and main sequences from DB
48
49 public:
50 std::string mainDicomTagsSignature_;
51 std::string parentId_;
52 std::list<std::string> childrenIds_;
53 std::map<MetadataType, std::string> metadata_;
54 std::string anonymizedFrom_;
55 std::string modifiedFrom_;
56 std::string lastUpdate_;
57 std::set<DicomTag> missingRequestedTags_;
58
59 // for patients/studies/series
60 bool isStable_;
61
62 // for series only
63 int expectedNumberOfInstances_;
64 std::string status_;
65
66 // for instances only
67 size_t fileSize_;
68 std::string fileUuid_;
69 int indexInSeries_;
70
71 // New in Orthanc 1.12.0
72 std::set<std::string> labels_;
73
74 public:
75 // TODO - Cleanup
76 ExpandedResource() :
77 level_(ResourceType_Instance),
78 isStable_(false),
79 expectedNumberOfInstances_(0),
80 fileSize_(0),
81 indexInSeries_(0)
82 {
83 }
84
85 void SetResource(ResourceType level,
86 const std::string& id)
87 {
88 level_ = level;
89 id_ = id;
90 }
91
92 const std::string& GetPublicId() const
93 {
94 return id_;
95 }
96
97 ResourceType GetLevel() const
98 {
99 return level_;
100 }
101
102 DicomMap& GetMainDicomTags()
103 {
104 return tags_;
105 }
106
107 const DicomMap& GetMainDicomTags() const
108 {
109 return tags_;
110 }
111 };
112
113 enum ExpandResourceFlags
114 {
115 ExpandResourceFlags_None = 0,
116 // used to fetch from DB and for output
117 ExpandResourceFlags_IncludeMetadata = (1 << 0),
118 ExpandResourceFlags_IncludeChildren = (1 << 1),
119 ExpandResourceFlags_IncludeMainDicomTags = (1 << 2),
120 ExpandResourceFlags_IncludeLabels = (1 << 3),
121
122 // only used for output
123 ExpandResourceFlags_IncludeAllMetadata = (1 << 4), // new in Orthanc 1.12.4
124 ExpandResourceFlags_IncludeIsStable = (1 << 5), // new in Orthanc 1.12.4
125
126 ExpandResourceFlags_DefaultExtract = (ExpandResourceFlags_IncludeMetadata |
127 ExpandResourceFlags_IncludeChildren |
128 ExpandResourceFlags_IncludeMainDicomTags |
129 ExpandResourceFlags_IncludeLabels),
130
131 ExpandResourceFlags_DefaultOutput = (ExpandResourceFlags_IncludeMetadata |
132 ExpandResourceFlags_IncludeChildren |
133 ExpandResourceFlags_IncludeMainDicomTags |
134 ExpandResourceFlags_IncludeLabels |
135 ExpandResourceFlags_IncludeIsStable)
136 };
137
138 class StatelessDatabaseOperations : public boost::noncopyable 42 class StatelessDatabaseOperations : public boost::noncopyable
139 { 43 {
140 public: 44 public:
141 typedef std::list<FileInfo> Attachments; 45 typedef std::list<FileInfo> Attachments;
142 typedef std::map<std::pair<ResourceType, MetadataType>, std::string> MetadataMap; 46 typedef std::map<std::pair<ResourceType, MetadataType>, std::string> MetadataMap;
621 525
622 526
623 void Apply(IReadOnlyOperations& operations); 527 void Apply(IReadOnlyOperations& operations);
624 528
625 void Apply(IReadWriteOperations& operations); 529 void Apply(IReadWriteOperations& operations);
626
627 bool ExpandResource(ExpandedResource& target,
628 const std::string& publicId,
629 ResourceType level,
630 const std::set<DicomTag>& requestedTags,
631 ExpandResourceFlags expandFlags);
632 530
633 void GetAllMetadata(std::map<MetadataType, std::string>& target, 531 void GetAllMetadata(std::map<MetadataType, std::string>& target,
634 const std::string& publicId, 532 const std::string& publicId,
635 ResourceType level); 533 ResourceType level);
636 534