PACS System 0.1.0
PACS DICOM system library
Loading...
Searching...
No Matches
kcenon::pacs::ai Namespace Reference

Namespaces

namespace  aira_tags
 
namespace  json_util
 
namespace  manager_tags
 
namespace  metrics
 
namespace  sop_class
 

Classes

struct  ai_assessment
 Complete assessment of an AI result. More...
 
struct  ai_handler_config
 Configuration for AI result handler. More...
 
class  ai_result_handler
 
struct  ai_result_info
 Information about an AI result stored in the system. More...
 
struct  ai_service_config
 Configuration for AI service connection. More...
 
class  ai_service_connector
 Connector for external AI inference services. More...
 
struct  assessed_result_reference
 Reference to the AI result being assessed. More...
 
struct  assessment_creation_result
 Result of creating an assessment SR document. More...
 
class  assessment_creator
 
struct  assessment_info
 Information about a stored assessment. More...
 
class  assessment_manager
 
struct  assessment_modification
 Modification details when assessment_type is modify. More...
 
struct  assessment_rejection
 Rejection reason when assessment_type is reject. More...
 
struct  cad_finding
 CAD finding extracted from Structured Report. More...
 
struct  error_info
 Simple error info for fallback when common_system is unavailable. More...
 
struct  inference_request
 Request structure for AI inference. More...
 
struct  inference_status
 Status information for an inference job. More...
 
struct  model_info
 Information about an available AI model. More...
 
class  Result
 Simple result type for error handling. More...
 
struct  segment_info
 Segment information from Segmentation object. More...
 
struct  source_reference
 Source reference linking AI result to original images. More...
 
struct  validation_result
 Validation result containing status and details. More...
 

Typedefs

template<typename T >
using Result = kcenon::common::Result<T>
 Result type alias for operations returning a value.
 
using VoidResult = kcenon::common::VoidResult
 Result type alias for void operations.
 
using ai_result_received_callback = std::function<void(const ai_result_info& info)>
 Callback for notification when AI result is received.
 
using pre_store_validator
 Callback for pre-storage validation.
 

Enumerations

enum class  ai_result_type { structured_report , segmentation , presentation_state }
 Types of AI-generated DICOM objects. More...
 
enum class  validation_status {
  valid , missing_required_tags , invalid_reference , invalid_template ,
  invalid_segment_data , unknown_error
}
 Validation status for AI results. More...
 
enum class  inference_status_code {
  pending , running , completed , failed ,
  cancelled , timeout
}
 Status codes for AI inference jobs. More...
 
enum class  authentication_type { none , api_key , bearer_token , basic }
 Types of authentication for AI services. More...
 
enum class  assessment_type { accept , modify , reject }
 Assessment decision made by a clinician on an AI result. More...
 
enum class  assessment_status { draft , final_ , amended }
 Assessment status tracking. More...
 

Functions

auto to_string (inference_status_code status) -> std::string
 Convert inference status code to string.
 
auto to_string (authentication_type type) -> std::string
 Convert authentication type to string.
 
std::string to_string (assessment_type type)
 Convert assessment_type enum to string.
 
std::string to_string (assessment_status status)
 Convert assessment_status enum to string.
 
 if (!request.parameters.empty())
 
 if (!request.metadata.empty())
 

Typedef Documentation

◆ ai_result_received_callback

using kcenon::pacs::ai::ai_result_received_callback = std::function<void(const ai_result_info& info)>

Callback for notification when AI result is received.

Parameters
infoInformation about the received AI result
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/ai/ai_result_handler.h.

Definition at line 206 of file ai_result_handler.h.

◆ pre_store_validator

Initial value:
std::function<bool(
const core::dicom_dataset& dataset,
ai_result_type type)>

Callback for pre-storage validation.

Parameters
datasetThe AI result dataset to validate
typeThe type of AI result
Returns
true to proceed with storage, false to reject
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/ai/ai_result_handler.h.

Definition at line 215 of file ai_result_handler.h.

◆ Result

template<typename T >
using kcenon::pacs::ai::Result = kcenon::common::Result<T>

◆ VoidResult

using kcenon::pacs::ai::VoidResult = kcenon::common::VoidResult

Result type alias for void operations.

Void result type alias.

Result type for void operations.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/ai/ai_result_handler.h.

Definition at line 43 of file ai_result_handler.h.

Enumeration Type Documentation

◆ ai_result_type

Types of AI-generated DICOM objects.

Enumerator
structured_report 

DICOM SR (Structured Report)

segmentation 

DICOM SEG (Segmentation)

presentation_state 

DICOM PR (Presentation State)

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/ai/ai_result_handler.h.

Definition at line 52 of file ai_result_handler.h.

52 {
54 segmentation,
56};
@ structured_report
DICOM SR (Structured Report)
@ presentation_state
DICOM PR (Presentation State)

◆ assessment_status

Assessment status tracking.

Enumerator
draft 

Assessment in progress, not yet finalized.

final_ 

Assessment finalized and signed off.

amended 

Previously finalized assessment has been amended.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/ai/aira_assessment.h.

Definition at line 48 of file aira_assessment.h.

48 {
49 draft,
50 final_,
51 amended
52};
@ amended
Previously finalized assessment has been amended.
@ draft
Assessment in progress, not yet finalized.
@ final_
Assessment finalized and signed off.

◆ assessment_type

Assessment decision made by a clinician on an AI result.

Enumerator
accept 

Clinician accepts AI result as-is.

modify 

Clinician modifies AI result (e.g., edits segmentation)

reject 

Clinician rejects AI result with reason.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/ai/aira_assessment.h, and /home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/ai/aira_assessment_manager.h.

Definition at line 39 of file aira_assessment.h.

