00001 /* 00002 * 00003 * Copyright (C) 2000-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: dcmsr 00015 * 00016 * Author: Joerg Riesmeier 00017 * 00018 * Purpose: 00019 * classes: DSRWaveformReferenceValue 00020 * 00021 * Last Update: $Author: joergr $ 00022 * Update Date: $Date: 2010-10-14 13:16:33 $ 00023 * CVS/RCS Revision: $Revision: 1.17 $ 00024 * Status: $State: Exp $ 00025 * 00026 * CVS/RCS Log at end of file 00027 * 00028 */ 00029 00030 00031 #ifndef DSRWAVVL_H 00032 #define DSRWAVVL_H 00033 00034 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ 00035 00036 #include "dcmtk/dcmsr/dsrtypes.h" 00037 #include "dcmtk/dcmsr/dsrcomvl.h" 00038 #include "dcmtk/dcmsr/dsrwavch.h" 00039 00040 00041 /*---------------------* 00042 * class declaration * 00043 *---------------------*/ 00044 00047 class DSRWaveformReferenceValue 00048 : public DSRCompositeReferenceValue 00049 { 00050 // allow access to getValuePtr() 00051 friend class DSRContentItem; 00052 00053 public: 00054 00057 DSRWaveformReferenceValue(); 00058 00066 DSRWaveformReferenceValue(const OFString &sopClassUID, 00067 const OFString &sopInstanceUID); 00068 00072 DSRWaveformReferenceValue(const DSRWaveformReferenceValue &referenceValue); 00073 00076 virtual ~DSRWaveformReferenceValue(); 00077 00082 DSRWaveformReferenceValue &operator=(const DSRWaveformReferenceValue &referenceValue); 00083 00087 virtual void clear(); 00088 00095 virtual OFBool isShort(const size_t flags) const; 00096 00105 virtual OFCondition print(STD_NAMESPACE ostream &stream, 00106 const size_t flags) const; 00107 00113 virtual OFCondition readXML(const DSRXMLDocument &doc, 00114 DSRXMLCursor cursor); 00115 00121 virtual OFCondition writeXML(STD_NAMESPACE ostream &stream, 00122 const size_t flags) const; 00123 00132 virtual OFCondition renderHTML(STD_NAMESPACE ostream &docStream, 00133 STD_NAMESPACE ostream &annexStream, 00134 size_t &annexNumber, 00135 const size_t flags) const; 00136 00140 inline const DSRWaveformReferenceValue &getValue() const 00141 { 00142 return *this; 00143 } 00144 00149 OFCondition getValue(DSRWaveformReferenceValue &referenceValue) const; 00150 00157 OFCondition setValue(const DSRWaveformReferenceValue &referenceValue); 00158 00162 inline DSRWaveformChannelList &getChannelList() 00163 { 00164 return ChannelList; 00165 } 00166 00174 OFBool appliesToChannel(const Uint16 multiplexGroupNumber, 00175 const Uint16 channelNumber) const; 00176 00177 00178 protected: 00179 00183 inline DSRWaveformReferenceValue *getValuePtr() 00184 { 00185 return this; 00186 } 00187 00192 virtual OFCondition readItem(DcmItem &dataset); 00193 00198 virtual OFCondition writeItem(DcmItem &dataset) const; 00199 00205 virtual OFBool checkSOPClassUID(const OFString &sopClassUID) const; 00206 00207 00208 private: 00209 00211 DSRWaveformChannelList ChannelList; 00212 }; 00213 00214 00215 #endif 00216 00217 00218 /* 00219 * CVS/RCS Log: 00220 * $Log: dsrwavvl.h,v $ 00221 * Revision 1.17 2010-10-14 13:16:33 joergr 00222 * Updated copyright header. Added reference to COPYRIGHT file. 00223 * 00224 * Revision 1.16 2009-10-13 14:57:50 uli 00225 * Switched to logging mechanism provided by the "new" oflog module. 00226 * 00227 * Revision 1.15 2007-11-15 16:33:30 joergr 00228 * Added support for output in XHTML 1.1 format. 00229 * 00230 * Revision 1.14 2006/08/15 16:40:03 meichel 00231 * Updated the code in module dcmsr to correctly compile when 00232 * all standard C++ classes remain in namespace std. 00233 * 00234 * Revision 1.13 2005/12/08 16:05:34 meichel 00235 * Changed include path schema for all DCMTK header files 00236 * 00237 * Revision 1.12 2003/08/07 18:01:42 joergr 00238 * Removed libxml dependency from header files. 00239 * 00240 * Revision 1.11 2003/08/07 13:07:39 joergr 00241 * Added readXML functionality. 00242 * 00243 * Revision 1.10 2001/09/26 13:04:15 meichel 00244 * Adapted dcmsr to class OFCondition 00245 * 00246 * Revision 1.9 2001/06/01 15:51:06 meichel 00247 * Updated copyright header 00248 * 00249 * Revision 1.8 2000/11/06 11:21:53 joergr 00250 * Moved some protected methods to public part. 00251 * 00252 * Revision 1.7 2000/11/01 16:23:29 joergr 00253 * Added support for conversion to XML. 00254 * 00255 * Revision 1.6 2000/10/26 14:22:23 joergr 00256 * Updated comments. 00257 * 00258 * Revision 1.5 2000/10/23 15:13:42 joergr 00259 * Added/updated doc++ comments. 00260 * 00261 * Revision 1.4 2000/10/20 10:15:43 joergr 00262 * Renamed class DSRReferenceValue to DSRCompositeReferenceValue. 00263 * 00264 * Revision 1.3 2000/10/18 17:11:33 joergr 00265 * Added methods allowing direct access to certain content item values. 00266 * Made some functions inline. 00267 * Added doc++ comments. 00268 * 00269 * Revision 1.2 2000/10/16 11:52:29 joergr 00270 * Added new method checking whether a waveform content item applies to a 00271 * certain channel. 00272 * 00273 * Revision 1.1 2000/10/13 07:49:37 joergr 00274 * Added new module 'dcmsr' providing access to DICOM structured reporting 00275 * documents (supplement 23). Doc++ documentation not yet completed. 00276 * 00277 * 00278 */