dvpsgal.h

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 


Generated on 20 Dec 2005 for OFFIS DCMTK Version 3.5.4 by Doxygen 1.4.5