20#ifndef PACS_AI_AIRA_ASSESSMENT_HPP
21#define PACS_AI_AIRA_ASSESSMENT_HPP
136 std::chrono::system_clock::now()};
assessment_creation_result create_assessment(const ai_assessment &assessment) const
Create an assessment SR document for an AI result.
static std::string assessment_type_to_meaning(assessment_type type)
Convert assessment_type to human-readable meaning.
static std::string status_to_completion_flag(assessment_status status)
Convert assessment_status to DICOM completion flag value.
assessment_creator()=default
void build_referenced_sop_sequence(core::dicom_dataset &sr, const ai_assessment &assessment) const
void build_patient_module(core::dicom_dataset &sr, const ai_assessment &assessment) const
static std::string assessment_type_to_code(assessment_type type)
Convert assessment_type to DICOM coded value.
void build_sr_content(core::dicom_dataset &sr, const ai_assessment &assessment) const
std::string generate_uid() const
DICOM Dataset - ordered collection of Data Elements.
assessment_type
Assessment decision made by a clinician on an AI result.
@ accept
Clinician accepts AI result as-is.
@ reject
Clinician rejects AI result with reason.
@ modify
Clinician modifies AI result (e.g., edits segmentation)
auto to_string(inference_status_code status) -> std::string
Convert inference status code to string.
assessment_status
Assessment status tracking.
@ amended
Previously finalized assessment has been amended.
@ draft
Assessment in progress, not yet finalized.
@ final_
Assessment finalized and signed off.
Complete assessment of an AI result.
std::optional< std::string > assessor_id
Clinician identifier.
std::chrono::system_clock::time_point assessment_time
Timestamp of the assessment.
std::optional< assessment_rejection > rejection
Rejection details (only for assessment_type::reject)
assessment_status status
Current status of the assessment.
assessed_result_reference ai_result
Reference to the AI result being assessed.
assessment_type type
Assessment type (accept/modify/reject)
std::optional< std::string > institution_name
Institution name.
std::optional< std::string > comment
Free-text comment about the assessment.
std::string assessor_name
Clinician who performed the assessment.
std::optional< assessment_modification > modification
Modification details (only for assessment_type::modify)
Reference to the AI result being assessed.
std::string study_instance_uid
Study Instance UID containing the AI result.
std::string series_instance_uid
Series Instance UID of the AI result.
std::string sop_class_uid
SOP Class UID of the AI result.
std::string sop_instance_uid
SOP Instance UID of the AI result.
Result of creating an assessment SR document.
std::string assessment_uid
SOP Instance UID of the created assessment.
std::optional< core::dicom_dataset > sr_dataset
The created assessment SR dataset.
std::string error_message
Error message (if failed)
bool success
Whether creation succeeded.
Information about a stored assessment.
std::string assessor_name
Assessor name.
assessment_type type
Assessment type.
std::chrono::system_clock::time_point assessment_time
Assessment timestamp.
std::string assessment_uid
SOP Instance UID of the assessment SR.
assessment_status status
Assessment status.
std::string ai_result_uid
Reference to the assessed AI result.
Modification details when assessment_type is modify.
std::string description
Description of what was modified.
std::optional< std::string > modified_result_uid
SOP Instance UID of the modified result (if a new object was created)
std::optional< std::string > modified_result_class_uid
SOP Class UID of the modified result.
Rejection reason when assessment_type is reject.
std::string reason_scheme
Code scheme designator for the reason.
std::string reason_code
Coded reason for rejection.
std::string reason_description
Human-readable reason description.