ApplyGlobalModalityLUT

MacroModule
author Jan-Martin Kuhnigk
package FMEstable/ReleaseMeVis
definition ApplyGlobalModalityLUT.def
see also DicomRescale
keywords normalization, CT, DICOM, rescal, hounsfield, units, range, Siemens, Toshiba, GE, Philips, value

Purpose

The module allows for normalizing DICOM data containing either a single frame-unspecific (i.e. “shared” or “global”) or multiple frame-specific RescaleIntercept or RescaleSlope values to a single, frame-unspecific, user-defined intercept, slope, and data type.

For CT data, intercept and slope define the transformation between intensity values (IV) and Hounsfield Units (HU): HU = IV * slope + intercept For example, this is very useful in order to normalize CT data from different vendors (Siemens, Philips, GE, Toshiba), who mostly use their specific intercept / slope / data type values, on the fly without extensive computational cost.

It can also be used to scale into another datatype for more memory efficient processing and still have the correct correspondence of intensity values and external scale.

Usage

Connect a DICOM image to the input, and select appropriate rescaling parameters.

E.g., to rescale to Siemens standard, use Intercept -1024, slope 1, and data type UInt16. If Int16 is selected instead, values below -1024 HU which occur in most Philips and Toshiba datasets are preserved and result in intensity values below 0 in the output image.

Recommended normalization values for image processing are intercept = 0, slope = 1 so that there is no need to translate between voxel values and user values (e.g. HU).

Details

Normalizing frame-specific to shared tags is a preprocessing step that only kicks in whenever at least two different frame-specifc tag values are detected. As the frame-specific values are not removed

Windows

Default Panel

../../../Projects/ApplyGlobalModalityLUT/Modules/mhelp/Images/Screenshots/ApplyGlobalModalityLUT._default.png

Input Fields

inImage

name: inImage, type: Image, deprecated name: input0

Input image with frame-specific or shared (or without, equivalent to a 0/1 shared) modality LUT.

Output Fields

outImage

name: outImage, type: Image, deprecated name: output0

Output image with global (aka. shared) Modality LUT.

Parameter Fields

Visible Fields

Update

name: update, type: Trigger

Initiates update of all output field values.

Clear

name: clear, type: Trigger

Clears all output field values to a clean initial state.

On Input Change Behavior

name: onInputChangeBehavior, type: Enum, default: Clear, deprecated name: autoUpdateMode,shouldAutoUpdate,shouldUpdateAutomatically

Declares how the module should react if a value of an input field changes.

Values:

Title Name Deprecated Name
Update Update AutoUpdate,TRUE
Clear Clear AutoClear,FALSE

[]

name: updateDone, type: Trigger, persistent: no

Notifies that an update was performed (Check status interface fields to identify success or failure).

Has Valid Output

name: hasValidOutput, type: Bool, persistent: no, deprecated name: outputValid,valid

Indicates validity of output field values (success of computation).

Status Code

name: statusCode, type: Enum, persistent: no

Reflects module’s status (successful or failed computations) as one of some predefined enumeration values.

Values:

Title Name
Ok Ok
Invalid input object Invalid input object
Invalid input parameter Invalid input parameter
Internal error Internal error

Status Message

name: statusMessage, type: String, persistent: no

Gives additional, detailed information about status code as human-readable message.

Global Intercept

name: inOutputIntercept, type: Double, default: 0, deprecated name: outputIntercept

Sets the user defined intercept value for the output.

Global Slope

name: inOutputSlope, type: Double, default: 1, deprecated name: outputSlope

Sets the user defined slope value.

Voxel Data Type

name: inOutputDataTypeSelection, type: Enum, default: Int16, deprecated name: inOutputTypeSelect,typeSelect

Defines the data type for the output image.

Values:

Title Name
Automatic Automatic
Input Data Type Input Data Type
UInt8 UInt8
Int8 Int8
UInt16 UInt16
Int16 Int16
UInt32 UInt32
Int32 Int32
Float Float
Double Double

Clamp values below

name: inClampToUserMin, type: Bool, default: FALSE, deprecated name: inUseUserMin,useUserMin

If checked, the data is clamped to the user-defined upper bound Lower Bound.

Lower Bound

name: inUserMin, type: Double, default: -2048, deprecated name: userMin

Can be used for clamping and/or setting a user defined minimum image value. See also Clamp values below and Set as output minimum

Set as output minimum

name: inUseUserMinAsOutputMin, type: Bool, default: FALSE, deprecated name: useUserMinAsOutputMin

If checked, the user minimum Lower Bound is set as output minimum value.

Clamp values above

name: inClampToUserMax, type: Bool, default: FALSE, deprecated name: inUseUserMax,useUserMax

If checked, the data is clamped to the user-defined upper bound Upper Bound.

Upper Bound

name: inUserMax, type: Double, default: 6143, deprecated name: userMax

Can be used for clamping and/or setting a user defined maximum image value. See also Clamp values above and Set as output maximum

Set as output maximum

name: inUseUserMaxAsOutputMax, type: Bool, default: FALSE, deprecated name: useUserMaxAsOutputMax

If checked, useUserMax is automatically enabled and the user maximum is applied as output maximum.

Input Intercept

name: outInputIntercept, type: String, persistent: no, deprecated name: inputIntercept

RescaleIntercept of input image. Will show the value for shared RescaleIntercept, and (frame specific) for frame-specific values.

Input Slope

name: outInputSlope, type: String, persistent: no, deprecated name: inputSlope

RescaleSlope of input image. Will show the value for shared RescaleSlope, and (frame specific) for frame-specific values.

Input Data Type

name: outInputDataType, type: String, persistent: no, deprecated name: inputType,outInputType

Data type of input image.

Input Rescale Type

name: outInputRescaleType, type: String, persistent: no, deprecated name: inputRescaleType

Displays the value of the DICOM tag “RescaleType” (0028,1054) if present, or “n/a” otherwise. Not used by the module, just displayed for user information.

Input Minimum

name: outInputMin, type: Double, persistent: no, deprecated name: inputMin

Minimum voxel value of input image.

Input Maximum

name: outInputMax, type: Double, persistent: no, deprecated name: inputMax

Maximum voxel value of input image

Output Minimum

name: outMin, type: Double, persistent: no, deprecated name: outputMin

Minimum voxel value of output image

Output Maximum

name: outMax, type: Double, persistent: no, deprecated name: outputMax

Maximum voxel value of output image

Output Data Type

name: outOutputDataType, type: String, persistent: no, deprecated name: outputType,outType

Data type of output image.

Hidden Fields

doNotClearOnFailedUpdate

name: doNotClearOnFailedUpdate, type: Bool, persistent: no

Prevents automated clear after update failed. This does not affect status fields. It enables the developer to analyze module’s state after failure.