|
Medical Imaging Interaction Toolkit
2026.06.00
Medical Imaging Interaction Toolkit
|
#include <mitkDicomSeriesReader.h>
Classes | |
| class | CallbackCommand |
| ITK command adapter for progress callbacks. More... | |
| class | GantryTiltInformation |
| Gantry tilt analysis result. More... | |
| class | ImageBlockDescriptor |
| Return type of GetSeries, describes a logical group of DICOM files. More... | |
| class | SliceGroupingAnalysisResult |
| Return type of DicomSeriesReader::AnalyzeFileForITKImageSeriesReaderSpacingAssumption. More... | |
Public Types | |
| enum | ReaderImplementationLevel { ReaderImplementationLevel_Supported , ReaderImplementationLevel_PartlySupported , ReaderImplementationLevel_Implemented , ReaderImplementationLevel_Unsupported } |
| Describes how well the reader is tested for a certain file type (SOP Class). More... | |
| enum | PixelSpacingInterpretation { PixelSpacingInterpretation_SpacingInPatient , PixelSpacingInterpretation_SpacingAtDetector , PixelSpacingInterpretation_SpacingUnknown } |
| How the mitk::Image pixel spacing should be interpreted. More... | |
| typedef std::vector< std::string > | StringContainer |
| Container type for lists of DICOM filenames. More... | |
| typedef void(* | UpdateCallBackMethod) (float) |
| Function pointer type for progress callbacks. More... | |
| typedef std::map< std::string, ImageBlockDescriptor > | FileNamesGrouping |
| Map type from enhanced UID strings to ImageBlockDescriptor instances. More... | |
Static Public Member Functions | |
| static std::string | GetConfigurationString () |
| Provide the combination of preprocessor defines that was active during compilation. More... | |
| static bool | IsDicom (const std::string &filename) |
| Check if a specific file contains DICOM data. More... | |
| static FileNamesGrouping | GetSeries (const std::string &dir, bool groupImagesWithGantryTilt, const StringContainer &restrictions=StringContainer()) |
| Find all series (and sub-series) in a particular directory. More... | |
| static StringContainer | GetSeries (const std::string &dir, const std::string &series_uid, bool groupImagesWithGantryTilt, const StringContainer &restrictions=StringContainer()) |
| Find files belonging to a specific DICOM series in a directory. More... | |
| static FileNamesGrouping | GetSeries (const StringContainer &files, bool sortTo3DPlust, bool groupImagesWithGantryTilt, const StringContainer &restrictions=StringContainer()) |
| PREFERRED version – scan and sort a list of DICOM files into loadable blocks. More... | |
| static FileNamesGrouping | GetSeries (const StringContainer &files, bool groupImagesWithGantryTilt, const StringContainer &restrictions=StringContainer()) |
| Scan and sort DICOM files (without explicit 3D+t control). More... | |
| static DataNode::Pointer | LoadDicomSeries (const StringContainer &filenames, bool sort=true, bool load4D=true, bool correctGantryTilt=true, UpdateCallBackMethod callback=nullptr, itk::SmartPointer< Image > preLoadedImageBlock=nullptr) |
| Load a DICOM series into a new DataNode. More... | |
| static bool | LoadDicomSeries (const StringContainer &filenames, DataNode &node, bool sort=true, bool load4D=true, bool correctGantryTilt=true, UpdateCallBackMethod callback=nullptr, itk::SmartPointer< Image > preLoadedImageBlock=nullptr) |
| Load a DICOM series into an existing DataNode. More... | |
| static bool | IsPhilips3DDicom (const std::string &filename) |
| Check if a specific file is a Philips 3D ultrasound DICOM file. More... | |
| static std::string | ReaderImplementationLevelToString (const ReaderImplementationLevel &enumValue) |
| Convert a ReaderImplementationLevel enum value to a human-readable string. More... | |
| static std::string | PixelSpacingInterpretationToString (const PixelSpacingInterpretation &enumValue) |
| Convert a PixelSpacingInterpretation enum value to a human-readable string. More... | |
Protected Types | |
| typedef std::pair< StringContainer, StringContainer > | TwoStringContainers |
| Pair of string containers used for internal sorting operations. More... | |
| typedef std::map< std::string, std::string > | TagToPropertyMapType |
| Map type from DICOM tag strings to MITK property name strings. More... | |
| typedef itk::GDCMImageIO | DcmIoType |
| Typedef for the GDCM image IO class used internally. More... | |
Static Protected Member Functions | |
| static SliceGroupingAnalysisResult | AnalyzeFileForITKImageSeriesReaderSpacingAssumption (const StringContainer &files, bool groupsOfSimilarImages, const gdcm::Scanner::MappingType &tagValueMappings_) |
| Ensure equal z-spacing for a group of files. More... | |
| static std::string | ConstCharStarToString (const char *s) |
| Safely convert a const char pointer to std::string. More... | |
| static bool | DICOMStringToSpacing (const std::string &s, ScalarType &spacingX, ScalarType &spacingY) |
| Parse a DICOM spacing string into pixel spacing X and Y values. More... | |
| static Point3D | DICOMStringToPoint3D (const std::string &s, bool &successful) |
| Convert a DICOM string describing a 3D point to Point3D. More... | |
| static void | DICOMStringToOrientationVectors (const std::string &s, Vector3D &right, Vector3D &up, bool &successful) |
| Convert a DICOM orientation string to two direction vectors. More... | |
| template<typename ImageType > | |
| static ImageType::Pointer | InPlaceFixUpTiltedGeometry (ImageType *input, const GantryTiltInformation &tiltInfo) |
| Correct a tilted image geometry by resampling with a shear transformation. More... | |
| static StringContainer | SortSeriesSlices (const StringContainer &unsortedFilenames) |
| static bool | ReadPhilips3DDicom (const std::string &filename, itk::SmartPointer< Image > output_image) |
| Read a Philips 3D ultrasound DICOM file and load it into an mitk::Image. More... | |
| static std::string | CreateMoreUniqueSeriesIdentifier (gdcm::Scanner::TagToValue &tagValueMap) |
| Construct a UID that incorporates sorting criteria from GetSeries(). More... | |
| static std::string | CreateSeriesIdentifierPart (gdcm::Scanner::TagToValue &tagValueMap, const gdcm::Tag &tag) |
| Extract a single tag value as a string for use in CreateMoreUniqueSeriesIdentifier(). More... | |
| static std::string | IDifyTagValue (const std::string &value) |
| Sanitize a tag value string for use as part of a UID. More... | |
| static void | FixSpacingInformation (Image *image, const ImageBlockDescriptor &imageBlockDescriptor) |
| Correct the pixel spacing of a loaded image based on the image block descriptor. More... | |
| static void | ScanForSliceInformation (const StringContainer &filenames, gdcm::Scanner &scanner) |
| Scan DICOM files for slice-relevant tag information. More... | |
| static void | LoadDicom (const StringContainer &filenames, DataNode &node, bool sort, bool check_4d, bool correctTilt, UpdateCallBackMethod callback, itk::SmartPointer< Image > preLoadedImageBlock) |
| Perform the actual loading of a DICOM series. More... | |
| template<typename PixelType > | |
| static itk::SmartPointer< Image > | LoadDICOMByITK (const StringContainer &, bool correctTilt, const GantryTiltInformation &tiltInfo, DcmIoType::Pointer &io, CallbackCommand *command, itk::SmartPointer< Image > preLoadedImageBlock) |
| Feed files into itk::ImageSeriesReader and retrieve a 3D MITK image. More... | |
| static itk::SmartPointer< Image > | MultiplexLoadDICOMByITK (const StringContainer &, bool correctTilt, const GantryTiltInformation &tiltInfo, DcmIoType::Pointer &io, CallbackCommand *command, itk::SmartPointer< Image > preLoadedImageBlock) |
| Pixel-type multiplexer for LoadDICOMByITK – dispatches to scalar or RGB variants. More... | |
| static itk::SmartPointer< Image > | MultiplexLoadDICOMByITKScalar (const StringContainer &, bool correctTilt, const GantryTiltInformation &tiltInfo, DcmIoType::Pointer &io, CallbackCommand *command, itk::SmartPointer< Image > preLoadedImageBlock) |
| Scalar pixel type multiplexer for LoadDICOMByITK. More... | |
| static itk::SmartPointer< Image > | MultiplexLoadDICOMByITKRGBPixel (const StringContainer &, bool correctTilt, const GantryTiltInformation &tiltInfo, DcmIoType::Pointer &io, CallbackCommand *command, itk::SmartPointer< Image > preLoadedImageBlock) |
| RGB pixel type multiplexer for LoadDICOMByITK. More... | |
| template<typename PixelType > | |
| static itk::SmartPointer< Image > | LoadDICOMByITK4D (std::list< StringContainer > &imageBlocks, ImageBlockDescriptor imageBlockDescriptor, bool correctTilt, const GantryTiltInformation &tiltInfo, DcmIoType::Pointer &io, CallbackCommand *command, itk::SmartPointer< Image > preLoadedImageBlock) |
| Feed files into itk::ImageSeriesReader for 3D+t loading. More... | |
| static itk::SmartPointer< Image > | MultiplexLoadDICOMByITK4D (std::list< StringContainer > &imageBlocks, ImageBlockDescriptor imageBlockDescriptor, bool correctTilt, const GantryTiltInformation &tiltInfo, DcmIoType::Pointer &io, CallbackCommand *command, itk::SmartPointer< Image > preLoadedImageBlock) |
| Pixel-type multiplexer for LoadDICOMByITK4D – dispatches to scalar or RGB variants. More... | |
| static itk::SmartPointer< Image > | MultiplexLoadDICOMByITK4DScalar (std::list< StringContainer > &imageBlocks, ImageBlockDescriptor imageBlockDescriptor, bool correctTilt, const GantryTiltInformation &tiltInfo, DcmIoType::Pointer &io, CallbackCommand *command, itk::SmartPointer< Image > preLoadedImageBlock) |
| Scalar pixel type multiplexer for LoadDICOMByITK4D. More... | |
| static itk::SmartPointer< Image > | MultiplexLoadDICOMByITK4DRGBPixel (std::list< StringContainer > &imageBlocks, ImageBlockDescriptor imageBlockDescriptor, bool correctTilt, const GantryTiltInformation &tiltInfo, DcmIoType::Pointer &io, CallbackCommand *command, itk::SmartPointer< Image > preLoadedImageBlock) |
| RGB pixel type multiplexer for LoadDICOMByITK4D. More... | |
| static std::list< StringContainer > | SortIntoBlocksFor3DplusT (const StringContainer &presortedFilenames, const gdcm::Scanner::MappingType &tagValueMappings_, bool sort, bool &canLoadAs4D) |
| Sort files into time step blocks for 3D+t image loading. More... | |
| static bool | GdcmSortFunction (const gdcm::DataSet &ds1, const gdcm::DataSet &ds2) |
| Spatial sorting comparator for GDCM 2 datasets. More... | |
| static void | CopyMetaDataToImageProperties (StringContainer filenames, const gdcm::Scanner::MappingType &tagValueMappings_, DcmIoType *io, const ImageBlockDescriptor &blockInfo, Image *image) |
| Copy DICOM tag information to the PropertyList of an mitk::Image (single block). More... | |
| static void | CopyMetaDataToImageProperties (std::list< StringContainer > imageBlock, const gdcm::Scanner::MappingType &tagValueMappings_, DcmIoType *io, const ImageBlockDescriptor &blockInfo, Image *image) |
| Copy DICOM tag information to the PropertyList of an mitk::Image (4D blocks). More... | |
| static const TagToPropertyMapType & | GetDICOMTagsToMITKPropertyMap () |
| Get the mapping from DICOM tags to MITK property names. More... | |
Definition at line 346 of file mitkDicomSeriesReader.h.
|
protected |
Typedef for the GDCM image IO class used internally.
Definition at line 977 of file mitkDicomSeriesReader.h.
| typedef std::map<std::string, ImageBlockDescriptor> mitk::DicomSeriesReader::FileNamesGrouping |
Map type from enhanced UID strings to ImageBlockDescriptor instances.
Definition at line 481 of file mitkDicomSeriesReader.h.
| typedef std::vector<std::string> mitk::DicomSeriesReader::StringContainer |
Container type for lists of DICOM filenames.
Definition at line 352 of file mitkDicomSeriesReader.h.
|
protected |
Map type from DICOM tag strings to MITK property name strings.
Definition at line 809 of file mitkDicomSeriesReader.h.
|
protected |
Pair of string containers used for internal sorting operations.
Definition at line 806 of file mitkDicomSeriesReader.h.
| typedef void(* mitk::DicomSeriesReader::UpdateCallBackMethod) (float) |
Function pointer type for progress callbacks.
The callback receives a float value in [0,1] representing the loading progress.
Definition at line 359 of file mitkDicomSeriesReader.h.
How the mitk::Image pixel spacing should be interpreted.
Compare DICOM PS 3.3 10.7 (Basic Pixel Spacing Calibration Macro).
Definition at line 383 of file mitkDicomSeriesReader.h.
Describes how well the reader is tested for a certain file type (SOP Class).
Applications should not rely on the outcome for images which are reported as ReaderImplementationLevel_Implemented or ReaderImplementationLevel_Unsupported.
Errors loading images reported as ReaderImplementationLevel_Supported are considered bugs. For ReaderImplementationLevel_PartlySupported, check the appropriate paragraph in Limitations for specific modalities.
Definition at line 371 of file mitkDicomSeriesReader.h.
|
staticprotected |
Ensure equal z-spacing for a group of files.
Takes as input a number of images which are all equally oriented and spatially sorted along their normal direction. Internally used by GetSeries().
Returns a SliceGroupingAnalysisResult where the first list contains slices with equal inter-slice spacing and the second list contains remaining files that need to be run through this method again.
| files | Spatially sorted list of DICOM filenames to analyze. |
| groupsOfSimilarImages | Whether to group images with similar but not identical spacing. |
| tagValueMappings_ | GDCM scanner tag-value mappings for the files. |
|
staticprotected |
Safely convert a const char pointer to std::string.
| s | The C-string to convert (may be nullptr). |
|
staticprotected |
Copy DICOM tag information to the PropertyList of an mitk::Image (4D blocks).
Overload for 3D+t images with multiple time-step blocks.
| imageBlock | List of filename containers, one per time step. |
| tagValueMappings_ | GDCM scanner tag-value mappings. |
| io | The GDCM image IO instance with loaded metadata. |
| blockInfo | The image block descriptor with additional metadata. |
| image | The MITK image to receive the properties. |
|
staticprotected |
Copy DICOM tag information to the PropertyList of an mitk::Image (single block).
Extracts metadata from ITK's MetaDataDictionary and from the GDCM scanner tag mappings, then stores them as MITK properties on the image.
| filenames | The DICOM file paths for metadata extraction. |
| tagValueMappings_ | GDCM scanner tag-value mappings. |
| io | The GDCM image IO instance with loaded metadata. |
| blockInfo | The image block descriptor with additional metadata. |
| image | The MITK image to receive the properties. |
|
staticprotected |
Construct a UID that incorporates sorting criteria from GetSeries().
Enhances the Series Instance UID with additional tag values to create a unique identifier for each loadable image block.
| tagValueMap | The GDCM tag-to-value mapping for the series. |
|
staticprotected |
Extract a single tag value as a string for use in CreateMoreUniqueSeriesIdentifier().
| tagValueMap | The GDCM tag-to-value mapping. |
| tag | The DICOM tag to extract. |
|
staticprotected |
Convert a DICOM orientation string to two direction vectors.
DICOM tags like ImageOrientationPatient contain two vectors as float numbers separated by backslashes (e.g., "1\\0\\0\\0\\1\\0").
| s | The DICOM orientation string. |
| right | Output parameter for the row direction vector. |
| up | Output parameter for the column direction vector. |
| successful | Output flag indicating whether parsing succeeded. |
|
staticprotected |
Convert a DICOM string describing a 3D point to Point3D.
DICOM tags like ImagePositionPatient contain a position as float numbers separated by backslashes (e.g., "42.7131\\13.77\\0.7").
| s | The DICOM position string. |
| successful | Output flag indicating whether parsing succeeded. |
|
staticprotected |
Parse a DICOM spacing string into pixel spacing X and Y values.
| s | The DICOM spacing string (backslash-separated). |
| spacingX | Output parameter for the X spacing. |
| spacingY | Output parameter for the Y spacing. |
|
staticprotected |
Correct the pixel spacing of a loaded image based on the image block descriptor.
| image | The loaded image whose spacing may need correction. |
| imageBlockDescriptor | The descriptor containing pixel spacing information. |
|
staticprotected |
Spatial sorting comparator for GDCM 2 datasets.
Sorts by image position along image normal (distance from world origin). In cases of conflict, acquisition time is used as a secondary criterion.
| ds1 | First GDCM dataset to compare. |
| ds2 | Second GDCM dataset to compare. |
|
static |
Provide the combination of preprocessor defines that was active during compilation.
Since this class is a combination of several possible implementations separated only by ifdefs, calling instances might want to know which flags were active at compile time.
|
staticprotected |
Get the mapping from DICOM tags to MITK property names.
Returns a positive list for copying specified DICOM tags (from ITK's ImageIO) to MITK properties. ITK provides MetaDataDictionary entries of form "gggg|eeee" (g = group, e = element), e.g. "0028,0109" (Largest Pixel in Series), which are mapped to names like "dicom.series.largest_pixel_in_series".
|
static |
Find all series (and sub-series) in a particular directory.
Scans the given directory for DICOM files, groups them, and returns the result. See the preferred overload taking a StringContainer for details.
| dir | The directory to scan for DICOM files. |
| groupImagesWithGantryTilt | Whether to apply gantry tilt correction grouping. |
| restrictions | Additional DICOM tag restrictions for grouping. |
|
static |
Find files belonging to a specific DICOM series in a directory.
This differs from the other GetSeries() overloads by restricting results to a single known DICOM series, identified by its Series Instance UID. Internally delegates to the directory-based GetSeries() method.
| dir | The directory to scan for DICOM files. |
| series_uid | The Series Instance UID to filter for. |
| groupImagesWithGantryTilt | Whether to apply gantry tilt correction grouping. |
| restrictions | Additional DICOM tag restrictions for grouping. |
|
static |
Scan and sort DICOM files (without explicit 3D+t control).
Convenience overload that defaults 3D+t sorting to true. Prefer the overload with explicit sortTo3DPlust parameter.
| files | List of DICOM file paths to analyze. |
| groupImagesWithGantryTilt | Whether to apply gantry tilt correction grouping. |
| restrictions | Additional DICOM tag restrictions for grouping. |
|
static |
PREFERRED version – scan and sort a list of DICOM files into loadable blocks.
Parse a list of files for images of DICOM series. For each series, an enumeration of the files contained in it is created.
SeriesInstanceUID will be enhanced to be unique for each set of file names that is later loadable as a single mitk::Image. This implies that image orientation, slice thickness, pixel spacing, rows, and columns must be the same for each file (i.e. the image slice contained in the file).
If this separation logic requires that a SeriesInstanceUID must be made more specialized, it will follow the same logic as itk::GDCMSeriesFileNames to enhance the UID with more digits and dots.
| files | List of DICOM file paths to analyze. |
| sortTo3DPlust | Whether to attempt grouping into 3D+t blocks. |
| groupImagesWithGantryTilt | Whether to apply gantry tilt correction grouping. |
| restrictions | Additional DICOM tag restrictions for grouping. |
|
staticprotected |
Sanitize a tag value string for use as part of a UID.
Removes or replaces characters that would not be suitable in an identifier string.
| value | The raw tag value string. |
|
staticprotected |
Correct a tilted image geometry by resampling with a shear transformation.
Applies a correction for gantry tilt by resampling the image using itk::ResampleFilter.
| ImageType | The ITK image type. |
| input | The input image with tilted geometry. |
| tiltInfo | The gantry tilt information describing the correction needed. |
|
static |
Check if a specific file contains DICOM data.
| filename | Path to the file to check. |
|
static |
Check if a specific file is a Philips 3D ultrasound DICOM file.
Checks for the presence of tag (3001,0010) set to "Philips3D".
| filename | Path to the DICOM file to check. |
|
staticprotected |
Perform the actual loading of a DICOM series.
Determines the pixel type, invokes the appropriate templated loader, and populates the DataNode with the resulting image and properties.
| filenames | The DICOM file paths to load. |
| node | The DataNode to populate. |
| sort | Whether to sort files spatially before loading. |
| check_4d | Whether to attempt 3D+t loading. |
| correctTilt | Whether to correct for gantry tilt. |
| callback | Optional progress callback. |
| preLoadedImageBlock | Optional pre-loaded image block. |
|
staticprotected |
Feed files into itk::ImageSeriesReader and retrieve a 3D MITK image.
| PixelType | The pixel type for the ITK image reader. |
| correctTilt | Whether to apply gantry tilt correction after loading. |
| tiltInfo | The gantry tilt information for correction. |
| io | The GDCM image IO instance to use. |
| command | Optional ITK command for progress reporting. |
| preLoadedImageBlock | Optional pre-loaded image to use instead of reading. |
|
staticprotected |
Feed files into itk::ImageSeriesReader for 3D+t loading.
Loads multiple time-step blocks into a single 4D MITK image.
| PixelType | The pixel type for the ITK image reader. |
| imageBlocks | List of filename containers, one per time step. |
| imageBlockDescriptor | Descriptor for the image block. |
| correctTilt | Whether to apply gantry tilt correction. |
| tiltInfo | The gantry tilt information for correction. |
| io | The GDCM image IO instance to use. |
| command | Optional ITK command for progress reporting. |
| preLoadedImageBlock | Optional pre-loaded image block. |
|
static |
Load a DICOM series into a new DataNode.
Loads the DICOM series composed of the given filenames and wraps the result in a DataNode. If a callback method is supplied, it will be called after every progress update with a progress value in [0,1].
| filenames | The DICOM file paths to load. |
| sort | Whether files should be sorted spatially (true) or not (false, useful if presorted). |
| load4D | Whether to attempt loading the files as 3D+t (if possible). |
| correctGantryTilt | Whether to correct for gantry tilt during loading. |
| callback | Optional progress callback function. |
| preLoadedImageBlock | Optional pre-loaded image to use instead of reading from disk. |
|
static |
Load a DICOM series into an existing DataNode.
Same as the other LoadDicomSeries() overload but stores the result into the provided DataNode reference. If preLoadedImageBlock is provided, the reader will only create appropriate mitk::Properties without actually reading pixel data.
| filenames | The DICOM file paths to load. |
| node | The DataNode to populate with the loaded image and properties. |
| sort | Whether files should be sorted spatially. |
| load4D | Whether to attempt loading the files as 3D+t. |
| correctGantryTilt | Whether to correct for gantry tilt during loading. |
| callback | Optional progress callback function. |
| preLoadedImageBlock | Optional pre-loaded image to use instead of reading from disk. |
|
staticprotected |
Pixel-type multiplexer for LoadDICOMByITK – dispatches to scalar or RGB variants.
|
staticprotected |
Pixel-type multiplexer for LoadDICOMByITK4D – dispatches to scalar or RGB variants.
|
staticprotected |
RGB pixel type multiplexer for LoadDICOMByITK4D.
|
staticprotected |
Scalar pixel type multiplexer for LoadDICOMByITK4D.
|
staticprotected |
RGB pixel type multiplexer for LoadDICOMByITK.
|
staticprotected |
Scalar pixel type multiplexer for LoadDICOMByITK.
|
static |
Convert a PixelSpacingInterpretation enum value to a human-readable string.
| enumValue | The enum value to convert. |
|
static |
Convert a ReaderImplementationLevel enum value to a human-readable string.
| enumValue | The enum value to convert. |
|
staticprotected |
Read a Philips 3D ultrasound DICOM file and load it into an mitk::Image.
| filename | Path to the Philips 3D DICOM file. |
| output_image | The image to populate with the loaded data. |
|
staticprotected |
Scan DICOM files for slice-relevant tag information.
Configures and runs the GDCM scanner to extract tags needed for spatial sorting and grouping (position, orientation, spacing, etc.).
| filenames | The DICOM files to scan. |
| scanner | The GDCM scanner to configure and execute. |
|
staticprotected |
Sort files into time step blocks for 3D+t image loading.
Called by LoadDicom(). Expects a single list of filenames previously sorted by GetSeries(). Determines how many time steps can be filled with the given files.
The number of time steps is determined by how often the first spatial position repeats in the sorted input. For example, if the first three files describe the same location in space, three time-step blocks are constructed and the remaining files are distributed among them.
| presortedFilenames | The spatially sorted list of DICOM filenames. |
| tagValueMappings_ | GDCM scanner tag-value mappings for the files. |
| sort | Whether to sort within each time step block. |
| canLoadAs4D | Output flag indicating whether 4D loading is possible. |
|
staticprotected |
\brief Sort a set of file names in an order that is meaningful for loading them into an mitk::Image.
\warning This method assumes that input files are similar in basic properties such as
slice thickness, image orientation, pixel spacing, rows, columns.
It should always be ok to put the result of a call to GetSeries(..) into this method.
Sorting order is determined by
1. image position along its normal (distance from world origin)
2. acquisition time
If P<n> denotes a position and T<n> denotes a time step, this method will order slices from three timesteps like
this:
P1T1 P1T2 P1T3 P2T1 P2T2 P2T3 P3T1 P3T2 P3T3