13 #ifndef mitkDICOMITKSeriesGDCMReader_h 14 #define mitkDICOMITKSeriesGDCMReader_h 17 #include "itkMutexLock.h" 28 class TimeProbesCollectorBase;
204 void AnalyzeInputFiles()
override;
210 bool LoadImages()
override;
213 bool CanHandleFile(
const std::string& filename)
override;
221 ConstSorterList GetFreelyConfiguredSortingElements()
const;
226 void SetFixTiltByShearing(
bool on);
228 bool GetFixTiltByShearing()
const;
233 void SetAcceptTwoSlicesGroups(
bool accept)
const;
234 bool GetAcceptTwoSlicesGroups()
const;
239 void SetToleratedOriginOffsetToAdaptive(
double fractionOfInterSliceDistanct = 0.3)
const;
244 void SetToleratedOriginOffset(
double millimeters = 0.005)
const;
251 m_SimpleVolumeReading = read;
259 return m_SimpleVolumeReading;
262 double GetToleratedOriginError()
const;
263 bool IsToleratedOriginOffsetAbsolute()
const;
265 double GetDecimalPlacesForOrientation()
const;
273 return m_DefaultDecimalPlacesForOrientation;
278 return m_DefaultSimpleVolumeImport;
283 return m_DefaultFixTiltByShearing;
288 void InternalPrintConfiguration(std::ostream& os)
const override;
291 static std::string GetActiveLocale();
296 void PushLocale()
const;
301 void PopLocale()
const;
303 const static int m_DefaultDecimalPlacesForOrientation = 5;
304 const static bool m_DefaultSimpleVolumeImport =
false;
305 const static bool m_DefaultFixTiltByShearing =
true;
307 DICOMITKSeriesGDCMReader(
unsigned int decimalPlacesForOrientation = m_DefaultDecimalPlacesForOrientation,
bool simpleVolumeImport = m_DefaultSimpleVolumeImport);
318 virtual SortingBlockList Condense3DBlocks(SortingBlockList& resultOf3DGrouping);
320 virtual DICOMTagCache::Pointer GetTagCache()
const;
321 void SetTagCache(
const DICOMTagCache::Pointer& )
override;
324 static SortingBlockList InternalExecuteSortingStep(
325 unsigned int sortingStepIndex,
326 const DICOMDatasetSorter::Pointer& sorter,
327 const SortingBlockList& input);
330 virtual bool LoadMitkImageForOutput(
unsigned int o);
339 void EnsureMandatorySortersArePresent(
unsigned int decimalPlacesForOrientation,
bool simpleVolumeImport =
false);
350 SortingBlockList m_SortingResultInProgress;
352 typedef std::list<DICOMDatasetSorter::Pointer> SorterList;
364 static itk::MutexLock::Pointer s_LocaleMutex;
366 mutable std::stack<std::string> m_ReplacedCLocales;
367 mutable std::stack<std::locale> m_ReplacedCinLocales;
369 double m_DecimalPlacesForOrientation;
371 DICOMTagCache::Pointer m_TagCache;
372 bool m_ExternalCache;
MITKCORE_EXPORT bool operator==(const InteractionEvent &a, const InteractionEvent &b)
#define mitkNewMacro1Param(classname, type)
The sorting/splitting building-block of DICOMITKSeriesGDCMReader.
Flexible reader based on itk::ImageSeriesReader and GDCM, for single-slice modalities like CT...
static bool GetDefaultFixTiltByShearing()
mitk::EquiDistantBlocksSorter::Pointer m_EquiDistantBlocksSorter
DataCollection - Class to facilitate loading/accessing structured data.
#define mitkNewMacro2Param(classname, typea, typeb)
void SetSimpleVolumeReading(bool read)
Ignore all dicom tags that are non-essential for simple 3D volume import.
static int GetDefaultDecimalPlacesForOrientation()
const std::list< DICOMDatasetSorter::ConstPointer > ConstSorterList
bool GetSimpleVolumeReading()
Ignore all dicom tags that are non-essential for simple 3D volume import.
#define mitkClassMacro(className, SuperClassName)
Output descriptor for DICOMFileReader.
ReaderImplementationLevel
Describes how well the reader is tested for a certain file type (see mitk::DICOMFileReader).
std::vector< DICOMTagPath > DICOMTagPathList
static bool GetDefaultSimpleVolumeImport()
std::vector< DICOMDatasetAccessingImageFrameList > SortingBlockList
#define mitkCloneMacro(classname)
Interface for DICOM readers that produce mitk::Images.
mitk::NormalDirectionConsistencySorter::Pointer m_NormalDirectionConsistencySorter
bool m_SimpleVolumeReading