39 {
40 accept,
41 modify,
42 reject
43};
@ accept
Clinician accepts AI result as-is.
@ reject
Clinician rejects AI result with reason.
@ modify
Clinician modifies AI result (e.g., edits segmentation)

◆ authentication_type

Types of authentication for AI services.

Enumerator
none 

No authentication.

api_key 

API key in header.

bearer_token 

OAuth2 bearer token.

basic 

HTTP basic authentication.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/ai/ai_service_connector.h.

Definition at line 110 of file ai_service_connector.h.

110 {
111 none,
112 api_key,
114 basic
115};
@ bearer_token
OAuth2 bearer token.
@ basic
HTTP basic authentication.

◆ inference_status_code

Status codes for AI inference jobs.

Enumerator
pending 

Job is queued but not started.

running 

Job is currently processing.

completed 

Job completed successfully.

failed 

Job failed with error.

cancelled 

Job was cancelled.

timeout 

Job timed out.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/ai/ai_service_connector.h.

Definition at line 97 of file ai_service_connector.h.

97 {
98 pending,
99 running,
100 completed,
101 failed,
102 cancelled,
103 timeout
104};
@ running
Job is currently processing.
@ pending
Job is queued but not started.
@ completed
Job completed successfully.

◆ validation_status

Validation status for AI results.

Enumerator
valid 

All validations passed.

missing_required_tags 

Required DICOM tags are missing.

invalid_reference 

Referenced source images not found.

invalid_template 

SR template conformance failed.

invalid_segment_data 

Segmentation data is malformed.

unknown_error 

Unexpected validation error.

Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/ai/ai_result_handler.h.

Definition at line 61 of file ai_result_handler.h.

61 {
62 valid,
68};
@ invalid_template
SR template conformance failed.
@ unknown_error
Unexpected validation error.
@ invalid_segment_data
Segmentation data is malformed.
@ valid
All validations passed.
@ invalid_reference
Referenced source images not found.
@ missing_required_tags
Required DICOM tags are missing.

Function Documentation

◆ if() [1/2]

kcenon::pacs::ai::if ( !request.metadata. empty())

Definition at line 243 of file ai_service_connector.cpp.

243 {
244 oss << R"(,"metadata":{)";
245 bool first = true;
246 for (const auto& [key, value] : request.metadata) {
247 if (!first) oss << ",";
248 oss << "\"" << escape_string(key) << "\":\"" << escape_string(value) << "\"";
249 first = false;
250 }
251 oss << "}";
252 }

References kcenon::pacs::ai::json_util::escape_string(), and kcenon::pacs::ai::inference_request::metadata.

Here is the call graph for this function:

◆ if() [2/2]

kcenon::pacs::ai::if ( !request.parameters. empty())

Definition at line 232 of file ai_service_connector.cpp.

232 {
233 oss << R"(,"parameters":{)";
234 bool first = true;
235 for (const auto& [key, value] : request.parameters) {
236 if (!first) oss << ",";
237 oss << "\"" << escape_string(key) << "\":\"" << escape_string(value) << "\"";
238 first = false;
239 }
240 oss << "}";
241 }

References kcenon::pacs::ai::json_util::escape_string(), and kcenon::pacs::ai::inference_request::parameters.

Here is the call graph for this function:

◆ to_string() [1/4]

std::string kcenon::pacs::ai::to_string ( assessment_status status)
nodiscard

Convert assessment_status enum to string.

Definition at line 371 of file aira_assessment.cpp.

371 {
372 switch (status) {
373 case assessment_status::draft: return "draft";
374 case assessment_status::final_: return "final";
375 case assessment_status::amended: return "amended";
376 }
377 return "draft";
378}

References amended, draft, and final_.

◆ to_string() [2/4]

std::string kcenon::pacs::ai::to_string ( assessment_type type)
nodiscard

Convert assessment_type enum to string.

Definition at line 362 of file aira_assessment.cpp.

362 {
363 switch (type) {
364 case assessment_type::accept: return "accept";
365 case assessment_type::modify: return "modify";
366 case assessment_type::reject: return "reject";
367 }
368 return "accept";
369}

References accept, modify, and reject.

◆ to_string() [3/4]

auto kcenon::pacs::ai::to_string ( authentication_type type) -> std::string
inlinenodiscard

Convert authentication type to string.

Parameters
typeThe authentication type
Returns
Human-readable authentication type string

Definition at line 526 of file ai_service_connector.h.

526 {
527 switch (type) {
528 case authentication_type::none:
529 return "none";
530 case authentication_type::api_key:
531 return "api_key";
532 case authentication_type::bearer_token:
533 return "bearer_token";
534 case authentication_type::basic:
535 return "basic";
536 default:
537 return "unknown";
538 }
539}

References api_key, basic, bearer_token, and none.

◆ to_string() [4/4]

auto kcenon::pacs::ai::to_string ( inference_status_code status) -> std::string
inlinenodiscard

Convert inference status code to string.

Parameters
statusThe status code
Returns
Human-readable status string
Examples
/home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/ai/ai_service_connector.h, and /home/runner/work/pacs_system/pacs_system/include/kcenon/pacs/ai/aira_assessment.h.

Definition at line 502 of file ai_service_connector.h.

502 {
503 switch (status) {
504 case inference_status_code::pending:
505 return "pending";
506 case inference_status_code::running:
507 return "running";
508 case inference_status_code::completed:
509 return "completed";
510 case inference_status_code::failed:
511 return "failed";
512 case inference_status_code::cancelled:
513 return "cancelled";
514 case inference_status_code::timeout:
515 return "timeout";
516 default:
517 return "unknown";
518 }
519}

References cancelled, completed, failed, pending, running, and timeout.