MeVisLab Toolbox Reference
ml::MultiFileVolumeProcessor Namespace Reference

Tools for MultiFileVolume manipulations. More...

Functions

MLMULTI_FILE_VOLUME_EXPORT MLErrorCode removeAndOptimizeSetNGoDuplicates (MultiFileVolume &mfVolume, std::vector< size_t > &removedFrameIndexes, DicomMessageCollector &dcmMsgCollector)
 This function checks whether mfVolume. More...
 

Detailed Description

Tools for MultiFileVolume manipulations.

Function Documentation

◆ removeAndOptimizeSetNGoDuplicates()

MLMULTI_FILE_VOLUME_EXPORT MLErrorCode ml::MultiFileVolumeProcessor::removeAndOptimizeSetNGoDuplicates ( MultiFileVolume mfVolume,
std::vector< size_t > &  removedFrameIndexes,
DicomMessageCollector dcmMsgCollector 
)

This function checks whether mfVolume.

  • is a Siemens "...setsNgo..." sequence in (0008,103e) LO SeriesDescription tag
  • has overlapping regions where frames have the same global position according to the sum of the private tags [ImaAbsTablePosition, Siemens, SIEMENS MR HEADER] and [SlicePosition_PCS, Siemens, SIEMENS MR HEADER] and
  • eliminates frames with duplicate frame positions to single ones In valid Siemens SetNGo sequences duplicate frames are removed, the mfVolume is adapted to remain valid and an empty string is returned, issues is set empty or not. On invalid Siemens SetNGo sequences mfVolume is left unchanged and an empty string is returned, issues will be non empty). On inconsistent sequences (e.g. mixed setNGo and no setNGo frames) a non empty error string is returned and issues will describe the problem.
    Parameters
    mfVolumeThe MultiFileVolume in which duplicate indexes shall be removed.
    dcmMsgCollectorCollects error, info and issue messages (typically related to a handle).
    removedFrameIndexesReturn the indexes which have been removed by this call.
    Returns
    An empty string on successful operation or a string describing the problem otherwise.
    Notes and limitations:
  • The first two frames are used to determine the "normal" distance between frames and together which is multiplied with epsilonFactor to get the maximum distance between frames under which two frames are considered to be located at the same spatial position.