00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #ifndef __DVPSGAL_H__
00035 #define __DVPSGAL_H__
00036
00037 #include "dcmtk/config/osconfig.h"
00038 #include "dcmtk/ofstd/oflist.h"
00039 #include "dcmtk/dcmdata/dctk.h"
00040 #include "dcmtk/dcmpstat/dvpstyp.h"
00041
00042 class DVPSGraphicAnnotation;
00043 class DVPSTextObject;
00044 class DVPSGraphicObject;
00045
00051 class DVPSGraphicAnnotation_PList
00052 {
00053 public:
00055 DVPSGraphicAnnotation_PList();
00056
00058 DVPSGraphicAnnotation_PList(const DVPSGraphicAnnotation_PList& copy);
00059
00064 DVPSGraphicAnnotation_PList *clone() { return new DVPSGraphicAnnotation_PList(*this); }
00065
00067 virtual ~DVPSGraphicAnnotation_PList();
00068
00078 OFCondition read(DcmItem &dset);
00079
00086 OFCondition write(DcmItem &dset);
00087
00092 void clear();
00093
00101 void renameLayer(const char *oldName, const char *newName);
00102
00107 void removeLayer(const char *name);
00108
00112 void cleanupLayers();
00113
00119 OFBool usesLayerName(const char *name);
00120
00128 size_t getNumberOfTextObjects(const char *layer, const char *instanceUID, unsigned long frame);
00129
00139 DVPSTextObject *getTextObject(const char *layer, const char *instanceUID, unsigned long frame, size_t idx);
00140
00156 DVPSTextObject *addTextObject(
00157 const char *layer,
00158 const char *sopclassUID,
00159 const char *instanceUID,
00160 unsigned long frame,
00161 DVPSObjectApplicability applicability,
00162 DVPSTextObject *text=NULL);
00163
00172 OFCondition removeTextObject(const char *layer, const char *instanceUID, unsigned long frame, size_t idx);
00173
00185 OFCondition moveTextObject(
00186 const char *old_layer,
00187 const char *sopclassUID,
00188 const char *instanceUID,
00189 unsigned long frame,
00190 size_t idx,
00191 DVPSObjectApplicability applicability,
00192 const char *new_layer);
00193
00201 size_t getNumberOfGraphicObjects(const char *layer, const char *instanceUID, unsigned long frame);
00202
00212 DVPSGraphicObject *getGraphicObject(const char *layer, const char *instanceUID, unsigned long frame, size_t idx);
00213
00228 DVPSGraphicObject *addGraphicObject(
00229 const char *layer,
00230 const char *sopclassUID,
00231 const char *instanceUID,
00232 unsigned long frame,
00233 DVPSObjectApplicability applicability,
00234 DVPSGraphicObject *graphic=NULL);
00235
00244 OFCondition removeGraphicObject(const char *layer, const char *instanceUID, unsigned long frame, size_t idx);
00245
00257 OFCondition moveGraphicObject(
00258 const char *old_layer,
00259 const char *sopclassUID,
00260 const char *instanceUID,
00261 unsigned long frame,
00262 size_t idx,
00263 DVPSObjectApplicability applicability,
00264 const char *new_layer);
00265
00271 void setLog(OFConsole *stream, OFBool verbMode, OFBool dbgMode);
00272
00273 private:
00274
00276 DVPSGraphicAnnotation_PList& operator=(const DVPSGraphicAnnotation_PList&);
00277
00280 OFList<DVPSGraphicAnnotation *> list_;
00281
00284 OFConsole *logstream;
00285
00288 OFBool verboseMode;
00289
00292 OFBool debugMode;
00293
00294 };
00295
00296 #endif
00297
00298
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310
00311
00312
00313
00314
00315
00316
00317
00318
00319
00320
00321
00322
00323
00324
00325
00326
00327
00328
00329
00330