00001 /* 00002 * 00003 * Copyright (C) 1998-2005, OFFIS 00004 * 00005 * This software and supporting documentation were developed by 00006 * 00007 * Kuratorium OFFIS e.V. 00008 * Healthcare Information and Communication Systems 00009 * Escherweg 2 00010 * D-26121 Oldenburg, Germany 00011 * 00012 * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY 00013 * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR 00014 * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR 00015 * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND 00016 * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. 00017 * 00018 * Module: dcmpstat 00019 * 00020 * Author: Marco Eichelberg 00021 * 00022 * Purpose: 00023 * classes: DVPSGraphicAnnotation_PList 00024 * 00025 * Last Update: $Author: meichel $ 00026 * Update Date: $Date: 2005/12/08 16:03:44 $ 00027 * CVS/RCS Revision: $Revision: 1.9 $ 00028 * Status: $State: Exp $ 00029 * 00030 * CVS/RCS Log at end of file 00031 * 00032 */ 00033 00034 #ifndef __DVPSGAL_H__ 00035 #define __DVPSGAL_H__ 00036 00037 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ 00038 #include "dcmtk/ofstd/oflist.h" 00039 #include "dcmtk/dcmdata/dctk.h" 00040 #include "dcmtk/dcmpstat/dvpstyp.h" /* for enum types */ 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 * $Log: dvpsgal.h,v $ 00300 * Revision 1.9 2005/12/08 16:03:44 meichel 00301 * Changed include path schema for all DCMTK header files 00302 * 00303 * Revision 1.8 2003/06/04 10:18:06 meichel 00304 * Replaced private inheritance from template with aggregation 00305 * 00306 * Revision 1.7 2001/09/26 15:36:10 meichel 00307 * Adapted dcmpstat to class OFCondition 00308 * 00309 * Revision 1.6 2001/06/01 15:50:15 meichel 00310 * Updated copyright header 00311 * 00312 * Revision 1.5 2000/06/02 16:00:46 meichel 00313 * Adapted all dcmpstat classes to use OFConsole for log and error output 00314 * 00315 * Revision 1.4 2000/03/08 16:28:51 meichel 00316 * Updated copyright header. 00317 * 00318 * Revision 1.3 1999/07/22 16:39:07 meichel 00319 * Adapted dcmpstat data structures and API to supplement 33 letter ballot text. 00320 * 00321 * Revision 1.2 1998/12/14 16:10:28 meichel 00322 * Implemented Presentation State interface for graphic layers, 00323 * text and graphic annotations, presentation LUTs. 00324 * 00325 * Revision 1.1 1998/11/27 14:50:26 meichel 00326 * Initial Release. 00327 * 00328 * 00329 */ 00330