DicomConfigurableMessageFilter

MLModule

genre

DICOM

author

Wolf Spindler

package

FMEstable/ReleaseMeVis

dll

MLDicomMessageFilter

definition

MLDicomMessageFilter.def

see also

MultiFileVolumeListBaseOutput, MultiFileVolumeListImageOutput, DirectDicomImport

keywords

DICOM, messages, configuration, preferences

Purpose

The DicomConfigurableMessageFilter allows to pass a set of configuration flags for error, info, or warning messages to some import and DICOM related modules. Such modules (like DirectDicomImport, MultiFileVolumeListImageOutput etc.) log messages to the MeVisLab error handler and to their console fields. Dependent on the context this can be no or a few messages which can of high interest, however, in some other cases there can be thousands of them which are not of much help. Especially large amounts of messages can also slow down the importing process when not handled correctly. Since the import modules cannot decide on their own which messages may be interest for the user or the application, this can be configured by with DicomConfigurableMessageFilter now.

Warning: This module can be used to hide significant information which is related to the correctness especially of imported data sets. Users making use of this functionality do this on their own risk.

Note: Currently only a small subset of messages can be configured with this module. It will be extended step by step.

Windows

Default Panel

../../../Projects/DICOM/MLDicomMessageFilter/Modules/mhelp/Images/Screenshots/DicomConfigurableMessageFilter._default.png

Output Fields

outputFilterPlugin

name: outputFilterPlugin, type: DicomConfigurableMessageFilter(MLBase)

At this output connector the set of configuration flags can be passed to other modules which may make use of them; this output is always not NULL.

Parameter Fields

Field Index

All errors: Bool

Number of t-dim entries does not match the extent of the data set: Bool

User filter 1: Bool

All warnings: Bool

Number Of Temporal Positions is expected to be 0, 1, or not set: Bool

User filter 2: Bool

An extent > 1 was detected (malformed temporal image extent): Bool

Postprocessing the volume ... failed ... beyond scope of...: Bool

User Filter0Substring0: String

Contains JPEG2000 compressed data; the loader is experimental: Bool

Recognized as a Siemens Set'N'Go sequence by an ... processor...: Bool

User Filter0Substring1: String

Detected an uncompressed 2D DICOM frame that looks malformed: Bool

Rescale Intercept != 0, Rescale Slope != 1 or Dose Grid Scaling != 1: Bool

User Filter0Substring2: String

Extended value for Specific Character Set... replacing it with ISO...: Bool

t-dim entries are not monotonically increasing: Bool

User Filter1Substring0: String

FileCache: error: Invalid tag: Bool

The MultiFileVolume for the DPL image ... has inhomogeneous spacing...: Bool

User Filter1Substring1: String

FileCache: error: Pixel representation cannot be changed: Bool

The SOPInstanceUID is already used: Bool

User Filter1Substring2: String

Found private element ... with VR ... and undefined length ...: Bool

The volume is a Whole Slide Microscopy SOP Class: Bool

User Filter2Substring0: String

Inconsistency between tags and pixel data size: Bool

The voxel size calculation was incomplete: Bool

User Filter2Substring1: String

Invalid SOS parameters for sequentialJPEG: Bool

The voxel sizes computed...slice differ significantly...: Bool

User Filter2Substring2: String

Length Of Element is not a multiple: Bool

Unknown whether voxel size correctly describes the physical geometry: Bool

Volumes have the same SeriesInstanceUID: Bool

Multiple private creator tags with same tag id and different contents: Bool

User filter 0: Bool

Visible Fields

User Filter0Substring0

name: userFilter0Substring0, type: String

If User filter 0 is enabled then this is one of at most three case sensitive substrings which must appear in an error message to make it ignored in error or warning logs. Empty strings are not considered substrings, they are ignored. It is recommended to select substrings as specific as possible to prevent that similar error messages or warnings are also suppressed.

User Filter0Substring1

name: userFilter0Substring1, type: String

See User Filter0Substring0.

User Filter0Substring2

name: userFilter0Substring2, type: String

See User Filter0Substring0.

User Filter1Substring0

name: userFilter1Substring0, type: String

See User Filter0Substring0.

User Filter1Substring1

name: userFilter1Substring1, type: String

