Medical Imaging Interaction Toolkit  2026.06.00
Medical Imaging Interaction Toolkit
mitkDICOMDatasetSorter.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef mitkDICOMDatasetSorter_h
14 #define mitkDICOMDatasetSorter_h
15 
16 #include <itkObjectFactory.h>
17 #include <mitkCommon.h>
18 
19 #include <mitkDICOMDatasetAccess.h>
21 
22 namespace mitk
23 {
24 
41 class MITKDICOM_EXPORT DICOMDatasetSorter : public itk::LightObject
42 {
43  public:
44 
46 
51 
56  void SetInput(DICOMDatasetList filenames);
57 
62  const DICOMDatasetList& GetInput() const;
63 
69  virtual void Sort() = 0;
70 
75  unsigned int GetNumberOfOutputs() const;
76 
83  const DICOMDatasetList& GetOutput(unsigned int index) const;
84 
91  DICOMDatasetList& GetOutput(unsigned int index);
92 
100 
106  virtual void PrintConfiguration(std::ostream& os, const std::string& indent = "") const = 0;
107 
113  virtual bool operator==(const DICOMDatasetSorter& other) const = 0;
114 
115  protected:
116 
119 
122 
123  void ClearOutputs();
124  void SetNumberOfOutputs(unsigned int numberOfOutputs);
125  void SetOutput(unsigned int index, const DICOMDatasetList& output, IOVolumeSplitReason::ConstPointer splitReason = nullptr);
126 
127  private:
128 
129  DICOMDatasetList m_Input;
130  std::vector< DICOMDatasetList > m_Outputs;
131  std::vector< IOVolumeSplitReason::Pointer > m_SplitReasons;
132 };
133 
134 }
135 
136 #endif
#define MITKDICOM_EXPORT
The sorting/splitting building-block of DICOMITKSeriesGDCMReader.
DICOMDatasetSorter & operator=(const DICOMDatasetSorter &other)
unsigned int GetNumberOfOutputs() const
Get the number of output groups after sorting.
void SetOutput(unsigned int index, const DICOMDatasetList &output, IOVolumeSplitReason::ConstPointer splitReason=nullptr)
IOVolumeSplitReason::ConstPointer GetSplitReason(unsigned int index) const
Get the split reason for a specific output group.
virtual void PrintConfiguration(std::ostream &os, const std::string &indent="") const =0
Print configuration details into stream.
virtual bool operator==(const DICOMDatasetSorter &other) const =0
Equality comparison operator.
const DICOMDatasetList & GetOutput(unsigned int index) const
Get a specific output group (const).
void SetInput(DICOMDatasetList filenames)
Set the input datasets for sorting.
~DICOMDatasetSorter() override
DICOMDatasetSorter(const DICOMDatasetSorter &other)
virtual DICOMTagList GetTagsOfInterest()=0
Return the tags of interest (to facilitate scanning)
virtual void Sort()=0
Sort input datasets into one or multiple outputs.
mitkClassMacroItkParent(DICOMDatasetSorter, itk::LightObject)
DICOMDatasetList & GetOutput(unsigned int index)
Get a specific output group (non-const).
void SetNumberOfOutputs(unsigned int numberOfOutputs)
const DICOMDatasetList & GetInput() const
Get the input datasets.
std::shared_ptr< const IOVolumeSplitReason > ConstPointer
Shared pointer to const type.
Find image slices visible on a given plane.
std::vector< DICOMDatasetAccess * > DICOMDatasetList
A list of raw pointers to DICOMDatasetAccess instances.
std::vector< DICOMTag > DICOMTagList
A list of DICOMTag instances.
Definition: mitkDICOMTag.h:96