Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitk::DICOMDatasetSorter Class Referenceabstract

The sorting/splitting building-block of DICOMITKSeriesGDCMReader. More...

#include <mitkDICOMDatasetSorter.h>

Inheritance diagram for mitk::DICOMDatasetSorter:
Collaboration diagram for mitk::DICOMDatasetSorter:

Public Member Functions

 mitkClassMacroItkParent (DICOMDatasetSorter, itk::LightObject)
 
virtual DICOMTagList GetTagsOfInterest ()=0
 Return the tags of interest (to facilitate scanning) More...
 
void SetInput (DICOMDatasetList filenames)
 Set the input datasets for sorting. More...
 
const DICOMDatasetList & GetInput () const
 Get the input datasets. More...
 
virtual void Sort ()=0
 Sort input datasets into one or multiple outputs. More...
 
unsigned int GetNumberOfOutputs () const
 Get the number of output groups after sorting. More...
 
const DICOMDatasetList & GetOutput (unsigned int index) const
 Get a specific output group (const). More...
 
DICOMDatasetList & GetOutput (unsigned int index)
 Get a specific output group (non-const). More...
 
IOVolumeSplitReason::ConstPointer GetSplitReason (unsigned int index) const
 Get the split reason for a specific output group. More...
 
virtual void PrintConfiguration (std::ostream &os, const std::string &indent="") const =0
 Print configuration details into stream. More...
 
virtual bool operator== (const DICOMDatasetSorter &other) const =0
 Equality comparison operator. More...
 

Protected Member Functions

 DICOMDatasetSorter ()
 
 ~DICOMDatasetSorter () override
 
 DICOMDatasetSorter (const DICOMDatasetSorter &other)
 
DICOMDatasetSorter & operator= (const DICOMDatasetSorter &other)
 
void ClearOutputs ()
 
void SetNumberOfOutputs (unsigned int numberOfOutputs)
 
void SetOutput (unsigned int index, const DICOMDatasetList &output, IOVolumeSplitReason::ConstPointer splitReason=nullptr)
 

Detailed Description

The sorting/splitting building-block of DICOMITKSeriesGDCMReader.

This class describes the interface of the sorting/splitting process described as part of DICOMITKSeriesGDCMReader::AnalyzeInputFiles() (see Loading strategy).

The procedure is simple:

  • take a list of input datasets (DICOMDatasetAccess)
  • sort them (to be defined by sub-classes, based on specific tags)
  • return the sorting result as outputs (the single input might be distributed into multiple outputs)

The simplest and most generic form of sorting is implemented in sub-class DICOMTagBasedSorter.

Definition at line 41 of file mitkDICOMDatasetSorter.h.

Constructor & Destructor Documentation

◆ DICOMDatasetSorter() [1/2]

mitk::DICOMDatasetSorter::DICOMDatasetSorter ( )
protected

◆ ~DICOMDatasetSorter()

mitk::DICOMDatasetSorter::~DICOMDatasetSorter ( )
overrideprotected

◆ DICOMDatasetSorter() [2/2]

mitk::DICOMDatasetSorter::DICOMDatasetSorter ( const DICOMDatasetSorter &  other)
protected

Member Function Documentation

◆ ClearOutputs()

void mitk::DICOMDatasetSorter::ClearOutputs ( )
protected

◆ GetInput()

const DICOMDatasetList& mitk::DICOMDatasetSorter::GetInput ( ) const

Get the input datasets.

Returns
Const reference to the input dataset list.

◆ GetNumberOfOutputs()

unsigned int mitk::DICOMDatasetSorter::GetNumberOfOutputs ( ) const

Get the number of output groups after sorting.

Returns
The number of output dataset lists.

◆ GetOutput() [1/2]

DICOMDatasetList& mitk::DICOMDatasetSorter::GetOutput ( unsigned int  index)

Get a specific output group (non-const).

Parameters
[in]indexThe index of the output group to retrieve.
Returns
Reference to the output dataset list.
Precondition
index must be less than GetNumberOfOutputs().

◆ GetOutput() [2/2]

const DICOMDatasetList& mitk::DICOMDatasetSorter::GetOutput ( unsigned int  index) const

Get a specific output group (const).

Parameters
[in]indexThe index of the output group to retrieve.
Returns
Const reference to the output dataset list.
Precondition
index must be less than GetNumberOfOutputs().

◆ GetSplitReason()

IOVolumeSplitReason::ConstPointer mitk::DICOMDatasetSorter::GetSplitReason ( unsigned int  index) const

Get the split reason for a specific output group.

Parameters
[in]indexThe index of the output group.
Returns
A const smart pointer to the split reason, or nullptr if not set.
Precondition
index must be less than GetNumberOfOutputs().

◆ GetTagsOfInterest()

virtual DICOMTagList mitk::DICOMDatasetSorter::GetTagsOfInterest ( )
pure virtual

Return the tags of interest (to facilitate scanning)

Implemented in mitk::NormalDirectionConsistencySorter, mitk::EquiDistantBlocksSorter, and mitk::DICOMTagBasedSorter.

◆ mitkClassMacroItkParent()

mitk::DICOMDatasetSorter::mitkClassMacroItkParent ( DICOMDatasetSorter  ,
itk::LightObject   
)

◆ operator=()

DICOMDatasetSorter& mitk::DICOMDatasetSorter::operator= ( const DICOMDatasetSorter &  other)
protected

◆ operator==()

virtual bool mitk::DICOMDatasetSorter::operator== ( const DICOMDatasetSorter &  other) const
pure virtual

Equality comparison operator.

Parameters
[in]otherThe sorter to compare with.
Returns
true if the sorters have identical configurations.

Implemented in mitk::NormalDirectionConsistencySorter, mitk::EquiDistantBlocksSorter, and mitk::DICOMTagBasedSorter.

◆ PrintConfiguration()

virtual void mitk::DICOMDatasetSorter::PrintConfiguration ( std::ostream &  os,
const std::string &  indent = "" 
) const
pure virtual

Print configuration details into stream.

Parameters
[in,out]osThe output stream to print to.
[in]indentIndentation prefix for each line.

Implemented in mitk::NormalDirectionConsistencySorter, mitk::EquiDistantBlocksSorter, and mitk::DICOMTagBasedSorter.

◆ SetInput()

void mitk::DICOMDatasetSorter::SetInput ( DICOMDatasetList  filenames)

Set the input datasets for sorting.

Parameters
[in]filenamesThe list of DICOMDatasetAccess instances to sort.

◆ SetNumberOfOutputs()

void mitk::DICOMDatasetSorter::SetNumberOfOutputs ( unsigned int  numberOfOutputs)
protected

◆ SetOutput()

void mitk::DICOMDatasetSorter::SetOutput ( unsigned int  index,
const DICOMDatasetList &  output,
IOVolumeSplitReason::ConstPointer  splitReason = nullptr 
)
protected

◆ Sort()

virtual void mitk::DICOMDatasetSorter::Sort ( )
pure virtual

Sort input datasets into one or multiple outputs.

Subclasses must implement this method to perform the actual sorting/splitting logic.

Implemented in mitk::NormalDirectionConsistencySorter, mitk::EquiDistantBlocksSorter, and mitk::DICOMTagBasedSorter.


The documentation for this class was generated from the following file: