⚠️ This is an unofficial mirror, not affiliated with DCMTK / OFFIS. For authoritative information, see the original page (https://support.dcmtk.org/docs/mod_dcmpstat.html).

dcmpstat: a presentation state library and utility apps

This module contains classes that implement a high-level API for the DICOM Softcopy Grayscale Presentation State Storage SOP Class. It also contains various support classes that are used by DICOMscope, a free DICOM viewer that has been developed as a demonstrator for presentation states. See https://dicom.offis.de/en/dicomscope/

The main interface classes are:

Tools

This module contains the following command line tools:

Examples

The following example shows how to create a default presentation state for a DICOM image:

DcmFileFormat infile;

DcmFileFormat outfile;

if (infile.loadFile("image.dcm").good())

{

DVPresentationState pstate; // presentation state handler

if (pstate.createFromImage(*infile.getDataset()).good())

{

// serialize presentation state into DICOM data set structure

if (pstate.write(*outfile.getDataset(), OFFalse).good())

{

// and write to file

outfile.saveFile("gsps.dcm", EXS_LittleEndianExplicit);

}

}

}

The following example shows how to apply the grayscale transformation pipeline from a presentation state to a DICOM image:

DcmFileFormat imagefile;

DcmFileFormat gspsfile;

if (imagefile.loadFile("image.dcm").good() &&

gspsfile.loadFile("gsps.dcm").good())

{

DVPresentationState pstate; // presentation state handler

if (pstate.read(*gspsfile.getDataset()).good()) // parse gsps object

{

// attach presentation state to image data

if (pstate.attachImage(&imagefile, OFFalse).good())

{

const void *pixel; // pointer to pixel data, one byte per pixel

unsigned long width; // width of image bitmap

unsigned long height; // height of image bitmap

if (pstate.getPixelData(pixel, width, height).good())

{

/ do something useful with the pixel data /

}

pstate.detachImage(); // release connection between GSPS and image

}

}

}