13 #ifndef mitkEquiDistantBlocksSorter_h
14 #define mitkEquiDistantBlocksSorter_h
194 std::shared_ptr<SliceGroupingAnalysisResult>
211 typedef std::vector<std::shared_ptr<SliceGroupingAnalysisResult> >
ResultsList;
Interface to datasets that is presented to sorting classes such as DICOMDatasetSorter.
The sorting/splitting building-block of DICOMITKSeriesGDCMReader.
Return type of AnalyzeFileForITKImageSeriesReaderSpacingAssumption().
DICOMDatasetList m_UnsortedFiles
const DICOMDatasetList & GetUnsortedDatasets() const
Remaining files, which could not be grouped.
void UndoPrematureGrouping()
Only meaningful for use by AnalyzeFileForITKImageSeriesReaderSpacingAssumption.
void AddFilesToUnsortedBlock(const DICOMDatasetList &datasets)
void AddFileToUnsortedBlock(DICOMDatasetAccess *dataset)
Meant for internal use by AnalyzeFileForITKImageSeriesReaderSpacingAssumption only.
std::string m_FirstFilenameOfBlock
GantryTiltInformation m_TiltInfo
SliceGroupingAnalysisResult()
IOVolumeSplitReason::ConstPointer GetSplitReason() const
void FlagGantryTilt(const GantryTiltInformation &tiltInfo)
Meant for internal use by AnalyzeFileForITKImageSeriesReaderSpacingAssumption only.
std::string m_LastFilenameOfBlock
const GantryTiltInformation & GetTiltInfo() const
Detailed description of gantry tilt.
bool ContainsGantryTilt()
Whether or not the grouped result contain a gantry tilt.
const DICOMDatasetList & GetBlockDatasets() const
Grouping result, all same origin-to-origin distance w/o gaps.
IOVolumeSplitReason::Pointer m_SplitReason
void SetFirstFilenameOfBlock(const std::string &filename)
std::string GetFirstFilenameOfBlock() const
void SetLastFilenameOfBlock(const std::string &filename)
void AddFileToSortedBlock(DICOMDatasetAccess *dataset)
Meant for internal use by AnalyzeFileForITKImageSeriesReaderSpacingAssumption only.
IOVolumeSplitReason::Pointer GetSplitReason()
std::string GetLastFilenameOfBlock() const
DICOMDatasetList m_GroupedFiles
Split inputs into blocks of equidistant slices (for use in DICOMITKSeriesGDCMReader).
EquiDistantBlocksSorter(const EquiDistantBlocksSorter &other)
ResultsList m_SliceGroupingResults
bool m_AcceptTwoSlicesGroups
void SetAcceptTwoSlicesGroups(bool accept)
bool IsToleratedOriginOffsetAbsolute() const
~EquiDistantBlocksSorter() override
mitkClassMacro(EquiDistantBlocksSorter, DICOMDatasetSorter)
bool operator==(const DICOMDatasetSorter &other) const override
void Sort() override
Delegates work to AnalyzeFileForITKImageSeriesReaderSpacingAssumption(). AnalyzeFileForITKImageSeries...
void SetToleratedOriginOffset(double millimeters=0.005)
See class description and SetToleratedOriginOffsetToAdaptive().
EquiDistantBlocksSorter & operator=(const EquiDistantBlocksSorter &other)
void SetAcceptTilt(bool accept)
Whether or not to accept images from a tilted acquisition in a single output group.
double GetToleratedOriginOffset() const
std::vector< std::shared_ptr< SliceGroupingAnalysisResult > > ResultsList
bool GetAcceptTwoSlicesGroups() const
EquiDistantBlocksSorter()
std::shared_ptr< SliceGroupingAnalysisResult > AnalyzeFileForITKImageSeriesReaderSpacingAssumption(const DICOMDatasetList &files, bool groupsOfSimilarImages)
Ensure an equal z-spacing for a group of files.
bool GetAcceptTilt() const
double m_ToleratedOriginOffset
DICOMTagList GetTagsOfInterest() override
Return the tags of interest (to facilitate scanning)
bool m_ToleratedOriginOffsetIsAbsolute
std::string ConstCharStarToString(const char *s)
Safely convert const char* to std::string.
void SetToleratedOriginOffsetToAdaptive(double fractionOfInterSliceDistanct=0.3)
See class description and SetToleratedOriginOffset().
void PrintConfiguration(std::ostream &os, const std::string &indent="") const override
Print configuration details into stream.
std::shared_ptr< IOVolumeSplitReason > Pointer
std::shared_ptr< const IOVolumeSplitReason > ConstPointer
Find image slices visible on a given plane.
std::vector< DICOMDatasetAccess * > DICOMDatasetList
std::vector< DICOMTag > DICOMTagList