This file is indexed.

/usr/include/dcmtk/dcmpstat/dvpsrs.h is in libdcmtk-dev 3.6.1~20160216-4.

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
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
/*
 *
 *  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: DVPSReferencedSeries
 *
 */

#ifndef DVPSRS_H
#define DVPSRS_H

#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
#include "dcmtk/dcmpstat/dvpsril.h"   /* for DVPSReferencedImage_PList */
#include "dcmtk/dcmdata/dcvrae.h"
#include "dcmtk/dcmdata/dcvrsh.h"
#include "dcmtk/dcmdata/dcvrui.h"

/** an item of the referenced series sequence in a presentation state (internal use only).
 *  This class manages the data structures comprising one item
 *  of the Referenced Series Sequence in a Presentation State object.
 */

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

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

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

  /// destructor
  virtual ~DVPSReferencedSeries();

  /** reads an series reference from a DICOM dataset.
   *  The DICOM elements of the referenced series item are copied
   *  from the dataset to this object.
   *  The completeness of the item (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 item of the ReferencedSeriesSequence from which the data is to be read
   *  @return EC_Normal if successful, an error code otherwise.
   */
  OFCondition read(DcmItem &dset);

  /** writes the series reference 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 the item of the ReferencedSeriesSequence to which the data is written
   *  @return EC_Normal if successful, an error code otherwise.
   */
  OFCondition write(DcmItem &dset);

  /** check if the passed SOP Class UID is equal to the ones stored in this object.
   *  This method checks whether this object contains at least one image reference
   *  and whether all image references use the same SOP class UID as the one passed.
   *  If sopclassuid is empty, the referencedSOPClassUID of the first image reference
   *  is assigned to it.
   *  @param sopclassuid the SOP class UID to be validated
   *  @return OFTrue if successful, OFFalse if unsuccessful.
   */
  OFBool isValid(OFString& sopclassuid);

  /** compare SOP Instance UID.
   *  @param uid the UID to be compared
   *  @return OFTrue if the SeriesInstanceUID of this object is
   *    equal to uid, OFFalse otherwise.
   */
  OFBool isSeriesUID(const char *uid);


  /** checks if an image reference with the given SOP instance UID exists
   *  in the ReferencedImageSequence of this series reference.
   *  @param sopinstanceuid the SOP instance UID of the searched image reference
   *  @return a pointer to the matching DVPSReferencedImage if found, NULL otherwise.
   */
  DVPSReferencedImage *findImageReference(const char *sopinstanceuid);

  /** remove image reference from this series reference if present.
   *  If an image reference with a SOP instance UID corresponding to the
   *  passed UID is found, it is removed from this series reference.
   *  @param uid a pointer to the image SOP instance UID.
   */
  void removeImageReference(const char *sopinstanceuid);

  /** set Series Instance UID of this series reference.
   *  @param uid a pointer to the UID, which is copied into this object.
   */
  void setSeriesInstanceUID(const char *uid);

  /** set the optional retrieve location for this series reference.
   *  @param aetitle the retrieveAETitle, must be a valid DICOM 'AE' value. Default: value absent.
   *  @param filesetID the storageMediaFileSetID, must be a valid DICOM 'SH' value. Default: value absent.
   *  @param filesetUID the storageMediaFileSetUID, must be a valid DICOM UID. Default: value absent.
   */
  void setRetrieveLocation(const char *aetitle=NULL, const char *filesetID=NULL, const char *filesetUID=NULL);

   /** gets the retrieveAETitle for this series reference.
    *  @return retrieveAETitle if present, NULL otherwise.
    */
  const char *getRetrieveAETitle();

   /** gets the storageMediaFileSetID for this series reference.
    *  @return storageMediaFileSetID if present, NULL otherwise.
    */
  const char *getStorageMediaFileSetID();

   /** gets the storageMediaFileSetUID for this series reference.
    *  @return storageMediaFileSetUID if present, NULL otherwise.
    */
  const char *getStorageMediaFileSetUID();

  /** add image reference to this series reference.
   *  A new image reference for this series is created.
   *  The image SOP instance UID must be unique (must not yet exist
   *  as a reference in this series), otherwise an error code is returned.
   *  @param sopclassUID a pointer to the Image SOP Class UID, which is copied into
   *    the new image reference
   *  @param instanceUID a pointer to the Image SOP Instance UID, which is copied into
   *    the new image reference
   *  @param frames a list of frame numbers in DICOM IS format
   *    (integer numbers separated by '\' characters). Default: frame numbers absent.
   *    The frame numbers are required if the referenced image is a multiframe image.
   *  @return EC_Normal if successful, an error code otherwise.
   */
  OFCondition addImageReference(
    const char *sopclassUID,
    const char *instanceUID,
    const char *frames=NULL);

  /** gets the number of image references in this object.
   *  @return the number of image references.
   */
  size_t numberOfImageReferences() const { return referencedImageList.size(); }

  /** gets an image reference with the given index.
   *  @param idx index, must be < numberOfImageReferences().
   *  @param seriesUID the Series Instance UID is returned in this string
   *  @param sopclassUID the SOP Class UID is returned in this string
   *  @param instanceUID the SOP Instance UID is returned in this string
   *  @param frames the list of frames is returned in this string
   *  @param aetitle the series retrieveAETitle is returned in this string
   *  @param filesetID the series storageMediaFileSetID is returned in this string
   *  @param filesetUID the series storageMediaFileSetUID is returned in this string
   *  @return EC_Normal if successful, an error code otherwise.
   */
  OFCondition getImageReference(
    size_t idx,
    OFString& seriesUID,
    OFString& sopclassUID,
    OFString& instanceUID,
    OFString& frames,
    OFString& aetitle,
    OFString& filesetID,
    OFString& filesetUID);

private:

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

  /// Referenced Image Sequence
  DVPSReferencedImage_PList referencedImageList;
  /// VR=UI, VM=1, Type 1c
  DcmUniqueIdentifier       seriesInstanceUID;
  /// VR=AE, VM=1, Type 3
  DcmApplicationEntity      retrieveAETitle;
  /// VR=SH, VM=1, Type 3
  DcmShortString            storageMediaFileSetID;
  /// VR=UI, VM=1, Type 3
  DcmUniqueIdentifier       storageMediaFileSetUID;

};

#endif