OFFIS DCMTK  Version 3.6.0
dcpxitem.h
1 /*
2  *
3  * Copyright (C) 1994-2010, OFFIS e.V.
4  * All rights reserved. See COPYRIGHT file for details.
5  *
6  * This software and supporting documentation were developed by
7  *
8  * OFFIS e.V.
9  * R&D Division Health
10  * Escherweg 2
11  * D-26121 Oldenburg, Germany
12  *
13  *
14  * Module: dcmdata
15  *
16  * Author: Gerd Ehlers, Andreas Barth
17  *
18  * Purpose: Interface of class DcmPixelItem
19  *
20  * Last Update: $Author: joergr $
21  * Update Date: $Date: 2010-10-14 13:15:41 $
22  * CVS/RCS Revision: $Revision: 1.30 $
23  * Status: $State: Exp $
24  *
25  * CVS/RCS Log at end of file
26  *
27  */
28 
29 
30 #ifndef DCPXITEM_H
31 #define DCPXITEM_H
32 
33 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */
34 #include "dcmtk/dcmdata/dcvrobow.h"
35 #include "dcmtk/dcmdata/dcofsetl.h" /* for class DcmOffsetList */
36 
37 
46 {
47  public:
48 
53  DcmPixelItem(const DcmTag &tag, const Uint32 len = 0);
54 
58  DcmPixelItem(const DcmPixelItem &old);
59 
61  virtual ~DcmPixelItem();
62 
67 
71  virtual DcmObject *clone() const
72  {
73  return new DcmPixelItem(*this);
74  }
75 
79  virtual DcmEVR ident(void) const { return EVR_pixelItem; }
80 
93  virtual OFCondition copyFrom(const DcmObject &rhs);
94 
102  virtual void print(STD_NAMESPACE ostream &out,
103  const size_t flags = 0,
104  const int level = 0,
105  const char *pixelFileName = NULL,
106  size_t *pixelCounter = NULL);
107 
114  virtual OFCondition createOffsetTable(const DcmOffsetList &offsetList);
115 
121  virtual OFCondition writeXML(STD_NAMESPACE ostream &out,
122  const size_t flags = 0);
123 
132  const E_TransferSyntax oxfer,
133  const E_EncodingType enctype,
134  DcmWriteCache *wcache);
135 
136  protected:
137 
144  virtual OFCondition writeTagAndLength(DcmOutputStream &outStream,
145  const E_TransferSyntax oxfer,
146  Uint32 &writtenBytes) const;
147 
148 };
149 
150 
151 #endif // DCPXITEM_H
152 
153 /*
154 ** CVS/RCS Log:
155 ** $Log: dcpxitem.h,v $
156 ** Revision 1.30 2010-10-14 13:15:41 joergr
157 ** Updated copyright header. Added reference to COPYRIGHT file.
158 **
159 ** Revision 1.29 2010-03-01 09:08:44 uli
160 ** Removed some unnecessary include directives in the headers.
161 **
162 ** Revision 1.28 2010-02-22 11:39:54 uli
163 ** Remove some unneeded includes.
164 **
165 ** Revision 1.27 2009-02-04 17:54:31 joergr
166 ** Fixed various layout and formatting issues.
167 **
168 ** Revision 1.26 2009-02-04 10:18:19 joergr
169 ** Fixed issue with compressed frames of odd length (possibly wrong values in
170 ** basic offset table).
171 **
172 ** Revision 1.25 2008-07-17 11:19:49 onken
173 ** Updated copyFrom() documentation.
174 **
175 ** Revision 1.24 2008-07-17 10:30:23 onken
176 ** Implemented copyFrom() method for complete DcmObject class hierarchy, which
177 ** permits setting an instance's value from an existing object. Implemented
178 ** assignment operator where necessary.
179 **
180 ** Revision 1.23 2007-11-29 14:30:19 meichel
181 ** Write methods now handle large raw data elements (such as pixel data)
182 ** without loading everything into memory. This allows very large images to
183 ** be sent over a network connection, or to be copied without ever being
184 ** fully in memory.
185 **
186 ** Revision 1.22 2006/08/15 15:49:56 meichel
187 ** Updated all code in module dcmdata to correctly compile when
188 ** all standard C++ classes remain in namespace std.
189 **
190 ** Revision 1.21 2005/12/08 16:28:32 meichel
191 ** Changed include path schema for all DCMTK header files
192 **
193 ** Revision 1.20 2005/11/24 12:50:57 meichel
194 ** Fixed bug in code that prepares a byte stream that is fed into the MAC
195 ** algorithm when creating or verifying a digital signature. The previous
196 ** implementation was non-conformant when signatures included compressed
197 ** (encapsulated) pixel data because the item length was included in the byte
198 ** stream, while it should not. The global variable dcmEnableOldSignatureFormat
199 ** and a corresponding command line option in dcmsign allow to re-enable the old
200 ** implementation.
201 **
202 ** Revision 1.19 2004/07/01 12:28:25 meichel
203 ** Introduced virtual clone method for DcmObject and derived classes.
204 **
205 ** Revision 1.18 2002/12/06 12:49:12 joergr
206 ** Enhanced "print()" function by re-working the implementation and replacing
207 ** the boolean "showFullData" parameter by a more general integer flag.
208 ** Added doc++ documentation.
209 ** Made source code formatting more consistent with other modules/files.
210 **
211 ** Revision 1.17 2002/08/27 16:55:38 meichel
212 ** Initial release of new DICOM I/O stream classes that add support for stream
213 ** compression (deflated little endian explicit VR transfer syntax)
214 **
215 ** Revision 1.16 2002/05/24 14:51:42 meichel
216 ** Moved helper methods that are useful for different compression techniques
217 ** from module dcmjpeg to module dcmdata
218 **
219 ** Revision 1.15 2002/04/25 09:41:46 joergr
220 ** Added support for XML output of DICOM objects.
221 **
222 ** Revision 1.14 2001/11/16 15:54:39 meichel
223 ** Adapted digital signature code to final text of supplement 41.
224 **
225 ** Revision 1.13 2001/09/25 17:19:28 meichel
226 ** Adapted dcmdata to class OFCondition
227 **
228 ** Revision 1.12 2001/06/01 15:48:43 meichel
229 ** Updated copyright header
230 **
231 ** Revision 1.11 2000/04/14 15:31:33 meichel
232 ** Removed default value from output stream passed to print() method.
233 ** Required for use in multi-thread environments.
234 **
235 ** Revision 1.10 2000/03/08 16:26:17 meichel
236 ** Updated copyright header.
237 **
238 ** Revision 1.9 2000/03/03 14:05:25 meichel
239 ** Implemented library support for redirecting error messages into memory
240 ** instead of printing them to stdout/stderr for GUI applications.
241 **
242 ** Revision 1.8 2000/02/10 10:50:53 joergr
243 ** Added new feature to dcmdump (enhanced print method of dcmdata): write
244 ** pixel data/item value fields to raw files.
245 **
246 ** Revision 1.7 1999/03/31 09:24:45 meichel
247 ** Updated copyright header in module dcmdata
248 **
249 ** Revision 1.6 1998/11/12 16:47:43 meichel
250 ** Implemented operator= for all classes derived from DcmObject.
251 **
252 ** Revision 1.5 1997/05/22 16:57:10 andreas
253 ** - Corrected errors for writing of pixel sequences for encapsulated
254 ** transfer syntaxes.
255 **
256 ** Revision 1.4 1996/01/29 13:38:13 andreas
257 ** - new put method for every VR to put value as a string
258 ** - better and unique print methods
259 **
260 ** Revision 1.3 1996/01/05 13:22:58 andreas
261 ** - changed to support new streaming facilities
262 ** - more cleanups
263 ** - merged read / write methods for block and file transfer
264 **
265 */


Generated on Thu Dec 20 2012 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.8.2