See User Filter0Substring0.

User Filter1Substring2

name: userFilter1Substring2, type: String

See User Filter0Substring0.

User Filter2Substring0

name: userFilter2Substring0, type: String

See User Filter0Substring0.

User Filter2Substring1

name: userFilter2Substring1, type: String

See User Filter0Substring0.

User Filter2Substring2

name: userFilter2Substring2, type: String

See User Filter0Substring0.

All warnings

name: allWarnings, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress all suppressible warning messages.

All errors

name: allErrors, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress all suppressible error messages.

Rescale Intercept != 0, Rescale Slope != 1 or Dose Grid Scaling != 1

name: rescaleInterceptOrDoseGridScaling, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like The volume contains DICOM tags Rescale Intercept != 0, Rescale Slope != 1 or Dose Grid Scaling != 1. The pixel data has not been transformed according to these values. Consider using the module ApplyDicomPixelModifiers after importing the volume to transform the image data appropriately.

FileCache: error: Pixel representation cannot be changed

name: pixelRepresentationCannotBeChanged, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like DCMTree FileCache: error reading DICOM frame - status: Pixel representation cannot be changed

FileCache: error: Invalid tag

name: invalidTag, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like DCMTree FileCache: error reading DICOM frame - status: Invalid tag.

The SOPInstanceUID is already used

name: duplicateSOPInstanceUIDs, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like The SOPInstanceUID 1.2.276.0.28.4.1.1.42.411.200812111300305327570 is already used in the other file ‘/Repository/FMEwork/ReleaseMeVis/TestCases/FunctionalTests/ML/DirectDicomImport/DuplicateDataFiles/export0009-1.dcm’. Check whether you have copies in your imported data files and clear the DICOM tree and tag caches if you have changed file locations between imports:BadParameter:Rejecting the file ‘/Repository/FMEwork/ReleaseMeVis/TestCases/FunctionalTests/ML/DirectDicomImport/DuplicateDataFiles/export0009-2.dcm’.

Number Of Temporal Positions is expected to be 0, 1, or not set

name: malformedNumberOfTemporalPosition, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like The tag Number Of Temporal Positions(0020,0105) has the value 5 but is expected to be 1, 0, or not set, thus the T extent of the frame will be ignored, because it is probably wrong..

An extent > 1 was detected (malformed temporal image extent)

name: badTemporalImageExtent, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like An extent > 1 was detected in temporal image extent, however, this does not match the temporal extent available in DICOM data. This could indicate bad tag configurations in the incoming DICOM data. This sometimes appears after decomposing DICOM files with more than one time point to single frame files which inherit the number of time points. The source or creation process of those single frame files should be checked for correctness. Detected temporal image extent = X Detected temporal DICOM extent = Y Correcting temporal-extent to Y.

Detected an uncompressed 2D DICOM frame that looks malformed

name: inconsistentTagAndSFPixelDataSize, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like MultiFileVolumeListImageOutput::calculateOutputSubImage: Message : Handling Detected an uncompressed 2D DICOM frame with pixel data size matching rows*columns*sizeof(dataType) which, however, also has one or multiple tags indicating that more than one slice or time slot or point is in the frame. That looks like malformatted DICOM data where it was forgotten to reset tags which describe the ND-structure while converting it to a 2D frames. The tag Number Of Temporal Positions(0020,0105) has the value 70 but is expected to be 1, 0, or not set, thus the T extent of the frame will be ignored, because it is probably wrong.

Inconsistency between tags and pixel data size

name: inconsistentTagAndMFPixelDataSize, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like Could not read data of X frame(s). Probably there is an inconsistency between tags and pixel data size and the image extent. The image extent may also be wrong. This problem is often caused by incorrect post-processings or multi-frame data which has been split incorrectly into single frames.

Multiple private creator tags with same tag id and different contents

name: multiplePrivateCreatorWithSameTagIdAndDifferentContents, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like addSubSequenceTags: Multiple private creator tags with same tag id and different contents have been found in frame at index X with tag id Y. The current decomposition process for multi-frame files in MeVisLab unfortunately does not support this. This multi-frame file might not be imported correctly. Using the first found tag version.

Contains JPEG2000 compressed data; the loader is experimental

