Purpose

The MultiFileVolumeListDiagnosisOutput provides diagnosis functionality for a MultiFileVolumeList either from a connected DirectDicomImport module, from a stored MultiFileVolume(List) (also called “cache”) file, or of course, from any other module having a MultiFileVolumeList output.

Its purpose is to perform diagnosis and validation checks on a single selected MultiFileVolume or even on all volumes of an entire list.

This is especially useful for example:

  • to verify whether all files of a MultiFileVolume exist (for example after writing it to a cache file or after building databases of MultiFileVolumes).
  • to find out whether files of a MultiFileVolume come from not more than one directory, because in some situations it is not desired that frames from different directories are composed to volumes, or that the number of directories is not different than the number of time points of the volume.
  • to find out how many tags with same id and different values appear in MultiFileVolume(s). This, for example, can be useful to determine whether it has been composed from frames with different SeriesInstanceUIDs.

Windows

Default Panel

../../../Projects/MultiFileVolume/MLMultiFileVolumeListOutputs/Modules/mhelp/Images/Screenshots/MultiFileVolumeListDiagnosisOutput._default.png

Input Fields

inputAccessConnector

name: inputAccessConnector, type: MLBase

see MultiFileVolumeListBaseOutput.inputAccessConnector

inputMessageFilterPlugin

name: inputMessageFilterPlugin, type: MLBase

In some situations is may be of interest to suppress messages (errors, or warnings) generated while loading or importing files since the user is aware of their origin and meaning, and because they shadow other messages which might have a higher importance. For this purpose a plugin can be connected to this input which filters out specific messages, for example a DicomConfigurableMessageFilter. If this input is left open then the messages are generated normally.

Output Fields

outputAccessConnector

name: outputAccessConnector, type: MLBase

see MultiFileVolumeListBaseOutput.outputAccessConnector

Parameter Fields

Visible Fields

Use Base Input

name: useBaseInput, type: Bool, default: TRUE

see MultiFileVolumeListBaseOutput.useBaseInput

Load Result Cache

name: loadResultCache, type: Trigger

see MultiFileVolumeListBaseOutput.loadResultCache

Auto Load Result Cache

name: autoLoadResultCache, type: Bool, default: FALSE

If enabled then the cache file is loaded automatically from file, otherwise Load Result Cache must be pressed for that purpose.

Cache File Path

name: cacheFilePath, type: String

see MultiFileVolumeListBaseOutput.cacheFilePath

Volume Index

name: outVolIdx, type: Integer, default: 0, minimum: 0

see MultiFileVolumeListBaseOutput.outVolIdx

Number of volumes

name: numVolumes, type: Integer, default: 0

see MultiFileVolumeListBaseOutput.numVolumes

Volume Info Dump

name: volumeInfoDump, type: String, persistent: no

see MultiFileVolumeListBaseOutput.volumeInfoDump

Tag Dump Size

name: tagDumpSize, type: Integer, default: 10000

Maximum number of characters shown in the ‘Tag Dump’ field. Too large values can degrade performance when viewing the DICOM tag list.

see also MultiFileVolumeListBaseOutput.tagDumpSize

Dump Private Tag Values

name: dumpPrivateTagValues, type: Bool, default: FALSE

If enabled then values of private tags are decoded if decoders are available.

see also MultiFileVolumeListBaseOutput.dumpPrivateTagValues

Num shown binary bytes

name: numShownBinaryEntries, type: Integer, default: 8

Number of shown entries of binary tags.

see also MultiFileVolumeListBaseOutput.numShownBinaryEntries

Annotate

name: annotate, type: Bool, default: FALSE

If enabled then tags are annotated with further descriptive information such as possible types (1=Mandatory, 1C=Conditionally Mandatory, 2=Mandatory, may have zero or one item, 2C=Conditionally Mandatory, but may be empty, 3=Optional) and possible meanings of the tag. Note that no context analysis is performed for that information and therefore all possible and perhaps redundant meanings are shown.

see also MultiFileVolumeListBaseOutput.annotate

Filter

name: regExLineFilter, type: String

If not empty then the regular expression is used to filter all lines of the tag dump. Examples:

