/usr/include/dcmtk/dcmpstat/dvpsgal.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 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 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 | /*
*
* 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: DVPSGraphicAnnotation_PList
*
*/
#ifndef DVPSGAL_H
#define DVPSGAL_H
#include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */
#include "dcmtk/dcmdata/dcitem.h"
#include "dcmtk/dcmpstat/dvpstyp.h" /* for enum types */
#include "dcmtk/dcmpstat/dpdefine.h"
class DVPSGraphicAnnotation;
class DVPSTextObject;
class DVPSGraphicObject;
/** the list of graphic annotations contained in a presentation state (internal use only).
* This class manages the data structures comprising the complete
* Graphic Annotation Sequence in a Presentation State object.
*/
class DCMTK_DCMPSTAT_EXPORT DVPSGraphicAnnotation_PList
{
public:
/// default constructor
DVPSGraphicAnnotation_PList();
/// copy constructor
DVPSGraphicAnnotation_PList(const DVPSGraphicAnnotation_PList& copy);
/** clone method.
* @return a pointer to a new DVPSGraphicAnnotation_PList object containing
* a deep copy of this object.
*/
DVPSGraphicAnnotation_PList *clone() { return new DVPSGraphicAnnotation_PList(*this); }
/// destructor
virtual ~DVPSGraphicAnnotation_PList();
/** reads a list of graphic annotations from a DICOM dataset.
* The DICOM elements of the Graphic Annotation Sequence 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 dataset from which the GraphicAnnotationSequence is to be read
* @return EC_Normal if successful, an error code otherwise.
*/
OFCondition read(DcmItem &dset);
/** writes the list of graphic annotations managed by this object to a DICOM dataset.
* Copies of the DICOM elements managed by this object are inserted into
* the DICOM dataset.
* @param dset the dataset to which the GraphicAnnotationSequence is written
* @return EC_Normal if successful, an error code otherwise.
*/
OFCondition write(DcmItem &dset);
/** 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();
/** renames the graphic annotation layer name in all activations
* with a matching old graphic annotation layer name.
* Required to keep the presentation consistent when a
* graphic layer is renamed.
* @param oldName the old graphic annotation layer name
* @param newName the new graphic annotation layer name
*/
void renameLayer(const char *oldName, const char *newName);
/** deletes all graphic annotation layers belonging to the given
* graphic annotation layer name.
* @param name name of the graphic annotation layers to be deleted
*/
void removeLayer(const char *name);
/** deletes all graphic annotation sequence items containing
* no text and no graphic object. Called before writing a presentation state.
*/
void cleanupLayers();
/** checks if the given layer name is used for any of the
* graphic annotation layers managed by this object.
* @param name name of the layer
* @return OFTrue if name is used
*/
OFBool usesLayerName(const char *name);
/** returns the number of text objects for the given graphic layer
* that apply to the given image and frame.
* @param layer name of the graphic layer
* @param instanceUID SOP instance UID of the current image
* @param frame number of the current frame
* @return number of text objects
*/
size_t getNumberOfTextObjects(const char *layer, const char *instanceUID, unsigned long frame);
/** gets the text object (applicable to the current image and frame)
* with the given index on the given layer.
* If the text object or the graphic layer does not exist, NULL is returned.
* @param layer name of the graphic layer
* @param instanceUID SOP instance UID of the current image
* @param frame number of the current frame
* @param idx index of the text object, must be < getNumberOfTextObjects(layer)
* @return a pointer to the text object
*/
DVPSTextObject *getTextObject(const char *layer, const char *instanceUID, unsigned long frame, size_t idx);
/** creates a new text object on the given layer.
* Returns a pointer to the new text object.
* If no graphic layer with appropriate applicability exists, it is created.
* If the creation of the layer or text object fails, NULL is returned.
* @param layer name of the graphic layer
* @param sopclassUID SOP class UID of the current image
* @param instanceUID SOP instance UID of the current image
* @param frame number of the current frame
* @param applicability applicability of the new text object
* @param text the text object to be inserted. If NULL, a new text object
* is created. If a pointer to an object is passed in this parameter,
* it gets owned by this graphic annotation object and will be deleted
* upon destruction of the annotation or if this method fails (returns NULL).
* @return a pointer to the new text object
*/
DVPSTextObject *addTextObject(
const char *layer,
const char *sopclassUID,
const char *instanceUID,
unsigned long frame,
DVPSObjectApplicability applicability,
DVPSTextObject *text=NULL);
/** deletes the text object (applicable to the current image and frame) with the given index
* on the given layer.
* @param layer name of the graphic layer
* @param instanceUID SOP instance UID of the current image
* @param frame number of the current frame
* @param idx index of the text object, must be < getNumberOfTextObjects(layer)
* @return EC_Normal upon success, an error code otherwise
*/
OFCondition removeTextObject(const char *layer, const char *instanceUID, unsigned long frame, size_t idx);
/** moves the text object (applicable to the current image and frame) with the given index
* on the given layer to a different layer.
* @param old_layer name of the graphic layer on which the text object is
* @param sopclassUID SOP class UID of the current image
* @param instanceUID SOP instance UID of the current image
* @param frame number of the current frame
* @param idx index of the text object, must be < getNumberOfTextObjects(layer)
* @param applicability new applicability of the text object
* @param new_layer name of the graphic layer to which the text object is moved
* @return EC_Normal upon success, an error code otherwise
*/
OFCondition moveTextObject(
const char *old_layer,
const char *sopclassUID,
const char *instanceUID,
unsigned long frame,
size_t idx,
DVPSObjectApplicability applicability,
const char *new_layer);
/** returns the number of graphic objects for the given
* graphic layer.
* @param layer name of the graphic layer
* @param instanceUID SOP instance UID of the current image
* @param frame number of the current frame
* @return number of graphic objects
*/
size_t getNumberOfGraphicObjects(const char *layer, const char *instanceUID, unsigned long frame);
/** gets the graphic object with the given index
* on the given layer. If the graphic object or the graphic layer does
* not exist, NULL is returned.
* @param layer name of the graphic layer
* @param instanceUID SOP instance UID of the current image
* @param frame number of the current frame
* @param idx index of the graphic object, must be < getNumberOfGraphicObjects(layer)
* @return a pointer to the graphic object
*/
DVPSGraphicObject *getGraphicObject(const char *layer, const char *instanceUID, unsigned long frame, size_t idx);
/** creates a new graphic object on the given layer.
* Returns a pointer to the new graphic object. If the graphic layer
* does not exist or if the creation of the graphic object fails, NULL is returned.
* @param layer name of the graphic layer
* @param sopclassUID SOP class UID of the current image
* @param instanceUID SOP instance UID of the current image
* @param frame number of the current frame
* @param applicability applicability of the new text object
* @param graphic the graphic object to be inserted. If NULL, a new graphic object
* is created. If a pointer to an object is passed in this parameter,
* it gets owned by this graphic annotation object and will be deleted
* upon destruction of the annotation or if this method fails (returns NULL).
* @return a pointer to the new graphic object
*/
DVPSGraphicObject *addGraphicObject(
const char *layer,
const char *sopclassUID,
const char *instanceUID,
unsigned long frame,
DVPSObjectApplicability applicability,
DVPSGraphicObject *graphic=NULL);
/** deletes the graphic object with the given index
* on the given layer.
* @param layer name of the graphic layer
* @param instanceUID SOP instance UID of the current image
* @param frame number of the current frame
* @param idx index of the graphic object, must be < getNumberOfGraphicObjects(layer)
* @return EC_Normal upon success, an error code otherwise
*/
OFCondition removeGraphicObject(const char *layer, const char *instanceUID, unsigned long frame, size_t idx);
/** moves the graphic object with the given index on the given
* layer to a different layer.
* @param old_layer name of the graphic layer on which the graphic object is
* @param sopclassUID SOP class UID of the current image
* @param instanceUID SOP instance UID of the current image
* @param frame number of the current frame
* @param idx index of the graphic object, must be < getNumberOfGraphicObjects(layer)
* @param applicability new applicability of the graphic object
* @param new_layer name of the graphic layer to which the graphic object is moved
* @return EC_Normal upon success, an error code otherwise
*/
OFCondition moveGraphicObject(
const char *old_layer,
const char *sopclassUID,
const char *instanceUID,
unsigned long frame,
size_t idx,
DVPSObjectApplicability applicability,
const char *new_layer);
private:
/// private undefined assignment operator
DVPSGraphicAnnotation_PList& operator=(const DVPSGraphicAnnotation_PList&);
/** the list maintained by this object
*/
OFList<DVPSGraphicAnnotation *> list_;
};
#endif
|