00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #ifndef DCXFER_H
00035 #define DCXFER_H
00036
00037 #include "dcmtk/config/osconfig.h"
00038
00039 #include "dcmtk/dcmdata/dctypes.h"
00040 #include "dcmtk/dcmdata/dcvr.h"
00041
00042
00043
00044
00045
00046 typedef enum {
00047 EXS_Unknown = -1,
00048 EXS_LittleEndianImplicit = 0,
00049 EXS_BigEndianImplicit = 1,
00050 EXS_LittleEndianExplicit = 2,
00051 EXS_BigEndianExplicit = 3,
00052 EXS_JPEGProcess1TransferSyntax = 4,
00053 EXS_JPEGProcess2_4TransferSyntax = 5,
00054 EXS_JPEGProcess3_5TransferSyntax = 6,
00055 EXS_JPEGProcess6_8TransferSyntax = 7,
00056 EXS_JPEGProcess7_9TransferSyntax = 8,
00057 EXS_JPEGProcess10_12TransferSyntax = 9,
00058 EXS_JPEGProcess11_13TransferSyntax = 10,
00059 EXS_JPEGProcess14TransferSyntax = 11,
00060 EXS_JPEGProcess15TransferSyntax = 12,
00061 EXS_JPEGProcess16_18TransferSyntax = 13,
00062 EXS_JPEGProcess17_19TransferSyntax = 14,
00063 EXS_JPEGProcess20_22TransferSyntax = 15,
00064 EXS_JPEGProcess21_23TransferSyntax = 16,
00065 EXS_JPEGProcess24_26TransferSyntax = 17,
00066 EXS_JPEGProcess25_27TransferSyntax = 18,
00067 EXS_JPEGProcess28TransferSyntax = 19,
00068 EXS_JPEGProcess29TransferSyntax = 20,
00069 EXS_JPEGProcess14SV1TransferSyntax = 21,
00070 EXS_RLELossless = 22,
00071 EXS_JPEGLSLossless = 23,
00072 EXS_JPEGLSLossy = 24,
00073 EXS_DeflatedLittleEndianExplicit = 25,
00074 EXS_JPEG2000LosslessOnly = 26,
00075 EXS_JPEG2000 = 27,
00076 EXS_MPEG2MainProfileAtMainLevel = 28,
00077 EXS_JPEG2000MulticomponentLosslessOnly = 29,
00078 EXS_JPEG2000Multicomponent = 30
00079 } E_TransferSyntax;
00080
00081 typedef enum {
00082 EBO_unknown = 0,
00083 EBO_LittleEndian = 1,
00084 EBO_BigEndian = 2
00085 } E_ByteOrder;
00086
00087
00088 typedef enum {
00089 EVT_Implicit = 0,
00090 EVT_Explicit = 1
00091 } E_VRType;
00092
00093
00094 typedef enum {
00095 EJE_NotEncapsulated = 0,
00096 EJE_Encapsulated = 1
00097 } E_JPEGEncapsulated;
00098
00099 typedef enum
00100 {
00102 ESC_none = 0
00104 , ESC_unsupported = 1
00105 #ifdef WITH_ZLIB
00106
00107 , ESC_zlib = 2
00108 #endif
00109 } E_StreamCompression;
00110
00111
00112
00113
00114
00115 class DcmXfer {
00116 const char *xferID;
00117 const char *xferName;
00118 E_TransferSyntax xferSyn;
00119 E_ByteOrder byteOrder;
00120 E_VRType vrType;
00121 E_JPEGEncapsulated encapsulated;
00122 Uint32 JPEGProcess8;
00123 Uint32 JPEGProcess12;
00124 E_StreamCompression streamCompression;
00125
00126 public:
00127 DcmXfer( E_TransferSyntax xfer );
00128 DcmXfer( const char *xferName_xferID );
00129 DcmXfer( const DcmXfer &newXfer );
00130 ~DcmXfer();
00131
00132 DcmXfer & operator = ( const E_TransferSyntax xfer );
00133 DcmXfer & operator = ( const DcmXfer &newtag );
00134
00135 inline E_TransferSyntax getXfer() const { return xferSyn; }
00136 inline E_ByteOrder getByteOrder() const { return byteOrder; }
00137 inline const char* getXferName() const { return xferName; }
00138 inline const char* getXferID() const { return xferID; }
00139 inline OFBool isLittleEndian() const
00140 {
00141 return byteOrder == EBO_LittleEndian;
00142 }
00143 inline OFBool isBigEndian() const { return byteOrder == EBO_BigEndian; }
00144 inline OFBool isImplicitVR() const { return vrType == EVT_Implicit; }
00145 inline OFBool isExplicitVR() const { return vrType == EVT_Explicit; }
00146 inline OFBool isEncapsulated() const
00147 {
00148 return encapsulated == EJE_Encapsulated;
00149 }
00150 inline OFBool isNotEncapsulated() const
00151 {
00152 return encapsulated == EJE_NotEncapsulated;
00153 }
00154 inline Uint32 getJPEGProcess8Bit() const { return JPEGProcess8; }
00155 inline Uint32 getJPEGProcess12Bit() const { return JPEGProcess12;}
00156 inline E_StreamCompression getStreamCompression() const { return streamCompression;}
00157
00158
00159
00160
00161
00162 Uint32 sizeofTagHeader(DcmEVR evr);
00163
00164 };
00165
00166
00167 extern const E_ByteOrder gLocalByteOrder;
00168
00169 #endif // DCXFER_H
00170
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183
00184
00185
00186
00187
00188
00189
00190
00191
00192
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208