dcmpstat/include/dcmtk/dcmpstat/dvpsgal.h

00001 /*
00002  *
00003  *  Copyright (C) 1998-2010, OFFIS e.V.
00004  *  All rights reserved.  See COPYRIGHT file for details.
00005  *
00006  *  This software and supporting documentation were developed by
00007  *
00008  *    OFFIS e.V.
00009  *    R&D Division Health
00010  *    Escherweg 2
00011  *    D-26121 Oldenburg, Germany
00012  *
00013  *
00014  *  Module: dcmpstat
00015  *
00016  *  Author: Marco Eichelberg
00017  *
00018  *  Purpose:
00019  *    classes: DVPSGraphicAnnotation_PList
00020  *
00021  *  Last Update:      $Author: joergr $
00022  *  Update Date:      $Date: 2010-10-14 13:16:36 $
00023  *  CVS/RCS Revision: $Revision: 1.13 $
00024  *  Status:           $State: Exp $
00025  *
00026  *  CVS/RCS Log at end of file
00027  *
00028  */
00029 
00030 #ifndef DVPSGAL_H
00031 #define DVPSGAL_H
00032 
00033 #include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
00034 #include "dcmtk/dcmdata/dcitem.h"
00035 #include "dcmtk/dcmpstat/dvpstyp.h"     /* for enum types */
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  *  $Log: dvpsgal.h,v $
00276  *  Revision 1.13  2010-10-14 13:16:36  joergr
00277  *  Updated copyright header. Added reference to COPYRIGHT file.
00278  *
00279  *  Revision 1.12  2010-10-07 14:31:35  joergr
00280  *  Removed leading underscore characters from preprocessor symbols (reserved).
00281  *
00282  *  Revision 1.11  2009-11-24 14:12:57  uli
00283  *  Switched to logging mechanism provided by the "new" oflog module.
00284  *
00285  *  Revision 1.10  2009-09-30 10:42:38  uli
00286  *  Make dcmpstat's include headers self-sufficient by including all
00287  *  needed headers directly and stop using dctk.h
00288  *
00289  *  Revision 1.9  2005-12-08 16:03:44  meichel
00290  *  Changed include path schema for all DCMTK header files
00291  *
00292  *  Revision 1.8  2003/06/04 10:18:06  meichel
00293  *  Replaced private inheritance from template with aggregation
00294  *
00295  *  Revision 1.7  2001/09/26 15:36:10  meichel
00296  *  Adapted dcmpstat to class OFCondition
00297  *
00298  *  Revision 1.6  2001/06/01 15:50:15  meichel
00299  *  Updated copyright header
00300  *
00301  *  Revision 1.5  2000/06/02 16:00:46  meichel
00302  *  Adapted all dcmpstat classes to use OFConsole for log and error output
00303  *
00304  *  Revision 1.4  2000/03/08 16:28:51  meichel
00305  *  Updated copyright header.
00306  *
00307  *  Revision 1.3  1999/07/22 16:39:07  meichel
00308  *  Adapted dcmpstat data structures and API to supplement 33 letter ballot text.
00309  *
00310  *  Revision 1.2  1998/12/14 16:10:28  meichel
00311  *  Implemented Presentation State interface for graphic layers,
00312  *    text and graphic annotations, presentation LUTs.
00313  *
00314  *  Revision 1.1  1998/11/27 14:50:26  meichel
00315  *  Initial Release.
00316  *
00317  *
00318  */


Generated on 6 Jan 2011 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.5.1