.* // Matches all paths. .*logo.* // Matches anything containing ‘logo’ (case sensitive) .*[lL][oO][gG][oO].* // Matches anything containing ‘logo’ (case insensitive) .*.[jJ][pP][gG] // Matches anything ending with .jpg where jpg is case insenstive. .*.JPG|.*.jpg // Matches all paths ending with either ‘.jpg’ or with ‘.JPG’. .*d.* // Matches all paths containing at least one digit. .*[[:digit:]].* // Same as above. .*[[:xdigit:]].* // Matches all paths containing at least one hexadecimal digit. .*l.* // Matches all paths containing at least one lower case character. .*[[:lower:]].* // Same as above. .*u.* // Matches all paths containing at least one upper case character. .*[[:upper:]].* // Same as above. .*s.* // Matches all paths containing at least one white space character. .*[[:space:]].* // Same as above. .*[[:blank:]].* // Matches all paths containing at least one non-line-separating whitespace. .*[[:word:]].* // Matches all paths containing at least one word charcater (alphanumeric characters plus the underscore). .*[[:w:]].* // Same as above. .*[[:graph:]].* // Matches all paths containing at least one graphical charcater. .*[5-7].* // Matches all paths containing at least one of the digits 5, 6 or 7.

see also MultiFileVolumeListBaseOutput.regExLineFilter

Tag Dump

name: tagDump, type: String, persistent: no

Shows the DICOM tag list of currently selected volume (the dump will be clamped if the tag list is too large).

see also MultiFileVolumeListBaseOutput.tagDump

Check All Multi File Volumes

name: checkAllMultiFileVolumes, type: Bool, default: FALSE

If checked then all MultiFileVolumes in the connected list are checked, otherwise only the currently selected one.

Do Files Exist Check

name: doFilesExistCheck, type: Bool, default: TRUE

If enabled then a check is run whether all required files of the MultiFileVolume(List) exist, see also Files Exist. Some files in a MultiFileVolume are optional; if they miss the check will not fail. The check will also succeed if no volumes exists, or volumes do not reference any files.

Post errors (postFileExistCheckFailuresAsMLError)

name: postFileExistCheckFailuresAsMLError, type: Bool, default: TRUE

If enabled then any failure in Do Files Exist Check are posted as ML error; otherwise only Files Exist is updated.

Files Exist

name: filesExist, type: Bool, persistent: no

If no check is performed or if not all required files could be found then this checkbox is set to false, otherwise to true. If an empty MultiFileVolume(List) is checked then this flag will be set true, because no file is recognized as missing.

Do One Dir Check

name: doOneDirCheck, type: Bool, default: FALSE

In some cases it is not desired that a MultiFileVolume has frames from more than one directory. In some situations this can indicate that volumes have been composed incorrectly, however, not in all. If Do One Dir Check is checked, then the frame handles of the MultiFileVolume(s) are checked: if they come from more than one directory in one MultiFileVolume then One Dir is deactivated, otherwise it is enabled.

Post errors (postOneDirCheckFailuresAsMLError)

name: postOneDirCheckFailuresAsMLError, type: Bool, default: TRUE

If enabled then any failure in Do One Dir Check are posted as ML error; otherwise only One Dir is updated.

One Dir

name: oneDir, type: Bool, persistent: no

If the check for frames from one directory explained in Do One Dir Check fails or if no check is performed, then One Dir is deactivated, otherwise it is set to true. If an empty MultiFileVolume(List) is checked then this flag will be set true, because the source of frames of no MultiFileVolume was recognized as problematic.

Calculate # of frame directories

name: doNumFrameDirsCalc, type: Bool, default: FALSE

If enabled then the number of directories is counted in which the files of the volume(s) are stored and written to # Directories:. If the number is calculated for more than one volume then the results will be space separated and be listed in the order of appearance of the volumes in the list. If disabled then # Directories: will be empty.

# Directories:

name: numFrameDirs, type: String, persistent: no

Displays the number of directories from which the frame files of MultiFileVolume(s) come, according to the settings in Check All Multi File Volumes and Calculate # of frame directories. Multiple results are separated with spaces if necessary.

Calculate # of different tag values

name: doNumTagIdCalc, type: Bool, default: FALSE

