ImageGear for C and C++ on Linux v18.10 - Updated
Presentation State Objects
User Guide > How to Work with... > Formats with Additional Functionality > DICOM > Presentation State Objects

Presentation State (PS) objects serve the following purposes:

Presentation State object files do not include actual images, but reference one or more images.

Presentation State object files, in addition to LUTs, display parameters, and annotations, contain other tags, such as Patient/Study/Series info, Referenced Image UIDs, etc. ImageGear provides read/write access to these tags.

This section provides information about the following:

Consistent Display of Images

DICOM standard introduces the Standardized Display System. A Standardized Display System may be a printer, a monitor or some other display device which has been calibrated according to the Grayscale Standard Display Function (GSDF). The main feature of such display system is that throughout its display range, equal differences in digital input values correspond to visually equal differences in luminosity. Two Standardized Display Systems will always show the same detail in an image, even if their physical characteristics are different.

The values that can be used as input to a Standardized Display System are called "Presentation Values" ("P-Values"). To map image pixel intensities into P-Values, Presentation Look-Up Table ("P-LUT") is used. It is applied after Modality and VOI LUTs.

Presentation LUT is stored in a Presentation State DataSet.

If a display device is not physically calibrated to comply with GSDF, but its characteristic curve (a table that lists luminosities for each digital input value) is known, it can be calibrated at the software level. In that case, P-Values shall be used as input to a GSDF LUT, which will map them to the device's input values according to GSDF. Thus, a non-standardized device together with its GSDF LUT can be considered as Standardized Display System.

ImageGear Medical component allows you to build a GSDF LUT from a device's Characteristic Curve.

ImageGear uses all available LUTs (Modality LUT, VOI LUT, Presentation LUT and GSDF LUT), to build the general 16x8 or 8x8 LUT that maps image pixel values into display input values.

Grayscale Contrast Transformations

Presentation State DataSet may include VOI and Modality LUTs. Their usage is the same as in normal DICOM images. If either of these LUTs is present, it overrides the LUT found in the image.

Geometric Transformations

Presentation State DataSet may include Rectangle of Interest, scale mode (True size, Scale to Fit, Magnify), and orientation (Rotate, Flip).

Annotations

Annotation objects include: Text box, Point, Polyline, Spline, Circle, Ellipse. Graphical objects can be filled or not filled. Annotations can be grouped into layers.

Working with Presentation State Objects

You can load Presentation State files in the same way as you load normal DICOM images. However, since PS files do not contain an image, HIGEAR will be set to an empty image (DIB.biCompression |= IG_BI_EMPTY). Data Set of such image is accessible through Medical API. Such images can also be saved in the same way as normal DICOM images.

A HIGEAR containing a Presentation State DataSet can be "applied" to another HIGEAR that contains an image. This operation applies display and annotation settings from Presentation state onto the target image. In the opposite way, display settings and annotations can be exported from an image into another HIGEAR.

When you apply Presentation State to an image, ImageGear updates its 16x8 or 8x8 LUT using the Presentation LUT. However, it does not store Presentation LUT with that image. If you would like to work with Presentation LUT, you should allocate memory for it in your application. Pass Presentation LUT as a parameter to medical display functions. You can also save Presentation LUT to a Presentation State data set.

If a Characteristic Curve is available for a display, you can build a GSDF LUT from it, and use it in calls to medical Presentation State and Display functions. Otherwise, pass a NULL to GSDF LUT parameter.