dcmsr/include/dcmtk/dcmsr/dsrwavvl.h

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  */


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