22namespace waveform_tags {
44 : options_(options) {}
75 ref_result.findings.begin(),
76 ref_result.findings.end());
80 for (
const auto& finding : result.
findings) {
103 "ReferencedSeriesSequence (0008,1115) should be present for waveform references",
108 for (
const auto& finding : result.
findings) {
219 "SOPClassUID is not a recognized Waveform PS/Annotation SOP Class: " + sop_class,
236 "WaveformPresentationSequence (0070,0001) should be present for "
237 "Waveform Presentation State objects",
254 "WaveformAnnotationSequence (0040,B020) should be present for "
255 "Waveform Annotation objects",
269 const std::string& description,
276 "Type 1 attribute missing: " + description +
277 " (" + tag.to_string() +
")",
281 const auto* element = dataset.
get(tag);
282 if (element !=
nullptr && !element->is_sequence()) {
288 "Type 1 attribute has empty value: " + description +
289 " (" + tag.to_string() +
")",
300 const std::string& description,
307 "Type 2 attribute missing: " + description +
308 " (" + tag.to_string() +
")",
auto get(dicom_tag tag) noexcept -> dicom_element *
Get a pointer to the element with the given tag.
auto contains(dicom_tag tag) const noexcept -> bool
Check if the dataset contains an element with the given tag.
auto get_string(dicom_tag tag, std::string_view default_value="") const -> std::string
Get the string value of an element.
Compile-time constants for commonly used DICOM tags.
bool is_waveform_presentation_state_sop_class(std::string_view uid) noexcept
Check if a SOP Class UID is a Waveform Presentation State SOP Class.
bool is_waveform_annotation_sop_class(std::string_view uid) noexcept
Check if a SOP Class UID is a Waveform Annotation SOP Class.
@ warning
Non-critical - IOD may have issues.
@ error
Critical - IOD is non-compliant.
Result of IOD validation.
std::vector< validation_finding > findings
All findings during validation.
bool is_valid
Overall validation status.