20#ifndef PACS_SERVICES_VALIDATION_US_IOD_VALIDATOR_HPP
21#define PACS_SERVICES_VALIDATION_US_IOD_VALIDATOR_HPP
65 [[nodiscard]]
bool has_errors() const noexcept;
85 [[nodiscard]] std::
string summary() const;
97 bool check_type1 =
true;
100 bool check_type2 =
true;
103 bool check_conditional =
true;
106 bool validate_pixel_data =
true;
109 bool validate_regions =
true;
112 bool allow_retired =
true;
115 bool strict_mode =
false;
211 void validate_patient_module(
215 void validate_general_study_module(
219 void validate_general_series_module(
223 void validate_us_image_module(
227 void validate_image_pixel_module(
231 void validate_multiframe_module(
235 void validate_sop_common_module(
240 void check_type1_attribute(
243 std::string_view
name,
246 void check_type2_attribute(
249 std::string_view
name,
256 void check_pixel_data_consistency(
281[[nodiscard]]
bool is_valid_us_dataset(const core::
dicom_dataset& dataset);
us_iod_validator()=default
Construct validator with default options.
DICOM Dataset - ordered collection of Data Elements.
DICOM Tag representation (Group, Element pairs)
@ error
ERROR - Dose error/uncertainty.
validation_severity
Severity level of validation findings.
@ warning
Non-critical - IOD may have issues.
@ info
Informational - suggestion for improvement.
Options for US IOD validation.
Single validation finding.
validation_severity severity
How serious is this finding.
std::string code
Machine-readable code (e.g., "US-001")
std::string message
Human-readable description.
core::dicom_tag tag
The tag involved (if applicable)
Result of IOD validation.
std::vector< validation_finding > findings
All findings during validation.
std::string summary() const
Get a formatted summary string.
size_t error_count() const noexcept
Get count of errors.
bool is_valid
Overall validation status.
bool has_errors() const noexcept
Check if there are any errors.
size_t warning_count() const noexcept
Get count of warnings.
bool has_warnings() const noexcept
Check if there are any warnings.