00001 /* 00002 * 00003 * Copyright (C) 2000-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: dcmsr 00019 * 00020 * Author: Joerg Riesmeier 00021 * 00022 * Purpose: 00023 * classes: DSRWaveformReferenceValue 00024 * 00025 * Last Update: $Author: meichel $ 00026 * Update Date: $Date: 2005/12/08 16:05:34 $ 00027 * CVS/RCS Revision: $Revision: 1.13 $ 00028 * Status: $State: Exp $ 00029 * 00030 * CVS/RCS Log at end of file 00031 * 00032 */ 00033 00034 00035 #ifndef DSRWAVVL_H 00036 #define DSRWAVVL_H 00037 00038 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ 00039 00040 #include "dcmtk/dcmsr/dsrtypes.h" 00041 #include "dcmtk/dcmsr/dsrcomvl.h" 00042 #include "dcmtk/dcmsr/dsrwavch.h" 00043 00044 00045 /*---------------------* 00046 * class declaration * 00047 *---------------------*/ 00048 00051 class DSRWaveformReferenceValue 00052 : public DSRCompositeReferenceValue 00053 { 00054 // allow access to getValuePtr() 00055 friend class DSRContentItem; 00056 00057 public: 00058 00061 DSRWaveformReferenceValue(); 00062 00070 DSRWaveformReferenceValue(const OFString &sopClassUID, 00071 const OFString &sopInstanceUID); 00072 00076 DSRWaveformReferenceValue(const DSRWaveformReferenceValue &referenceValue); 00077 00080 virtual ~DSRWaveformReferenceValue(); 00081 00086 DSRWaveformReferenceValue &operator=(const DSRWaveformReferenceValue &referenceValue); 00087 00091 virtual void clear(); 00092 00099 virtual OFBool isShort(const size_t flags) const; 00100 00109 virtual OFCondition print(ostream &stream, 00110 const size_t flags) const; 00111 00117 virtual OFCondition readXML(const DSRXMLDocument &doc, 00118 DSRXMLCursor cursor); 00119 00126 virtual OFCondition writeXML(ostream &stream, 00127 const size_t flags, 00128 OFConsole *logStream) const; 00129 00139 virtual OFCondition renderHTML(ostream &docStream, 00140 ostream &annexStream, 00141 size_t &annexNumber, 00142 const size_t flags, 00143 OFConsole *logStream) const; 00144 00148 inline const DSRWaveformReferenceValue &getValue() const 00149 { 00150 return *this; 00151 } 00152 00157 OFCondition getValue(DSRWaveformReferenceValue &referenceValue) const; 00158 00165 OFCondition setValue(const DSRWaveformReferenceValue &referenceValue); 00166 00170 inline DSRWaveformChannelList &getChannelList() 00171 { 00172 return ChannelList; 00173 } 00174 00182 OFBool appliesToChannel(const Uint16 multiplexGroupNumber, 00183 const Uint16 channelNumber) const; 00184 00185 00186 protected: 00187 00191 inline DSRWaveformReferenceValue *getValuePtr() 00192 { 00193 return this; 00194 } 00195 00201 virtual OFCondition readItem(DcmItem &dataset, 00202 OFConsole *logStream); 00203 00209 virtual OFCondition writeItem(DcmItem &dataset, 00210 OFConsole *logStream) const; 00211 00217 virtual OFBool checkSOPClassUID(const OFString &sopClassUID) const; 00218 00219 00220 private: 00221 00223 DSRWaveformChannelList ChannelList; 00224 }; 00225 00226 00227 #endif 00228 00229 00230 /* 00231 * CVS/RCS Log: 00232 * $Log: dsrwavvl.h,v $ 00233 * Revision 1.13 2005/12/08 16:05:34 meichel 00234 * Changed include path schema for all DCMTK header files 00235 * 00236 * Revision 1.12 2003/08/07 18:01:42 joergr 00237 * Removed libxml dependency from header files. 00238 * 00239 * Revision 1.11 2003/08/07 13:07:39 joergr 00240 * Added readXML functionality. 00241 * 00242 * Revision 1.10 2001/09/26 13:04:15 meichel 00243 * Adapted dcmsr to class OFCondition 00244 * 00245 * Revision 1.9 2001/06/01 15:51:06 meichel 00246 * Updated copyright header 00247 * 00248 * Revision 1.8 2000/11/06 11:21:53 joergr 00249 * Moved some protected methods to public part. 00250 * 00251 * Revision 1.7 2000/11/01 16:23:29 joergr 00252 * Added support for conversion to XML. 00253 * 00254 * Revision 1.6 2000/10/26 14:22:23 joergr 00255 * Updated comments. 00256 * 00257 * Revision 1.5 2000/10/23 15:13:42 joergr 00258 * Added/updated doc++ comments. 00259 * 00260 * Revision 1.4 2000/10/20 10:15:43 joergr 00261 * Renamed class DSRReferenceValue to DSRCompositeReferenceValue. 00262 * 00263 * Revision 1.3 2000/10/18 17:11:33 joergr 00264 * Added methods allowing direct access to certain content item values. 00265 * Made some functions inline. 00266 * Added doc++ comments. 00267 * 00268 * Revision 1.2 2000/10/16 11:52:29 joergr 00269 * Added new method checking whether a waveform content item applies to a 00270 * certain channel. 00271 * 00272 * Revision 1.1 2000/10/13 07:49:37 joergr 00273 * Added new module 'dcmsr' providing access to DICOM structured reporting 00274 * documents (supplement 23). Doc++ documentation not yet completed. 00275 * 00276 * 00277 */