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: DVPSCurve 00024 * 00025 * Last Update: $Author: meichel $ 00026 * Update Date: $Date: 2005/12/08 16:03:37 $ 00027 * CVS/RCS Revision: $Revision: 1.6 $ 00028 * Status: $State: Exp $ 00029 * 00030 * CVS/RCS Log at end of file 00031 * 00032 */ 00033 00034 #ifndef __DVPSCU_H__ 00035 #define __DVPSCU_H__ 00036 00037 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ 00038 #include "dcmtk/dcmpstat/dvpstyp.h" 00039 #include "dcmtk/ofstd/ofstring.h" 00040 #include "dcmtk/dcmdata/dctypes.h" 00041 #include "dcmtk/dcmdata/dcerror.h" 00042 00043 class DcmItem; 00044 class OFConsole; 00045 00049 class DVPSCurve 00050 { 00051 public: 00053 DVPSCurve(); 00054 00056 DVPSCurve(const DVPSCurve& copy); 00057 00062 DVPSCurve *clone() { return new DVPSCurve(*this); } 00063 00065 virtual ~DVPSCurve(); 00066 00077 OFCondition read(DcmItem &dset, Uint8 group); 00078 00082 Uint8 getCurveGroup() { return curveGroup; } 00083 00087 size_t getNumberOfPoints() { return numberOfPoints; } 00088 00092 DVPSCurveType getTypeOfData() { return typeOfData; } 00093 00100 OFCondition getPoint(size_t idx, double& x, double& y); 00101 00106 const char *getCurveDescription() { return curveDescription.c_str(); } 00107 00112 const char *getCurveLabel() { return curveLabel.c_str(); } 00113 00118 const char *getCurveAxisUnitsX() { return axisUnitsX.c_str(); } 00119 00124 const char *getCurveAxisUnitsY() { return axisUnitsY.c_str(); } 00125 00131 void setLog(OFConsole *stream, OFBool verbMode, OFBool dbgMode); 00132 00133 private: 00135 DVPSCurve& operator=(const DVPSCurve&); 00136 00138 Uint8 curveGroup; 00140 size_t numberOfPoints; 00142 DVPSCurveType typeOfData; 00144 double *curveData; 00146 OFString curveDescription; 00148 OFString curveLabel; 00150 OFString axisUnitsX; 00152 OFString axisUnitsY; 00153 00156 OFConsole *logstream; 00157 00160 OFBool verboseMode; 00161 00164 OFBool debugMode; 00165 }; 00166 00167 #endif 00168 00169 /* 00170 * $Log: dvpscu.h,v $ 00171 * Revision 1.6 2005/12/08 16:03:37 meichel 00172 * Changed include path schema for all DCMTK header files 00173 * 00174 * Revision 1.5 2001/09/26 15:36:09 meichel 00175 * Adapted dcmpstat to class OFCondition 00176 * 00177 * Revision 1.4 2001/06/01 15:50:13 meichel 00178 * Updated copyright header 00179 * 00180 * Revision 1.3 2000/06/02 16:00:44 meichel 00181 * Adapted all dcmpstat classes to use OFConsole for log and error output 00182 * 00183 * Revision 1.2 2000/03/08 16:28:50 meichel 00184 * Updated copyright header. 00185 * 00186 * Revision 1.1 1998/12/22 17:57:04 meichel 00187 * Implemented Presentation State interface for overlays, 00188 * VOI LUTs, VOI windows, curves. Added test program that 00189 * allows to add curve data to DICOM images. 00190 * 00191 * 00192 */ 00193