Returns the number of existing different string-convertible top-level tags with id Tag Id:. If Tag Id: denotes a sequence tag, any tag is not string convertible, or shall be determined on enhanced multi-frame files then N/A will be displayed. Invalid Tag Id: values cause empty # Different tag values:.

Tag Id:

name: tagId, type: String, default: SeriesInstanceUID

The ID of the tag whose number of different values shall be searched in the MultiFileVolume(List).

Is Valid Tag Id

name: isValidTagId, type: Bool, persistent: no

Checked if Tag Id: indicates a valid DICOM tag id, otherwise false.

# Different tag values:

name: numDifferentTagsWithId, type: String, persistent: no

If Tag Id: is invalid then an empty string is displayed. Otherwise for string-convertible tags with id Tag Id: it shows the number of different values in the MultiFileVolume(List); N/A is displayed if Tag Id: is a sequence tag or exceptions occur on conversions. See Calculate # of different tag values for details.

Result Console

name: resultConsole, type: String, persistent: no

Will be set to human readable reports from all performed checks.

Pad Spaces

name: padSpaces, type: Integer, default: 1

The fields in each line of Overall Tag Table can be aligned to columns whose lengths are multiples of Pad Spaces. This can improve readability of the table significantly.

Overall Tag Id

name: overallTagId, type: String, default: ImagePositionPatient

If a tag name or id is specified then in Overall Tag Table a table of all top-level tags with id Overall Tag Id in all frames in all volumes with all corresponding frame handles.

Overall Tag Table

name: overallTagTable, type: String

A table showing tag values from all frames in all volumes with lines of the format ‘VolumeIndex: FramePositionInVolume: TagValue: FrameHandle’. Note that tag contents of enhanced mult-frame files frames (starting with an “*” and ending with “#abcdef”) may not be displayed correct if they are not in cache any more. Check DirectDicomImport.clearSingleFrameCacheAfterImport for details about caching of enhanced frame information.

First Volume Index Derived From

name: firstVolumeIndexDerivedFrom, type: Integer, persistent: no

The module tries to determine the volume(s) (or to be more precise: the frames) from which the image has been derived. If this or these volumes are also part of the volume list connected to the input of this module, then First Volume Index Derived From shows the volume index of the first of these volumes. Note that no, one or multiple of such volumes can exist. The default is -1 if no volume has been found. See also Volume Indexes Derived From.

Volume Indexes Derived From

name: volumeIndexesDerivedFrom, type: String, persistent: no

As described for First Volume Index Derived From the module tries to determine the volume(s) (or to be more precise: the frames) from which the image has been derived. If this or these volumes are also part of the volume list connected to the input of this module, then Volume Indexes Derived From shows a space separated list of all these volumes. The default is empty if no volume has been found. See also First Volume Index Derived From.

First Shared Frame Of Reference Volume Index

name: firstSharedFrameOfReferenceVolumeIndex, type: Integer, persistent: no

The module tries to determine the volume(s) (or to be more precise: the frames) which share the same FrameOfReferenceUID. If this or these volumes are also part of the volume list connected to the input of this module, then First Shared Frame Of Reference Volume Index shows the volume index of the first of these volumes. Note that no, one or multiple of such volumes can exist. The default is -1 if no volume has been found. See also Shared Frame Of Reference Volume Indexes.

Shared Frame Of Reference Volume Indexes

name: sharedFrameOfReferenceVolumeIndexes, type: String, persistent: no

As described for First Shared Frame Of Reference Volume Index the module tries to determine the volume(s) (or to be more precise: the frames) which share the same FrameOfReferenceUID. If this or these volumes are also part of the volume list connected to the input of this module, then Shared Frame Of Reference Volume Indexes shows a space separated list of all these volumes. The default is empty if no volume has been found. See also First Shared Frame Of Reference Volume Index.

Hidden Fields

issues

name: issues, type: String, persistent: no

see MultiFileVolumeListBaseOutput.issues

updateBaseOutputInformationDone

name: updateBaseOutputInformationDone, type: Trigger

see MultiFileVolumeListBaseOutput.updateBaseOutputInformationDone

updateDiagnosisOutputInformationDone

name: updateDiagnosisOutputInformationDone, type: Trigger