00001 /* 00002 * 00003 * Copyright (C) 1994-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: dcmdata 00019 * 00020 * Author: Gerd Ehlers, Andrew Hewett 00021 * 00022 * Purpose: global type and constant definitions 00023 * 00024 * Last Update: $Author: meichel $ 00025 * Update Date: $Date: 2005/12/08 16:28:47 $ 00026 * CVS/RCS Revision: $Revision: 1.21 $ 00027 * Status: $State: Exp $ 00028 * 00029 * CVS/RCS Log at end of file 00030 * 00031 */ 00032 00033 00034 #ifndef DCTYPES_H 00035 #define DCTYPES_H 1 00036 00037 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */ 00038 #include "dcmtk/ofstd/oftypes.h" 00039 00040 #define INCLUDE_CSTDLIB 00041 #include "dcmtk/ofstd/ofstdinc.h" 00042 00043 00044 /* 00045 ** Macro Definitions 00046 */ 00047 00048 // XML namespace URI for the dcmtk 00049 #define DCMTK_XML_NAMESPACE_URI "http://dicom.offis.de/dcmtk" 00050 00051 00052 /* 00053 ** Type Definitions 00054 */ 00055 00056 typedef Uint8 BYTE; 00057 typedef Sint8 SBYTE; 00058 00059 00060 /* 00061 ** Enumerated Types 00062 */ 00063 00064 typedef enum { 00065 EET_ExplicitLength = 0, 00066 EET_UndefinedLength = 1 00067 } E_EncodingType; 00068 00069 00070 typedef enum { 00071 EGL_noChange = 0, // no change of GL values, WARNING: DO NOT USE FOR WRITE 00072 EGL_withoutGL = 1, // remove group length tags 00073 EGL_withGL = 2, // add group length tags for every group 00074 EGL_recalcGL = 3 // recalculate values for existing group length tags 00075 } E_GrpLenEncoding; 00076 00077 typedef enum { 00078 EPD_noChange = 0, // no change of padding tags 00079 EPD_withoutPadding = 1, // remove all padding tags 00080 EPD_withPadding = 2 // add padding tags 00081 } E_PaddingEncoding; 00082 00083 00084 typedef enum { 00085 ESM_fromHere = 0, 00086 ESM_fromStackTop = 1, 00087 ESM_afterStackTop = 2 00088 } E_SearchMode; 00089 00090 00091 typedef enum { 00092 ERW_init = 0, 00093 ERW_ready = 1, 00094 ERW_inWork = 2, 00095 ERW_notInitialized = 3 00096 } E_TransferState; 00097 00098 00099 typedef enum { 00100 ERM_autoDetect = 0, // auto detect: fileformat or dataset 00101 ERM_dataset = 1, // dataset (ignore meta header) 00102 ERM_fileOnly = 2 // fileformat only 00103 } E_FileReadMode; 00104 00105 00108 struct DCMTypes 00109 { 00110 public: 00111 00116 00118 static const size_t PF_shortenLongTagValues; 00119 00121 static const size_t PF_showTreeStructure; 00122 00124 static const size_t PF_lastEntry; 00125 00127 00128 00133 00135 static const size_t XF_addDocumentType; 00136 00138 static const size_t XF_writeBinaryData; 00139 00141 static const size_t XF_encodeBase64; 00142 00144 static const size_t XF_useDcmtkNamespace; 00145 00147 static const size_t XF_embedDocumentType; 00149 }; 00150 00151 00152 // Undefined Length Identifier 00153 const Uint32 DCM_UndefinedLength = 0xffffffff; 00154 00155 00156 #endif /* !DCTYPES_H */ 00157 00158 00159 /* 00160 * CVS/RCS Log: 00161 * $Log: dctypes.h,v $ 00162 * Revision 1.21 2005/12/08 16:28:47 meichel 00163 * Changed include path schema for all DCMTK header files 00164 * 00165 * Revision 1.20 2005/12/02 08:50:30 joergr 00166 * Added new file read mode that makes it possible to distinguish between DICOM 00167 * files, datasets and other non-DICOM files. 00168 * 00169 * Revision 1.19 2003/04/22 08:19:09 joergr 00170 * Added new command line option which allows to embed the content of the DTD 00171 * instead of referencing the DTD file. 00172 * 00173 * Revision 1.18 2003/04/01 14:57:08 joergr 00174 * Added support for XML namespaces. 00175 * 00176 * Revision 1.17 2002/12/06 12:21:00 joergr 00177 * Enhanced "print()" function by re-working the implementation and replacing 00178 * the boolean "showFullData" parameter by a more general integer flag. 00179 * 00180 * Revision 1.16 2002/11/27 12:07:23 meichel 00181 * Adapted module dcmdata to use of new header file ofstdinc.h 00182 * 00183 * Revision 1.15 2002/07/10 11:45:40 meichel 00184 * Moved definitions for Uint8, Sint8 ... Float64 from dcmdata to ofstd 00185 * since these types are not DICOM specific 00186 * 00187 * Revision 1.14 2002/06/06 14:51:13 meichel 00188 * Corrected code for inclusion of stdlib.h 00189 * 00190 * Revision 1.13 2002/05/14 08:20:29 joergr 00191 * Added support for Base64 (MIME) encoded binary data. 00192 * 00193 * Revision 1.12 2002/04/25 10:07:13 joergr 00194 * Added support for XML output of DICOM objects. 00195 * 00196 * Revision 1.11 2001/06/01 15:48:45 meichel 00197 * Updated copyright header 00198 * 00199 * Revision 1.10 2000/03/08 16:26:19 meichel 00200 * Updated copyright header. 00201 * 00202 * Revision 1.9 2000/03/03 14:05:26 meichel 00203 * Implemented library support for redirecting error messages into memory 00204 * instead of printing them to stdout/stderr for GUI applications. 00205 * 00206 * Revision 1.8 2000/02/07 14:44:45 meichel 00207 * The typedef for Sint8 now defaults to char instead of signed char. 00208 * This avoids warnings on certain c-front related compilers. 00209 * The old behaviour can be restored by compiling with the symbol 00210 * CHAR_IS_UNSIGNED defined. 00211 * 00212 * Revision 1.7 1999/03/31 09:24:51 meichel 00213 * Updated copyright header in module dcmdata 00214 * 00215 * 00216 */