name: containsJPEG2000CompressedDataTheLoaderIsExperimental, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like The volume data contains JPEG2000 compressed data; the used loader is experimental.

The voxel size calculation was incomplete

name: theVoxelSizeCalculationWasIncomplete, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like The voxel size calculation was incomplete.

Length Of Element is not a multiple

name: lengthOfElementIsNotAMultiple, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like Length of element (….,….) is not a multiple of….

Invalid SOS parameters for sequentialJPEG

name: invalidSOSParametersForSequentialJPEG, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like Invalid SOS parameters for sequential JPEG.

Unknown whether voxel size correctly describes the physical geometry

name: unknownWhetherVoxelSizeDescribesPhysicalImageGeometry, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like Warning: It is unknown whether the voxel size … correctly describes the physical geometry of the image voxels..

The volume is a Whole Slide Microscopy SOP Class

name: isSMSOPClass, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like Warning: The volume is a Whole Slide Microscopy SOP Class. Frames of that SOP class are imported as is and still need a post processing to be composed correctly to a full image..

Number of t-dim entries does not match the extent of the data set

name: numTDimEntriesDoesNotMatch, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like Warning: the number of t-dim entries does not match the extent of the data set in the time dimension..

t-dim entries are not monotonically increasing

name: tDimEntriesNotMonotonicallyIncreasing, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like Warning: the t-dim entries are not monotonically increasing (first between entries X and X+1)..

Volumes have the same SeriesInstanceUID

name: volumesHaveTheSameSeriesInstanceUID, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like Warning: Volumes with firstFileNames … have the same SeriesInstanceUID; you may want to check whether they have been partitioned incorrectly, e.g. due to too many or strict conditions in the used DPL configuration or too small settings in DPL import options. Missing frames, gantry tilts may be also be a reason. Enabling DirectDicomImport->Configuration-> DICOM Import Options->Log Parting and sorting information perhaps lists more partitioning reasons..

Found private element … with VR … and undefined length …

name: foundPrivateElementWithVRAndUndefinedLength, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like Warning: Found private element … with VR … and undefined length, “reading a pixel sequence according to data dictionary..

The voxel sizes computed…slice differ significantly…

name: irregularVoxelSizes, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like Error: The voxel sizes computed from vector between first two slices and from first and last slice differ significantly: … vs. … . This may indicate irregular or unprecise values in ImagePositionVoxel tags or an incorrectly or inhomogeneously composed volume. This should be examined. Last spatial index is … One (of possibly multiple) related file name(s) is….

The MultiFileVolume for the DPL image … has inhomogeneous spacing…

name: inhomogeneousSpacing, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like Warning: The MultiFileVolume for the DPL image at index XXX has inhomogeneous spacing which is allowed by ‘Minimum Num Frames In Volume’ > 1..

Postprocessing the volume … failed … beyond scope of…

name: postprocessingCannotCompose, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like Postprocessing the MultiFileVolume for the DPL image at index XX had errors: MultifileVolumeProcessor::removeAndOptimizeSetNGoDuplicates: Image contents of frames seem to be ordered in another dimension than the frames are stored; cannot compose such series because this would require an implicit data reformatting which is beyond the scope of this experimental postprocessor.

Recognized as a Siemens Set’N’Go sequence by an … processor…

name: recognizedAsSetNGoSequence, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like MultifileVolumeProcessor::removeAndOptimizeSetNGoDuplicates: The volume was recognized as a Siemens Set’N’Go sequence by an enabled volume processor in DirectDicomImport. XX frames have been removed, because they are considered as duplicates. The stitching position has been optimized.

Extended value for Specific Character Set… replacing it with ISO…

name: specificCharacterSet, type: Bool, default: FALSE

If enabled then modules using DicomConfigurableMessageFilter will suppress messages like Extended value for Specific Character Set ISO … cannot be used for single component - replacing it with ISO_IR….

User filter 0

name: userFilter0, type: Bool, default: FALSE

If enabled then non empty substrings User Filter0Substring0, User Filter0Substring1, and User Filter0Substring2 must be part of a message to make it ignored in error or warnings logs.

User filter 1

name: userFilter1, type: Bool, default: FALSE

See User filter 0.

User filter 2

name: userFilter2, type: Bool, default: FALSE

See User filter 0.