Purpose

Renders the structure of a MultiFileVolumeList in an Open Inventor viewer, however, without rendering its data content. This is basically of interest for debugging purposes but also can be helpful for a better understanding of MultiFileVolumes and MultiFileVolumeLists.

Notes and Issues:

  • This module should be considered incomplete, because it is still under development.
  • Frames of enhanced multi-frame DICOMs can be displayed correctly only if they are still available in the DICOM single frame cache; see option DirectDicomImport.clearSingleFrameCacheAfterImport which must be disabled.
  • Only frame types loadable by ImageLoad, MLImageFormatLoad as well as most DICOM files are supported.
  • The location and orientation of DICOM frames is determined from ImageOrientationPatient and ImagePositionPatient tags - if available.
  • DICOM information of .mlimage or Dicom/Tif is ignored; they are drawn slicewise according to their location related to their world matrix.
  • The module tries to display frames even if Pixel Spacing, Image Orientation or Image Position Patient tags are not available or unreliable; in this case these values are set to defaults and warnings are logged in the MeVisLab console.
  • The volume is configured with default values such that multiple MultiFileVolumes can be displayed and time points are drawn next to each other. Note that this does not draw the volumes in their correct geometric locations, but next to each other.

Usage

  • Connect a module to the input which provides a MultiFileVolumeList, for example a DirectDicomImport.
  • Select which volumes of the list shall be displayed, the default displays all volumes.
  • Connect the output to an Inventor Viewer to display the structure of the selected volume(s).
  • Change parameters to enhance the graphical appearance. The Extra Voxel Scale Z, for example, increases the distance between slices of a volume which makes it easier to differentiate single frames of a volume.

Windows

Default Panel

../../../Modules/ML/MLMultiFileVolumeListInventorOutputs/mhelp/Images/Screenshots/MultiFileVolumeListDraftView._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

outputInv

name: outputInv, type: SoNode

An Inventor output to insert and render the draft view in an Open Inventor scene graph.

outputAccessConnector

name: outputAccessConnector, type: MLBase

see MultiFileVolumeListBaseOutput.outputAccessConnector

Parameter Fields

Visible Fields

Use Base Input

name: useBaseInput, type: Bool, default: TRUE

If enabled the the volume is read from the DirectDicomImport module connected to the base input; otherwise the specified cache file is read.

see also MultiFileVolumeListBaseOutput.useBaseInput

Load Result Cache

name: loadResultCache, type: Trigger

Loads a volume list from cached result volume.

see also MultiFileVolumeListBaseOutput.loadResultCache

Cache File Path

name: cacheFilePath, type: String

File containing a list of cached image volumes.

see also MultiFileVolumeListBaseOutput.cacheFilePath

Num Volumes

name: numVolumes, type: Integer, default: 0

This read-only field shows number of available volumes.

see also MultiFileVolumeListBaseOutput.numVolumes

Issues

name: issues, type: String

This read-only field contains a short description about known issues about the currently selected volume - if there are any.

see also MultiFileVolumeListBaseOutput.issues

Volume Info Dump

name: volumeInfoDump, type: String

Shows a collection of available information about the currently selected volume.

see also 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

Volume Indexes

name: volumeIndexes, type: String, default: 0-

The indexes of the volumes to display (e.g. 0- or 0,3,4 or 2-5).

Extra Voxel Scale Z

name: extraVoxelScaleZ, type: Double, default: 0

The Extra Voxel Scale Z allows to increase or decrease the normal distance between the displayed slices of a volume. This often makes it easier to see single slices a volume.

Scale X (relative3DVolumeDistanceScaleX)

name: relative3DVolumeDistanceScaleX, type: Double, default: 1.2

Scale factor in the X-dimension which determines how 3D volumes inside of a MultiFileVolumes are shifted relative to themselves. It allows to increase or decrease the visual distance between MultiFileVolumes to simplify understanding of the volume relations.

Scale Y (relative3DVolumeDistanceScaleY)

name: relative3DVolumeDistanceScaleY, type: Double, default: 0

See Scale X.

Scale Z (relative3DVolumeDistanceScaleZ)

name: relative3DVolumeDistanceScaleZ, type: Double, default: 0

See Scale X.

Scale X (relativeNDVolumeDistanceScaleX)

name: relativeNDVolumeDistanceScaleX, type: Double, default: 0

Scale factor in the X-dimension which determines how MultiFileVolumes inside of a MultiFileVolumeList are shifted relative to themselves. It allows to increase or decrease the visual distance between MultiFileVolumes to simplify understanding of the volume relations.

Scale Y (relativeNDVolumeDistanceScaleY)

name: relativeNDVolumeDistanceScaleY, type: Double, default: 0

See Scale X.

Scale Z (relativeNDVolumeDistanceScaleZ)

name: relativeNDVolumeDistanceScaleZ, type: Double, default: 1.5

See Scale X.

Font Size

name: fontSize, type: Float, default: 12

The point size of the font which is used to annotate the displayed volumes.

Show Annotation

name: showAnnotation, type: Bool, default: TRUE

Enables or disables the text annotation of the displayed volumes.

Show Image Position Patient

name: showImagePositionPatient, type: Bool, default: FALSE

If enabled then the coordinates of the ImagePositionPatient tag are added to the text annotation of the frame if Show Annotation is on.

Show Volume Orientation

name: showVolumeOrientation, type: Bool, default: FALSE

If enabled then the three orientation vectors of the world matrix of the shown MultiFileVolumes are drawn at the origin of the first frame/time point.

Show Only12NTime Points

name: showOnly12NTimePoints, type: Bool, default: TRUE

If enabled then at most three time points of a series of volumes is displayed, and skipped volumes are represented with three dots. This is especially useful for time series with a large number of time points to reduce the display size of the volume (list) and speeds up rendering.

Set Convenience Defaults

name: setConvenienceDefaults, type: Trigger

Sets fields to values such that volumes are layouted in a way that they can be well overviewed. This includes shifts between volumes and time points as well as skipping multiple time steps greater than the second and smaller than the last volume. Note that this leads to incorrect geometric display positions of volumes and frames but usually gives a better overview about the entire set.

Set Geometric Defaults

name: setGeometricDefaults, type: Trigger

Sets fields to values such that volumes are displayed at their geometric correct positions. This may lead to a more confusing display, especially, because time points and volumes at same positions are drawn over each other, but it is the preferred mode to examine the geometric relationships of the volumes and frames to each other.

Hidden Fields

autoLoadResultCache

name: autoLoadResultCache, type: Bool, default: FALSE

outVolIdx

name: outVolIdx, type: Integer, default: 0

see MultiFileVolumeListBaseOutput.outVolIdx

updateBaseOutputInformationDone

name: updateBaseOutputInformationDone, type: Trigger

see MultiFileVolumeListBaseOutput.updateBaseOutputInformationDone

status

name: status, type: String, persistent: no