/* * * Copyright (C) 1998-2010, OFFIS e.V. * All rights reserved. See COPYRIGHT file for details. * * This software and supporting documentation were developed by * * OFFIS e.V. * R&D Division Health * Escherweg 2 * D-26121 Oldenburg, Germany * * * Module: dcmpstat * * Author: Marco Eichelberg * * Purpose: * enums: DVPSoverlayActivation, DVPSVOIActivation, DVPSGraphicLayering * DVPSPresentationLUTType, DVPSRotationType, * DVPSShutterType * */ #ifndef DVPSTYP_H #define DVPSTYP_H #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ #define INCLUDE_CSTDIO #include "dcmtk/ofstd/ofstdinc.h" /** describes how to handle overlays when creating a default presentation state * for an image. */ enum DVPSoverlayActivation { /** ignore overlays even if present in the image. * A presentation state without any embedded or activated overlays * is created. */ DVPSO_ignoreOverlays, /** if overlays are present in the image, activate but do not copy them. * If the image contains overlays, overlay activation elements are * created in the presentation state object. The overlays remain in the image. */ DVPSO_referenceOverlays, /** if overlays are present in the image, copy them. * If the image contains overlays which are not embedded in the pixel * data but use the OverlayData element, the overlays are copied to the * presentation state and activated. * Overlays that are embedded in the image pixel data are not copied * but also activated. */ DVPSO_copyOverlays }; /** describes how to handle VOI transformations when creating a default presentation state * for an image. */ enum DVPSVOIActivation { /** ignore VOI transformations even if present in the image. * The presentation state will not contain any VOI transformation. */ DVPSV_ignoreVOI, /** select the first VOI window if present, VOI LUT alternatively. * If the image contains one or more settings for window center and * window width, the first window center/width is copied to the presentation * state. If the image contains no window center/width but does contain * one or more VOI LUTs, the first VOI LUT is copied to the presentation * state. */ DVPSV_preferVOIWindow, /** select the first VOI LUT if present, VOI Window alternatively. * If the image contains one or more VOI LUTs, * the first VOI LUT is copied to the presentation * state. If the image contains no VOI LUT but does contain * one or more settings for window center/width, the first * window center and width are copied to the presentation state. */ DVPSV_preferVOILUT }; /** describes how to handle layering of curves and overlays * when creating a default presentation state for an image. */ enum DVPSGraphicLayering { /** put all overlays and curves into a single graphic layer. * If curves and/or overlays are present, a single graphic layer is * created and all curves and overlays are assigned to this single layer. */ DVPSG_oneLayer, /** create one graphic layer for overlays and one graphic layer for curves on top of that. * If overlays are present, one layer containing all overlays is created. * If curves are present, a different layer containing all curves is created. * If both curves and overlays are present, the curves are assigned the higher layer order. */ DVPSG_twoLayers, /** create individual layers for each referenced element, curves on top of overlays. * For each overlay and curve present, a separate graphic layer is created. * The curve layers have higher order than the overlay layers. */ DVPSG_separateLayers }; /** describes a type of presentation LUT that is currently * being used or set in a presentation state. */ enum DVPSPresentationLUTType { /** Presentation LUT Shape with value 'IDENTITY' */ DVPSP_identity, /** Presentation LUT Shape with value 'INVERSE' */ DVPSP_inverse, /** Presentation LUT look up table */ DVPSP_table, /** Presentation LUT Shape with value 'LIN OD' */ DVPSP_lin_od }; /** some Print SCPs which support Presentation LUTs require that the number * of entries in a Presentation LUT matches the bit depth of the image pixel * data (4096 entries for 12 bit pixel data, 256 entries for 8 bit pixel * data). An instance of this enumeration describes the characteristics * of a Presentation LUT with regard to this matching rule. */ enum DVPSPrintPresentationLUTAlignment { /** Presentation LUT Shape, matches all kinds of image data */ DVPSK_shape, /** Presentation LUT with 256 entries and first entry mapped to 0, * matches 8 bit image data */ DVPSK_table8, /** Presentation LUT with 4096 entries and first entry mapped to 0, * matches 12 bit image data */ DVPSK_table12, /** Presentation LUT Shape with number of entries other than 256 or 4096 * or with first entry mapped to anything but 0. */ DVPSK_other }; /** describes the rotation status of a presentation state. */ enum DVPSRotationType { /** no rotation */ DVPSR_0_deg, /** rotation of 90 degrees */ DVPSR_90_deg, /** rotation of 180 degrees */ DVPSR_180_deg, /** rotation of 270 degrees */ DVPSR_270_deg }; /** describes the different types of display shutters */ enum DVPSShutterType { /** rectangular shutter */ DVPSU_rectangular, /** circular shutter */ DVPSU_circular, /** polygonal shutter */ DVPSU_polygonal, /** bitmap shutter */ DVPSU_bitmap }; /** describes the different types of annotation units */ enum DVPSannotationUnit { /** pixels */ DVPSA_pixels, /** fraction of specified display area */ DVPSA_display }; /** describes the specific character set of a DICOM element. * The defined terms for code extension techniques are * not supported. */ enum DVPScharacterSet { /** ISO 646 (ISO-IR 6): ASCII */ DVPSC_ascii, /** ISO-IR 100: Latin alphabet No. 1 */ DVPSC_latin1, /** ISO-IR 101: Latin alphabet No. 2 */ DVPSC_latin2, /** ISO-IR 109: Latin alphabet No. 3 */ DVPSC_latin3, /** ISO-IR 110: Latin alphabet No. 4 */ DVPSC_latin4, /** ISO-IR 148: Latin alphabet No. 5 */ DVPSC_latin5, /** ISO-IR 144: Cyrillic */ DVPSC_cyrillic, /** ISO-IR 127: Arabic */ DVPSC_arabic, /** ISO-IR 126: Greek */ DVPSC_greek, /** ISO-IR 138: Hebrew */ DVPSC_hebrew, /** ISO-IR 13: Japanese (Katakana/Romaji) */ DVPSC_japanese, /** unrecognized term or code extension */ DVPSC_other }; /** describes the different types of graphic objects */ enum DVPSGraphicType { /** single point */ DVPST_point, /** non-interpolated polygonal line */ DVPST_polyline, /** interpolated polygonal line */ DVPST_interpolated, /** circle */ DVPST_circle, /** ellipse */ DVPST_ellipse }; /** describes a curve type */ enum DVPSCurveType { /** region of interest (ROI) - a closed polygonal line */ DVPSL_roiCurve, /** polyline - an open polygonal line */ DVPSL_polylineCurve }; /** describes the horizontal justification of a text box */ enum DVPSTextJustification { /** left justified text */ DVPSX_left, /** right justified text */ DVPSX_right, /** centered text */ DVPSX_center }; /** describes the images and frames to which * an object (graphic layer, displayed area selection or VOI) is applicable */ enum DVPSObjectApplicability { /** the object only applies to the current (selected) frame of the current (attached) image */ DVPSB_currentFrame, /** the object applies to all frames of the current (attached) image */ DVPSB_currentImage, /** the object applies to all frames of all referenced images */ DVPSB_allImages }; /** describes the presentation size mode for a displayed area selection */ enum DVPSPresentationSizeMode { /** the displayed area should be scaled to fill the screen */ DVPSD_scaleToFit, /** the displayed area should be scaled to its true physical size */ DVPSD_trueSize, /** the displayed area should be scaled to a fixed scaling factor */ DVPSD_magnify }; /** describes the service type supported by a DICOM communication peer */ enum DVPSPeerType { /** Storage SCP peer */ DVPSE_storage, /** local Storage SCP */ DVPSE_receiver, /** remote Print Management SCP */ DVPSE_printRemote, /** local Print Management SCP */ DVPSE_printLocal, /** local or remote Print Management SCP */ DVPSE_printAny, /** any type of peer */ DVPSE_any }; /** describes the orientation (portrait or landscape) of a basic film box */ enum DVPSFilmOrientation { /** portrait orientation */ DVPSF_portrait, /** landscape orientation */ DVPSF_landscape, /** printer default */ DVPSF_default }; /** describes the trim mode (printing of borders around image boxes) for a basic film box */ enum DVPSTrimMode { /** print with trims (borders) */ DVPSH_trim_on, /** print without trims (borders) */ DVPSH_trim_off, /** printer default */ DVPSH_default }; /** describes the decimate/crop behaviour for a basic image box */ enum DVPSDecimateCropBehaviour { /** a magnification factor less than one to be applied to the image. */ DVPSI_decimate, /** some image rows and/or columns are to be deleted before printing. */ DVPSI_crop, /** the SCP shall not crop or decimate */ DVPSI_fail, /** printer default */ DVPSI_default }; /** describes the type of display function */ enum DVPSDisplayTransform { /** first entry */ DVPSD_first=0, /** Grayscale Standard Display Function (defined in DICOM part 14) */ DVPSD_GSDF=DVPSD_first, /** CIE Lab */ DVPSD_CIELAB=1, /** no display transform */ DVPSD_none=2, /** number of display transforms */ DVPSD_max=DVPSD_none }; /** describes the result of an association negotiation */ enum DVPSAssociationNegotiationResult { /** negotiation was successful */ DVPSJ_success, /** negotiation was unsuccessful */ DVPSJ_error, /** peer requests termination of server process */ DVPSJ_terminate }; /** describes the bit depth of a Basic Grayscale Image Box */ enum DVPSImageDepth { /** not yet assigned */ DVPSN_undefined, /** 8 bit */ DVPSN_8bit, /** 12 bit */ DVPSN_12bit }; /** describes the certificate verification policy for TLS association negotiation */ enum DVPSCertificateVerificationType { /** verify peer certificate, refuse transmission if absent */ DVPSQ_require, /** verify peer certificate if present */ DVPSQ_verify, /** don't verify peer certificate */ DVPSQ_ignore }; /** describes the types of objects handled by the dcmpstat signature routines */ enum DVPSObjectType { /** structured report */ DVPSS_structuredReport, /** image */ DVPSS_image, /** grayscale softcopy presentation state */ DVPSS_presentationState }; /** describes the types of objects handled by the dcmpstat signature routines */ enum DVPSSignatureStatus { /** no digital signatures are present */ DVPSW_unsigned, /** one or more digital signatures are present and have been successfully verified */ DVPSW_signed_OK, /** one or more digital signatures are present, and all of them are valid. * However, at least one of them was created * with a certificate issued by an unknown CA. */ DVPSW_signed_unknownCA, /** one or more digital signatures are present and at least one of them * could not be successfully verified because it was corrupt. */ DVPSW_signed_corrupt }; /** describes the mode to verify and sign structured reports */ enum DVPSVerifyAndSignMode { /** verify the document only */ DVPSY_verify, /** verify and digitally sign the document (apart from VerifyingObserver and SOPInstanceUID) */ DVPSY_verifyAndSign, /** verify and digitally sign the entire document (finalize it) */ DVPSY_verifyAndSign_finalize }; #endif