OFFIS DCMTK  Version 3.6.0
dctag.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, Andrew Hewett
17  *
18  * Purpose: Definition of the class DcmTag
19  *
20  * Last Update: $Author: joergr $
21  * Update Date: $Date: 2010-10-14 13:15:42 $
22  * CVS/RCS Revision: $Revision: 1.24 $
23  * Status: $State: Exp $
24  *
25  * CVS/RCS Log at end of file
26  *
27  */
28 
29 #ifndef DCTAG_H
30 #define DCTAG_H
31 
32 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */
33 #include "dcmtk/ofstd/ofcond.h"
34 #include "dcmtk/dcmdata/dctagkey.h"
35 #include "dcmtk/dcmdata/dcvr.h"
36 
38 #define DcmTag_ERROR_TagName "Unknown Tag & Data"
39 
40 
50 class DcmTag: public DcmTagKey
51 {
52 public:
54  DcmTag();
55 
62  DcmTag(const DcmTagKey& akey);
63 
71  DcmTag(Uint16 g, Uint16 e);
72 
79  DcmTag(const DcmTagKey& akey, const DcmVR& avr);
80 
88  DcmTag(Uint16 g, Uint16 e, const DcmVR& avr);
89 
91  DcmTag(const DcmTag& tag);
92 
94  ~DcmTag();
95 
97  DcmTag& operator=(const DcmTag& tag);
98 
100  DcmVR setVR(const DcmVR& avr);
101 
103  DcmVR getVR() const { return vr; }
104 
106  DcmEVR getEVR() const { return vr.getEVR(); }
107 
109  const char* getVRName() const { return vr.getVRName(); }
110 
114  Uint16 getGTag() const { return getGroup(); }
115 
119  Uint16 getETag() const { return getElement(); }
120 
125  {
126  return * OFstatic_cast(const DcmTagKey *, this);
127  }
128 
136  const char* getTagName();
137 
142  const char* getPrivateCreator() const;
143 
149  void setPrivateCreator(const char *privCreator);
150 
156  void lookupVRinDictionary();
157 
162  OFBool isSignable() const;
163 
166  OFBool isUnknownVR() const;
167 
169  OFCondition error() const { return errorFlag; }
170 
171  // --- static helper functions ---
172 
184  static OFCondition findTagFromName(const char *name,
185  DcmTag &value);
186 private:
187 
191  void updateTagName(const char *c);
192 
196  void updatePrivateCreator(const char *c);
197 
200 
202  char *tagName;
203 
206 
209 
210 };
211 
212 
213 // *** global constants ********************************
214 
215 
216 #define ItemTag (DcmTag(DCM_Item))
217 #define InternalUseTag (DcmTag(DcmTagKey(0xfffe, 0xfffe)))
218 
219 
220 #endif /* !DCTAG_H */
221 
222 /*
223 ** CVS/RCS Log:
224 ** $Log: dctag.h,v $
225 ** Revision 1.24 2010-10-14 13:15:42 joergr
226 ** Updated copyright header. Added reference to COPYRIGHT file.
227 **
228 ** Revision 1.23 2010-08-09 13:02:57 joergr
229 ** Updated data dictionary to 2009 edition of the DICOM standard. From now on,
230 ** the official "keyword" is used for the attribute name which results in a
231 ** number of minor changes (e.g. "PatientsName" is now called "PatientName").
232 **
233 ** Revision 1.22 2009-11-04 09:58:07 uli
234 ** Switched to logging mechanism provided by the "new" oflog module
235 **
236 ** Revision 1.21 2005-12-08 16:28:44 meichel
237 ** Changed include path schema for all DCMTK header files
238 **
239 ** Revision 1.20 2003/08/14 09:00:56 meichel
240 ** Adapted type casts to new-style typecast operators defined in ofcast.h
241 **
242 ** Revision 1.19 2002/07/23 14:21:27 meichel
243 ** Added support for private tag data dictionaries to dcmdata
244 **
245 ** Revision 1.18 2002/05/24 09:49:13 joergr
246 ** Renamed some parameters/variables to avoid ambiguities.
247 **
248 ** Revision 1.17 2002/04/30 13:12:12 joergr
249 ** Added static helper function to convert strings (tag names or group/element
250 ** numbers) to DICOM tag objects.
251 **
252 ** Revision 1.16 2001/11/19 15:23:10 meichel
253 ** Cleaned up signature code to avoid some gcc warnings.
254 **
255 ** Revision 1.15 2001/11/16 15:54:40 meichel
256 ** Adapted digital signature code to final text of supplement 41.
257 **
258 ** Revision 1.14 2001/09/25 17:19:29 meichel
259 ** Adapted dcmdata to class OFCondition
260 **
261 ** Revision 1.13 2001/06/01 15:48:45 meichel
262 ** Updated copyright header
263 **
264 ** Revision 1.12 2000/04/14 16:00:58 meichel
265 ** Restructured class DcmTag. Instances don't keep a permanent pointer
266 ** to a data dictionary entry anymore. Required for MT applications.
267 **
268 ** Revision 1.11 2000/03/08 16:26:19 meichel
269 ** Updated copyright header.
270 **
271 ** Revision 1.10 1999/03/31 09:24:49 meichel
272 ** Updated copyright header in module dcmdata
273 **
274 ** Revision 1.9 1998/07/15 15:48:54 joergr
275 ** Removed several compiler warnings reported by gcc 2.8.1 with
276 ** additional options, e.g. missing copy constructors and assignment
277 ** operators, initialization of member variables in the body of a
278 ** constructor instead of the member initialization list, hiding of
279 ** methods by use of identical names, uninitialized member variables,
280 ** missing const declaration of char pointers. Replaced tabs by spaces.
281 **
282 ** Revision 1.8 1997/05/06 09:26:44 hewett
283 ** The DcmTag::getVMMax() method now returns a maximum value if the attribute
284 ** is unknown. This makes the default VM=1-n (before it was VM=1).
285 **
286 ** Revision 1.7 1997/03/26 17:18:01 hewett
287 ** Added member function to obtain a DcmTag's data dictionary reference.
288 **
289 ** Revision 1.6 1996/04/19 08:37:21 andreas
290 ** correct bug with DEBUG and not DEBUG parts. It was not possible to compile
291 ** the dcmdata library with DEBUG and programs using dcmdata without DEBUG
292 ** (and vice versa)
293 **
294 ** Revision 1.5 1996/03/13 14:48:32 hewett
295 ** Added useful VR access methods.
296 **
297 ** Revision 1.4 1996/03/12 15:32:49 hewett
298 ** Added constructor with parameter to explicity set the VR.
299 **
300 ** Revision 1.3 1996/01/05 13:23:01 andreas
301 ** - changed to support new streaming facilities
302 ** - more cleanups
303 ** - merged read / write methods for block and file transfer
304 **
305 ** Revision 1.2 1995/11/23 16:38:03 hewett
306 ** Updated for loadable data dictionary + some cleanup (more to do).
307 **
308 */


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