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: DVPSDisplayedArea_PList 00024 * 00025 * Last Update: $Author: meichel $ 00026 * Update Date: $Date: 2005/12/08 16:03:40 $ 00027 * CVS/RCS Revision: $Revision: 1.8 $ 00028 * Status: $State: Exp $ 00029 * 00030 * CVS/RCS Log at end of file 00031 * 00032 */ 00033 00034 #ifndef __DVPSDAL_H__ 00035 #define __DVPSDAL_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 DVPSDisplayedArea; 00043 class DVPSReferencedSeries_PList; 00044 00050 class DVPSDisplayedArea_PList 00051 { 00052 public: 00054 DVPSDisplayedArea_PList(); 00055 00057 DVPSDisplayedArea_PList(const DVPSDisplayedArea_PList& copy); 00058 00063 DVPSDisplayedArea_PList *clone() { return new DVPSDisplayedArea_PList(*this); } 00064 00066 virtual ~DVPSDisplayedArea_PList(); 00067 00076 OFCondition read(DcmItem &dset); 00077 00084 OFCondition write(DcmItem &dset); 00085 00090 void clear(); 00091 00095 size_t size() const { return list_.size(); } 00096 00102 DVPSDisplayedArea *findDisplayedArea(const char *instanceUID, unsigned long frame); 00103 00119 DVPSDisplayedArea *createDisplayedArea( 00120 DVPSReferencedSeries_PList& allReferences, 00121 const char *sopclassUID, 00122 const char *instanceUID, 00123 unsigned long frame, 00124 unsigned long numberOfFrames, 00125 DVPSObjectApplicability applicability); 00126 00132 void setLog(OFConsole *stream, OFBool verbMode, OFBool dbgMode); 00133 00141 void rotateAndFlip( 00142 DVPSRotationType rotationFrom, 00143 OFBool isFlippedFrom, 00144 DVPSRotationType rotationTo, 00145 OFBool isFlippedTo); 00146 00147 private: 00148 00151 DVPSDisplayedArea_PList& operator=(const DVPSDisplayedArea_PList&); 00152 00155 OFList<DVPSDisplayedArea *> list_; 00156 00159 OFConsole *logstream; 00160 00163 OFBool verboseMode; 00164 00167 OFBool debugMode; 00168 00169 00170 }; 00171 00172 00173 #endif 00174 00175 /* 00176 * $Log: dvpsdal.h,v $ 00177 * Revision 1.8 2005/12/08 16:03:40 meichel 00178 * Changed include path schema for all DCMTK header files 00179 * 00180 * Revision 1.7 2003/09/05 14:30:06 meichel 00181 * Introduced new API methods that allow Displayed Areas to be queried 00182 * and set either relative to the image (ignoring rotation and flip) or 00183 * in absolute values as defined in the standard. Rotate and flip methods 00184 * now adjust displayed areas in the presentation state. 00185 * 00186 * Revision 1.6 2003/06/04 10:18:06 meichel 00187 * Replaced private inheritance from template with aggregation 00188 * 00189 * Revision 1.5 2001/09/26 15:36:10 meichel 00190 * Adapted dcmpstat to class OFCondition 00191 * 00192 * Revision 1.4 2001/06/01 15:50:14 meichel 00193 * Updated copyright header 00194 * 00195 * Revision 1.3 2000/06/02 16:00:45 meichel 00196 * Adapted all dcmpstat classes to use OFConsole for log and error output 00197 * 00198 * Revision 1.2 2000/03/08 16:28:51 meichel 00199 * Updated copyright header. 00200 * 00201 * Revision 1.1 1999/07/22 16:39:06 meichel 00202 * Adapted dcmpstat data structures and API to supplement 33 letter ballot text. 00203 * 00204 * 00205 */ 00206