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 #ifndef DVPSGAL_H
00031 #define DVPSGAL_H
00032
00033 #include "dcmtk/config/osconfig.h"
00034 #include "dcmtk/dcmdata/dcitem.h"
00035 #include "dcmtk/dcmpstat/dvpstyp.h"
00036
00037 class DVPSGraphicAnnotation;
00038 class DVPSTextObject;
00039 class DVPSGraphicObject;
00040
00046 class DVPSGraphicAnnotation_PList
00047 {
00048 public:
00050 DVPSGraphicAnnotation_PList();
00051
00053 DVPSGraphicAnnotation_PList(const DVPSGraphicAnnotation_PList& copy);
00054
00059 DVPSGraphicAnnotation_PList *clone() { return new DVPSGraphicAnnotation_PList(*this); }
00060
00062 virtual ~DVPSGraphicAnnotation_PList();
00063
00073 OFCondition read(DcmItem &dset);
00074
00081 OFCondition write(DcmItem &dset);
00082
00087 void clear();
00088
00096 void renameLayer(const char *oldName, const char *newName);
00097
00102 void removeLayer(const char *name);
00103
00107 void cleanupLayers();
00108
00114 OFBool usesLayerName(const char *name);
00115
00123 size_t getNumberOfTextObjects(const char *layer, const char *instanceUID, unsigned long frame);
00124
00134 DVPSTextObject *getTextObject(const char *layer, const char *instanceUID, unsigned long frame, size_t idx);
00135
00151 DVPSTextObject *addTextObject(
00152 const char *layer,
00153 const char *sopclassUID,
00154 const char *instanceUID,
00155 unsigned long frame,
00156 DVPSObjectApplicability applicability,
00157 DVPSTextObject *text=NULL);
00158
00167 OFCondition removeTextObject(const char *layer, const char *instanceUID, unsigned long frame, size_t idx);
00168
00180 OFCondition moveTextObject(
00181 const char *old_layer,
00182 const char *sopclassUID,
00183 const char *instanceUID,
00184 unsigned long frame,
00185 size_t idx,
00186 DVPSObjectApplicability applicability,
00187 const char *new_layer);
00188
00196 size_t getNumberOfGraphicObjects(const char *layer, const char *instanceUID, unsigned long frame);
00197
00207 DVPSGraphicObject *getGraphicObject(const char *layer, const char *instanceUID, unsigned long frame, size_t idx);
00208
00223 DVPSGraphicObject *addGraphicObject(
00224 const char *layer,
00225 const char *sopclassUID,
00226 const char *instanceUID,
00227 unsigned long frame,
00228 DVPSObjectApplicability applicability,
00229 DVPSGraphicObject *graphic=NULL);
00230
00239 OFCondition removeGraphicObject(const char *layer, const char *instanceUID, unsigned long frame, size_t idx);
00240
00252 OFCondition moveGraphicObject(
00253 const char *old_layer,
00254 const char *sopclassUID,
00255 const char *instanceUID,
00256 unsigned long frame,
00257 size_t idx,
00258 DVPSObjectApplicability applicability,
00259 const char *new_layer);
00260
00261 private:
00262
00264 DVPSGraphicAnnotation_PList& operator=(const DVPSGraphicAnnotation_PList&);
00265
00268 OFList<DVPSGraphicAnnotation *> list_;
00269
00270 };
00271
00272 #endif
00273
00274
00275
00276
00277
00278
00279
00280
00281
00282
00283
00284
00285
00286
00287
00288
00289
00290
00291
00292
00293
00294
00295
00296
00297
00298
00299
00300
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310
00311
00312
00313
00314
00315
00316
00317
00318