PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
aira_assessment_manager.h
Go to the documentation of this file.
1// BSD 3-Clause License
2// Copyright (c) 2021-2025, 🍀☀🌕🌥 🌊
3// See the LICENSE file in the project root for full license information.
4
18#ifndef PACS_AI_AIRA_ASSESSMENT_MANAGER_HPP
19#define PACS_AI_AIRA_ASSESSMENT_MANAGER_HPP
20
23
24#include <map>
25#include <optional>
26#include <string>
27#include <vector>
28
29namespace kcenon::pacs::ai {
30
31// =============================================================================
32// Assessment Manager
33// =============================================================================
34
54public:
55 assessment_manager() = default;
56
66 [[nodiscard]] bool store_assessment(
67 const core::dicom_dataset& assessment_sr);
68
75 [[nodiscard]] std::optional<core::dicom_dataset> retrieve_assessment(
76 const std::string& assessment_uid) const;
77
84 [[nodiscard]] std::vector<assessment_info> find_by_ai_result(
85 const std::string& ai_result_uid) const;
86
93 [[nodiscard]] std::vector<assessment_info> find_by_assessor(
94 const std::string& assessor_name) const;
95
102 [[nodiscard]] std::vector<assessment_info> find_by_type(
103 assessment_type type) const;
104
111 [[nodiscard]] std::optional<assessment_info> get_info(
112 const std::string& assessment_uid) const;
113
120 [[nodiscard]] bool exists(const std::string& assessment_uid) const;
121
128 bool remove(const std::string& assessment_uid);
129
135 [[nodiscard]] size_t count() const noexcept;
136
142 [[nodiscard]] std::map<assessment_type, size_t> get_statistics() const;
143
144private:
146 const core::dicom_dataset& sr) const;
147
148 std::map<std::string, core::dicom_dataset> datasets_;
149 std::map<std::string, assessment_info> metadata_;
150};
151
152} // namespace kcenon::pacs::ai
153
154#endif // PACS_AI_AIRA_ASSESSMENT_MANAGER_HPP
IHE AIRA (AI Result Assessment) - Assessment Creator Actor.
bool store_assessment(const core::dicom_dataset &assessment_sr)
Store an assessment SR document.
std::map< std::string, assessment_info > metadata_
std::optional< core::dicom_dataset > retrieve_assessment(const std::string &assessment_uid) const
Retrieve an assessment SR dataset by its UID.
bool exists(const std::string &assessment_uid) const
Check if an assessment exists.
std::vector< assessment_info > find_by_assessor(const std::string &assessor_name) const
Find all assessments by a specific assessor.
assessment_info parse_assessment_info(const core::dicom_dataset &sr) const
bool remove(const std::string &assessment_uid)
Remove an assessment.
std::vector< assessment_info > find_by_type(assessment_type type) const
Find all assessments of a specific type.
std::map< std::string, core::dicom_dataset > datasets_
std::map< assessment_type, size_t > get_statistics() const
Get assessments grouped by type with counts.
size_t count() const noexcept
Get total number of stored assessments.
std::optional< assessment_info > get_info(const std::string &assessment_uid) const
Get metadata for a specific assessment.
std::vector< assessment_info > find_by_ai_result(const std::string &ai_result_uid) const
Find all assessments for a given AI result.
DICOM Dataset - ordered collection of Data Elements.
assessment_type
Assessment decision made by a clinician on an AI result.
Information about a stored assessment.