This file is indexed.

/usr/include/dcmtk/dcmpstat/dvpsov.h is in libdcmtk-dev 3.6.1~20150924-5.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
/*
 *
 *  Copyright (C) 1998-2012, 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:
 *    classes: DVPSOverlay
 *
 */

#ifndef DVPSOV_H
#define DVPSOV_H

#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
#include "dcmtk/dcmdata/dctk.h"
#include "dcmtk/dcmpstat/dpdefine.h"

class DicomImage;

/** an overlay contained in a presentation state (internal use only).
 *  This class manages the data structures comprising a single overlay
 *  (one instance of the Overlay Plane Module repeating elements)
 *  that is contained in a Presentation State object.
 */

class DCMTK_DCMPSTAT_EXPORT DVPSOverlay
{
public:
  /// default constructor
  DVPSOverlay();

  /// copy constructor
  DVPSOverlay(const DVPSOverlay& copy);

  /** clone method.
   *  @return a pointer to a new DVPSOverlay object containing
   *  a copy of this object.
   */
  DVPSOverlay *clone() const { return new DVPSOverlay(*this); }

  /// destructor
  virtual ~DVPSOverlay();

  /** reads the specified overlay group from a DICOM dataset.
   *  The DICOM elements of the Overlay Plane module are copied
   *  from the dataset to this object. The OverlayData element, which is
   *  optional in the Overlay Plane Module but required for presentation states,
   *  must be present.
   *  The completeness of the overlay plane (presence of all required elements,
   *  value multiplicity) is checked.
   *  If this method returns an error code, the object is in undefined state afterwards.
   *  @param dset the DICOM dataset from which the overlay is to be read
   *  @param ovGroup the lower byte of the overlay group to be read
   *  @param asGroup the lower byte of the overlay group to be assigned to the
   *    overlay plane in the presentation state. Default: identical to ovGroup.
   *  @return EC_Normal if successful, an error code otherwise.
   */
  OFCondition read(DcmItem &dset, Uint8 ovGroup, Uint8 asGroup=0xFF);

  /** writes the overlay plane managed by this object to a DICOM dataset.
   *  Copies of the DICOM element managed by this object are inserted into
   *  the DICOM dataset.
   *  @param dset the DICOM dataset to which the overlay is written
   *  @return EC_Normal if successful, an error code otherwise.
   */
  OFCondition write(DcmItem &dset);

  /** get group number of overlay repeating group managed by this object.
   *  @return the lower byte of the overlay group
   */
  Uint8 getOverlayGroup() const { return overlayGroup; }

  /** sets the group number for the overlay repeating group managed
   *  by this object.
   *  @param newGroup lower byte of the repeating group number.
   */
  void setOverlayGroup(Uint8 newGroup) { overlayGroup = newGroup; }

  /** checks if the overlay is suitable as a bitmap shutter
   *  for an image with the given image size. Checks overlay type,
   *  origin and size.
   *  @param x image width in pixels
   *  @param y image height in pixels
   *  @return OFTrue if the specified overlay group matches the image size.
   */
  OFBool isSuitableAsShutter(unsigned long x, unsigned long y);

  /** gets the overlay label if present.
   *  If the label string is absent, this method returns NULL.
   *  @return overlay label
   */
  const char *getOverlayLabel();

  /** gets the overlay description if present.
   *  If the label string is absent, this method returns NULL.
   *  @return overlay description
   */
  const char *getOverlayDescription();

  /** checks whether this overlay is ROI type.
   *  @return OFTrue if overlay is ROI, OFFalse if overlay is Graphic.
   */
  OFBool isROI();

  /** retrieve origin and size values for this overlay
   *  @param originX horizontal origin returned in this parameter
   *  @param originY vertical origin returned in this parameter
   *  @param sizeX horizontal size returned in this parameter
   *  @param sizeY vertical size returned in this parameter
   *  @return EC_Normal if successful, an error code otherwise
   */
  OFCondition getValues(
    Sint16& originX,
    Sint16& originY,
    Uint16& sizeX,
    Uint16& sizeY);

  /// return reference to overlay data
  DcmOverlayData& getData() { return overlayData; }

  /// return reference to overlay label
  DcmLongString& getLabel() { return overlayLabel; }

  /// return reference to overlay description
  DcmLongString& getDescription() { return overlayDescription; }

private:

  /// private undefined assignment operator
  DVPSOverlay& operator=(const DVPSOverlay&);

  /// lower byte of the overlay repeating group managed by this object
  Uint8                    overlayGroup;
  /// VR=US, VM=1, Type=1
  DcmUnsignedShort         overlayRows;
  /// VR=US, VM=1, Type=1
  DcmUnsignedShort         overlayColumns;
  /// VR=CS, VM=1, Type=1
  DcmCodeString            overlayType;
  /// VR=SS, VM=2, Type=1
  DcmSignedShort           overlayOrigin;
  /// VR=US, VM=1, Type=1
  DcmUnsignedShort         overlayBitsAllocated;
  /// VR=US, VM=1, Type=1
  DcmUnsignedShort         overlayBitPosition;
  /// VR=OW, VM=1, Type=1C
  DcmOverlayData           overlayData;
  /// VR=LO, VM=1, Type=3
  DcmLongString            overlayDescription;
  /// VR=LO, VM=1, Type=3
  DcmLongString            overlayLabel;

};

#endif