This file is indexed.

/usr/include/dcmtk/dcmpstat/dvpsspl.h is in libdcmtk-dev 3.6.2-3build3.

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
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
/*
 *
 *  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: DVPSStoredPrint_PList
 *
 */

#ifndef DVPSSPL_H
#define DVPSSPL_H

#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
#include "dcmtk/dcmpstat/dvpstyp.h"
#include "dcmtk/dcmpstat/dpdefine.h"
#include "dcmtk/ofstd/oflist.h"
#include "dcmtk/dcmdata/dcvrus.h"
#include "dcmtk/dcmdata/dcvrui.h"
#include "dcmtk/dcmnet/dimse.h"

class DVInterface;
class DVPSStoredPrint;
class DVConfiguration;
class DVPSPresentationLUT_PList;

/** a list of stored print objects, each of which manages a single Basic
 *  Film Box in a Print SCP.
 */
class DCMTK_DCMPSTAT_EXPORT DVPSStoredPrint_PList
{
public:
  /// default constructor
  DVPSStoredPrint_PList();

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

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

  /// destructor
  virtual ~DVPSStoredPrint_PList();

  /** reset the object to initial state.
   *  After this call, the object is in the same state as after
   *  creation with the default constructor.
   */
  void clear();

  /** get number of stored print objects in this list.
   *  @return the number of stored print objects.
   */
  size_t size() const { return list_.size(); }

  /** adds a Stored Print object to the list of managed objects. The stored
   *  print object becomes owned by this object and is destroyed upon
   *  destruction of the list.
   *  @param newSP Stored Print object to be added.
   */
  void insert(DVPSStoredPrint *newSP) { if (newSP) list_.push_back(newSP); }

  /** performs a Print SCP Basic Film Box N-SET operation.
   *  The results of the N-SET operation are stored in the
   *  objects passed as rsp and rspDataset.
   *  @param cfg config file facility
   *  @param cfgname symbolic printer name in config file
   *  @param rq N-SET request message
   *  @param rqDataset N-SET request dataset
   *  @param rsp N-SET response message
   *  @param rspDataset N-SET response dataset passed back in this parameter
   *  @param presentationLUTnegotiated
   *    OFTrue if support for the Presentation LUT SOP class
   *    has been negotiated at association negotiation
   *  @param globalPresentationLUTList
   *    list of presentation LUTs managed by the Print SCP
   */
  void printSCPBasicFilmBoxSet(
    DVConfiguration& cfg,
    const char *cfgname,
    T_DIMSE_Message& rq,
    DcmDataset *rqDataset,
    T_DIMSE_Message& rsp,
    DcmDataset *& rspDataset,
    OFBool presentationLUTnegotiated,
    DVPSPresentationLUT_PList& globalPresentationLUTList);

  /** performs a Print SCP Basic Grayscale Image Box N-SET operation.
   *  The results of the N-SET operation are stored in the
   *  objects passed as rsp and rspDataset.
   *  If successful, a Hardcopy Grayscale Image object containing
   *  the image data of the N-SET request is created in the database.
   *  @param cfg config file facility
   *  @param cfgname symbolic printer name in config file
   *  @param rq N-SET request message
   *  @param rqDataset N-SET request dataset
   *  @param rsp N-SET response message
   *  @param rspDataset N-SET response dataset passed back in this parameter
   *  @param presentationLUTnegotiated
   *    OFTrue if support for the Presentation LUT SOP class
   *    has been negotiated at association negotiation
   */
  void printSCPBasicGrayscaleImageBoxSet(
    DVInterface& cfg,
    const char *cfgname,
    T_DIMSE_Message& rq,
    DcmDataset *rqDataset,
    T_DIMSE_Message& rsp,
    DcmDataset *& rspDataset,
    OFBool presentationLUTnegotiated);

  /** performs a Print SCP Basic Film Box N-ACTION operation.
   *  The results of the N-ACTION operation are stored in the
   *  object passed as rsp.
   *  If successful, a Stored Print object containing the film box
   *  hierarchy is created in the database.
   *  @param cfg config file facility
   *  @param cfgname symbolic printer name in config file
   *  @param rq N-ACTION request message
   *  @param rsp N-ACTION response message
   *  @param globalPresentationLUTList list of presentation LUTs managed by the Print SCP
   */
  void printSCPBasicFilmBoxAction(
    DVInterface& cfg,
    const char *cfgname,
    T_DIMSE_Message& rq,
    T_DIMSE_Message& rsp,
    DVPSPresentationLUT_PList& globalPresentationLUTList);

  /** performs a Print SCP Basic Film Session N-ACTION operation.
   *  The results of the N-ACTION operation are stored in the
   *  object passed as rsp.
   *  If successful, one Stored Print object for each film box
   *  in the film session is created in the database.
   *  @param cfg config file facility
   *  @param cfgname symbolic printer name in config file
   *  @param rsp N-ACTION response message
   *  @param globalPresentationLUTList list of presentation LUTs managed by the Print SCP
   */
  void printSCPBasicFilmSessionAction(
    DVInterface& cfg,
    const char *cfgname,
    T_DIMSE_Message& rsp,
    DVPSPresentationLUT_PList& globalPresentationLUTList);

  /** performs a Print SCP basic film box N-DELETE operation.
   *  The results of the N-DELETE operation are stored in the object passed as rsp.
   *  @param rq N-DELETE request message
   *  @param rsp N-DELETE response message
   */
  void printSCPBasicFilmBoxDelete(T_DIMSE_Message& rq, T_DIMSE_Message& rsp);

  /** checks whether a film box object with the given SOP instance UID
   *  already exists.
   *  @param uid uid to be checked
   *  @return OFTrue if found, OFFalse otherwise
   */
  OFBool haveFilmBoxInstance(const char *uid);

  /** checks whether the Presentation LUT with the given UID
   *  is referenced by any Stored Print object in this list
   *  on the film box level.
   *  @param uid uid to be compared
   *  @return OFTrue if equal, OFFalse otherwise
   */
  OFBool usesPresentationLUT(const char *uid);

  /** checks whether the given Presentation LUT type could be used together
   *  with all image boxes in all film boxes on a Print SCP that requires a matching
   *  alignment between a Presentation LUT and the image pixel data.
   *  @param align LUT alignment type
   *  @return OFTrue if matching, OFFalse otherwise
   */
  OFBool matchesPresentationLUT(DVPSPrintPresentationLUTAlignment align) const;

  /** replaces the settings for illumination, reflected ambient light and
   *  referenced Presentation LUT in all film boxes in this list.
   *  Used by a Print SCP if Presentation LUT is implemented on Film Session
   *  level.
   *  @param newIllumination new value for illumination
   *  @param newReflectedAmbientLight new value for reflectedAmbientLight
   *  @param newReferencedPLUT new value for referenced presentation LUT instance UID
   *  @param newAlignment new alignment type of active presentation LUT
   */
  void overridePresentationLUTSettings(
      DcmUnsignedShort& newIllumination,
      DcmUnsignedShort& newReflectedAmbientLight,
      DcmUniqueIdentifier& newReferencedPLUT,
      DVPSPrintPresentationLUTAlignment newAlignment);

private:

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

  /** the list maintained by this object
   */
  OFList<DVPSStoredPrint *> list_;
};

#endif