Coverage Report

Created: 2025-12-31 07:53

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/graphicsmagick/coders/dcm.c
Line
Count
Source
1
/*
2
% Copyright (C) 2003-2025 GraphicsMagick Group
3
% Copyright (C) 2002 ImageMagick Studio
4
% Copyright 1991-1999 E. I. du Pont de Nemours and Company
5
%
6
% This program is covered by multiple licenses, which are described in
7
% Copyright.txt. You should have received a copy of Copyright.txt with this
8
% package; otherwise see http://www.graphicsmagick.org/www/Copyright.html.
9
%
10
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11
%                                                                             %
12
%                                                                             %
13
%                                                                             %
14
%                            DDDD    CCCC  M   M                              %
15
%                            D   D  C      MM MM                              %
16
%                            D   D  C      M M M                              %
17
%                            D   D  C      M   M                              %
18
%                            DDDD    CCCC  M   M                              %
19
%                                                                             %
20
%                                                                             %
21
%                          Read DICOM Image Format.                           %
22
%                                                                             %
23
%                                                                             %
24
%                              Software Design                                %
25
%                                John Cristy                                  %
26
%                                 July 1992                                   %
27
%                                                                             %
28
%                                                                             %
29
%                                                                             %
30
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
31
%
32
%
33
*/
34

35
/*
36
  Include declarations.
37
*/
38
#include "magick/studio.h"
39
#include "magick/attribute.h"
40
#include "magick/blob.h"
41
#include "magick/colormap.h"
42
#include "magick/constitute.h"
43
#include "magick/enhance.h"
44
#include "magick/log.h"
45
#include "magick/magick.h"
46
#include "magick/monitor.h"
47
#include "magick/pixel_cache.h"
48
#include "magick/tempfile.h"
49
#include "magick/utility.h"
50
#include "magick/static.h"
51

52
/*
53
#define USE_GRAYMAP
54
#define GRAYSCALE_USES_PALETTE
55
*/
56
57
/* Defines for "best guess" fixes */
58
#define NEW_IMPLICIT_LOGIC
59
#define IGNORE_WINDOW_FOR_UNSPECIFIED_SCALE_TYPE
60
61
/*
62
  Function types for reading MSB/LSB shorts/longs
63
*/
64
typedef magick_uint16_t (DicomReadShortFunc)(Image *);
65
typedef magick_uint32_t (DicomReadLongFunc)(Image *);
66
67
/*
68
   DCM enums
69
*/
70
typedef enum
71
{
72
  DCM_TS_IMPL_LITTLE,
73
  DCM_TS_EXPL_LITTLE,
74
  DCM_TS_EXPL_BIG,
75
  DCM_TS_JPEG,
76
  DCM_TS_JPEG_LS,
77
  DCM_TS_JPEG_2000,
78
  DCM_TS_RLE
79
} Dicom_TS;
80
81
typedef enum
82
{
83
  DCM_MSB_LITTLE,
84
  DCM_MSB_BIG_PENDING,
85
  DCM_MSB_BIG
86
} Dicom_MSB;
87
88
typedef enum
89
{
90
  DCM_PI_MONOCHROME1,
91
  DCM_PI_MONOCHROME2,
92
  DCM_PI_PALETTE_COLOR,
93
  DCM_PI_RGB,
94
  DCM_PI_OTHER
95
} Dicom_PI;
96
97
typedef enum
98
{
99
  DCM_RT_OPTICAL_DENSITY,
100
  DCM_RT_HOUNSFIELD,
101
  DCM_RT_UNSPECIFIED,
102
  DCM_RT_UNKNOWN
103
} Dicom_RT;
104
105
typedef enum
106
{
107
  DCM_RS_NONE,
108
  DCM_RS_PRE,
109
  DCM_RS_POST
110
} Dicom_RS;
111
112
/*
113
  Dicom medical image declarations.
114
*/
115
typedef struct _DicomStream
116
{
117
  /*
118
    Values representing nature of image
119
  */
120
  unsigned long
121
    rows,
122
    columns;
123
124
  unsigned int
125
    number_scenes,
126
    samples_per_pixel,
127
    bits_allocated,
128
    significant_bits,
129
    bytes_per_pixel,
130
    max_value_in,
131
    max_value_out,
132
    high_bit,
133
    pixel_representation,
134
    interlace;
135
136
  Dicom_MSB
137
    msb_state;
138
139
  Dicom_PI
140
    phot_interp;
141
142
  double
143
    window_center,
144
    window_width,
145
    rescale_intercept,
146
    rescale_slope;
147
148
  Dicom_TS
149
    transfer_syntax;
150
151
  Dicom_RT
152
    rescale_type;
153
154
  Dicom_RS
155
    rescaling;
156
157
  /*
158
    Array to store offset table for fragments within image
159
  */
160
  magick_uint32_t
161
    offset_ct;
162
  magick_uint32_t *
163
    offset_arr;
164
165
  /*
166
    Variables used to handle fragments and RLE compression
167
  */
168
  magick_uint32_t
169
    frag_bytes;
170
171
  magick_uint32_t
172
    rle_seg_ct,
173
    rle_seg_offsets[15];
174
175
  int
176
    rle_rep_ct,
177
    rle_rep_char;
178
179
  /*
180
    Max and minimum sample values within image used for post rescale mapping
181
  */
182
  int
183
    upper_lim,
184
    lower_lim;
185
186
  Quantum
187
    *rescale_map; /* Allocated with dcm->max_value_in+1 entries */
188
189
#if defined(USE_GRAYMAP)
190
  unsigned short
191
    *graymap;
192
#endif
193
194
  /*
195
    Values representing last read element
196
  */
197
  unsigned short
198
    group,
199
    element;
200
201
  int
202
    index,
203
    datum;
204
205
  size_t
206
    quantum,
207
    length;
208
209
  unsigned char *
210
    data;
211
212
  /*
213
    Remaining fields for internal use by DCM_ReadElement and to read data
214
  */
215
  DicomReadShortFunc *
216
    funcReadShort;
217
218
  DicomReadLongFunc *
219
    funcReadLong;
220
221
  int
222
    explicit_file;
223
224
  unsigned int
225
    verbose;
226
} DicomStream;
227
228
/*
229
  Function type for parsing DICOM elements
230
*/
231
typedef MagickPassFail (DicomElemParseFunc)(Image *Image,DicomStream *dcm,ExceptionInfo *exception);
232
233
/*
234
  Forward declaration for parser functions
235
*/
236
static DicomElemParseFunc funcDCM_BitsAllocated;
237
static DicomElemParseFunc funcDCM_BitsStored;
238
static DicomElemParseFunc funcDCM_Columns;
239
static DicomElemParseFunc funcDCM_FieldOfView;
240
static DicomElemParseFunc funcDCM_HighBit;
241
static DicomElemParseFunc funcDCM_ImageOrientation;
242
static DicomElemParseFunc funcDCM_ImagePosition;
243
static DicomElemParseFunc funcDCM_LUT;
244
static DicomElemParseFunc funcDCM_NumberOfFrames;
245
static DicomElemParseFunc funcDCM_Palette;
246
static DicomElemParseFunc funcDCM_PaletteDescriptor;
247
static DicomElemParseFunc funcDCM_PatientName;
248
static DicomElemParseFunc funcDCM_PhotometricInterpretation;
249
static DicomElemParseFunc funcDCM_PixelRepresentation;
250
static DicomElemParseFunc funcDCM_PlanarConfiguration;
251
static DicomElemParseFunc funcDCM_RescaleIntercept;
252
static DicomElemParseFunc funcDCM_RescaleSlope;
253
static DicomElemParseFunc funcDCM_RescaleType;
254
static DicomElemParseFunc funcDCM_Rows;
255
static DicomElemParseFunc funcDCM_SamplesPerPixel;
256
static DicomElemParseFunc funcDCM_SeriesNumber;
257
static DicomElemParseFunc funcDCM_SliceLocation;
258
static DicomElemParseFunc funcDCM_StudyDate;
259
static DicomElemParseFunc funcDCM_TransferSyntax;
260
static DicomElemParseFunc funcDCM_TriggerTime;
261
static DicomElemParseFunc funcDCM_WindowCenter;
262
static DicomElemParseFunc funcDCM_WindowWidth;
263
264
static void DCM_SetRescaling(DicomStream *dcm,int avoid_scaling);
265
266
/*
267
  Function vectors for supported DICOM element parsing functions.
268
269
  We store the enumeration in the DICOM info table and use it to look
270
  up the callback function in the parse_funcs table.  This approach is
271
  used because we only support a small subset of possible functions,
272
  the pointers are large (8 bytes) on 64-bit systems, and because
273
  relocations in shared libraries (especially with ASLR support) cause
274
  the whole data-structure that the function pointers are stored in to
275
  become initialized data (which is then set read-only).  With this
276
  approach, only the list of parsing functions may be initialized data
277
  and we store a reference to the function using a smaller storage
278
  element.
279
280
  The list of enumerations and parsing functions must be in the same
281
  order (1:1 match).
282
*/
283
typedef enum _DICOM_PARSE_FUNC_T
284
  {
285
    FUNCDCM_NONE,
286
    FUNCDCM_BITSALLOCATED,
287
    FUNCDCM_BITSSTORED,
288
    FUNCDCM_COLUMNS,
289
    FUNCDCM_FIELDOFVIEW,
290
    FUNCDCM_HIGHBIT,
291
    FUNCDCM_IMAGEORIENTATION,
292
    FUNCDCM_IMAGEPOSITION,
293
    FUNCDCM_LUT,
294
    FUNCDCM_NUMBEROFFRAMES,
295
    FUNCDCM_PALETTE,
296
    FUNCDCM_PALETTEDESCRIPTOR,
297
    FUNCDCM_PATIENTNAME,
298
    FUNCDCM_PHOTOMETRICINTERPRETATION,
299
    FUNCDCM_PIXELREPRESENTATION,
300
    FUNCDCM_PLANARCONFIGURATION,
301
    FUNCDCM_RESCALEINTERCEPT,
302
    FUNCDCM_RESCALESLOPE,
303
    FUNCDCM_RESCALETYPE,
304
    FUNCDCM_ROWS,
305
    FUNCDCM_SAMPLESPERPIXEL,
306
    FUNCDCM_SERIESNUMBER,
307
    FUNCDCM_SLICELOCATION,
308
    FUNCDCM_STUDYDATE,
309
    FUNCDCM_TRANSFERSYNTAX,
310
    FUNCDCM_TRIGGERTIME,
311
    FUNCDCM_WINDOWCENTER,
312
    FUNCDCM_WINDOWWIDTH
313
  } DICOM_PARSE_FUNC_T;
314
315
static DicomElemParseFunc * parse_funcs[] =
316
  {
317
    (DicomElemParseFunc *) NULL ,
318
    (DicomElemParseFunc *) funcDCM_BitsAllocated ,
319
    (DicomElemParseFunc *) funcDCM_BitsStored ,
320
    (DicomElemParseFunc *) funcDCM_Columns ,
321
    (DicomElemParseFunc *) funcDCM_FieldOfView ,
322
    (DicomElemParseFunc *) funcDCM_HighBit ,
323
    (DicomElemParseFunc *) funcDCM_ImageOrientation ,
324
    (DicomElemParseFunc *) funcDCM_ImagePosition ,
325
    (DicomElemParseFunc *) funcDCM_LUT ,
326
    (DicomElemParseFunc *) funcDCM_NumberOfFrames ,
327
    (DicomElemParseFunc *) funcDCM_Palette ,
328
    (DicomElemParseFunc *) funcDCM_PaletteDescriptor ,
329
    (DicomElemParseFunc *) funcDCM_PatientName ,
330
    (DicomElemParseFunc *) funcDCM_PhotometricInterpretation ,
331
    (DicomElemParseFunc *) funcDCM_PixelRepresentation ,
332
    (DicomElemParseFunc *) funcDCM_PlanarConfiguration ,
333
    (DicomElemParseFunc *) funcDCM_RescaleIntercept ,
334
    (DicomElemParseFunc *) funcDCM_RescaleSlope ,
335
    (DicomElemParseFunc *) funcDCM_RescaleType ,
336
    (DicomElemParseFunc *) funcDCM_Rows ,
337
    (DicomElemParseFunc *) funcDCM_SamplesPerPixel ,
338
    (DicomElemParseFunc *) funcDCM_SeriesNumber ,
339
    (DicomElemParseFunc *) funcDCM_SliceLocation ,
340
    (DicomElemParseFunc *) funcDCM_StudyDate ,
341
    (DicomElemParseFunc *) funcDCM_TransferSyntax ,
342
    (DicomElemParseFunc *) funcDCM_TriggerTime ,
343
    (DicomElemParseFunc *) funcDCM_WindowCenter ,
344
    (DicomElemParseFunc *) funcDCM_WindowWidth
345
  };
346
347
/*
348
  Type for holding information on DICOM elements
349
*/
350
#define DESCRIPION_STR 1 /* Description text elements in one big string */
351
typedef struct _DicomInfo
352
{
353
  const unsigned short
354
    group,
355
    element;
356
357
  const char
358
    vr[3];
359
360
#if !DESCRIPION_STR
361
  const char
362
    *description;
363
#endif /* DESCRIPION_STR */
364
365
  const unsigned char /* DICOM_PARSE_FUNC_T */
366
    funce;
367
368
} DicomInfo;
369
370
/*
371
  Array holding information on DICOM elements
372
*/
373
static const DicomInfo
374
  dicom_info[]=
375
  {
376
#if DESCRIPION_STR
377
#define ENTRY(group, element, vr, description, pfunc) {group, element, vr, pfunc}
378
#else
379
#define ENTRY(group, element, vr, description, pfunc) {group, element, vr, description, pfunc}
380
#endif
381
    ENTRY( 0x0000, 0x0000, "UL", "Group Length", FUNCDCM_NONE ),
382
    ENTRY( 0x0000, 0x0001, "UL", "Command Length to End", FUNCDCM_NONE ),
383
    ENTRY( 0x0000, 0x0002, "UI", "Affected SOP Class UID", FUNCDCM_NONE ),
384
    ENTRY( 0x0000, 0x0003, "UI", "Requested SOP Class UID", FUNCDCM_NONE ),
385
    ENTRY( 0x0000, 0x0010, "LO", "Command Recognition Code", FUNCDCM_NONE ),
386
    ENTRY( 0x0000, 0x0100, "US", "Command Field", FUNCDCM_NONE ),
387
    ENTRY( 0x0000, 0x0110, "US", "Message ID", FUNCDCM_NONE ),
388
    ENTRY( 0x0000, 0x0120, "US", "Message ID Being Responded To", FUNCDCM_NONE ),
389
    ENTRY( 0x0000, 0x0200, "AE", "Initiator", FUNCDCM_NONE ),
390
    ENTRY( 0x0000, 0x0300, "AE", "Receiver", FUNCDCM_NONE ),
391
    ENTRY( 0x0000, 0x0400, "AE", "Find Location", FUNCDCM_NONE ),
392
    ENTRY( 0x0000, 0x0600, "AE", "Move Destination", FUNCDCM_NONE ),
393
    ENTRY( 0x0000, 0x0700, "US", "Priority", FUNCDCM_NONE ),
394
    ENTRY( 0x0000, 0x0800, "US", "Data Set Type", FUNCDCM_NONE ),
395
    ENTRY( 0x0000, 0x0850, "US", "Number of Matches", FUNCDCM_NONE ),
396
    ENTRY( 0x0000, 0x0860, "US", "Response Sequence Number", FUNCDCM_NONE ),
397
    ENTRY( 0x0000, 0x0900, "US", "Status", FUNCDCM_NONE ),
398
    ENTRY( 0x0000, 0x0901, "AT", "Offending Element", FUNCDCM_NONE ),
399
    ENTRY( 0x0000, 0x0902, "LO", "Exception Comment", FUNCDCM_NONE ),
400
    ENTRY( 0x0000, 0x0903, "US", "Exception ID", FUNCDCM_NONE ),
401
    ENTRY( 0x0000, 0x1000, "UI", "Affected SOP Instance UID", FUNCDCM_NONE ),
402
    ENTRY( 0x0000, 0x1001, "UI", "Requested SOP Instance UID", FUNCDCM_NONE ),
403
    ENTRY( 0x0000, 0x1002, "US", "Event Type ID", FUNCDCM_NONE ),
404
    ENTRY( 0x0000, 0x1005, "AT", "Attribute Identifier List", FUNCDCM_NONE ),
405
    ENTRY( 0x0000, 0x1008, "US", "Action Type ID", FUNCDCM_NONE ),
406
    ENTRY( 0x0000, 0x1020, "US", "Number of Remaining Suboperations", FUNCDCM_NONE ),
407
    ENTRY( 0x0000, 0x1021, "US", "Number of Completed Suboperations", FUNCDCM_NONE ),
408
    ENTRY( 0x0000, 0x1022, "US", "Number of Failed Suboperations", FUNCDCM_NONE ),
409
    ENTRY( 0x0000, 0x1023, "US", "Number of Warning Suboperations", FUNCDCM_NONE ),
410
    ENTRY( 0x0000, 0x1030, "AE", "Move Originator Application Entity Title", FUNCDCM_NONE ),
411
    ENTRY( 0x0000, 0x1031, "US", "Move Originator Message ID", FUNCDCM_NONE ),
412
    ENTRY( 0x0000, 0x4000, "LO", "Dialog Receiver", FUNCDCM_NONE ),
413
    ENTRY( 0x0000, 0x4010, "LO", "Terminal Type", FUNCDCM_NONE ),
414
    ENTRY( 0x0000, 0x5010, "SH", "Message Set ID", FUNCDCM_NONE ),
415
    ENTRY( 0x0000, 0x5020, "SH", "End Message Set", FUNCDCM_NONE ),
416
    ENTRY( 0x0000, 0x5110, "LO", "Display Format", FUNCDCM_NONE ),
417
    ENTRY( 0x0000, 0x5120, "LO", "Page Position ID", FUNCDCM_NONE ),
418
    ENTRY( 0x0000, 0x5130, "LO", "Text Format ID", FUNCDCM_NONE ),
419
    ENTRY( 0x0000, 0x5140, "LO", "Normal Reverse", FUNCDCM_NONE ),
420
    ENTRY( 0x0000, 0x5150, "LO", "Add Gray Scale", FUNCDCM_NONE ),
421
    ENTRY( 0x0000, 0x5160, "LO", "Borders", FUNCDCM_NONE ),
422
    ENTRY( 0x0000, 0x5170, "IS", "Copies", FUNCDCM_NONE ),
423
    ENTRY( 0x0000, 0x5180, "LO", "OldMagnificationType", FUNCDCM_NONE ),
424
    ENTRY( 0x0000, 0x5190, "LO", "Erase", FUNCDCM_NONE ),
425
    ENTRY( 0x0000, 0x51a0, "LO", "Print", FUNCDCM_NONE ),
426
    ENTRY( 0x0000, 0x51b0, "US", "Overlays", FUNCDCM_NONE ),
427
    ENTRY( 0x0002, 0x0000, "UL", "Meta Element Group Length", FUNCDCM_NONE ),
428
    ENTRY( 0x0002, 0x0001, "OB", "File Meta Information Version", FUNCDCM_NONE ),
429
    ENTRY( 0x0002, 0x0002, "UI", "Media Storage SOP Class UID", FUNCDCM_NONE ),
430
    ENTRY( 0x0002, 0x0003, "UI", "Media Storage SOP Instance UID", FUNCDCM_NONE ),
431
    ENTRY( 0x0002, 0x0010, "UI", "Transfer Syntax UID", FUNCDCM_TRANSFERSYNTAX ),
432
    ENTRY( 0x0002, 0x0012, "UI", "Implementation Class UID", FUNCDCM_NONE ),
433
    ENTRY( 0x0002, 0x0013, "SH", "Implementation Version Name", FUNCDCM_NONE ),
434
    ENTRY( 0x0002, 0x0016, "AE", "Source Application Entity Title", FUNCDCM_NONE ),
435
    ENTRY( 0x0002, 0x0100, "UI", "Private Information Creator UID", FUNCDCM_NONE ),
436
    ENTRY( 0x0002, 0x0102, "OB", "Private Information", FUNCDCM_NONE ),
437
    ENTRY( 0x0003, 0x0000, "US", "?", FUNCDCM_NONE ),
438
    ENTRY( 0x0003, 0x0008, "US", "ISI Command Field", FUNCDCM_NONE ),
439
    ENTRY( 0x0003, 0x0011, "US", "Attach ID Application Code", FUNCDCM_NONE ),
440
    ENTRY( 0x0003, 0x0012, "UL", "Attach ID Message Count", FUNCDCM_NONE ),
441
    ENTRY( 0x0003, 0x0013, "DA", "Attach ID Date", FUNCDCM_NONE ),
442
    ENTRY( 0x0003, 0x0014, "TM", "Attach ID Time", FUNCDCM_NONE ),
443
    ENTRY( 0x0003, 0x0020, "US", "Message Type", FUNCDCM_NONE ),
444
    ENTRY( 0x0003, 0x0030, "DA", "Max Waiting Date", FUNCDCM_NONE ),
445
    ENTRY( 0x0003, 0x0031, "TM", "Max Waiting Time", FUNCDCM_NONE ),
446
    ENTRY( 0x0004, 0x0000, "UL", "File Set Group Length", FUNCDCM_NONE ),
447
    ENTRY( 0x0004, 0x1130, "CS", "File Set ID", FUNCDCM_NONE ),
448
    ENTRY( 0x0004, 0x1141, "CS", "File Set Descriptor File ID", FUNCDCM_NONE ),
449
    ENTRY( 0x0004, 0x1142, "CS", "File Set Descriptor File Specific Character Set", FUNCDCM_NONE ),
450
    ENTRY( 0x0004, 0x1200, "UL", "Root Directory Entity First Directory Record Offset", FUNCDCM_NONE ),
451
    ENTRY( 0x0004, 0x1202, "UL", "Root Directory Entity Last Directory Record Offset", FUNCDCM_NONE ),
452
    ENTRY( 0x0004, 0x1212, "US", "File Set Consistency Flag", FUNCDCM_NONE ),
453
    ENTRY( 0x0004, 0x1220, "SQ", "Directory Record Sequence", FUNCDCM_NONE ),
454
    ENTRY( 0x0004, 0x1400, "UL", "Next Directory Record Offset", FUNCDCM_NONE ),
455
    ENTRY( 0x0004, 0x1410, "US", "Record In Use Flag", FUNCDCM_NONE ),
456
    ENTRY( 0x0004, 0x1420, "UL", "Referenced Lower Level Directory Entity Offset", FUNCDCM_NONE ),
457
    ENTRY( 0x0004, 0x1430, "CS", "Directory Record Type", FUNCDCM_NONE ),
458
    ENTRY( 0x0004, 0x1432, "UI", "Private Record UID", FUNCDCM_NONE ),
459
    ENTRY( 0x0004, 0x1500, "CS", "Referenced File ID", FUNCDCM_NONE ),
460
    ENTRY( 0x0004, 0x1504, "UL", "MRDR Directory Record Offset", FUNCDCM_NONE ),
461
    ENTRY( 0x0004, 0x1510, "UI", "Referenced SOP Class UID In File", FUNCDCM_NONE ),
462
    ENTRY( 0x0004, 0x1511, "UI", "Referenced SOP Instance UID In File", FUNCDCM_NONE ),
463
    ENTRY( 0x0004, 0x1512, "UI", "Referenced Transfer Syntax UID In File", FUNCDCM_NONE ),
464
    ENTRY( 0x0004, 0x1600, "UL", "Number of References", FUNCDCM_NONE ),
465
    ENTRY( 0x0005, 0x0000, "US", "?", FUNCDCM_NONE ),
466
    ENTRY( 0x0006, 0x0000, "US", "?", FUNCDCM_NONE ),
467
    ENTRY( 0x0008, 0x0000, "UL", "Identifying Group Length", FUNCDCM_NONE ),
468
    ENTRY( 0x0008, 0x0001, "UL", "Length to End", FUNCDCM_NONE ),
469
    ENTRY( 0x0008, 0x0005, "CS", "Specific Character Set", FUNCDCM_NONE ),
470
    ENTRY( 0x0008, 0x0008, "CS", "Image Type", FUNCDCM_NONE ),
471
    ENTRY( 0x0008, 0x0010, "LO", "Recognition Code", FUNCDCM_NONE ),
472
    ENTRY( 0x0008, 0x0012, "DA", "Instance Creation Date", FUNCDCM_NONE ),
473
    ENTRY( 0x0008, 0x0013, "TM", "Instance Creation Time", FUNCDCM_NONE ),
474
    ENTRY( 0x0008, 0x0014, "UI", "Instance Creator UID", FUNCDCM_NONE ),
475
    ENTRY( 0x0008, 0x0016, "UI", "SOP Class UID", FUNCDCM_NONE ),
476
    ENTRY( 0x0008, 0x0018, "UI", "SOP Instance UID", FUNCDCM_NONE ),
477
    ENTRY( 0x0008, 0x0020, "DA", "Study Date", FUNCDCM_STUDYDATE ),
478
    ENTRY( 0x0008, 0x0021, "DA", "Series Date", FUNCDCM_NONE ),
479
    ENTRY( 0x0008, 0x0022, "DA", "Acquisition Date", FUNCDCM_NONE ),
480
    ENTRY( 0x0008, 0x0023, "DA", "Image Date", FUNCDCM_NONE ),
481
    ENTRY( 0x0008, 0x0024, "DA", "Overlay Date", FUNCDCM_NONE ),
482
    ENTRY( 0x0008, 0x0025, "DA", "Curve Date", FUNCDCM_NONE ),
483
    ENTRY( 0x0008, 0x0030, "TM", "Study Time", FUNCDCM_NONE ),
484
    ENTRY( 0x0008, 0x0031, "TM", "Series Time", FUNCDCM_NONE ),
485
    ENTRY( 0x0008, 0x0032, "TM", "Acquisition Time", FUNCDCM_NONE ),
486
    ENTRY( 0x0008, 0x0033, "TM", "Image Time", FUNCDCM_NONE ),
487
    ENTRY( 0x0008, 0x0034, "TM", "Overlay Time", FUNCDCM_NONE ),
488
    ENTRY( 0x0008, 0x0035, "TM", "Curve Time", FUNCDCM_NONE ),
489
    ENTRY( 0x0008, 0x0040, "xs", "Old Data Set Type", FUNCDCM_NONE ),
490
    ENTRY( 0x0008, 0x0041, "xs", "Old Data Set Subtype", FUNCDCM_NONE ),
491
    ENTRY( 0x0008, 0x0042, "CS", "Nuclear Medicine Series Type", FUNCDCM_NONE ),
492
    ENTRY( 0x0008, 0x0050, "SH", "Accession Number", FUNCDCM_NONE ),
493
    ENTRY( 0x0008, 0x0052, "CS", "Query/Retrieve Level", FUNCDCM_NONE ),
494
    ENTRY( 0x0008, 0x0054, "AE", "Retrieve AE Title", FUNCDCM_NONE ),
495
    ENTRY( 0x0008, 0x0058, "UI", "Failed SOP Instance UID List", FUNCDCM_NONE ),
496
    ENTRY( 0x0008, 0x0060, "CS", "Modality", FUNCDCM_NONE ),
497
    ENTRY( 0x0008, 0x0062, "SQ", "Modality Subtype", FUNCDCM_NONE ),
498
    ENTRY( 0x0008, 0x0064, "CS", "Conversion Type", FUNCDCM_NONE ),
499
    ENTRY( 0x0008, 0x0068, "CS", "Presentation Intent Type", FUNCDCM_NONE ),
500
    ENTRY( 0x0008, 0x0070, "LO", "Manufacturer", FUNCDCM_NONE ),
501
    ENTRY( 0x0008, 0x0080, "LO", "Institution Name", FUNCDCM_NONE ),
502
    ENTRY( 0x0008, 0x0081, "ST", "Institution Address", FUNCDCM_NONE ),
503
    ENTRY( 0x0008, 0x0082, "SQ", "Institution Code Sequence", FUNCDCM_NONE ),
504
    ENTRY( 0x0008, 0x0090, "PN", "Referring Physician's Name", FUNCDCM_NONE ),
505
    ENTRY( 0x0008, 0x0092, "ST", "Referring Physician's Address", FUNCDCM_NONE ),
506
    ENTRY( 0x0008, 0x0094, "SH", "Referring Physician's Telephone Numbers", FUNCDCM_NONE ),
507
    ENTRY( 0x0008, 0x0100, "SH", "Code Value", FUNCDCM_NONE ),
508
    ENTRY( 0x0008, 0x0102, "SH", "Coding Scheme Designator", FUNCDCM_NONE ),
509
    ENTRY( 0x0008, 0x0103, "SH", "Coding Scheme Version", FUNCDCM_NONE ),
510
    ENTRY( 0x0008, 0x0104, "LO", "Code Meaning", FUNCDCM_NONE ),
511
    ENTRY( 0x0008, 0x0105, "CS", "Mapping Resource", FUNCDCM_NONE ),
512
    ENTRY( 0x0008, 0x0106, "DT", "Context Group Version", FUNCDCM_NONE ),
513
    ENTRY( 0x0008, 0x010b, "CS", "Code Set Extension Flag", FUNCDCM_NONE ),
514
    ENTRY( 0x0008, 0x010c, "UI", "Private Coding Scheme Creator UID", FUNCDCM_NONE ),
515
    ENTRY( 0x0008, 0x010d, "UI", "Code Set Extension Creator UID", FUNCDCM_NONE ),
516
    ENTRY( 0x0008, 0x010f, "CS", "Context Identifier", FUNCDCM_NONE ),
517
    ENTRY( 0x0008, 0x1000, "LT", "Network ID", FUNCDCM_NONE ),
518
    ENTRY( 0x0008, 0x1010, "SH", "Station Name", FUNCDCM_NONE ),
519
    ENTRY( 0x0008, 0x1030, "LO", "Study Description", FUNCDCM_NONE ),
520
    ENTRY( 0x0008, 0x1032, "SQ", "Procedure Code Sequence", FUNCDCM_NONE ),
521
    ENTRY( 0x0008, 0x103e, "LO", "Series Description", FUNCDCM_NONE ),
522
    ENTRY( 0x0008, 0x1040, "LO", "Institutional Department Name", FUNCDCM_NONE ),
523
    ENTRY( 0x0008, 0x1048, "PN", "Physician of Record", FUNCDCM_NONE ),
524
    ENTRY( 0x0008, 0x1050, "PN", "Performing Physician's Name", FUNCDCM_NONE ),
525
    ENTRY( 0x0008, 0x1060, "PN", "Name of Physician(s) Reading Study", FUNCDCM_NONE ),
526
    ENTRY( 0x0008, 0x1070, "PN", "Operator's Name", FUNCDCM_NONE ),
527
    ENTRY( 0x0008, 0x1080, "LO", "Admitting Diagnosis Description", FUNCDCM_NONE ),
528
    ENTRY( 0x0008, 0x1084, "SQ", "Admitting Diagnosis Code Sequence", FUNCDCM_NONE ),
529
    ENTRY( 0x0008, 0x1090, "LO", "Manufacturer's Model Name", FUNCDCM_NONE ),
530
    ENTRY( 0x0008, 0x1100, "SQ", "Referenced Results Sequence", FUNCDCM_NONE ),
531
    ENTRY( 0x0008, 0x1110, "SQ", "Referenced Study Sequence", FUNCDCM_NONE ),
532
    ENTRY( 0x0008, 0x1111, "SQ", "Referenced Study Component Sequence", FUNCDCM_NONE ),
533
    ENTRY( 0x0008, 0x1115, "SQ", "Referenced Series Sequence", FUNCDCM_NONE ),
534
    ENTRY( 0x0008, 0x1120, "SQ", "Referenced Patient Sequence", FUNCDCM_NONE ),
535
    ENTRY( 0x0008, 0x1125, "SQ", "Referenced Visit Sequence", FUNCDCM_NONE ),
536
    ENTRY( 0x0008, 0x1130, "SQ", "Referenced Overlay Sequence", FUNCDCM_NONE ),
537
    ENTRY( 0x0008, 0x1140, "SQ", "Referenced Image Sequence", FUNCDCM_NONE ),
538
    ENTRY( 0x0008, 0x1145, "SQ", "Referenced Curve Sequence", FUNCDCM_NONE ),
539
    ENTRY( 0x0008, 0x1148, "SQ", "Referenced Previous Waveform", FUNCDCM_NONE ),
540
    ENTRY( 0x0008, 0x114a, "SQ", "Referenced Simultaneous Waveforms", FUNCDCM_NONE ),
541
    ENTRY( 0x0008, 0x114c, "SQ", "Referenced Subsequent Waveform", FUNCDCM_NONE ),
542
    ENTRY( 0x0008, 0x1150, "UI", "Referenced SOP Class UID", FUNCDCM_NONE ),
543
    ENTRY( 0x0008, 0x1155, "UI", "Referenced SOP Instance UID", FUNCDCM_NONE ),
544
    ENTRY( 0x0008, 0x1160, "IS", "Referenced Frame Number", FUNCDCM_NONE ),
545
    ENTRY( 0x0008, 0x1195, "UI", "Transaction UID", FUNCDCM_NONE ),
546
    ENTRY( 0x0008, 0x1197, "US", "Failure Reason", FUNCDCM_NONE ),
547
    ENTRY( 0x0008, 0x1198, "SQ", "Failed SOP Sequence", FUNCDCM_NONE ),
548
    ENTRY( 0x0008, 0x1199, "SQ", "Referenced SOP Sequence", FUNCDCM_NONE ),
549
    ENTRY( 0x0008, 0x2110, "CS", "Old Lossy Image Compression", FUNCDCM_NONE ),
550
    ENTRY( 0x0008, 0x2111, "ST", "Derivation Description", FUNCDCM_NONE ),
551
    ENTRY( 0x0008, 0x2112, "SQ", "Source Image Sequence", FUNCDCM_NONE ),
552
    ENTRY( 0x0008, 0x2120, "SH", "Stage Name", FUNCDCM_NONE ),
553
    ENTRY( 0x0008, 0x2122, "IS", "Stage Number", FUNCDCM_NONE ),
554
    ENTRY( 0x0008, 0x2124, "IS", "Number of Stages", FUNCDCM_NONE ),
555
    ENTRY( 0x0008, 0x2128, "IS", "View Number", FUNCDCM_NONE ),
556
    ENTRY( 0x0008, 0x2129, "IS", "Number of Event Timers", FUNCDCM_NONE ),
557
    ENTRY( 0x0008, 0x212a, "IS", "Number of Views in Stage", FUNCDCM_NONE ),
558
    ENTRY( 0x0008, 0x2130, "DS", "Event Elapsed Time(s)", FUNCDCM_NONE ),
559
    ENTRY( 0x0008, 0x2132, "LO", "Event Timer Name(s)", FUNCDCM_NONE ),
560
    ENTRY( 0x0008, 0x2142, "IS", "Start Trim", FUNCDCM_NONE ),
561
    ENTRY( 0x0008, 0x2143, "IS", "Stop Trim", FUNCDCM_NONE ),
562
    ENTRY( 0x0008, 0x2144, "IS", "Recommended Display Frame Rate", FUNCDCM_NONE ),
563
    ENTRY( 0x0008, 0x2200, "CS", "Transducer Position", FUNCDCM_NONE ),
564
    ENTRY( 0x0008, 0x2204, "CS", "Transducer Orientation", FUNCDCM_NONE ),
565
    ENTRY( 0x0008, 0x2208, "CS", "Anatomic Structure", FUNCDCM_NONE ),
566
    ENTRY( 0x0008, 0x2218, "SQ", "Anatomic Region Sequence", FUNCDCM_NONE ),
567
    ENTRY( 0x0008, 0x2220, "SQ", "Anatomic Region Modifier Sequence", FUNCDCM_NONE ),
568
    ENTRY( 0x0008, 0x2228, "SQ", "Primary Anatomic Structure Sequence", FUNCDCM_NONE ),
569
    ENTRY( 0x0008, 0x2230, "SQ", "Primary Anatomic Structure Modifier Sequence", FUNCDCM_NONE ),
570
    ENTRY( 0x0008, 0x2240, "SQ", "Transducer Position Sequence", FUNCDCM_NONE ),
571
    ENTRY( 0x0008, 0x2242, "SQ", "Transducer Position Modifier Sequence", FUNCDCM_NONE ),
572
    ENTRY( 0x0008, 0x2244, "SQ", "Transducer Orientation Sequence", FUNCDCM_NONE ),
573
    ENTRY( 0x0008, 0x2246, "SQ", "Transducer Orientation Modifier Sequence", FUNCDCM_NONE ),
574
    ENTRY( 0x0008, 0x2251, "SQ", "Anatomic Structure Space Or Region Code Sequence", FUNCDCM_NONE ),
575
    ENTRY( 0x0008, 0x2253, "SQ", "Anatomic Portal Of Entrance Code Sequence", FUNCDCM_NONE ),
576
    ENTRY( 0x0008, 0x2255, "SQ", "Anatomic Approach Direction Code Sequence", FUNCDCM_NONE ),
577
    ENTRY( 0x0008, 0x2256, "ST", "Anatomic Perspective Description", FUNCDCM_NONE ),
578
    ENTRY( 0x0008, 0x2257, "SQ", "Anatomic Perspective Code Sequence", FUNCDCM_NONE ),
579
    ENTRY( 0x0008, 0x2258, "ST", "Anatomic Location Of Examining Instrument Description", FUNCDCM_NONE ),
580
    ENTRY( 0x0008, 0x2259, "SQ", "Anatomic Location Of Examining Instrument Code Sequence", FUNCDCM_NONE ),
581
    ENTRY( 0x0008, 0x225a, "SQ", "Anatomic Structure Space Or Region Modifier Code Sequence", FUNCDCM_NONE ),
582
    ENTRY( 0x0008, 0x225c, "SQ", "OnAxis Background Anatomic Structure Code Sequence", FUNCDCM_NONE ),
583
    ENTRY( 0x0008, 0x4000, "LT", "Identifying Comments", FUNCDCM_NONE ),
584
    ENTRY( 0x0009, 0x0000, "xs", "?", FUNCDCM_NONE ),
585
    ENTRY( 0x0009, 0x0001, "xs", "?", FUNCDCM_NONE ),
586
    ENTRY( 0x0009, 0x0002, "xs", "?", FUNCDCM_NONE ),
587
    ENTRY( 0x0009, 0x0003, "xs", "?", FUNCDCM_NONE ),
588
    ENTRY( 0x0009, 0x0004, "xs", "?", FUNCDCM_NONE ),
589
    ENTRY( 0x0009, 0x0005, "UN", "?", FUNCDCM_NONE ),
590
    ENTRY( 0x0009, 0x0006, "UN", "?", FUNCDCM_NONE ),
591
    ENTRY( 0x0009, 0x0007, "UN", "?", FUNCDCM_NONE ),
592
    ENTRY( 0x0009, 0x0008, "xs", "?", FUNCDCM_NONE ),
593
    ENTRY( 0x0009, 0x0009, "LT", "?", FUNCDCM_NONE ),
594
    ENTRY( 0x0009, 0x000a, "IS", "?", FUNCDCM_NONE ),
595
    ENTRY( 0x0009, 0x000b, "IS", "?", FUNCDCM_NONE ),
596
    ENTRY( 0x0009, 0x000c, "IS", "?", FUNCDCM_NONE ),
597
    ENTRY( 0x0009, 0x000d, "IS", "?", FUNCDCM_NONE ),
598
    ENTRY( 0x0009, 0x000e, "IS", "?", FUNCDCM_NONE ),
599
    ENTRY( 0x0009, 0x000f, "UN", "?", FUNCDCM_NONE ),
600
    ENTRY( 0x0009, 0x0010, "xs", "?", FUNCDCM_NONE ),
601
    ENTRY( 0x0009, 0x0011, "xs", "?", FUNCDCM_NONE ),
602
    ENTRY( 0x0009, 0x0012, "xs", "?", FUNCDCM_NONE ),
603
    ENTRY( 0x0009, 0x0013, "xs", "?", FUNCDCM_NONE ),
604
    ENTRY( 0x0009, 0x0014, "xs", "?", FUNCDCM_NONE ),
605
    ENTRY( 0x0009, 0x0015, "xs", "?", FUNCDCM_NONE ),
606
    ENTRY( 0x0009, 0x0016, "xs", "?", FUNCDCM_NONE ),
607
    ENTRY( 0x0009, 0x0017, "LT", "?", FUNCDCM_NONE ),
608
    ENTRY( 0x0009, 0x0018, "LT", "Data Set Identifier", FUNCDCM_NONE ),
609
    ENTRY( 0x0009, 0x001a, "US", "?", FUNCDCM_NONE ),
610
    ENTRY( 0x0009, 0x001e, "UI", "?", FUNCDCM_NONE ),
611
    ENTRY( 0x0009, 0x0020, "xs", "?", FUNCDCM_NONE ),
612
    ENTRY( 0x0009, 0x0021, "xs", "?", FUNCDCM_NONE ),
613
    ENTRY( 0x0009, 0x0022, "SH", "User Orientation", FUNCDCM_NONE ),
614
    ENTRY( 0x0009, 0x0023, "SL", "Initiation Type", FUNCDCM_NONE ),
615
    ENTRY( 0x0009, 0x0024, "xs", "?", FUNCDCM_NONE ),
616
    ENTRY( 0x0009, 0x0025, "xs", "?", FUNCDCM_NONE ),
617
    ENTRY( 0x0009, 0x0026, "xs", "?", FUNCDCM_NONE ),
618
    ENTRY( 0x0009, 0x0027, "xs", "?", FUNCDCM_NONE ),
619
    ENTRY( 0x0009, 0x0029, "xs", "?", FUNCDCM_NONE ),
620
    ENTRY( 0x0009, 0x002a, "SL", "?", FUNCDCM_NONE ),
621
    ENTRY( 0x0009, 0x002c, "LO", "Series Comments", FUNCDCM_NONE ),
622
    ENTRY( 0x0009, 0x002d, "SL", "Track Beat Average", FUNCDCM_NONE ),
623
    ENTRY( 0x0009, 0x002e, "FD", "Distance Prescribed", FUNCDCM_NONE ),
624
    ENTRY( 0x0009, 0x002f, "LT", "?", FUNCDCM_NONE ),
625
    ENTRY( 0x0009, 0x0030, "xs", "?", FUNCDCM_NONE ),
626
    ENTRY( 0x0009, 0x0031, "xs", "?", FUNCDCM_NONE ),
627
    ENTRY( 0x0009, 0x0032, "LT", "?", FUNCDCM_NONE ),
628
    ENTRY( 0x0009, 0x0034, "xs", "?", FUNCDCM_NONE ),
629
    ENTRY( 0x0009, 0x0035, "SL", "Gantry Locus Type", FUNCDCM_NONE ),
630
    ENTRY( 0x0009, 0x0037, "SL", "Starting Heart Rate", FUNCDCM_NONE ),
631
    ENTRY( 0x0009, 0x0038, "xs", "?", FUNCDCM_NONE ),
632
    ENTRY( 0x0009, 0x0039, "SL", "RR Window Offset", FUNCDCM_NONE ),
633
    ENTRY( 0x0009, 0x003a, "SL", "Percent Cycle Imaged", FUNCDCM_NONE ),
634
    ENTRY( 0x0009, 0x003e, "US", "?", FUNCDCM_NONE ),
635
    ENTRY( 0x0009, 0x003f, "US", "?", FUNCDCM_NONE ),
636
    ENTRY( 0x0009, 0x0040, "xs", "?", FUNCDCM_NONE ),
637
    ENTRY( 0x0009, 0x0041, "xs", "?", FUNCDCM_NONE ),
638
    ENTRY( 0x0009, 0x0042, "xs", "?", FUNCDCM_NONE ),
639
    ENTRY( 0x0009, 0x0043, "xs", "?", FUNCDCM_NONE ),
640
    ENTRY( 0x0009, 0x0050, "LT", "?", FUNCDCM_NONE ),
641
    ENTRY( 0x0009, 0x0051, "xs", "?", FUNCDCM_NONE ),
642
    ENTRY( 0x0009, 0x0060, "LT", "?", FUNCDCM_NONE ),
643
    ENTRY( 0x0009, 0x0061, "LT", "Series Unique Identifier", FUNCDCM_NONE ),
644
    ENTRY( 0x0009, 0x0070, "LT", "?", FUNCDCM_NONE ),
645
    ENTRY( 0x0009, 0x0080, "LT", "?", FUNCDCM_NONE ),
646
    ENTRY( 0x0009, 0x0091, "LT", "?", FUNCDCM_NONE ),
647
    ENTRY( 0x0009, 0x00e2, "LT", "?", FUNCDCM_NONE ),
648
    ENTRY( 0x0009, 0x00e3, "UI", "Equipment UID", FUNCDCM_NONE ),
649
    ENTRY( 0x0009, 0x00e6, "SH", "Genesis Version Now", FUNCDCM_NONE ),
650
    ENTRY( 0x0009, 0x00e7, "UL", "Exam Record Checksum", FUNCDCM_NONE ),
651
    ENTRY( 0x0009, 0x00e8, "UL", "?", FUNCDCM_NONE ),
652
    ENTRY( 0x0009, 0x00e9, "SL", "Actual Series Data Time Stamp", FUNCDCM_NONE ),
653
    ENTRY( 0x0009, 0x00f2, "UN", "?", FUNCDCM_NONE ),
654
    ENTRY( 0x0009, 0x00f3, "UN", "?", FUNCDCM_NONE ),
655
    ENTRY( 0x0009, 0x00f4, "LT", "?", FUNCDCM_NONE ),
656
    ENTRY( 0x0009, 0x00f5, "xs", "?", FUNCDCM_NONE ),
657
    ENTRY( 0x0009, 0x00f6, "LT", "PDM Data Object Type Extension", FUNCDCM_NONE ),
658
    ENTRY( 0x0009, 0x00f8, "US", "?", FUNCDCM_NONE ),
659
    ENTRY( 0x0009, 0x00fb, "IS", "?", FUNCDCM_NONE ),
660
    ENTRY( 0x0009, 0x1002, "OB", "?", FUNCDCM_NONE ),
661
    ENTRY( 0x0009, 0x1003, "OB", "?", FUNCDCM_NONE ),
662
    ENTRY( 0x0009, 0x1010, "UN", "?", FUNCDCM_NONE ),
663
    ENTRY( 0x0010, 0x0000, "UL", "Patient Group Length", FUNCDCM_NONE ),
664
    ENTRY( 0x0010, 0x0010, "PN", "Patient's Name", FUNCDCM_PATIENTNAME ),
665
    ENTRY( 0x0010, 0x0020, "LO", "Patient's ID", FUNCDCM_NONE ),
666
    ENTRY( 0x0010, 0x0021, "LO", "Issuer of Patient's ID", FUNCDCM_NONE ),
667
    ENTRY( 0x0010, 0x0030, "DA", "Patient's Birth Date", FUNCDCM_NONE ),
668
    ENTRY( 0x0010, 0x0032, "TM", "Patient's Birth Time", FUNCDCM_NONE ),
669
    ENTRY( 0x0010, 0x0040, "CS", "Patient's Sex", FUNCDCM_NONE ),
670
    ENTRY( 0x0010, 0x0050, "SQ", "Patient's Insurance Plan Code Sequence", FUNCDCM_NONE ),
671
    ENTRY( 0x0010, 0x1000, "LO", "Other Patient's ID's", FUNCDCM_NONE ),
672
    ENTRY( 0x0010, 0x1001, "PN", "Other Patient's Names", FUNCDCM_NONE ),
673
    ENTRY( 0x0010, 0x1005, "PN", "Patient's Birth Name", FUNCDCM_NONE ),
674
    ENTRY( 0x0010, 0x1010, "AS", "Patient's Age", FUNCDCM_NONE ),
675
    ENTRY( 0x0010, 0x1020, "DS", "Patient's Size", FUNCDCM_NONE ),
676
    ENTRY( 0x0010, 0x1030, "DS", "Patient's Weight", FUNCDCM_NONE ),
677
    ENTRY( 0x0010, 0x1040, "LO", "Patient's Address", FUNCDCM_NONE ),
678
    ENTRY( 0x0010, 0x1050, "LT", "Insurance Plan Identification", FUNCDCM_NONE ),
679
    ENTRY( 0x0010, 0x1060, "PN", "Patient's Mother's Birth Name", FUNCDCM_NONE ),
680
    ENTRY( 0x0010, 0x1080, "LO", "Military Rank", FUNCDCM_NONE ),
681
    ENTRY( 0x0010, 0x1081, "LO", "Branch of Service", FUNCDCM_NONE ),
682
    ENTRY( 0x0010, 0x1090, "LO", "Medical Record Locator", FUNCDCM_NONE ),
683
    ENTRY( 0x0010, 0x2000, "LO", "Medical Alerts", FUNCDCM_NONE ),
684
    ENTRY( 0x0010, 0x2110, "LO", "Contrast Allergies", FUNCDCM_NONE ),
685
    ENTRY( 0x0010, 0x2150, "LO", "Country of Residence", FUNCDCM_NONE ),
686
    ENTRY( 0x0010, 0x2152, "LO", "Region of Residence", FUNCDCM_NONE ),
687
    ENTRY( 0x0010, 0x2154, "SH", "Patients Telephone Numbers", FUNCDCM_NONE ),
688
    ENTRY( 0x0010, 0x2160, "SH", "Ethnic Group", FUNCDCM_NONE ),
689
    ENTRY( 0x0010, 0x2180, "SH", "Occupation", FUNCDCM_NONE ),
690
    ENTRY( 0x0010, 0x21a0, "CS", "Smoking Status", FUNCDCM_NONE ),
691
    ENTRY( 0x0010, 0x21b0, "LT", "Additional Patient History", FUNCDCM_NONE ),
692
    ENTRY( 0x0010, 0x21c0, "US", "Pregnancy Status", FUNCDCM_NONE ),
693
    ENTRY( 0x0010, 0x21d0, "DA", "Last Menstrual Date", FUNCDCM_NONE ),
694
    ENTRY( 0x0010, 0x21f0, "LO", "Patients Religious Preference", FUNCDCM_NONE ),
695
    ENTRY( 0x0010, 0x4000, "LT", "Patient Comments", FUNCDCM_NONE ),
696
    ENTRY( 0x0011, 0x0001, "xs", "?", FUNCDCM_NONE ),
697
    ENTRY( 0x0011, 0x0002, "US", "?", FUNCDCM_NONE ),
698
    ENTRY( 0x0011, 0x0003, "LT", "Patient UID", FUNCDCM_NONE ),
699
    ENTRY( 0x0011, 0x0004, "LT", "Patient ID", FUNCDCM_NONE ),
700
    ENTRY( 0x0011, 0x000a, "xs", "?", FUNCDCM_NONE ),
701
    ENTRY( 0x0011, 0x000b, "SL", "Effective Series Duration", FUNCDCM_NONE ),
702
    ENTRY( 0x0011, 0x000c, "SL", "Num Beats", FUNCDCM_NONE ),
703
    ENTRY( 0x0011, 0x000d, "LO", "Radio Nuclide Name", FUNCDCM_NONE ),
704
    ENTRY( 0x0011, 0x0010, "xs", "?", FUNCDCM_NONE ),
705
    ENTRY( 0x0011, 0x0011, "xs", "?", FUNCDCM_NONE ),
706
    ENTRY( 0x0011, 0x0012, "LO", "Dataset Name", FUNCDCM_NONE ),
707
    ENTRY( 0x0011, 0x0013, "LO", "Dataset Type", FUNCDCM_NONE ),
708
    ENTRY( 0x0011, 0x0015, "xs", "?", FUNCDCM_NONE ),
709
    ENTRY( 0x0011, 0x0016, "SL", "Energy Number", FUNCDCM_NONE ),
710
    ENTRY( 0x0011, 0x0017, "SL", "RR Interval Window Number", FUNCDCM_NONE ),
711
    ENTRY( 0x0011, 0x0018, "SL", "MG Bin Number", FUNCDCM_NONE ),
712
    ENTRY( 0x0011, 0x0019, "FD", "Radius Of Rotation", FUNCDCM_NONE ),
713
    ENTRY( 0x0011, 0x001a, "SL", "Detector Count Zone", FUNCDCM_NONE ),
714
    ENTRY( 0x0011, 0x001b, "SL", "Num Energy Windows", FUNCDCM_NONE ),
715
    ENTRY( 0x0011, 0x001c, "SL", "Energy Offset", FUNCDCM_NONE ),
716
    ENTRY( 0x0011, 0x001d, "SL", "Energy Range", FUNCDCM_NONE ),
717
    ENTRY( 0x0011, 0x001f, "SL", "Image Orientation", FUNCDCM_IMAGEORIENTATION ),
718
    ENTRY( 0x0011, 0x0020, "xs", "?", FUNCDCM_NONE ),
719
    ENTRY( 0x0011, 0x0021, "xs", "?", FUNCDCM_NONE ),
720
    ENTRY( 0x0011, 0x0022, "xs", "?", FUNCDCM_NONE ),
721
    ENTRY( 0x0011, 0x0023, "xs", "?", FUNCDCM_NONE ),
722
    ENTRY( 0x0011, 0x0024, "SL", "FOV Mask Y Cutoff Angle", FUNCDCM_NONE ),
723
    ENTRY( 0x0011, 0x0025, "xs", "?", FUNCDCM_NONE ),
724
    ENTRY( 0x0011, 0x0026, "SL", "Table Orientation", FUNCDCM_NONE ),
725
    ENTRY( 0x0011, 0x0027, "SL", "ROI Top Left", FUNCDCM_NONE ),
726
    ENTRY( 0x0011, 0x0028, "SL", "ROI Bottom Right", FUNCDCM_NONE ),
727
    ENTRY( 0x0011, 0x0030, "xs", "?", FUNCDCM_NONE ),
728
    ENTRY( 0x0011, 0x0031, "xs", "?", FUNCDCM_NONE ),
729
    ENTRY( 0x0011, 0x0032, "UN", "?", FUNCDCM_NONE ),
730
    ENTRY( 0x0011, 0x0033, "LO", "Energy Correct Name", FUNCDCM_NONE ),
731
    ENTRY( 0x0011, 0x0034, "LO", "Spatial Correct Name", FUNCDCM_NONE ),
732
    ENTRY( 0x0011, 0x0035, "xs", "?", FUNCDCM_NONE ),
733
    ENTRY( 0x0011, 0x0036, "LO", "Uniformity Correct Name", FUNCDCM_NONE ),
734
    ENTRY( 0x0011, 0x0037, "LO", "Acquisition Specific Correct Name", FUNCDCM_NONE ),
735
    ENTRY( 0x0011, 0x0038, "SL", "Byte Order", FUNCDCM_NONE ),
736
    ENTRY( 0x0011, 0x003a, "SL", "Picture Format", FUNCDCM_NONE ),
737
    ENTRY( 0x0011, 0x003b, "FD", "Pixel Scale", FUNCDCM_NONE ),
738
    ENTRY( 0x0011, 0x003c, "FD", "Pixel Offset", FUNCDCM_NONE ),
739
    ENTRY( 0x0011, 0x003e, "SL", "FOV Shape", FUNCDCM_NONE ),
740
    ENTRY( 0x0011, 0x003f, "SL", "Dataset Flags", FUNCDCM_NONE ),
741
    ENTRY( 0x0011, 0x0040, "xs", "?", FUNCDCM_NONE ),
742
    ENTRY( 0x0011, 0x0041, "LT", "Medical Alerts", FUNCDCM_NONE ),
743
    ENTRY( 0x0011, 0x0042, "LT", "Contrast Allergies", FUNCDCM_NONE ),
744
    ENTRY( 0x0011, 0x0044, "FD", "Threshold Center", FUNCDCM_NONE ),
745
    ENTRY( 0x0011, 0x0045, "FD", "Threshold Width", FUNCDCM_NONE ),
746
    ENTRY( 0x0011, 0x0046, "SL", "Interpolation Type", FUNCDCM_NONE ),
747
    ENTRY( 0x0011, 0x0055, "FD", "Period", FUNCDCM_NONE ),
748
    ENTRY( 0x0011, 0x0056, "FD", "ElapsedTime", FUNCDCM_NONE ),
749
    ENTRY( 0x0011, 0x00a1, "DA", "Patient Registration Date", FUNCDCM_NONE ),
750
    ENTRY( 0x0011, 0x00a2, "TM", "Patient Registration Time", FUNCDCM_NONE ),
751
    ENTRY( 0x0011, 0x00b0, "LT", "Patient Last Name", FUNCDCM_NONE ),
752
    ENTRY( 0x0011, 0x00b2, "LT", "Patient First Name", FUNCDCM_NONE ),
753
    ENTRY( 0x0011, 0x00b4, "LT", "Patient Hospital Status", FUNCDCM_NONE ),
754
    ENTRY( 0x0011, 0x00bc, "TM", "Current Location Time", FUNCDCM_NONE ),
755
    ENTRY( 0x0011, 0x00c0, "LT", "Patient Insurance Status", FUNCDCM_NONE ),
756
    ENTRY( 0x0011, 0x00d0, "LT", "Patient Billing Type", FUNCDCM_NONE ),
757
    ENTRY( 0x0011, 0x00d2, "LT", "Patient Billing Address", FUNCDCM_NONE ),
758
    ENTRY( 0x0013, 0x0000, "LT", "Modifying Physician", FUNCDCM_NONE ),
759
    ENTRY( 0x0013, 0x0010, "xs", "?", FUNCDCM_NONE ),
760
    ENTRY( 0x0013, 0x0011, "SL", "?", FUNCDCM_NONE ),
761
    ENTRY( 0x0013, 0x0012, "xs", "?", FUNCDCM_NONE ),
762
    ENTRY( 0x0013, 0x0016, "SL", "AutoTrack Peak", FUNCDCM_NONE ),
763
    ENTRY( 0x0013, 0x0017, "SL", "AutoTrack Width", FUNCDCM_NONE ),
764
    ENTRY( 0x0013, 0x0018, "FD", "Transmission Scan Time", FUNCDCM_NONE ),
765
    ENTRY( 0x0013, 0x0019, "FD", "Transmission Mask Width", FUNCDCM_NONE ),
766
    ENTRY( 0x0013, 0x001a, "FD", "Copper Attenuator Thickness", FUNCDCM_NONE ),
767
    ENTRY( 0x0013, 0x001c, "FD", "?", FUNCDCM_NONE ),
768
    ENTRY( 0x0013, 0x001d, "FD", "?", FUNCDCM_NONE ),
769
    ENTRY( 0x0013, 0x001e, "FD", "Tomo View Offset", FUNCDCM_NONE ),
770
    ENTRY( 0x0013, 0x0020, "LT", "Patient Name", FUNCDCM_NONE ),
771
    ENTRY( 0x0013, 0x0022, "LT", "Patient Id", FUNCDCM_NONE ),
772
    ENTRY( 0x0013, 0x0026, "LT", "Study Comments", FUNCDCM_NONE ),
773
    ENTRY( 0x0013, 0x0030, "DA", "Patient Birthdate", FUNCDCM_NONE ),
774
    ENTRY( 0x0013, 0x0031, "DS", "Patient Weight", FUNCDCM_NONE ),
775
    ENTRY( 0x0013, 0x0032, "LT", "Patients Maiden Name", FUNCDCM_NONE ),
776
    ENTRY( 0x0013, 0x0033, "LT", "Referring Physician", FUNCDCM_NONE ),
777
    ENTRY( 0x0013, 0x0034, "LT", "Admitting Diagnosis", FUNCDCM_NONE ),
778
    ENTRY( 0x0013, 0x0035, "LT", "Patient Sex", FUNCDCM_NONE ),
779
    ENTRY( 0x0013, 0x0040, "LT", "Procedure Description", FUNCDCM_NONE ),
780
    ENTRY( 0x0013, 0x0042, "LT", "Patient Rest Direction", FUNCDCM_NONE ),
781
    ENTRY( 0x0013, 0x0044, "LT", "Patient Position", FUNCDCM_NONE ),
782
    ENTRY( 0x0013, 0x0046, "LT", "View Direction", FUNCDCM_NONE ),
783
    ENTRY( 0x0015, 0x0001, "DS", "Stenosis Calibration Ratio", FUNCDCM_NONE ),
784
    ENTRY( 0x0015, 0x0002, "DS", "Stenosis Magnification", FUNCDCM_NONE ),
785
    ENTRY( 0x0015, 0x0003, "DS", "Cardiac Calibration Ratio", FUNCDCM_NONE ),
786
    ENTRY( 0x0018, 0x0000, "UL", "Acquisition Group Length", FUNCDCM_NONE ),
787
    ENTRY( 0x0018, 0x0010, "LO", "Contrast/Bolus Agent", FUNCDCM_NONE ),
788
    ENTRY( 0x0018, 0x0012, "SQ", "Contrast/Bolus Agent Sequence", FUNCDCM_NONE ),
789
    ENTRY( 0x0018, 0x0014, "SQ", "Contrast/Bolus Administration Route Sequence", FUNCDCM_NONE ),
790
    ENTRY( 0x0018, 0x0015, "CS", "Body Part Examined", FUNCDCM_NONE ),
791
    ENTRY( 0x0018, 0x0020, "CS", "Scanning Sequence", FUNCDCM_NONE ),
792
    ENTRY( 0x0018, 0x0021, "CS", "Sequence Variant", FUNCDCM_NONE ),
793
    ENTRY( 0x0018, 0x0022, "CS", "Scan Options", FUNCDCM_NONE ),
794
    ENTRY( 0x0018, 0x0023, "CS", "MR Acquisition Type", FUNCDCM_NONE ),
795
    ENTRY( 0x0018, 0x0024, "SH", "Sequence Name", FUNCDCM_NONE ),
796
    ENTRY( 0x0018, 0x0025, "CS", "Angio Flag", FUNCDCM_NONE ),
797
    ENTRY( 0x0018, 0x0026, "SQ", "Intervention Drug Information Sequence", FUNCDCM_NONE ),
798
    ENTRY( 0x0018, 0x0027, "TM", "Intervention Drug Stop Time", FUNCDCM_NONE ),
799
    ENTRY( 0x0018, 0x0028, "DS", "Intervention Drug Dose", FUNCDCM_NONE ),
800
    ENTRY( 0x0018, 0x0029, "SQ", "Intervention Drug Code Sequence", FUNCDCM_NONE ),
801
    ENTRY( 0x0018, 0x002a, "SQ", "Additional Drug Sequence", FUNCDCM_NONE ),
802
    ENTRY( 0x0018, 0x0030, "LO", "Radionuclide", FUNCDCM_NONE ),
803
    ENTRY( 0x0018, 0x0031, "LO", "Radiopharmaceutical", FUNCDCM_NONE ),
804
    ENTRY( 0x0018, 0x0032, "DS", "Energy Window Centerline", FUNCDCM_NONE ),
805
    ENTRY( 0x0018, 0x0033, "DS", "Energy Window Total Width", FUNCDCM_NONE ),
806
    ENTRY( 0x0018, 0x0034, "LO", "Intervention Drug Name", FUNCDCM_NONE ),
807
    ENTRY( 0x0018, 0x0035, "TM", "Intervention Drug Start Time", FUNCDCM_NONE ),
808
    ENTRY( 0x0018, 0x0036, "SQ", "Intervention Therapy Sequence", FUNCDCM_NONE ),
809
    ENTRY( 0x0018, 0x0037, "CS", "Therapy Type", FUNCDCM_NONE ),
810
    ENTRY( 0x0018, 0x0038, "CS", "Intervention Status", FUNCDCM_NONE ),
811
    ENTRY( 0x0018, 0x0039, "CS", "Therapy Description", FUNCDCM_NONE ),
812
    ENTRY( 0x0018, 0x0040, "IS", "Cine Rate", FUNCDCM_NONE ),
813
    ENTRY( 0x0018, 0x0050, "DS", "Slice Thickness", FUNCDCM_NONE ),
814
    ENTRY( 0x0018, 0x0060, "DS", "KVP", FUNCDCM_NONE ),
815
    ENTRY( 0x0018, 0x0070, "IS", "Counts Accumulated", FUNCDCM_NONE ),
816
    ENTRY( 0x0018, 0x0071, "CS", "Acquisition Termination Condition", FUNCDCM_NONE ),
817
    ENTRY( 0x0018, 0x0072, "DS", "Effective Series Duration", FUNCDCM_NONE ),
818
    ENTRY( 0x0018, 0x0073, "CS", "Acquisition Start Condition", FUNCDCM_NONE ),
819
    ENTRY( 0x0018, 0x0074, "IS", "Acquisition Start Condition Data", FUNCDCM_NONE ),
820
    ENTRY( 0x0018, 0x0075, "IS", "Acquisition Termination Condition Data", FUNCDCM_NONE ),
821
    ENTRY( 0x0018, 0x0080, "DS", "Repetition Time", FUNCDCM_NONE ),
822
    ENTRY( 0x0018, 0x0081, "DS", "Echo Time", FUNCDCM_NONE ),
823
    ENTRY( 0x0018, 0x0082, "DS", "Inversion Time", FUNCDCM_NONE ),
824
    ENTRY( 0x0018, 0x0083, "DS", "Number of Averages", FUNCDCM_NONE ),
825
    ENTRY( 0x0018, 0x0084, "DS", "Imaging Frequency", FUNCDCM_NONE ),
826
    ENTRY( 0x0018, 0x0085, "SH", "Imaged Nucleus", FUNCDCM_NONE ),
827
    ENTRY( 0x0018, 0x0086, "IS", "Echo Number(s)", FUNCDCM_NONE ),
828
    ENTRY( 0x0018, 0x0087, "DS", "Magnetic Field Strength", FUNCDCM_NONE ),
829
    ENTRY( 0x0018, 0x0088, "DS", "Spacing Between Slices", FUNCDCM_NONE ),
830
    ENTRY( 0x0018, 0x0089, "IS", "Number of Phase Encoding Steps", FUNCDCM_NONE ),
831
    ENTRY( 0x0018, 0x0090, "DS", "Data Collection Diameter", FUNCDCM_NONE ),
832
    ENTRY( 0x0018, 0x0091, "IS", "Echo Train Length", FUNCDCM_NONE ),
833
    ENTRY( 0x0018, 0x0093, "DS", "Percent Sampling", FUNCDCM_NONE ),
834
    ENTRY( 0x0018, 0x0094, "DS", "Percent Phase Field of View", FUNCDCM_NONE ),
835
    ENTRY( 0x0018, 0x0095, "DS", "Pixel Bandwidth", FUNCDCM_NONE ),
836
    ENTRY( 0x0018, 0x1000, "LO", "Device Serial Number", FUNCDCM_NONE ),
837
    ENTRY( 0x0018, 0x1004, "LO", "Plate ID", FUNCDCM_NONE ),
838
    ENTRY( 0x0018, 0x1010, "LO", "Secondary Capture Device ID", FUNCDCM_NONE ),
839
    ENTRY( 0x0018, 0x1012, "DA", "Date of Secondary Capture", FUNCDCM_NONE ),
840
    ENTRY( 0x0018, 0x1014, "TM", "Time of Secondary Capture", FUNCDCM_NONE ),
841
    ENTRY( 0x0018, 0x1016, "LO", "Secondary Capture Device Manufacturer", FUNCDCM_NONE ),
842
    ENTRY( 0x0018, 0x1018, "LO", "Secondary Capture Device Manufacturer Model Name", FUNCDCM_NONE ),
843
    ENTRY( 0x0018, 0x1019, "LO", "Secondary Capture Device Software Version(s)", FUNCDCM_NONE ),
844
    ENTRY( 0x0018, 0x1020, "LO", "Software Version(s)", FUNCDCM_NONE ),
845
    ENTRY( 0x0018, 0x1022, "SH", "Video Image Format Acquired", FUNCDCM_NONE ),
846
    ENTRY( 0x0018, 0x1023, "LO", "Digital Image Format Acquired", FUNCDCM_NONE ),
847
    ENTRY( 0x0018, 0x1030, "LO", "Protocol Name", FUNCDCM_NONE ),
848
    ENTRY( 0x0018, 0x1040, "LO", "Contrast/Bolus Route", FUNCDCM_NONE ),
849
    ENTRY( 0x0018, 0x1041, "DS", "Contrast/Bolus Volume", FUNCDCM_NONE ),
850
    ENTRY( 0x0018, 0x1042, "TM", "Contrast/Bolus Start Time", FUNCDCM_NONE ),
851
    ENTRY( 0x0018, 0x1043, "TM", "Contrast/Bolus Stop Time", FUNCDCM_NONE ),
852
    ENTRY( 0x0018, 0x1044, "DS", "Contrast/Bolus Total Dose", FUNCDCM_NONE ),
853
    ENTRY( 0x0018, 0x1045, "IS", "Syringe Counts", FUNCDCM_NONE ),
854
    ENTRY( 0x0018, 0x1046, "DS", "Contrast Flow Rate", FUNCDCM_NONE ),
855
    ENTRY( 0x0018, 0x1047, "DS", "Contrast Flow Duration", FUNCDCM_NONE ),
856
    ENTRY( 0x0018, 0x1048, "CS", "Contrast/Bolus Ingredient", FUNCDCM_NONE ),
857
    ENTRY( 0x0018, 0x1049, "DS", "Contrast/Bolus Ingredient Concentration", FUNCDCM_NONE ),
858
    ENTRY( 0x0018, 0x1050, "DS", "Spatial Resolution", FUNCDCM_NONE ),
859
    ENTRY( 0x0018, 0x1060, "DS", "Trigger Time", FUNCDCM_TRIGGERTIME ),
860
    ENTRY( 0x0018, 0x1061, "LO", "Trigger Source or Type", FUNCDCM_NONE ),
861
    ENTRY( 0x0018, 0x1062, "IS", "Nominal Interval", FUNCDCM_NONE ),
862
    ENTRY( 0x0018, 0x1063, "DS", "Frame Time", FUNCDCM_NONE ),
863
    ENTRY( 0x0018, 0x1064, "LO", "Framing Type", FUNCDCM_NONE ),
864
    ENTRY( 0x0018, 0x1065, "DS", "Frame Time Vector", FUNCDCM_NONE ),
865
    ENTRY( 0x0018, 0x1066, "DS", "Frame Delay", FUNCDCM_NONE ),
866
    ENTRY( 0x0018, 0x1067, "DS", "Image Trigger Delay", FUNCDCM_NONE ),
867
    ENTRY( 0x0018, 0x1068, "DS", "Group Time Offset", FUNCDCM_NONE ),
868
    ENTRY( 0x0018, 0x1069, "DS", "Trigger Time Offset", FUNCDCM_NONE ),
869
    ENTRY( 0x0018, 0x106a, "CS", "Synchronization Trigger", FUNCDCM_NONE ),
870
    ENTRY( 0x0018, 0x106b, "UI", "Synchronization Frame of Reference", FUNCDCM_NONE ),
871
    ENTRY( 0x0018, 0x106e, "UL", "Trigger Sample Position", FUNCDCM_NONE ),
872
    ENTRY( 0x0018, 0x1070, "LO", "Radiopharmaceutical Route", FUNCDCM_NONE ),
873
    ENTRY( 0x0018, 0x1071, "DS", "Radiopharmaceutical Volume", FUNCDCM_NONE ),
874
    ENTRY( 0x0018, 0x1072, "TM", "Radiopharmaceutical Start Time", FUNCDCM_NONE ),
875
    ENTRY( 0x0018, 0x1073, "TM", "Radiopharmaceutical Stop Time", FUNCDCM_NONE ),
876
    ENTRY( 0x0018, 0x1074, "DS", "Radionuclide Total Dose", FUNCDCM_NONE ),
877
    ENTRY( 0x0018, 0x1075, "DS", "Radionuclide Half Life", FUNCDCM_NONE ),
878
    ENTRY( 0x0018, 0x1076, "DS", "Radionuclide Positron Fraction", FUNCDCM_NONE ),
879
    ENTRY( 0x0018, 0x1077, "DS", "Radiopharmaceutical Specific Activity", FUNCDCM_NONE ),
880
    ENTRY( 0x0018, 0x1080, "CS", "Beat Rejection Flag", FUNCDCM_NONE ),
881
    ENTRY( 0x0018, 0x1081, "IS", "Low R-R Value", FUNCDCM_NONE ),
882
    ENTRY( 0x0018, 0x1082, "IS", "High R-R Value", FUNCDCM_NONE ),
883
    ENTRY( 0x0018, 0x1083, "IS", "Intervals Acquired", FUNCDCM_NONE ),
884
    ENTRY( 0x0018, 0x1084, "IS", "Intervals Rejected", FUNCDCM_NONE ),
885
    ENTRY( 0x0018, 0x1085, "LO", "PVC Rejection", FUNCDCM_NONE ),
886
    ENTRY( 0x0018, 0x1086, "IS", "Skip Beats", FUNCDCM_NONE ),
887
    ENTRY( 0x0018, 0x1088, "IS", "Heart Rate", FUNCDCM_NONE ),
888
    ENTRY( 0x0018, 0x1090, "IS", "Cardiac Number of Images", FUNCDCM_NONE ),
889
    ENTRY( 0x0018, 0x1094, "IS", "Trigger Window", FUNCDCM_NONE ),
890
    ENTRY( 0x0018, 0x1100, "DS", "Reconstruction Diameter", FUNCDCM_NONE ),
891
    ENTRY( 0x0018, 0x1110, "DS", "Distance Source to Detector", FUNCDCM_NONE ),
892
    ENTRY( 0x0018, 0x1111, "DS", "Distance Source to Patient", FUNCDCM_NONE ),
893
    ENTRY( 0x0018, 0x1114, "DS", "Estimated Radiographic Magnification Factor", FUNCDCM_NONE ),
894
    ENTRY( 0x0018, 0x1120, "DS", "Gantry/Detector Tilt", FUNCDCM_NONE ),
895
    ENTRY( 0x0018, 0x1121, "DS", "Gantry/Detector Slew", FUNCDCM_NONE ),
896
    ENTRY( 0x0018, 0x1130, "DS", "Table Height", FUNCDCM_NONE ),
897
    ENTRY( 0x0018, 0x1131, "DS", "Table Traverse", FUNCDCM_NONE ),
898
    ENTRY( 0x0018, 0x1134, "CS", "Table Motion", FUNCDCM_NONE ),
899
    ENTRY( 0x0018, 0x1135, "DS", "Table Vertical Increment", FUNCDCM_NONE ),
900
    ENTRY( 0x0018, 0x1136, "DS", "Table Lateral Increment", FUNCDCM_NONE ),
901
    ENTRY( 0x0018, 0x1137, "DS", "Table Longitudinal Increment", FUNCDCM_NONE ),
902
    ENTRY( 0x0018, 0x1138, "DS", "Table Angle", FUNCDCM_NONE ),
903
    ENTRY( 0x0018, 0x113a, "CS", "Table Type", FUNCDCM_NONE ),
904
    ENTRY( 0x0018, 0x1140, "CS", "Rotation Direction", FUNCDCM_NONE ),
905
    ENTRY( 0x0018, 0x1141, "DS", "Angular Position", FUNCDCM_NONE ),
906
    ENTRY( 0x0018, 0x1142, "DS", "Radial Position", FUNCDCM_NONE ),
907
    ENTRY( 0x0018, 0x1143, "DS", "Scan Arc", FUNCDCM_NONE ),
908
    ENTRY( 0x0018, 0x1144, "DS", "Angular Step", FUNCDCM_NONE ),
909
    ENTRY( 0x0018, 0x1145, "DS", "Center of Rotation Offset", FUNCDCM_NONE ),
910
    ENTRY( 0x0018, 0x1146, "DS", "Rotation Offset", FUNCDCM_NONE ),
911
    ENTRY( 0x0018, 0x1147, "CS", "Field of View Shape", FUNCDCM_NONE ),
912
    ENTRY( 0x0018, 0x1149, "IS", "Field of View Dimension(s)", FUNCDCM_NONE ),
913
    ENTRY( 0x0018, 0x1150, "IS", "Exposure Time", FUNCDCM_NONE ),
914
    ENTRY( 0x0018, 0x1151, "IS", "X-ray Tube Current", FUNCDCM_NONE ),
915
    ENTRY( 0x0018, 0x1152, "IS", "Exposure", FUNCDCM_NONE ),
916
    ENTRY( 0x0018, 0x1153, "IS", "Exposure in uAs", FUNCDCM_NONE ),
917
    ENTRY( 0x0018, 0x1154, "DS", "AveragePulseWidth", FUNCDCM_NONE ),
918
    ENTRY( 0x0018, 0x1155, "CS", "RadiationSetting", FUNCDCM_NONE ),
919
    ENTRY( 0x0018, 0x1156, "CS", "Rectification Type", FUNCDCM_NONE ),
920
    ENTRY( 0x0018, 0x115a, "CS", "RadiationMode", FUNCDCM_NONE ),
921
    ENTRY( 0x0018, 0x115e, "DS", "ImageAreaDoseProduct", FUNCDCM_NONE ),
922
    ENTRY( 0x0018, 0x1160, "SH", "Filter Type", FUNCDCM_NONE ),
923
    ENTRY( 0x0018, 0x1161, "LO", "TypeOfFilters", FUNCDCM_NONE ),
924
    ENTRY( 0x0018, 0x1162, "DS", "IntensifierSize", FUNCDCM_NONE ),
925
    ENTRY( 0x0018, 0x1164, "DS", "ImagerPixelSpacing", FUNCDCM_NONE ),
926
    ENTRY( 0x0018, 0x1166, "CS", "Grid", FUNCDCM_NONE ),
927
    ENTRY( 0x0018, 0x1170, "IS", "Generator Power", FUNCDCM_NONE ),
928
    ENTRY( 0x0018, 0x1180, "SH", "Collimator/Grid Name", FUNCDCM_NONE ),
929
    ENTRY( 0x0018, 0x1181, "CS", "Collimator Type", FUNCDCM_NONE ),
930
    ENTRY( 0x0018, 0x1182, "IS", "Focal Distance", FUNCDCM_NONE ),
931
    ENTRY( 0x0018, 0x1183, "DS", "X Focus Center", FUNCDCM_NONE ),
932
    ENTRY( 0x0018, 0x1184, "DS", "Y Focus Center", FUNCDCM_NONE ),
933
    ENTRY( 0x0018, 0x1190, "DS", "Focal Spot(s)", FUNCDCM_NONE ),
934
    ENTRY( 0x0018, 0x1191, "CS", "Anode Target Material", FUNCDCM_NONE ),
935
    ENTRY( 0x0018, 0x11a0, "DS", "Body Part Thickness", FUNCDCM_NONE ),
936
    ENTRY( 0x0018, 0x11a2, "DS", "Compression Force", FUNCDCM_NONE ),
937
    ENTRY( 0x0018, 0x1200, "DA", "Date of Last Calibration", FUNCDCM_NONE ),
938
    ENTRY( 0x0018, 0x1201, "TM", "Time of Last Calibration", FUNCDCM_NONE ),
939
    ENTRY( 0x0018, 0x1210, "SH", "Convolution Kernel", FUNCDCM_NONE ),
940
    ENTRY( 0x0018, 0x1240, "IS", "Upper/Lower Pixel Values", FUNCDCM_NONE ),
941
    ENTRY( 0x0018, 0x1242, "IS", "Actual Frame Duration", FUNCDCM_NONE ),
942
    ENTRY( 0x0018, 0x1243, "IS", "Count Rate", FUNCDCM_NONE ),
943
    ENTRY( 0x0018, 0x1244, "US", "Preferred Playback Sequencing", FUNCDCM_NONE ),
944
    ENTRY( 0x0018, 0x1250, "SH", "Receiving Coil", FUNCDCM_NONE ),
945
    ENTRY( 0x0018, 0x1251, "SH", "Transmitting Coil", FUNCDCM_NONE ),
946
    ENTRY( 0x0018, 0x1260, "SH", "Plate Type", FUNCDCM_NONE ),
947
    ENTRY( 0x0018, 0x1261, "LO", "Phosphor Type", FUNCDCM_NONE ),
948
    ENTRY( 0x0018, 0x1300, "DS", "Scan Velocity", FUNCDCM_NONE ),
949
    ENTRY( 0x0018, 0x1301, "CS", "Whole Body Technique", FUNCDCM_NONE ),
950
    ENTRY( 0x0018, 0x1302, "IS", "Scan Length", FUNCDCM_NONE ),
951
    ENTRY( 0x0018, 0x1310, "US", "Acquisition Matrix", FUNCDCM_NONE ),
952
    ENTRY( 0x0018, 0x1312, "CS", "Phase Encoding Direction", FUNCDCM_NONE ),
953
    ENTRY( 0x0018, 0x1314, "DS", "Flip Angle", FUNCDCM_NONE ),
954
    ENTRY( 0x0018, 0x1315, "CS", "Variable Flip Angle Flag", FUNCDCM_NONE ),
955
    ENTRY( 0x0018, 0x1316, "DS", "SAR", FUNCDCM_NONE ),
956
    ENTRY( 0x0018, 0x1318, "DS", "dB/dt", FUNCDCM_NONE ),
957
    ENTRY( 0x0018, 0x1400, "LO", "Acquisition Device Processing Description", FUNCDCM_NONE ),
958
    ENTRY( 0x0018, 0x1401, "LO", "Acquisition Device Processing Code", FUNCDCM_NONE ),
959
    ENTRY( 0x0018, 0x1402, "CS", "Cassette Orientation", FUNCDCM_NONE ),
960
    ENTRY( 0x0018, 0x1403, "CS", "Cassette Size", FUNCDCM_NONE ),
961
    ENTRY( 0x0018, 0x1404, "US", "Exposures on Plate", FUNCDCM_NONE ),
962
    ENTRY( 0x0018, 0x1405, "IS", "Relative X-ray Exposure", FUNCDCM_NONE ),
963
    ENTRY( 0x0018, 0x1450, "DS", "Column Angulation", FUNCDCM_NONE ),
964
    ENTRY( 0x0018, 0x1460, "DS", "Tomo Layer Height", FUNCDCM_NONE ),
965
    ENTRY( 0x0018, 0x1470, "DS", "Tomo Angle", FUNCDCM_NONE ),
966
    ENTRY( 0x0018, 0x1480, "DS", "Tomo Time", FUNCDCM_NONE ),
967
    ENTRY( 0x0018, 0x1490, "CS", "Tomo Type", FUNCDCM_NONE ),
968
    ENTRY( 0x0018, 0x1491, "CS", "Tomo Class", FUNCDCM_NONE ),
969
    ENTRY( 0x0018, 0x1495, "IS", "Number of Tomosynthesis Source Images", FUNCDCM_NONE ),
970
    ENTRY( 0x0018, 0x1500, "CS", "PositionerMotion", FUNCDCM_NONE ),
971
    ENTRY( 0x0018, 0x1508, "CS", "Positioner Type", FUNCDCM_NONE ),
972
    ENTRY( 0x0018, 0x1510, "DS", "PositionerPrimaryAngle", FUNCDCM_NONE ),
973
    ENTRY( 0x0018, 0x1511, "DS", "PositionerSecondaryAngle", FUNCDCM_NONE ),
974
    ENTRY( 0x0018, 0x1520, "DS", "PositionerPrimaryAngleIncrement", FUNCDCM_NONE ),
975
    ENTRY( 0x0018, 0x1521, "DS", "PositionerSecondaryAngleIncrement", FUNCDCM_NONE ),
976
    ENTRY( 0x0018, 0x1530, "DS", "DetectorPrimaryAngle", FUNCDCM_NONE ),
977
    ENTRY( 0x0018, 0x1531, "DS", "DetectorSecondaryAngle", FUNCDCM_NONE ),
978
    ENTRY( 0x0018, 0x1600, "CS", "Shutter Shape", FUNCDCM_NONE ),
979
    ENTRY( 0x0018, 0x1602, "IS", "Shutter Left Vertical Edge", FUNCDCM_NONE ),
980
    ENTRY( 0x0018, 0x1604, "IS", "Shutter Right Vertical Edge", FUNCDCM_NONE ),
981
    ENTRY( 0x0018, 0x1606, "IS", "Shutter Upper Horizontal Edge", FUNCDCM_NONE ),
982
    ENTRY( 0x0018, 0x1608, "IS", "Shutter Lower Horizonta lEdge", FUNCDCM_NONE ),
983
    ENTRY( 0x0018, 0x1610, "IS", "Center of Circular Shutter", FUNCDCM_NONE ),
984
    ENTRY( 0x0018, 0x1612, "IS", "Radius of Circular Shutter", FUNCDCM_NONE ),
985
    ENTRY( 0x0018, 0x1620, "IS", "Vertices of Polygonal Shutter", FUNCDCM_NONE ),
986
    ENTRY( 0x0018, 0x1622, "US", "Shutter Presentation Value", FUNCDCM_NONE ),
987
    ENTRY( 0x0018, 0x1623, "US", "Shutter Overlay Group", FUNCDCM_NONE ),
988
    ENTRY( 0x0018, 0x1700, "CS", "Collimator Shape", FUNCDCM_NONE ),
989
    ENTRY( 0x0018, 0x1702, "IS", "Collimator Left Vertical Edge", FUNCDCM_NONE ),
990
    ENTRY( 0x0018, 0x1704, "IS", "Collimator Right Vertical Edge", FUNCDCM_NONE ),
991
    ENTRY( 0x0018, 0x1706, "IS", "Collimator Upper Horizontal Edge", FUNCDCM_NONE ),
992
    ENTRY( 0x0018, 0x1708, "IS", "Collimator Lower Horizontal Edge", FUNCDCM_NONE ),
993
    ENTRY( 0x0018, 0x1710, "IS", "Center of Circular Collimator", FUNCDCM_NONE ),
994
    ENTRY( 0x0018, 0x1712, "IS", "Radius of Circular Collimator", FUNCDCM_NONE ),
995
    ENTRY( 0x0018, 0x1720, "IS", "Vertices of Polygonal Collimator", FUNCDCM_NONE ),
996
    ENTRY( 0x0018, 0x1800, "CS", "Acquisition Time Synchronized", FUNCDCM_NONE ),
997
    ENTRY( 0x0018, 0x1801, "SH", "Time Source", FUNCDCM_NONE ),
998
    ENTRY( 0x0018, 0x1802, "CS", "Time Distribution Protocol", FUNCDCM_NONE ),
999
    ENTRY( 0x0018, 0x4000, "LT", "Acquisition Comments", FUNCDCM_NONE ),
1000
    ENTRY( 0x0018, 0x5000, "SH", "Output Power", FUNCDCM_NONE ),
1001
    ENTRY( 0x0018, 0x5010, "LO", "Transducer Data", FUNCDCM_NONE ),
1002
    ENTRY( 0x0018, 0x5012, "DS", "Focus Depth", FUNCDCM_NONE ),
1003
    ENTRY( 0x0018, 0x5020, "LO", "Processing Function", FUNCDCM_NONE ),
1004
    ENTRY( 0x0018, 0x5021, "LO", "Postprocessing Function", FUNCDCM_NONE ),
1005
    ENTRY( 0x0018, 0x5022, "DS", "Mechanical Index", FUNCDCM_NONE ),
1006
    ENTRY( 0x0018, 0x5024, "DS", "Thermal Index", FUNCDCM_NONE ),
1007
    ENTRY( 0x0018, 0x5026, "DS", "Cranial Thermal Index", FUNCDCM_NONE ),
1008
    ENTRY( 0x0018, 0x5027, "DS", "Soft Tissue Thermal Index", FUNCDCM_NONE ),
1009
    ENTRY( 0x0018, 0x5028, "DS", "Soft Tissue-Focus Thermal Index", FUNCDCM_NONE ),
1010
    ENTRY( 0x0018, 0x5029, "DS", "Soft Tissue-Surface Thermal Index", FUNCDCM_NONE ),
1011
    ENTRY( 0x0018, 0x5030, "DS", "Dynamic Range", FUNCDCM_NONE ),
1012
    ENTRY( 0x0018, 0x5040, "DS", "Total Gain", FUNCDCM_NONE ),
1013
    ENTRY( 0x0018, 0x5050, "IS", "Depth of Scan Field", FUNCDCM_NONE ),
1014
    ENTRY( 0x0018, 0x5100, "CS", "Patient Position", FUNCDCM_NONE ),
1015
    ENTRY( 0x0018, 0x5101, "CS", "View Position", FUNCDCM_NONE ),
1016
    ENTRY( 0x0018, 0x5104, "SQ", "Projection Eponymous Name Code Sequence", FUNCDCM_NONE ),
1017
    ENTRY( 0x0018, 0x5210, "DS", "Image Transformation Matrix", FUNCDCM_NONE ),
1018
    ENTRY( 0x0018, 0x5212, "DS", "Image Translation Vector", FUNCDCM_NONE ),
1019
    ENTRY( 0x0018, 0x6000, "DS", "Sensitivity", FUNCDCM_NONE ),
1020
    ENTRY( 0x0018, 0x6011, "IS", "Sequence of Ultrasound Regions", FUNCDCM_NONE ),
1021
    ENTRY( 0x0018, 0x6012, "US", "Region Spatial Format", FUNCDCM_NONE ),
1022
    ENTRY( 0x0018, 0x6014, "US", "Region Data Type", FUNCDCM_NONE ),
1023
    ENTRY( 0x0018, 0x6016, "UL", "Region Flags", FUNCDCM_NONE ),
1024
    ENTRY( 0x0018, 0x6018, "UL", "Region Location Min X0", FUNCDCM_NONE ),
1025
    ENTRY( 0x0018, 0x601a, "UL", "Region Location Min Y0", FUNCDCM_NONE ),
1026
    ENTRY( 0x0018, 0x601c, "UL", "Region Location Max X1", FUNCDCM_NONE ),
1027
    ENTRY( 0x0018, 0x601e, "UL", "Region Location Max Y1", FUNCDCM_NONE ),
1028
    ENTRY( 0x0018, 0x6020, "SL", "Reference Pixel X0", FUNCDCM_NONE ),
1029
    ENTRY( 0x0018, 0x6022, "SL", "Reference Pixel Y0", FUNCDCM_NONE ),
1030
    ENTRY( 0x0018, 0x6024, "US", "Physical Units X Direction", FUNCDCM_NONE ),
1031
    ENTRY( 0x0018, 0x6026, "US", "Physical Units Y Direction", FUNCDCM_NONE ),
1032
    ENTRY( 0x0018, 0x6028, "FD", "Reference Pixel Physical Value X", FUNCDCM_NONE ),
1033
    ENTRY( 0x0018, 0x602a, "US", "Reference Pixel Physical Value Y", FUNCDCM_NONE ),
1034
    ENTRY( 0x0018, 0x602c, "US", "Physical Delta X", FUNCDCM_NONE ),
1035
    ENTRY( 0x0018, 0x602e, "US", "Physical Delta Y", FUNCDCM_NONE ),
1036
    ENTRY( 0x0018, 0x6030, "UL", "Transducer Frequency", FUNCDCM_NONE ),
1037
    ENTRY( 0x0018, 0x6031, "CS", "Transducer Type", FUNCDCM_NONE ),
1038
    ENTRY( 0x0018, 0x6032, "UL", "Pulse Repetition Frequency", FUNCDCM_NONE ),
1039
    ENTRY( 0x0018, 0x6034, "FD", "Doppler Correction Angle", FUNCDCM_NONE ),
1040
    ENTRY( 0x0018, 0x6036, "FD", "Steering Angle", FUNCDCM_NONE ),
1041
    ENTRY( 0x0018, 0x6038, "UL", "Doppler Sample Volume X Position", FUNCDCM_NONE ),
1042
    ENTRY( 0x0018, 0x603a, "UL", "Doppler Sample Volume Y Position", FUNCDCM_NONE ),
1043
    ENTRY( 0x0018, 0x603c, "UL", "TM-Line Position X0", FUNCDCM_NONE ),
1044
    ENTRY( 0x0018, 0x603e, "UL", "TM-Line Position Y0", FUNCDCM_NONE ),
1045
    ENTRY( 0x0018, 0x6040, "UL", "TM-Line Position X1", FUNCDCM_NONE ),
1046
    ENTRY( 0x0018, 0x6042, "UL", "TM-Line Position Y1", FUNCDCM_NONE ),
1047
    ENTRY( 0x0018, 0x6044, "US", "Pixel Component Organization", FUNCDCM_NONE ),
1048
    ENTRY( 0x0018, 0x6046, "UL", "Pixel Component Mask", FUNCDCM_NONE ),
1049
    ENTRY( 0x0018, 0x6048, "UL", "Pixel Component Range Start", FUNCDCM_NONE ),
1050
    ENTRY( 0x0018, 0x604a, "UL", "Pixel Component Range Stop", FUNCDCM_NONE ),
1051
    ENTRY( 0x0018, 0x604c, "US", "Pixel Component Physical Units", FUNCDCM_NONE ),
1052
    ENTRY( 0x0018, 0x604e, "US", "Pixel Component Data Type", FUNCDCM_NONE ),
1053
    ENTRY( 0x0018, 0x6050, "UL", "Number of Table Break Points", FUNCDCM_NONE ),
1054
    ENTRY( 0x0018, 0x6052, "UL", "Table of X Break Points", FUNCDCM_NONE ),
1055
    ENTRY( 0x0018, 0x6054, "FD", "Table of Y Break Points", FUNCDCM_NONE ),
1056
    ENTRY( 0x0018, 0x6056, "UL", "Number of Table Entries", FUNCDCM_NONE ),
1057
    ENTRY( 0x0018, 0x6058, "UL", "Table of Pixel Values", FUNCDCM_NONE ),
1058
    ENTRY( 0x0018, 0x605a, "FL", "Table of Parameter Values", FUNCDCM_NONE ),
1059
    ENTRY( 0x0018, 0x7000, "CS", "Detector Conditions Nominal Flag", FUNCDCM_NONE ),
1060
    ENTRY( 0x0018, 0x7001, "DS", "Detector Temperature", FUNCDCM_NONE ),
1061
    ENTRY( 0x0018, 0x7004, "CS", "Detector Type", FUNCDCM_NONE ),
1062
    ENTRY( 0x0018, 0x7005, "CS", "Detector Configuration", FUNCDCM_NONE ),
1063
    ENTRY( 0x0018, 0x7006, "LT", "Detector Description", FUNCDCM_NONE ),
1064
    ENTRY( 0x0018, 0x7008, "LT", "Detector Mode", FUNCDCM_NONE ),
1065
    ENTRY( 0x0018, 0x700a, "SH", "Detector ID", FUNCDCM_NONE ),
1066
    ENTRY( 0x0018, 0x700c, "DA", "Date of Last Detector Calibration ", FUNCDCM_NONE ),
1067
    ENTRY( 0x0018, 0x700e, "TM", "Time of Last Detector Calibration", FUNCDCM_NONE ),
1068
    ENTRY( 0x0018, 0x7010, "IS", "Exposures on Detector Since Last Calibration", FUNCDCM_NONE ),
1069
    ENTRY( 0x0018, 0x7011, "IS", "Exposures on Detector Since Manufactured", FUNCDCM_NONE ),
1070
    ENTRY( 0x0018, 0x7012, "DS", "Detector Time Since Last Exposure", FUNCDCM_NONE ),
1071
    ENTRY( 0x0018, 0x7014, "DS", "Detector Active Time", FUNCDCM_NONE ),
1072
    ENTRY( 0x0018, 0x7016, "DS", "Detector Activation Offset From Exposure", FUNCDCM_NONE ),
1073
    ENTRY( 0x0018, 0x701a, "DS", "Detector Binning", FUNCDCM_NONE ),
1074
    ENTRY( 0x0018, 0x7020, "DS", "Detector Element Physical Size", FUNCDCM_NONE ),
1075
    ENTRY( 0x0018, 0x7022, "DS", "Detector Element Spacing", FUNCDCM_NONE ),
1076
    ENTRY( 0x0018, 0x7024, "CS", "Detector Active Shape", FUNCDCM_NONE ),
1077
    ENTRY( 0x0018, 0x7026, "DS", "Detector Active Dimensions", FUNCDCM_NONE ),
1078
    ENTRY( 0x0018, 0x7028, "DS", "Detector Active Origin", FUNCDCM_NONE ),
1079
    ENTRY( 0x0018, 0x7030, "DS", "Field of View Origin", FUNCDCM_NONE ),
1080
    ENTRY( 0x0018, 0x7032, "DS", "Field of View Rotation", FUNCDCM_NONE ),
1081
    ENTRY( 0x0018, 0x7034, "CS", "Field of View Horizontal Flip", FUNCDCM_NONE ),
1082
    ENTRY( 0x0018, 0x7040, "LT", "Grid Absorbing Material", FUNCDCM_NONE ),
1083
    ENTRY( 0x0018, 0x7041, "LT", "Grid Spacing Material", FUNCDCM_NONE ),
1084
    ENTRY( 0x0018, 0x7042, "DS", "Grid Thickness", FUNCDCM_NONE ),
1085
    ENTRY( 0x0018, 0x7044, "DS", "Grid Pitch", FUNCDCM_NONE ),
1086
    ENTRY( 0x0018, 0x7046, "IS", "Grid Aspect Ratio", FUNCDCM_NONE ),
1087
    ENTRY( 0x0018, 0x7048, "DS", "Grid Period", FUNCDCM_NONE ),
1088
    ENTRY( 0x0018, 0x704c, "DS", "Grid Focal Distance", FUNCDCM_NONE ),
1089
    ENTRY( 0x0018, 0x7050, "LT", "Filter Material", FUNCDCM_NONE ),
1090
    ENTRY( 0x0018, 0x7052, "DS", "Filter Thickness Minimum", FUNCDCM_NONE ),
1091
    ENTRY( 0x0018, 0x7054, "DS", "Filter Thickness Maximum", FUNCDCM_NONE ),
1092
    ENTRY( 0x0018, 0x7060, "CS", "Exposure Control Mode", FUNCDCM_NONE ),
1093
    ENTRY( 0x0018, 0x7062, "LT", "Exposure Control Mode Description", FUNCDCM_NONE ),
1094
    ENTRY( 0x0018, 0x7064, "CS", "Exposure Status", FUNCDCM_NONE ),
1095
    ENTRY( 0x0018, 0x7065, "DS", "Phototimer Setting", FUNCDCM_NONE ),
1096
    ENTRY( 0x0019, 0x0000, "xs", "?", FUNCDCM_NONE ),
1097
    ENTRY( 0x0019, 0x0001, "xs", "?", FUNCDCM_NONE ),
1098
    ENTRY( 0x0019, 0x0002, "xs", "?", FUNCDCM_NONE ),
1099
    ENTRY( 0x0019, 0x0003, "xs", "?", FUNCDCM_NONE ),
1100
    ENTRY( 0x0019, 0x0004, "xs", "?", FUNCDCM_NONE ),
1101
    ENTRY( 0x0019, 0x0005, "xs", "?", FUNCDCM_NONE ),
1102
    ENTRY( 0x0019, 0x0006, "xs", "?", FUNCDCM_NONE ),
1103
    ENTRY( 0x0019, 0x0007, "xs", "?", FUNCDCM_NONE ),
1104
    ENTRY( 0x0019, 0x0008, "xs", "?", FUNCDCM_NONE ),
1105
    ENTRY( 0x0019, 0x0009, "xs", "?", FUNCDCM_NONE ),
1106
    ENTRY( 0x0019, 0x000a, "xs", "?", FUNCDCM_NONE ),
1107
    ENTRY( 0x0019, 0x000b, "DS", "?", FUNCDCM_NONE ),
1108
    ENTRY( 0x0019, 0x000c, "US", "?", FUNCDCM_NONE ),
1109
    ENTRY( 0x0019, 0x000d, "TM", "Time", FUNCDCM_NONE ),
1110
    ENTRY( 0x0019, 0x000e, "xs", "?", FUNCDCM_NONE ),
1111
    ENTRY( 0x0019, 0x000f, "DS", "Horizontal Frame Of Reference", FUNCDCM_NONE ),
1112
    ENTRY( 0x0019, 0x0010, "xs", "?", FUNCDCM_NONE ),
1113
    ENTRY( 0x0019, 0x0011, "xs", "?", FUNCDCM_NONE ),
1114
    ENTRY( 0x0019, 0x0012, "xs", "?", FUNCDCM_NONE ),
1115
    ENTRY( 0x0019, 0x0013, "xs", "?", FUNCDCM_NONE ),
1116
    ENTRY( 0x0019, 0x0014, "xs", "?", FUNCDCM_NONE ),
1117
    ENTRY( 0x0019, 0x0015, "xs", "?", FUNCDCM_NONE ),
1118
    ENTRY( 0x0019, 0x0016, "xs", "?", FUNCDCM_NONE ),
1119
    ENTRY( 0x0019, 0x0017, "xs", "?", FUNCDCM_NONE ),
1120
    ENTRY( 0x0019, 0x0018, "xs", "?", FUNCDCM_NONE ),
1121
    ENTRY( 0x0019, 0x0019, "xs", "?", FUNCDCM_NONE ),
1122
    ENTRY( 0x0019, 0x001a, "xs", "?", FUNCDCM_NONE ),
1123
    ENTRY( 0x0019, 0x001b, "xs", "?", FUNCDCM_NONE ),
1124
    ENTRY( 0x0019, 0x001c, "CS", "Dose", FUNCDCM_NONE ),
1125
    ENTRY( 0x0019, 0x001d, "IS", "Side Mark", FUNCDCM_NONE ),
1126
    ENTRY( 0x0019, 0x001e, "xs", "?", FUNCDCM_NONE ),
1127
    ENTRY( 0x0019, 0x001f, "DS", "Exposure Duration", FUNCDCM_NONE ),
1128
    ENTRY( 0x0019, 0x0020, "xs", "?", FUNCDCM_NONE ),
1129
    ENTRY( 0x0019, 0x0021, "xs", "?", FUNCDCM_NONE ),
1130
    ENTRY( 0x0019, 0x0022, "xs", "?", FUNCDCM_NONE ),
1131
    ENTRY( 0x0019, 0x0023, "xs", "?", FUNCDCM_NONE ),
1132
    ENTRY( 0x0019, 0x0024, "xs", "?", FUNCDCM_NONE ),
1133
    ENTRY( 0x0019, 0x0025, "xs", "?", FUNCDCM_NONE ),
1134
    ENTRY( 0x0019, 0x0026, "xs", "?", FUNCDCM_NONE ),
1135
    ENTRY( 0x0019, 0x0027, "xs", "?", FUNCDCM_NONE ),
1136
    ENTRY( 0x0019, 0x0028, "xs", "?", FUNCDCM_NONE ),
1137
    ENTRY( 0x0019, 0x0029, "IS", "?", FUNCDCM_NONE ),
1138
    ENTRY( 0x0019, 0x002a, "xs", "?", FUNCDCM_NONE ),
1139
    ENTRY( 0x0019, 0x002b, "DS", "Xray Off Position", FUNCDCM_NONE ),
1140
    ENTRY( 0x0019, 0x002c, "xs", "?", FUNCDCM_NONE ),
1141
    ENTRY( 0x0019, 0x002d, "US", "?", FUNCDCM_NONE ),
1142
    ENTRY( 0x0019, 0x002e, "xs", "?", FUNCDCM_NONE ),
1143
    ENTRY( 0x0019, 0x002f, "DS", "Trigger Frequency", FUNCDCM_NONE ),
1144
    ENTRY( 0x0019, 0x0030, "xs", "?", FUNCDCM_NONE ),
1145
    ENTRY( 0x0019, 0x0031, "xs", "?", FUNCDCM_NONE ),
1146
    ENTRY( 0x0019, 0x0032, "xs", "?", FUNCDCM_NONE ),
1147
    ENTRY( 0x0019, 0x0033, "UN", "ECG 2 Offset 2", FUNCDCM_NONE ),
1148
    ENTRY( 0x0019, 0x0034, "US", "?", FUNCDCM_NONE ),
1149
    ENTRY( 0x0019, 0x0036, "US", "?", FUNCDCM_NONE ),
1150
    ENTRY( 0x0019, 0x0038, "US", "?", FUNCDCM_NONE ),
1151
    ENTRY( 0x0019, 0x0039, "xs", "?", FUNCDCM_NONE ),
1152
    ENTRY( 0x0019, 0x003a, "xs", "?", FUNCDCM_NONE ),
1153
    ENTRY( 0x0019, 0x003b, "LT", "?", FUNCDCM_NONE ),
1154
    ENTRY( 0x0019, 0x003c, "xs", "?", FUNCDCM_NONE ),
1155
    ENTRY( 0x0019, 0x003e, "xs", "?", FUNCDCM_NONE ),
1156
    ENTRY( 0x0019, 0x003f, "UN", "?", FUNCDCM_NONE ),
1157
    ENTRY( 0x0019, 0x0040, "xs", "?", FUNCDCM_NONE ),
1158
    ENTRY( 0x0019, 0x0041, "xs", "?", FUNCDCM_NONE ),
1159
    ENTRY( 0x0019, 0x0042, "xs", "?", FUNCDCM_NONE ),
1160
    ENTRY( 0x0019, 0x0043, "xs", "?", FUNCDCM_NONE ),
1161
    ENTRY( 0x0019, 0x0044, "xs", "?", FUNCDCM_NONE ),
1162
    ENTRY( 0x0019, 0x0045, "xs", "?", FUNCDCM_NONE ),
1163
    ENTRY( 0x0019, 0x0046, "xs", "?", FUNCDCM_NONE ),
1164
    ENTRY( 0x0019, 0x0047, "xs", "?", FUNCDCM_NONE ),
1165
    ENTRY( 0x0019, 0x0048, "xs", "?", FUNCDCM_NONE ),
1166
    ENTRY( 0x0019, 0x0049, "US", "?", FUNCDCM_NONE ),
1167
    ENTRY( 0x0019, 0x004a, "xs", "?", FUNCDCM_NONE ),
1168
    ENTRY( 0x0019, 0x004b, "SL", "Data Size For Scan Data", FUNCDCM_NONE ),
1169
    ENTRY( 0x0019, 0x004c, "US", "?", FUNCDCM_NONE ),
1170
    ENTRY( 0x0019, 0x004e, "US", "?", FUNCDCM_NONE ),
1171
    ENTRY( 0x0019, 0x0050, "xs", "?", FUNCDCM_NONE ),
1172
    ENTRY( 0x0019, 0x0051, "xs", "?", FUNCDCM_NONE ),
1173
    ENTRY( 0x0019, 0x0052, "xs", "?", FUNCDCM_NONE ),
1174
    ENTRY( 0x0019, 0x0053, "LT", "Barcode", FUNCDCM_NONE ),
1175
    ENTRY( 0x0019, 0x0054, "xs", "?", FUNCDCM_NONE ),
1176
    ENTRY( 0x0019, 0x0055, "DS", "Receiver Reference Gain", FUNCDCM_NONE ),
1177
    ENTRY( 0x0019, 0x0056, "xs", "?", FUNCDCM_NONE ),
1178
    ENTRY( 0x0019, 0x0057, "SS", "CT Water Number", FUNCDCM_NONE ),
1179
    ENTRY( 0x0019, 0x0058, "xs", "?", FUNCDCM_NONE ),
1180
    ENTRY( 0x0019, 0x005a, "xs", "?", FUNCDCM_NONE ),
1181
    ENTRY( 0x0019, 0x005c, "xs", "?", FUNCDCM_NONE ),
1182
    ENTRY( 0x0019, 0x005d, "US", "?", FUNCDCM_NONE ),
1183
    ENTRY( 0x0019, 0x005e, "xs", "?", FUNCDCM_NONE ),
1184
    ENTRY( 0x0019, 0x005f, "SL", "Increment Between Channels", FUNCDCM_NONE ),
1185
    ENTRY( 0x0019, 0x0060, "xs", "?", FUNCDCM_NONE ),
1186
    ENTRY( 0x0019, 0x0061, "xs", "?", FUNCDCM_NONE ),
1187
    ENTRY( 0x0019, 0x0062, "xs", "?", FUNCDCM_NONE ),
1188
    ENTRY( 0x0019, 0x0063, "xs", "?", FUNCDCM_NONE ),
1189
    ENTRY( 0x0019, 0x0064, "xs", "?", FUNCDCM_NONE ),
1190
    ENTRY( 0x0019, 0x0065, "xs", "?", FUNCDCM_NONE ),
1191
    ENTRY( 0x0019, 0x0066, "xs", "?", FUNCDCM_NONE ),
1192
    ENTRY( 0x0019, 0x0067, "xs", "?", FUNCDCM_NONE ),
1193
    ENTRY( 0x0019, 0x0068, "xs", "?", FUNCDCM_NONE ),
1194
    ENTRY( 0x0019, 0x0069, "UL", "Convolution Mode", FUNCDCM_NONE ),
1195
    ENTRY( 0x0019, 0x006a, "xs", "?", FUNCDCM_NONE ),
1196
    ENTRY( 0x0019, 0x006b, "SS", "Field Of View In Detector Cells", FUNCDCM_NONE ),
1197
    ENTRY( 0x0019, 0x006c, "US", "?", FUNCDCM_NONE ),
1198
    ENTRY( 0x0019, 0x006e, "US", "?", FUNCDCM_NONE ),
1199
    ENTRY( 0x0019, 0x0070, "xs", "?", FUNCDCM_NONE ),
1200
    ENTRY( 0x0019, 0x0071, "xs", "?", FUNCDCM_NONE ),
1201
    ENTRY( 0x0019, 0x0072, "xs", "?", FUNCDCM_NONE ),
1202
    ENTRY( 0x0019, 0x0073, "xs", "?", FUNCDCM_NONE ),
1203
    ENTRY( 0x0019, 0x0074, "xs", "?", FUNCDCM_NONE ),
1204
    ENTRY( 0x0019, 0x0075, "xs", "?", FUNCDCM_NONE ),
1205
    ENTRY( 0x0019, 0x0076, "xs", "?", FUNCDCM_NONE ),
1206
    ENTRY( 0x0019, 0x0077, "US", "?", FUNCDCM_NONE ),
1207
    ENTRY( 0x0019, 0x0078, "US", "?", FUNCDCM_NONE ),
1208
    ENTRY( 0x0019, 0x007a, "US", "?", FUNCDCM_NONE ),
1209
    ENTRY( 0x0019, 0x007c, "US", "?", FUNCDCM_NONE ),
1210
    ENTRY( 0x0019, 0x007d, "DS", "Second Echo", FUNCDCM_NONE ),
1211
    ENTRY( 0x0019, 0x007e, "xs", "?", FUNCDCM_NONE ),
1212
    ENTRY( 0x0019, 0x007f, "DS", "Table Delta", FUNCDCM_NONE ),
1213
    ENTRY( 0x0019, 0x0080, "xs", "?", FUNCDCM_NONE ),
1214
    ENTRY( 0x0019, 0x0081, "xs", "?", FUNCDCM_NONE ),
1215
    ENTRY( 0x0019, 0x0082, "xs", "?", FUNCDCM_NONE ),
1216
    ENTRY( 0x0019, 0x0083, "xs", "?", FUNCDCM_NONE ),
1217
    ENTRY( 0x0019, 0x0084, "xs", "?", FUNCDCM_NONE ),
1218
    ENTRY( 0x0019, 0x0085, "xs", "?", FUNCDCM_NONE ),
1219
    ENTRY( 0x0019, 0x0086, "xs", "?", FUNCDCM_NONE ),
1220
    ENTRY( 0x0019, 0x0087, "xs", "?", FUNCDCM_NONE ),
1221
    ENTRY( 0x0019, 0x0088, "xs", "?", FUNCDCM_NONE ),
1222
    ENTRY( 0x0019, 0x008a, "xs", "?", FUNCDCM_NONE ),
1223
    ENTRY( 0x0019, 0x008b, "SS", "Actual Receive Gain Digital", FUNCDCM_NONE ),
1224
    ENTRY( 0x0019, 0x008c, "US", "?", FUNCDCM_NONE ),
1225
    ENTRY( 0x0019, 0x008d, "DS", "Delay After Trigger", FUNCDCM_NONE ),
1226
    ENTRY( 0x0019, 0x008e, "US", "?", FUNCDCM_NONE ),
1227
    ENTRY( 0x0019, 0x008f, "SS", "Swap Phase Frequency", FUNCDCM_NONE ),
1228
    ENTRY( 0x0019, 0x0090, "xs", "?", FUNCDCM_NONE ),
1229
    ENTRY( 0x0019, 0x0091, "xs", "?", FUNCDCM_NONE ),
1230
    ENTRY( 0x0019, 0x0092, "xs", "?", FUNCDCM_NONE ),
1231
    ENTRY( 0x0019, 0x0093, "xs", "?", FUNCDCM_NONE ),
1232
    ENTRY( 0x0019, 0x0094, "xs", "?", FUNCDCM_NONE ),
1233
    ENTRY( 0x0019, 0x0095, "SS", "Analog Receiver Gain", FUNCDCM_NONE ),
1234
    ENTRY( 0x0019, 0x0096, "xs", "?", FUNCDCM_NONE ),
1235
    ENTRY( 0x0019, 0x0097, "xs", "?", FUNCDCM_NONE ),
1236
    ENTRY( 0x0019, 0x0098, "xs", "?", FUNCDCM_NONE ),
1237
    ENTRY( 0x0019, 0x0099, "US", "?", FUNCDCM_NONE ),
1238
    ENTRY( 0x0019, 0x009a, "US", "?", FUNCDCM_NONE ),
1239
    ENTRY( 0x0019, 0x009b, "SS", "Pulse Sequence Mode", FUNCDCM_NONE ),
1240
    ENTRY( 0x0019, 0x009c, "xs", "?", FUNCDCM_NONE ),
1241
    ENTRY( 0x0019, 0x009d, "DT", "Pulse Sequence Date", FUNCDCM_NONE ),
1242
    ENTRY( 0x0019, 0x009e, "xs", "?", FUNCDCM_NONE ),
1243
    ENTRY( 0x0019, 0x009f, "xs", "?", FUNCDCM_NONE ),
1244
    ENTRY( 0x0019, 0x00a0, "xs", "?", FUNCDCM_NONE ),
1245
    ENTRY( 0x0019, 0x00a1, "xs", "?", FUNCDCM_NONE ),
1246
    ENTRY( 0x0019, 0x00a2, "xs", "?", FUNCDCM_NONE ),
1247
    ENTRY( 0x0019, 0x00a3, "xs", "?", FUNCDCM_NONE ),
1248
    ENTRY( 0x0019, 0x00a4, "xs", "?", FUNCDCM_NONE ),
1249
    ENTRY( 0x0019, 0x00a5, "xs", "?", FUNCDCM_NONE ),
1250
    ENTRY( 0x0019, 0x00a6, "xs", "?", FUNCDCM_NONE ),
1251
    ENTRY( 0x0019, 0x00a7, "xs", "?", FUNCDCM_NONE ),
1252
    ENTRY( 0x0019, 0x00a8, "xs", "?", FUNCDCM_NONE ),
1253
    ENTRY( 0x0019, 0x00a9, "xs", "?", FUNCDCM_NONE ),
1254
    ENTRY( 0x0019, 0x00aa, "xs", "?", FUNCDCM_NONE ),
1255
    ENTRY( 0x0019, 0x00ab, "xs", "?", FUNCDCM_NONE ),
1256
    ENTRY( 0x0019, 0x00ac, "xs", "?", FUNCDCM_NONE ),
1257
    ENTRY( 0x0019, 0x00ad, "xs", "?", FUNCDCM_NONE ),
1258
    ENTRY( 0x0019, 0x00ae, "xs", "?", FUNCDCM_NONE ),
1259
    ENTRY( 0x0019, 0x00af, "xs", "?", FUNCDCM_NONE ),
1260
    ENTRY( 0x0019, 0x00b0, "xs", "?", FUNCDCM_NONE ),
1261
    ENTRY( 0x0019, 0x00b1, "xs", "?", FUNCDCM_NONE ),
1262
    ENTRY( 0x0019, 0x00b2, "xs", "?", FUNCDCM_NONE ),
1263
    ENTRY( 0x0019, 0x00b3, "xs", "?", FUNCDCM_NONE ),
1264
    ENTRY( 0x0019, 0x00b4, "xs", "?", FUNCDCM_NONE ),
1265
    ENTRY( 0x0019, 0x00b5, "xs", "?", FUNCDCM_NONE ),
1266
    ENTRY( 0x0019, 0x00b6, "DS", "User Data", FUNCDCM_NONE ),
1267
    ENTRY( 0x0019, 0x00b7, "DS", "User Data", FUNCDCM_NONE ),
1268
    ENTRY( 0x0019, 0x00b8, "DS", "User Data", FUNCDCM_NONE ),
1269
    ENTRY( 0x0019, 0x00b9, "DS", "User Data", FUNCDCM_NONE ),
1270
    ENTRY( 0x0019, 0x00ba, "DS", "User Data", FUNCDCM_NONE ),
1271
    ENTRY( 0x0019, 0x00bb, "DS", "User Data", FUNCDCM_NONE ),
1272
    ENTRY( 0x0019, 0x00bc, "DS", "User Data", FUNCDCM_NONE ),
1273
    ENTRY( 0x0019, 0x00bd, "DS", "User Data", FUNCDCM_NONE ),
1274
    ENTRY( 0x0019, 0x00be, "DS", "Projection Angle", FUNCDCM_NONE ),
1275
    ENTRY( 0x0019, 0x00c0, "xs", "?", FUNCDCM_NONE ),
1276
    ENTRY( 0x0019, 0x00c1, "xs", "?", FUNCDCM_NONE ),
1277
    ENTRY( 0x0019, 0x00c2, "xs", "?", FUNCDCM_NONE ),
1278
    ENTRY( 0x0019, 0x00c3, "xs", "?", FUNCDCM_NONE ),
1279
    ENTRY( 0x0019, 0x00c4, "xs", "?", FUNCDCM_NONE ),
1280
    ENTRY( 0x0019, 0x00c5, "xs", "?", FUNCDCM_NONE ),
1281
    ENTRY( 0x0019, 0x00c6, "SS", "SAT Location H", FUNCDCM_NONE ),
1282
    ENTRY( 0x0019, 0x00c7, "SS", "SAT Location F", FUNCDCM_NONE ),
1283
    ENTRY( 0x0019, 0x00c8, "SS", "SAT Thickness R L", FUNCDCM_NONE ),
1284
    ENTRY( 0x0019, 0x00c9, "SS", "SAT Thickness A P", FUNCDCM_NONE ),
1285
    ENTRY( 0x0019, 0x00ca, "SS", "SAT Thickness H F", FUNCDCM_NONE ),
1286
    ENTRY( 0x0019, 0x00cb, "xs", "?", FUNCDCM_NONE ),
1287
    ENTRY( 0x0019, 0x00cc, "xs", "?", FUNCDCM_NONE ),
1288
    ENTRY( 0x0019, 0x00cd, "SS", "Thickness Disclaimer", FUNCDCM_NONE ),
1289
    ENTRY( 0x0019, 0x00ce, "SS", "Prescan Type", FUNCDCM_NONE ),
1290
    ENTRY( 0x0019, 0x00cf, "SS", "Prescan Status", FUNCDCM_NONE ),
1291
    ENTRY( 0x0019, 0x00d0, "SH", "Raw Data Type", FUNCDCM_NONE ),
1292
    ENTRY( 0x0019, 0x00d1, "DS", "Flow Sensitivity", FUNCDCM_NONE ),
1293
    ENTRY( 0x0019, 0x00d2, "xs", "?", FUNCDCM_NONE ),
1294
    ENTRY( 0x0019, 0x00d3, "xs", "?", FUNCDCM_NONE ),
1295
    ENTRY( 0x0019, 0x00d4, "xs", "?", FUNCDCM_NONE ),
1296
    ENTRY( 0x0019, 0x00d5, "xs", "?", FUNCDCM_NONE ),
1297
    ENTRY( 0x0019, 0x00d6, "xs", "?", FUNCDCM_NONE ),
1298
    ENTRY( 0x0019, 0x00d7, "xs", "?", FUNCDCM_NONE ),
1299
    ENTRY( 0x0019, 0x00d8, "xs", "?", FUNCDCM_NONE ),
1300
    ENTRY( 0x0019, 0x00d9, "xs", "?", FUNCDCM_NONE ),
1301
    ENTRY( 0x0019, 0x00da, "xs", "?", FUNCDCM_NONE ),
1302
    ENTRY( 0x0019, 0x00db, "DS", "Back Projector Coefficient", FUNCDCM_NONE ),
1303
    ENTRY( 0x0019, 0x00dc, "SS", "Primary Speed Correction Used", FUNCDCM_NONE ),
1304
    ENTRY( 0x0019, 0x00dd, "SS", "Overrange Correction Used", FUNCDCM_NONE ),
1305
    ENTRY( 0x0019, 0x00de, "DS", "Dynamic Z Alpha Value", FUNCDCM_NONE ),
1306
    ENTRY( 0x0019, 0x00df, "DS", "User Data", FUNCDCM_NONE ),
1307
    ENTRY( 0x0019, 0x00e0, "DS", "User Data", FUNCDCM_NONE ),
1308
    ENTRY( 0x0019, 0x00e1, "xs", "?", FUNCDCM_NONE ),
1309
    ENTRY( 0x0019, 0x00e2, "xs", "?", FUNCDCM_NONE ),
1310
    ENTRY( 0x0019, 0x00e3, "xs", "?", FUNCDCM_NONE ),
1311
    ENTRY( 0x0019, 0x00e4, "LT", "?", FUNCDCM_NONE ),
1312
    ENTRY( 0x0019, 0x00e5, "IS", "?", FUNCDCM_NONE ),
1313
    ENTRY( 0x0019, 0x00e6, "US", "?", FUNCDCM_NONE ),
1314
    ENTRY( 0x0019, 0x00e8, "DS", "?", FUNCDCM_NONE ),
1315
    ENTRY( 0x0019, 0x00e9, "DS", "?", FUNCDCM_NONE ),
1316
    ENTRY( 0x0019, 0x00eb, "DS", "?", FUNCDCM_NONE ),
1317
    ENTRY( 0x0019, 0x00ec, "US", "?", FUNCDCM_NONE ),
1318
    ENTRY( 0x0019, 0x00f0, "xs", "?", FUNCDCM_NONE ),
1319
    ENTRY( 0x0019, 0x00f1, "xs", "?", FUNCDCM_NONE ),
1320
    ENTRY( 0x0019, 0x00f2, "xs", "?", FUNCDCM_NONE ),
1321
    ENTRY( 0x0019, 0x00f3, "xs", "?", FUNCDCM_NONE ),
1322
    ENTRY( 0x0019, 0x00f4, "LT", "?", FUNCDCM_NONE ),
1323
    ENTRY( 0x0019, 0x00f9, "DS", "Transmission Gain", FUNCDCM_NONE ),
1324
    ENTRY( 0x0019, 0x1015, "UN", "?", FUNCDCM_NONE ),
1325
    ENTRY( 0x0020, 0x0000, "UL", "Relationship Group Length", FUNCDCM_NONE ),
1326
    ENTRY( 0x0020, 0x000d, "UI", "Study Instance UID", FUNCDCM_NONE ),
1327
    ENTRY( 0x0020, 0x000e, "UI", "Series Instance UID", FUNCDCM_NONE ),
1328
    ENTRY( 0x0020, 0x0010, "SH", "Study ID", FUNCDCM_NONE ),
1329
    ENTRY( 0x0020, 0x0011, "IS", "Series Number", FUNCDCM_SERIESNUMBER ),
1330
    ENTRY( 0x0020, 0x0012, "IS", "Acquisition Number", FUNCDCM_NONE ),
1331
    ENTRY( 0x0020, 0x0013, "IS", "Instance (formerly Image) Number", FUNCDCM_NONE ),
1332
    ENTRY( 0x0020, 0x0014, "IS", "Isotope Number", FUNCDCM_NONE ),
1333
    ENTRY( 0x0020, 0x0015, "IS", "Phase Number", FUNCDCM_NONE ),
1334
    ENTRY( 0x0020, 0x0016, "IS", "Interval Number", FUNCDCM_NONE ),
1335
    ENTRY( 0x0020, 0x0017, "IS", "Time Slot Number", FUNCDCM_NONE ),
1336
    ENTRY( 0x0020, 0x0018, "IS", "Angle Number", FUNCDCM_NONE ),
1337
    ENTRY( 0x0020, 0x0020, "CS", "Patient Orientation", FUNCDCM_NONE ),
1338
    ENTRY( 0x0020, 0x0022, "IS", "Overlay Number", FUNCDCM_NONE ),
1339
    ENTRY( 0x0020, 0x0024, "IS", "Curve Number", FUNCDCM_NONE ),
1340
    ENTRY( 0x0020, 0x0026, "IS", "LUT Number", FUNCDCM_NONE ),
1341
    ENTRY( 0x0020, 0x0030, "DS", "Image Position", FUNCDCM_IMAGEPOSITION ),
1342
    ENTRY( 0x0020, 0x0032, "DS", "Image Position (Patient)", FUNCDCM_NONE ),
1343
    ENTRY( 0x0020, 0x0035, "DS", "Image Orientation", FUNCDCM_NONE ),
1344
    ENTRY( 0x0020, 0x0037, "DS", "Image Orientation (Patient)", FUNCDCM_NONE ),
1345
    ENTRY( 0x0020, 0x0050, "DS", "Location", FUNCDCM_NONE ),
1346
    ENTRY( 0x0020, 0x0052, "UI", "Frame of Reference UID", FUNCDCM_NONE ),
1347
    ENTRY( 0x0020, 0x0060, "CS", "Laterality", FUNCDCM_NONE ),
1348
    ENTRY( 0x0020, 0x0062, "CS", "Image Laterality", FUNCDCM_NONE ),
1349
    ENTRY( 0x0020, 0x0070, "LT", "Image Geometry Type", FUNCDCM_NONE ),
1350
    ENTRY( 0x0020, 0x0080, "LO", "Masking Image", FUNCDCM_NONE ),
1351
    ENTRY( 0x0020, 0x0100, "IS", "Temporal Position Identifier", FUNCDCM_NONE ),
1352
    ENTRY( 0x0020, 0x0105, "IS", "Number of Temporal Positions", FUNCDCM_NONE ),
1353
    ENTRY( 0x0020, 0x0110, "DS", "Temporal Resolution", FUNCDCM_NONE ),
1354
    ENTRY( 0x0020, 0x1000, "IS", "Series in Study", FUNCDCM_NONE ),
1355
    ENTRY( 0x0020, 0x1001, "DS", "Acquisitions in Series", FUNCDCM_NONE ),
1356
    ENTRY( 0x0020, 0x1002, "IS", "Images in Acquisition", FUNCDCM_NONE ),
1357
    ENTRY( 0x0020, 0x1003, "IS", "Images in Series", FUNCDCM_NONE ),
1358
    ENTRY( 0x0020, 0x1004, "IS", "Acquisitions in Study", FUNCDCM_NONE ),
1359
    ENTRY( 0x0020, 0x1005, "IS", "Images in Study", FUNCDCM_NONE ),
1360
    ENTRY( 0x0020, 0x1020, "LO", "Reference", FUNCDCM_NONE ),
1361
    ENTRY( 0x0020, 0x1040, "LO", "Position Reference Indicator", FUNCDCM_NONE ),
1362
    ENTRY( 0x0020, 0x1041, "DS", "Slice Location", FUNCDCM_SLICELOCATION ),
1363
    ENTRY( 0x0020, 0x1070, "IS", "Other Study Numbers", FUNCDCM_NONE ),
1364
    ENTRY( 0x0020, 0x1200, "IS", "Number of Patient Related Studies", FUNCDCM_NONE ),
1365
    ENTRY( 0x0020, 0x1202, "IS", "Number of Patient Related Series", FUNCDCM_NONE ),
1366
    ENTRY( 0x0020, 0x1204, "IS", "Number of Patient Related Images", FUNCDCM_NONE ),
1367
    ENTRY( 0x0020, 0x1206, "IS", "Number of Study Related Series", FUNCDCM_NONE ),
1368
    ENTRY( 0x0020, 0x1208, "IS", "Number of Study Related Series", FUNCDCM_NONE ),
1369
    ENTRY( 0x0020, 0x3100, "LO", "Source Image IDs", FUNCDCM_NONE ),
1370
    ENTRY( 0x0020, 0x3401, "LO", "Modifying Device ID", FUNCDCM_NONE ),
1371
    ENTRY( 0x0020, 0x3402, "LO", "Modified Image ID", FUNCDCM_NONE ),
1372
    ENTRY( 0x0020, 0x3403, "xs", "Modified Image Date", FUNCDCM_NONE ),
1373
    ENTRY( 0x0020, 0x3404, "LO", "Modifying Device Manufacturer", FUNCDCM_NONE ),
1374
    ENTRY( 0x0020, 0x3405, "xs", "Modified Image Time", FUNCDCM_NONE ),
1375
    ENTRY( 0x0020, 0x3406, "xs", "Modified Image Description", FUNCDCM_NONE ),
1376
    ENTRY( 0x0020, 0x4000, "LT", "Image Comments", FUNCDCM_NONE ),
1377
    ENTRY( 0x0020, 0x5000, "AT", "Original Image Identification", FUNCDCM_NONE ),
1378
    ENTRY( 0x0020, 0x5002, "LO", "Original Image Identification Nomenclature", FUNCDCM_NONE ),
1379
    ENTRY( 0x0021, 0x0000, "xs", "?", FUNCDCM_NONE ),
1380
    ENTRY( 0x0021, 0x0001, "xs", "?", FUNCDCM_NONE ),
1381
    ENTRY( 0x0021, 0x0002, "xs", "?", FUNCDCM_NONE ),
1382
    ENTRY( 0x0021, 0x0003, "xs", "?", FUNCDCM_NONE ),
1383
    ENTRY( 0x0021, 0x0004, "DS", "VOI Position", FUNCDCM_NONE ),
1384
    ENTRY( 0x0021, 0x0005, "xs", "?", FUNCDCM_NONE ),
1385
    ENTRY( 0x0021, 0x0006, "IS", "CSI Matrix Size Original", FUNCDCM_NONE ),
1386
    ENTRY( 0x0021, 0x0007, "xs", "?", FUNCDCM_NONE ),
1387
    ENTRY( 0x0021, 0x0008, "DS", "Spatial Grid Shift", FUNCDCM_NONE ),
1388
    ENTRY( 0x0021, 0x0009, "DS", "Signal Limits Minimum", FUNCDCM_NONE ),
1389
    ENTRY( 0x0021, 0x0010, "xs", "?", FUNCDCM_NONE ),
1390
    ENTRY( 0x0021, 0x0011, "xs", "?", FUNCDCM_NONE ),
1391
    ENTRY( 0x0021, 0x0012, "xs", "?", FUNCDCM_NONE ),
1392
    ENTRY( 0x0021, 0x0013, "xs", "?", FUNCDCM_NONE ),
1393
    ENTRY( 0x0021, 0x0014, "xs", "?", FUNCDCM_NONE ),
1394
    ENTRY( 0x0021, 0x0015, "xs", "?", FUNCDCM_NONE ),
1395
    ENTRY( 0x0021, 0x0016, "xs", "?", FUNCDCM_NONE ),
1396
    ENTRY( 0x0021, 0x0017, "DS", "EPI Operation Mode Flag", FUNCDCM_NONE ),
1397
    ENTRY( 0x0021, 0x0018, "xs", "?", FUNCDCM_NONE ),
1398
    ENTRY( 0x0021, 0x0019, "xs", "?", FUNCDCM_NONE ),
1399
    ENTRY( 0x0021, 0x0020, "xs", "?", FUNCDCM_NONE ),
1400
    ENTRY( 0x0021, 0x0021, "xs", "?", FUNCDCM_NONE ),
1401
    ENTRY( 0x0021, 0x0022, "xs", "?", FUNCDCM_NONE ),
1402
    ENTRY( 0x0021, 0x0024, "xs", "?", FUNCDCM_NONE ),
1403
    ENTRY( 0x0021, 0x0025, "US", "?", FUNCDCM_NONE ),
1404
    ENTRY( 0x0021, 0x0026, "IS", "Image Pixel Offset", FUNCDCM_NONE ),
1405
    ENTRY( 0x0021, 0x0030, "xs", "?", FUNCDCM_NONE ),
1406
    ENTRY( 0x0021, 0x0031, "xs", "?", FUNCDCM_NONE ),
1407
    ENTRY( 0x0021, 0x0032, "xs", "?", FUNCDCM_NONE ),
1408
    ENTRY( 0x0021, 0x0034, "xs", "?", FUNCDCM_NONE ),
1409
    ENTRY( 0x0021, 0x0035, "SS", "Series From Which Prescribed", FUNCDCM_NONE ),
1410
    ENTRY( 0x0021, 0x0036, "xs", "?", FUNCDCM_NONE ),
1411
    ENTRY( 0x0021, 0x0037, "SS", "Screen Format", FUNCDCM_NONE ),
1412
    ENTRY( 0x0021, 0x0039, "DS", "Slab Thickness", FUNCDCM_NONE ),
1413
    ENTRY( 0x0021, 0x0040, "xs", "?", FUNCDCM_NONE ),
1414
    ENTRY( 0x0021, 0x0041, "xs", "?", FUNCDCM_NONE ),
1415
    ENTRY( 0x0021, 0x0042, "xs", "?", FUNCDCM_NONE ),
1416
    ENTRY( 0x0021, 0x0043, "xs", "?", FUNCDCM_NONE ),
1417
    ENTRY( 0x0021, 0x0044, "xs", "?", FUNCDCM_NONE ),
1418
    ENTRY( 0x0021, 0x0045, "xs", "?", FUNCDCM_NONE ),
1419
    ENTRY( 0x0021, 0x0046, "xs", "?", FUNCDCM_NONE ),
1420
    ENTRY( 0x0021, 0x0047, "xs", "?", FUNCDCM_NONE ),
1421
    ENTRY( 0x0021, 0x0048, "xs", "?", FUNCDCM_NONE ),
1422
    ENTRY( 0x0021, 0x0049, "xs", "?", FUNCDCM_NONE ),
1423
    ENTRY( 0x0021, 0x004a, "xs", "?", FUNCDCM_NONE ),
1424
    ENTRY( 0x0021, 0x004e, "US", "?", FUNCDCM_NONE ),
1425
    ENTRY( 0x0021, 0x004f, "xs", "?", FUNCDCM_NONE ),
1426
    ENTRY( 0x0021, 0x0050, "xs", "?", FUNCDCM_NONE ),
1427
    ENTRY( 0x0021, 0x0051, "xs", "?", FUNCDCM_NONE ),
1428
    ENTRY( 0x0021, 0x0052, "xs", "?", FUNCDCM_NONE ),
1429
    ENTRY( 0x0021, 0x0053, "xs", "?", FUNCDCM_NONE ),
1430
    ENTRY( 0x0021, 0x0054, "xs", "?", FUNCDCM_NONE ),
1431
    ENTRY( 0x0021, 0x0055, "xs", "?", FUNCDCM_NONE ),
1432
    ENTRY( 0x0021, 0x0056, "xs", "?", FUNCDCM_NONE ),
1433
    ENTRY( 0x0021, 0x0057, "xs", "?", FUNCDCM_NONE ),
1434
    ENTRY( 0x0021, 0x0058, "xs", "?", FUNCDCM_NONE ),
1435
    ENTRY( 0x0021, 0x0059, "xs", "?", FUNCDCM_NONE ),
1436
    ENTRY( 0x0021, 0x005a, "SL", "Integer Slop", FUNCDCM_NONE ),
1437
    ENTRY( 0x0021, 0x005b, "DS", "Float Slop", FUNCDCM_NONE ),
1438
    ENTRY( 0x0021, 0x005c, "DS", "Float Slop", FUNCDCM_NONE ),
1439
    ENTRY( 0x0021, 0x005d, "DS", "Float Slop", FUNCDCM_NONE ),
1440
    ENTRY( 0x0021, 0x005e, "DS", "Float Slop", FUNCDCM_NONE ),
1441
    ENTRY( 0x0021, 0x005f, "DS", "Float Slop", FUNCDCM_NONE ),
1442
    ENTRY( 0x0021, 0x0060, "xs", "?", FUNCDCM_NONE ),
1443
    ENTRY( 0x0021, 0x0061, "DS", "Image Normal", FUNCDCM_NONE ),
1444
    ENTRY( 0x0021, 0x0062, "IS", "Reference Type Code", FUNCDCM_NONE ),
1445
    ENTRY( 0x0021, 0x0063, "DS", "Image Distance", FUNCDCM_NONE ),
1446
    ENTRY( 0x0021, 0x0065, "US", "Image Positioning History Mask", FUNCDCM_NONE ),
1447
    ENTRY( 0x0021, 0x006a, "DS", "Image Row", FUNCDCM_NONE ),
1448
    ENTRY( 0x0021, 0x006b, "DS", "Image Column", FUNCDCM_NONE ),
1449
    ENTRY( 0x0021, 0x0070, "xs", "?", FUNCDCM_NONE ),
1450
    ENTRY( 0x0021, 0x0071, "xs", "?", FUNCDCM_NONE ),
1451
    ENTRY( 0x0021, 0x0072, "xs", "?", FUNCDCM_NONE ),
1452
    ENTRY( 0x0021, 0x0073, "DS", "Second Repetition Time", FUNCDCM_NONE ),
1453
    ENTRY( 0x0021, 0x0075, "DS", "Light Brightness", FUNCDCM_NONE ),
1454
    ENTRY( 0x0021, 0x0076, "DS", "Light Contrast", FUNCDCM_NONE ),
1455
    ENTRY( 0x0021, 0x007a, "IS", "Overlay Threshold", FUNCDCM_NONE ),
1456
    ENTRY( 0x0021, 0x007b, "IS", "Surface Threshold", FUNCDCM_NONE ),
1457
    ENTRY( 0x0021, 0x007c, "IS", "Grey Scale Threshold", FUNCDCM_NONE ),
1458
    ENTRY( 0x0021, 0x0080, "xs", "?", FUNCDCM_NONE ),
1459
    ENTRY( 0x0021, 0x0081, "DS", "Auto Window Level Alpha", FUNCDCM_NONE ),
1460
    ENTRY( 0x0021, 0x0082, "xs", "?", FUNCDCM_NONE ),
1461
    ENTRY( 0x0021, 0x0083, "DS", "Auto Window Level Window", FUNCDCM_NONE ),
1462
    ENTRY( 0x0021, 0x0084, "DS", "Auto Window Level Level", FUNCDCM_NONE ),
1463
    ENTRY( 0x0021, 0x0090, "xs", "?", FUNCDCM_NONE ),
1464
    ENTRY( 0x0021, 0x0091, "xs", "?", FUNCDCM_NONE ),
1465
    ENTRY( 0x0021, 0x0092, "xs", "?", FUNCDCM_NONE ),
1466
    ENTRY( 0x0021, 0x0093, "xs", "?", FUNCDCM_NONE ),
1467
    ENTRY( 0x0021, 0x0094, "DS", "EPI Change Value of X Component", FUNCDCM_NONE ),
1468
    ENTRY( 0x0021, 0x0095, "DS", "EPI Change Value of Y Component", FUNCDCM_NONE ),
1469
    ENTRY( 0x0021, 0x0096, "DS", "EPI Change Value of Z Component", FUNCDCM_NONE ),
1470
    ENTRY( 0x0021, 0x00a0, "xs", "?", FUNCDCM_NONE ),
1471
    ENTRY( 0x0021, 0x00a1, "DS", "?", FUNCDCM_NONE ),
1472
    ENTRY( 0x0021, 0x00a2, "xs", "?", FUNCDCM_NONE ),
1473
    ENTRY( 0x0021, 0x00a3, "LT", "?", FUNCDCM_NONE ),
1474
    ENTRY( 0x0021, 0x00a4, "LT", "?", FUNCDCM_NONE ),
1475
    ENTRY( 0x0021, 0x00a7, "LT", "?", FUNCDCM_NONE ),
1476
    ENTRY( 0x0021, 0x00b0, "IS", "?", FUNCDCM_NONE ),
1477
    ENTRY( 0x0021, 0x00c0, "IS", "?", FUNCDCM_NONE ),
1478
    ENTRY( 0x0023, 0x0000, "xs", "?", FUNCDCM_NONE ),
1479
    ENTRY( 0x0023, 0x0001, "SL", "Number Of Series In Study", FUNCDCM_NONE ),
1480
    ENTRY( 0x0023, 0x0002, "SL", "Number Of Unarchived Series", FUNCDCM_NONE ),
1481
    ENTRY( 0x0023, 0x0010, "xs", "?", FUNCDCM_NONE ),
1482
    ENTRY( 0x0023, 0x0020, "xs", "?", FUNCDCM_NONE ),
1483
    ENTRY( 0x0023, 0x0030, "xs", "?", FUNCDCM_NONE ),
1484
    ENTRY( 0x0023, 0x0040, "xs", "?", FUNCDCM_NONE ),
1485
    ENTRY( 0x0023, 0x0050, "xs", "?", FUNCDCM_NONE ),
1486
    ENTRY( 0x0023, 0x0060, "xs", "?", FUNCDCM_NONE ),
1487
    ENTRY( 0x0023, 0x0070, "xs", "?", FUNCDCM_NONE ),
1488
    ENTRY( 0x0023, 0x0074, "SL", "Number Of Updates To Info", FUNCDCM_NONE ),
1489
    ENTRY( 0x0023, 0x007d, "SS", "Indicates If Study Has Complete Info", FUNCDCM_NONE ),
1490
    ENTRY( 0x0023, 0x0080, "xs", "?", FUNCDCM_NONE ),
1491
    ENTRY( 0x0023, 0x0090, "xs", "?", FUNCDCM_NONE ),
1492
    ENTRY( 0x0023, 0x00ff, "US", "?", FUNCDCM_NONE ),
1493
    ENTRY( 0x0025, 0x0000, "UL", "Group Length", FUNCDCM_NONE ),
1494
    ENTRY( 0x0025, 0x0006, "SS", "Last Pulse Sequence Used", FUNCDCM_NONE ),
1495
    ENTRY( 0x0025, 0x0007, "SL", "Images In Series", FUNCDCM_NONE ),
1496
    ENTRY( 0x0025, 0x0010, "SS", "Landmark Counter", FUNCDCM_NONE ),
1497
    ENTRY( 0x0025, 0x0011, "SS", "Number Of Acquisitions", FUNCDCM_NONE ),
1498
    ENTRY( 0x0025, 0x0014, "SL", "Indicates Number Of Updates To Info", FUNCDCM_NONE ),
1499
    ENTRY( 0x0025, 0x0017, "SL", "Series Complete Flag", FUNCDCM_NONE ),
1500
    ENTRY( 0x0025, 0x0018, "SL", "Number Of Images Archived", FUNCDCM_NONE ),
1501
    ENTRY( 0x0025, 0x0019, "SL", "Last Image Number Used", FUNCDCM_NONE ),
1502
    ENTRY( 0x0025, 0x001a, "SH", "Primary Receiver Suite And Host", FUNCDCM_NONE ),
1503
    ENTRY( 0x0027, 0x0000, "US", "?", FUNCDCM_NONE ),
1504
    ENTRY( 0x0027, 0x0006, "SL", "Image Archive Flag", FUNCDCM_NONE ),
1505
    ENTRY( 0x0027, 0x0010, "SS", "Scout Type", FUNCDCM_NONE ),
1506
    ENTRY( 0x0027, 0x0011, "UN", "?", FUNCDCM_NONE ),
1507
    ENTRY( 0x0027, 0x0012, "IS", "?", FUNCDCM_NONE ),
1508
    ENTRY( 0x0027, 0x0013, "IS", "?", FUNCDCM_NONE ),
1509
    ENTRY( 0x0027, 0x0014, "IS", "?", FUNCDCM_NONE ),
1510
    ENTRY( 0x0027, 0x0015, "IS", "?", FUNCDCM_NONE ),
1511
    ENTRY( 0x0027, 0x0016, "LT", "?", FUNCDCM_NONE ),
1512
    ENTRY( 0x0027, 0x001c, "SL", "Vma Mamp", FUNCDCM_NONE ),
1513
    ENTRY( 0x0027, 0x001d, "SS", "Vma Phase", FUNCDCM_NONE ),
1514
    ENTRY( 0x0027, 0x001e, "SL", "Vma Mod", FUNCDCM_NONE ),
1515
    ENTRY( 0x0027, 0x001f, "SL", "Vma Clip", FUNCDCM_NONE ),
1516
    ENTRY( 0x0027, 0x0020, "SS", "Smart Scan On Off Flag", FUNCDCM_NONE ),
1517
    ENTRY( 0x0027, 0x0030, "SH", "Foreign Image Revision", FUNCDCM_NONE ),
1518
    ENTRY( 0x0027, 0x0031, "SS", "Imaging Mode", FUNCDCM_NONE ),
1519
    ENTRY( 0x0027, 0x0032, "SS", "Pulse Sequence", FUNCDCM_NONE ),
1520
    ENTRY( 0x0027, 0x0033, "SL", "Imaging Options", FUNCDCM_NONE ),
1521
    ENTRY( 0x0027, 0x0035, "SS", "Plane Type", FUNCDCM_NONE ),
1522
    ENTRY( 0x0027, 0x0036, "SL", "Oblique Plane", FUNCDCM_NONE ),
1523
    ENTRY( 0x0027, 0x0040, "SH", "RAS Letter Of Image Location", FUNCDCM_NONE ),
1524
    ENTRY( 0x0027, 0x0041, "FL", "Image Location", FUNCDCM_NONE ),
1525
    ENTRY( 0x0027, 0x0042, "FL", "Center R Coord Of Plane Image", FUNCDCM_NONE ),
1526
    ENTRY( 0x0027, 0x0043, "FL", "Center A Coord Of Plane Image", FUNCDCM_NONE ),
1527
    ENTRY( 0x0027, 0x0044, "FL", "Center S Coord Of Plane Image", FUNCDCM_NONE ),
1528
    ENTRY( 0x0027, 0x0045, "FL", "Normal R Coord", FUNCDCM_NONE ),
1529
    ENTRY( 0x0027, 0x0046, "FL", "Normal A Coord", FUNCDCM_NONE ),
1530
    ENTRY( 0x0027, 0x0047, "FL", "Normal S Coord", FUNCDCM_NONE ),
1531
    ENTRY( 0x0027, 0x0048, "FL", "R Coord Of Top Right Corner", FUNCDCM_NONE ),
1532
    ENTRY( 0x0027, 0x0049, "FL", "A Coord Of Top Right Corner", FUNCDCM_NONE ),
1533
    ENTRY( 0x0027, 0x004a, "FL", "S Coord Of Top Right Corner", FUNCDCM_NONE ),
1534
    ENTRY( 0x0027, 0x004b, "FL", "R Coord Of Bottom Right Corner", FUNCDCM_NONE ),
1535
    ENTRY( 0x0027, 0x004c, "FL", "A Coord Of Bottom Right Corner", FUNCDCM_NONE ),
1536
    ENTRY( 0x0027, 0x004d, "FL", "S Coord Of Bottom Right Corner", FUNCDCM_NONE ),
1537
    ENTRY( 0x0027, 0x0050, "FL", "Table Start Location", FUNCDCM_NONE ),
1538
    ENTRY( 0x0027, 0x0051, "FL", "Table End Location", FUNCDCM_NONE ),
1539
    ENTRY( 0x0027, 0x0052, "SH", "RAS Letter For Side Of Image", FUNCDCM_NONE ),
1540
    ENTRY( 0x0027, 0x0053, "SH", "RAS Letter For Anterior Posterior", FUNCDCM_NONE ),
1541
    ENTRY( 0x0027, 0x0054, "SH", "RAS Letter For Scout Start Loc", FUNCDCM_NONE ),
1542
    ENTRY( 0x0027, 0x0055, "SH", "RAS Letter For Scout End Loc", FUNCDCM_NONE ),
1543
    ENTRY( 0x0027, 0x0060, "FL", "Image Dimension X", FUNCDCM_NONE ),
1544
    ENTRY( 0x0027, 0x0061, "FL", "Image Dimension Y", FUNCDCM_NONE ),
1545
    ENTRY( 0x0027, 0x0062, "FL", "Number Of Excitations", FUNCDCM_NONE ),
1546
    ENTRY( 0x0028, 0x0000, "UL", "Image Presentation Group Length", FUNCDCM_NONE ),
1547
    ENTRY( 0x0028, 0x0002, "US", "Samples per Pixel", FUNCDCM_SAMPLESPERPIXEL ),
1548
    ENTRY( 0x0028, 0x0004, "CS", "Photometric Interpretation", FUNCDCM_PHOTOMETRICINTERPRETATION ),
1549
    ENTRY( 0x0028, 0x0005, "US", "Image Dimensions", FUNCDCM_NONE ),
1550
    ENTRY( 0x0028, 0x0006, "US", "Planar Configuration", FUNCDCM_PLANARCONFIGURATION ),
1551
    ENTRY( 0x0028, 0x0008, "IS", "Number of Frames", FUNCDCM_NUMBEROFFRAMES ),
1552
    ENTRY( 0x0028, 0x0009, "AT", "Frame Increment Pointer", FUNCDCM_NONE ),
1553
    ENTRY( 0x0028, 0x0010, "US", "Rows", FUNCDCM_ROWS ),
1554
    ENTRY( 0x0028, 0x0011, "US", "Columns", FUNCDCM_COLUMNS ),
1555
    ENTRY( 0x0028, 0x0012, "US", "Planes", FUNCDCM_NONE ),
1556
    ENTRY( 0x0028, 0x0014, "US", "Ultrasound Color Data Present", FUNCDCM_NONE ),
1557
    ENTRY( 0x0028, 0x0030, "DS", "Pixel Spacing", FUNCDCM_NONE ),
1558
    ENTRY( 0x0028, 0x0031, "DS", "Zoom Factor", FUNCDCM_NONE ),
1559
    ENTRY( 0x0028, 0x0032, "DS", "Zoom Center", FUNCDCM_NONE ),
1560
    ENTRY( 0x0028, 0x0034, "IS", "Pixel Aspect Ratio", FUNCDCM_NONE ),
1561
    ENTRY( 0x0028, 0x0040, "LO", "Image Format", FUNCDCM_NONE ),
1562
    ENTRY( 0x0028, 0x0050, "LT", "Manipulated Image", FUNCDCM_NONE ),
1563
    ENTRY( 0x0028, 0x0051, "CS", "Corrected Image", FUNCDCM_NONE ),
1564
    ENTRY( 0x0028, 0x005f, "LO", "Compression Recognition Code", FUNCDCM_NONE ),
1565
    ENTRY( 0x0028, 0x0060, "LO", "Compression Code", FUNCDCM_NONE ),
1566
    ENTRY( 0x0028, 0x0061, "SH", "Compression Originator", FUNCDCM_NONE ),
1567
    ENTRY( 0x0028, 0x0062, "SH", "Compression Label", FUNCDCM_NONE ),
1568
    ENTRY( 0x0028, 0x0063, "SH", "Compression Description", FUNCDCM_NONE ),
1569
    ENTRY( 0x0028, 0x0065, "LO", "Compression Sequence", FUNCDCM_NONE ),
1570
    ENTRY( 0x0028, 0x0066, "AT", "Compression Step Pointers", FUNCDCM_NONE ),
1571
    ENTRY( 0x0028, 0x0068, "US", "Repeat Interval", FUNCDCM_NONE ),
1572
    ENTRY( 0x0028, 0x0069, "US", "Bits Grouped", FUNCDCM_NONE ),
1573
    ENTRY( 0x0028, 0x0070, "US", "Perimeter Table", FUNCDCM_NONE ),
1574
    ENTRY( 0x0028, 0x0071, "xs", "Perimeter Value", FUNCDCM_NONE ),
1575
    ENTRY( 0x0028, 0x0080, "US", "Predictor Rows", FUNCDCM_NONE ),
1576
    ENTRY( 0x0028, 0x0081, "US", "Predictor Columns", FUNCDCM_NONE ),
1577
    ENTRY( 0x0028, 0x0082, "US", "Predictor Constants", FUNCDCM_NONE ),
1578
    ENTRY( 0x0028, 0x0090, "LO", "Blocked Pixels", FUNCDCM_NONE ),
1579
    ENTRY( 0x0028, 0x0091, "US", "Block Rows", FUNCDCM_NONE ),
1580
    ENTRY( 0x0028, 0x0092, "US", "Block Columns", FUNCDCM_NONE ),
1581
    ENTRY( 0x0028, 0x0093, "US", "Row Overlap", FUNCDCM_NONE ),
1582
    ENTRY( 0x0028, 0x0094, "US", "Column Overlap", FUNCDCM_NONE ),
1583
    ENTRY( 0x0028, 0x0100, "US", "Bits Allocated", FUNCDCM_BITSALLOCATED ),
1584
    ENTRY( 0x0028, 0x0101, "US", "Bits Stored", FUNCDCM_BITSSTORED ),
1585
    ENTRY( 0x0028, 0x0102, "US", "High Bit", FUNCDCM_HIGHBIT ),
1586
    ENTRY( 0x0028, 0x0103, "US", "Pixel Representation", FUNCDCM_PIXELREPRESENTATION ),
1587
    ENTRY( 0x0028, 0x0104, "xs", "Smallest Valid Pixel Value", FUNCDCM_NONE ),
1588
    ENTRY( 0x0028, 0x0105, "xs", "Largest Valid Pixel Value", FUNCDCM_NONE ),
1589
    ENTRY( 0x0028, 0x0106, "xs", "Smallest Image Pixel Value", FUNCDCM_NONE ),
1590
    ENTRY( 0x0028, 0x0107, "xs", "Largest Image Pixel Value", FUNCDCM_NONE ),
1591
    ENTRY( 0x0028, 0x0108, "xs", "Smallest Pixel Value in Series", FUNCDCM_NONE ),
1592
    ENTRY( 0x0028, 0x0109, "xs", "Largest Pixel Value in Series", FUNCDCM_NONE ),
1593
    ENTRY( 0x0028, 0x0110, "xs", "Smallest Pixel Value in Plane", FUNCDCM_NONE ),
1594
    ENTRY( 0x0028, 0x0111, "xs", "Largest Pixel Value in Plane", FUNCDCM_NONE ),
1595
    ENTRY( 0x0028, 0x0120, "xs", "Pixel Padding Value", FUNCDCM_NONE ),
1596
    ENTRY( 0x0028, 0x0121, "xs", "Pixel Padding Range Limit", FUNCDCM_NONE ),
1597
    ENTRY( 0x0028, 0x0200, "xs", "Image Location", FUNCDCM_NONE ),
1598
    ENTRY( 0x0028, 0x0300, "CS", "Quality Control Image", FUNCDCM_NONE ),
1599
    ENTRY( 0x0028, 0x0301, "CS", "Burned In Annotation", FUNCDCM_NONE ),
1600
    ENTRY( 0x0028, 0x0400, "xs", "?", FUNCDCM_NONE ),
1601
    ENTRY( 0x0028, 0x0401, "xs", "?", FUNCDCM_NONE ),
1602
    ENTRY( 0x0028, 0x0402, "xs", "?", FUNCDCM_NONE ),
1603
    ENTRY( 0x0028, 0x0403, "xs", "?", FUNCDCM_NONE ),
1604
    ENTRY( 0x0028, 0x0404, "AT", "Details of Coefficients", FUNCDCM_NONE ),
1605
    ENTRY( 0x0028, 0x0700, "LO", "DCT Label", FUNCDCM_NONE ),
1606
    ENTRY( 0x0028, 0x0701, "LO", "Data Block Description", FUNCDCM_NONE ),
1607
    ENTRY( 0x0028, 0x0702, "AT", "Data Block", FUNCDCM_NONE ),
1608
    ENTRY( 0x0028, 0x0710, "US", "Normalization Factor Format", FUNCDCM_NONE ),
1609
    ENTRY( 0x0028, 0x0720, "US", "Zonal Map Number Format", FUNCDCM_NONE ),
1610
    ENTRY( 0x0028, 0x0721, "AT", "Zonal Map Location", FUNCDCM_NONE ),
1611
    ENTRY( 0x0028, 0x0722, "US", "Zonal Map Format", FUNCDCM_NONE ),
1612
    ENTRY( 0x0028, 0x0730, "US", "Adaptive Map Format", FUNCDCM_NONE ),
1613
    ENTRY( 0x0028, 0x0740, "US", "Code Number Format", FUNCDCM_NONE ),
1614
    ENTRY( 0x0028, 0x0800, "LO", "Code Label", FUNCDCM_NONE ),
1615
    ENTRY( 0x0028, 0x0802, "US", "Number of Tables", FUNCDCM_NONE ),
1616
    ENTRY( 0x0028, 0x0803, "AT", "Code Table Location", FUNCDCM_NONE ),
1617
    ENTRY( 0x0028, 0x0804, "US", "Bits For Code Word", FUNCDCM_NONE ),
1618
    ENTRY( 0x0028, 0x0808, "AT", "Image Data Location", FUNCDCM_NONE ),
1619
    ENTRY( 0x0028, 0x1040, "CS", "Pixel Intensity Relationship", FUNCDCM_NONE ),
1620
    ENTRY( 0x0028, 0x1041, "SS", "Pixel Intensity Relationship Sign", FUNCDCM_NONE ),
1621
    ENTRY( 0x0028, 0x1050, "DS", "Window Center", FUNCDCM_WINDOWCENTER ),
1622
    ENTRY( 0x0028, 0x1051, "DS", "Window Width", FUNCDCM_WINDOWWIDTH ),
1623
    ENTRY( 0x0028, 0x1052, "DS", "Rescale Intercept", FUNCDCM_RESCALEINTERCEPT ),
1624
    ENTRY( 0x0028, 0x1053, "DS", "Rescale Slope", FUNCDCM_RESCALESLOPE ),
1625
    ENTRY( 0x0028, 0x1054, "LO", "Rescale Type", FUNCDCM_RESCALETYPE ),
1626
    ENTRY( 0x0028, 0x1055, "LO", "Window Center & Width Explanation", FUNCDCM_NONE ),
1627
    ENTRY( 0x0028, 0x1080, "LO", "Gray Scale", FUNCDCM_NONE ),
1628
    ENTRY( 0x0028, 0x1090, "CS", "Recommended Viewing Mode", FUNCDCM_NONE ),
1629
    ENTRY( 0x0028, 0x1100, "xs", "Gray Lookup Table Descriptor", FUNCDCM_NONE ),
1630
    ENTRY( 0x0028, 0x1101, "xs", "Red Palette Color Lookup Table Descriptor", FUNCDCM_PALETTEDESCRIPTOR ),
1631
    ENTRY( 0x0028, 0x1102, "xs", "Green Palette Color Lookup Table Descriptor", FUNCDCM_PALETTEDESCRIPTOR ),
1632
    ENTRY( 0x0028, 0x1103, "xs", "Blue Palette Color Lookup Table Descriptor", FUNCDCM_PALETTEDESCRIPTOR ),
1633
    ENTRY( 0x0028, 0x1111, "OW", "Large Red Palette Color Lookup Table Descriptor", FUNCDCM_NONE ),
1634
    ENTRY( 0x0028, 0x1112, "OW", "Large Green Palette Color Lookup Table Descriptor", FUNCDCM_NONE ),
1635
    ENTRY( 0x0028, 0x1113, "OW", "Large Blue Palette Color Lookup Table Descriptor", FUNCDCM_NONE ),
1636
    ENTRY( 0x0028, 0x1199, "UI", "Palette Color Lookup Table UID", FUNCDCM_NONE ),
1637
    ENTRY( 0x0028, 0x1200, "xs", "Gray Lookup Table Data", FUNCDCM_LUT ),
1638
    ENTRY( 0x0028, 0x1201, "OW", "Red Palette Color Lookup Table Data", FUNCDCM_PALETTE ),
1639
    ENTRY( 0x0028, 0x1202, "OW", "Green Palette Color Lookup Table Data", FUNCDCM_PALETTE ),
1640
    ENTRY( 0x0028, 0x1203, "OW", "Blue Palette Color Lookup Table Data", FUNCDCM_PALETTE ),
1641
    ENTRY( 0x0028, 0x1211, "OW", "Large Red Palette Color Lookup Table Data", FUNCDCM_NONE ),
1642
    ENTRY( 0x0028, 0x1212, "OW", "Large Green Palette Color Lookup Table Data", FUNCDCM_NONE ),
1643
    ENTRY( 0x0028, 0x1213, "OW", "Large Blue Palette Color Lookup Table Data", FUNCDCM_NONE ),
1644
    ENTRY( 0x0028, 0x1214, "UI", "Large Palette Color Lookup Table UID", FUNCDCM_NONE ),
1645
    ENTRY( 0x0028, 0x1221, "OW", "Segmented Red Palette Color Lookup Table Data", FUNCDCM_NONE ),
1646
    ENTRY( 0x0028, 0x1222, "OW", "Segmented Green Palette Color Lookup Table Data", FUNCDCM_NONE ),
1647
    ENTRY( 0x0028, 0x1223, "OW", "Segmented Blue Palette Color Lookup Table Data", FUNCDCM_NONE ),
1648
    ENTRY( 0x0028, 0x1300, "CS", "Implant Present", FUNCDCM_NONE ),
1649
    ENTRY( 0x0028, 0x2110, "CS", "Lossy Image Compression", FUNCDCM_NONE ),
1650
    ENTRY( 0x0028, 0x2112, "DS", "Lossy Image Compression Ratio", FUNCDCM_NONE ),
1651
    ENTRY( 0x0028, 0x3000, "SQ", "Modality LUT Sequence", FUNCDCM_NONE ),
1652
    ENTRY( 0x0028, 0x3002, "US", "LUT Descriptor", FUNCDCM_NONE ),
1653
    ENTRY( 0x0028, 0x3003, "LO", "LUT Explanation", FUNCDCM_NONE ),
1654
    ENTRY( 0x0028, 0x3004, "LO", "Modality LUT Type", FUNCDCM_NONE ),
1655
    ENTRY( 0x0028, 0x3006, "US", "LUT Data", FUNCDCM_LUT ),
1656
    ENTRY( 0x0028, 0x3010, "xs", "VOI LUT Sequence", FUNCDCM_NONE ),
1657
    ENTRY( 0x0028, 0x4000, "LT", "Image Presentation Comments", FUNCDCM_NONE ),
1658
    ENTRY( 0x0028, 0x5000, "SQ", "Biplane Acquisition Sequence", FUNCDCM_NONE ),
1659
    ENTRY( 0x0028, 0x6010, "US", "Representative Frame Number", FUNCDCM_NONE ),
1660
    ENTRY( 0x0028, 0x6020, "US", "Frame Numbers of Interest", FUNCDCM_NONE ),
1661
    ENTRY( 0x0028, 0x6022, "LO", "Frame of Interest Description", FUNCDCM_NONE ),
1662
    ENTRY( 0x0028, 0x6030, "US", "Mask Pointer", FUNCDCM_NONE ),
1663
    ENTRY( 0x0028, 0x6040, "US", "R Wave Pointer", FUNCDCM_NONE ),
1664
    ENTRY( 0x0028, 0x6100, "SQ", "Mask Subtraction Sequence", FUNCDCM_NONE ),
1665
    ENTRY( 0x0028, 0x6101, "CS", "Mask Operation", FUNCDCM_NONE ),
1666
    ENTRY( 0x0028, 0x6102, "US", "Applicable Frame Range", FUNCDCM_NONE ),
1667
    ENTRY( 0x0028, 0x6110, "US", "Mask Frame Numbers", FUNCDCM_NONE ),
1668
    ENTRY( 0x0028, 0x6112, "US", "Contrast Frame Averaging", FUNCDCM_NONE ),
1669
    ENTRY( 0x0028, 0x6114, "FL", "Mask Sub-Pixel Shift", FUNCDCM_NONE ),
1670
    ENTRY( 0x0028, 0x6120, "SS", "TID Offset", FUNCDCM_NONE ),
1671
    ENTRY( 0x0028, 0x6190, "ST", "Mask Operation Explanation", FUNCDCM_NONE ),
1672
    ENTRY( 0x0029, 0x0000, "xs", "?", FUNCDCM_NONE ),
1673
    ENTRY( 0x0029, 0x0001, "xs", "?", FUNCDCM_NONE ),
1674
    ENTRY( 0x0029, 0x0002, "xs", "?", FUNCDCM_NONE ),
1675
    ENTRY( 0x0029, 0x0003, "xs", "?", FUNCDCM_NONE ),
1676
    ENTRY( 0x0029, 0x0004, "xs", "?", FUNCDCM_NONE ),
1677
    ENTRY( 0x0029, 0x0005, "xs", "?", FUNCDCM_NONE ),
1678
    ENTRY( 0x0029, 0x0006, "xs", "?", FUNCDCM_NONE ),
1679
    ENTRY( 0x0029, 0x0007, "SL", "Lower Range Of Pixels", FUNCDCM_NONE ),
1680
    ENTRY( 0x0029, 0x0008, "SH", "Lower Range Of Pixels", FUNCDCM_NONE ),
1681
    ENTRY( 0x0029, 0x0009, "SH", "Lower Range Of Pixels", FUNCDCM_NONE ),
1682
    ENTRY( 0x0029, 0x000a, "SS", "Lower Range Of Pixels", FUNCDCM_NONE ),
1683
    ENTRY( 0x0029, 0x000c, "xs", "?", FUNCDCM_NONE ),
1684
    ENTRY( 0x0029, 0x000e, "CS", "Zoom Enable Status", FUNCDCM_NONE ),
1685
    ENTRY( 0x0029, 0x000f, "CS", "Zoom Select Status", FUNCDCM_NONE ),
1686
    ENTRY( 0x0029, 0x0010, "xs", "?", FUNCDCM_NONE ),
1687
    ENTRY( 0x0029, 0x0011, "xs", "?", FUNCDCM_NONE ),
1688
    ENTRY( 0x0029, 0x0013, "LT", "?", FUNCDCM_NONE ),
1689
    ENTRY( 0x0029, 0x0015, "xs", "?", FUNCDCM_NONE ),
1690
    ENTRY( 0x0029, 0x0016, "SL", "Lower Range Of Pixels", FUNCDCM_NONE ),
1691
    ENTRY( 0x0029, 0x0017, "SL", "Lower Range Of Pixels", FUNCDCM_NONE ),
1692
    ENTRY( 0x0029, 0x0018, "SL", "Upper Range Of Pixels", FUNCDCM_NONE ),
1693
    ENTRY( 0x0029, 0x001a, "SL", "Length Of Total Info In Bytes", FUNCDCM_NONE ),
1694
    ENTRY( 0x0029, 0x001e, "xs", "?", FUNCDCM_NONE ),
1695
    ENTRY( 0x0029, 0x001f, "xs", "?", FUNCDCM_NONE ),
1696
    ENTRY( 0x0029, 0x0020, "xs", "?", FUNCDCM_NONE ),
1697
    ENTRY( 0x0029, 0x0022, "IS", "Pixel Quality Value", FUNCDCM_NONE ),
1698
    ENTRY( 0x0029, 0x0025, "LT", "Processed Pixel Data Quality", FUNCDCM_NONE ),
1699
    ENTRY( 0x0029, 0x0026, "SS", "Version Of Info Structure", FUNCDCM_NONE ),
1700
    ENTRY( 0x0029, 0x0030, "xs", "?", FUNCDCM_NONE ),
1701
    ENTRY( 0x0029, 0x0031, "xs", "?", FUNCDCM_NONE ),
1702
    ENTRY( 0x0029, 0x0032, "xs", "?", FUNCDCM_NONE ),
1703
    ENTRY( 0x0029, 0x0033, "xs", "?", FUNCDCM_NONE ),
1704
    ENTRY( 0x0029, 0x0034, "xs", "?", FUNCDCM_NONE ),
1705
    ENTRY( 0x0029, 0x0035, "SL", "Advantage Comp Underflow", FUNCDCM_NONE ),
1706
    ENTRY( 0x0029, 0x0038, "US", "?", FUNCDCM_NONE ),
1707
    ENTRY( 0x0029, 0x0040, "xs", "?", FUNCDCM_NONE ),
1708
    ENTRY( 0x0029, 0x0041, "DS", "Magnifying Glass Rectangle", FUNCDCM_NONE ),
1709
    ENTRY( 0x0029, 0x0043, "DS", "Magnifying Glass Factor", FUNCDCM_NONE ),
1710
    ENTRY( 0x0029, 0x0044, "US", "Magnifying Glass Function", FUNCDCM_NONE ),
1711
    ENTRY( 0x0029, 0x004e, "CS", "Magnifying Glass Enable Status", FUNCDCM_NONE ),
1712
    ENTRY( 0x0029, 0x004f, "CS", "Magnifying Glass Select Status", FUNCDCM_NONE ),
1713
    ENTRY( 0x0029, 0x0050, "xs", "?", FUNCDCM_NONE ),
1714
    ENTRY( 0x0029, 0x0051, "LT", "Exposure Code", FUNCDCM_NONE ),
1715
    ENTRY( 0x0029, 0x0052, "LT", "Sort Code", FUNCDCM_NONE ),
1716
    ENTRY( 0x0029, 0x0053, "LT", "?", FUNCDCM_NONE ),
1717
    ENTRY( 0x0029, 0x0060, "xs", "?", FUNCDCM_NONE ),
1718
    ENTRY( 0x0029, 0x0061, "xs", "?", FUNCDCM_NONE ),
1719
    ENTRY( 0x0029, 0x0067, "LT", "?", FUNCDCM_NONE ),
1720
    ENTRY( 0x0029, 0x0070, "xs", "?", FUNCDCM_NONE ),
1721
    ENTRY( 0x0029, 0x0071, "xs", "?", FUNCDCM_NONE ),
1722
    ENTRY( 0x0029, 0x0072, "xs", "?", FUNCDCM_NONE ),
1723
    ENTRY( 0x0029, 0x0077, "CS", "Window Select Status", FUNCDCM_NONE ),
1724
    ENTRY( 0x0029, 0x0078, "LT", "ECG Display Printing ID", FUNCDCM_NONE ),
1725
    ENTRY( 0x0029, 0x0079, "CS", "ECG Display Printing", FUNCDCM_NONE ),
1726
    ENTRY( 0x0029, 0x007e, "CS", "ECG Display Printing Enable Status", FUNCDCM_NONE ),
1727
    ENTRY( 0x0029, 0x007f, "CS", "ECG Display Printing Select Status", FUNCDCM_NONE ),
1728
    ENTRY( 0x0029, 0x0080, "xs", "?", FUNCDCM_NONE ),
1729
    ENTRY( 0x0029, 0x0081, "xs", "?", FUNCDCM_NONE ),
1730
    ENTRY( 0x0029, 0x0082, "IS", "View Zoom", FUNCDCM_NONE ),
1731
    ENTRY( 0x0029, 0x0083, "IS", "View Transform", FUNCDCM_NONE ),
1732
    ENTRY( 0x0029, 0x008e, "CS", "Physiological Display Enable Status", FUNCDCM_NONE ),
1733
    ENTRY( 0x0029, 0x008f, "CS", "Physiological Display Select Status", FUNCDCM_NONE ),
1734
    ENTRY( 0x0029, 0x0090, "IS", "?", FUNCDCM_NONE ),
1735
    ENTRY( 0x0029, 0x0099, "LT", "Shutter Type", FUNCDCM_NONE ),
1736
    ENTRY( 0x0029, 0x00a0, "US", "Rows of Rectangular Shutter", FUNCDCM_NONE ),
1737
    ENTRY( 0x0029, 0x00a1, "US", "Columns of Rectangular Shutter", FUNCDCM_NONE ),
1738
    ENTRY( 0x0029, 0x00a2, "US", "Origin of Rectangular Shutter", FUNCDCM_NONE ),
1739
    ENTRY( 0x0029, 0x00b0, "US", "Radius of Circular Shutter", FUNCDCM_NONE ),
1740
    ENTRY( 0x0029, 0x00b2, "US", "Origin of Circular Shutter", FUNCDCM_NONE ),
1741
    ENTRY( 0x0029, 0x00c0, "LT", "Functional Shutter ID", FUNCDCM_NONE ),
1742
    ENTRY( 0x0029, 0x00c1, "xs", "?", FUNCDCM_NONE ),
1743
    ENTRY( 0x0029, 0x00c3, "IS", "Scan Resolution", FUNCDCM_NONE ),
1744
    ENTRY( 0x0029, 0x00c4, "IS", "Field of View", FUNCDCM_FIELDOFVIEW ),
1745
    ENTRY( 0x0029, 0x00c5, "LT", "Field Of Shutter Rectangle", FUNCDCM_NONE ),
1746
    ENTRY( 0x0029, 0x00ce, "CS", "Shutter Enable Status", FUNCDCM_NONE ),
1747
    ENTRY( 0x0029, 0x00cf, "CS", "Shutter Select Status", FUNCDCM_NONE ),
1748
    ENTRY( 0x0029, 0x00d0, "IS", "?", FUNCDCM_NONE ),
1749
    ENTRY( 0x0029, 0x00d1, "IS", "?", FUNCDCM_NONE ),
1750
    ENTRY( 0x0029, 0x00d5, "LT", "Slice Thickness", FUNCDCM_NONE ),
1751
    ENTRY( 0x0031, 0x0010, "LT", "Request UID", FUNCDCM_NONE ),
1752
    ENTRY( 0x0031, 0x0012, "LT", "Examination Reason", FUNCDCM_NONE ),
1753
    ENTRY( 0x0031, 0x0030, "DA", "Requested Date", FUNCDCM_NONE ),
1754
    ENTRY( 0x0031, 0x0032, "TM", "Worklist Request Start Time", FUNCDCM_NONE ),
1755
    ENTRY( 0x0031, 0x0033, "TM", "Worklist Request End Time", FUNCDCM_NONE ),
1756
    ENTRY( 0x0031, 0x0045, "LT", "Requesting Physician", FUNCDCM_NONE ),
1757
    ENTRY( 0x0031, 0x004a, "TM", "Requested Time", FUNCDCM_NONE ),
1758
    ENTRY( 0x0031, 0x0050, "LT", "Requested Physician", FUNCDCM_NONE ),
1759
    ENTRY( 0x0031, 0x0080, "LT", "Requested Location", FUNCDCM_NONE ),
1760
    ENTRY( 0x0032, 0x0000, "UL", "Study Group Length", FUNCDCM_NONE ),
1761
    ENTRY( 0x0032, 0x000a, "CS", "Study Status ID", FUNCDCM_NONE ),
1762
    ENTRY( 0x0032, 0x000c, "CS", "Study Priority ID", FUNCDCM_NONE ),
1763
    ENTRY( 0x0032, 0x0012, "LO", "Study ID Issuer", FUNCDCM_NONE ),
1764
    ENTRY( 0x0032, 0x0032, "DA", "Study Verified Date", FUNCDCM_NONE ),
1765
    ENTRY( 0x0032, 0x0033, "TM", "Study Verified Time", FUNCDCM_NONE ),
1766
    ENTRY( 0x0032, 0x0034, "DA", "Study Read Date", FUNCDCM_NONE ),
1767
    ENTRY( 0x0032, 0x0035, "TM", "Study Read Time", FUNCDCM_NONE ),
1768
    ENTRY( 0x0032, 0x1000, "DA", "Scheduled Study Start Date", FUNCDCM_NONE ),
1769
    ENTRY( 0x0032, 0x1001, "TM", "Scheduled Study Start Time", FUNCDCM_NONE ),
1770
    ENTRY( 0x0032, 0x1010, "DA", "Scheduled Study Stop Date", FUNCDCM_NONE ),
1771
    ENTRY( 0x0032, 0x1011, "TM", "Scheduled Study Stop Time", FUNCDCM_NONE ),
1772
    ENTRY( 0x0032, 0x1020, "LO", "Scheduled Study Location", FUNCDCM_NONE ),
1773
    ENTRY( 0x0032, 0x1021, "AE", "Scheduled Study Location AE Title(s)", FUNCDCM_NONE ),
1774
    ENTRY( 0x0032, 0x1030, "LO", "Reason for Study", FUNCDCM_NONE ),
1775
    ENTRY( 0x0032, 0x1032, "PN", "Requesting Physician", FUNCDCM_NONE ),
1776
    ENTRY( 0x0032, 0x1033, "LO", "Requesting Service", FUNCDCM_NONE ),
1777
    ENTRY( 0x0032, 0x1040, "DA", "Study Arrival Date", FUNCDCM_NONE ),
1778
    ENTRY( 0x0032, 0x1041, "TM", "Study Arrival Time", FUNCDCM_NONE ),
1779
    ENTRY( 0x0032, 0x1050, "DA", "Study Completion Date", FUNCDCM_NONE ),
1780
    ENTRY( 0x0032, 0x1051, "TM", "Study Completion Time", FUNCDCM_NONE ),
1781
    ENTRY( 0x0032, 0x1055, "CS", "Study Component Status ID", FUNCDCM_NONE ),
1782
    ENTRY( 0x0032, 0x1060, "LO", "Requested Procedure Description", FUNCDCM_NONE ),
1783
    ENTRY( 0x0032, 0x1064, "SQ", "Requested Procedure Code Sequence", FUNCDCM_NONE ),
1784
    ENTRY( 0x0032, 0x1070, "LO", "Requested Contrast Agent", FUNCDCM_NONE ),
1785
    ENTRY( 0x0032, 0x4000, "LT", "Study Comments", FUNCDCM_NONE ),
1786
    ENTRY( 0x0033, 0x0001, "UN", "?", FUNCDCM_NONE ),
1787
    ENTRY( 0x0033, 0x0002, "UN", "?", FUNCDCM_NONE ),
1788
    ENTRY( 0x0033, 0x0005, "UN", "?", FUNCDCM_NONE ),
1789
    ENTRY( 0x0033, 0x0006, "UN", "?", FUNCDCM_NONE ),
1790
    ENTRY( 0x0033, 0x0010, "LT", "Patient Study UID", FUNCDCM_NONE ),
1791
    ENTRY( 0x0037, 0x0010, "LO", "ReferringDepartment", FUNCDCM_NONE ),
1792
    ENTRY( 0x0037, 0x0020, "US", "ScreenNumber", FUNCDCM_NONE ),
1793
    ENTRY( 0x0037, 0x0040, "SH", "LeftOrientation", FUNCDCM_NONE ),
1794
    ENTRY( 0x0037, 0x0042, "SH", "RightOrientation", FUNCDCM_NONE ),
1795
    ENTRY( 0x0037, 0x0050, "CS", "Inversion", FUNCDCM_NONE ),
1796
    ENTRY( 0x0037, 0x0060, "US", "DSA", FUNCDCM_NONE ),
1797
    ENTRY( 0x0038, 0x0000, "UL", "Visit Group Length", FUNCDCM_NONE ),
1798
    ENTRY( 0x0038, 0x0004, "SQ", "Referenced Patient Alias Sequence", FUNCDCM_NONE ),
1799
    ENTRY( 0x0038, 0x0008, "CS", "Visit Status ID", FUNCDCM_NONE ),
1800
    ENTRY( 0x0038, 0x0010, "LO", "Admission ID", FUNCDCM_NONE ),
1801
    ENTRY( 0x0038, 0x0011, "LO", "Issuer of Admission ID", FUNCDCM_NONE ),
1802
    ENTRY( 0x0038, 0x0016, "LO", "Route of Admissions", FUNCDCM_NONE ),
1803
    ENTRY( 0x0038, 0x001a, "DA", "Scheduled Admission Date", FUNCDCM_NONE ),
1804
    ENTRY( 0x0038, 0x001b, "TM", "Scheduled Admission Time", FUNCDCM_NONE ),
1805
    ENTRY( 0x0038, 0x001c, "DA", "Scheduled Discharge Date", FUNCDCM_NONE ),
1806
    ENTRY( 0x0038, 0x001d, "TM", "Scheduled Discharge Time", FUNCDCM_NONE ),
1807
    ENTRY( 0x0038, 0x001e, "LO", "Scheduled Patient Institution Residence", FUNCDCM_NONE ),
1808
    ENTRY( 0x0038, 0x0020, "DA", "Admitting Date", FUNCDCM_NONE ),
1809
    ENTRY( 0x0038, 0x0021, "TM", "Admitting Time", FUNCDCM_NONE ),
1810
    ENTRY( 0x0038, 0x0030, "DA", "Discharge Date", FUNCDCM_NONE ),
1811
    ENTRY( 0x0038, 0x0032, "TM", "Discharge Time", FUNCDCM_NONE ),
1812
    ENTRY( 0x0038, 0x0040, "LO", "Discharge Diagnosis Description", FUNCDCM_NONE ),
1813
    ENTRY( 0x0038, 0x0044, "SQ", "Discharge Diagnosis Code Sequence", FUNCDCM_NONE ),
1814
    ENTRY( 0x0038, 0x0050, "LO", "Special Needs", FUNCDCM_NONE ),
1815
    ENTRY( 0x0038, 0x0300, "LO", "Current Patient Location", FUNCDCM_NONE ),
1816
    ENTRY( 0x0038, 0x0400, "LO", "Patient's Institution Residence", FUNCDCM_NONE ),
1817
    ENTRY( 0x0038, 0x0500, "LO", "Patient State", FUNCDCM_NONE ),
1818
    ENTRY( 0x0038, 0x4000, "LT", "Visit Comments", FUNCDCM_NONE ),
1819
    ENTRY( 0x0039, 0x0080, "IS", "Private Entity Number", FUNCDCM_NONE ),
1820
    ENTRY( 0x0039, 0x0085, "DA", "Private Entity Date", FUNCDCM_NONE ),
1821
    ENTRY( 0x0039, 0x0090, "TM", "Private Entity Time", FUNCDCM_NONE ),
1822
    ENTRY( 0x0039, 0x0095, "LO", "Private Entity Launch Command", FUNCDCM_NONE ),
1823
    ENTRY( 0x0039, 0x00aa, "CS", "Private Entity Type", FUNCDCM_NONE ),
1824
    ENTRY( 0x003a, 0x0002, "SQ", "Waveform Sequence", FUNCDCM_NONE ),
1825
    ENTRY( 0x003a, 0x0005, "US", "Waveform Number of Channels", FUNCDCM_NONE ),
1826
    ENTRY( 0x003a, 0x0010, "UL", "Waveform Number of Samples", FUNCDCM_NONE ),
1827
    ENTRY( 0x003a, 0x001a, "DS", "Sampling Frequency", FUNCDCM_NONE ),
1828
    ENTRY( 0x003a, 0x0020, "SH", "Group Label", FUNCDCM_NONE ),
1829
    ENTRY( 0x003a, 0x0103, "CS", "Waveform Sample Value Representation", FUNCDCM_NONE ),
1830
    ENTRY( 0x003a, 0x0122, "OB", "Waveform Padding Value", FUNCDCM_NONE ),
1831
    ENTRY( 0x003a, 0x0200, "SQ", "Channel Definition", FUNCDCM_NONE ),
1832
    ENTRY( 0x003a, 0x0202, "IS", "Waveform Channel Number", FUNCDCM_NONE ),
1833
    ENTRY( 0x003a, 0x0203, "SH", "Channel Label", FUNCDCM_NONE ),
1834
    ENTRY( 0x003a, 0x0205, "CS", "Channel Status", FUNCDCM_NONE ),
1835
    ENTRY( 0x003a, 0x0208, "SQ", "Channel Source", FUNCDCM_NONE ),
1836
    ENTRY( 0x003a, 0x0209, "SQ", "Channel Source Modifiers", FUNCDCM_NONE ),
1837
    ENTRY( 0x003a, 0x020a, "SQ", "Differential Channel Source", FUNCDCM_NONE ),
1838
    ENTRY( 0x003a, 0x020b, "SQ", "Differential Channel Source Modifiers", FUNCDCM_NONE ),
1839
    ENTRY( 0x003a, 0x0210, "DS", "Channel Sensitivity", FUNCDCM_NONE ),
1840
    ENTRY( 0x003a, 0x0211, "SQ", "Channel Sensitivity Units", FUNCDCM_NONE ),
1841
    ENTRY( 0x003a, 0x0212, "DS", "Channel Sensitivity Correction Factor", FUNCDCM_NONE ),
1842
    ENTRY( 0x003a, 0x0213, "DS", "Channel Baseline", FUNCDCM_NONE ),
1843
    ENTRY( 0x003a, 0x0214, "DS", "Channel Time Skew", FUNCDCM_NONE ),
1844
    ENTRY( 0x003a, 0x0215, "DS", "Channel Sample Skew", FUNCDCM_NONE ),
1845
    ENTRY( 0x003a, 0x0216, "OB", "Channel Minimum Value", FUNCDCM_NONE ),
1846
    ENTRY( 0x003a, 0x0217, "OB", "Channel Maximum Value", FUNCDCM_NONE ),
1847
    ENTRY( 0x003a, 0x0218, "DS", "Channel Offset", FUNCDCM_NONE ),
1848
    ENTRY( 0x003a, 0x021a, "US", "Bits Per Sample", FUNCDCM_NONE ),
1849
    ENTRY( 0x003a, 0x0220, "DS", "Filter Low Frequency", FUNCDCM_NONE ),
1850
    ENTRY( 0x003a, 0x0221, "DS", "Filter High Frequency", FUNCDCM_NONE ),
1851
    ENTRY( 0x003a, 0x0222, "DS", "Notch Filter Frequency", FUNCDCM_NONE ),
1852
    ENTRY( 0x003a, 0x0223, "DS", "Notch Filter Bandwidth", FUNCDCM_NONE ),
1853
    ENTRY( 0x003a, 0x1000, "OB", "Waveform Data", FUNCDCM_NONE ),
1854
    ENTRY( 0x0040, 0x0001, "AE", "Scheduled Station AE Title", FUNCDCM_NONE ),
1855
    ENTRY( 0x0040, 0x0002, "DA", "Scheduled Procedure Step Start Date", FUNCDCM_NONE ),
1856
    ENTRY( 0x0040, 0x0003, "TM", "Scheduled Procedure Step Start Time", FUNCDCM_NONE ),
1857
    ENTRY( 0x0040, 0x0004, "DA", "Scheduled Procedure Step End Date", FUNCDCM_NONE ),
1858
    ENTRY( 0x0040, 0x0005, "TM", "Scheduled Procedure Step End Time", FUNCDCM_NONE ),
1859
    ENTRY( 0x0040, 0x0006, "PN", "Scheduled Performing Physician Name", FUNCDCM_NONE ),
1860
    ENTRY( 0x0040, 0x0007, "LO", "Scheduled Procedure Step Description", FUNCDCM_NONE ),
1861
    ENTRY( 0x0040, 0x0008, "SQ", "Scheduled Action Item Code Sequence", FUNCDCM_NONE ),
1862
    ENTRY( 0x0040, 0x0009, "SH", "Scheduled Procedure Step ID", FUNCDCM_NONE ),
1863
    ENTRY( 0x0040, 0x0010, "SH", "Scheduled Station Name", FUNCDCM_NONE ),
1864
    ENTRY( 0x0040, 0x0011, "SH", "Scheduled Procedure Step Location", FUNCDCM_NONE ),
1865
    ENTRY( 0x0040, 0x0012, "LO", "Pre-Medication", FUNCDCM_NONE ),
1866
    ENTRY( 0x0040, 0x0020, "CS", "Scheduled Procedure Step Status", FUNCDCM_NONE ),
1867
    ENTRY( 0x0040, 0x0100, "SQ", "Scheduled Procedure Step Sequence", FUNCDCM_NONE ),
1868
    ENTRY( 0x0040, 0x0302, "US", "Entrance Dose", FUNCDCM_NONE ),
1869
    ENTRY( 0x0040, 0x0303, "US", "Exposed Area", FUNCDCM_NONE ),
1870
    ENTRY( 0x0040, 0x0306, "DS", "Distance Source to Entrance", FUNCDCM_NONE ),
1871
    ENTRY( 0x0040, 0x0307, "DS", "Distance Source to Support", FUNCDCM_NONE ),
1872
    ENTRY( 0x0040, 0x0310, "ST", "Comments On Radiation Dose", FUNCDCM_NONE ),
1873
    ENTRY( 0x0040, 0x0312, "DS", "X-Ray Output", FUNCDCM_NONE ),
1874
    ENTRY( 0x0040, 0x0314, "DS", "Half Value Layer", FUNCDCM_NONE ),
1875
    ENTRY( 0x0040, 0x0316, "DS", "Organ Dose", FUNCDCM_NONE ),
1876
    ENTRY( 0x0040, 0x0318, "CS", "Organ Exposed", FUNCDCM_NONE ),
1877
    ENTRY( 0x0040, 0x0400, "LT", "Comments On Scheduled Procedure Step", FUNCDCM_NONE ),
1878
    ENTRY( 0x0040, 0x050a, "LO", "Specimen Accession Number", FUNCDCM_NONE ),
1879
    ENTRY( 0x0040, 0x0550, "SQ", "Specimen Sequence", FUNCDCM_NONE ),
1880
    ENTRY( 0x0040, 0x0551, "LO", "Specimen Identifier", FUNCDCM_NONE ),
1881
    ENTRY( 0x0040, 0x0552, "SQ", "Specimen Description Sequence", FUNCDCM_NONE ),
1882
    ENTRY( 0x0040, 0x0553, "ST", "Specimen Description", FUNCDCM_NONE ),
1883
    ENTRY( 0x0040, 0x0555, "SQ", "Acquisition Context Sequence", FUNCDCM_NONE ),
1884
    ENTRY( 0x0040, 0x0556, "ST", "Acquisition Context Description", FUNCDCM_NONE ),
1885
    ENTRY( 0x0040, 0x059a, "SQ", "Specimen Type Code Sequence", FUNCDCM_NONE ),
1886
    ENTRY( 0x0040, 0x06fa, "LO", "Slide Identifier", FUNCDCM_NONE ),
1887
    ENTRY( 0x0040, 0x071a, "SQ", "Image Center Point Coordinates Sequence", FUNCDCM_NONE ),
1888
    ENTRY( 0x0040, 0x072a, "DS", "X Offset In Slide Coordinate System", FUNCDCM_NONE ),
1889
    ENTRY( 0x0040, 0x073a, "DS", "Y Offset In Slide Coordinate System", FUNCDCM_NONE ),
1890
    ENTRY( 0x0040, 0x074a, "DS", "Z Offset In Slide Coordinate System", FUNCDCM_NONE ),
1891
    ENTRY( 0x0040, 0x08d8, "SQ", "Pixel Spacing Sequence", FUNCDCM_NONE ),
1892
    ENTRY( 0x0040, 0x08da, "SQ", "Coordinate System Axis Code Sequence", FUNCDCM_NONE ),
1893
    ENTRY( 0x0040, 0x08ea, "SQ", "Measurement Units Code Sequence", FUNCDCM_NONE ),
1894
    ENTRY( 0x0040, 0x09f8, "SQ", "Vital Stain Code Sequence", FUNCDCM_NONE ),
1895
    ENTRY( 0x0040, 0x1001, "SH", "Requested Procedure ID", FUNCDCM_NONE ),
1896
    ENTRY( 0x0040, 0x1002, "LO", "Reason For Requested Procedure", FUNCDCM_NONE ),
1897
    ENTRY( 0x0040, 0x1003, "SH", "Requested Procedure Priority", FUNCDCM_NONE ),
1898
    ENTRY( 0x0040, 0x1004, "LO", "Patient Transport Arrangements", FUNCDCM_NONE ),
1899
    ENTRY( 0x0040, 0x1005, "LO", "Requested Procedure Location", FUNCDCM_NONE ),
1900
    ENTRY( 0x0040, 0x1006, "SH", "Placer Order Number of Procedure", FUNCDCM_NONE ),
1901
    ENTRY( 0x0040, 0x1007, "SH", "Filler Order Number of Procedure", FUNCDCM_NONE ),
1902
    ENTRY( 0x0040, 0x1008, "LO", "Confidentiality Code", FUNCDCM_NONE ),
1903
    ENTRY( 0x0040, 0x1009, "SH", "Reporting Priority", FUNCDCM_NONE ),
1904
    ENTRY( 0x0040, 0x1010, "PN", "Names of Intended Recipients of Results", FUNCDCM_NONE ),
1905
    ENTRY( 0x0040, 0x1400, "LT", "Requested Procedure Comments", FUNCDCM_NONE ),
1906
    ENTRY( 0x0040, 0x2001, "LO", "Reason For Imaging Service Request", FUNCDCM_NONE ),
1907
    ENTRY( 0x0040, 0x2004, "DA", "Issue Date of Imaging Service Request", FUNCDCM_NONE ),
1908
    ENTRY( 0x0040, 0x2005, "TM", "Issue Time of Imaging Service Request", FUNCDCM_NONE ),
1909
    ENTRY( 0x0040, 0x2006, "SH", "Placer Order Number of Imaging Service Request", FUNCDCM_NONE ),
1910
    ENTRY( 0x0040, 0x2007, "SH", "Filler Order Number of Imaging Service Request", FUNCDCM_NONE ),
1911
    ENTRY( 0x0040, 0x2008, "PN", "Order Entered By", FUNCDCM_NONE ),
1912
    ENTRY( 0x0040, 0x2009, "SH", "Order Enterer Location", FUNCDCM_NONE ),
1913
    ENTRY( 0x0040, 0x2010, "SH", "Order Callback Phone Number", FUNCDCM_NONE ),
1914
    ENTRY( 0x0040, 0x2400, "LT", "Imaging Service Request Comments", FUNCDCM_NONE ),
1915
    ENTRY( 0x0040, 0x3001, "LO", "Confidentiality Constraint On Patient Data", FUNCDCM_NONE ),
1916
    ENTRY( 0x0040, 0xa007, "CS", "Findings Flag", FUNCDCM_NONE ),
1917
    ENTRY( 0x0040, 0xa020, "SQ", "Findings Sequence", FUNCDCM_NONE ),
1918
    ENTRY( 0x0040, 0xa021, "UI", "Findings Group UID", FUNCDCM_NONE ),
1919
    ENTRY( 0x0040, 0xa022, "UI", "Referenced Findings Group UID", FUNCDCM_NONE ),
1920
    ENTRY( 0x0040, 0xa023, "DA", "Findings Group Recording Date", FUNCDCM_NONE ),
1921
    ENTRY( 0x0040, 0xa024, "TM", "Findings Group Recording Time", FUNCDCM_NONE ),
1922
    ENTRY( 0x0040, 0xa026, "SQ", "Findings Source Category Code Sequence", FUNCDCM_NONE ),
1923
    ENTRY( 0x0040, 0xa027, "LO", "Documenting Organization", FUNCDCM_NONE ),
1924
    ENTRY( 0x0040, 0xa028, "SQ", "Documenting Organization Identifier Code Sequence", FUNCDCM_NONE ),
1925
    ENTRY( 0x0040, 0xa032, "LO", "History Reliability Qualifier Description", FUNCDCM_NONE ),
1926
    ENTRY( 0x0040, 0xa043, "SQ", "Concept Name Code Sequence", FUNCDCM_NONE ),
1927
    ENTRY( 0x0040, 0xa047, "LO", "Measurement Precision Description", FUNCDCM_NONE ),
1928
    ENTRY( 0x0040, 0xa057, "CS", "Urgency or Priority Alerts", FUNCDCM_NONE ),
1929
    ENTRY( 0x0040, 0xa060, "LO", "Sequencing Indicator", FUNCDCM_NONE ),
1930
    ENTRY( 0x0040, 0xa066, "SQ", "Document Identifier Code Sequence", FUNCDCM_NONE ),
1931
    ENTRY( 0x0040, 0xa067, "PN", "Document Author", FUNCDCM_NONE ),
1932
    ENTRY( 0x0040, 0xa068, "SQ", "Document Author Identifier Code Sequence", FUNCDCM_NONE ),
1933
    ENTRY( 0x0040, 0xa070, "SQ", "Identifier Code Sequence", FUNCDCM_NONE ),
1934
    ENTRY( 0x0040, 0xa073, "LO", "Object String Identifier", FUNCDCM_NONE ),
1935
    ENTRY( 0x0040, 0xa074, "OB", "Object Binary Identifier", FUNCDCM_NONE ),
1936
    ENTRY( 0x0040, 0xa075, "PN", "Documenting Observer", FUNCDCM_NONE ),
1937
    ENTRY( 0x0040, 0xa076, "SQ", "Documenting Observer Identifier Code Sequence", FUNCDCM_NONE ),
1938
    ENTRY( 0x0040, 0xa078, "SQ", "Observation Subject Identifier Code Sequence", FUNCDCM_NONE ),
1939
    ENTRY( 0x0040, 0xa080, "SQ", "Person Identifier Code Sequence", FUNCDCM_NONE ),
1940
    ENTRY( 0x0040, 0xa085, "SQ", "Procedure Identifier Code Sequence", FUNCDCM_NONE ),
1941
    ENTRY( 0x0040, 0xa088, "LO", "Object Directory String Identifier", FUNCDCM_NONE ),
1942
    ENTRY( 0x0040, 0xa089, "OB", "Object Directory Binary Identifier", FUNCDCM_NONE ),
1943
    ENTRY( 0x0040, 0xa090, "CS", "History Reliability Qualifier", FUNCDCM_NONE ),
1944
    ENTRY( 0x0040, 0xa0a0, "CS", "Referenced Type of Data", FUNCDCM_NONE ),
1945
    ENTRY( 0x0040, 0xa0b0, "US", "Referenced Waveform Channels", FUNCDCM_NONE ),
1946
    ENTRY( 0x0040, 0xa110, "DA", "Date of Document or Verbal Transaction", FUNCDCM_NONE ),
1947
    ENTRY( 0x0040, 0xa112, "TM", "Time of Document Creation or Verbal Transaction", FUNCDCM_NONE ),
1948
    ENTRY( 0x0040, 0xa121, "DA", "Date", FUNCDCM_NONE ),
1949
    ENTRY( 0x0040, 0xa122, "TM", "Time", FUNCDCM_NONE ),
1950
    ENTRY( 0x0040, 0xa123, "PN", "Person Name", FUNCDCM_NONE ),
1951
    ENTRY( 0x0040, 0xa124, "SQ", "Referenced Person Sequence", FUNCDCM_NONE ),
1952
    ENTRY( 0x0040, 0xa125, "CS", "Report Status ID", FUNCDCM_NONE ),
1953
    ENTRY( 0x0040, 0xa130, "CS", "Temporal Range Type", FUNCDCM_NONE ),
1954
    ENTRY( 0x0040, 0xa132, "UL", "Referenced Sample Offsets", FUNCDCM_NONE ),
1955
    ENTRY( 0x0040, 0xa136, "US", "Referenced Frame Numbers", FUNCDCM_NONE ),
1956
    ENTRY( 0x0040, 0xa138, "DS", "Referenced Time Offsets", FUNCDCM_NONE ),
1957
    ENTRY( 0x0040, 0xa13a, "DT", "Referenced Datetime", FUNCDCM_NONE ),
1958
    ENTRY( 0x0040, 0xa160, "UT", "Text Value", FUNCDCM_NONE ),
1959
    ENTRY( 0x0040, 0xa167, "SQ", "Observation Category Code Sequence", FUNCDCM_NONE ),
1960
    ENTRY( 0x0040, 0xa168, "SQ", "Concept Code Sequence", FUNCDCM_NONE ),
1961
    ENTRY( 0x0040, 0xa16a, "ST", "Bibliographic Citation", FUNCDCM_NONE ),
1962
    ENTRY( 0x0040, 0xa170, "CS", "Observation Class", FUNCDCM_NONE ),
1963
    ENTRY( 0x0040, 0xa171, "UI", "Observation UID", FUNCDCM_NONE ),
1964
    ENTRY( 0x0040, 0xa172, "UI", "Referenced Observation UID", FUNCDCM_NONE ),
1965
    ENTRY( 0x0040, 0xa173, "CS", "Referenced Observation Class", FUNCDCM_NONE ),
1966
    ENTRY( 0x0040, 0xa174, "CS", "Referenced Object Observation Class", FUNCDCM_NONE ),
1967
    ENTRY( 0x0040, 0xa180, "US", "Annotation Group Number", FUNCDCM_NONE ),
1968
    ENTRY( 0x0040, 0xa192, "DA", "Observation Date", FUNCDCM_NONE ),
1969
    ENTRY( 0x0040, 0xa193, "TM", "Observation Time", FUNCDCM_NONE ),
1970
    ENTRY( 0x0040, 0xa194, "CS", "Measurement Automation", FUNCDCM_NONE ),
1971
    ENTRY( 0x0040, 0xa195, "SQ", "Concept Name Code Sequence Modifier", FUNCDCM_NONE ),
1972
    ENTRY( 0x0040, 0xa224, "ST", "Identification Description", FUNCDCM_NONE ),
1973
    ENTRY( 0x0040, 0xa290, "CS", "Coordinates Set Geometric Type", FUNCDCM_NONE ),
1974
    ENTRY( 0x0040, 0xa296, "SQ", "Algorithm Code Sequence", FUNCDCM_NONE ),
1975
    ENTRY( 0x0040, 0xa297, "ST", "Algorithm Description", FUNCDCM_NONE ),
1976
    ENTRY( 0x0040, 0xa29a, "SL", "Pixel Coordinates Set", FUNCDCM_NONE ),
1977
    ENTRY( 0x0040, 0xa300, "SQ", "Measured Value Sequence", FUNCDCM_NONE ),
1978
    ENTRY( 0x0040, 0xa307, "PN", "Current Observer", FUNCDCM_NONE ),
1979
    ENTRY( 0x0040, 0xa30a, "DS", "Numeric Value", FUNCDCM_NONE ),
1980
    ENTRY( 0x0040, 0xa313, "SQ", "Referenced Accession Sequence", FUNCDCM_NONE ),
1981
    ENTRY( 0x0040, 0xa33a, "ST", "Report Status Comment", FUNCDCM_NONE ),
1982
    ENTRY( 0x0040, 0xa340, "SQ", "Procedure Context Sequence", FUNCDCM_NONE ),
1983
    ENTRY( 0x0040, 0xa352, "PN", "Verbal Source", FUNCDCM_NONE ),
1984
    ENTRY( 0x0040, 0xa353, "ST", "Address", FUNCDCM_NONE ),
1985
    ENTRY( 0x0040, 0xa354, "LO", "Telephone Number", FUNCDCM_NONE ),
1986
    ENTRY( 0x0040, 0xa358, "SQ", "Verbal Source Identifier Code Sequence", FUNCDCM_NONE ),
1987
    ENTRY( 0x0040, 0xa380, "SQ", "Report Detail Sequence", FUNCDCM_NONE ),
1988
    ENTRY( 0x0040, 0xa402, "UI", "Observation Subject UID", FUNCDCM_NONE ),
1989
    ENTRY( 0x0040, 0xa403, "CS", "Observation Subject Class", FUNCDCM_NONE ),
1990
    ENTRY( 0x0040, 0xa404, "SQ", "Observation Subject Type Code Sequence", FUNCDCM_NONE ),
1991
    ENTRY( 0x0040, 0xa600, "CS", "Observation Subject Context Flag", FUNCDCM_NONE ),
1992
    ENTRY( 0x0040, 0xa601, "CS", "Observer Context Flag", FUNCDCM_NONE ),
1993
    ENTRY( 0x0040, 0xa603, "CS", "Procedure Context Flag", FUNCDCM_NONE ),
1994
    ENTRY( 0x0040, 0xa730, "SQ", "Observations Sequence", FUNCDCM_NONE ),
1995
    ENTRY( 0x0040, 0xa731, "SQ", "Relationship Sequence", FUNCDCM_NONE ),
1996
    ENTRY( 0x0040, 0xa732, "SQ", "Relationship Type Code Sequence", FUNCDCM_NONE ),
1997
    ENTRY( 0x0040, 0xa744, "SQ", "Language Code Sequence", FUNCDCM_NONE ),
1998
    ENTRY( 0x0040, 0xa992, "ST", "Uniform Resource Locator", FUNCDCM_NONE ),
1999
    ENTRY( 0x0040, 0xb020, "SQ", "Annotation Sequence", FUNCDCM_NONE ),
2000
    ENTRY( 0x0040, 0xdb73, "SQ", "Relationship Type Code Sequence Modifier", FUNCDCM_NONE ),
2001
    ENTRY( 0x0041, 0x0000, "LT", "Papyrus Comments", FUNCDCM_NONE ),
2002
    ENTRY( 0x0041, 0x0010, "xs", "?", FUNCDCM_NONE ),
2003
    ENTRY( 0x0041, 0x0011, "xs", "?", FUNCDCM_NONE ),
2004
    ENTRY( 0x0041, 0x0012, "UL", "Pixel Offset", FUNCDCM_NONE ),
2005
    ENTRY( 0x0041, 0x0013, "SQ", "Image Identifier Sequence", FUNCDCM_NONE ),
2006
    ENTRY( 0x0041, 0x0014, "SQ", "External File Reference Sequence", FUNCDCM_NONE ),
2007
    ENTRY( 0x0041, 0x0015, "US", "Number of Images", FUNCDCM_NONE ),
2008
    ENTRY( 0x0041, 0x0020, "xs", "?", FUNCDCM_NONE ),
2009
    ENTRY( 0x0041, 0x0021, "UI", "Referenced SOP Class UID", FUNCDCM_NONE ),
2010
    ENTRY( 0x0041, 0x0022, "UI", "Referenced SOP Instance UID", FUNCDCM_NONE ),
2011
    ENTRY( 0x0041, 0x0030, "xs", "?", FUNCDCM_NONE ),
2012
    ENTRY( 0x0041, 0x0031, "xs", "?", FUNCDCM_NONE ),
2013
    ENTRY( 0x0041, 0x0032, "xs", "?", FUNCDCM_NONE ),
2014
    ENTRY( 0x0041, 0x0034, "DA", "Modified Date", FUNCDCM_NONE ),
2015
    ENTRY( 0x0041, 0x0036, "TM", "Modified Time", FUNCDCM_NONE ),
2016
    ENTRY( 0x0041, 0x0040, "LT", "Owner Name", FUNCDCM_NONE ),
2017
    ENTRY( 0x0041, 0x0041, "UI", "Referenced Image SOP Class UID", FUNCDCM_NONE ),
2018
    ENTRY( 0x0041, 0x0042, "UI", "Referenced Image SOP Instance UID", FUNCDCM_NONE ),
2019
    ENTRY( 0x0041, 0x0050, "xs", "?", FUNCDCM_NONE ),
2020
    ENTRY( 0x0041, 0x0060, "UL", "Number of Images", FUNCDCM_NONE ),
2021
    ENTRY( 0x0041, 0x0062, "UL", "Number of Other", FUNCDCM_NONE ),
2022
    ENTRY( 0x0041, 0x00a0, "LT", "External Folder Element DSID", FUNCDCM_NONE ),
2023
    ENTRY( 0x0041, 0x00a1, "US", "External Folder Element Data Set Type", FUNCDCM_NONE ),
2024
    ENTRY( 0x0041, 0x00a2, "LT", "External Folder Element File Location", FUNCDCM_NONE ),
2025
    ENTRY( 0x0041, 0x00a3, "UL", "External Folder Element Length", FUNCDCM_NONE ),
2026
    ENTRY( 0x0041, 0x00b0, "LT", "Internal Folder Element DSID", FUNCDCM_NONE ),
2027
    ENTRY( 0x0041, 0x00b1, "US", "Internal Folder Element Data Set Type", FUNCDCM_NONE ),
2028
    ENTRY( 0x0041, 0x00b2, "UL", "Internal Offset To Data Set", FUNCDCM_NONE ),
2029
    ENTRY( 0x0041, 0x00b3, "UL", "Internal Offset To Image", FUNCDCM_NONE ),
2030
    ENTRY( 0x0043, 0x0001, "SS", "Bitmap Of Prescan Options", FUNCDCM_NONE ),
2031
    ENTRY( 0x0043, 0x0002, "SS", "Gradient Offset In X", FUNCDCM_NONE ),
2032
    ENTRY( 0x0043, 0x0003, "SS", "Gradient Offset In Y", FUNCDCM_NONE ),
2033
    ENTRY( 0x0043, 0x0004, "SS", "Gradient Offset In Z", FUNCDCM_NONE ),
2034
    ENTRY( 0x0043, 0x0005, "SS", "Image Is Original Or Unoriginal", FUNCDCM_NONE ),
2035
    ENTRY( 0x0043, 0x0006, "SS", "Number Of EPI Shots", FUNCDCM_NONE ),
2036
    ENTRY( 0x0043, 0x0007, "SS", "Views Per Segment", FUNCDCM_NONE ),
2037
    ENTRY( 0x0043, 0x0008, "SS", "Respiratory Rate In BPM", FUNCDCM_NONE ),
2038
    ENTRY( 0x0043, 0x0009, "SS", "Respiratory Trigger Point", FUNCDCM_NONE ),
2039
    ENTRY( 0x0043, 0x000a, "SS", "Type Of Receiver Used", FUNCDCM_NONE ),
2040
    ENTRY( 0x0043, 0x000b, "DS", "Peak Rate Of Change Of Gradient Field", FUNCDCM_NONE ),
2041
    ENTRY( 0x0043, 0x000c, "DS", "Limits In Units Of Percent", FUNCDCM_NONE ),
2042
    ENTRY( 0x0043, 0x000d, "DS", "PSD Estimated Limit", FUNCDCM_NONE ),
2043
    ENTRY( 0x0043, 0x000e, "DS", "PSD Estimated Limit In Tesla Per Second", FUNCDCM_NONE ),
2044
    ENTRY( 0x0043, 0x000f, "DS", "SAR Avg Head", FUNCDCM_NONE ),
2045
    ENTRY( 0x0043, 0x0010, "US", "Window Value", FUNCDCM_NONE ),
2046
    ENTRY( 0x0043, 0x0011, "US", "Total Input Views", FUNCDCM_NONE ),
2047
    ENTRY( 0x0043, 0x0012, "SS", "Xray Chain", FUNCDCM_NONE ),
2048
    ENTRY( 0x0043, 0x0013, "SS", "Recon Kernel Parameters", FUNCDCM_NONE ),
2049
    ENTRY( 0x0043, 0x0014, "SS", "Calibration Parameters", FUNCDCM_NONE ),
2050
    ENTRY( 0x0043, 0x0015, "SS", "Total Output Views", FUNCDCM_NONE ),
2051
    ENTRY( 0x0043, 0x0016, "SS", "Number Of Overranges", FUNCDCM_NONE ),
2052
    ENTRY( 0x0043, 0x0017, "DS", "IBH Image Scale Factors", FUNCDCM_NONE ),
2053
    ENTRY( 0x0043, 0x0018, "DS", "BBH Coefficients", FUNCDCM_NONE ),
2054
    ENTRY( 0x0043, 0x0019, "SS", "Number Of BBH Chains To Blend", FUNCDCM_NONE ),
2055
    ENTRY( 0x0043, 0x001a, "SL", "Starting Channel Number", FUNCDCM_NONE ),
2056
    ENTRY( 0x0043, 0x001b, "SS", "PPScan Parameters", FUNCDCM_NONE ),
2057
    ENTRY( 0x0043, 0x001c, "SS", "GE Image Integrity", FUNCDCM_NONE ),
2058
    ENTRY( 0x0043, 0x001d, "SS", "Level Value", FUNCDCM_NONE ),
2059
    ENTRY( 0x0043, 0x001e, "xs", "?", FUNCDCM_NONE ),
2060
    ENTRY( 0x0043, 0x001f, "SL", "Max Overranges In A View", FUNCDCM_NONE ),
2061
    ENTRY( 0x0043, 0x0020, "DS", "Avg Overranges All Views", FUNCDCM_NONE ),
2062
    ENTRY( 0x0043, 0x0021, "SS", "Corrected Afterglow Terms", FUNCDCM_NONE ),
2063
    ENTRY( 0x0043, 0x0025, "SS", "Reference Channels", FUNCDCM_NONE ),
2064
    ENTRY( 0x0043, 0x0026, "US", "No Views Ref Channels Blocked", FUNCDCM_NONE ),
2065
    ENTRY( 0x0043, 0x0027, "xs", "?", FUNCDCM_NONE ),
2066
    ENTRY( 0x0043, 0x0028, "OB", "Unique Image Identifier", FUNCDCM_NONE ),
2067
    ENTRY( 0x0043, 0x0029, "OB", "Histogram Tables", FUNCDCM_NONE ),
2068
    ENTRY( 0x0043, 0x002a, "OB", "User Defined Data", FUNCDCM_NONE ),
2069
    ENTRY( 0x0043, 0x002b, "SS", "Private Scan Options", FUNCDCM_NONE ),
2070
    ENTRY( 0x0043, 0x002c, "SS", "Effective Echo Spacing", FUNCDCM_NONE ),
2071
    ENTRY( 0x0043, 0x002d, "SH", "String Slop Field 1", FUNCDCM_NONE ),
2072
    ENTRY( 0x0043, 0x002e, "SH", "String Slop Field 2", FUNCDCM_NONE ),
2073
    ENTRY( 0x0043, 0x002f, "SS", "Raw Data Type", FUNCDCM_NONE ),
2074
    ENTRY( 0x0043, 0x0030, "SS", "Raw Data Type", FUNCDCM_NONE ),
2075
    ENTRY( 0x0043, 0x0031, "DS", "RA Coord Of Target Recon Centre", FUNCDCM_NONE ),
2076
    ENTRY( 0x0043, 0x0032, "SS", "Raw Data Type", FUNCDCM_NONE ),
2077
    ENTRY( 0x0043, 0x0033, "FL", "Neg Scan Spacing", FUNCDCM_NONE ),
2078
    ENTRY( 0x0043, 0x0034, "IS", "Offset Frequency", FUNCDCM_NONE ),
2079
    ENTRY( 0x0043, 0x0035, "UL", "User Usage Tag", FUNCDCM_NONE ),
2080
    ENTRY( 0x0043, 0x0036, "UL", "User Fill Map MSW", FUNCDCM_NONE ),
2081
    ENTRY( 0x0043, 0x0037, "UL", "User Fill Map LSW", FUNCDCM_NONE ),
2082
    ENTRY( 0x0043, 0x0038, "FL", "User 25 To User 48", FUNCDCM_NONE ),
2083
    ENTRY( 0x0043, 0x0039, "IS", "Slop Integer 6 To Slop Integer 9", FUNCDCM_NONE ),
2084
    ENTRY( 0x0043, 0x0040, "FL", "Trigger On Position", FUNCDCM_NONE ),
2085
    ENTRY( 0x0043, 0x0041, "FL", "Degree Of Rotation", FUNCDCM_NONE ),
2086
    ENTRY( 0x0043, 0x0042, "SL", "DAS Trigger Source", FUNCDCM_NONE ),
2087
    ENTRY( 0x0043, 0x0043, "SL", "DAS Fpa Gain", FUNCDCM_NONE ),
2088
    ENTRY( 0x0043, 0x0044, "SL", "DAS Output Source", FUNCDCM_NONE ),
2089
    ENTRY( 0x0043, 0x0045, "SL", "DAS Ad Input", FUNCDCM_NONE ),
2090
    ENTRY( 0x0043, 0x0046, "SL", "DAS Cal Mode", FUNCDCM_NONE ),
2091
    ENTRY( 0x0043, 0x0047, "SL", "DAS Cal Frequency", FUNCDCM_NONE ),
2092
    ENTRY( 0x0043, 0x0048, "SL", "DAS Reg Xm", FUNCDCM_NONE ),
2093
    ENTRY( 0x0043, 0x0049, "SL", "DAS Auto Zero", FUNCDCM_NONE ),
2094
    ENTRY( 0x0043, 0x004a, "SS", "Starting Channel Of View", FUNCDCM_NONE ),
2095
    ENTRY( 0x0043, 0x004b, "SL", "DAS Xm Pattern", FUNCDCM_NONE ),
2096
    ENTRY( 0x0043, 0x004c, "SS", "TGGC Trigger Mode", FUNCDCM_NONE ),
2097
    ENTRY( 0x0043, 0x004d, "FL", "Start Scan To Xray On Delay", FUNCDCM_NONE ),
2098
    ENTRY( 0x0043, 0x004e, "FL", "Duration Of Xray On", FUNCDCM_NONE ),
2099
    ENTRY( 0x0044, 0x0000, "UI", "?", FUNCDCM_NONE ),
2100
    ENTRY( 0x0045, 0x0004, "CS", "AES", FUNCDCM_NONE ),
2101
    ENTRY( 0x0045, 0x0006, "DS", "Angulation", FUNCDCM_NONE ),
2102
    ENTRY( 0x0045, 0x0009, "DS", "Real Magnification Factor", FUNCDCM_NONE ),
2103
    ENTRY( 0x0045, 0x000b, "CS", "Senograph Type", FUNCDCM_NONE ),
2104
    ENTRY( 0x0045, 0x000c, "DS", "Integration Time", FUNCDCM_NONE ),
2105
    ENTRY( 0x0045, 0x000d, "DS", "ROI Origin X and Y", FUNCDCM_NONE ),
2106
    ENTRY( 0x0045, 0x0011, "DS", "Receptor Size cm X and Y", FUNCDCM_NONE ),
2107
    ENTRY( 0x0045, 0x0012, "IS", "Receptor Size Pixels X and Y", FUNCDCM_NONE ),
2108
    ENTRY( 0x0045, 0x0013, "ST", "Screen", FUNCDCM_NONE ),
2109
    ENTRY( 0x0045, 0x0014, "DS", "Pixel Pitch Microns", FUNCDCM_NONE ),
2110
    ENTRY( 0x0045, 0x0015, "IS", "Pixel Depth Bits", FUNCDCM_NONE ),
2111
    ENTRY( 0x0045, 0x0016, "IS", "Binning Factor X and Y", FUNCDCM_NONE ),
2112
    ENTRY( 0x0045, 0x001b, "CS", "Clinical View", FUNCDCM_NONE ),
2113
    ENTRY( 0x0045, 0x001d, "DS", "Mean Of Raw Gray Levels", FUNCDCM_NONE ),
2114
    ENTRY( 0x0045, 0x001e, "DS", "Mean Of Offset Gray Levels", FUNCDCM_NONE ),
2115
    ENTRY( 0x0045, 0x001f, "DS", "Mean Of Corrected Gray Levels", FUNCDCM_NONE ),
2116
    ENTRY( 0x0045, 0x0020, "DS", "Mean Of Region Gray Levels", FUNCDCM_NONE ),
2117
    ENTRY( 0x0045, 0x0021, "DS", "Mean Of Log Region Gray Levels", FUNCDCM_NONE ),
2118
    ENTRY( 0x0045, 0x0022, "DS", "Standard Deviation Of Raw Gray Levels", FUNCDCM_NONE ),
2119
    ENTRY( 0x0045, 0x0023, "DS", "Standard Deviation Of Corrected Gray Levels", FUNCDCM_NONE ),
2120
    ENTRY( 0x0045, 0x0024, "DS", "Standard Deviation Of Region Gray Levels", FUNCDCM_NONE ),
2121
    ENTRY( 0x0045, 0x0025, "DS", "Standard Deviation Of Log Region Gray Levels", FUNCDCM_NONE ),
2122
    ENTRY( 0x0045, 0x0026, "OB", "MAO Buffer", FUNCDCM_NONE ),
2123
    ENTRY( 0x0045, 0x0027, "IS", "Set Number", FUNCDCM_NONE ),
2124
    ENTRY( 0x0045, 0x0028, "CS", "WindowingType (LINEAR or GAMMA)", FUNCDCM_NONE ),
2125
    ENTRY( 0x0045, 0x0029, "DS", "WindowingParameters", FUNCDCM_NONE ),
2126
    ENTRY( 0x0045, 0x002a, "IS", "Crosshair Cursor X Coordinates", FUNCDCM_NONE ),
2127
    ENTRY( 0x0045, 0x002b, "IS", "Crosshair Cursor Y Coordinates", FUNCDCM_NONE ),
2128
    ENTRY( 0x0045, 0x0039, "US", "Vignette Rows", FUNCDCM_NONE ),
2129
    ENTRY( 0x0045, 0x003a, "US", "Vignette Columns", FUNCDCM_NONE ),
2130
    ENTRY( 0x0045, 0x003b, "US", "Vignette Bits Allocated", FUNCDCM_NONE ),
2131
    ENTRY( 0x0045, 0x003c, "US", "Vignette Bits Stored", FUNCDCM_NONE ),
2132
    ENTRY( 0x0045, 0x003d, "US", "Vignette High Bit", FUNCDCM_NONE ),
2133
    ENTRY( 0x0045, 0x003e, "US", "Vignette Pixel Representation", FUNCDCM_NONE ),
2134
    ENTRY( 0x0045, 0x003f, "OB", "Vignette Pixel Data", FUNCDCM_NONE ),
2135
    ENTRY( 0x0047, 0x0001, "SQ", "Reconstruction Parameters Sequence", FUNCDCM_NONE ),
2136
    ENTRY( 0x0047, 0x0050, "UL", "Volume Voxel Count", FUNCDCM_NONE ),
2137
    ENTRY( 0x0047, 0x0051, "UL", "Volume Segment Count", FUNCDCM_NONE ),
2138
    ENTRY( 0x0047, 0x0053, "US", "Volume Slice Size", FUNCDCM_NONE ),
2139
    ENTRY( 0x0047, 0x0054, "US", "Volume Slice Count", FUNCDCM_NONE ),
2140
    ENTRY( 0x0047, 0x0055, "SL", "Volume Threshold Value", FUNCDCM_NONE ),
2141
    ENTRY( 0x0047, 0x0057, "DS", "Volume Voxel Ratio", FUNCDCM_NONE ),
2142
    ENTRY( 0x0047, 0x0058, "DS", "Volume Voxel Size", FUNCDCM_NONE ),
2143
    ENTRY( 0x0047, 0x0059, "US", "Volume Z Position Size", FUNCDCM_NONE ),
2144
    ENTRY( 0x0047, 0x0060, "DS", "Volume Base Line", FUNCDCM_NONE ),
2145
    ENTRY( 0x0047, 0x0061, "DS", "Volume Center Point", FUNCDCM_NONE ),
2146
    ENTRY( 0x0047, 0x0063, "SL", "Volume Skew Base", FUNCDCM_NONE ),
2147
    ENTRY( 0x0047, 0x0064, "DS", "Volume Registration Transform Rotation Matrix", FUNCDCM_NONE ),
2148
    ENTRY( 0x0047, 0x0065, "DS", "Volume Registration Transform Translation Vector", FUNCDCM_NONE ),
2149
    ENTRY( 0x0047, 0x0070, "DS", "KVP List", FUNCDCM_NONE ),
2150
    ENTRY( 0x0047, 0x0071, "IS", "XRay Tube Current List", FUNCDCM_NONE ),
2151
    ENTRY( 0x0047, 0x0072, "IS", "Exposure List", FUNCDCM_NONE ),
2152
    ENTRY( 0x0047, 0x0080, "LO", "Acquisition DLX Identifier", FUNCDCM_NONE ),
2153
    ENTRY( 0x0047, 0x0085, "SQ", "Acquisition DLX 2D Series Sequence", FUNCDCM_NONE ),
2154
    ENTRY( 0x0047, 0x0089, "DS", "Contrast Agent Volume List", FUNCDCM_NONE ),
2155
    ENTRY( 0x0047, 0x008a, "US", "Number Of Injections", FUNCDCM_NONE ),
2156
    ENTRY( 0x0047, 0x008b, "US", "Frame Count", FUNCDCM_NONE ),
2157
    ENTRY( 0x0047, 0x0096, "IS", "Used Frames", FUNCDCM_NONE ),
2158
    ENTRY( 0x0047, 0x0091, "LO", "XA 3D Reconstruction Algorithm Name", FUNCDCM_NONE ),
2159
    ENTRY( 0x0047, 0x0092, "CS", "XA 3D Reconstruction Algorithm Version", FUNCDCM_NONE ),
2160
    ENTRY( 0x0047, 0x0093, "DA", "DLX Calibration Date", FUNCDCM_NONE ),
2161
    ENTRY( 0x0047, 0x0094, "TM", "DLX Calibration Time", FUNCDCM_NONE ),
2162
    ENTRY( 0x0047, 0x0095, "CS", "DLX Calibration Status", FUNCDCM_NONE ),
2163
    ENTRY( 0x0047, 0x0098, "US", "Transform Count", FUNCDCM_NONE ),
2164
    ENTRY( 0x0047, 0x0099, "SQ", "Transform Sequence", FUNCDCM_NONE ),
2165
    ENTRY( 0x0047, 0x009a, "DS", "Transform Rotation Matrix", FUNCDCM_NONE ),
2166
    ENTRY( 0x0047, 0x009b, "DS", "Transform Translation Vector", FUNCDCM_NONE ),
2167
    ENTRY( 0x0047, 0x009c, "LO", "Transform Label", FUNCDCM_NONE ),
2168
    ENTRY( 0x0047, 0x00b1, "US", "Wireframe Count", FUNCDCM_NONE ),
2169
    ENTRY( 0x0047, 0x00b2, "US", "Location System", FUNCDCM_NONE ),
2170
    ENTRY( 0x0047, 0x00b0, "SQ", "Wireframe List", FUNCDCM_NONE ),
2171
    ENTRY( 0x0047, 0x00b5, "LO", "Wireframe Name", FUNCDCM_NONE ),
2172
    ENTRY( 0x0047, 0x00b6, "LO", "Wireframe Group Name", FUNCDCM_NONE ),
2173
    ENTRY( 0x0047, 0x00b7, "LO", "Wireframe Color", FUNCDCM_NONE ),
2174
    ENTRY( 0x0047, 0x00b8, "SL", "Wireframe Attributes", FUNCDCM_NONE ),
2175
    ENTRY( 0x0047, 0x00b9, "SL", "Wireframe Point Count", FUNCDCM_NONE ),
2176
    ENTRY( 0x0047, 0x00ba, "SL", "Wireframe Timestamp", FUNCDCM_NONE ),
2177
    ENTRY( 0x0047, 0x00bb, "SQ", "Wireframe Point List", FUNCDCM_NONE ),
2178
    ENTRY( 0x0047, 0x00bc, "DS", "Wireframe Points Coordinates", FUNCDCM_NONE ),
2179
    ENTRY( 0x0047, 0x00c0, "DS", "Volume Upper Left High Corner RAS", FUNCDCM_NONE ),
2180
    ENTRY( 0x0047, 0x00c1, "DS", "Volume Slice To RAS Rotation Matrix", FUNCDCM_NONE ),
2181
    ENTRY( 0x0047, 0x00c2, "DS", "Volume Upper Left High Corner TLOC", FUNCDCM_NONE ),
2182
    ENTRY( 0x0047, 0x00d1, "OB", "Volume Segment List", FUNCDCM_NONE ),
2183
    ENTRY( 0x0047, 0x00d2, "OB", "Volume Gradient List", FUNCDCM_NONE ),
2184
    ENTRY( 0x0047, 0x00d3, "OB", "Volume Density List", FUNCDCM_NONE ),
2185
    ENTRY( 0x0047, 0x00d4, "OB", "Volume Z Position List", FUNCDCM_NONE ),
2186
    ENTRY( 0x0047, 0x00d5, "OB", "Volume Original Index List", FUNCDCM_NONE ),
2187
    ENTRY( 0x0050, 0x0000, "UL", "Calibration Group Length", FUNCDCM_NONE ),
2188
    ENTRY( 0x0050, 0x0004, "CS", "Calibration Object", FUNCDCM_NONE ),
2189
    ENTRY( 0x0050, 0x0010, "SQ", "DeviceSequence", FUNCDCM_NONE ),
2190
    ENTRY( 0x0050, 0x0014, "DS", "DeviceLength", FUNCDCM_NONE ),
2191
    ENTRY( 0x0050, 0x0016, "DS", "DeviceDiameter", FUNCDCM_NONE ),
2192
    ENTRY( 0x0050, 0x0017, "CS", "DeviceDiameterUnits", FUNCDCM_NONE ),
2193
    ENTRY( 0x0050, 0x0018, "DS", "DeviceVolume", FUNCDCM_NONE ),
2194
    ENTRY( 0x0050, 0x0019, "DS", "InterMarkerDistance", FUNCDCM_NONE ),
2195
    ENTRY( 0x0050, 0x0020, "LO", "DeviceDescription", FUNCDCM_NONE ),
2196
    ENTRY( 0x0050, 0x0030, "SQ", "CodedInterventionDeviceSequence", FUNCDCM_NONE ),
2197
    ENTRY( 0x0051, 0x0010, "xs", "Image Text", FUNCDCM_NONE ),
2198
    ENTRY( 0x0054, 0x0000, "UL", "Nuclear Acquisition Group Length", FUNCDCM_NONE ),
2199
    ENTRY( 0x0054, 0x0010, "US", "Energy Window Vector", FUNCDCM_NONE ),
2200
    ENTRY( 0x0054, 0x0011, "US", "Number of Energy Windows", FUNCDCM_NONE ),
2201
    ENTRY( 0x0054, 0x0012, "SQ", "Energy Window Information Sequence", FUNCDCM_NONE ),
2202
    ENTRY( 0x0054, 0x0013, "SQ", "Energy Window Range Sequence", FUNCDCM_NONE ),
2203
    ENTRY( 0x0054, 0x0014, "DS", "Energy Window Lower Limit", FUNCDCM_NONE ),
2204
    ENTRY( 0x0054, 0x0015, "DS", "Energy Window Upper Limit", FUNCDCM_NONE ),
2205
    ENTRY( 0x0054, 0x0016, "SQ", "Radiopharmaceutical Information Sequence", FUNCDCM_NONE ),
2206
    ENTRY( 0x0054, 0x0017, "IS", "Residual Syringe Counts", FUNCDCM_NONE ),
2207
    ENTRY( 0x0054, 0x0018, "SH", "Energy Window Name", FUNCDCM_NONE ),
2208
    ENTRY( 0x0054, 0x0020, "US", "Detector Vector", FUNCDCM_NONE ),
2209
    ENTRY( 0x0054, 0x0021, "US", "Number of Detectors", FUNCDCM_NONE ),
2210
    ENTRY( 0x0054, 0x0022, "SQ", "Detector Information Sequence", FUNCDCM_NONE ),
2211
    ENTRY( 0x0054, 0x0030, "US", "Phase Vector", FUNCDCM_NONE ),
2212
    ENTRY( 0x0054, 0x0031, "US", "Number of Phases", FUNCDCM_NONE ),
2213
    ENTRY( 0x0054, 0x0032, "SQ", "Phase Information Sequence", FUNCDCM_NONE ),
2214
    ENTRY( 0x0054, 0x0033, "US", "Number of Frames In Phase", FUNCDCM_NONE ),
2215
    ENTRY( 0x0054, 0x0036, "IS", "Phase Delay", FUNCDCM_NONE ),
2216
    ENTRY( 0x0054, 0x0038, "IS", "Pause Between Frames", FUNCDCM_NONE ),
2217
    ENTRY( 0x0054, 0x0050, "US", "Rotation Vector", FUNCDCM_NONE ),
2218
    ENTRY( 0x0054, 0x0051, "US", "Number of Rotations", FUNCDCM_NONE ),
2219
    ENTRY( 0x0054, 0x0052, "SQ", "Rotation Information Sequence", FUNCDCM_NONE ),
2220
    ENTRY( 0x0054, 0x0053, "US", "Number of Frames In Rotation", FUNCDCM_NONE ),
2221
    ENTRY( 0x0054, 0x0060, "US", "R-R Interval Vector", FUNCDCM_NONE ),
2222
    ENTRY( 0x0054, 0x0061, "US", "Number of R-R Intervals", FUNCDCM_NONE ),
2223
    ENTRY( 0x0054, 0x0062, "SQ", "Gated Information Sequence", FUNCDCM_NONE ),
2224
    ENTRY( 0x0054, 0x0063, "SQ", "Data Information Sequence", FUNCDCM_NONE ),
2225
    ENTRY( 0x0054, 0x0070, "US", "Time Slot Vector", FUNCDCM_NONE ),
2226
    ENTRY( 0x0054, 0x0071, "US", "Number of Time Slots", FUNCDCM_NONE ),
2227
    ENTRY( 0x0054, 0x0072, "SQ", "Time Slot Information Sequence", FUNCDCM_NONE ),
2228
    ENTRY( 0x0054, 0x0073, "DS", "Time Slot Time", FUNCDCM_NONE ),
2229
    ENTRY( 0x0054, 0x0080, "US", "Slice Vector", FUNCDCM_NONE ),
2230
    ENTRY( 0x0054, 0x0081, "US", "Number of Slices", FUNCDCM_NONE ),
2231
    ENTRY( 0x0054, 0x0090, "US", "Angular View Vector", FUNCDCM_NONE ),
2232
    ENTRY( 0x0054, 0x0100, "US", "Time Slice Vector", FUNCDCM_NONE ),
2233
    ENTRY( 0x0054, 0x0101, "US", "Number Of Time Slices", FUNCDCM_NONE ),
2234
    ENTRY( 0x0054, 0x0200, "DS", "Start Angle", FUNCDCM_NONE ),
2235
    ENTRY( 0x0054, 0x0202, "CS", "Type of Detector Motion", FUNCDCM_NONE ),
2236
    ENTRY( 0x0054, 0x0210, "IS", "Trigger Vector", FUNCDCM_NONE ),
2237
    ENTRY( 0x0054, 0x0211, "US", "Number of Triggers in Phase", FUNCDCM_NONE ),
2238
    ENTRY( 0x0054, 0x0220, "SQ", "View Code Sequence", FUNCDCM_NONE ),
2239
    ENTRY( 0x0054, 0x0222, "SQ", "View Modifier Code Sequence", FUNCDCM_NONE ),
2240
    ENTRY( 0x0054, 0x0300, "SQ", "Radionuclide Code Sequence", FUNCDCM_NONE ),
2241
    ENTRY( 0x0054, 0x0302, "SQ", "Radiopharmaceutical Route Code Sequence", FUNCDCM_NONE ),
2242
    ENTRY( 0x0054, 0x0304, "SQ", "Radiopharmaceutical Code Sequence", FUNCDCM_NONE ),
2243
    ENTRY( 0x0054, 0x0306, "SQ", "Calibration Data Sequence", FUNCDCM_NONE ),
2244
    ENTRY( 0x0054, 0x0308, "US", "Energy Window Number", FUNCDCM_NONE ),
2245
    ENTRY( 0x0054, 0x0400, "SH", "Image ID", FUNCDCM_NONE ),
2246
    ENTRY( 0x0054, 0x0410, "SQ", "Patient Orientation Code Sequence", FUNCDCM_NONE ),
2247
    ENTRY( 0x0054, 0x0412, "SQ", "Patient Orientation Modifier Code Sequence", FUNCDCM_NONE ),
2248
    ENTRY( 0x0054, 0x0414, "SQ", "Patient Gantry Relationship Code Sequence", FUNCDCM_NONE ),
2249
    ENTRY( 0x0054, 0x1000, "CS", "Positron Emission Tomography Series Type", FUNCDCM_NONE ),
2250
    ENTRY( 0x0054, 0x1001, "CS", "Positron Emission Tomography Units", FUNCDCM_NONE ),
2251
    ENTRY( 0x0054, 0x1002, "CS", "Counts Source", FUNCDCM_NONE ),
2252
    ENTRY( 0x0054, 0x1004, "CS", "Reprojection Method", FUNCDCM_NONE ),
2253
    ENTRY( 0x0054, 0x1100, "CS", "Randoms Correction Method", FUNCDCM_NONE ),
2254
    ENTRY( 0x0054, 0x1101, "LO", "Attenuation Correction Method", FUNCDCM_NONE ),
2255
    ENTRY( 0x0054, 0x1102, "CS", "Decay Correction", FUNCDCM_NONE ),
2256
    ENTRY( 0x0054, 0x1103, "LO", "Reconstruction Method", FUNCDCM_NONE ),
2257
    ENTRY( 0x0054, 0x1104, "LO", "Detector Lines of Response Used", FUNCDCM_NONE ),
2258
    ENTRY( 0x0054, 0x1105, "LO", "Scatter Correction Method", FUNCDCM_NONE ),
2259
    ENTRY( 0x0054, 0x1200, "DS", "Axial Acceptance", FUNCDCM_NONE ),
2260
    ENTRY( 0x0054, 0x1201, "IS", "Axial Mash", FUNCDCM_NONE ),
2261
    ENTRY( 0x0054, 0x1202, "IS", "Transverse Mash", FUNCDCM_NONE ),
2262
    ENTRY( 0x0054, 0x1203, "DS", "Detector Element Size", FUNCDCM_NONE ),
2263
    ENTRY( 0x0054, 0x1210, "DS", "Coincidence Window Width", FUNCDCM_NONE ),
2264
    ENTRY( 0x0054, 0x1220, "CS", "Secondary Counts Type", FUNCDCM_NONE ),
2265
    ENTRY( 0x0054, 0x1300, "DS", "Frame Reference Time", FUNCDCM_NONE ),
2266
    ENTRY( 0x0054, 0x1310, "IS", "Primary Prompts Counts Accumulated", FUNCDCM_NONE ),
2267
    ENTRY( 0x0054, 0x1311, "IS", "Secondary Counts Accumulated", FUNCDCM_NONE ),
2268
    ENTRY( 0x0054, 0x1320, "DS", "Slice Sensitivity Factor", FUNCDCM_NONE ),
2269
    ENTRY( 0x0054, 0x1321, "DS", "Decay Factor", FUNCDCM_NONE ),
2270
    ENTRY( 0x0054, 0x1322, "DS", "Dose Calibration Factor", FUNCDCM_NONE ),
2271
    ENTRY( 0x0054, 0x1323, "DS", "Scatter Fraction Factor", FUNCDCM_NONE ),
2272
    ENTRY( 0x0054, 0x1324, "DS", "Dead Time Factor", FUNCDCM_NONE ),
2273
    ENTRY( 0x0054, 0x1330, "US", "Image Index", FUNCDCM_NONE ),
2274
    ENTRY( 0x0054, 0x1400, "CS", "Counts Included", FUNCDCM_NONE ),
2275
    ENTRY( 0x0054, 0x1401, "CS", "Dead Time Correction Flag", FUNCDCM_NONE ),
2276
    ENTRY( 0x0055, 0x0046, "LT", "Current Ward", FUNCDCM_NONE ),
2277
    ENTRY( 0x0058, 0x0000, "SQ", "?", FUNCDCM_NONE ),
2278
    ENTRY( 0x0060, 0x3000, "SQ", "Histogram Sequence", FUNCDCM_NONE ),
2279
    ENTRY( 0x0060, 0x3002, "US", "Histogram Number of Bins", FUNCDCM_NONE ),
2280
    ENTRY( 0x0060, 0x3004, "xs", "Histogram First Bin Value", FUNCDCM_NONE ),
2281
    ENTRY( 0x0060, 0x3006, "xs", "Histogram Last Bin Value", FUNCDCM_NONE ),
2282
    ENTRY( 0x0060, 0x3008, "US", "Histogram Bin Width", FUNCDCM_NONE ),
2283
    ENTRY( 0x0060, 0x3010, "LO", "Histogram Explanation", FUNCDCM_NONE ),
2284
    ENTRY( 0x0060, 0x3020, "UL", "Histogram Data", FUNCDCM_NONE ),
2285
    ENTRY( 0x0070, 0x0001, "SQ", "Graphic Annotation Sequence", FUNCDCM_NONE ),
2286
    ENTRY( 0x0070, 0x0002, "CS", "Graphic Layer", FUNCDCM_NONE ),
2287
    ENTRY( 0x0070, 0x0003, "CS", "Bounding Box Annotation Units", FUNCDCM_NONE ),
2288
    ENTRY( 0x0070, 0x0004, "CS", "Anchor Point Annotation Units", FUNCDCM_NONE ),
2289
    ENTRY( 0x0070, 0x0005, "CS", "Graphic Annotation Units", FUNCDCM_NONE ),
2290
    ENTRY( 0x0070, 0x0006, "ST", "Unformatted Text Value", FUNCDCM_NONE ),
2291
    ENTRY( 0x0070, 0x0008, "SQ", "Text Object Sequence", FUNCDCM_NONE ),
2292
    ENTRY( 0x0070, 0x0009, "SQ", "Graphic Object Sequence", FUNCDCM_NONE ),
2293
    ENTRY( 0x0070, 0x0010, "FL", "Bounding Box TLHC", FUNCDCM_NONE ),
2294
    ENTRY( 0x0070, 0x0011, "FL", "Bounding Box BRHC", FUNCDCM_NONE ),
2295
    ENTRY( 0x0070, 0x0014, "FL", "Anchor Point", FUNCDCM_NONE ),
2296
    ENTRY( 0x0070, 0x0015, "CS", "Anchor Point Visibility", FUNCDCM_NONE ),
2297
    ENTRY( 0x0070, 0x0020, "US", "Graphic Dimensions", FUNCDCM_NONE ),
2298
    ENTRY( 0x0070, 0x0021, "US", "Number Of Graphic Points", FUNCDCM_NONE ),
2299
    ENTRY( 0x0070, 0x0022, "FL", "Graphic Data", FUNCDCM_NONE ),
2300
    ENTRY( 0x0070, 0x0023, "CS", "Graphic Type", FUNCDCM_NONE ),
2301
    ENTRY( 0x0070, 0x0024, "CS", "Graphic Filled", FUNCDCM_NONE ),
2302
    ENTRY( 0x0070, 0x0040, "IS", "Image Rotation", FUNCDCM_NONE ),
2303
    ENTRY( 0x0070, 0x0041, "CS", "Image Horizontal Flip", FUNCDCM_NONE ),
2304
    ENTRY( 0x0070, 0x0050, "US", "Displayed Area TLHC", FUNCDCM_NONE ),
2305
    ENTRY( 0x0070, 0x0051, "US", "Displayed Area BRHC", FUNCDCM_NONE ),
2306
    ENTRY( 0x0070, 0x0060, "SQ", "Graphic Layer Sequence", FUNCDCM_NONE ),
2307
    ENTRY( 0x0070, 0x0062, "IS", "Graphic Layer Order", FUNCDCM_NONE ),
2308
    ENTRY( 0x0070, 0x0066, "US", "Graphic Layer Recommended Display Value", FUNCDCM_NONE ),
2309
    ENTRY( 0x0070, 0x0068, "LO", "Graphic Layer Description", FUNCDCM_NONE ),
2310
    ENTRY( 0x0070, 0x0080, "CS", "Presentation Label", FUNCDCM_NONE ),
2311
    ENTRY( 0x0070, 0x0081, "LO", "Presentation Description", FUNCDCM_NONE ),
2312
    ENTRY( 0x0070, 0x0082, "DA", "Presentation Creation Date", FUNCDCM_NONE ),
2313
    ENTRY( 0x0070, 0x0083, "TM", "Presentation Creation Time", FUNCDCM_NONE ),
2314
    ENTRY( 0x0070, 0x0084, "PN", "Presentation Creator's Name", FUNCDCM_NONE ),
2315
    ENTRY( 0x0087, 0x0010, "CS", "Media Type", FUNCDCM_NONE ),
2316
    ENTRY( 0x0087, 0x0020, "CS", "Media Location", FUNCDCM_NONE ),
2317
    ENTRY( 0x0087, 0x0050, "IS", "Estimated Retrieve Time", FUNCDCM_NONE ),
2318
    ENTRY( 0x0088, 0x0000, "UL", "Storage Group Length", FUNCDCM_NONE ),
2319
    ENTRY( 0x0088, 0x0130, "SH", "Storage Media FileSet ID", FUNCDCM_NONE ),
2320
    ENTRY( 0x0088, 0x0140, "UI", "Storage Media FileSet UID", FUNCDCM_NONE ),
2321
    ENTRY( 0x0088, 0x0200, "SQ", "Icon Image Sequence", FUNCDCM_NONE ),
2322
    ENTRY( 0x0088, 0x0904, "LO", "Topic Title", FUNCDCM_NONE ),
2323
    ENTRY( 0x0088, 0x0906, "ST", "Topic Subject", FUNCDCM_NONE ),
2324
    ENTRY( 0x0088, 0x0910, "LO", "Topic Author", FUNCDCM_NONE ),
2325
    ENTRY( 0x0088, 0x0912, "LO", "Topic Key Words", FUNCDCM_NONE ),
2326
    ENTRY( 0x0095, 0x0001, "LT", "Examination Folder ID", FUNCDCM_NONE ),
2327
    ENTRY( 0x0095, 0x0004, "UL", "Folder Reported Status", FUNCDCM_NONE ),
2328
    ENTRY( 0x0095, 0x0005, "LT", "Folder Reporting Radiologist", FUNCDCM_NONE ),
2329
    ENTRY( 0x0095, 0x0007, "LT", "SIENET ISA PLA", FUNCDCM_NONE ),
2330
    ENTRY( 0x0099, 0x0002, "UL", "Data Object Attributes", FUNCDCM_NONE ),
2331
    ENTRY( 0x00e1, 0x0001, "US", "Data Dictionary Version", FUNCDCM_NONE ),
2332
    ENTRY( 0x00e1, 0x0014, "LT", "?", FUNCDCM_NONE ),
2333
    ENTRY( 0x00e1, 0x0022, "DS", "?", FUNCDCM_NONE ),
2334
    ENTRY( 0x00e1, 0x0023, "DS", "?", FUNCDCM_NONE ),
2335
    ENTRY( 0x00e1, 0x0024, "LT", "?", FUNCDCM_NONE ),
2336
    ENTRY( 0x00e1, 0x0025, "LT", "?", FUNCDCM_NONE ),
2337
    ENTRY( 0x00e1, 0x0040, "SH", "Offset From CT MR Images", FUNCDCM_NONE ),
2338
    ENTRY( 0x0193, 0x0002, "DS", "RIS Key", FUNCDCM_NONE ),
2339
    ENTRY( 0x0307, 0x0001, "UN", "RIS Worklist IMGEF", FUNCDCM_NONE ),
2340
    ENTRY( 0x0309, 0x0001, "UN", "RIS Report IMGEF", FUNCDCM_NONE ),
2341
    ENTRY( 0x0601, 0x0000, "SH", "Implementation Version", FUNCDCM_NONE ),
2342
    ENTRY( 0x0601, 0x0020, "DS", "Relative Table Position", FUNCDCM_NONE ),
2343
    ENTRY( 0x0601, 0x0021, "DS", "Relative Table Height", FUNCDCM_NONE ),
2344
    ENTRY( 0x0601, 0x0030, "SH", "Surview Direction", FUNCDCM_NONE ),
2345
    ENTRY( 0x0601, 0x0031, "DS", "Surview Length", FUNCDCM_NONE ),
2346
    ENTRY( 0x0601, 0x0050, "SH", "Image View Type", FUNCDCM_NONE ),
2347
    ENTRY( 0x0601, 0x0070, "DS", "Batch Number", FUNCDCM_NONE ),
2348
    ENTRY( 0x0601, 0x0071, "DS", "Batch Size", FUNCDCM_NONE ),
2349
    ENTRY( 0x0601, 0x0072, "DS", "Batch Slice Number", FUNCDCM_NONE ),
2350
    ENTRY( 0x1000, 0x0000, "xs", "?", FUNCDCM_NONE ),
2351
    ENTRY( 0x1000, 0x0001, "US", "Run Length Triplet", FUNCDCM_NONE ),
2352
    ENTRY( 0x1000, 0x0002, "US", "Huffman Table Size", FUNCDCM_NONE ),
2353
    ENTRY( 0x1000, 0x0003, "US", "Huffman Table Triplet", FUNCDCM_NONE ),
2354
    ENTRY( 0x1000, 0x0004, "US", "Shift Table Size", FUNCDCM_NONE ),
2355
    ENTRY( 0x1000, 0x0005, "US", "Shift Table Triplet", FUNCDCM_NONE ),
2356
    ENTRY( 0x1010, 0x0000, "xs", "?", FUNCDCM_NONE ),
2357
    ENTRY( 0x1369, 0x0000, "US", "?", FUNCDCM_NONE ),
2358
    ENTRY( 0x2000, 0x0000, "UL", "Film Session Group Length", FUNCDCM_NONE ),
2359
    ENTRY( 0x2000, 0x0010, "IS", "Number of Copies", FUNCDCM_NONE ),
2360
    ENTRY( 0x2000, 0x0020, "CS", "Print Priority", FUNCDCM_NONE ),
2361
    ENTRY( 0x2000, 0x0030, "CS", "Medium Type", FUNCDCM_NONE ),
2362
    ENTRY( 0x2000, 0x0040, "CS", "Film Destination", FUNCDCM_NONE ),
2363
    ENTRY( 0x2000, 0x0050, "LO", "Film Session Label", FUNCDCM_NONE ),
2364
    ENTRY( 0x2000, 0x0060, "IS", "Memory Allocation", FUNCDCM_NONE ),
2365
    ENTRY( 0x2000, 0x0500, "SQ", "Referenced Film Box Sequence", FUNCDCM_NONE ),
2366
    ENTRY( 0x2010, 0x0000, "UL", "Film Box Group Length", FUNCDCM_NONE ),
2367
    ENTRY( 0x2010, 0x0010, "ST", "Image Display Format", FUNCDCM_NONE ),
2368
    ENTRY( 0x2010, 0x0030, "CS", "Annotation Display Format ID", FUNCDCM_NONE ),
2369
    ENTRY( 0x2010, 0x0040, "CS", "Film Orientation", FUNCDCM_NONE ),
2370
    ENTRY( 0x2010, 0x0050, "CS", "Film Size ID", FUNCDCM_NONE ),
2371
    ENTRY( 0x2010, 0x0060, "CS", "Magnification Type", FUNCDCM_NONE ),
2372
    ENTRY( 0x2010, 0x0080, "CS", "Smoothing Type", FUNCDCM_NONE ),
2373
    ENTRY( 0x2010, 0x0100, "CS", "Border Density", FUNCDCM_NONE ),
2374
    ENTRY( 0x2010, 0x0110, "CS", "Empty Image Density", FUNCDCM_NONE ),
2375
    ENTRY( 0x2010, 0x0120, "US", "Min Density", FUNCDCM_NONE ),
2376
    ENTRY( 0x2010, 0x0130, "US", "Max Density", FUNCDCM_NONE ),
2377
    ENTRY( 0x2010, 0x0140, "CS", "Trim", FUNCDCM_NONE ),
2378
    ENTRY( 0x2010, 0x0150, "ST", "Configuration Information", FUNCDCM_NONE ),
2379
    ENTRY( 0x2010, 0x0500, "SQ", "Referenced Film Session Sequence", FUNCDCM_NONE ),
2380
    ENTRY( 0x2010, 0x0510, "SQ", "Referenced Image Box Sequence", FUNCDCM_NONE ),
2381
    ENTRY( 0x2010, 0x0520, "SQ", "Referenced Basic Annotation Box Sequence", FUNCDCM_NONE ),
2382
    ENTRY( 0x2020, 0x0000, "UL", "Image Box Group Length", FUNCDCM_NONE ),
2383
    ENTRY( 0x2020, 0x0010, "US", "Image Box Position", FUNCDCM_NONE ),
2384
    ENTRY( 0x2020, 0x0020, "CS", "Polarity", FUNCDCM_NONE ),
2385
    ENTRY( 0x2020, 0x0030, "DS", "Requested Image Size", FUNCDCM_NONE ),
2386
    ENTRY( 0x2020, 0x0110, "SQ", "Preformatted Grayscale Image Sequence", FUNCDCM_NONE ),
2387
    ENTRY( 0x2020, 0x0111, "SQ", "Preformatted Color Image Sequence", FUNCDCM_NONE ),
2388
    ENTRY( 0x2020, 0x0130, "SQ", "Referenced Image Overlay Box Sequence", FUNCDCM_NONE ),
2389
    ENTRY( 0x2020, 0x0140, "SQ", "Referenced VOI LUT Box Sequence", FUNCDCM_NONE ),
2390
    ENTRY( 0x2030, 0x0000, "UL", "Annotation Group Length", FUNCDCM_NONE ),
2391
    ENTRY( 0x2030, 0x0010, "US", "Annotation Position", FUNCDCM_NONE ),
2392
    ENTRY( 0x2030, 0x0020, "LO", "Text String", FUNCDCM_NONE ),
2393
    ENTRY( 0x2040, 0x0000, "UL", "Overlay Box Group Length", FUNCDCM_NONE ),
2394
    ENTRY( 0x2040, 0x0010, "SQ", "Referenced Overlay Plane Sequence", FUNCDCM_NONE ),
2395
    ENTRY( 0x2040, 0x0011, "US", "Referenced Overlay Plane Groups", FUNCDCM_NONE ),
2396
    ENTRY( 0x2040, 0x0060, "CS", "Overlay Magnification Type", FUNCDCM_NONE ),
2397
    ENTRY( 0x2040, 0x0070, "CS", "Overlay Smoothing Type", FUNCDCM_NONE ),
2398
    ENTRY( 0x2040, 0x0080, "CS", "Overlay Foreground Density", FUNCDCM_NONE ),
2399
    ENTRY( 0x2040, 0x0090, "CS", "Overlay Mode", FUNCDCM_NONE ),
2400
    ENTRY( 0x2040, 0x0100, "CS", "Threshold Density", FUNCDCM_NONE ),
2401
    ENTRY( 0x2040, 0x0500, "SQ", "Referenced Overlay Image Box Sequence", FUNCDCM_NONE ),
2402
    ENTRY( 0x2050, 0x0010, "SQ", "Presentation LUT Sequence", FUNCDCM_NONE ),
2403
    ENTRY( 0x2050, 0x0020, "CS", "Presentation LUT Shape", FUNCDCM_NONE ),
2404
    ENTRY( 0x2100, 0x0000, "UL", "Print Job Group Length", FUNCDCM_NONE ),
2405
    ENTRY( 0x2100, 0x0020, "CS", "Execution Status", FUNCDCM_NONE ),
2406
    ENTRY( 0x2100, 0x0030, "CS", "Execution Status Info", FUNCDCM_NONE ),
2407
    ENTRY( 0x2100, 0x0040, "DA", "Creation Date", FUNCDCM_NONE ),
2408
    ENTRY( 0x2100, 0x0050, "TM", "Creation Time", FUNCDCM_NONE ),
2409
    ENTRY( 0x2100, 0x0070, "AE", "Originator", FUNCDCM_NONE ),
2410
    ENTRY( 0x2100, 0x0500, "SQ", "Referenced Print Job Sequence", FUNCDCM_NONE ),
2411
    ENTRY( 0x2110, 0x0000, "UL", "Printer Group Length", FUNCDCM_NONE ),
2412
    ENTRY( 0x2110, 0x0010, "CS", "Printer Status", FUNCDCM_NONE ),
2413
    ENTRY( 0x2110, 0x0020, "CS", "Printer Status Info", FUNCDCM_NONE ),
2414
    ENTRY( 0x2110, 0x0030, "LO", "Printer Name", FUNCDCM_NONE ),
2415
    ENTRY( 0x2110, 0x0099, "SH", "Print Queue ID", FUNCDCM_NONE ),
2416
    ENTRY( 0x3002, 0x0002, "SH", "RT Image Label", FUNCDCM_NONE ),
2417
    ENTRY( 0x3002, 0x0003, "LO", "RT Image Name", FUNCDCM_NONE ),
2418
    ENTRY( 0x3002, 0x0004, "ST", "RT Image Description", FUNCDCM_NONE ),
2419
    ENTRY( 0x3002, 0x000a, "CS", "Reported Values Origin", FUNCDCM_NONE ),
2420
    ENTRY( 0x3002, 0x000c, "CS", "RT Image Plane", FUNCDCM_NONE ),
2421
    ENTRY( 0x3002, 0x000e, "DS", "X-Ray Image Receptor Angle", FUNCDCM_NONE ),
2422
    ENTRY( 0x3002, 0x0010, "DS", "RTImageOrientation", FUNCDCM_NONE ),
2423
    ENTRY( 0x3002, 0x0011, "DS", "Image Plane Pixel Spacing", FUNCDCM_NONE ),
2424
    ENTRY( 0x3002, 0x0012, "DS", "RT Image Position", FUNCDCM_NONE ),
2425
    ENTRY( 0x3002, 0x0020, "SH", "Radiation Machine Name", FUNCDCM_NONE ),
2426
    ENTRY( 0x3002, 0x0022, "DS", "Radiation Machine SAD", FUNCDCM_NONE ),
2427
    ENTRY( 0x3002, 0x0024, "DS", "Radiation Machine SSD", FUNCDCM_NONE ),
2428
    ENTRY( 0x3002, 0x0026, "DS", "RT Image SID", FUNCDCM_NONE ),
2429
    ENTRY( 0x3002, 0x0028, "DS", "Source to Reference Object Distance", FUNCDCM_NONE ),
2430
    ENTRY( 0x3002, 0x0029, "IS", "Fraction Number", FUNCDCM_NONE ),
2431
    ENTRY( 0x3002, 0x0030, "SQ", "Exposure Sequence", FUNCDCM_NONE ),
2432
    ENTRY( 0x3002, 0x0032, "DS", "Meterset Exposure", FUNCDCM_NONE ),
2433
    ENTRY( 0x3004, 0x0001, "CS", "DVH Type", FUNCDCM_NONE ),
2434
    ENTRY( 0x3004, 0x0002, "CS", "Dose Units", FUNCDCM_NONE ),
2435
    ENTRY( 0x3004, 0x0004, "CS", "Dose Type", FUNCDCM_NONE ),
2436
    ENTRY( 0x3004, 0x0006, "LO", "Dose Comment", FUNCDCM_NONE ),
2437
    ENTRY( 0x3004, 0x0008, "DS", "Normalization Point", FUNCDCM_NONE ),
2438
    ENTRY( 0x3004, 0x000a, "CS", "Dose Summation Type", FUNCDCM_NONE ),
2439
    ENTRY( 0x3004, 0x000c, "DS", "GridFrame Offset Vector", FUNCDCM_NONE ),
2440
    ENTRY( 0x3004, 0x000e, "DS", "Dose Grid Scaling", FUNCDCM_NONE ),
2441
    ENTRY( 0x3004, 0x0010, "SQ", "RT Dose ROI Sequence", FUNCDCM_NONE ),
2442
    ENTRY( 0x3004, 0x0012, "DS", "Dose Value", FUNCDCM_NONE ),
2443
    ENTRY( 0x3004, 0x0040, "DS", "DVH Normalization Point", FUNCDCM_NONE ),
2444
    ENTRY( 0x3004, 0x0042, "DS", "DVH Normalization Dose Value", FUNCDCM_NONE ),
2445
    ENTRY( 0x3004, 0x0050, "SQ", "DVH Sequence", FUNCDCM_NONE ),
2446
    ENTRY( 0x3004, 0x0052, "DS", "DVH Dose Scaling", FUNCDCM_NONE ),
2447
    ENTRY( 0x3004, 0x0054, "CS", "DVH Volume Units", FUNCDCM_NONE ),
2448
    ENTRY( 0x3004, 0x0056, "IS", "DVH Number of Bins", FUNCDCM_NONE ),
2449
    ENTRY( 0x3004, 0x0058, "DS", "DVH Data", FUNCDCM_NONE ),
2450
    ENTRY( 0x3004, 0x0060, "SQ", "DVH Referenced ROI Sequence", FUNCDCM_NONE ),
2451
    ENTRY( 0x3004, 0x0062, "CS", "DVH ROI Contribution Type", FUNCDCM_NONE ),
2452
    ENTRY( 0x3004, 0x0070, "DS", "DVH Minimum Dose", FUNCDCM_NONE ),
2453
    ENTRY( 0x3004, 0x0072, "DS", "DVH Maximum Dose", FUNCDCM_NONE ),
2454
    ENTRY( 0x3004, 0x0074, "DS", "DVH Mean Dose", FUNCDCM_NONE ),
2455
    ENTRY( 0x3006, 0x0002, "SH", "Structure Set Label", FUNCDCM_NONE ),
2456
    ENTRY( 0x3006, 0x0004, "LO", "Structure Set Name", FUNCDCM_NONE ),
2457
    ENTRY( 0x3006, 0x0006, "ST", "Structure Set Description", FUNCDCM_NONE ),
2458
    ENTRY( 0x3006, 0x0008, "DA", "Structure Set Date", FUNCDCM_NONE ),
2459
    ENTRY( 0x3006, 0x0009, "TM", "Structure Set Time", FUNCDCM_NONE ),
2460
    ENTRY( 0x3006, 0x0010, "SQ", "Referenced Frame of Reference Sequence", FUNCDCM_NONE ),
2461
    ENTRY( 0x3006, 0x0012, "SQ", "RT Referenced Study Sequence", FUNCDCM_NONE ),
2462
    ENTRY( 0x3006, 0x0014, "SQ", "RT Referenced Series Sequence", FUNCDCM_NONE ),
2463
    ENTRY( 0x3006, 0x0016, "SQ", "Contour Image Sequence", FUNCDCM_NONE ),
2464
    ENTRY( 0x3006, 0x0020, "SQ", "Structure Set ROI Sequence", FUNCDCM_NONE ),
2465
    ENTRY( 0x3006, 0x0022, "IS", "ROI Number", FUNCDCM_NONE ),
2466
    ENTRY( 0x3006, 0x0024, "UI", "Referenced Frame of Reference UID", FUNCDCM_NONE ),
2467
    ENTRY( 0x3006, 0x0026, "LO", "ROI Name", FUNCDCM_NONE ),
2468
    ENTRY( 0x3006, 0x0028, "ST", "ROI Description", FUNCDCM_NONE ),
2469
    ENTRY( 0x3006, 0x002a, "IS", "ROI Display Color", FUNCDCM_NONE ),
2470
    ENTRY( 0x3006, 0x002c, "DS", "ROI Volume", FUNCDCM_NONE ),
2471
    ENTRY( 0x3006, 0x0030, "SQ", "RT Related ROI Sequence", FUNCDCM_NONE ),
2472
    ENTRY( 0x3006, 0x0033, "CS", "RT ROI Relationship", FUNCDCM_NONE ),
2473
    ENTRY( 0x3006, 0x0036, "CS", "ROI Generation Algorithm", FUNCDCM_NONE ),
2474
    ENTRY( 0x3006, 0x0038, "LO", "ROI Generation Description", FUNCDCM_NONE ),
2475
    ENTRY( 0x3006, 0x0039, "SQ", "ROI Contour Sequence", FUNCDCM_NONE ),
2476
    ENTRY( 0x3006, 0x0040, "SQ", "Contour Sequence", FUNCDCM_NONE ),
2477
    ENTRY( 0x3006, 0x0042, "CS", "Contour Geometric Type", FUNCDCM_NONE ),
2478
    ENTRY( 0x3006, 0x0044, "DS", "Contour SlabT hickness", FUNCDCM_NONE ),
2479
    ENTRY( 0x3006, 0x0045, "DS", "Contour Offset Vector", FUNCDCM_NONE ),
2480
    ENTRY( 0x3006, 0x0046, "IS", "Number of Contour Points", FUNCDCM_NONE ),
2481
    ENTRY( 0x3006, 0x0050, "DS", "Contour Data", FUNCDCM_NONE ),
2482
    ENTRY( 0x3006, 0x0080, "SQ", "RT ROI Observations Sequence", FUNCDCM_NONE ),
2483
    ENTRY( 0x3006, 0x0082, "IS", "Observation Number", FUNCDCM_NONE ),
2484
    ENTRY( 0x3006, 0x0084, "IS", "Referenced ROI Number", FUNCDCM_NONE ),
2485
    ENTRY( 0x3006, 0x0085, "SH", "ROI Observation Label", FUNCDCM_NONE ),
2486
    ENTRY( 0x3006, 0x0086, "SQ", "RT ROI Identification Code Sequence", FUNCDCM_NONE ),
2487
    ENTRY( 0x3006, 0x0088, "ST", "ROI Observation Description", FUNCDCM_NONE ),
2488
    ENTRY( 0x3006, 0x00a0, "SQ", "Related RT ROI Observations Sequence", FUNCDCM_NONE ),
2489
    ENTRY( 0x3006, 0x00a4, "CS", "RT ROI Interpreted Type", FUNCDCM_NONE ),
2490
    ENTRY( 0x3006, 0x00a6, "PN", "ROI Interpreter", FUNCDCM_NONE ),
2491
    ENTRY( 0x3006, 0x00b0, "SQ", "ROI Physical Properties Sequence", FUNCDCM_NONE ),
2492
    ENTRY( 0x3006, 0x00b2, "CS", "ROI Physical Property", FUNCDCM_NONE ),
2493
    ENTRY( 0x3006, 0x00b4, "DS", "ROI Physical Property Value", FUNCDCM_NONE ),
2494
    ENTRY( 0x3006, 0x00c0, "SQ", "Frame of Reference Relationship Sequence", FUNCDCM_NONE ),
2495
    ENTRY( 0x3006, 0x00c2, "UI", "Related Frame of Reference UID", FUNCDCM_NONE ),
2496
    ENTRY( 0x3006, 0x00c4, "CS", "Frame of Reference Transformation Type", FUNCDCM_NONE ),
2497
    ENTRY( 0x3006, 0x00c6, "DS", "Frame of Reference Transformation Matrix", FUNCDCM_NONE ),
2498
    ENTRY( 0x3006, 0x00c8, "LO", "Frame of Reference Transformation Comment", FUNCDCM_NONE ),
2499
    ENTRY( 0x300a, 0x0002, "SH", "RT Plan Label", FUNCDCM_NONE ),
2500
    ENTRY( 0x300a, 0x0003, "LO", "RT Plan Name", FUNCDCM_NONE ),
2501
    ENTRY( 0x300a, 0x0004, "ST", "RT Plan Description", FUNCDCM_NONE ),
2502
    ENTRY( 0x300a, 0x0006, "DA", "RT Plan Date", FUNCDCM_NONE ),
2503
    ENTRY( 0x300a, 0x0007, "TM", "RT Plan Time", FUNCDCM_NONE ),
2504
    ENTRY( 0x300a, 0x0009, "LO", "Treatment Protocols", FUNCDCM_NONE ),
2505
    ENTRY( 0x300a, 0x000a, "CS", "Treatment Intent", FUNCDCM_NONE ),
2506
    ENTRY( 0x300a, 0x000b, "LO", "Treatment Sites", FUNCDCM_NONE ),
2507
    ENTRY( 0x300a, 0x000c, "CS", "RT Plan Geometry", FUNCDCM_NONE ),
2508
    ENTRY( 0x300a, 0x000e, "ST", "Prescription Description", FUNCDCM_NONE ),
2509
    ENTRY( 0x300a, 0x0010, "SQ", "Dose ReferenceSequence", FUNCDCM_NONE ),
2510
    ENTRY( 0x300a, 0x0012, "IS", "Dose ReferenceNumber", FUNCDCM_NONE ),
2511
    ENTRY( 0x300a, 0x0014, "CS", "Dose Reference Structure Type", FUNCDCM_NONE ),
2512
    ENTRY( 0x300a, 0x0016, "LO", "Dose ReferenceDescription", FUNCDCM_NONE ),
2513
    ENTRY( 0x300a, 0x0018, "DS", "Dose Reference Point Coordinates", FUNCDCM_NONE ),
2514
    ENTRY( 0x300a, 0x001a, "DS", "Nominal Prior Dose", FUNCDCM_NONE ),
2515
    ENTRY( 0x300a, 0x0020, "CS", "Dose Reference Type", FUNCDCM_NONE ),
2516
    ENTRY( 0x300a, 0x0021, "DS", "Constraint Weight", FUNCDCM_NONE ),
2517
    ENTRY( 0x300a, 0x0022, "DS", "Delivery Warning Dose", FUNCDCM_NONE ),
2518
    ENTRY( 0x300a, 0x0023, "DS", "Delivery Maximum Dose", FUNCDCM_NONE ),
2519
    ENTRY( 0x300a, 0x0025, "DS", "Target Minimum Dose", FUNCDCM_NONE ),
2520
    ENTRY( 0x300a, 0x0026, "DS", "Target Prescription Dose", FUNCDCM_NONE ),
2521
    ENTRY( 0x300a, 0x0027, "DS", "Target Maximum Dose", FUNCDCM_NONE ),
2522
    ENTRY( 0x300a, 0x0028, "DS", "Target Underdose Volume Fraction", FUNCDCM_NONE ),
2523
    ENTRY( 0x300a, 0x002a, "DS", "Organ at Risk Full-volume Dose", FUNCDCM_NONE ),
2524
    ENTRY( 0x300a, 0x002b, "DS", "Organ at Risk Limit Dose", FUNCDCM_NONE ),
2525
    ENTRY( 0x300a, 0x002c, "DS", "Organ at Risk Maximum Dose", FUNCDCM_NONE ),
2526
    ENTRY( 0x300a, 0x002d, "DS", "Organ at Risk Overdose Volume Fraction", FUNCDCM_NONE ),
2527
    ENTRY( 0x300a, 0x0040, "SQ", "Tolerance Table Sequence", FUNCDCM_NONE ),
2528
    ENTRY( 0x300a, 0x0042, "IS", "Tolerance Table Number", FUNCDCM_NONE ),
2529
    ENTRY( 0x300a, 0x0043, "SH", "Tolerance Table Label", FUNCDCM_NONE ),
2530
    ENTRY( 0x300a, 0x0044, "DS", "Gantry Angle Tolerance", FUNCDCM_NONE ),
2531
    ENTRY( 0x300a, 0x0046, "DS", "Beam Limiting Device Angle Tolerance", FUNCDCM_NONE ),
2532
    ENTRY( 0x300a, 0x0048, "SQ", "Beam Limiting Device Tolerance Sequence", FUNCDCM_NONE ),
2533
    ENTRY( 0x300a, 0x004a, "DS", "Beam Limiting Device Position Tolerance", FUNCDCM_NONE ),
2534
    ENTRY( 0x300a, 0x004c, "DS", "Patient Support Angle Tolerance", FUNCDCM_NONE ),
2535
    ENTRY( 0x300a, 0x004e, "DS", "Table Top Eccentric Angle Tolerance", FUNCDCM_NONE ),
2536
    ENTRY( 0x300a, 0x0051, "DS", "Table Top Vertical Position Tolerance", FUNCDCM_NONE ),
2537
    ENTRY( 0x300a, 0x0052, "DS", "Table Top Longitudinal Position Tolerance", FUNCDCM_NONE ),
2538
    ENTRY( 0x300a, 0x0053, "DS", "Table Top Lateral Position Tolerance", FUNCDCM_NONE ),
2539
    ENTRY( 0x300a, 0x0055, "CS", "RT Plan Relationship", FUNCDCM_NONE ),
2540
    ENTRY( 0x300a, 0x0070, "SQ", "Fraction Group Sequence", FUNCDCM_NONE ),
2541
    ENTRY( 0x300a, 0x0071, "IS", "Fraction Group Number", FUNCDCM_NONE ),
2542
    ENTRY( 0x300a, 0x0078, "IS", "Number of Fractions Planned", FUNCDCM_NONE ),
2543
    ENTRY( 0x300a, 0x0079, "IS", "Number of Fractions Per Day", FUNCDCM_NONE ),
2544
    ENTRY( 0x300a, 0x007a, "IS", "Repeat Fraction Cycle Length", FUNCDCM_NONE ),
2545
    ENTRY( 0x300a, 0x007b, "LT", "Fraction Pattern", FUNCDCM_NONE ),
2546
    ENTRY( 0x300a, 0x0080, "IS", "Number of Beams", FUNCDCM_NONE ),
2547
    ENTRY( 0x300a, 0x0082, "DS", "Beam Dose Specification Point", FUNCDCM_NONE ),
2548
    ENTRY( 0x300a, 0x0084, "DS", "Beam Dose", FUNCDCM_NONE ),
2549
    ENTRY( 0x300a, 0x0086, "DS", "Beam Meterset", FUNCDCM_NONE ),
2550
    ENTRY( 0x300a, 0x00a0, "IS", "Number of Brachy Application Setups", FUNCDCM_NONE ),
2551
    ENTRY( 0x300a, 0x00a2, "DS", "Brachy Application Setup Dose Specification Point", FUNCDCM_NONE ),
2552
    ENTRY( 0x300a, 0x00a4, "DS", "Brachy Application Setup Dose", FUNCDCM_NONE ),
2553
    ENTRY( 0x300a, 0x00b0, "SQ", "Beam Sequence", FUNCDCM_NONE ),
2554
    ENTRY( 0x300a, 0x00b2, "SH", "Treatment Machine Name ", FUNCDCM_NONE ),
2555
    ENTRY( 0x300a, 0x00b3, "CS", "Primary Dosimeter Unit", FUNCDCM_NONE ),
2556
    ENTRY( 0x300a, 0x00b4, "DS", "Source-Axis Distance", FUNCDCM_NONE ),
2557
    ENTRY( 0x300a, 0x00b6, "SQ", "Beam Limiting Device Sequence", FUNCDCM_NONE ),
2558
    ENTRY( 0x300a, 0x00b8, "CS", "RT Beam Limiting Device Type", FUNCDCM_NONE ),
2559
    ENTRY( 0x300a, 0x00ba, "DS", "Source to Beam Limiting Device Distance", FUNCDCM_NONE ),
2560
    ENTRY( 0x300a, 0x00bc, "IS", "Number of Leaf/Jaw Pairs", FUNCDCM_NONE ),
2561
    ENTRY( 0x300a, 0x00be, "DS", "Leaf Position Boundaries", FUNCDCM_NONE ),
2562
    ENTRY( 0x300a, 0x00c0, "IS", "Beam Number", FUNCDCM_NONE ),
2563
    ENTRY( 0x300a, 0x00c2, "LO", "Beam Name", FUNCDCM_NONE ),
2564
    ENTRY( 0x300a, 0x00c3, "ST", "Beam Description", FUNCDCM_NONE ),
2565
    ENTRY( 0x300a, 0x00c4, "CS", "Beam Type", FUNCDCM_NONE ),
2566
    ENTRY( 0x300a, 0x00c6, "CS", "Radiation Type", FUNCDCM_NONE ),
2567
    ENTRY( 0x300a, 0x00c8, "IS", "Reference Image Number", FUNCDCM_NONE ),
2568
    ENTRY( 0x300a, 0x00ca, "SQ", "Planned Verification Image Sequence", FUNCDCM_NONE ),
2569
    ENTRY( 0x300a, 0x00cc, "LO", "Imaging Device Specific Acquisition Parameters", FUNCDCM_NONE ),
2570
    ENTRY( 0x300a, 0x00ce, "CS", "Treatment Delivery Type", FUNCDCM_NONE ),
2571
    ENTRY( 0x300a, 0x00d0, "IS", "Number of Wedges", FUNCDCM_NONE ),
2572
    ENTRY( 0x300a, 0x00d1, "SQ", "Wedge Sequence", FUNCDCM_NONE ),
2573
    ENTRY( 0x300a, 0x00d2, "IS", "Wedge Number", FUNCDCM_NONE ),
2574
    ENTRY( 0x300a, 0x00d3, "CS", "Wedge Type", FUNCDCM_NONE ),
2575
    ENTRY( 0x300a, 0x00d4, "SH", "Wedge ID", FUNCDCM_NONE ),
2576
    ENTRY( 0x300a, 0x00d5, "IS", "Wedge Angle", FUNCDCM_NONE ),
2577
    ENTRY( 0x300a, 0x00d6, "DS", "Wedge Factor", FUNCDCM_NONE ),
2578
    ENTRY( 0x300a, 0x00d8, "DS", "Wedge Orientation", FUNCDCM_NONE ),
2579
    ENTRY( 0x300a, 0x00da, "DS", "Source to Wedge Tray Distance", FUNCDCM_NONE ),
2580
    ENTRY( 0x300a, 0x00e0, "IS", "Number of Compensators", FUNCDCM_NONE ),
2581
    ENTRY( 0x300a, 0x00e1, "SH", "Material ID", FUNCDCM_NONE ),
2582
    ENTRY( 0x300a, 0x00e2, "DS", "Total Compensator Tray Factor", FUNCDCM_NONE ),
2583
    ENTRY( 0x300a, 0x00e3, "SQ", "Compensator Sequence", FUNCDCM_NONE ),
2584
    ENTRY( 0x300a, 0x00e4, "IS", "Compensator Number", FUNCDCM_NONE ),
2585
    ENTRY( 0x300a, 0x00e5, "SH", "Compensator ID", FUNCDCM_NONE ),
2586
    ENTRY( 0x300a, 0x00e6, "DS", "Source to Compensator Tray Distance", FUNCDCM_NONE ),
2587
    ENTRY( 0x300a, 0x00e7, "IS", "Compensator Rows", FUNCDCM_NONE ),
2588
    ENTRY( 0x300a, 0x00e8, "IS", "Compensator Columns", FUNCDCM_NONE ),
2589
    ENTRY( 0x300a, 0x00e9, "DS", "Compensator Pixel Spacing", FUNCDCM_NONE ),
2590
    ENTRY( 0x300a, 0x00ea, "DS", "Compensator Position", FUNCDCM_NONE ),
2591
    ENTRY( 0x300a, 0x00eb, "DS", "Compensator Transmission Data", FUNCDCM_NONE ),
2592
    ENTRY( 0x300a, 0x00ec, "DS", "Compensator Thickness Data", FUNCDCM_NONE ),
2593
    ENTRY( 0x300a, 0x00ed, "IS", "Number of Boli", FUNCDCM_NONE ),
2594
    ENTRY( 0x300a, 0x00f0, "IS", "Number of Blocks", FUNCDCM_NONE ),
2595
    ENTRY( 0x300a, 0x00f2, "DS", "Total Block Tray Factor", FUNCDCM_NONE ),
2596
    ENTRY( 0x300a, 0x00f4, "SQ", "Block Sequence", FUNCDCM_NONE ),
2597
    ENTRY( 0x300a, 0x00f5, "SH", "Block Tray ID", FUNCDCM_NONE ),
2598
    ENTRY( 0x300a, 0x00f6, "DS", "Source to Block Tray Distance", FUNCDCM_NONE ),
2599
    ENTRY( 0x300a, 0x00f8, "CS", "Block Type", FUNCDCM_NONE ),
2600
    ENTRY( 0x300a, 0x00fa, "CS", "Block Divergence", FUNCDCM_NONE ),
2601
    ENTRY( 0x300a, 0x00fc, "IS", "Block Number", FUNCDCM_NONE ),
2602
    ENTRY( 0x300a, 0x00fe, "LO", "Block Name", FUNCDCM_NONE ),
2603
    ENTRY( 0x300a, 0x0100, "DS", "Block Thickness", FUNCDCM_NONE ),
2604
    ENTRY( 0x300a, 0x0102, "DS", "Block Transmission", FUNCDCM_NONE ),
2605
    ENTRY( 0x300a, 0x0104, "IS", "Block Number of Points", FUNCDCM_NONE ),
2606
    ENTRY( 0x300a, 0x0106, "DS", "Block Data", FUNCDCM_NONE ),
2607
    ENTRY( 0x300a, 0x0107, "SQ", "Applicator Sequence", FUNCDCM_NONE ),
2608
    ENTRY( 0x300a, 0x0108, "SH", "Applicator ID", FUNCDCM_NONE ),
2609
    ENTRY( 0x300a, 0x0109, "CS", "Applicator Type", FUNCDCM_NONE ),
2610
    ENTRY( 0x300a, 0x010a, "LO", "Applicator Description", FUNCDCM_NONE ),
2611
    ENTRY( 0x300a, 0x010c, "DS", "Cumulative Dose Reference Coefficient", FUNCDCM_NONE ),
2612
    ENTRY( 0x300a, 0x010e, "DS", "Final Cumulative Meterset Weight", FUNCDCM_NONE ),
2613
    ENTRY( 0x300a, 0x0110, "IS", "Number of Control Points", FUNCDCM_NONE ),
2614
    ENTRY( 0x300a, 0x0111, "SQ", "Control Point Sequence", FUNCDCM_NONE ),
2615
    ENTRY( 0x300a, 0x0112, "IS", "Control Point Index", FUNCDCM_NONE ),
2616
    ENTRY( 0x300a, 0x0114, "DS", "Nominal Beam Energy", FUNCDCM_NONE ),
2617
    ENTRY( 0x300a, 0x0115, "DS", "Dose Rate Set", FUNCDCM_NONE ),
2618
    ENTRY( 0x300a, 0x0116, "SQ", "Wedge Position Sequence", FUNCDCM_NONE ),
2619
    ENTRY( 0x300a, 0x0118, "CS", "Wedge Position", FUNCDCM_NONE ),
2620
    ENTRY( 0x300a, 0x011a, "SQ", "Beam Limiting Device Position Sequence", FUNCDCM_NONE ),
2621
    ENTRY( 0x300a, 0x011c, "DS", "Leaf Jaw Positions", FUNCDCM_NONE ),
2622
    ENTRY( 0x300a, 0x011e, "DS", "Gantry Angle", FUNCDCM_NONE ),
2623
    ENTRY( 0x300a, 0x011f, "CS", "Gantry Rotation Direction", FUNCDCM_NONE ),
2624
    ENTRY( 0x300a, 0x0120, "DS", "Beam Limiting Device Angle", FUNCDCM_NONE ),
2625
    ENTRY( 0x300a, 0x0121, "CS", "Beam Limiting Device Rotation Direction", FUNCDCM_NONE ),
2626
    ENTRY( 0x300a, 0x0122, "DS", "Patient Support Angle", FUNCDCM_NONE ),
2627
    ENTRY( 0x300a, 0x0123, "CS", "Patient Support Rotation Direction", FUNCDCM_NONE ),
2628
    ENTRY( 0x300a, 0x0124, "DS", "Table Top Eccentric Axis Distance", FUNCDCM_NONE ),
2629
    ENTRY( 0x300a, 0x0125, "DS", "Table Top Eccentric Angle", FUNCDCM_NONE ),
2630
    ENTRY( 0x300a, 0x0126, "CS", "Table Top Eccentric Rotation Direction", FUNCDCM_NONE ),
2631
    ENTRY( 0x300a, 0x0128, "DS", "Table Top Vertical Position", FUNCDCM_NONE ),
2632
    ENTRY( 0x300a, 0x0129, "DS", "Table Top Longitudinal Position", FUNCDCM_NONE ),
2633
    ENTRY( 0x300a, 0x012a, "DS", "Table Top Lateral Position", FUNCDCM_NONE ),
2634
    ENTRY( 0x300a, 0x012c, "DS", "Isocenter Position", FUNCDCM_NONE ),
2635
    ENTRY( 0x300a, 0x012e, "DS", "Surface Entry Point", FUNCDCM_NONE ),
2636
    ENTRY( 0x300a, 0x0130, "DS", "Source to Surface Distance", FUNCDCM_NONE ),
2637
    ENTRY( 0x300a, 0x0134, "DS", "Cumulative Meterset Weight", FUNCDCM_NONE ),
2638
    ENTRY( 0x300a, 0x0180, "SQ", "Patient Setup Sequence", FUNCDCM_NONE ),
2639
    ENTRY( 0x300a, 0x0182, "IS", "Patient Setup Number", FUNCDCM_NONE ),
2640
    ENTRY( 0x300a, 0x0184, "LO", "Patient Additional Position", FUNCDCM_NONE ),
2641
    ENTRY( 0x300a, 0x0190, "SQ", "Fixation Device Sequence", FUNCDCM_NONE ),
2642
    ENTRY( 0x300a, 0x0192, "CS", "Fixation Device Type", FUNCDCM_NONE ),
2643
    ENTRY( 0x300a, 0x0194, "SH", "Fixation Device Label", FUNCDCM_NONE ),
2644
    ENTRY( 0x300a, 0x0196, "ST", "Fixation Device Description", FUNCDCM_NONE ),
2645
    ENTRY( 0x300a, 0x0198, "SH", "Fixation Device Position", FUNCDCM_NONE ),
2646
    ENTRY( 0x300a, 0x01a0, "SQ", "Shielding Device Sequence", FUNCDCM_NONE ),
2647
    ENTRY( 0x300a, 0x01a2, "CS", "Shielding Device Type", FUNCDCM_NONE ),
2648
    ENTRY( 0x300a, 0x01a4, "SH", "Shielding Device Label", FUNCDCM_NONE ),
2649
    ENTRY( 0x300a, 0x01a6, "ST", "Shielding Device Description", FUNCDCM_NONE ),
2650
    ENTRY( 0x300a, 0x01a8, "SH", "Shielding Device Position", FUNCDCM_NONE ),
2651
    ENTRY( 0x300a, 0x01b0, "CS", "Setup Technique", FUNCDCM_NONE ),
2652
    ENTRY( 0x300a, 0x01b2, "ST", "Setup TechniqueDescription", FUNCDCM_NONE ),
2653
    ENTRY( 0x300a, 0x01b4, "SQ", "Setup Device Sequence", FUNCDCM_NONE ),
2654
    ENTRY( 0x300a, 0x01b6, "CS", "Setup Device Type", FUNCDCM_NONE ),
2655
    ENTRY( 0x300a, 0x01b8, "SH", "Setup Device Label", FUNCDCM_NONE ),
2656
    ENTRY( 0x300a, 0x01ba, "ST", "Setup Device Description", FUNCDCM_NONE ),
2657
    ENTRY( 0x300a, 0x01bc, "DS", "Setup Device Parameter", FUNCDCM_NONE ),
2658
    ENTRY( 0x300a, 0x01d0, "ST", "Setup ReferenceDescription", FUNCDCM_NONE ),
2659
    ENTRY( 0x300a, 0x01d2, "DS", "Table Top Vertical Setup Displacement", FUNCDCM_NONE ),
2660
    ENTRY( 0x300a, 0x01d4, "DS", "Table Top Longitudinal Setup Displacement", FUNCDCM_NONE ),
2661
    ENTRY( 0x300a, 0x01d6, "DS", "Table Top Lateral Setup Displacement", FUNCDCM_NONE ),
2662
    ENTRY( 0x300a, 0x0200, "CS", "Brachy Treatment Technique", FUNCDCM_NONE ),
2663
    ENTRY( 0x300a, 0x0202, "CS", "Brachy Treatment Type", FUNCDCM_NONE ),
2664
    ENTRY( 0x300a, 0x0206, "SQ", "Treatment Machine Sequence", FUNCDCM_NONE ),
2665
    ENTRY( 0x300a, 0x0210, "SQ", "Source Sequence", FUNCDCM_NONE ),
2666
    ENTRY( 0x300a, 0x0212, "IS", "Source Number", FUNCDCM_NONE ),
2667
    ENTRY( 0x300a, 0x0214, "CS", "Source Type", FUNCDCM_NONE ),
2668
    ENTRY( 0x300a, 0x0216, "LO", "Source Manufacturer", FUNCDCM_NONE ),
2669
    ENTRY( 0x300a, 0x0218, "DS", "Active Source Diameter", FUNCDCM_NONE ),
2670
    ENTRY( 0x300a, 0x021a, "DS", "Active Source Length", FUNCDCM_NONE ),
2671
    ENTRY( 0x300a, 0x0222, "DS", "Source Encapsulation Nominal Thickness", FUNCDCM_NONE ),
2672
    ENTRY( 0x300a, 0x0224, "DS", "Source Encapsulation Nominal Transmission", FUNCDCM_NONE ),
2673
    ENTRY( 0x300a, 0x0226, "LO", "Source IsotopeName", FUNCDCM_NONE ),
2674
    ENTRY( 0x300a, 0x0228, "DS", "Source Isotope Half Life", FUNCDCM_NONE ),
2675
    ENTRY( 0x300a, 0x022a, "DS", "Reference Air Kerma Rate", FUNCDCM_NONE ),
2676
    ENTRY( 0x300a, 0x022c, "DA", "Air Kerma Rate Reference Date", FUNCDCM_NONE ),
2677
    ENTRY( 0x300a, 0x022e, "TM", "Air Kerma Rate Reference Time", FUNCDCM_NONE ),
2678
    ENTRY( 0x300a, 0x0230, "SQ", "Application Setup Sequence", FUNCDCM_NONE ),
2679
    ENTRY( 0x300a, 0x0232, "CS", "Application Setup Type", FUNCDCM_NONE ),
2680
    ENTRY( 0x300a, 0x0234, "IS", "Application Setup Number", FUNCDCM_NONE ),
2681
    ENTRY( 0x300a, 0x0236, "LO", "Application Setup Name", FUNCDCM_NONE ),
2682
    ENTRY( 0x300a, 0x0238, "LO", "Application Setup Manufacturer", FUNCDCM_NONE ),
2683
    ENTRY( 0x300a, 0x0240, "IS", "Template Number", FUNCDCM_NONE ),
2684
    ENTRY( 0x300a, 0x0242, "SH", "Template Type", FUNCDCM_NONE ),
2685
    ENTRY( 0x300a, 0x0244, "LO", "Template Name", FUNCDCM_NONE ),
2686
    ENTRY( 0x300a, 0x0250, "DS", "Total Reference Air Kerma", FUNCDCM_NONE ),
2687
    ENTRY( 0x300a, 0x0260, "SQ", "Brachy Accessory Device Sequence", FUNCDCM_NONE ),
2688
    ENTRY( 0x300a, 0x0262, "IS", "Brachy Accessory Device Number", FUNCDCM_NONE ),
2689
    ENTRY( 0x300a, 0x0263, "SH", "Brachy Accessory Device ID", FUNCDCM_NONE ),
2690
    ENTRY( 0x300a, 0x0264, "CS", "Brachy Accessory Device Type", FUNCDCM_NONE ),
2691
    ENTRY( 0x300a, 0x0266, "LO", "Brachy Accessory Device Name", FUNCDCM_NONE ),
2692
    ENTRY( 0x300a, 0x026a, "DS", "Brachy Accessory Device Nominal Thickness", FUNCDCM_NONE ),
2693
    ENTRY( 0x300a, 0x026c, "DS", "Brachy Accessory Device Nominal Transmission", FUNCDCM_NONE ),
2694
    ENTRY( 0x300a, 0x0280, "SQ", "Channel Sequence", FUNCDCM_NONE ),
2695
    ENTRY( 0x300a, 0x0282, "IS", "Channel Number", FUNCDCM_NONE ),
2696
    ENTRY( 0x300a, 0x0284, "DS", "Channel Length", FUNCDCM_NONE ),
2697
    ENTRY( 0x300a, 0x0286, "DS", "Channel Total Time", FUNCDCM_NONE ),
2698
    ENTRY( 0x300a, 0x0288, "CS", "Source Movement Type", FUNCDCM_NONE ),
2699
    ENTRY( 0x300a, 0x028a, "IS", "Number of Pulses", FUNCDCM_NONE ),
2700
    ENTRY( 0x300a, 0x028c, "DS", "Pulse Repetition Interval", FUNCDCM_NONE ),
2701
    ENTRY( 0x300a, 0x0290, "IS", "Source Applicator Number", FUNCDCM_NONE ),
2702
    ENTRY( 0x300a, 0x0291, "SH", "Source Applicator ID", FUNCDCM_NONE ),
2703
    ENTRY( 0x300a, 0x0292, "CS", "Source Applicator Type", FUNCDCM_NONE ),
2704
    ENTRY( 0x300a, 0x0294, "LO", "Source Applicator Name", FUNCDCM_NONE ),
2705
    ENTRY( 0x300a, 0x0296, "DS", "Source Applicator Length", FUNCDCM_NONE ),
2706
    ENTRY( 0x300a, 0x0298, "LO", "Source Applicator Manufacturer", FUNCDCM_NONE ),
2707
    ENTRY( 0x300a, 0x029c, "DS", "Source Applicator Wall Nominal Thickness", FUNCDCM_NONE ),
2708
    ENTRY( 0x300a, 0x029e, "DS", "Source Applicator Wall Nominal Transmission", FUNCDCM_NONE ),
2709
    ENTRY( 0x300a, 0x02a0, "DS", "Source Applicator Step Size", FUNCDCM_NONE ),
2710
    ENTRY( 0x300a, 0x02a2, "IS", "Transfer Tube Number", FUNCDCM_NONE ),
2711
    ENTRY( 0x300a, 0x02a4, "DS", "Transfer Tube Length", FUNCDCM_NONE ),
2712
    ENTRY( 0x300a, 0x02b0, "SQ", "Channel Shield Sequence", FUNCDCM_NONE ),
2713
    ENTRY( 0x300a, 0x02b2, "IS", "Channel Shield Number", FUNCDCM_NONE ),
2714
    ENTRY( 0x300a, 0x02b3, "SH", "Channel Shield ID", FUNCDCM_NONE ),
2715
    ENTRY( 0x300a, 0x02b4, "LO", "Channel Shield Name", FUNCDCM_NONE ),
2716
    ENTRY( 0x300a, 0x02b8, "DS", "Channel Shield Nominal Thickness", FUNCDCM_NONE ),
2717
    ENTRY( 0x300a, 0x02ba, "DS", "Channel Shield Nominal Transmission", FUNCDCM_NONE ),
2718
    ENTRY( 0x300a, 0x02c8, "DS", "Final Cumulative Time Weight", FUNCDCM_NONE ),
2719
    ENTRY( 0x300a, 0x02d0, "SQ", "Brachy Control Point Sequence", FUNCDCM_NONE ),
2720
    ENTRY( 0x300a, 0x02d2, "DS", "Control Point Relative Position", FUNCDCM_NONE ),
2721
    ENTRY( 0x300a, 0x02d4, "DS", "Control Point 3D Position", FUNCDCM_NONE ),
2722
    ENTRY( 0x300a, 0x02d6, "DS", "Cumulative Time Weight", FUNCDCM_NONE ),
2723
    ENTRY( 0x300c, 0x0002, "SQ", "Referenced RT Plan Sequence", FUNCDCM_NONE ),
2724
    ENTRY( 0x300c, 0x0004, "SQ", "Referenced Beam Sequence", FUNCDCM_NONE ),
2725
    ENTRY( 0x300c, 0x0006, "IS", "Referenced Beam Number", FUNCDCM_NONE ),
2726
    ENTRY( 0x300c, 0x0007, "IS", "Referenced Reference Image Number", FUNCDCM_NONE ),
2727
    ENTRY( 0x300c, 0x0008, "DS", "Start Cumulative Meterset Weight", FUNCDCM_NONE ),
2728
    ENTRY( 0x300c, 0x0009, "DS", "End Cumulative Meterset Weight", FUNCDCM_NONE ),
2729
    ENTRY( 0x300c, 0x000a, "SQ", "Referenced Brachy Application Setup Sequence", FUNCDCM_NONE ),
2730
    ENTRY( 0x300c, 0x000c, "IS", "Referenced Brachy Application Setup Number", FUNCDCM_NONE ),
2731
    ENTRY( 0x300c, 0x000e, "IS", "Referenced Source Number", FUNCDCM_NONE ),
2732
    ENTRY( 0x300c, 0x0020, "SQ", "Referenced Fraction Group Sequence", FUNCDCM_NONE ),
2733
    ENTRY( 0x300c, 0x0022, "IS", "Referenced Fraction Group Number", FUNCDCM_NONE ),
2734
    ENTRY( 0x300c, 0x0040, "SQ", "Referenced Verification Image Sequence", FUNCDCM_NONE ),
2735
    ENTRY( 0x300c, 0x0042, "SQ", "Referenced Reference Image Sequence", FUNCDCM_NONE ),
2736
    ENTRY( 0x300c, 0x0050, "SQ", "Referenced Dose Reference Sequence", FUNCDCM_NONE ),
2737
    ENTRY( 0x300c, 0x0051, "IS", "Referenced Dose Reference Number", FUNCDCM_NONE ),
2738
    ENTRY( 0x300c, 0x0055, "SQ", "Brachy Referenced Dose Reference Sequence", FUNCDCM_NONE ),
2739
    ENTRY( 0x300c, 0x0060, "SQ", "Referenced Structure Set Sequence", FUNCDCM_NONE ),
2740
    ENTRY( 0x300c, 0x006a, "IS", "Referenced Patient Setup Number", FUNCDCM_NONE ),
2741
    ENTRY( 0x300c, 0x0080, "SQ", "Referenced Dose Sequence", FUNCDCM_NONE ),
2742
    ENTRY( 0x300c, 0x00a0, "IS", "Referenced Tolerance Table Number", FUNCDCM_NONE ),
2743
    ENTRY( 0x300c, 0x00b0, "SQ", "Referenced Bolus Sequence", FUNCDCM_NONE ),
2744
    ENTRY( 0x300c, 0x00c0, "IS", "Referenced Wedge Number", FUNCDCM_NONE ),
2745
    ENTRY( 0x300c, 0x00d0, "IS", "Referenced Compensato rNumber", FUNCDCM_NONE ),
2746
    ENTRY( 0x300c, 0x00e0, "IS", "Referenced Block Number", FUNCDCM_NONE ),
2747
    ENTRY( 0x300c, 0x00f0, "IS", "Referenced Control Point", FUNCDCM_NONE ),
2748
    ENTRY( 0x300e, 0x0002, "CS", "Approval Status", FUNCDCM_NONE ),
2749
    ENTRY( 0x300e, 0x0004, "DA", "Review Date", FUNCDCM_NONE ),
2750
    ENTRY( 0x300e, 0x0005, "TM", "Review Time", FUNCDCM_NONE ),
2751
    ENTRY( 0x300e, 0x0008, "PN", "Reviewer Name", FUNCDCM_NONE ),
2752
    ENTRY( 0x4000, 0x0000, "UL", "Text Group Length", FUNCDCM_NONE ),
2753
    ENTRY( 0x4000, 0x0010, "LT", "Text Arbitrary", FUNCDCM_NONE ),
2754
    ENTRY( 0x4000, 0x4000, "LT", "Text Comments", FUNCDCM_NONE ),
2755
    ENTRY( 0x4008, 0x0000, "UL", "Results Group Length", FUNCDCM_NONE ),
2756
    ENTRY( 0x4008, 0x0040, "SH", "Results ID", FUNCDCM_NONE ),
2757
    ENTRY( 0x4008, 0x0042, "LO", "Results ID Issuer", FUNCDCM_NONE ),
2758
    ENTRY( 0x4008, 0x0050, "SQ", "Referenced Interpretation Sequence", FUNCDCM_NONE ),
2759
    ENTRY( 0x4008, 0x00ff, "CS", "Report Production Status", FUNCDCM_NONE ),
2760
    ENTRY( 0x4008, 0x0100, "DA", "Interpretation Recorded Date", FUNCDCM_NONE ),
2761
    ENTRY( 0x4008, 0x0101, "TM", "Interpretation Recorded Time", FUNCDCM_NONE ),
2762
    ENTRY( 0x4008, 0x0102, "PN", "Interpretation Recorder", FUNCDCM_NONE ),
2763
    ENTRY( 0x4008, 0x0103, "LO", "Reference to Recorded Sound", FUNCDCM_NONE ),
2764
    ENTRY( 0x4008, 0x0108, "DA", "Interpretation Transcription Date", FUNCDCM_NONE ),
2765
    ENTRY( 0x4008, 0x0109, "TM", "Interpretation Transcription Time", FUNCDCM_NONE ),
2766
    ENTRY( 0x4008, 0x010a, "PN", "Interpretation Transcriber", FUNCDCM_NONE ),
2767
    ENTRY( 0x4008, 0x010b, "ST", "Interpretation Text", FUNCDCM_NONE ),
2768
    ENTRY( 0x4008, 0x010c, "PN", "Interpretation Author", FUNCDCM_NONE ),
2769
    ENTRY( 0x4008, 0x0111, "SQ", "Interpretation Approver Sequence", FUNCDCM_NONE ),
2770
    ENTRY( 0x4008, 0x0112, "DA", "Interpretation Approval Date", FUNCDCM_NONE ),
2771
    ENTRY( 0x4008, 0x0113, "TM", "Interpretation Approval Time", FUNCDCM_NONE ),
2772
    ENTRY( 0x4008, 0x0114, "PN", "Physician Approving Interpretation", FUNCDCM_NONE ),
2773
    ENTRY( 0x4008, 0x0115, "LT", "Interpretation Diagnosis Description", FUNCDCM_NONE ),
2774
    ENTRY( 0x4008, 0x0117, "SQ", "InterpretationDiagnosis Code Sequence", FUNCDCM_NONE ),
2775
    ENTRY( 0x4008, 0x0118, "SQ", "Results Distribution List Sequence", FUNCDCM_NONE ),
2776
    ENTRY( 0x4008, 0x0119, "PN", "Distribution Name", FUNCDCM_NONE ),
2777
    ENTRY( 0x4008, 0x011a, "LO", "Distribution Address", FUNCDCM_NONE ),
2778
    ENTRY( 0x4008, 0x0200, "SH", "Interpretation ID", FUNCDCM_NONE ),
2779
    ENTRY( 0x4008, 0x0202, "LO", "Interpretation ID Issuer", FUNCDCM_NONE ),
2780
    ENTRY( 0x4008, 0x0210, "CS", "Interpretation Type ID", FUNCDCM_NONE ),
2781
    ENTRY( 0x4008, 0x0212, "CS", "Interpretation Status ID", FUNCDCM_NONE ),
2782
    ENTRY( 0x4008, 0x0300, "ST", "Impressions", FUNCDCM_NONE ),
2783
    ENTRY( 0x4008, 0x4000, "ST", "Results Comments", FUNCDCM_NONE ),
2784
    ENTRY( 0x4009, 0x0001, "LT", "Report ID", FUNCDCM_NONE ),
2785
    ENTRY( 0x4009, 0x0020, "LT", "Report Status", FUNCDCM_NONE ),
2786
    ENTRY( 0x4009, 0x0030, "DA", "Report Creation Date", FUNCDCM_NONE ),
2787
    ENTRY( 0x4009, 0x0070, "LT", "Report Approving Physician", FUNCDCM_NONE ),
2788
    ENTRY( 0x4009, 0x00e0, "LT", "Report Text", FUNCDCM_NONE ),
2789
    ENTRY( 0x4009, 0x00e1, "LT", "Report Author", FUNCDCM_NONE ),
2790
    ENTRY( 0x4009, 0x00e3, "LT", "Reporting Radiologist", FUNCDCM_NONE ),
2791
    ENTRY( 0x5000, 0x0000, "UL", "Curve Group Length", FUNCDCM_NONE ),
2792
    ENTRY( 0x5000, 0x0005, "US", "Curve Dimensions", FUNCDCM_NONE ),
2793
    ENTRY( 0x5000, 0x0010, "US", "Number of Points", FUNCDCM_NONE ),
2794
    ENTRY( 0x5000, 0x0020, "CS", "Type of Data", FUNCDCM_NONE ),
2795
    ENTRY( 0x5000, 0x0022, "LO", "Curve Description", FUNCDCM_NONE ),
2796
    ENTRY( 0x5000, 0x0030, "SH", "Axis Units", FUNCDCM_NONE ),
2797
    ENTRY( 0x5000, 0x0040, "SH", "Axis Labels", FUNCDCM_NONE ),
2798
    ENTRY( 0x5000, 0x0103, "US", "Data Value Representation", FUNCDCM_NONE ),
2799
    ENTRY( 0x5000, 0x0104, "US", "Minimum Coordinate Value", FUNCDCM_NONE ),
2800
    ENTRY( 0x5000, 0x0105, "US", "Maximum Coordinate Value", FUNCDCM_NONE ),
2801
    ENTRY( 0x5000, 0x0106, "SH", "Curve Range", FUNCDCM_NONE ),
2802
    ENTRY( 0x5000, 0x0110, "US", "Curve Data Descriptor", FUNCDCM_NONE ),
2803
    ENTRY( 0x5000, 0x0112, "US", "Coordinate Start Value", FUNCDCM_NONE ),
2804
    ENTRY( 0x5000, 0x0114, "US", "Coordinate Step Value", FUNCDCM_NONE ),
2805
    ENTRY( 0x5000, 0x1001, "CS", "Curve Activation Layer", FUNCDCM_NONE ),
2806
    ENTRY( 0x5000, 0x2000, "US", "Audio Type", FUNCDCM_NONE ),
2807
    ENTRY( 0x5000, 0x2002, "US", "Audio Sample Format", FUNCDCM_NONE ),
2808
    ENTRY( 0x5000, 0x2004, "US", "Number of Channels", FUNCDCM_NONE ),
2809
    ENTRY( 0x5000, 0x2006, "UL", "Number of Samples", FUNCDCM_NONE ),
2810
    ENTRY( 0x5000, 0x2008, "UL", "Sample Rate", FUNCDCM_NONE ),
2811
    ENTRY( 0x5000, 0x200a, "UL", "Total Time", FUNCDCM_NONE ),
2812
    ENTRY( 0x5000, 0x200c, "xs", "Audio Sample Data", FUNCDCM_NONE ),
2813
    ENTRY( 0x5000, 0x200e, "LT", "Audio Comments", FUNCDCM_NONE ),
2814
    ENTRY( 0x5000, 0x2500, "LO", "Curve Label", FUNCDCM_NONE ),
2815
    ENTRY( 0x5000, 0x2600, "SQ", "CurveReferenced Overlay Sequence", FUNCDCM_NONE ),
2816
    ENTRY( 0x5000, 0x2610, "US", "CurveReferenced Overlay Group", FUNCDCM_NONE ),
2817
    ENTRY( 0x5000, 0x3000, "OW", "Curve Data", FUNCDCM_NONE ),
2818
    ENTRY( 0x6000, 0x0000, "UL", "Overlay Group Length", FUNCDCM_NONE ),
2819
    ENTRY( 0x6000, 0x0001, "US", "Gray Palette Color Lookup Table Descriptor", FUNCDCM_NONE ),
2820
    ENTRY( 0x6000, 0x0002, "US", "Gray Palette Color Lookup Table Data", FUNCDCM_NONE ),
2821
    ENTRY( 0x6000, 0x0010, "US", "Overlay Rows", FUNCDCM_NONE ),
2822
    ENTRY( 0x6000, 0x0011, "US", "Overlay Columns", FUNCDCM_NONE ),
2823
    ENTRY( 0x6000, 0x0012, "US", "Overlay Planes", FUNCDCM_NONE ),
2824
    ENTRY( 0x6000, 0x0015, "IS", "Number of Frames in Overlay", FUNCDCM_NONE ),
2825
    ENTRY( 0x6000, 0x0022, "LO", "Overlay Description", FUNCDCM_NONE ),
2826
    ENTRY( 0x6000, 0x0040, "CS", "Overlay Type", FUNCDCM_NONE ),
2827
    ENTRY( 0x6000, 0x0045, "CS", "Overlay Subtype", FUNCDCM_NONE ),
2828
    ENTRY( 0x6000, 0x0050, "SS", "Overlay Origin", FUNCDCM_NONE ),
2829
    ENTRY( 0x6000, 0x0051, "US", "Image Frame Origin", FUNCDCM_NONE ),
2830
    ENTRY( 0x6000, 0x0052, "US", "Plane Origin", FUNCDCM_NONE ),
2831
    ENTRY( 0x6000, 0x0060, "LO", "Overlay Compression Code", FUNCDCM_NONE ),
2832
    ENTRY( 0x6000, 0x0061, "SH", "Overlay Compression Originator", FUNCDCM_NONE ),
2833
    ENTRY( 0x6000, 0x0062, "SH", "Overlay Compression Label", FUNCDCM_NONE ),
2834
    ENTRY( 0x6000, 0x0063, "SH", "Overlay Compression Description", FUNCDCM_NONE ),
2835
    ENTRY( 0x6000, 0x0066, "AT", "Overlay Compression Step Pointers", FUNCDCM_NONE ),
2836
    ENTRY( 0x6000, 0x0068, "US", "Overlay Repeat Interval", FUNCDCM_NONE ),
2837
    ENTRY( 0x6000, 0x0069, "US", "Overlay Bits Grouped", FUNCDCM_NONE ),
2838
    ENTRY( 0x6000, 0x0100, "US", "Overlay Bits Allocated", FUNCDCM_NONE ),
2839
    ENTRY( 0x6000, 0x0102, "US", "Overlay Bit Position", FUNCDCM_NONE ),
2840
    ENTRY( 0x6000, 0x0110, "LO", "Overlay Format", FUNCDCM_NONE ),
2841
    ENTRY( 0x6000, 0x0200, "xs", "Overlay Location", FUNCDCM_NONE ),
2842
    ENTRY( 0x6000, 0x0800, "LO", "Overlay Code Label", FUNCDCM_NONE ),
2843
    ENTRY( 0x6000, 0x0802, "US", "Overlay Number of Tables", FUNCDCM_NONE ),
2844
    ENTRY( 0x6000, 0x0803, "AT", "Overlay Code Table Location", FUNCDCM_NONE ),
2845
    ENTRY( 0x6000, 0x0804, "US", "Overlay Bits For Code Word", FUNCDCM_NONE ),
2846
    ENTRY( 0x6000, 0x1001, "CS", "Overlay Activation Layer", FUNCDCM_NONE ),
2847
    ENTRY( 0x6000, 0x1100, "US", "Overlay Descriptor - Gray", FUNCDCM_NONE ),
2848
    ENTRY( 0x6000, 0x1101, "US", "Overlay Descriptor - Red", FUNCDCM_NONE ),
2849
    ENTRY( 0x6000, 0x1102, "US", "Overlay Descriptor - Green", FUNCDCM_NONE ),
2850
    ENTRY( 0x6000, 0x1103, "US", "Overlay Descriptor - Blue", FUNCDCM_NONE ),
2851
    ENTRY( 0x6000, 0x1200, "US", "Overlays - Gray", FUNCDCM_NONE ),
2852
    ENTRY( 0x6000, 0x1201, "US", "Overlays - Red", FUNCDCM_NONE ),
2853
    ENTRY( 0x6000, 0x1202, "US", "Overlays - Green", FUNCDCM_NONE ),
2854
    ENTRY( 0x6000, 0x1203, "US", "Overlays - Blue", FUNCDCM_NONE ),
2855
    ENTRY( 0x6000, 0x1301, "IS", "ROI Area", FUNCDCM_NONE ),
2856
    ENTRY( 0x6000, 0x1302, "DS", "ROI Mean", FUNCDCM_NONE ),
2857
    ENTRY( 0x6000, 0x1303, "DS", "ROI Standard Deviation", FUNCDCM_NONE ),
2858
    ENTRY( 0x6000, 0x1500, "LO", "Overlay Label", FUNCDCM_NONE ),
2859
    ENTRY( 0x6000, 0x3000, "OW", "Overlay Data", FUNCDCM_NONE ),
2860
    ENTRY( 0x6000, 0x4000, "LT", "Overlay Comments", FUNCDCM_NONE ),
2861
    ENTRY( 0x6001, 0x0000, "UN", "?", FUNCDCM_NONE ),
2862
    ENTRY( 0x6001, 0x0010, "LO", "?", FUNCDCM_NONE ),
2863
    ENTRY( 0x6001, 0x1010, "xs", "?", FUNCDCM_NONE ),
2864
    ENTRY( 0x6001, 0x1030, "xs", "?", FUNCDCM_NONE ),
2865
    ENTRY( 0x6021, 0x0000, "xs", "?", FUNCDCM_NONE ),
2866
    ENTRY( 0x6021, 0x0010, "xs", "?", FUNCDCM_NONE ),
2867
    ENTRY( 0x7001, 0x0010, "LT", "Dummy", FUNCDCM_NONE ),
2868
    ENTRY( 0x7003, 0x0010, "LT", "Info", FUNCDCM_NONE ),
2869
    ENTRY( 0x7005, 0x0010, "LT", "Dummy", FUNCDCM_NONE ),
2870
    ENTRY( 0x7000, 0x0004, "ST", "TextAnnotation", FUNCDCM_NONE ),
2871
    ENTRY( 0x7000, 0x0005, "IS", "Box", FUNCDCM_NONE ),
2872
    ENTRY( 0x7000, 0x0007, "IS", "ArrowEnd", FUNCDCM_NONE ),
2873
    ENTRY( 0x7fe0, 0x0000, "UL", "Pixel Data Group Length", FUNCDCM_NONE ),
2874
    ENTRY( 0x7fe0, 0x0010, "xs", "Pixel Data", FUNCDCM_NONE ),
2875
    ENTRY( 0x7fe0, 0x0020, "OW", "Coefficients SDVN", FUNCDCM_NONE ),
2876
    ENTRY( 0x7fe0, 0x0030, "OW", "Coefficients SDHN", FUNCDCM_NONE ),
2877
    ENTRY( 0x7fe0, 0x0040, "OW", "Coefficients SDDN", FUNCDCM_NONE ),
2878
    ENTRY( 0x7fe1, 0x0010, "xs", "Pixel Data", FUNCDCM_NONE ),
2879
    ENTRY( 0x7f00, 0x0000, "UL", "Variable Pixel Data Group Length", FUNCDCM_NONE ),
2880
    ENTRY( 0x7f00, 0x0010, "xs", "Variable Pixel Data", FUNCDCM_NONE ),
2881
    ENTRY( 0x7f00, 0x0011, "US", "Variable Next Data Group", FUNCDCM_NONE ),
2882
    ENTRY( 0x7f00, 0x0020, "OW", "Variable Coefficients SDVN", FUNCDCM_NONE ),
2883
    ENTRY( 0x7f00, 0x0030, "OW", "Variable Coefficients SDHN", FUNCDCM_NONE ),
2884
    ENTRY( 0x7f00, 0x0040, "OW", "Variable Coefficients SDDN", FUNCDCM_NONE ),
2885
    ENTRY( 0x7fe1, 0x0000, "OB", "Binary Data", FUNCDCM_NONE ),
2886
    ENTRY( 0x7fe3, 0x0000, "LT", "Image Graphics Format Code", FUNCDCM_NONE ),
2887
    ENTRY( 0x7fe3, 0x0010, "OB", "Image Graphics", FUNCDCM_NONE ),
2888
    ENTRY( 0x7fe3, 0x0020, "OB", "Image Graphics Dummy", FUNCDCM_NONE ),
2889
    ENTRY( 0x7ff1, 0x0001, "US", "?", FUNCDCM_NONE ),
2890
    ENTRY( 0x7ff1, 0x0002, "US", "?", FUNCDCM_NONE ),
2891
    ENTRY( 0x7ff1, 0x0003, "xs", "?", FUNCDCM_NONE ),
2892
    ENTRY( 0x7ff1, 0x0004, "IS", "?", FUNCDCM_NONE ),
2893
    ENTRY( 0x7ff1, 0x0005, "US", "?", FUNCDCM_NONE ),
2894
    ENTRY( 0x7ff1, 0x0007, "US", "?", FUNCDCM_NONE ),
2895
    ENTRY( 0x7ff1, 0x0008, "US", "?", FUNCDCM_NONE ),
2896
    ENTRY( 0x7ff1, 0x0009, "US", "?", FUNCDCM_NONE ),
2897
    ENTRY( 0x7ff1, 0x000a, "LT", "?", FUNCDCM_NONE ),
2898
    ENTRY( 0x7ff1, 0x000b, "US", "?", FUNCDCM_NONE ),
2899
    ENTRY( 0x7ff1, 0x000c, "US", "?", FUNCDCM_NONE ),
2900
    ENTRY( 0x7ff1, 0x000d, "US", "?", FUNCDCM_NONE ),
2901
    ENTRY( 0x7ff1, 0x0010, "US", "?", FUNCDCM_NONE ),
2902
    ENTRY( 0xfffc, 0xfffc, "OB", "Data Set Trailing Padding", FUNCDCM_NONE ),
2903
    ENTRY( 0xfffe, 0xe000, "!!", "Item", FUNCDCM_NONE ),
2904
    ENTRY( 0xfffe, 0xe00d, "!!", "Item Delimitation Item", FUNCDCM_NONE ),
2905
    ENTRY( 0xfffe, 0xe0dd, "!!", "Sequence Delimitation Item", FUNCDCM_NONE ),
2906
    ENTRY( 0xffff, 0xffff, "xs", "", FUNCDCM_NONE )
2907
  };
2908
2909
#if DESCRIPION_STR
2910
static const char dicom_descriptions[] =
2911
    "Group Length\0" /* 0, 0x0000, 0x0000 */
2912
    "Command Length to End\0" /* 1, 0x0000, 0x0001 */
2913
    "Affected SOP Class UID\0" /* 2, 0x0000, 0x0002 */
2914
    "Requested SOP Class UID\0" /* 3, 0x0000, 0x0003 */
2915
    "Command Recognition Code\0" /* 4, 0x0000, 0x0010 */
2916
    "Command Field\0" /* 5, 0x0000, 0x0100 */
2917
    "Message ID\0" /* 6, 0x0000, 0x0110 */
2918
    "Message ID Being Responded To\0" /* 7, 0x0000, 0x0120 */
2919
    "Initiator\0" /* 8, 0x0000, 0x0200 */
2920
    "Receiver\0" /* 9, 0x0000, 0x0300 */
2921
    "Find Location\0" /* 10, 0x0000, 0x0400 */
2922
    "Move Destination\0" /* 11, 0x0000, 0x0600 */
2923
    "Priority\0" /* 12, 0x0000, 0x0700 */
2924
    "Data Set Type\0" /* 13, 0x0000, 0x0800 */
2925
    "Number of Matches\0" /* 14, 0x0000, 0x0850 */
2926
    "Response Sequence Number\0" /* 15, 0x0000, 0x0860 */
2927
    "Status\0" /* 16, 0x0000, 0x0900 */
2928
    "Offending Element\0" /* 17, 0x0000, 0x0901 */
2929
    "Exception Comment\0" /* 18, 0x0000, 0x0902 */
2930
    "Exception ID\0" /* 19, 0x0000, 0x0903 */
2931
    "Affected SOP Instance UID\0" /* 20, 0x0000, 0x1000 */
2932
    "Requested SOP Instance UID\0" /* 21, 0x0000, 0x1001 */
2933
    "Event Type ID\0" /* 22, 0x0000, 0x1002 */
2934
    "Attribute Identifier List\0" /* 23, 0x0000, 0x1005 */
2935
    "Action Type ID\0" /* 24, 0x0000, 0x1008 */
2936
    "Number of Remaining Suboperations\0" /* 25, 0x0000, 0x1020 */
2937
    "Number of Completed Suboperations\0" /* 26, 0x0000, 0x1021 */
2938
    "Number of Failed Suboperations\0" /* 27, 0x0000, 0x1022 */
2939
    "Number of Warning Suboperations\0" /* 28, 0x0000, 0x1023 */
2940
    "Move Originator Application Entity Title\0" /* 29, 0x0000, 0x1030 */
2941
    "Move Originator Message ID\0" /* 30, 0x0000, 0x1031 */
2942
    "Dialog Receiver\0" /* 31, 0x0000, 0x4000 */
2943
    "Terminal Type\0" /* 32, 0x0000, 0x4010 */
2944
    "Message Set ID\0" /* 33, 0x0000, 0x5010 */
2945
    "End Message Set\0" /* 34, 0x0000, 0x5020 */
2946
    "Display Format\0" /* 35, 0x0000, 0x5110 */
2947
    "Page Position ID\0" /* 36, 0x0000, 0x5120 */
2948
    "Text Format ID\0" /* 37, 0x0000, 0x5130 */
2949
    "Normal Reverse\0" /* 38, 0x0000, 0x5140 */
2950
    "Add Gray Scale\0" /* 39, 0x0000, 0x5150 */
2951
    "Borders\0" /* 40, 0x0000, 0x5160 */
2952
    "Copies\0" /* 41, 0x0000, 0x5170 */
2953
    "OldMagnificationType\0" /* 42, 0x0000, 0x5180 */
2954
    "Erase\0" /* 43, 0x0000, 0x5190 */
2955
    "Print\0" /* 44, 0x0000, 0x51a0 */
2956
    "Overlays\0" /* 45, 0x0000, 0x51b0 */
2957
    "Meta Element Group Length\0" /* 46, 0x0002, 0x0000 */
2958
    "File Meta Information Version\0" /* 47, 0x0002, 0x0001 */
2959
    "Media Storage SOP Class UID\0" /* 48, 0x0002, 0x0002 */
2960
    "Media Storage SOP Instance UID\0" /* 49, 0x0002, 0x0003 */
2961
    "Transfer Syntax UID\0" /* 50, 0x0002, 0x0010 */
2962
    "Implementation Class UID\0" /* 51, 0x0002, 0x0012 */
2963
    "Implementation Version Name\0" /* 52, 0x0002, 0x0013 */
2964
    "Source Application Entity Title\0" /* 53, 0x0002, 0x0016 */
2965
    "Private Information Creator UID\0" /* 54, 0x0002, 0x0100 */
2966
    "Private Information\0" /* 55, 0x0002, 0x0102 */
2967
    "?\0" /* 56, 0x0003, 0x0000 */
2968
    "ISI Command Field\0" /* 57, 0x0003, 0x0008 */
2969
    "Attach ID Application Code\0" /* 58, 0x0003, 0x0011 */
2970
    "Attach ID Message Count\0" /* 59, 0x0003, 0x0012 */
2971
    "Attach ID Date\0" /* 60, 0x0003, 0x0013 */
2972
    "Attach ID Time\0" /* 61, 0x0003, 0x0014 */
2973
    "Message Type\0" /* 62, 0x0003, 0x0020 */
2974
    "Max Waiting Date\0" /* 63, 0x0003, 0x0030 */
2975
    "Max Waiting Time\0" /* 64, 0x0003, 0x0031 */
2976
    "File Set Group Length\0" /* 65, 0x0004, 0x0000 */
2977
    "File Set ID\0" /* 66, 0x0004, 0x1130 */
2978
    "File Set Descriptor File ID\0" /* 67, 0x0004, 0x1141 */
2979
    "File Set Descriptor File Specific Character Set\0" /* 68, 0x0004, 0x1142 */
2980
    "Root Directory Entity First Directory Record Offset\0" /* 69, 0x0004, 0x1200 */
2981
    "Root Directory Entity Last Directory Record Offset\0" /* 70, 0x0004, 0x1202 */
2982
    "File Set Consistency Flag\0" /* 71, 0x0004, 0x1212 */
2983
    "Directory Record Sequence\0" /* 72, 0x0004, 0x1220 */
2984
    "Next Directory Record Offset\0" /* 73, 0x0004, 0x1400 */
2985
    "Record In Use Flag\0" /* 74, 0x0004, 0x1410 */
2986
    "Referenced Lower Level Directory Entity Offset\0" /* 75, 0x0004, 0x1420 */
2987
    "Directory Record Type\0" /* 76, 0x0004, 0x1430 */
2988
    "Private Record UID\0" /* 77, 0x0004, 0x1432 */
2989
    "Referenced File ID\0" /* 78, 0x0004, 0x1500 */
2990
    "MRDR Directory Record Offset\0" /* 79, 0x0004, 0x1504 */
2991
    "Referenced SOP Class UID In File\0" /* 80, 0x0004, 0x1510 */
2992
    "Referenced SOP Instance UID In File\0" /* 81, 0x0004, 0x1511 */
2993
    "Referenced Transfer Syntax UID In File\0" /* 82, 0x0004, 0x1512 */
2994
    "Number of References\0" /* 83, 0x0004, 0x1600 */
2995
    "?\0" /* 84, 0x0005, 0x0000 */
2996
    "?\0" /* 85, 0x0006, 0x0000 */
2997
    "Identifying Group Length\0" /* 86, 0x0008, 0x0000 */
2998
    "Length to End\0" /* 87, 0x0008, 0x0001 */
2999
    "Specific Character Set\0" /* 88, 0x0008, 0x0005 */
3000
    "Image Type\0" /* 89, 0x0008, 0x0008 */
3001
    "Recognition Code\0" /* 90, 0x0008, 0x0010 */
3002
    "Instance Creation Date\0" /* 91, 0x0008, 0x0012 */
3003
    "Instance Creation Time\0" /* 92, 0x0008, 0x0013 */
3004
    "Instance Creator UID\0" /* 93, 0x0008, 0x0014 */
3005
    "SOP Class UID\0" /* 94, 0x0008, 0x0016 */
3006
    "SOP Instance UID\0" /* 95, 0x0008, 0x0018 */
3007
    "Study Date\0" /* 96, 0x0008, 0x0020 */
3008
    "Series Date\0" /* 97, 0x0008, 0x0021 */
3009
    "Acquisition Date\0" /* 98, 0x0008, 0x0022 */
3010
    "Image Date\0" /* 99, 0x0008, 0x0023 */
3011
    "Overlay Date\0" /* 100, 0x0008, 0x0024 */
3012
    "Curve Date\0" /* 101, 0x0008, 0x0025 */
3013
    "Study Time\0" /* 102, 0x0008, 0x0030 */
3014
    "Series Time\0" /* 103, 0x0008, 0x0031 */
3015
    "Acquisition Time\0" /* 104, 0x0008, 0x0032 */
3016
    "Image Time\0" /* 105, 0x0008, 0x0033 */
3017
    "Overlay Time\0" /* 106, 0x0008, 0x0034 */
3018
    "Curve Time\0" /* 107, 0x0008, 0x0035 */
3019
    "Old Data Set Type\0" /* 108, 0x0008, 0x0040 */
3020
    "Old Data Set Subtype\0" /* 109, 0x0008, 0x0041 */
3021
    "Nuclear Medicine Series Type\0" /* 110, 0x0008, 0x0042 */
3022
    "Accession Number\0" /* 111, 0x0008, 0x0050 */
3023
    "Query/Retrieve Level\0" /* 112, 0x0008, 0x0052 */
3024
    "Retrieve AE Title\0" /* 113, 0x0008, 0x0054 */
3025
    "Failed SOP Instance UID List\0" /* 114, 0x0008, 0x0058 */
3026
    "Modality\0" /* 115, 0x0008, 0x0060 */
3027
    "Modality Subtype\0" /* 116, 0x0008, 0x0062 */
3028
    "Conversion Type\0" /* 117, 0x0008, 0x0064 */
3029
    "Presentation Intent Type\0" /* 118, 0x0008, 0x0068 */
3030
    "Manufacturer\0" /* 119, 0x0008, 0x0070 */
3031
    "Institution Name\0" /* 120, 0x0008, 0x0080 */
3032
    "Institution Address\0" /* 121, 0x0008, 0x0081 */
3033
    "Institution Code Sequence\0" /* 122, 0x0008, 0x0082 */
3034
    "Referring Physician's Name\0" /* 123, 0x0008, 0x0090 */
3035
    "Referring Physician's Address\0" /* 124, 0x0008, 0x0092 */
3036
    "Referring Physician's Telephone Numbers\0" /* 125, 0x0008, 0x0094 */
3037
    "Code Value\0" /* 126, 0x0008, 0x0100 */
3038
    "Coding Scheme Designator\0" /* 127, 0x0008, 0x0102 */
3039
    "Coding Scheme Version\0" /* 128, 0x0008, 0x0103 */
3040
    "Code Meaning\0" /* 129, 0x0008, 0x0104 */
3041
    "Mapping Resource\0" /* 130, 0x0008, 0x0105 */
3042
    "Context Group Version\0" /* 131, 0x0008, 0x0106 */
3043
    "Code Set Extension Flag\0" /* 132, 0x0008, 0x010b */
3044
    "Private Coding Scheme Creator UID\0" /* 133, 0x0008, 0x010c */
3045
    "Code Set Extension Creator UID\0" /* 134, 0x0008, 0x010d */
3046
    "Context Identifier\0" /* 135, 0x0008, 0x010f */
3047
    "Network ID\0" /* 136, 0x0008, 0x1000 */
3048
    "Station Name\0" /* 137, 0x0008, 0x1010 */
3049
    "Study Description\0" /* 138, 0x0008, 0x1030 */
3050
    "Procedure Code Sequence\0" /* 139, 0x0008, 0x1032 */
3051
    "Series Description\0" /* 140, 0x0008, 0x103e */
3052
    "Institutional Department Name\0" /* 141, 0x0008, 0x1040 */
3053
    "Physician of Record\0" /* 142, 0x0008, 0x1048 */
3054
    "Performing Physician's Name\0" /* 143, 0x0008, 0x1050 */
3055
    "Name of Physician(s) Reading Study\0" /* 144, 0x0008, 0x1060 */
3056
    "Operator's Name\0" /* 145, 0x0008, 0x1070 */
3057
    "Admitting Diagnosis Description\0" /* 146, 0x0008, 0x1080 */
3058
    "Admitting Diagnosis Code Sequence\0" /* 147, 0x0008, 0x1084 */
3059
    "Manufacturer's Model Name\0" /* 148, 0x0008, 0x1090 */
3060
    "Referenced Results Sequence\0" /* 149, 0x0008, 0x1100 */
3061
    "Referenced Study Sequence\0" /* 150, 0x0008, 0x1110 */
3062
    "Referenced Study Component Sequence\0" /* 151, 0x0008, 0x1111 */
3063
    "Referenced Series Sequence\0" /* 152, 0x0008, 0x1115 */
3064
    "Referenced Patient Sequence\0" /* 153, 0x0008, 0x1120 */
3065
    "Referenced Visit Sequence\0" /* 154, 0x0008, 0x1125 */
3066
    "Referenced Overlay Sequence\0" /* 155, 0x0008, 0x1130 */
3067
    "Referenced Image Sequence\0" /* 156, 0x0008, 0x1140 */
3068
    "Referenced Curve Sequence\0" /* 157, 0x0008, 0x1145 */
3069
    "Referenced Previous Waveform\0" /* 158, 0x0008, 0x1148 */
3070
    "Referenced Simultaneous Waveforms\0" /* 159, 0x0008, 0x114a */
3071
    "Referenced Subsequent Waveform\0" /* 160, 0x0008, 0x114c */
3072
    "Referenced SOP Class UID\0" /* 161, 0x0008, 0x1150 */
3073
    "Referenced SOP Instance UID\0" /* 162, 0x0008, 0x1155 */
3074
    "Referenced Frame Number\0" /* 163, 0x0008, 0x1160 */
3075
    "Transaction UID\0" /* 164, 0x0008, 0x1195 */
3076
    "Failure Reason\0" /* 165, 0x0008, 0x1197 */
3077
    "Failed SOP Sequence\0" /* 166, 0x0008, 0x1198 */
3078
    "Referenced SOP Sequence\0" /* 167, 0x0008, 0x1199 */
3079
    "Old Lossy Image Compression\0" /* 168, 0x0008, 0x2110 */
3080
    "Derivation Description\0" /* 169, 0x0008, 0x2111 */
3081
    "Source Image Sequence\0" /* 170, 0x0008, 0x2112 */
3082
    "Stage Name\0" /* 171, 0x0008, 0x2120 */
3083
    "Stage Number\0" /* 172, 0x0008, 0x2122 */
3084
    "Number of Stages\0" /* 173, 0x0008, 0x2124 */
3085
    "View Number\0" /* 174, 0x0008, 0x2128 */
3086
    "Number of Event Timers\0" /* 175, 0x0008, 0x2129 */
3087
    "Number of Views in Stage\0" /* 176, 0x0008, 0x212a */
3088
    "Event Elapsed Time(s)\0" /* 177, 0x0008, 0x2130 */
3089
    "Event Timer Name(s)\0" /* 178, 0x0008, 0x2132 */
3090
    "Start Trim\0" /* 179, 0x0008, 0x2142 */
3091
    "Stop Trim\0" /* 180, 0x0008, 0x2143 */
3092
    "Recommended Display Frame Rate\0" /* 181, 0x0008, 0x2144 */
3093
    "Transducer Position\0" /* 182, 0x0008, 0x2200 */
3094
    "Transducer Orientation\0" /* 183, 0x0008, 0x2204 */
3095
    "Anatomic Structure\0" /* 184, 0x0008, 0x2208 */
3096
    "Anatomic Region Sequence\0" /* 185, 0x0008, 0x2218 */
3097
    "Anatomic Region Modifier Sequence\0" /* 186, 0x0008, 0x2220 */
3098
    "Primary Anatomic Structure Sequence\0" /* 187, 0x0008, 0x2228 */
3099
    "Primary Anatomic Structure Modifier Sequence\0" /* 188, 0x0008, 0x2230 */
3100
    "Transducer Position Sequence\0" /* 189, 0x0008, 0x2240 */
3101
    "Transducer Position Modifier Sequence\0" /* 190, 0x0008, 0x2242 */
3102
    "Transducer Orientation Sequence\0" /* 191, 0x0008, 0x2244 */
3103
    "Transducer Orientation Modifier Sequence\0" /* 192, 0x0008, 0x2246 */
3104
    "Anatomic Structure Space Or Region Code Sequence\0" /* 193, 0x0008, 0x2251 */
3105
    "Anatomic Portal Of Entrance Code Sequence\0" /* 194, 0x0008, 0x2253 */
3106
    "Anatomic Approach Direction Code Sequence\0" /* 195, 0x0008, 0x2255 */
3107
    "Anatomic Perspective Description\0" /* 196, 0x0008, 0x2256 */
3108
    "Anatomic Perspective Code Sequence\0" /* 197, 0x0008, 0x2257 */
3109
    "Anatomic Location Of Examining Instrument Description\0" /* 198, 0x0008, 0x2258 */
3110
    "Anatomic Location Of Examining Instrument Code Sequence\0" /* 199, 0x0008, 0x2259 */
3111
    "Anatomic Structure Space Or Region Modifier Code Sequence\0" /* 200, 0x0008, 0x225a */
3112
    "OnAxis Background Anatomic Structure Code Sequence\0" /* 201, 0x0008, 0x225c */
3113
    "Identifying Comments\0" /* 202, 0x0008, 0x4000 */
3114
    "?\0" /* 203, 0x0009, 0x0000 */
3115
    "?\0" /* 204, 0x0009, 0x0001 */
3116
    "?\0" /* 205, 0x0009, 0x0002 */
3117
    "?\0" /* 206, 0x0009, 0x0003 */
3118
    "?\0" /* 207, 0x0009, 0x0004 */
3119
    "?\0" /* 208, 0x0009, 0x0005 */
3120
    "?\0" /* 209, 0x0009, 0x0006 */
3121
    "?\0" /* 210, 0x0009, 0x0007 */
3122
    "?\0" /* 211, 0x0009, 0x0008 */
3123
    "?\0" /* 212, 0x0009, 0x0009 */
3124
    "?\0" /* 213, 0x0009, 0x000a */
3125
    "?\0" /* 214, 0x0009, 0x000b */
3126
    "?\0" /* 215, 0x0009, 0x000c */
3127
    "?\0" /* 216, 0x0009, 0x000d */
3128
    "?\0" /* 217, 0x0009, 0x000e */
3129
    "?\0" /* 218, 0x0009, 0x000f */
3130
    "?\0" /* 219, 0x0009, 0x0010 */
3131
    "?\0" /* 220, 0x0009, 0x0011 */
3132
    "?\0" /* 221, 0x0009, 0x0012 */
3133
    "?\0" /* 222, 0x0009, 0x0013 */
3134
    "?\0" /* 223, 0x0009, 0x0014 */
3135
    "?\0" /* 224, 0x0009, 0x0015 */
3136
    "?\0" /* 225, 0x0009, 0x0016 */
3137
    "?\0" /* 226, 0x0009, 0x0017 */
3138
    "Data Set Identifier\0" /* 227, 0x0009, 0x0018 */
3139
    "?\0" /* 228, 0x0009, 0x001a */
3140
    "?\0" /* 229, 0x0009, 0x001e */
3141
    "?\0" /* 230, 0x0009, 0x0020 */
3142
    "?\0" /* 231, 0x0009, 0x0021 */
3143
    "User Orientation\0" /* 232, 0x0009, 0x0022 */
3144
    "Initiation Type\0" /* 233, 0x0009, 0x0023 */
3145
    "?\0" /* 234, 0x0009, 0x0024 */
3146
    "?\0" /* 235, 0x0009, 0x0025 */
3147
    "?\0" /* 236, 0x0009, 0x0026 */
3148
    "?\0" /* 237, 0x0009, 0x0027 */
3149
    "?\0" /* 238, 0x0009, 0x0029 */
3150
    "?\0" /* 239, 0x0009, 0x002a */
3151
    "Series Comments\0" /* 240, 0x0009, 0x002c */
3152
    "Track Beat Average\0" /* 241, 0x0009, 0x002d */
3153
    "Distance Prescribed\0" /* 242, 0x0009, 0x002e */
3154
    "?\0" /* 243, 0x0009, 0x002f */
3155
    "?\0" /* 244, 0x0009, 0x0030 */
3156
    "?\0" /* 245, 0x0009, 0x0031 */
3157
    "?\0" /* 246, 0x0009, 0x0032 */
3158
    "?\0" /* 247, 0x0009, 0x0034 */
3159
    "Gantry Locus Type\0" /* 248, 0x0009, 0x0035 */
3160
    "Starting Heart Rate\0" /* 249, 0x0009, 0x0037 */
3161
    "?\0" /* 250, 0x0009, 0x0038 */
3162
    "RR Window Offset\0" /* 251, 0x0009, 0x0039 */
3163
    "Percent Cycle Imaged\0" /* 252, 0x0009, 0x003a */
3164
    "?\0" /* 253, 0x0009, 0x003e */
3165
    "?\0" /* 254, 0x0009, 0x003f */
3166
    "?\0" /* 255, 0x0009, 0x0040 */
3167
    "?\0" /* 256, 0x0009, 0x0041 */
3168
    "?\0" /* 257, 0x0009, 0x0042 */
3169
    "?\0" /* 258, 0x0009, 0x0043 */
3170
    "?\0" /* 259, 0x0009, 0x0050 */
3171
    "?\0" /* 260, 0x0009, 0x0051 */
3172
    "?\0" /* 261, 0x0009, 0x0060 */
3173
    "Series Unique Identifier\0" /* 262, 0x0009, 0x0061 */
3174
    "?\0" /* 263, 0x0009, 0x0070 */
3175
    "?\0" /* 264, 0x0009, 0x0080 */
3176
    "?\0" /* 265, 0x0009, 0x0091 */
3177
    "?\0" /* 266, 0x0009, 0x00e2 */
3178
    "Equipment UID\0" /* 267, 0x0009, 0x00e3 */
3179
    "Genesis Version Now\0" /* 268, 0x0009, 0x00e6 */
3180
    "Exam Record Checksum\0" /* 269, 0x0009, 0x00e7 */
3181
    "?\0" /* 270, 0x0009, 0x00e8 */
3182
    "Actual Series Data Time Stamp\0" /* 271, 0x0009, 0x00e9 */
3183
    "?\0" /* 272, 0x0009, 0x00f2 */
3184
    "?\0" /* 273, 0x0009, 0x00f3 */
3185
    "?\0" /* 274, 0x0009, 0x00f4 */
3186
    "?\0" /* 275, 0x0009, 0x00f5 */
3187
    "PDM Data Object Type Extension\0" /* 276, 0x0009, 0x00f6 */
3188
    "?\0" /* 277, 0x0009, 0x00f8 */
3189
    "?\0" /* 278, 0x0009, 0x00fb */
3190
    "?\0" /* 279, 0x0009, 0x1002 */
3191
    "?\0" /* 280, 0x0009, 0x1003 */
3192
    "?\0" /* 281, 0x0009, 0x1010 */
3193
    "Patient Group Length\0" /* 282, 0x0010, 0x0000 */
3194
    "Patient's Name\0" /* 283, 0x0010, 0x0010 */
3195
    "Patient's ID\0" /* 284, 0x0010, 0x0020 */
3196
    "Issuer of Patient's ID\0" /* 285, 0x0010, 0x0021 */
3197
    "Patient's Birth Date\0" /* 286, 0x0010, 0x0030 */
3198
    "Patient's Birth Time\0" /* 287, 0x0010, 0x0032 */
3199
    "Patient's Sex\0" /* 288, 0x0010, 0x0040 */
3200
    "Patient's Insurance Plan Code Sequence\0" /* 289, 0x0010, 0x0050 */
3201
    "Other Patient's ID's\0" /* 290, 0x0010, 0x1000 */
3202
    "Other Patient's Names\0" /* 291, 0x0010, 0x1001 */
3203
    "Patient's Birth Name\0" /* 292, 0x0010, 0x1005 */
3204
    "Patient's Age\0" /* 293, 0x0010, 0x1010 */
3205
    "Patient's Size\0" /* 294, 0x0010, 0x1020 */
3206
    "Patient's Weight\0" /* 295, 0x0010, 0x1030 */
3207
    "Patient's Address\0" /* 296, 0x0010, 0x1040 */
3208
    "Insurance Plan Identification\0" /* 297, 0x0010, 0x1050 */
3209
    "Patient's Mother's Birth Name\0" /* 298, 0x0010, 0x1060 */
3210
    "Military Rank\0" /* 299, 0x0010, 0x1080 */
3211
    "Branch of Service\0" /* 300, 0x0010, 0x1081 */
3212
    "Medical Record Locator\0" /* 301, 0x0010, 0x1090 */
3213
    "Medical Alerts\0" /* 302, 0x0010, 0x2000 */
3214
    "Contrast Allergies\0" /* 303, 0x0010, 0x2110 */
3215
    "Country of Residence\0" /* 304, 0x0010, 0x2150 */
3216
    "Region of Residence\0" /* 305, 0x0010, 0x2152 */
3217
    "Patients Telephone Numbers\0" /* 306, 0x0010, 0x2154 */
3218
    "Ethnic Group\0" /* 307, 0x0010, 0x2160 */
3219
    "Occupation\0" /* 308, 0x0010, 0x2180 */
3220
    "Smoking Status\0" /* 309, 0x0010, 0x21a0 */
3221
    "Additional Patient History\0" /* 310, 0x0010, 0x21b0 */
3222
    "Pregnancy Status\0" /* 311, 0x0010, 0x21c0 */
3223
    "Last Menstrual Date\0" /* 312, 0x0010, 0x21d0 */
3224
    "Patients Religious Preference\0" /* 313, 0x0010, 0x21f0 */
3225
    "Patient Comments\0" /* 314, 0x0010, 0x4000 */
3226
    "?\0" /* 315, 0x0011, 0x0001 */
3227
    "?\0" /* 316, 0x0011, 0x0002 */
3228
    "Patient UID\0" /* 317, 0x0011, 0x0003 */
3229
    "Patient ID\0" /* 318, 0x0011, 0x0004 */
3230
    "?\0" /* 319, 0x0011, 0x000a */
3231
    "Effective Series Duration\0" /* 320, 0x0011, 0x000b */
3232
    "Num Beats\0" /* 321, 0x0011, 0x000c */
3233
    "Radio Nuclide Name\0" /* 322, 0x0011, 0x000d */
3234
    "?\0" /* 323, 0x0011, 0x0010 */
3235
    "?\0" /* 324, 0x0011, 0x0011 */
3236
    "Dataset Name\0" /* 325, 0x0011, 0x0012 */
3237
    "Dataset Type\0" /* 326, 0x0011, 0x0013 */
3238
    "?\0" /* 327, 0x0011, 0x0015 */
3239
    "Energy Number\0" /* 328, 0x0011, 0x0016 */
3240
    "RR Interval Window Number\0" /* 329, 0x0011, 0x0017 */
3241
    "MG Bin Number\0" /* 330, 0x0011, 0x0018 */
3242
    "Radius Of Rotation\0" /* 331, 0x0011, 0x0019 */
3243
    "Detector Count Zone\0" /* 332, 0x0011, 0x001a */
3244
    "Num Energy Windows\0" /* 333, 0x0011, 0x001b */
3245
    "Energy Offset\0" /* 334, 0x0011, 0x001c */
3246
    "Energy Range\0" /* 335, 0x0011, 0x001d */
3247
    "Image Orientation\0" /* 336, 0x0011, 0x001f */
3248
    "?\0" /* 337, 0x0011, 0x0020 */
3249
    "?\0" /* 338, 0x0011, 0x0021 */
3250
    "?\0" /* 339, 0x0011, 0x0022 */
3251
    "?\0" /* 340, 0x0011, 0x0023 */
3252
    "FOV Mask Y Cutoff Angle\0" /* 341, 0x0011, 0x0024 */
3253
    "?\0" /* 342, 0x0011, 0x0025 */
3254
    "Table Orientation\0" /* 343, 0x0011, 0x0026 */
3255
    "ROI Top Left\0" /* 344, 0x0011, 0x0027 */
3256
    "ROI Bottom Right\0" /* 345, 0x0011, 0x0028 */
3257
    "?\0" /* 346, 0x0011, 0x0030 */
3258
    "?\0" /* 347, 0x0011, 0x0031 */
3259
    "?\0" /* 348, 0x0011, 0x0032 */
3260
    "Energy Correct Name\0" /* 349, 0x0011, 0x0033 */
3261
    "Spatial Correct Name\0" /* 350, 0x0011, 0x0034 */
3262
    "?\0" /* 351, 0x0011, 0x0035 */
3263
    "Uniformity Correct Name\0" /* 352, 0x0011, 0x0036 */
3264
    "Acquisition Specific Correct Name\0" /* 353, 0x0011, 0x0037 */
3265
    "Byte Order\0" /* 354, 0x0011, 0x0038 */
3266
    "Picture Format\0" /* 355, 0x0011, 0x003a */
3267
    "Pixel Scale\0" /* 356, 0x0011, 0x003b */
3268
    "Pixel Offset\0" /* 357, 0x0011, 0x003c */
3269
    "FOV Shape\0" /* 358, 0x0011, 0x003e */
3270
    "Dataset Flags\0" /* 359, 0x0011, 0x003f */
3271
    "?\0" /* 360, 0x0011, 0x0040 */
3272
    "Medical Alerts\0" /* 361, 0x0011, 0x0041 */
3273
    "Contrast Allergies\0" /* 362, 0x0011, 0x0042 */
3274
    "Threshold Center\0" /* 363, 0x0011, 0x0044 */
3275
    "Threshold Width\0" /* 364, 0x0011, 0x0045 */
3276
    "Interpolation Type\0" /* 365, 0x0011, 0x0046 */
3277
    "Period\0" /* 366, 0x0011, 0x0055 */
3278
    "ElapsedTime\0" /* 367, 0x0011, 0x0056 */
3279
    "Patient Registration Date\0" /* 368, 0x0011, 0x00a1 */
3280
    "Patient Registration Time\0" /* 369, 0x0011, 0x00a2 */
3281
    "Patient Last Name\0" /* 370, 0x0011, 0x00b0 */
3282
    "Patient First Name\0" /* 371, 0x0011, 0x00b2 */
3283
    "Patient Hospital Status\0" /* 372, 0x0011, 0x00b4 */
3284
    "Current Location Time\0" /* 373, 0x0011, 0x00bc */
3285
    "Patient Insurance Status\0" /* 374, 0x0011, 0x00c0 */
3286
    "Patient Billing Type\0" /* 375, 0x0011, 0x00d0 */
3287
    "Patient Billing Address\0" /* 376, 0x0011, 0x00d2 */
3288
    "Modifying Physician\0" /* 377, 0x0013, 0x0000 */
3289
    "?\0" /* 378, 0x0013, 0x0010 */
3290
    "?\0" /* 379, 0x0013, 0x0011 */
3291
    "?\0" /* 380, 0x0013, 0x0012 */
3292
    "AutoTrack Peak\0" /* 381, 0x0013, 0x0016 */
3293
    "AutoTrack Width\0" /* 382, 0x0013, 0x0017 */
3294
    "Transmission Scan Time\0" /* 383, 0x0013, 0x0018 */
3295
    "Transmission Mask Width\0" /* 384, 0x0013, 0x0019 */
3296
    "Copper Attenuator Thickness\0" /* 385, 0x0013, 0x001a */
3297
    "?\0" /* 386, 0x0013, 0x001c */
3298
    "?\0" /* 387, 0x0013, 0x001d */
3299
    "Tomo View Offset\0" /* 388, 0x0013, 0x001e */
3300
    "Patient Name\0" /* 389, 0x0013, 0x0020 */
3301
    "Patient Id\0" /* 390, 0x0013, 0x0022 */
3302
    "Study Comments\0" /* 391, 0x0013, 0x0026 */
3303
    "Patient Birthdate\0" /* 392, 0x0013, 0x0030 */
3304
    "Patient Weight\0" /* 393, 0x0013, 0x0031 */
3305
    "Patients Maiden Name\0" /* 394, 0x0013, 0x0032 */
3306
    "Referring Physician\0" /* 395, 0x0013, 0x0033 */
3307
    "Admitting Diagnosis\0" /* 396, 0x0013, 0x0034 */
3308
    "Patient Sex\0" /* 397, 0x0013, 0x0035 */
3309
    "Procedure Description\0" /* 398, 0x0013, 0x0040 */
3310
    "Patient Rest Direction\0" /* 399, 0x0013, 0x0042 */
3311
    "Patient Position\0" /* 400, 0x0013, 0x0044 */
3312
    "View Direction\0" /* 401, 0x0013, 0x0046 */
3313
    "Stenosis Calibration Ratio\0" /* 402, 0x0015, 0x0001 */
3314
    "Stenosis Magnification\0" /* 403, 0x0015, 0x0002 */
3315
    "Cardiac Calibration Ratio\0" /* 404, 0x0015, 0x0003 */
3316
    "Acquisition Group Length\0" /* 405, 0x0018, 0x0000 */
3317
    "Contrast/Bolus Agent\0" /* 406, 0x0018, 0x0010 */
3318
    "Contrast/Bolus Agent Sequence\0" /* 407, 0x0018, 0x0012 */
3319
    "Contrast/Bolus Administration Route Sequence\0" /* 408, 0x0018, 0x0014 */
3320
    "Body Part Examined\0" /* 409, 0x0018, 0x0015 */
3321
    "Scanning Sequence\0" /* 410, 0x0018, 0x0020 */
3322
    "Sequence Variant\0" /* 411, 0x0018, 0x0021 */
3323
    "Scan Options\0" /* 412, 0x0018, 0x0022 */
3324
    "MR Acquisition Type\0" /* 413, 0x0018, 0x0023 */
3325
    "Sequence Name\0" /* 414, 0x0018, 0x0024 */
3326
    "Angio Flag\0" /* 415, 0x0018, 0x0025 */
3327
    "Intervention Drug Information Sequence\0" /* 416, 0x0018, 0x0026 */
3328
    "Intervention Drug Stop Time\0" /* 417, 0x0018, 0x0027 */
3329
    "Intervention Drug Dose\0" /* 418, 0x0018, 0x0028 */
3330
    "Intervention Drug Code Sequence\0" /* 419, 0x0018, 0x0029 */
3331
    "Additional Drug Sequence\0" /* 420, 0x0018, 0x002a */
3332
    "Radionuclide\0" /* 421, 0x0018, 0x0030 */
3333
    "Radiopharmaceutical\0" /* 422, 0x0018, 0x0031 */
3334
    "Energy Window Centerline\0" /* 423, 0x0018, 0x0032 */
3335
    "Energy Window Total Width\0" /* 424, 0x0018, 0x0033 */
3336
    "Intervention Drug Name\0" /* 425, 0x0018, 0x0034 */
3337
    "Intervention Drug Start Time\0" /* 426, 0x0018, 0x0035 */
3338
    "Intervention Therapy Sequence\0" /* 427, 0x0018, 0x0036 */
3339
    "Therapy Type\0" /* 428, 0x0018, 0x0037 */
3340
    "Intervention Status\0" /* 429, 0x0018, 0x0038 */
3341
    "Therapy Description\0" /* 430, 0x0018, 0x0039 */
3342
    "Cine Rate\0" /* 431, 0x0018, 0x0040 */
3343
    "Slice Thickness\0" /* 432, 0x0018, 0x0050 */
3344
    "KVP\0" /* 433, 0x0018, 0x0060 */
3345
    "Counts Accumulated\0" /* 434, 0x0018, 0x0070 */
3346
    "Acquisition Termination Condition\0" /* 435, 0x0018, 0x0071 */
3347
    "Effective Series Duration\0" /* 436, 0x0018, 0x0072 */
3348
    "Acquisition Start Condition\0" /* 437, 0x0018, 0x0073 */
3349
    "Acquisition Start Condition Data\0" /* 438, 0x0018, 0x0074 */
3350
    "Acquisition Termination Condition Data\0" /* 439, 0x0018, 0x0075 */
3351
    "Repetition Time\0" /* 440, 0x0018, 0x0080 */
3352
    "Echo Time\0" /* 441, 0x0018, 0x0081 */
3353
    "Inversion Time\0" /* 442, 0x0018, 0x0082 */
3354
    "Number of Averages\0" /* 443, 0x0018, 0x0083 */
3355
    "Imaging Frequency\0" /* 444, 0x0018, 0x0084 */
3356
    "Imaged Nucleus\0" /* 445, 0x0018, 0x0085 */
3357
    "Echo Number(s)\0" /* 446, 0x0018, 0x0086 */
3358
    "Magnetic Field Strength\0" /* 447, 0x0018, 0x0087 */
3359
    "Spacing Between Slices\0" /* 448, 0x0018, 0x0088 */
3360
    "Number of Phase Encoding Steps\0" /* 449, 0x0018, 0x0089 */
3361
    "Data Collection Diameter\0" /* 450, 0x0018, 0x0090 */
3362
    "Echo Train Length\0" /* 451, 0x0018, 0x0091 */
3363
    "Percent Sampling\0" /* 452, 0x0018, 0x0093 */
3364
    "Percent Phase Field of View\0" /* 453, 0x0018, 0x0094 */
3365
    "Pixel Bandwidth\0" /* 454, 0x0018, 0x0095 */
3366
    "Device Serial Number\0" /* 455, 0x0018, 0x1000 */
3367
    "Plate ID\0" /* 456, 0x0018, 0x1004 */
3368
    "Secondary Capture Device ID\0" /* 457, 0x0018, 0x1010 */
3369
    "Date of Secondary Capture\0" /* 458, 0x0018, 0x1012 */
3370
    "Time of Secondary Capture\0" /* 459, 0x0018, 0x1014 */
3371
    "Secondary Capture Device Manufacturer\0" /* 460, 0x0018, 0x1016 */
3372
    "Secondary Capture Device Manufacturer Model Name\0" /* 461, 0x0018, 0x1018 */
3373
    "Secondary Capture Device Software Version(s)\0" /* 462, 0x0018, 0x1019 */
3374
    "Software Version(s)\0" /* 463, 0x0018, 0x1020 */
3375
    "Video Image Format Acquired\0" /* 464, 0x0018, 0x1022 */
3376
    "Digital Image Format Acquired\0" /* 465, 0x0018, 0x1023 */
3377
    "Protocol Name\0" /* 466, 0x0018, 0x1030 */
3378
    "Contrast/Bolus Route\0" /* 467, 0x0018, 0x1040 */
3379
    "Contrast/Bolus Volume\0" /* 468, 0x0018, 0x1041 */
3380
    "Contrast/Bolus Start Time\0" /* 469, 0x0018, 0x1042 */
3381
    "Contrast/Bolus Stop Time\0" /* 470, 0x0018, 0x1043 */
3382
    "Contrast/Bolus Total Dose\0" /* 471, 0x0018, 0x1044 */
3383
    "Syringe Counts\0" /* 472, 0x0018, 0x1045 */
3384
    "Contrast Flow Rate\0" /* 473, 0x0018, 0x1046 */
3385
    "Contrast Flow Duration\0" /* 474, 0x0018, 0x1047 */
3386
    "Contrast/Bolus Ingredient\0" /* 475, 0x0018, 0x1048 */
3387
    "Contrast/Bolus Ingredient Concentration\0" /* 476, 0x0018, 0x1049 */
3388
    "Spatial Resolution\0" /* 477, 0x0018, 0x1050 */
3389
    "Trigger Time\0" /* 478, 0x0018, 0x1060 */
3390
    "Trigger Source or Type\0" /* 479, 0x0018, 0x1061 */
3391
    "Nominal Interval\0" /* 480, 0x0018, 0x1062 */
3392
    "Frame Time\0" /* 481, 0x0018, 0x1063 */
3393
    "Framing Type\0" /* 482, 0x0018, 0x1064 */
3394
    "Frame Time Vector\0" /* 483, 0x0018, 0x1065 */
3395
    "Frame Delay\0" /* 484, 0x0018, 0x1066 */
3396
    "Image Trigger Delay\0" /* 485, 0x0018, 0x1067 */
3397
    "Group Time Offset\0" /* 486, 0x0018, 0x1068 */
3398
    "Trigger Time Offset\0" /* 487, 0x0018, 0x1069 */
3399
    "Synchronization Trigger\0" /* 488, 0x0018, 0x106a */
3400
    "Synchronization Frame of Reference\0" /* 489, 0x0018, 0x106b */
3401
    "Trigger Sample Position\0" /* 490, 0x0018, 0x106e */
3402
    "Radiopharmaceutical Route\0" /* 491, 0x0018, 0x1070 */
3403
    "Radiopharmaceutical Volume\0" /* 492, 0x0018, 0x1071 */
3404
    "Radiopharmaceutical Start Time\0" /* 493, 0x0018, 0x1072 */
3405
    "Radiopharmaceutical Stop Time\0" /* 494, 0x0018, 0x1073 */
3406
    "Radionuclide Total Dose\0" /* 495, 0x0018, 0x1074 */
3407
    "Radionuclide Half Life\0" /* 496, 0x0018, 0x1075 */
3408
    "Radionuclide Positron Fraction\0" /* 497, 0x0018, 0x1076 */
3409
    "Radiopharmaceutical Specific Activity\0" /* 498, 0x0018, 0x1077 */
3410
    "Beat Rejection Flag\0" /* 499, 0x0018, 0x1080 */
3411
    "Low R-R Value\0" /* 500, 0x0018, 0x1081 */
3412
    "High R-R Value\0" /* 501, 0x0018, 0x1082 */
3413
    "Intervals Acquired\0" /* 502, 0x0018, 0x1083 */
3414
    "Intervals Rejected\0" /* 503, 0x0018, 0x1084 */
3415
    "PVC Rejection\0" /* 504, 0x0018, 0x1085 */
3416
    "Skip Beats\0" /* 505, 0x0018, 0x1086 */
3417
    "Heart Rate\0" /* 506, 0x0018, 0x1088 */
3418
    "Cardiac Number of Images\0" /* 507, 0x0018, 0x1090 */
3419
    "Trigger Window\0" /* 508, 0x0018, 0x1094 */
3420
    "Reconstruction Diameter\0" /* 509, 0x0018, 0x1100 */
3421
    "Distance Source to Detector\0" /* 510, 0x0018, 0x1110 */
3422
    "Distance Source to Patient\0" /* 511, 0x0018, 0x1111 */
3423
    "Estimated Radiographic Magnification Factor\0" /* 512, 0x0018, 0x1114 */
3424
    "Gantry/Detector Tilt\0" /* 513, 0x0018, 0x1120 */
3425
    "Gantry/Detector Slew\0" /* 514, 0x0018, 0x1121 */
3426
    "Table Height\0" /* 515, 0x0018, 0x1130 */
3427
    "Table Traverse\0" /* 516, 0x0018, 0x1131 */
3428
    "Table Motion\0" /* 517, 0x0018, 0x1134 */
3429
    "Table Vertical Increment\0" /* 518, 0x0018, 0x1135 */
3430
    "Table Lateral Increment\0" /* 519, 0x0018, 0x1136 */
3431
    "Table Longitudinal Increment\0" /* 520, 0x0018, 0x1137 */
3432
    "Table Angle\0" /* 521, 0x0018, 0x1138 */
3433
    "Table Type\0" /* 522, 0x0018, 0x113a */
3434
    "Rotation Direction\0" /* 523, 0x0018, 0x1140 */
3435
    "Angular Position\0" /* 524, 0x0018, 0x1141 */
3436
    "Radial Position\0" /* 525, 0x0018, 0x1142 */
3437
    "Scan Arc\0" /* 526, 0x0018, 0x1143 */
3438
    "Angular Step\0" /* 527, 0x0018, 0x1144 */
3439
    "Center of Rotation Offset\0" /* 528, 0x0018, 0x1145 */
3440
    "Rotation Offset\0" /* 529, 0x0018, 0x1146 */
3441
    "Field of View Shape\0" /* 530, 0x0018, 0x1147 */
3442
    "Field of View Dimension(s)\0" /* 531, 0x0018, 0x1149 */
3443
    "Exposure Time\0" /* 532, 0x0018, 0x1150 */
3444
    "X-ray Tube Current\0" /* 533, 0x0018, 0x1151 */
3445
    "Exposure\0" /* 534, 0x0018, 0x1152 */
3446
    "Exposure in uAs\0" /* 535, 0x0018, 0x1153 */
3447
    "AveragePulseWidth\0" /* 536, 0x0018, 0x1154 */
3448
    "RadiationSetting\0" /* 537, 0x0018, 0x1155 */
3449
    "Rectification Type\0" /* 538, 0x0018, 0x1156 */
3450
    "RadiationMode\0" /* 539, 0x0018, 0x115a */
3451
    "ImageAreaDoseProduct\0" /* 540, 0x0018, 0x115e */
3452
    "Filter Type\0" /* 541, 0x0018, 0x1160 */
3453
    "TypeOfFilters\0" /* 542, 0x0018, 0x1161 */
3454
    "IntensifierSize\0" /* 543, 0x0018, 0x1162 */
3455
    "ImagerPixelSpacing\0" /* 544, 0x0018, 0x1164 */
3456
    "Grid\0" /* 545, 0x0018, 0x1166 */
3457
    "Generator Power\0" /* 546, 0x0018, 0x1170 */
3458
    "Collimator/Grid Name\0" /* 547, 0x0018, 0x1180 */
3459
    "Collimator Type\0" /* 548, 0x0018, 0x1181 */
3460
    "Focal Distance\0" /* 549, 0x0018, 0x1182 */
3461
    "X Focus Center\0" /* 550, 0x0018, 0x1183 */
3462
    "Y Focus Center\0" /* 551, 0x0018, 0x1184 */
3463
    "Focal Spot(s)\0" /* 552, 0x0018, 0x1190 */
3464
    "Anode Target Material\0" /* 553, 0x0018, 0x1191 */
3465
    "Body Part Thickness\0" /* 554, 0x0018, 0x11a0 */
3466
    "Compression Force\0" /* 555, 0x0018, 0x11a2 */
3467
    "Date of Last Calibration\0" /* 556, 0x0018, 0x1200 */
3468
    "Time of Last Calibration\0" /* 557, 0x0018, 0x1201 */
3469
    "Convolution Kernel\0" /* 558, 0x0018, 0x1210 */
3470
    "Upper/Lower Pixel Values\0" /* 559, 0x0018, 0x1240 */
3471
    "Actual Frame Duration\0" /* 560, 0x0018, 0x1242 */
3472
    "Count Rate\0" /* 561, 0x0018, 0x1243 */
3473
    "Preferred Playback Sequencing\0" /* 562, 0x0018, 0x1244 */
3474
    "Receiving Coil\0" /* 563, 0x0018, 0x1250 */
3475
    "Transmitting Coil\0" /* 564, 0x0018, 0x1251 */
3476
    "Plate Type\0" /* 565, 0x0018, 0x1260 */
3477
    "Phosphor Type\0" /* 566, 0x0018, 0x1261 */
3478
    "Scan Velocity\0" /* 567, 0x0018, 0x1300 */
3479
    "Whole Body Technique\0" /* 568, 0x0018, 0x1301 */
3480
    "Scan Length\0" /* 569, 0x0018, 0x1302 */
3481
    "Acquisition Matrix\0" /* 570, 0x0018, 0x1310 */
3482
    "Phase Encoding Direction\0" /* 571, 0x0018, 0x1312 */
3483
    "Flip Angle\0" /* 572, 0x0018, 0x1314 */
3484
    "Variable Flip Angle Flag\0" /* 573, 0x0018, 0x1315 */
3485
    "SAR\0" /* 574, 0x0018, 0x1316 */
3486
    "dB/dt\0" /* 575, 0x0018, 0x1318 */
3487
    "Acquisition Device Processing Description\0" /* 576, 0x0018, 0x1400 */
3488
    "Acquisition Device Processing Code\0" /* 577, 0x0018, 0x1401 */
3489
    "Cassette Orientation\0" /* 578, 0x0018, 0x1402 */
3490
    "Cassette Size\0" /* 579, 0x0018, 0x1403 */
3491
    "Exposures on Plate\0" /* 580, 0x0018, 0x1404 */
3492
    "Relative X-ray Exposure\0" /* 581, 0x0018, 0x1405 */
3493
    "Column Angulation\0" /* 582, 0x0018, 0x1450 */
3494
    "Tomo Layer Height\0" /* 583, 0x0018, 0x1460 */
3495
    "Tomo Angle\0" /* 584, 0x0018, 0x1470 */
3496
    "Tomo Time\0" /* 585, 0x0018, 0x1480 */
3497
    "Tomo Type\0" /* 586, 0x0018, 0x1490 */
3498
    "Tomo Class\0" /* 587, 0x0018, 0x1491 */
3499
    "Number of Tomosynthesis Source Images\0" /* 588, 0x0018, 0x1495 */
3500
    "PositionerMotion\0" /* 589, 0x0018, 0x1500 */
3501
    "Positioner Type\0" /* 590, 0x0018, 0x1508 */
3502
    "PositionerPrimaryAngle\0" /* 591, 0x0018, 0x1510 */
3503
    "PositionerSecondaryAngle\0" /* 592, 0x0018, 0x1511 */
3504
    "PositionerPrimaryAngleIncrement\0" /* 593, 0x0018, 0x1520 */
3505
    "PositionerSecondaryAngleIncrement\0" /* 594, 0x0018, 0x1521 */
3506
    "DetectorPrimaryAngle\0" /* 595, 0x0018, 0x1530 */
3507
    "DetectorSecondaryAngle\0" /* 596, 0x0018, 0x1531 */
3508
    "Shutter Shape\0" /* 597, 0x0018, 0x1600 */
3509
    "Shutter Left Vertical Edge\0" /* 598, 0x0018, 0x1602 */
3510
    "Shutter Right Vertical Edge\0" /* 599, 0x0018, 0x1604 */
3511
    "Shutter Upper Horizontal Edge\0" /* 600, 0x0018, 0x1606 */
3512
    "Shutter Lower Horizonta lEdge\0" /* 601, 0x0018, 0x1608 */
3513
    "Center of Circular Shutter\0" /* 602, 0x0018, 0x1610 */
3514
    "Radius of Circular Shutter\0" /* 603, 0x0018, 0x1612 */
3515
    "Vertices of Polygonal Shutter\0" /* 604, 0x0018, 0x1620 */
3516
    "Shutter Presentation Value\0" /* 605, 0x0018, 0x1622 */
3517
    "Shutter Overlay Group\0" /* 606, 0x0018, 0x1623 */
3518
    "Collimator Shape\0" /* 607, 0x0018, 0x1700 */
3519
    "Collimator Left Vertical Edge\0" /* 608, 0x0018, 0x1702 */
3520
    "Collimator Right Vertical Edge\0" /* 609, 0x0018, 0x1704 */
3521
    "Collimator Upper Horizontal Edge\0" /* 610, 0x0018, 0x1706 */
3522
    "Collimator Lower Horizontal Edge\0" /* 611, 0x0018, 0x1708 */
3523
    "Center of Circular Collimator\0" /* 612, 0x0018, 0x1710 */
3524
    "Radius of Circular Collimator\0" /* 613, 0x0018, 0x1712 */
3525
    "Vertices of Polygonal Collimator\0" /* 614, 0x0018, 0x1720 */
3526
    "Acquisition Time Synchronized\0" /* 615, 0x0018, 0x1800 */
3527
    "Time Source\0" /* 616, 0x0018, 0x1801 */
3528
    "Time Distribution Protocol\0" /* 617, 0x0018, 0x1802 */
3529
    "Acquisition Comments\0" /* 618, 0x0018, 0x4000 */
3530
    "Output Power\0" /* 619, 0x0018, 0x5000 */
3531
    "Transducer Data\0" /* 620, 0x0018, 0x5010 */
3532
    "Focus Depth\0" /* 621, 0x0018, 0x5012 */
3533
    "Processing Function\0" /* 622, 0x0018, 0x5020 */
3534
    "Postprocessing Function\0" /* 623, 0x0018, 0x5021 */
3535
    "Mechanical Index\0" /* 624, 0x0018, 0x5022 */
3536
    "Thermal Index\0" /* 625, 0x0018, 0x5024 */
3537
    "Cranial Thermal Index\0" /* 626, 0x0018, 0x5026 */
3538
    "Soft Tissue Thermal Index\0" /* 627, 0x0018, 0x5027 */
3539
    "Soft Tissue-Focus Thermal Index\0" /* 628, 0x0018, 0x5028 */
3540
    "Soft Tissue-Surface Thermal Index\0" /* 629, 0x0018, 0x5029 */
3541
    "Dynamic Range\0" /* 630, 0x0018, 0x5030 */
3542
    "Total Gain\0" /* 631, 0x0018, 0x5040 */
3543
    "Depth of Scan Field\0" /* 632, 0x0018, 0x5050 */
3544
    "Patient Position\0" /* 633, 0x0018, 0x5100 */
3545
    "View Position\0" /* 634, 0x0018, 0x5101 */
3546
    "Projection Eponymous Name Code Sequence\0" /* 635, 0x0018, 0x5104 */
3547
    "Image Transformation Matrix\0" /* 636, 0x0018, 0x5210 */
3548
    "Image Translation Vector\0" /* 637, 0x0018, 0x5212 */
3549
    "Sensitivity\0" /* 638, 0x0018, 0x6000 */
3550
    "Sequence of Ultrasound Regions\0" /* 639, 0x0018, 0x6011 */
3551
    "Region Spatial Format\0" /* 640, 0x0018, 0x6012 */
3552
    "Region Data Type\0" /* 641, 0x0018, 0x6014 */
3553
    "Region Flags\0" /* 642, 0x0018, 0x6016 */
3554
    "Region Location Min X0\0" /* 643, 0x0018, 0x6018 */
3555
    "Region Location Min Y0\0" /* 644, 0x0018, 0x601a */
3556
    "Region Location Max X1\0" /* 645, 0x0018, 0x601c */
3557
    "Region Location Max Y1\0" /* 646, 0x0018, 0x601e */
3558
    "Reference Pixel X0\0" /* 647, 0x0018, 0x6020 */
3559
    "Reference Pixel Y0\0" /* 648, 0x0018, 0x6022 */
3560
    "Physical Units X Direction\0" /* 649, 0x0018, 0x6024 */
3561
    "Physical Units Y Direction\0" /* 650, 0x0018, 0x6026 */
3562
    "Reference Pixel Physical Value X\0" /* 651, 0x0018, 0x6028 */
3563
    "Reference Pixel Physical Value Y\0" /* 652, 0x0018, 0x602a */
3564
    "Physical Delta X\0" /* 653, 0x0018, 0x602c */
3565
    "Physical Delta Y\0" /* 654, 0x0018, 0x602e */
3566
    "Transducer Frequency\0" /* 655, 0x0018, 0x6030 */
3567
    "Transducer Type\0" /* 656, 0x0018, 0x6031 */
3568
    "Pulse Repetition Frequency\0" /* 657, 0x0018, 0x6032 */
3569
    "Doppler Correction Angle\0" /* 658, 0x0018, 0x6034 */
3570
    "Steering Angle\0" /* 659, 0x0018, 0x6036 */
3571
    "Doppler Sample Volume X Position\0" /* 660, 0x0018, 0x6038 */
3572
    "Doppler Sample Volume Y Position\0" /* 661, 0x0018, 0x603a */
3573
    "TM-Line Position X0\0" /* 662, 0x0018, 0x603c */
3574
    "TM-Line Position Y0\0" /* 663, 0x0018, 0x603e */
3575
    "TM-Line Position X1\0" /* 664, 0x0018, 0x6040 */
3576
    "TM-Line Position Y1\0" /* 665, 0x0018, 0x6042 */
3577
    "Pixel Component Organization\0" /* 666, 0x0018, 0x6044 */
3578
    "Pixel Component Mask\0" /* 667, 0x0018, 0x6046 */
3579
    "Pixel Component Range Start\0" /* 668, 0x0018, 0x6048 */
3580
    "Pixel Component Range Stop\0" /* 669, 0x0018, 0x604a */
3581
    "Pixel Component Physical Units\0" /* 670, 0x0018, 0x604c */
3582
    "Pixel Component Data Type\0" /* 671, 0x0018, 0x604e */
3583
    "Number of Table Break Points\0" /* 672, 0x0018, 0x6050 */
3584
    "Table of X Break Points\0" /* 673, 0x0018, 0x6052 */
3585
    "Table of Y Break Points\0" /* 674, 0x0018, 0x6054 */
3586
    "Number of Table Entries\0" /* 675, 0x0018, 0x6056 */
3587
    "Table of Pixel Values\0" /* 676, 0x0018, 0x6058 */
3588
    "Table of Parameter Values\0" /* 677, 0x0018, 0x605a */
3589
    "Detector Conditions Nominal Flag\0" /* 678, 0x0018, 0x7000 */
3590
    "Detector Temperature\0" /* 679, 0x0018, 0x7001 */
3591
    "Detector Type\0" /* 680, 0x0018, 0x7004 */
3592
    "Detector Configuration\0" /* 681, 0x0018, 0x7005 */
3593
    "Detector Description\0" /* 682, 0x0018, 0x7006 */
3594
    "Detector Mode\0" /* 683, 0x0018, 0x7008 */
3595
    "Detector ID\0" /* 684, 0x0018, 0x700a */
3596
    "Date of Last Detector Calibration \0" /* 685, 0x0018, 0x700c */
3597
    "Time of Last Detector Calibration\0" /* 686, 0x0018, 0x700e */
3598
    "Exposures on Detector Since Last Calibration\0" /* 687, 0x0018, 0x7010 */
3599
    "Exposures on Detector Since Manufactured\0" /* 688, 0x0018, 0x7011 */
3600
    "Detector Time Since Last Exposure\0" /* 689, 0x0018, 0x7012 */
3601
    "Detector Active Time\0" /* 690, 0x0018, 0x7014 */
3602
    "Detector Activation Offset From Exposure\0" /* 691, 0x0018, 0x7016 */
3603
    "Detector Binning\0" /* 692, 0x0018, 0x701a */
3604
    "Detector Element Physical Size\0" /* 693, 0x0018, 0x7020 */
3605
    "Detector Element Spacing\0" /* 694, 0x0018, 0x7022 */
3606
    "Detector Active Shape\0" /* 695, 0x0018, 0x7024 */
3607
    "Detector Active Dimensions\0" /* 696, 0x0018, 0x7026 */
3608
    "Detector Active Origin\0" /* 697, 0x0018, 0x7028 */
3609
    "Field of View Origin\0" /* 698, 0x0018, 0x7030 */
3610
    "Field of View Rotation\0" /* 699, 0x0018, 0x7032 */
3611
    "Field of View Horizontal Flip\0" /* 700, 0x0018, 0x7034 */
3612
    "Grid Absorbing Material\0" /* 701, 0x0018, 0x7040 */
3613
    "Grid Spacing Material\0" /* 702, 0x0018, 0x7041 */
3614
    "Grid Thickness\0" /* 703, 0x0018, 0x7042 */
3615
    "Grid Pitch\0" /* 704, 0x0018, 0x7044 */
3616
    "Grid Aspect Ratio\0" /* 705, 0x0018, 0x7046 */
3617
    "Grid Period\0" /* 706, 0x0018, 0x7048 */
3618
    "Grid Focal Distance\0" /* 707, 0x0018, 0x704c */
3619
    "Filter Material\0" /* 708, 0x0018, 0x7050 */
3620
    "Filter Thickness Minimum\0" /* 709, 0x0018, 0x7052 */
3621
    "Filter Thickness Maximum\0" /* 710, 0x0018, 0x7054 */
3622
    "Exposure Control Mode\0" /* 711, 0x0018, 0x7060 */
3623
    "Exposure Control Mode Description\0" /* 712, 0x0018, 0x7062 */
3624
    "Exposure Status\0" /* 713, 0x0018, 0x7064 */
3625
    "Phototimer Setting\0" /* 714, 0x0018, 0x7065 */
3626
    "?\0" /* 715, 0x0019, 0x0000 */
3627
    "?\0" /* 716, 0x0019, 0x0001 */
3628
    "?\0" /* 717, 0x0019, 0x0002 */
3629
    "?\0" /* 718, 0x0019, 0x0003 */
3630
    "?\0" /* 719, 0x0019, 0x0004 */
3631
    "?\0" /* 720, 0x0019, 0x0005 */
3632
    "?\0" /* 721, 0x0019, 0x0006 */
3633
    "?\0" /* 722, 0x0019, 0x0007 */
3634
    "?\0" /* 723, 0x0019, 0x0008 */
3635
    "?\0" /* 724, 0x0019, 0x0009 */
3636
    "?\0" /* 725, 0x0019, 0x000a */
3637
    "?\0" /* 726, 0x0019, 0x000b */
3638
    "?\0" /* 727, 0x0019, 0x000c */
3639
    "Time\0" /* 728, 0x0019, 0x000d */
3640
    "?\0" /* 729, 0x0019, 0x000e */
3641
    "Horizontal Frame Of Reference\0" /* 730, 0x0019, 0x000f */
3642
    "?\0" /* 731, 0x0019, 0x0010 */
3643
    "?\0" /* 732, 0x0019, 0x0011 */
3644
    "?\0" /* 733, 0x0019, 0x0012 */
3645
    "?\0" /* 734, 0x0019, 0x0013 */
3646
    "?\0" /* 735, 0x0019, 0x0014 */
3647
    "?\0" /* 736, 0x0019, 0x0015 */
3648
    "?\0" /* 737, 0x0019, 0x0016 */
3649
    "?\0" /* 738, 0x0019, 0x0017 */
3650
    "?\0" /* 739, 0x0019, 0x0018 */
3651
    "?\0" /* 740, 0x0019, 0x0019 */
3652
    "?\0" /* 741, 0x0019, 0x001a */
3653
    "?\0" /* 742, 0x0019, 0x001b */
3654
    "Dose\0" /* 743, 0x0019, 0x001c */
3655
    "Side Mark\0" /* 744, 0x0019, 0x001d */
3656
    "?\0" /* 745, 0x0019, 0x001e */
3657
    "Exposure Duration\0" /* 746, 0x0019, 0x001f */
3658
    "?\0" /* 747, 0x0019, 0x0020 */
3659
    "?\0" /* 748, 0x0019, 0x0021 */
3660
    "?\0" /* 749, 0x0019, 0x0022 */
3661
    "?\0" /* 750, 0x0019, 0x0023 */
3662
    "?\0" /* 751, 0x0019, 0x0024 */
3663
    "?\0" /* 752, 0x0019, 0x0025 */
3664
    "?\0" /* 753, 0x0019, 0x0026 */
3665
    "?\0" /* 754, 0x0019, 0x0027 */
3666
    "?\0" /* 755, 0x0019, 0x0028 */
3667
    "?\0" /* 756, 0x0019, 0x0029 */
3668
    "?\0" /* 757, 0x0019, 0x002a */
3669
    "Xray Off Position\0" /* 758, 0x0019, 0x002b */
3670
    "?\0" /* 759, 0x0019, 0x002c */
3671
    "?\0" /* 760, 0x0019, 0x002d */
3672
    "?\0" /* 761, 0x0019, 0x002e */
3673
    "Trigger Frequency\0" /* 762, 0x0019, 0x002f */
3674
    "?\0" /* 763, 0x0019, 0x0030 */
3675
    "?\0" /* 764, 0x0019, 0x0031 */
3676
    "?\0" /* 765, 0x0019, 0x0032 */
3677
    "ECG 2 Offset 2\0" /* 766, 0x0019, 0x0033 */
3678
    "?\0" /* 767, 0x0019, 0x0034 */
3679
    "?\0" /* 768, 0x0019, 0x0036 */
3680
    "?\0" /* 769, 0x0019, 0x0038 */
3681
    "?\0" /* 770, 0x0019, 0x0039 */
3682
    "?\0" /* 771, 0x0019, 0x003a */
3683
    "?\0" /* 772, 0x0019, 0x003b */
3684
    "?\0" /* 773, 0x0019, 0x003c */
3685
    "?\0" /* 774, 0x0019, 0x003e */
3686
    "?\0" /* 775, 0x0019, 0x003f */
3687
    "?\0" /* 776, 0x0019, 0x0040 */
3688
    "?\0" /* 777, 0x0019, 0x0041 */
3689
    "?\0" /* 778, 0x0019, 0x0042 */
3690
    "?\0" /* 779, 0x0019, 0x0043 */
3691
    "?\0" /* 780, 0x0019, 0x0044 */
3692
    "?\0" /* 781, 0x0019, 0x0045 */
3693
    "?\0" /* 782, 0x0019, 0x0046 */
3694
    "?\0" /* 783, 0x0019, 0x0047 */
3695
    "?\0" /* 784, 0x0019, 0x0048 */
3696
    "?\0" /* 785, 0x0019, 0x0049 */
3697
    "?\0" /* 786, 0x0019, 0x004a */
3698
    "Data Size For Scan Data\0" /* 787, 0x0019, 0x004b */
3699
    "?\0" /* 788, 0x0019, 0x004c */
3700
    "?\0" /* 789, 0x0019, 0x004e */
3701
    "?\0" /* 790, 0x0019, 0x0050 */
3702
    "?\0" /* 791, 0x0019, 0x0051 */
3703
    "?\0" /* 792, 0x0019, 0x0052 */
3704
    "Barcode\0" /* 793, 0x0019, 0x0053 */
3705
    "?\0" /* 794, 0x0019, 0x0054 */
3706
    "Receiver Reference Gain\0" /* 795, 0x0019, 0x0055 */
3707
    "?\0" /* 796, 0x0019, 0x0056 */
3708
    "CT Water Number\0" /* 797, 0x0019, 0x0057 */
3709
    "?\0" /* 798, 0x0019, 0x0058 */
3710
    "?\0" /* 799, 0x0019, 0x005a */
3711
    "?\0" /* 800, 0x0019, 0x005c */
3712
    "?\0" /* 801, 0x0019, 0x005d */
3713
    "?\0" /* 802, 0x0019, 0x005e */
3714
    "Increment Between Channels\0" /* 803, 0x0019, 0x005f */
3715
    "?\0" /* 804, 0x0019, 0x0060 */
3716
    "?\0" /* 805, 0x0019, 0x0061 */
3717
    "?\0" /* 806, 0x0019, 0x0062 */
3718
    "?\0" /* 807, 0x0019, 0x0063 */
3719
    "?\0" /* 808, 0x0019, 0x0064 */
3720
    "?\0" /* 809, 0x0019, 0x0065 */
3721
    "?\0" /* 810, 0x0019, 0x0066 */
3722
    "?\0" /* 811, 0x0019, 0x0067 */
3723
    "?\0" /* 812, 0x0019, 0x0068 */
3724
    "Convolution Mode\0" /* 813, 0x0019, 0x0069 */
3725
    "?\0" /* 814, 0x0019, 0x006a */
3726
    "Field Of View In Detector Cells\0" /* 815, 0x0019, 0x006b */
3727
    "?\0" /* 816, 0x0019, 0x006c */
3728
    "?\0" /* 817, 0x0019, 0x006e */
3729
    "?\0" /* 818, 0x0019, 0x0070 */
3730
    "?\0" /* 819, 0x0019, 0x0071 */
3731
    "?\0" /* 820, 0x0019, 0x0072 */
3732
    "?\0" /* 821, 0x0019, 0x0073 */
3733
    "?\0" /* 822, 0x0019, 0x0074 */
3734
    "?\0" /* 823, 0x0019, 0x0075 */
3735
    "?\0" /* 824, 0x0019, 0x0076 */
3736
    "?\0" /* 825, 0x0019, 0x0077 */
3737
    "?\0" /* 826, 0x0019, 0x0078 */
3738
    "?\0" /* 827, 0x0019, 0x007a */
3739
    "?\0" /* 828, 0x0019, 0x007c */
3740
    "Second Echo\0" /* 829, 0x0019, 0x007d */
3741
    "?\0" /* 830, 0x0019, 0x007e */
3742
    "Table Delta\0" /* 831, 0x0019, 0x007f */
3743
    "?\0" /* 832, 0x0019, 0x0080 */
3744
    "?\0" /* 833, 0x0019, 0x0081 */
3745
    "?\0" /* 834, 0x0019, 0x0082 */
3746
    "?\0" /* 835, 0x0019, 0x0083 */
3747
    "?\0" /* 836, 0x0019, 0x0084 */
3748
    "?\0" /* 837, 0x0019, 0x0085 */
3749
    "?\0" /* 838, 0x0019, 0x0086 */
3750
    "?\0" /* 839, 0x0019, 0x0087 */
3751
    "?\0" /* 840, 0x0019, 0x0088 */
3752
    "?\0" /* 841, 0x0019, 0x008a */
3753
    "Actual Receive Gain Digital\0" /* 842, 0x0019, 0x008b */
3754
    "?\0" /* 843, 0x0019, 0x008c */
3755
    "Delay After Trigger\0" /* 844, 0x0019, 0x008d */
3756
    "?\0" /* 845, 0x0019, 0x008e */
3757
    "Swap Phase Frequency\0" /* 846, 0x0019, 0x008f */
3758
    "?\0" /* 847, 0x0019, 0x0090 */
3759
    "?\0" /* 848, 0x0019, 0x0091 */
3760
    "?\0" /* 849, 0x0019, 0x0092 */
3761
    "?\0" /* 850, 0x0019, 0x0093 */
3762
    "?\0" /* 851, 0x0019, 0x0094 */
3763
    "Analog Receiver Gain\0" /* 852, 0x0019, 0x0095 */
3764
    "?\0" /* 853, 0x0019, 0x0096 */
3765
    "?\0" /* 854, 0x0019, 0x0097 */
3766
    "?\0" /* 855, 0x0019, 0x0098 */
3767
    "?\0" /* 856, 0x0019, 0x0099 */
3768
    "?\0" /* 857, 0x0019, 0x009a */
3769
    "Pulse Sequence Mode\0" /* 858, 0x0019, 0x009b */
3770
    "?\0" /* 859, 0x0019, 0x009c */
3771
    "Pulse Sequence Date\0" /* 860, 0x0019, 0x009d */
3772
    "?\0" /* 861, 0x0019, 0x009e */
3773
    "?\0" /* 862, 0x0019, 0x009f */
3774
    "?\0" /* 863, 0x0019, 0x00a0 */
3775
    "?\0" /* 864, 0x0019, 0x00a1 */
3776
    "?\0" /* 865, 0x0019, 0x00a2 */
3777
    "?\0" /* 866, 0x0019, 0x00a3 */
3778
    "?\0" /* 867, 0x0019, 0x00a4 */
3779
    "?\0" /* 868, 0x0019, 0x00a5 */
3780
    "?\0" /* 869, 0x0019, 0x00a6 */
3781
    "?\0" /* 870, 0x0019, 0x00a7 */
3782
    "?\0" /* 871, 0x0019, 0x00a8 */
3783
    "?\0" /* 872, 0x0019, 0x00a9 */
3784
    "?\0" /* 873, 0x0019, 0x00aa */
3785
    "?\0" /* 874, 0x0019, 0x00ab */
3786
    "?\0" /* 875, 0x0019, 0x00ac */
3787
    "?\0" /* 876, 0x0019, 0x00ad */
3788
    "?\0" /* 877, 0x0019, 0x00ae */
3789
    "?\0" /* 878, 0x0019, 0x00af */
3790
    "?\0" /* 879, 0x0019, 0x00b0 */
3791
    "?\0" /* 880, 0x0019, 0x00b1 */
3792
    "?\0" /* 881, 0x0019, 0x00b2 */
3793
    "?\0" /* 882, 0x0019, 0x00b3 */
3794
    "?\0" /* 883, 0x0019, 0x00b4 */
3795
    "?\0" /* 884, 0x0019, 0x00b5 */
3796
    "User Data\0" /* 885, 0x0019, 0x00b6 */
3797
    "User Data\0" /* 886, 0x0019, 0x00b7 */
3798
    "User Data\0" /* 887, 0x0019, 0x00b8 */
3799
    "User Data\0" /* 888, 0x0019, 0x00b9 */
3800
    "User Data\0" /* 889, 0x0019, 0x00ba */
3801
    "User Data\0" /* 890, 0x0019, 0x00bb */
3802
    "User Data\0" /* 891, 0x0019, 0x00bc */
3803
    "User Data\0" /* 892, 0x0019, 0x00bd */
3804
    "Projection Angle\0" /* 893, 0x0019, 0x00be */
3805
    "?\0" /* 894, 0x0019, 0x00c0 */
3806
    "?\0" /* 895, 0x0019, 0x00c1 */
3807
    "?\0" /* 896, 0x0019, 0x00c2 */
3808
    "?\0" /* 897, 0x0019, 0x00c3 */
3809
    "?\0" /* 898, 0x0019, 0x00c4 */
3810
    "?\0" /* 899, 0x0019, 0x00c5 */
3811
    "SAT Location H\0" /* 900, 0x0019, 0x00c6 */
3812
    "SAT Location F\0" /* 901, 0x0019, 0x00c7 */
3813
    "SAT Thickness R L\0" /* 902, 0x0019, 0x00c8 */
3814
    "SAT Thickness A P\0" /* 903, 0x0019, 0x00c9 */
3815
    "SAT Thickness H F\0" /* 904, 0x0019, 0x00ca */
3816
    "?\0" /* 905, 0x0019, 0x00cb */
3817
    "?\0" /* 906, 0x0019, 0x00cc */
3818
    "Thickness Disclaimer\0" /* 907, 0x0019, 0x00cd */
3819
    "Prescan Type\0" /* 908, 0x0019, 0x00ce */
3820
    "Prescan Status\0" /* 909, 0x0019, 0x00cf */
3821
    "Raw Data Type\0" /* 910, 0x0019, 0x00d0 */
3822
    "Flow Sensitivity\0" /* 911, 0x0019, 0x00d1 */
3823
    "?\0" /* 912, 0x0019, 0x00d2 */
3824
    "?\0" /* 913, 0x0019, 0x00d3 */
3825
    "?\0" /* 914, 0x0019, 0x00d4 */
3826
    "?\0" /* 915, 0x0019, 0x00d5 */
3827
    "?\0" /* 916, 0x0019, 0x00d6 */
3828
    "?\0" /* 917, 0x0019, 0x00d7 */
3829
    "?\0" /* 918, 0x0019, 0x00d8 */
3830
    "?\0" /* 919, 0x0019, 0x00d9 */
3831
    "?\0" /* 920, 0x0019, 0x00da */
3832
    "Back Projector Coefficient\0" /* 921, 0x0019, 0x00db */
3833
    "Primary Speed Correction Used\0" /* 922, 0x0019, 0x00dc */
3834
    "Overrange Correction Used\0" /* 923, 0x0019, 0x00dd */
3835
    "Dynamic Z Alpha Value\0" /* 924, 0x0019, 0x00de */
3836
    "User Data\0" /* 925, 0x0019, 0x00df */
3837
    "User Data\0" /* 926, 0x0019, 0x00e0 */
3838
    "?\0" /* 927, 0x0019, 0x00e1 */
3839
    "?\0" /* 928, 0x0019, 0x00e2 */
3840
    "?\0" /* 929, 0x0019, 0x00e3 */
3841
    "?\0" /* 930, 0x0019, 0x00e4 */
3842
    "?\0" /* 931, 0x0019, 0x00e5 */
3843
    "?\0" /* 932, 0x0019, 0x00e6 */
3844
    "?\0" /* 933, 0x0019, 0x00e8 */
3845
    "?\0" /* 934, 0x0019, 0x00e9 */
3846
    "?\0" /* 935, 0x0019, 0x00eb */
3847
    "?\0" /* 936, 0x0019, 0x00ec */
3848
    "?\0" /* 937, 0x0019, 0x00f0 */
3849
    "?\0" /* 938, 0x0019, 0x00f1 */
3850
    "?\0" /* 939, 0x0019, 0x00f2 */
3851
    "?\0" /* 940, 0x0019, 0x00f3 */
3852
    "?\0" /* 941, 0x0019, 0x00f4 */
3853
    "Transmission Gain\0" /* 942, 0x0019, 0x00f9 */
3854
    "?\0" /* 943, 0x0019, 0x1015 */
3855
    "Relationship Group Length\0" /* 944, 0x0020, 0x0000 */
3856
    "Study Instance UID\0" /* 945, 0x0020, 0x000d */
3857
    "Series Instance UID\0" /* 946, 0x0020, 0x000e */
3858
    "Study ID\0" /* 947, 0x0020, 0x0010 */
3859
    "Series Number\0" /* 948, 0x0020, 0x0011 */
3860
    "Acquisition Number\0" /* 949, 0x0020, 0x0012 */
3861
    "Instance (formerly Image) Number\0" /* 950, 0x0020, 0x0013 */
3862
    "Isotope Number\0" /* 951, 0x0020, 0x0014 */
3863
    "Phase Number\0" /* 952, 0x0020, 0x0015 */
3864
    "Interval Number\0" /* 953, 0x0020, 0x0016 */
3865
    "Time Slot Number\0" /* 954, 0x0020, 0x0017 */
3866
    "Angle Number\0" /* 955, 0x0020, 0x0018 */
3867
    "Patient Orientation\0" /* 956, 0x0020, 0x0020 */
3868
    "Overlay Number\0" /* 957, 0x0020, 0x0022 */
3869
    "Curve Number\0" /* 958, 0x0020, 0x0024 */
3870
    "LUT Number\0" /* 959, 0x0020, 0x0026 */
3871
    "Image Position\0" /* 960, 0x0020, 0x0030 */
3872
    "Image Position (Patient)\0" /* 961, 0x0020, 0x0032 */
3873
    "Image Orientation\0" /* 962, 0x0020, 0x0035 */
3874
    "Image Orientation (Patient)\0" /* 963, 0x0020, 0x0037 */
3875
    "Location\0" /* 964, 0x0020, 0x0050 */
3876
    "Frame of Reference UID\0" /* 965, 0x0020, 0x0052 */
3877
    "Laterality\0" /* 966, 0x0020, 0x0060 */
3878
    "Image Laterality\0" /* 967, 0x0020, 0x0062 */
3879
    "Image Geometry Type\0" /* 968, 0x0020, 0x0070 */
3880
    "Masking Image\0" /* 969, 0x0020, 0x0080 */
3881
    "Temporal Position Identifier\0" /* 970, 0x0020, 0x0100 */
3882
    "Number of Temporal Positions\0" /* 971, 0x0020, 0x0105 */
3883
    "Temporal Resolution\0" /* 972, 0x0020, 0x0110 */
3884
    "Series in Study\0" /* 973, 0x0020, 0x1000 */
3885
    "Acquisitions in Series\0" /* 974, 0x0020, 0x1001 */
3886
    "Images in Acquisition\0" /* 975, 0x0020, 0x1002 */
3887
    "Images in Series\0" /* 976, 0x0020, 0x1003 */
3888
    "Acquisitions in Study\0" /* 977, 0x0020, 0x1004 */
3889
    "Images in Study\0" /* 978, 0x0020, 0x1005 */
3890
    "Reference\0" /* 979, 0x0020, 0x1020 */
3891
    "Position Reference Indicator\0" /* 980, 0x0020, 0x1040 */
3892
    "Slice Location\0" /* 981, 0x0020, 0x1041 */
3893
    "Other Study Numbers\0" /* 982, 0x0020, 0x1070 */
3894
    "Number of Patient Related Studies\0" /* 983, 0x0020, 0x1200 */
3895
    "Number of Patient Related Series\0" /* 984, 0x0020, 0x1202 */
3896
    "Number of Patient Related Images\0" /* 985, 0x0020, 0x1204 */
3897
    "Number of Study Related Series\0" /* 986, 0x0020, 0x1206 */
3898
    "Number of Study Related Series\0" /* 987, 0x0020, 0x1208 */
3899
    "Source Image IDs\0" /* 988, 0x0020, 0x3100 */
3900
    "Modifying Device ID\0" /* 989, 0x0020, 0x3401 */
3901
    "Modified Image ID\0" /* 990, 0x0020, 0x3402 */
3902
    "Modified Image Date\0" /* 991, 0x0020, 0x3403 */
3903
    "Modifying Device Manufacturer\0" /* 992, 0x0020, 0x3404 */
3904
    "Modified Image Time\0" /* 993, 0x0020, 0x3405 */
3905
    "Modified Image Description\0" /* 994, 0x0020, 0x3406 */
3906
    "Image Comments\0" /* 995, 0x0020, 0x4000 */
3907
    "Original Image Identification\0" /* 996, 0x0020, 0x5000 */
3908
    "Original Image Identification Nomenclature\0" /* 997, 0x0020, 0x5002 */
3909
    "?\0" /* 998, 0x0021, 0x0000 */
3910
    "?\0" /* 999, 0x0021, 0x0001 */
3911
    "?\0" /* 1000, 0x0021, 0x0002 */
3912
    "?\0" /* 1001, 0x0021, 0x0003 */
3913
    "VOI Position\0" /* 1002, 0x0021, 0x0004 */
3914
    "?\0" /* 1003, 0x0021, 0x0005 */
3915
    "CSI Matrix Size Original\0" /* 1004, 0x0021, 0x0006 */
3916
    "?\0" /* 1005, 0x0021, 0x0007 */
3917
    "Spatial Grid Shift\0" /* 1006, 0x0021, 0x0008 */
3918
    "Signal Limits Minimum\0" /* 1007, 0x0021, 0x0009 */
3919
    "?\0" /* 1008, 0x0021, 0x0010 */
3920
    "?\0" /* 1009, 0x0021, 0x0011 */
3921
    "?\0" /* 1010, 0x0021, 0x0012 */
3922
    "?\0" /* 1011, 0x0021, 0x0013 */
3923
    "?\0" /* 1012, 0x0021, 0x0014 */
3924
    "?\0" /* 1013, 0x0021, 0x0015 */
3925
    "?\0" /* 1014, 0x0021, 0x0016 */
3926
    "EPI Operation Mode Flag\0" /* 1015, 0x0021, 0x0017 */
3927
    "?\0" /* 1016, 0x0021, 0x0018 */
3928
    "?\0" /* 1017, 0x0021, 0x0019 */
3929
    "?\0" /* 1018, 0x0021, 0x0020 */
3930
    "?\0" /* 1019, 0x0021, 0x0021 */
3931
    "?\0" /* 1020, 0x0021, 0x0022 */
3932
    "?\0" /* 1021, 0x0021, 0x0024 */
3933
    "?\0" /* 1022, 0x0021, 0x0025 */
3934
    "Image Pixel Offset\0" /* 1023, 0x0021, 0x0026 */
3935
    "?\0" /* 1024, 0x0021, 0x0030 */
3936
    "?\0" /* 1025, 0x0021, 0x0031 */
3937
    "?\0" /* 1026, 0x0021, 0x0032 */
3938
    "?\0" /* 1027, 0x0021, 0x0034 */
3939
    "Series From Which Prescribed\0" /* 1028, 0x0021, 0x0035 */
3940
    "?\0" /* 1029, 0x0021, 0x0036 */
3941
    "Screen Format\0" /* 1030, 0x0021, 0x0037 */
3942
    "Slab Thickness\0" /* 1031, 0x0021, 0x0039 */
3943
    "?\0" /* 1032, 0x0021, 0x0040 */
3944
    "?\0" /* 1033, 0x0021, 0x0041 */
3945
    "?\0" /* 1034, 0x0021, 0x0042 */
3946
    "?\0" /* 1035, 0x0021, 0x0043 */
3947
    "?\0" /* 1036, 0x0021, 0x0044 */
3948
    "?\0" /* 1037, 0x0021, 0x0045 */
3949
    "?\0" /* 1038, 0x0021, 0x0046 */
3950
    "?\0" /* 1039, 0x0021, 0x0047 */
3951
    "?\0" /* 1040, 0x0021, 0x0048 */
3952
    "?\0" /* 1041, 0x0021, 0x0049 */
3953
    "?\0" /* 1042, 0x0021, 0x004a */
3954
    "?\0" /* 1043, 0x0021, 0x004e */
3955
    "?\0" /* 1044, 0x0021, 0x004f */
3956
    "?\0" /* 1045, 0x0021, 0x0050 */
3957
    "?\0" /* 1046, 0x0021, 0x0051 */
3958
    "?\0" /* 1047, 0x0021, 0x0052 */
3959
    "?\0" /* 1048, 0x0021, 0x0053 */
3960
    "?\0" /* 1049, 0x0021, 0x0054 */
3961
    "?\0" /* 1050, 0x0021, 0x0055 */
3962
    "?\0" /* 1051, 0x0021, 0x0056 */
3963
    "?\0" /* 1052, 0x0021, 0x0057 */
3964
    "?\0" /* 1053, 0x0021, 0x0058 */
3965
    "?\0" /* 1054, 0x0021, 0x0059 */
3966
    "Integer Slop\0" /* 1055, 0x0021, 0x005a */
3967
    "Float Slop\0" /* 1056, 0x0021, 0x005b */
3968
    "Float Slop\0" /* 1057, 0x0021, 0x005c */
3969
    "Float Slop\0" /* 1058, 0x0021, 0x005d */
3970
    "Float Slop\0" /* 1059, 0x0021, 0x005e */
3971
    "Float Slop\0" /* 1060, 0x0021, 0x005f */
3972
    "?\0" /* 1061, 0x0021, 0x0060 */
3973
    "Image Normal\0" /* 1062, 0x0021, 0x0061 */
3974
    "Reference Type Code\0" /* 1063, 0x0021, 0x0062 */
3975
    "Image Distance\0" /* 1064, 0x0021, 0x0063 */
3976
    "Image Positioning History Mask\0" /* 1065, 0x0021, 0x0065 */
3977
    "Image Row\0" /* 1066, 0x0021, 0x006a */
3978
    "Image Column\0" /* 1067, 0x0021, 0x006b */
3979
    "?\0" /* 1068, 0x0021, 0x0070 */
3980
    "?\0" /* 1069, 0x0021, 0x0071 */
3981
    "?\0" /* 1070, 0x0021, 0x0072 */
3982
    "Second Repetition Time\0" /* 1071, 0x0021, 0x0073 */
3983
    "Light Brightness\0" /* 1072, 0x0021, 0x0075 */
3984
    "Light Contrast\0" /* 1073, 0x0021, 0x0076 */
3985
    "Overlay Threshold\0" /* 1074, 0x0021, 0x007a */
3986
    "Surface Threshold\0" /* 1075, 0x0021, 0x007b */
3987
    "Grey Scale Threshold\0" /* 1076, 0x0021, 0x007c */
3988
    "?\0" /* 1077, 0x0021, 0x0080 */
3989
    "Auto Window Level Alpha\0" /* 1078, 0x0021, 0x0081 */
3990
    "?\0" /* 1079, 0x0021, 0x0082 */
3991
    "Auto Window Level Window\0" /* 1080, 0x0021, 0x0083 */
3992
    "Auto Window Level Level\0" /* 1081, 0x0021, 0x0084 */
3993
    "?\0" /* 1082, 0x0021, 0x0090 */
3994
    "?\0" /* 1083, 0x0021, 0x0091 */
3995
    "?\0" /* 1084, 0x0021, 0x0092 */
3996
    "?\0" /* 1085, 0x0021, 0x0093 */
3997
    "EPI Change Value of X Component\0" /* 1086, 0x0021, 0x0094 */
3998
    "EPI Change Value of Y Component\0" /* 1087, 0x0021, 0x0095 */
3999
    "EPI Change Value of Z Component\0" /* 1088, 0x0021, 0x0096 */
4000
    "?\0" /* 1089, 0x0021, 0x00a0 */
4001
    "?\0" /* 1090, 0x0021, 0x00a1 */
4002
    "?\0" /* 1091, 0x0021, 0x00a2 */
4003
    "?\0" /* 1092, 0x0021, 0x00a3 */
4004
    "?\0" /* 1093, 0x0021, 0x00a4 */
4005
    "?\0" /* 1094, 0x0021, 0x00a7 */
4006
    "?\0" /* 1095, 0x0021, 0x00b0 */
4007
    "?\0" /* 1096, 0x0021, 0x00c0 */
4008
    "?\0" /* 1097, 0x0023, 0x0000 */
4009
    "Number Of Series In Study\0" /* 1098, 0x0023, 0x0001 */
4010
    "Number Of Unarchived Series\0" /* 1099, 0x0023, 0x0002 */
4011
    "?\0" /* 1100, 0x0023, 0x0010 */
4012
    "?\0" /* 1101, 0x0023, 0x0020 */
4013
    "?\0" /* 1102, 0x0023, 0x0030 */
4014
    "?\0" /* 1103, 0x0023, 0x0040 */
4015
    "?\0" /* 1104, 0x0023, 0x0050 */
4016
    "?\0" /* 1105, 0x0023, 0x0060 */
4017
    "?\0" /* 1106, 0x0023, 0x0070 */
4018
    "Number Of Updates To Info\0" /* 1107, 0x0023, 0x0074 */
4019
    "Indicates If Study Has Complete Info\0" /* 1108, 0x0023, 0x007d */
4020
    "?\0" /* 1109, 0x0023, 0x0080 */
4021
    "?\0" /* 1110, 0x0023, 0x0090 */
4022
    "?\0" /* 1111, 0x0023, 0x00ff */
4023
    "Group Length\0" /* 1112, 0x0025, 0x0000 */
4024
    "Last Pulse Sequence Used\0" /* 1113, 0x0025, 0x0006 */
4025
    "Images In Series\0" /* 1114, 0x0025, 0x0007 */
4026
    "Landmark Counter\0" /* 1115, 0x0025, 0x0010 */
4027
    "Number Of Acquisitions\0" /* 1116, 0x0025, 0x0011 */
4028
    "Indicates Number Of Updates To Info\0" /* 1117, 0x0025, 0x0014 */
4029
    "Series Complete Flag\0" /* 1118, 0x0025, 0x0017 */
4030
    "Number Of Images Archived\0" /* 1119, 0x0025, 0x0018 */
4031
    "Last Image Number Used\0" /* 1120, 0x0025, 0x0019 */
4032
    "Primary Receiver Suite And Host\0" /* 1121, 0x0025, 0x001a */
4033
    "?\0" /* 1122, 0x0027, 0x0000 */
4034
    "Image Archive Flag\0" /* 1123, 0x0027, 0x0006 */
4035
    "Scout Type\0" /* 1124, 0x0027, 0x0010 */
4036
    "?\0" /* 1125, 0x0027, 0x0011 */
4037
    "?\0" /* 1126, 0x0027, 0x0012 */
4038
    "?\0" /* 1127, 0x0027, 0x0013 */
4039
    "?\0" /* 1128, 0x0027, 0x0014 */
4040
    "?\0" /* 1129, 0x0027, 0x0015 */
4041
    "?\0" /* 1130, 0x0027, 0x0016 */
4042
    "Vma Mamp\0" /* 1131, 0x0027, 0x001c */
4043
    "Vma Phase\0" /* 1132, 0x0027, 0x001d */
4044
    "Vma Mod\0" /* 1133, 0x0027, 0x001e */
4045
    "Vma Clip\0" /* 1134, 0x0027, 0x001f */
4046
    "Smart Scan On Off Flag\0" /* 1135, 0x0027, 0x0020 */
4047
    "Foreign Image Revision\0" /* 1136, 0x0027, 0x0030 */
4048
    "Imaging Mode\0" /* 1137, 0x0027, 0x0031 */
4049
    "Pulse Sequence\0" /* 1138, 0x0027, 0x0032 */
4050
    "Imaging Options\0" /* 1139, 0x0027, 0x0033 */
4051
    "Plane Type\0" /* 1140, 0x0027, 0x0035 */
4052
    "Oblique Plane\0" /* 1141, 0x0027, 0x0036 */
4053
    "RAS Letter Of Image Location\0" /* 1142, 0x0027, 0x0040 */
4054
    "Image Location\0" /* 1143, 0x0027, 0x0041 */
4055
    "Center R Coord Of Plane Image\0" /* 1144, 0x0027, 0x0042 */
4056
    "Center A Coord Of Plane Image\0" /* 1145, 0x0027, 0x0043 */
4057
    "Center S Coord Of Plane Image\0" /* 1146, 0x0027, 0x0044 */
4058
    "Normal R Coord\0" /* 1147, 0x0027, 0x0045 */
4059
    "Normal A Coord\0" /* 1148, 0x0027, 0x0046 */
4060
    "Normal S Coord\0" /* 1149, 0x0027, 0x0047 */
4061
    "R Coord Of Top Right Corner\0" /* 1150, 0x0027, 0x0048 */
4062
    "A Coord Of Top Right Corner\0" /* 1151, 0x0027, 0x0049 */
4063
    "S Coord Of Top Right Corner\0" /* 1152, 0x0027, 0x004a */
4064
    "R Coord Of Bottom Right Corner\0" /* 1153, 0x0027, 0x004b */
4065
    "A Coord Of Bottom Right Corner\0" /* 1154, 0x0027, 0x004c */
4066
    "S Coord Of Bottom Right Corner\0" /* 1155, 0x0027, 0x004d */
4067
    "Table Start Location\0" /* 1156, 0x0027, 0x0050 */
4068
    "Table End Location\0" /* 1157, 0x0027, 0x0051 */
4069
    "RAS Letter For Side Of Image\0" /* 1158, 0x0027, 0x0052 */
4070
    "RAS Letter For Anterior Posterior\0" /* 1159, 0x0027, 0x0053 */
4071
    "RAS Letter For Scout Start Loc\0" /* 1160, 0x0027, 0x0054 */
4072
    "RAS Letter For Scout End Loc\0" /* 1161, 0x0027, 0x0055 */
4073
    "Image Dimension X\0" /* 1162, 0x0027, 0x0060 */
4074
    "Image Dimension Y\0" /* 1163, 0x0027, 0x0061 */
4075
    "Number Of Excitations\0" /* 1164, 0x0027, 0x0062 */
4076
    "Image Presentation Group Length\0" /* 1165, 0x0028, 0x0000 */
4077
    "Samples per Pixel\0" /* 1166, 0x0028, 0x0002 */
4078
    "Photometric Interpretation\0" /* 1167, 0x0028, 0x0004 */
4079
    "Image Dimensions\0" /* 1168, 0x0028, 0x0005 */
4080
    "Planar Configuration\0" /* 1169, 0x0028, 0x0006 */
4081
    "Number of Frames\0" /* 1170, 0x0028, 0x0008 */
4082
    "Frame Increment Pointer\0" /* 1171, 0x0028, 0x0009 */
4083
    "Rows\0" /* 1172, 0x0028, 0x0010 */
4084
    "Columns\0" /* 1173, 0x0028, 0x0011 */
4085
    "Planes\0" /* 1174, 0x0028, 0x0012 */
4086
    "Ultrasound Color Data Present\0" /* 1175, 0x0028, 0x0014 */
4087
    "Pixel Spacing\0" /* 1176, 0x0028, 0x0030 */
4088
    "Zoom Factor\0" /* 1177, 0x0028, 0x0031 */
4089
    "Zoom Center\0" /* 1178, 0x0028, 0x0032 */
4090
    "Pixel Aspect Ratio\0" /* 1179, 0x0028, 0x0034 */
4091
    "Image Format\0" /* 1180, 0x0028, 0x0040 */
4092
    "Manipulated Image\0" /* 1181, 0x0028, 0x0050 */
4093
    "Corrected Image\0" /* 1182, 0x0028, 0x0051 */
4094
    "Compression Recognition Code\0" /* 1183, 0x0028, 0x005f */
4095
    "Compression Code\0" /* 1184, 0x0028, 0x0060 */
4096
    "Compression Originator\0" /* 1185, 0x0028, 0x0061 */
4097
    "Compression Label\0" /* 1186, 0x0028, 0x0062 */
4098
    "Compression Description\0" /* 1187, 0x0028, 0x0063 */
4099
    "Compression Sequence\0" /* 1188, 0x0028, 0x0065 */
4100
    "Compression Step Pointers\0" /* 1189, 0x0028, 0x0066 */
4101
    "Repeat Interval\0" /* 1190, 0x0028, 0x0068 */
4102
    "Bits Grouped\0" /* 1191, 0x0028, 0x0069 */
4103
    "Perimeter Table\0" /* 1192, 0x0028, 0x0070 */
4104
    "Perimeter Value\0" /* 1193, 0x0028, 0x0071 */
4105
    "Predictor Rows\0" /* 1194, 0x0028, 0x0080 */
4106
    "Predictor Columns\0" /* 1195, 0x0028, 0x0081 */
4107
    "Predictor Constants\0" /* 1196, 0x0028, 0x0082 */
4108
    "Blocked Pixels\0" /* 1197, 0x0028, 0x0090 */
4109
    "Block Rows\0" /* 1198, 0x0028, 0x0091 */
4110
    "Block Columns\0" /* 1199, 0x0028, 0x0092 */
4111
    "Row Overlap\0" /* 1200, 0x0028, 0x0093 */
4112
    "Column Overlap\0" /* 1201, 0x0028, 0x0094 */
4113
    "Bits Allocated\0" /* 1202, 0x0028, 0x0100 */
4114
    "Bits Stored\0" /* 1203, 0x0028, 0x0101 */
4115
    "High Bit\0" /* 1204, 0x0028, 0x0102 */
4116
    "Pixel Representation\0" /* 1205, 0x0028, 0x0103 */
4117
    "Smallest Valid Pixel Value\0" /* 1206, 0x0028, 0x0104 */
4118
    "Largest Valid Pixel Value\0" /* 1207, 0x0028, 0x0105 */
4119
    "Smallest Image Pixel Value\0" /* 1208, 0x0028, 0x0106 */
4120
    "Largest Image Pixel Value\0" /* 1209, 0x0028, 0x0107 */
4121
    "Smallest Pixel Value in Series\0" /* 1210, 0x0028, 0x0108 */
4122
    "Largest Pixel Value in Series\0" /* 1211, 0x0028, 0x0109 */
4123
    "Smallest Pixel Value in Plane\0" /* 1212, 0x0028, 0x0110 */
4124
    "Largest Pixel Value in Plane\0" /* 1213, 0x0028, 0x0111 */
4125
    "Pixel Padding Value\0" /* 1214, 0x0028, 0x0120 */
4126
    "Pixel Padding Range Limit\0" /* 1215, 0x0028, 0x0121 */
4127
    "Image Location\0" /* 1216, 0x0028, 0x0200 */
4128
    "Quality Control Image\0" /* 1217, 0x0028, 0x0300 */
4129
    "Burned In Annotation\0" /* 1218, 0x0028, 0x0301 */
4130
    "?\0" /* 1219, 0x0028, 0x0400 */
4131
    "?\0" /* 1220, 0x0028, 0x0401 */
4132
    "?\0" /* 1221, 0x0028, 0x0402 */
4133
    "?\0" /* 1222, 0x0028, 0x0403 */
4134
    "Details of Coefficients\0" /* 1223, 0x0028, 0x0404 */
4135
    "DCT Label\0" /* 1224, 0x0028, 0x0700 */
4136
    "Data Block Description\0" /* 1225, 0x0028, 0x0701 */
4137
    "Data Block\0" /* 1226, 0x0028, 0x0702 */
4138
    "Normalization Factor Format\0" /* 1227, 0x0028, 0x0710 */
4139
    "Zonal Map Number Format\0" /* 1228, 0x0028, 0x0720 */
4140
    "Zonal Map Location\0" /* 1229, 0x0028, 0x0721 */
4141
    "Zonal Map Format\0" /* 1230, 0x0028, 0x0722 */
4142
    "Adaptive Map Format\0" /* 1231, 0x0028, 0x0730 */
4143
    "Code Number Format\0" /* 1232, 0x0028, 0x0740 */
4144
    "Code Label\0" /* 1233, 0x0028, 0x0800 */
4145
    "Number of Tables\0" /* 1234, 0x0028, 0x0802 */
4146
    "Code Table Location\0" /* 1235, 0x0028, 0x0803 */
4147
    "Bits For Code Word\0" /* 1236, 0x0028, 0x0804 */
4148
    "Image Data Location\0" /* 1237, 0x0028, 0x0808 */
4149
    "Pixel Intensity Relationship\0" /* 1238, 0x0028, 0x1040 */
4150
    "Pixel Intensity Relationship Sign\0" /* 1239, 0x0028, 0x1041 */
4151
    "Window Center\0" /* 1240, 0x0028, 0x1050 */
4152
    "Window Width\0" /* 1241, 0x0028, 0x1051 */
4153
    "Rescale Intercept\0" /* 1242, 0x0028, 0x1052 */
4154
    "Rescale Slope\0" /* 1243, 0x0028, 0x1053 */
4155
    "Rescale Type\0" /* 1244, 0x0028, 0x1054 */
4156
    "Window Center & Width Explanation\0" /* 1245, 0x0028, 0x1055 */
4157
    "Gray Scale\0" /* 1246, 0x0028, 0x1080 */
4158
    "Recommended Viewing Mode\0" /* 1247, 0x0028, 0x1090 */
4159
    "Gray Lookup Table Descriptor\0" /* 1248, 0x0028, 0x1100 */
4160
    "Red Palette Color Lookup Table Descriptor\0" /* 1249, 0x0028, 0x1101 */
4161
    "Green Palette Color Lookup Table Descriptor\0" /* 1250, 0x0028, 0x1102 */
4162
    "Blue Palette Color Lookup Table Descriptor\0" /* 1251, 0x0028, 0x1103 */
4163
    "Large Red Palette Color Lookup Table Descriptor\0" /* 1252, 0x0028, 0x1111 */
4164
    "Large Green Palette Color Lookup Table Descriptor\0" /* 1253, 0x0028, 0x1112 */
4165
    "Large Blue Palette Color Lookup Table Descriptor\0" /* 1254, 0x0028, 0x1113 */
4166
    "Palette Color Lookup Table UID\0" /* 1255, 0x0028, 0x1199 */
4167
    "Gray Lookup Table Data\0" /* 1256, 0x0028, 0x1200 */
4168
    "Red Palette Color Lookup Table Data\0" /* 1257, 0x0028, 0x1201 */
4169
    "Green Palette Color Lookup Table Data\0" /* 1258, 0x0028, 0x1202 */
4170
    "Blue Palette Color Lookup Table Data\0" /* 1259, 0x0028, 0x1203 */
4171
    "Large Red Palette Color Lookup Table Data\0" /* 1260, 0x0028, 0x1211 */
4172
    "Large Green Palette Color Lookup Table Data\0" /* 1261, 0x0028, 0x1212 */
4173
    "Large Blue Palette Color Lookup Table Data\0" /* 1262, 0x0028, 0x1213 */
4174
    "Large Palette Color Lookup Table UID\0" /* 1263, 0x0028, 0x1214 */
4175
    "Segmented Red Palette Color Lookup Table Data\0" /* 1264, 0x0028, 0x1221 */
4176
    "Segmented Green Palette Color Lookup Table Data\0" /* 1265, 0x0028, 0x1222 */
4177
    "Segmented Blue Palette Color Lookup Table Data\0" /* 1266, 0x0028, 0x1223 */
4178
    "Implant Present\0" /* 1267, 0x0028, 0x1300 */
4179
    "Lossy Image Compression\0" /* 1268, 0x0028, 0x2110 */
4180
    "Lossy Image Compression Ratio\0" /* 1269, 0x0028, 0x2112 */
4181
    "Modality LUT Sequence\0" /* 1270, 0x0028, 0x3000 */
4182
    "LUT Descriptor\0" /* 1271, 0x0028, 0x3002 */
4183
    "LUT Explanation\0" /* 1272, 0x0028, 0x3003 */
4184
    "Modality LUT Type\0" /* 1273, 0x0028, 0x3004 */
4185
    "LUT Data\0" /* 1274, 0x0028, 0x3006 */
4186
    "VOI LUT Sequence\0" /* 1275, 0x0028, 0x3010 */
4187
    "Image Presentation Comments\0" /* 1276, 0x0028, 0x4000 */
4188
    "Biplane Acquisition Sequence\0" /* 1277, 0x0028, 0x5000 */
4189
    "Representative Frame Number\0" /* 1278, 0x0028, 0x6010 */
4190
    "Frame Numbers of Interest\0" /* 1279, 0x0028, 0x6020 */
4191
    "Frame of Interest Description\0" /* 1280, 0x0028, 0x6022 */
4192
    "Mask Pointer\0" /* 1281, 0x0028, 0x6030 */
4193
    "R Wave Pointer\0" /* 1282, 0x0028, 0x6040 */
4194
    "Mask Subtraction Sequence\0" /* 1283, 0x0028, 0x6100 */
4195
    "Mask Operation\0" /* 1284, 0x0028, 0x6101 */
4196
    "Applicable Frame Range\0" /* 1285, 0x0028, 0x6102 */
4197
    "Mask Frame Numbers\0" /* 1286, 0x0028, 0x6110 */
4198
    "Contrast Frame Averaging\0" /* 1287, 0x0028, 0x6112 */
4199
    "Mask Sub-Pixel Shift\0" /* 1288, 0x0028, 0x6114 */
4200
    "TID Offset\0" /* 1289, 0x0028, 0x6120 */
4201
    "Mask Operation Explanation\0" /* 1290, 0x0028, 0x6190 */
4202
    "?\0" /* 1291, 0x0029, 0x0000 */
4203
    "?\0" /* 1292, 0x0029, 0x0001 */
4204
    "?\0" /* 1293, 0x0029, 0x0002 */
4205
    "?\0" /* 1294, 0x0029, 0x0003 */
4206
    "?\0" /* 1295, 0x0029, 0x0004 */
4207
    "?\0" /* 1296, 0x0029, 0x0005 */
4208
    "?\0" /* 1297, 0x0029, 0x0006 */
4209
    "Lower Range Of Pixels\0" /* 1298, 0x0029, 0x0007 */
4210
    "Lower Range Of Pixels\0" /* 1299, 0x0029, 0x0008 */
4211
    "Lower Range Of Pixels\0" /* 1300, 0x0029, 0x0009 */
4212
    "Lower Range Of Pixels\0" /* 1301, 0x0029, 0x000a */
4213
    "?\0" /* 1302, 0x0029, 0x000c */
4214
    "Zoom Enable Status\0" /* 1303, 0x0029, 0x000e */
4215
    "Zoom Select Status\0" /* 1304, 0x0029, 0x000f */
4216
    "?\0" /* 1305, 0x0029, 0x0010 */
4217
    "?\0" /* 1306, 0x0029, 0x0011 */
4218
    "?\0" /* 1307, 0x0029, 0x0013 */
4219
    "?\0" /* 1308, 0x0029, 0x0015 */
4220
    "Lower Range Of Pixels\0" /* 1309, 0x0029, 0x0016 */
4221
    "Lower Range Of Pixels\0" /* 1310, 0x0029, 0x0017 */
4222
    "Upper Range Of Pixels\0" /* 1311, 0x0029, 0x0018 */
4223
    "Length Of Total Info In Bytes\0" /* 1312, 0x0029, 0x001a */
4224
    "?\0" /* 1313, 0x0029, 0x001e */
4225
    "?\0" /* 1314, 0x0029, 0x001f */
4226
    "?\0" /* 1315, 0x0029, 0x0020 */
4227
    "Pixel Quality Value\0" /* 1316, 0x0029, 0x0022 */
4228
    "Processed Pixel Data Quality\0" /* 1317, 0x0029, 0x0025 */
4229
    "Version Of Info Structure\0" /* 1318, 0x0029, 0x0026 */
4230
    "?\0" /* 1319, 0x0029, 0x0030 */
4231
    "?\0" /* 1320, 0x0029, 0x0031 */
4232
    "?\0" /* 1321, 0x0029, 0x0032 */
4233
    "?\0" /* 1322, 0x0029, 0x0033 */
4234
    "?\0" /* 1323, 0x0029, 0x0034 */
4235
    "Advantage Comp Underflow\0" /* 1324, 0x0029, 0x0035 */
4236
    "?\0" /* 1325, 0x0029, 0x0038 */
4237
    "?\0" /* 1326, 0x0029, 0x0040 */
4238
    "Magnifying Glass Rectangle\0" /* 1327, 0x0029, 0x0041 */
4239
    "Magnifying Glass Factor\0" /* 1328, 0x0029, 0x0043 */
4240
    "Magnifying Glass Function\0" /* 1329, 0x0029, 0x0044 */
4241
    "Magnifying Glass Enable Status\0" /* 1330, 0x0029, 0x004e */
4242
    "Magnifying Glass Select Status\0" /* 1331, 0x0029, 0x004f */
4243
    "?\0" /* 1332, 0x0029, 0x0050 */
4244
    "Exposure Code\0" /* 1333, 0x0029, 0x0051 */
4245
    "Sort Code\0" /* 1334, 0x0029, 0x0052 */
4246
    "?\0" /* 1335, 0x0029, 0x0053 */
4247
    "?\0" /* 1336, 0x0029, 0x0060 */
4248
    "?\0" /* 1337, 0x0029, 0x0061 */
4249
    "?\0" /* 1338, 0x0029, 0x0067 */
4250
    "?\0" /* 1339, 0x0029, 0x0070 */
4251
    "?\0" /* 1340, 0x0029, 0x0071 */
4252
    "?\0" /* 1341, 0x0029, 0x0072 */
4253
    "Window Select Status\0" /* 1342, 0x0029, 0x0077 */
4254
    "ECG Display Printing ID\0" /* 1343, 0x0029, 0x0078 */
4255
    "ECG Display Printing\0" /* 1344, 0x0029, 0x0079 */
4256
    "ECG Display Printing Enable Status\0" /* 1345, 0x0029, 0x007e */
4257
    "ECG Display Printing Select Status\0" /* 1346, 0x0029, 0x007f */
4258
    "?\0" /* 1347, 0x0029, 0x0080 */
4259
    "?\0" /* 1348, 0x0029, 0x0081 */
4260
    "View Zoom\0" /* 1349, 0x0029, 0x0082 */
4261
    "View Transform\0" /* 1350, 0x0029, 0x0083 */
4262
    "Physiological Display Enable Status\0" /* 1351, 0x0029, 0x008e */
4263
    "Physiological Display Select Status\0" /* 1352, 0x0029, 0x008f */
4264
    "?\0" /* 1353, 0x0029, 0x0090 */
4265
    "Shutter Type\0" /* 1354, 0x0029, 0x0099 */
4266
    "Rows of Rectangular Shutter\0" /* 1355, 0x0029, 0x00a0 */
4267
    "Columns of Rectangular Shutter\0" /* 1356, 0x0029, 0x00a1 */
4268
    "Origin of Rectangular Shutter\0" /* 1357, 0x0029, 0x00a2 */
4269
    "Radius of Circular Shutter\0" /* 1358, 0x0029, 0x00b0 */
4270
    "Origin of Circular Shutter\0" /* 1359, 0x0029, 0x00b2 */
4271
    "Functional Shutter ID\0" /* 1360, 0x0029, 0x00c0 */
4272
    "?\0" /* 1361, 0x0029, 0x00c1 */
4273
    "Scan Resolution\0" /* 1362, 0x0029, 0x00c3 */
4274
    "Field of View\0" /* 1363, 0x0029, 0x00c4 */
4275
    "Field Of Shutter Rectangle\0" /* 1364, 0x0029, 0x00c5 */
4276
    "Shutter Enable Status\0" /* 1365, 0x0029, 0x00ce */
4277
    "Shutter Select Status\0" /* 1366, 0x0029, 0x00cf */
4278
    "?\0" /* 1367, 0x0029, 0x00d0 */
4279
    "?\0" /* 1368, 0x0029, 0x00d1 */
4280
    "Slice Thickness\0" /* 1369, 0x0029, 0x00d5 */
4281
    "Request UID\0" /* 1370, 0x0031, 0x0010 */
4282
    "Examination Reason\0" /* 1371, 0x0031, 0x0012 */
4283
    "Requested Date\0" /* 1372, 0x0031, 0x0030 */
4284
    "Worklist Request Start Time\0" /* 1373, 0x0031, 0x0032 */
4285
    "Worklist Request End Time\0" /* 1374, 0x0031, 0x0033 */
4286
    "Requesting Physician\0" /* 1375, 0x0031, 0x0045 */
4287
    "Requested Time\0" /* 1376, 0x0031, 0x004a */
4288
    "Requested Physician\0" /* 1377, 0x0031, 0x0050 */
4289
    "Requested Location\0" /* 1378, 0x0031, 0x0080 */
4290
    "Study Group Length\0" /* 1379, 0x0032, 0x0000 */
4291
    "Study Status ID\0" /* 1380, 0x0032, 0x000a */
4292
    "Study Priority ID\0" /* 1381, 0x0032, 0x000c */
4293
    "Study ID Issuer\0" /* 1382, 0x0032, 0x0012 */
4294
    "Study Verified Date\0" /* 1383, 0x0032, 0x0032 */
4295
    "Study Verified Time\0" /* 1384, 0x0032, 0x0033 */
4296
    "Study Read Date\0" /* 1385, 0x0032, 0x0034 */
4297
    "Study Read Time\0" /* 1386, 0x0032, 0x0035 */
4298
    "Scheduled Study Start Date\0" /* 1387, 0x0032, 0x1000 */
4299
    "Scheduled Study Start Time\0" /* 1388, 0x0032, 0x1001 */
4300
    "Scheduled Study Stop Date\0" /* 1389, 0x0032, 0x1010 */
4301
    "Scheduled Study Stop Time\0" /* 1390, 0x0032, 0x1011 */
4302
    "Scheduled Study Location\0" /* 1391, 0x0032, 0x1020 */
4303
    "Scheduled Study Location AE Title(s)\0" /* 1392, 0x0032, 0x1021 */
4304
    "Reason for Study\0" /* 1393, 0x0032, 0x1030 */
4305
    "Requesting Physician\0" /* 1394, 0x0032, 0x1032 */
4306
    "Requesting Service\0" /* 1395, 0x0032, 0x1033 */
4307
    "Study Arrival Date\0" /* 1396, 0x0032, 0x1040 */
4308
    "Study Arrival Time\0" /* 1397, 0x0032, 0x1041 */
4309
    "Study Completion Date\0" /* 1398, 0x0032, 0x1050 */
4310
    "Study Completion Time\0" /* 1399, 0x0032, 0x1051 */
4311
    "Study Component Status ID\0" /* 1400, 0x0032, 0x1055 */
4312
    "Requested Procedure Description\0" /* 1401, 0x0032, 0x1060 */
4313
    "Requested Procedure Code Sequence\0" /* 1402, 0x0032, 0x1064 */
4314
    "Requested Contrast Agent\0" /* 1403, 0x0032, 0x1070 */
4315
    "Study Comments\0" /* 1404, 0x0032, 0x4000 */
4316
    "?\0" /* 1405, 0x0033, 0x0001 */
4317
    "?\0" /* 1406, 0x0033, 0x0002 */
4318
    "?\0" /* 1407, 0x0033, 0x0005 */
4319
    "?\0" /* 1408, 0x0033, 0x0006 */
4320
    "Patient Study UID\0" /* 1409, 0x0033, 0x0010 */
4321
    "ReferringDepartment\0" /* 1410, 0x0037, 0x0010 */
4322
    "ScreenNumber\0" /* 1411, 0x0037, 0x0020 */
4323
    "LeftOrientation\0" /* 1412, 0x0037, 0x0040 */
4324
    "RightOrientation\0" /* 1413, 0x0037, 0x0042 */
4325
    "Inversion\0" /* 1414, 0x0037, 0x0050 */
4326
    "DSA\0" /* 1415, 0x0037, 0x0060 */
4327
    "Visit Group Length\0" /* 1416, 0x0038, 0x0000 */
4328
    "Referenced Patient Alias Sequence\0" /* 1417, 0x0038, 0x0004 */
4329
    "Visit Status ID\0" /* 1418, 0x0038, 0x0008 */
4330
    "Admission ID\0" /* 1419, 0x0038, 0x0010 */
4331
    "Issuer of Admission ID\0" /* 1420, 0x0038, 0x0011 */
4332
    "Route of Admissions\0" /* 1421, 0x0038, 0x0016 */
4333
    "Scheduled Admission Date\0" /* 1422, 0x0038, 0x001a */
4334
    "Scheduled Admission Time\0" /* 1423, 0x0038, 0x001b */
4335
    "Scheduled Discharge Date\0" /* 1424, 0x0038, 0x001c */
4336
    "Scheduled Discharge Time\0" /* 1425, 0x0038, 0x001d */
4337
    "Scheduled Patient Institution Residence\0" /* 1426, 0x0038, 0x001e */
4338
    "Admitting Date\0" /* 1427, 0x0038, 0x0020 */
4339
    "Admitting Time\0" /* 1428, 0x0038, 0x0021 */
4340
    "Discharge Date\0" /* 1429, 0x0038, 0x0030 */
4341
    "Discharge Time\0" /* 1430, 0x0038, 0x0032 */
4342
    "Discharge Diagnosis Description\0" /* 1431, 0x0038, 0x0040 */
4343
    "Discharge Diagnosis Code Sequence\0" /* 1432, 0x0038, 0x0044 */
4344
    "Special Needs\0" /* 1433, 0x0038, 0x0050 */
4345
    "Current Patient Location\0" /* 1434, 0x0038, 0x0300 */
4346
    "Patient's Institution Residence\0" /* 1435, 0x0038, 0x0400 */
4347
    "Patient State\0" /* 1436, 0x0038, 0x0500 */
4348
    "Visit Comments\0" /* 1437, 0x0038, 0x4000 */
4349
    "Private Entity Number\0" /* 1438, 0x0039, 0x0080 */
4350
    "Private Entity Date\0" /* 1439, 0x0039, 0x0085 */
4351
    "Private Entity Time\0" /* 1440, 0x0039, 0x0090 */
4352
    "Private Entity Launch Command\0" /* 1441, 0x0039, 0x0095 */
4353
    "Private Entity Type\0" /* 1442, 0x0039, 0x00aa */
4354
    "Waveform Sequence\0" /* 1443, 0x003a, 0x0002 */
4355
    "Waveform Number of Channels\0" /* 1444, 0x003a, 0x0005 */
4356
    "Waveform Number of Samples\0" /* 1445, 0x003a, 0x0010 */
4357
    "Sampling Frequency\0" /* 1446, 0x003a, 0x001a */
4358
    "Group Label\0" /* 1447, 0x003a, 0x0020 */
4359
    "Waveform Sample Value Representation\0" /* 1448, 0x003a, 0x0103 */
4360
    "Waveform Padding Value\0" /* 1449, 0x003a, 0x0122 */
4361
    "Channel Definition\0" /* 1450, 0x003a, 0x0200 */
4362
    "Waveform Channel Number\0" /* 1451, 0x003a, 0x0202 */
4363
    "Channel Label\0" /* 1452, 0x003a, 0x0203 */
4364
    "Channel Status\0" /* 1453, 0x003a, 0x0205 */
4365
    "Channel Source\0" /* 1454, 0x003a, 0x0208 */
4366
    "Channel Source Modifiers\0" /* 1455, 0x003a, 0x0209 */
4367
    "Differential Channel Source\0" /* 1456, 0x003a, 0x020a */
4368
    "Differential Channel Source Modifiers\0" /* 1457, 0x003a, 0x020b */
4369
    "Channel Sensitivity\0" /* 1458, 0x003a, 0x0210 */
4370
    "Channel Sensitivity Units\0" /* 1459, 0x003a, 0x0211 */
4371
    "Channel Sensitivity Correction Factor\0" /* 1460, 0x003a, 0x0212 */
4372
    "Channel Baseline\0" /* 1461, 0x003a, 0x0213 */
4373
    "Channel Time Skew\0" /* 1462, 0x003a, 0x0214 */
4374
    "Channel Sample Skew\0" /* 1463, 0x003a, 0x0215 */
4375
    "Channel Minimum Value\0" /* 1464, 0x003a, 0x0216 */
4376
    "Channel Maximum Value\0" /* 1465, 0x003a, 0x0217 */
4377
    "Channel Offset\0" /* 1466, 0x003a, 0x0218 */
4378
    "Bits Per Sample\0" /* 1467, 0x003a, 0x021a */
4379
    "Filter Low Frequency\0" /* 1468, 0x003a, 0x0220 */
4380
    "Filter High Frequency\0" /* 1469, 0x003a, 0x0221 */
4381
    "Notch Filter Frequency\0" /* 1470, 0x003a, 0x0222 */
4382
    "Notch Filter Bandwidth\0" /* 1471, 0x003a, 0x0223 */
4383
    "Waveform Data\0" /* 1472, 0x003a, 0x1000 */
4384
    "Scheduled Station AE Title\0" /* 1473, 0x0040, 0x0001 */
4385
    "Scheduled Procedure Step Start Date\0" /* 1474, 0x0040, 0x0002 */
4386
    "Scheduled Procedure Step Start Time\0" /* 1475, 0x0040, 0x0003 */
4387
    "Scheduled Procedure Step End Date\0" /* 1476, 0x0040, 0x0004 */
4388
    "Scheduled Procedure Step End Time\0" /* 1477, 0x0040, 0x0005 */
4389
    "Scheduled Performing Physician Name\0" /* 1478, 0x0040, 0x0006 */
4390
    "Scheduled Procedure Step Description\0" /* 1479, 0x0040, 0x0007 */
4391
    "Scheduled Action Item Code Sequence\0" /* 1480, 0x0040, 0x0008 */
4392
    "Scheduled Procedure Step ID\0" /* 1481, 0x0040, 0x0009 */
4393
    "Scheduled Station Name\0" /* 1482, 0x0040, 0x0010 */
4394
    "Scheduled Procedure Step Location\0" /* 1483, 0x0040, 0x0011 */
4395
    "Pre-Medication\0" /* 1484, 0x0040, 0x0012 */
4396
    "Scheduled Procedure Step Status\0" /* 1485, 0x0040, 0x0020 */
4397
    "Scheduled Procedure Step Sequence\0" /* 1486, 0x0040, 0x0100 */
4398
    "Entrance Dose\0" /* 1487, 0x0040, 0x0302 */
4399
    "Exposed Area\0" /* 1488, 0x0040, 0x0303 */
4400
    "Distance Source to Entrance\0" /* 1489, 0x0040, 0x0306 */
4401
    "Distance Source to Support\0" /* 1490, 0x0040, 0x0307 */
4402
    "Comments On Radiation Dose\0" /* 1491, 0x0040, 0x0310 */
4403
    "X-Ray Output\0" /* 1492, 0x0040, 0x0312 */
4404
    "Half Value Layer\0" /* 1493, 0x0040, 0x0314 */
4405
    "Organ Dose\0" /* 1494, 0x0040, 0x0316 */
4406
    "Organ Exposed\0" /* 1495, 0x0040, 0x0318 */
4407
    "Comments On Scheduled Procedure Step\0" /* 1496, 0x0040, 0x0400 */
4408
    "Specimen Accession Number\0" /* 1497, 0x0040, 0x050a */
4409
    "Specimen Sequence\0" /* 1498, 0x0040, 0x0550 */
4410
    "Specimen Identifier\0" /* 1499, 0x0040, 0x0551 */
4411
    "Specimen Description Sequence\0" /* 1500, 0x0040, 0x0552 */
4412
    "Specimen Description\0" /* 1501, 0x0040, 0x0553 */
4413
    "Acquisition Context Sequence\0" /* 1502, 0x0040, 0x0555 */
4414
    "Acquisition Context Description\0" /* 1503, 0x0040, 0x0556 */
4415
    "Specimen Type Code Sequence\0" /* 1504, 0x0040, 0x059a */
4416
    "Slide Identifier\0" /* 1505, 0x0040, 0x06fa */
4417
    "Image Center Point Coordinates Sequence\0" /* 1506, 0x0040, 0x071a */
4418
    "X Offset In Slide Coordinate System\0" /* 1507, 0x0040, 0x072a */
4419
    "Y Offset In Slide Coordinate System\0" /* 1508, 0x0040, 0x073a */
4420
    "Z Offset In Slide Coordinate System\0" /* 1509, 0x0040, 0x074a */
4421
    "Pixel Spacing Sequence\0" /* 1510, 0x0040, 0x08d8 */
4422
    "Coordinate System Axis Code Sequence\0" /* 1511, 0x0040, 0x08da */
4423
    "Measurement Units Code Sequence\0" /* 1512, 0x0040, 0x08ea */
4424
    "Vital Stain Code Sequence\0" /* 1513, 0x0040, 0x09f8 */
4425
    "Requested Procedure ID\0" /* 1514, 0x0040, 0x1001 */
4426
    "Reason For Requested Procedure\0" /* 1515, 0x0040, 0x1002 */
4427
    "Requested Procedure Priority\0" /* 1516, 0x0040, 0x1003 */
4428
    "Patient Transport Arrangements\0" /* 1517, 0x0040, 0x1004 */
4429
    "Requested Procedure Location\0" /* 1518, 0x0040, 0x1005 */
4430
    "Placer Order Number of Procedure\0" /* 1519, 0x0040, 0x1006 */
4431
    "Filler Order Number of Procedure\0" /* 1520, 0x0040, 0x1007 */
4432
    "Confidentiality Code\0" /* 1521, 0x0040, 0x1008 */
4433
    "Reporting Priority\0" /* 1522, 0x0040, 0x1009 */
4434
    "Names of Intended Recipients of Results\0" /* 1523, 0x0040, 0x1010 */
4435
    "Requested Procedure Comments\0" /* 1524, 0x0040, 0x1400 */
4436
    "Reason For Imaging Service Request\0" /* 1525, 0x0040, 0x2001 */
4437
    "Issue Date of Imaging Service Request\0" /* 1526, 0x0040, 0x2004 */
4438
    "Issue Time of Imaging Service Request\0" /* 1527, 0x0040, 0x2005 */
4439
    "Placer Order Number of Imaging Service Request\0" /* 1528, 0x0040, 0x2006 */
4440
    "Filler Order Number of Imaging Service Request\0" /* 1529, 0x0040, 0x2007 */
4441
    "Order Entered By\0" /* 1530, 0x0040, 0x2008 */
4442
    "Order Enterer Location\0" /* 1531, 0x0040, 0x2009 */
4443
    "Order Callback Phone Number\0" /* 1532, 0x0040, 0x2010 */
4444
    "Imaging Service Request Comments\0" /* 1533, 0x0040, 0x2400 */
4445
    "Confidentiality Constraint On Patient Data\0" /* 1534, 0x0040, 0x3001 */
4446
    "Findings Flag\0" /* 1535, 0x0040, 0xa007 */
4447
    "Findings Sequence\0" /* 1536, 0x0040, 0xa020 */
4448
    "Findings Group UID\0" /* 1537, 0x0040, 0xa021 */
4449
    "Referenced Findings Group UID\0" /* 1538, 0x0040, 0xa022 */
4450
    "Findings Group Recording Date\0" /* 1539, 0x0040, 0xa023 */
4451
    "Findings Group Recording Time\0" /* 1540, 0x0040, 0xa024 */
4452
    "Findings Source Category Code Sequence\0" /* 1541, 0x0040, 0xa026 */
4453
    "Documenting Organization\0" /* 1542, 0x0040, 0xa027 */
4454
    "Documenting Organization Identifier Code Sequence\0" /* 1543, 0x0040, 0xa028 */
4455
    "History Reliability Qualifier Description\0" /* 1544, 0x0040, 0xa032 */
4456
    "Concept Name Code Sequence\0" /* 1545, 0x0040, 0xa043 */
4457
    "Measurement Precision Description\0" /* 1546, 0x0040, 0xa047 */
4458
    "Urgency or Priority Alerts\0" /* 1547, 0x0040, 0xa057 */
4459
    "Sequencing Indicator\0" /* 1548, 0x0040, 0xa060 */
4460
    "Document Identifier Code Sequence\0" /* 1549, 0x0040, 0xa066 */
4461
    "Document Author\0" /* 1550, 0x0040, 0xa067 */
4462
    "Document Author Identifier Code Sequence\0" /* 1551, 0x0040, 0xa068 */
4463
    "Identifier Code Sequence\0" /* 1552, 0x0040, 0xa070 */
4464
    "Object String Identifier\0" /* 1553, 0x0040, 0xa073 */
4465
    "Object Binary Identifier\0" /* 1554, 0x0040, 0xa074 */
4466
    "Documenting Observer\0" /* 1555, 0x0040, 0xa075 */
4467
    "Documenting Observer Identifier Code Sequence\0" /* 1556, 0x0040, 0xa076 */
4468
    "Observation Subject Identifier Code Sequence\0" /* 1557, 0x0040, 0xa078 */
4469
    "Person Identifier Code Sequence\0" /* 1558, 0x0040, 0xa080 */
4470
    "Procedure Identifier Code Sequence\0" /* 1559, 0x0040, 0xa085 */
4471
    "Object Directory String Identifier\0" /* 1560, 0x0040, 0xa088 */
4472
    "Object Directory Binary Identifier\0" /* 1561, 0x0040, 0xa089 */
4473
    "History Reliability Qualifier\0" /* 1562, 0x0040, 0xa090 */
4474
    "Referenced Type of Data\0" /* 1563, 0x0040, 0xa0a0 */
4475
    "Referenced Waveform Channels\0" /* 1564, 0x0040, 0xa0b0 */
4476
    "Date of Document or Verbal Transaction\0" /* 1565, 0x0040, 0xa110 */
4477
    "Time of Document Creation or Verbal Transaction\0" /* 1566, 0x0040, 0xa112 */
4478
    "Date\0" /* 1567, 0x0040, 0xa121 */
4479
    "Time\0" /* 1568, 0x0040, 0xa122 */
4480
    "Person Name\0" /* 1569, 0x0040, 0xa123 */
4481
    "Referenced Person Sequence\0" /* 1570, 0x0040, 0xa124 */
4482
    "Report Status ID\0" /* 1571, 0x0040, 0xa125 */
4483
    "Temporal Range Type\0" /* 1572, 0x0040, 0xa130 */
4484
    "Referenced Sample Offsets\0" /* 1573, 0x0040, 0xa132 */
4485
    "Referenced Frame Numbers\0" /* 1574, 0x0040, 0xa136 */
4486
    "Referenced Time Offsets\0" /* 1575, 0x0040, 0xa138 */
4487
    "Referenced Datetime\0" /* 1576, 0x0040, 0xa13a */
4488
    "Text Value\0" /* 1577, 0x0040, 0xa160 */
4489
    "Observation Category Code Sequence\0" /* 1578, 0x0040, 0xa167 */
4490
    "Concept Code Sequence\0" /* 1579, 0x0040, 0xa168 */
4491
    "Bibliographic Citation\0" /* 1580, 0x0040, 0xa16a */
4492
    "Observation Class\0" /* 1581, 0x0040, 0xa170 */
4493
    "Observation UID\0" /* 1582, 0x0040, 0xa171 */
4494
    "Referenced Observation UID\0" /* 1583, 0x0040, 0xa172 */
4495
    "Referenced Observation Class\0" /* 1584, 0x0040, 0xa173 */
4496
    "Referenced Object Observation Class\0" /* 1585, 0x0040, 0xa174 */
4497
    "Annotation Group Number\0" /* 1586, 0x0040, 0xa180 */
4498
    "Observation Date\0" /* 1587, 0x0040, 0xa192 */
4499
    "Observation Time\0" /* 1588, 0x0040, 0xa193 */
4500
    "Measurement Automation\0" /* 1589, 0x0040, 0xa194 */
4501
    "Concept Name Code Sequence Modifier\0" /* 1590, 0x0040, 0xa195 */
4502
    "Identification Description\0" /* 1591, 0x0040, 0xa224 */
4503
    "Coordinates Set Geometric Type\0" /* 1592, 0x0040, 0xa290 */
4504
    "Algorithm Code Sequence\0" /* 1593, 0x0040, 0xa296 */
4505
    "Algorithm Description\0" /* 1594, 0x0040, 0xa297 */
4506
    "Pixel Coordinates Set\0" /* 1595, 0x0040, 0xa29a */
4507
    "Measured Value Sequence\0" /* 1596, 0x0040, 0xa300 */
4508
    "Current Observer\0" /* 1597, 0x0040, 0xa307 */
4509
    "Numeric Value\0" /* 1598, 0x0040, 0xa30a */
4510
    "Referenced Accession Sequence\0" /* 1599, 0x0040, 0xa313 */
4511
    "Report Status Comment\0" /* 1600, 0x0040, 0xa33a */
4512
    "Procedure Context Sequence\0" /* 1601, 0x0040, 0xa340 */
4513
    "Verbal Source\0" /* 1602, 0x0040, 0xa352 */
4514
    "Address\0" /* 1603, 0x0040, 0xa353 */
4515
    "Telephone Number\0" /* 1604, 0x0040, 0xa354 */
4516
    "Verbal Source Identifier Code Sequence\0" /* 1605, 0x0040, 0xa358 */
4517
    "Report Detail Sequence\0" /* 1606, 0x0040, 0xa380 */
4518
    "Observation Subject UID\0" /* 1607, 0x0040, 0xa402 */
4519
    "Observation Subject Class\0" /* 1608, 0x0040, 0xa403 */
4520
    "Observation Subject Type Code Sequence\0" /* 1609, 0x0040, 0xa404 */
4521
    "Observation Subject Context Flag\0" /* 1610, 0x0040, 0xa600 */
4522
    "Observer Context Flag\0" /* 1611, 0x0040, 0xa601 */
4523
    "Procedure Context Flag\0" /* 1612, 0x0040, 0xa603 */
4524
    "Observations Sequence\0" /* 1613, 0x0040, 0xa730 */
4525
    "Relationship Sequence\0" /* 1614, 0x0040, 0xa731 */
4526
    "Relationship Type Code Sequence\0" /* 1615, 0x0040, 0xa732 */
4527
    "Language Code Sequence\0" /* 1616, 0x0040, 0xa744 */
4528
    "Uniform Resource Locator\0" /* 1617, 0x0040, 0xa992 */
4529
    "Annotation Sequence\0" /* 1618, 0x0040, 0xb020 */
4530
    "Relationship Type Code Sequence Modifier\0" /* 1619, 0x0040, 0xdb73 */
4531
    "Papyrus Comments\0" /* 1620, 0x0041, 0x0000 */
4532
    "?\0" /* 1621, 0x0041, 0x0010 */
4533
    "?\0" /* 1622, 0x0041, 0x0011 */
4534
    "Pixel Offset\0" /* 1623, 0x0041, 0x0012 */
4535
    "Image Identifier Sequence\0" /* 1624, 0x0041, 0x0013 */
4536
    "External File Reference Sequence\0" /* 1625, 0x0041, 0x0014 */
4537
    "Number of Images\0" /* 1626, 0x0041, 0x0015 */
4538
    "?\0" /* 1627, 0x0041, 0x0020 */
4539
    "Referenced SOP Class UID\0" /* 1628, 0x0041, 0x0021 */
4540
    "Referenced SOP Instance UID\0" /* 1629, 0x0041, 0x0022 */
4541
    "?\0" /* 1630, 0x0041, 0x0030 */
4542
    "?\0" /* 1631, 0x0041, 0x0031 */
4543
    "?\0" /* 1632, 0x0041, 0x0032 */
4544
    "Modified Date\0" /* 1633, 0x0041, 0x0034 */
4545
    "Modified Time\0" /* 1634, 0x0041, 0x0036 */
4546
    "Owner Name\0" /* 1635, 0x0041, 0x0040 */
4547
    "Referenced Image SOP Class UID\0" /* 1636, 0x0041, 0x0041 */
4548
    "Referenced Image SOP Instance UID\0" /* 1637, 0x0041, 0x0042 */
4549
    "?\0" /* 1638, 0x0041, 0x0050 */
4550
    "Number of Images\0" /* 1639, 0x0041, 0x0060 */
4551
    "Number of Other\0" /* 1640, 0x0041, 0x0062 */
4552
    "External Folder Element DSID\0" /* 1641, 0x0041, 0x00a0 */
4553
    "External Folder Element Data Set Type\0" /* 1642, 0x0041, 0x00a1 */
4554
    "External Folder Element File Location\0" /* 1643, 0x0041, 0x00a2 */
4555
    "External Folder Element Length\0" /* 1644, 0x0041, 0x00a3 */
4556
    "Internal Folder Element DSID\0" /* 1645, 0x0041, 0x00b0 */
4557
    "Internal Folder Element Data Set Type\0" /* 1646, 0x0041, 0x00b1 */
4558
    "Internal Offset To Data Set\0" /* 1647, 0x0041, 0x00b2 */
4559
    "Internal Offset To Image\0" /* 1648, 0x0041, 0x00b3 */
4560
    "Bitmap Of Prescan Options\0" /* 1649, 0x0043, 0x0001 */
4561
    "Gradient Offset In X\0" /* 1650, 0x0043, 0x0002 */
4562
    "Gradient Offset In Y\0" /* 1651, 0x0043, 0x0003 */
4563
    "Gradient Offset In Z\0" /* 1652, 0x0043, 0x0004 */
4564
    "Image Is Original Or Unoriginal\0" /* 1653, 0x0043, 0x0005 */
4565
    "Number Of EPI Shots\0" /* 1654, 0x0043, 0x0006 */
4566
    "Views Per Segment\0" /* 1655, 0x0043, 0x0007 */
4567
    "Respiratory Rate In BPM\0" /* 1656, 0x0043, 0x0008 */
4568
    "Respiratory Trigger Point\0" /* 1657, 0x0043, 0x0009 */
4569
    "Type Of Receiver Used\0" /* 1658, 0x0043, 0x000a */
4570
    "Peak Rate Of Change Of Gradient Field\0" /* 1659, 0x0043, 0x000b */
4571
    "Limits In Units Of Percent\0" /* 1660, 0x0043, 0x000c */
4572
    "PSD Estimated Limit\0" /* 1661, 0x0043, 0x000d */
4573
    "PSD Estimated Limit In Tesla Per Second\0" /* 1662, 0x0043, 0x000e */
4574
    "SAR Avg Head\0" /* 1663, 0x0043, 0x000f */
4575
    "Window Value\0" /* 1664, 0x0043, 0x0010 */
4576
    "Total Input Views\0" /* 1665, 0x0043, 0x0011 */
4577
    "Xray Chain\0" /* 1666, 0x0043, 0x0012 */
4578
    "Recon Kernel Parameters\0" /* 1667, 0x0043, 0x0013 */
4579
    "Calibration Parameters\0" /* 1668, 0x0043, 0x0014 */
4580
    "Total Output Views\0" /* 1669, 0x0043, 0x0015 */
4581
    "Number Of Overranges\0" /* 1670, 0x0043, 0x0016 */
4582
    "IBH Image Scale Factors\0" /* 1671, 0x0043, 0x0017 */
4583
    "BBH Coefficients\0" /* 1672, 0x0043, 0x0018 */
4584
    "Number Of BBH Chains To Blend\0" /* 1673, 0x0043, 0x0019 */
4585
    "Starting Channel Number\0" /* 1674, 0x0043, 0x001a */
4586
    "PPScan Parameters\0" /* 1675, 0x0043, 0x001b */
4587
    "GE Image Integrity\0" /* 1676, 0x0043, 0x001c */
4588
    "Level Value\0" /* 1677, 0x0043, 0x001d */
4589
    "?\0" /* 1678, 0x0043, 0x001e */
4590
    "Max Overranges In A View\0" /* 1679, 0x0043, 0x001f */
4591
    "Avg Overranges All Views\0" /* 1680, 0x0043, 0x0020 */
4592
    "Corrected Afterglow Terms\0" /* 1681, 0x0043, 0x0021 */
4593
    "Reference Channels\0" /* 1682, 0x0043, 0x0025 */
4594
    "No Views Ref Channels Blocked\0" /* 1683, 0x0043, 0x0026 */
4595
    "?\0" /* 1684, 0x0043, 0x0027 */
4596
    "Unique Image Identifier\0" /* 1685, 0x0043, 0x0028 */
4597
    "Histogram Tables\0" /* 1686, 0x0043, 0x0029 */
4598
    "User Defined Data\0" /* 1687, 0x0043, 0x002a */
4599
    "Private Scan Options\0" /* 1688, 0x0043, 0x002b */
4600
    "Effective Echo Spacing\0" /* 1689, 0x0043, 0x002c */
4601
    "String Slop Field 1\0" /* 1690, 0x0043, 0x002d */
4602
    "String Slop Field 2\0" /* 1691, 0x0043, 0x002e */
4603
    "Raw Data Type\0" /* 1692, 0x0043, 0x002f */
4604
    "Raw Data Type\0" /* 1693, 0x0043, 0x0030 */
4605
    "RA Coord Of Target Recon Centre\0" /* 1694, 0x0043, 0x0031 */
4606
    "Raw Data Type\0" /* 1695, 0x0043, 0x0032 */
4607
    "Neg Scan Spacing\0" /* 1696, 0x0043, 0x0033 */
4608
    "Offset Frequency\0" /* 1697, 0x0043, 0x0034 */
4609
    "User Usage Tag\0" /* 1698, 0x0043, 0x0035 */
4610
    "User Fill Map MSW\0" /* 1699, 0x0043, 0x0036 */
4611
    "User Fill Map LSW\0" /* 1700, 0x0043, 0x0037 */
4612
    "User 25 To User 48\0" /* 1701, 0x0043, 0x0038 */
4613
    "Slop Integer 6 To Slop Integer 9\0" /* 1702, 0x0043, 0x0039 */
4614
    "Trigger On Position\0" /* 1703, 0x0043, 0x0040 */
4615
    "Degree Of Rotation\0" /* 1704, 0x0043, 0x0041 */
4616
    "DAS Trigger Source\0" /* 1705, 0x0043, 0x0042 */
4617
    "DAS Fpa Gain\0" /* 1706, 0x0043, 0x0043 */
4618
    "DAS Output Source\0" /* 1707, 0x0043, 0x0044 */
4619
    "DAS Ad Input\0" /* 1708, 0x0043, 0x0045 */
4620
    "DAS Cal Mode\0" /* 1709, 0x0043, 0x0046 */
4621
    "DAS Cal Frequency\0" /* 1710, 0x0043, 0x0047 */
4622
    "DAS Reg Xm\0" /* 1711, 0x0043, 0x0048 */
4623
    "DAS Auto Zero\0" /* 1712, 0x0043, 0x0049 */
4624
    "Starting Channel Of View\0" /* 1713, 0x0043, 0x004a */
4625
    "DAS Xm Pattern\0" /* 1714, 0x0043, 0x004b */
4626
    "TGGC Trigger Mode\0" /* 1715, 0x0043, 0x004c */
4627
    "Start Scan To Xray On Delay\0" /* 1716, 0x0043, 0x004d */
4628
    "Duration Of Xray On\0" /* 1717, 0x0043, 0x004e */
4629
    "?\0" /* 1718, 0x0044, 0x0000 */
4630
    "AES\0" /* 1719, 0x0045, 0x0004 */
4631
    "Angulation\0" /* 1720, 0x0045, 0x0006 */
4632
    "Real Magnification Factor\0" /* 1721, 0x0045, 0x0009 */
4633
    "Senograph Type\0" /* 1722, 0x0045, 0x000b */
4634
    "Integration Time\0" /* 1723, 0x0045, 0x000c */
4635
    "ROI Origin X and Y\0" /* 1724, 0x0045, 0x000d */
4636
    "Receptor Size cm X and Y\0" /* 1725, 0x0045, 0x0011 */
4637
    "Receptor Size Pixels X and Y\0" /* 1726, 0x0045, 0x0012 */
4638
    "Screen\0" /* 1727, 0x0045, 0x0013 */
4639
    "Pixel Pitch Microns\0" /* 1728, 0x0045, 0x0014 */
4640
    "Pixel Depth Bits\0" /* 1729, 0x0045, 0x0015 */
4641
    "Binning Factor X and Y\0" /* 1730, 0x0045, 0x0016 */
4642
    "Clinical View\0" /* 1731, 0x0045, 0x001b */
4643
    "Mean Of Raw Gray Levels\0" /* 1732, 0x0045, 0x001d */
4644
    "Mean Of Offset Gray Levels\0" /* 1733, 0x0045, 0x001e */
4645
    "Mean Of Corrected Gray Levels\0" /* 1734, 0x0045, 0x001f */
4646
    "Mean Of Region Gray Levels\0" /* 1735, 0x0045, 0x0020 */
4647
    "Mean Of Log Region Gray Levels\0" /* 1736, 0x0045, 0x0021 */
4648
    "Standard Deviation Of Raw Gray Levels\0" /* 1737, 0x0045, 0x0022 */
4649
    "Standard Deviation Of Corrected Gray Levels\0" /* 1738, 0x0045, 0x0023 */
4650
    "Standard Deviation Of Region Gray Levels\0" /* 1739, 0x0045, 0x0024 */
4651
    "Standard Deviation Of Log Region Gray Levels\0" /* 1740, 0x0045, 0x0025 */
4652
    "MAO Buffer\0" /* 1741, 0x0045, 0x0026 */
4653
    "Set Number\0" /* 1742, 0x0045, 0x0027 */
4654
    "WindowingType (LINEAR or GAMMA)\0" /* 1743, 0x0045, 0x0028 */
4655
    "WindowingParameters\0" /* 1744, 0x0045, 0x0029 */
4656
    "Crosshair Cursor X Coordinates\0" /* 1745, 0x0045, 0x002a */
4657
    "Crosshair Cursor Y Coordinates\0" /* 1746, 0x0045, 0x002b */
4658
    "Vignette Rows\0" /* 1747, 0x0045, 0x0039 */
4659
    "Vignette Columns\0" /* 1748, 0x0045, 0x003a */
4660
    "Vignette Bits Allocated\0" /* 1749, 0x0045, 0x003b */
4661
    "Vignette Bits Stored\0" /* 1750, 0x0045, 0x003c */
4662
    "Vignette High Bit\0" /* 1751, 0x0045, 0x003d */
4663
    "Vignette Pixel Representation\0" /* 1752, 0x0045, 0x003e */
4664
    "Vignette Pixel Data\0" /* 1753, 0x0045, 0x003f */
4665
    "Reconstruction Parameters Sequence\0" /* 1754, 0x0047, 0x0001 */
4666
    "Volume Voxel Count\0" /* 1755, 0x0047, 0x0050 */
4667
    "Volume Segment Count\0" /* 1756, 0x0047, 0x0051 */
4668
    "Volume Slice Size\0" /* 1757, 0x0047, 0x0053 */
4669
    "Volume Slice Count\0" /* 1758, 0x0047, 0x0054 */
4670
    "Volume Threshold Value\0" /* 1759, 0x0047, 0x0055 */
4671
    "Volume Voxel Ratio\0" /* 1760, 0x0047, 0x0057 */
4672
    "Volume Voxel Size\0" /* 1761, 0x0047, 0x0058 */
4673
    "Volume Z Position Size\0" /* 1762, 0x0047, 0x0059 */
4674
    "Volume Base Line\0" /* 1763, 0x0047, 0x0060 */
4675
    "Volume Center Point\0" /* 1764, 0x0047, 0x0061 */
4676
    "Volume Skew Base\0" /* 1765, 0x0047, 0x0063 */
4677
    "Volume Registration Transform Rotation Matrix\0" /* 1766, 0x0047, 0x0064 */
4678
    "Volume Registration Transform Translation Vector\0" /* 1767, 0x0047, 0x0065 */
4679
    "KVP List\0" /* 1768, 0x0047, 0x0070 */
4680
    "XRay Tube Current List\0" /* 1769, 0x0047, 0x0071 */
4681
    "Exposure List\0" /* 1770, 0x0047, 0x0072 */
4682
    "Acquisition DLX Identifier\0" /* 1771, 0x0047, 0x0080 */
4683
    "Acquisition DLX 2D Series Sequence\0" /* 1772, 0x0047, 0x0085 */
4684
    "Contrast Agent Volume List\0" /* 1773, 0x0047, 0x0089 */
4685
    "Number Of Injections\0" /* 1774, 0x0047, 0x008a */
4686
    "Frame Count\0" /* 1775, 0x0047, 0x008b */
4687
    "Used Frames\0" /* 1776, 0x0047, 0x0096 */
4688
    "XA 3D Reconstruction Algorithm Name\0" /* 1777, 0x0047, 0x0091 */
4689
    "XA 3D Reconstruction Algorithm Version\0" /* 1778, 0x0047, 0x0092 */
4690
    "DLX Calibration Date\0" /* 1779, 0x0047, 0x0093 */
4691
    "DLX Calibration Time\0" /* 1780, 0x0047, 0x0094 */
4692
    "DLX Calibration Status\0" /* 1781, 0x0047, 0x0095 */
4693
    "Transform Count\0" /* 1782, 0x0047, 0x0098 */
4694
    "Transform Sequence\0" /* 1783, 0x0047, 0x0099 */
4695
    "Transform Rotation Matrix\0" /* 1784, 0x0047, 0x009a */
4696
    "Transform Translation Vector\0" /* 1785, 0x0047, 0x009b */
4697
    "Transform Label\0" /* 1786, 0x0047, 0x009c */
4698
    "Wireframe Count\0" /* 1787, 0x0047, 0x00b1 */
4699
    "Location System\0" /* 1788, 0x0047, 0x00b2 */
4700
    "Wireframe List\0" /* 1789, 0x0047, 0x00b0 */
4701
    "Wireframe Name\0" /* 1790, 0x0047, 0x00b5 */
4702
    "Wireframe Group Name\0" /* 1791, 0x0047, 0x00b6 */
4703
    "Wireframe Color\0" /* 1792, 0x0047, 0x00b7 */
4704
    "Wireframe Attributes\0" /* 1793, 0x0047, 0x00b8 */
4705
    "Wireframe Point Count\0" /* 1794, 0x0047, 0x00b9 */
4706
    "Wireframe Timestamp\0" /* 1795, 0x0047, 0x00ba */
4707
    "Wireframe Point List\0" /* 1796, 0x0047, 0x00bb */
4708
    "Wireframe Points Coordinates\0" /* 1797, 0x0047, 0x00bc */
4709
    "Volume Upper Left High Corner RAS\0" /* 1798, 0x0047, 0x00c0 */
4710
    "Volume Slice To RAS Rotation Matrix\0" /* 1799, 0x0047, 0x00c1 */
4711
    "Volume Upper Left High Corner TLOC\0" /* 1800, 0x0047, 0x00c2 */
4712
    "Volume Segment List\0" /* 1801, 0x0047, 0x00d1 */
4713
    "Volume Gradient List\0" /* 1802, 0x0047, 0x00d2 */
4714
    "Volume Density List\0" /* 1803, 0x0047, 0x00d3 */
4715
    "Volume Z Position List\0" /* 1804, 0x0047, 0x00d4 */
4716
    "Volume Original Index List\0" /* 1805, 0x0047, 0x00d5 */
4717
    "Calibration Group Length\0" /* 1806, 0x0050, 0x0000 */
4718
    "Calibration Object\0" /* 1807, 0x0050, 0x0004 */
4719
    "DeviceSequence\0" /* 1808, 0x0050, 0x0010 */
4720
    "DeviceLength\0" /* 1809, 0x0050, 0x0014 */
4721
    "DeviceDiameter\0" /* 1810, 0x0050, 0x0016 */
4722
    "DeviceDiameterUnits\0" /* 1811, 0x0050, 0x0017 */
4723
    "DeviceVolume\0" /* 1812, 0x0050, 0x0018 */
4724
    "InterMarkerDistance\0" /* 1813, 0x0050, 0x0019 */
4725
    "DeviceDescription\0" /* 1814, 0x0050, 0x0020 */
4726
    "CodedInterventionDeviceSequence\0" /* 1815, 0x0050, 0x0030 */
4727
    "Image Text\0" /* 1816, 0x0051, 0x0010 */
4728
    "Nuclear Acquisition Group Length\0" /* 1817, 0x0054, 0x0000 */
4729
    "Energy Window Vector\0" /* 1818, 0x0054, 0x0010 */
4730
    "Number of Energy Windows\0" /* 1819, 0x0054, 0x0011 */
4731
    "Energy Window Information Sequence\0" /* 1820, 0x0054, 0x0012 */
4732
    "Energy Window Range Sequence\0" /* 1821, 0x0054, 0x0013 */
4733
    "Energy Window Lower Limit\0" /* 1822, 0x0054, 0x0014 */
4734
    "Energy Window Upper Limit\0" /* 1823, 0x0054, 0x0015 */
4735
    "Radiopharmaceutical Information Sequence\0" /* 1824, 0x0054, 0x0016 */
4736
    "Residual Syringe Counts\0" /* 1825, 0x0054, 0x0017 */
4737
    "Energy Window Name\0" /* 1826, 0x0054, 0x0018 */
4738
    "Detector Vector\0" /* 1827, 0x0054, 0x0020 */
4739
    "Number of Detectors\0" /* 1828, 0x0054, 0x0021 */
4740
    "Detector Information Sequence\0" /* 1829, 0x0054, 0x0022 */
4741
    "Phase Vector\0" /* 1830, 0x0054, 0x0030 */
4742
    "Number of Phases\0" /* 1831, 0x0054, 0x0031 */
4743
    "Phase Information Sequence\0" /* 1832, 0x0054, 0x0032 */
4744
    "Number of Frames In Phase\0" /* 1833, 0x0054, 0x0033 */
4745
    "Phase Delay\0" /* 1834, 0x0054, 0x0036 */
4746
    "Pause Between Frames\0" /* 1835, 0x0054, 0x0038 */
4747
    "Rotation Vector\0" /* 1836, 0x0054, 0x0050 */
4748
    "Number of Rotations\0" /* 1837, 0x0054, 0x0051 */
4749
    "Rotation Information Sequence\0" /* 1838, 0x0054, 0x0052 */
4750
    "Number of Frames In Rotation\0" /* 1839, 0x0054, 0x0053 */
4751
    "R-R Interval Vector\0" /* 1840, 0x0054, 0x0060 */
4752
    "Number of R-R Intervals\0" /* 1841, 0x0054, 0x0061 */
4753
    "Gated Information Sequence\0" /* 1842, 0x0054, 0x0062 */
4754
    "Data Information Sequence\0" /* 1843, 0x0054, 0x0063 */
4755
    "Time Slot Vector\0" /* 1844, 0x0054, 0x0070 */
4756
    "Number of Time Slots\0" /* 1845, 0x0054, 0x0071 */
4757
    "Time Slot Information Sequence\0" /* 1846, 0x0054, 0x0072 */
4758
    "Time Slot Time\0" /* 1847, 0x0054, 0x0073 */
4759
    "Slice Vector\0" /* 1848, 0x0054, 0x0080 */
4760
    "Number of Slices\0" /* 1849, 0x0054, 0x0081 */
4761
    "Angular View Vector\0" /* 1850, 0x0054, 0x0090 */
4762
    "Time Slice Vector\0" /* 1851, 0x0054, 0x0100 */
4763
    "Number Of Time Slices\0" /* 1852, 0x0054, 0x0101 */
4764
    "Start Angle\0" /* 1853, 0x0054, 0x0200 */
4765
    "Type of Detector Motion\0" /* 1854, 0x0054, 0x0202 */
4766
    "Trigger Vector\0" /* 1855, 0x0054, 0x0210 */
4767
    "Number of Triggers in Phase\0" /* 1856, 0x0054, 0x0211 */
4768
    "View Code Sequence\0" /* 1857, 0x0054, 0x0220 */
4769
    "View Modifier Code Sequence\0" /* 1858, 0x0054, 0x0222 */
4770
    "Radionuclide Code Sequence\0" /* 1859, 0x0054, 0x0300 */
4771
    "Radiopharmaceutical Route Code Sequence\0" /* 1860, 0x0054, 0x0302 */
4772
    "Radiopharmaceutical Code Sequence\0" /* 1861, 0x0054, 0x0304 */
4773
    "Calibration Data Sequence\0" /* 1862, 0x0054, 0x0306 */
4774
    "Energy Window Number\0" /* 1863, 0x0054, 0x0308 */
4775
    "Image ID\0" /* 1864, 0x0054, 0x0400 */
4776
    "Patient Orientation Code Sequence\0" /* 1865, 0x0054, 0x0410 */
4777
    "Patient Orientation Modifier Code Sequence\0" /* 1866, 0x0054, 0x0412 */
4778
    "Patient Gantry Relationship Code Sequence\0" /* 1867, 0x0054, 0x0414 */
4779
    "Positron Emission Tomography Series Type\0" /* 1868, 0x0054, 0x1000 */
4780
    "Positron Emission Tomography Units\0" /* 1869, 0x0054, 0x1001 */
4781
    "Counts Source\0" /* 1870, 0x0054, 0x1002 */
4782
    "Reprojection Method\0" /* 1871, 0x0054, 0x1004 */
4783
    "Randoms Correction Method\0" /* 1872, 0x0054, 0x1100 */
4784
    "Attenuation Correction Method\0" /* 1873, 0x0054, 0x1101 */
4785
    "Decay Correction\0" /* 1874, 0x0054, 0x1102 */
4786
    "Reconstruction Method\0" /* 1875, 0x0054, 0x1103 */
4787
    "Detector Lines of Response Used\0" /* 1876, 0x0054, 0x1104 */
4788
    "Scatter Correction Method\0" /* 1877, 0x0054, 0x1105 */
4789
    "Axial Acceptance\0" /* 1878, 0x0054, 0x1200 */
4790
    "Axial Mash\0" /* 1879, 0x0054, 0x1201 */
4791
    "Transverse Mash\0" /* 1880, 0x0054, 0x1202 */
4792
    "Detector Element Size\0" /* 1881, 0x0054, 0x1203 */
4793
    "Coincidence Window Width\0" /* 1882, 0x0054, 0x1210 */
4794
    "Secondary Counts Type\0" /* 1883, 0x0054, 0x1220 */
4795
    "Frame Reference Time\0" /* 1884, 0x0054, 0x1300 */
4796
    "Primary Prompts Counts Accumulated\0" /* 1885, 0x0054, 0x1310 */
4797
    "Secondary Counts Accumulated\0" /* 1886, 0x0054, 0x1311 */
4798
    "Slice Sensitivity Factor\0" /* 1887, 0x0054, 0x1320 */
4799
    "Decay Factor\0" /* 1888, 0x0054, 0x1321 */
4800
    "Dose Calibration Factor\0" /* 1889, 0x0054, 0x1322 */
4801
    "Scatter Fraction Factor\0" /* 1890, 0x0054, 0x1323 */
4802
    "Dead Time Factor\0" /* 1891, 0x0054, 0x1324 */
4803
    "Image Index\0" /* 1892, 0x0054, 0x1330 */
4804
    "Counts Included\0" /* 1893, 0x0054, 0x1400 */
4805
    "Dead Time Correction Flag\0" /* 1894, 0x0054, 0x1401 */
4806
    "Current Ward\0" /* 1895, 0x0055, 0x0046 */
4807
    "?\0" /* 1896, 0x0058, 0x0000 */
4808
    "Histogram Sequence\0" /* 1897, 0x0060, 0x3000 */
4809
    "Histogram Number of Bins\0" /* 1898, 0x0060, 0x3002 */
4810
    "Histogram First Bin Value\0" /* 1899, 0x0060, 0x3004 */
4811
    "Histogram Last Bin Value\0" /* 1900, 0x0060, 0x3006 */
4812
    "Histogram Bin Width\0" /* 1901, 0x0060, 0x3008 */
4813
    "Histogram Explanation\0" /* 1902, 0x0060, 0x3010 */
4814
    "Histogram Data\0" /* 1903, 0x0060, 0x3020 */
4815
    "Graphic Annotation Sequence\0" /* 1904, 0x0070, 0x0001 */
4816
    "Graphic Layer\0" /* 1905, 0x0070, 0x0002 */
4817
    "Bounding Box Annotation Units\0" /* 1906, 0x0070, 0x0003 */
4818
    "Anchor Point Annotation Units\0" /* 1907, 0x0070, 0x0004 */
4819
    "Graphic Annotation Units\0" /* 1908, 0x0070, 0x0005 */
4820
    "Unformatted Text Value\0" /* 1909, 0x0070, 0x0006 */
4821
    "Text Object Sequence\0" /* 1910, 0x0070, 0x0008 */
4822
    "Graphic Object Sequence\0" /* 1911, 0x0070, 0x0009 */
4823
    "Bounding Box TLHC\0" /* 1912, 0x0070, 0x0010 */
4824
    "Bounding Box BRHC\0" /* 1913, 0x0070, 0x0011 */
4825
    "Anchor Point\0" /* 1914, 0x0070, 0x0014 */
4826
    "Anchor Point Visibility\0" /* 1915, 0x0070, 0x0015 */
4827
    "Graphic Dimensions\0" /* 1916, 0x0070, 0x0020 */
4828
    "Number Of Graphic Points\0" /* 1917, 0x0070, 0x0021 */
4829
    "Graphic Data\0" /* 1918, 0x0070, 0x0022 */
4830
    "Graphic Type\0" /* 1919, 0x0070, 0x0023 */
4831
    "Graphic Filled\0" /* 1920, 0x0070, 0x0024 */
4832
    "Image Rotation\0" /* 1921, 0x0070, 0x0040 */
4833
    "Image Horizontal Flip\0" /* 1922, 0x0070, 0x0041 */
4834
    "Displayed Area TLHC\0" /* 1923, 0x0070, 0x0050 */
4835
    "Displayed Area BRHC\0" /* 1924, 0x0070, 0x0051 */
4836
    "Graphic Layer Sequence\0" /* 1925, 0x0070, 0x0060 */
4837
    "Graphic Layer Order\0" /* 1926, 0x0070, 0x0062 */
4838
    "Graphic Layer Recommended Display Value\0" /* 1927, 0x0070, 0x0066 */
4839
    "Graphic Layer Description\0" /* 1928, 0x0070, 0x0068 */
4840
    "Presentation Label\0" /* 1929, 0x0070, 0x0080 */
4841
    "Presentation Description\0" /* 1930, 0x0070, 0x0081 */
4842
    "Presentation Creation Date\0" /* 1931, 0x0070, 0x0082 */
4843
    "Presentation Creation Time\0" /* 1932, 0x0070, 0x0083 */
4844
    "Presentation Creator's Name\0" /* 1933, 0x0070, 0x0084 */
4845
    "Media Type\0" /* 1934, 0x0087, 0x0010 */
4846
    "Media Location\0" /* 1935, 0x0087, 0x0020 */
4847
    "Estimated Retrieve Time\0" /* 1936, 0x0087, 0x0050 */
4848
    "Storage Group Length\0" /* 1937, 0x0088, 0x0000 */
4849
    "Storage Media FileSet ID\0" /* 1938, 0x0088, 0x0130 */
4850
    "Storage Media FileSet UID\0" /* 1939, 0x0088, 0x0140 */
4851
    "Icon Image Sequence\0" /* 1940, 0x0088, 0x0200 */
4852
    "Topic Title\0" /* 1941, 0x0088, 0x0904 */
4853
    "Topic Subject\0" /* 1942, 0x0088, 0x0906 */
4854
    "Topic Author\0" /* 1943, 0x0088, 0x0910 */
4855
    "Topic Key Words\0" /* 1944, 0x0088, 0x0912 */
4856
    "Examination Folder ID\0" /* 1945, 0x0095, 0x0001 */
4857
    "Folder Reported Status\0" /* 1946, 0x0095, 0x0004 */
4858
    "Folder Reporting Radiologist\0" /* 1947, 0x0095, 0x0005 */
4859
    "SIENET ISA PLA\0" /* 1948, 0x0095, 0x0007 */
4860
    "Data Object Attributes\0" /* 1949, 0x0099, 0x0002 */
4861
    "Data Dictionary Version\0" /* 1950, 0x00e1, 0x0001 */
4862
    "?\0" /* 1951, 0x00e1, 0x0014 */
4863
    "?\0" /* 1952, 0x00e1, 0x0022 */
4864
    "?\0" /* 1953, 0x00e1, 0x0023 */
4865
    "?\0" /* 1954, 0x00e1, 0x0024 */
4866
    "?\0" /* 1955, 0x00e1, 0x0025 */
4867
    "Offset From CT MR Images\0" /* 1956, 0x00e1, 0x0040 */
4868
    "RIS Key\0" /* 1957, 0x0193, 0x0002 */
4869
    "RIS Worklist IMGEF\0" /* 1958, 0x0307, 0x0001 */
4870
    "RIS Report IMGEF\0" /* 1959, 0x0309, 0x0001 */
4871
    "Implementation Version\0" /* 1960, 0x0601, 0x0000 */
4872
    "Relative Table Position\0" /* 1961, 0x0601, 0x0020 */
4873
    "Relative Table Height\0" /* 1962, 0x0601, 0x0021 */
4874
    "Surview Direction\0" /* 1963, 0x0601, 0x0030 */
4875
    "Surview Length\0" /* 1964, 0x0601, 0x0031 */
4876
    "Image View Type\0" /* 1965, 0x0601, 0x0050 */
4877
    "Batch Number\0" /* 1966, 0x0601, 0x0070 */
4878
    "Batch Size\0" /* 1967, 0x0601, 0x0071 */
4879
    "Batch Slice Number\0" /* 1968, 0x0601, 0x0072 */
4880
    "?\0" /* 1969, 0x1000, 0x0000 */
4881
    "Run Length Triplet\0" /* 1970, 0x1000, 0x0001 */
4882
    "Huffman Table Size\0" /* 1971, 0x1000, 0x0002 */
4883
    "Huffman Table Triplet\0" /* 1972, 0x1000, 0x0003 */
4884
    "Shift Table Size\0" /* 1973, 0x1000, 0x0004 */
4885
    "Shift Table Triplet\0" /* 1974, 0x1000, 0x0005 */
4886
    "?\0" /* 1975, 0x1010, 0x0000 */
4887
    "?\0" /* 1976, 0x1369, 0x0000 */
4888
    "Film Session Group Length\0" /* 1977, 0x2000, 0x0000 */
4889
    "Number of Copies\0" /* 1978, 0x2000, 0x0010 */
4890
    "Print Priority\0" /* 1979, 0x2000, 0x0020 */
4891
    "Medium Type\0" /* 1980, 0x2000, 0x0030 */
4892
    "Film Destination\0" /* 1981, 0x2000, 0x0040 */
4893
    "Film Session Label\0" /* 1982, 0x2000, 0x0050 */
4894
    "Memory Allocation\0" /* 1983, 0x2000, 0x0060 */
4895
    "Referenced Film Box Sequence\0" /* 1984, 0x2000, 0x0500 */
4896
    "Film Box Group Length\0" /* 1985, 0x2010, 0x0000 */
4897
    "Image Display Format\0" /* 1986, 0x2010, 0x0010 */
4898
    "Annotation Display Format ID\0" /* 1987, 0x2010, 0x0030 */
4899
    "Film Orientation\0" /* 1988, 0x2010, 0x0040 */
4900
    "Film Size ID\0" /* 1989, 0x2010, 0x0050 */
4901
    "Magnification Type\0" /* 1990, 0x2010, 0x0060 */
4902
    "Smoothing Type\0" /* 1991, 0x2010, 0x0080 */
4903
    "Border Density\0" /* 1992, 0x2010, 0x0100 */
4904
    "Empty Image Density\0" /* 1993, 0x2010, 0x0110 */
4905
    "Min Density\0" /* 1994, 0x2010, 0x0120 */
4906
    "Max Density\0" /* 1995, 0x2010, 0x0130 */
4907
    "Trim\0" /* 1996, 0x2010, 0x0140 */
4908
    "Configuration Information\0" /* 1997, 0x2010, 0x0150 */
4909
    "Referenced Film Session Sequence\0" /* 1998, 0x2010, 0x0500 */
4910
    "Referenced Image Box Sequence\0" /* 1999, 0x2010, 0x0510 */
4911
    "Referenced Basic Annotation Box Sequence\0" /* 2000, 0x2010, 0x0520 */
4912
    "Image Box Group Length\0" /* 2001, 0x2020, 0x0000 */
4913
    "Image Box Position\0" /* 2002, 0x2020, 0x0010 */
4914
    "Polarity\0" /* 2003, 0x2020, 0x0020 */
4915
    "Requested Image Size\0" /* 2004, 0x2020, 0x0030 */
4916
    "Preformatted Grayscale Image Sequence\0" /* 2005, 0x2020, 0x0110 */
4917
    "Preformatted Color Image Sequence\0" /* 2006, 0x2020, 0x0111 */
4918
    "Referenced Image Overlay Box Sequence\0" /* 2007, 0x2020, 0x0130 */
4919
    "Referenced VOI LUT Box Sequence\0" /* 2008, 0x2020, 0x0140 */
4920
    "Annotation Group Length\0" /* 2009, 0x2030, 0x0000 */
4921
    "Annotation Position\0" /* 2010, 0x2030, 0x0010 */
4922
    "Text String\0" /* 2011, 0x2030, 0x0020 */
4923
    "Overlay Box Group Length\0" /* 2012, 0x2040, 0x0000 */
4924
    "Referenced Overlay Plane Sequence\0" /* 2013, 0x2040, 0x0010 */
4925
    "Referenced Overlay Plane Groups\0" /* 2014, 0x2040, 0x0011 */
4926
    "Overlay Magnification Type\0" /* 2015, 0x2040, 0x0060 */
4927
    "Overlay Smoothing Type\0" /* 2016, 0x2040, 0x0070 */
4928
    "Overlay Foreground Density\0" /* 2017, 0x2040, 0x0080 */
4929
    "Overlay Mode\0" /* 2018, 0x2040, 0x0090 */
4930
    "Threshold Density\0" /* 2019, 0x2040, 0x0100 */
4931
    "Referenced Overlay Image Box Sequence\0" /* 2020, 0x2040, 0x0500 */
4932
    "Presentation LUT Sequence\0" /* 2021, 0x2050, 0x0010 */
4933
    "Presentation LUT Shape\0" /* 2022, 0x2050, 0x0020 */
4934
    "Print Job Group Length\0" /* 2023, 0x2100, 0x0000 */
4935
    "Execution Status\0" /* 2024, 0x2100, 0x0020 */
4936
    "Execution Status Info\0" /* 2025, 0x2100, 0x0030 */
4937
    "Creation Date\0" /* 2026, 0x2100, 0x0040 */
4938
    "Creation Time\0" /* 2027, 0x2100, 0x0050 */
4939
    "Originator\0" /* 2028, 0x2100, 0x0070 */
4940
    "Referenced Print Job Sequence\0" /* 2029, 0x2100, 0x0500 */
4941
    "Printer Group Length\0" /* 2030, 0x2110, 0x0000 */
4942
    "Printer Status\0" /* 2031, 0x2110, 0x0010 */
4943
    "Printer Status Info\0" /* 2032, 0x2110, 0x0020 */
4944
    "Printer Name\0" /* 2033, 0x2110, 0x0030 */
4945
    "Print Queue ID\0" /* 2034, 0x2110, 0x0099 */
4946
    "RT Image Label\0" /* 2035, 0x3002, 0x0002 */
4947
    "RT Image Name\0" /* 2036, 0x3002, 0x0003 */
4948
    "RT Image Description\0" /* 2037, 0x3002, 0x0004 */
4949
    "Reported Values Origin\0" /* 2038, 0x3002, 0x000a */
4950
    "RT Image Plane\0" /* 2039, 0x3002, 0x000c */
4951
    "X-Ray Image Receptor Angle\0" /* 2040, 0x3002, 0x000e */
4952
    "RTImageOrientation\0" /* 2041, 0x3002, 0x0010 */
4953
    "Image Plane Pixel Spacing\0" /* 2042, 0x3002, 0x0011 */
4954
    "RT Image Position\0" /* 2043, 0x3002, 0x0012 */
4955
    "Radiation Machine Name\0" /* 2044, 0x3002, 0x0020 */
4956
    "Radiation Machine SAD\0" /* 2045, 0x3002, 0x0022 */
4957
    "Radiation Machine SSD\0" /* 2046, 0x3002, 0x0024 */
4958
    "RT Image SID\0" /* 2047, 0x3002, 0x0026 */
4959
    "Source to Reference Object Distance\0" /* 2048, 0x3002, 0x0028 */
4960
    "Fraction Number\0" /* 2049, 0x3002, 0x0029 */
4961
    "Exposure Sequence\0" /* 2050, 0x3002, 0x0030 */
4962
    "Meterset Exposure\0" /* 2051, 0x3002, 0x0032 */
4963
    "DVH Type\0" /* 2052, 0x3004, 0x0001 */
4964
    "Dose Units\0" /* 2053, 0x3004, 0x0002 */
4965
    "Dose Type\0" /* 2054, 0x3004, 0x0004 */
4966
    "Dose Comment\0" /* 2055, 0x3004, 0x0006 */
4967
    "Normalization Point\0" /* 2056, 0x3004, 0x0008 */
4968
    "Dose Summation Type\0" /* 2057, 0x3004, 0x000a */
4969
    "GridFrame Offset Vector\0" /* 2058, 0x3004, 0x000c */
4970
    "Dose Grid Scaling\0" /* 2059, 0x3004, 0x000e */
4971
    "RT Dose ROI Sequence\0" /* 2060, 0x3004, 0x0010 */
4972
    "Dose Value\0" /* 2061, 0x3004, 0x0012 */
4973
    "DVH Normalization Point\0" /* 2062, 0x3004, 0x0040 */
4974
    "DVH Normalization Dose Value\0" /* 2063, 0x3004, 0x0042 */
4975
    "DVH Sequence\0" /* 2064, 0x3004, 0x0050 */
4976
    "DVH Dose Scaling\0" /* 2065, 0x3004, 0x0052 */
4977
    "DVH Volume Units\0" /* 2066, 0x3004, 0x0054 */
4978
    "DVH Number of Bins\0" /* 2067, 0x3004, 0x0056 */
4979
    "DVH Data\0" /* 2068, 0x3004, 0x0058 */
4980
    "DVH Referenced ROI Sequence\0" /* 2069, 0x3004, 0x0060 */
4981
    "DVH ROI Contribution Type\0" /* 2070, 0x3004, 0x0062 */
4982
    "DVH Minimum Dose\0" /* 2071, 0x3004, 0x0070 */
4983
    "DVH Maximum Dose\0" /* 2072, 0x3004, 0x0072 */
4984
    "DVH Mean Dose\0" /* 2073, 0x3004, 0x0074 */
4985
    "Structure Set Label\0" /* 2074, 0x3006, 0x0002 */
4986
    "Structure Set Name\0" /* 2075, 0x3006, 0x0004 */
4987
    "Structure Set Description\0" /* 2076, 0x3006, 0x0006 */
4988
    "Structure Set Date\0" /* 2077, 0x3006, 0x0008 */
4989
    "Structure Set Time\0" /* 2078, 0x3006, 0x0009 */
4990
    "Referenced Frame of Reference Sequence\0" /* 2079, 0x3006, 0x0010 */
4991
    "RT Referenced Study Sequence\0" /* 2080, 0x3006, 0x0012 */
4992
    "RT Referenced Series Sequence\0" /* 2081, 0x3006, 0x0014 */
4993
    "Contour Image Sequence\0" /* 2082, 0x3006, 0x0016 */
4994
    "Structure Set ROI Sequence\0" /* 2083, 0x3006, 0x0020 */
4995
    "ROI Number\0" /* 2084, 0x3006, 0x0022 */
4996
    "Referenced Frame of Reference UID\0" /* 2085, 0x3006, 0x0024 */
4997
    "ROI Name\0" /* 2086, 0x3006, 0x0026 */
4998
    "ROI Description\0" /* 2087, 0x3006, 0x0028 */
4999
    "ROI Display Color\0" /* 2088, 0x3006, 0x002a */
5000
    "ROI Volume\0" /* 2089, 0x3006, 0x002c */
5001
    "RT Related ROI Sequence\0" /* 2090, 0x3006, 0x0030 */
5002
    "RT ROI Relationship\0" /* 2091, 0x3006, 0x0033 */
5003
    "ROI Generation Algorithm\0" /* 2092, 0x3006, 0x0036 */
5004
    "ROI Generation Description\0" /* 2093, 0x3006, 0x0038 */
5005
    "ROI Contour Sequence\0" /* 2094, 0x3006, 0x0039 */
5006
    "Contour Sequence\0" /* 2095, 0x3006, 0x0040 */
5007
    "Contour Geometric Type\0" /* 2096, 0x3006, 0x0042 */
5008
    "Contour SlabT hickness\0" /* 2097, 0x3006, 0x0044 */
5009
    "Contour Offset Vector\0" /* 2098, 0x3006, 0x0045 */
5010
    "Number of Contour Points\0" /* 2099, 0x3006, 0x0046 */
5011
    "Contour Data\0" /* 2100, 0x3006, 0x0050 */
5012
    "RT ROI Observations Sequence\0" /* 2101, 0x3006, 0x0080 */
5013
    "Observation Number\0" /* 2102, 0x3006, 0x0082 */
5014
    "Referenced ROI Number\0" /* 2103, 0x3006, 0x0084 */
5015
    "ROI Observation Label\0" /* 2104, 0x3006, 0x0085 */
5016
    "RT ROI Identification Code Sequence\0" /* 2105, 0x3006, 0x0086 */
5017
    "ROI Observation Description\0" /* 2106, 0x3006, 0x0088 */
5018
    "Related RT ROI Observations Sequence\0" /* 2107, 0x3006, 0x00a0 */
5019
    "RT ROI Interpreted Type\0" /* 2108, 0x3006, 0x00a4 */
5020
    "ROI Interpreter\0" /* 2109, 0x3006, 0x00a6 */
5021
    "ROI Physical Properties Sequence\0" /* 2110, 0x3006, 0x00b0 */
5022
    "ROI Physical Property\0" /* 2111, 0x3006, 0x00b2 */
5023
    "ROI Physical Property Value\0" /* 2112, 0x3006, 0x00b4 */
5024
    "Frame of Reference Relationship Sequence\0" /* 2113, 0x3006, 0x00c0 */
5025
    "Related Frame of Reference UID\0" /* 2114, 0x3006, 0x00c2 */
5026
    "Frame of Reference Transformation Type\0" /* 2115, 0x3006, 0x00c4 */
5027
    "Frame of Reference Transformation Matrix\0" /* 2116, 0x3006, 0x00c6 */
5028
    "Frame of Reference Transformation Comment\0" /* 2117, 0x3006, 0x00c8 */
5029
    "RT Plan Label\0" /* 2118, 0x300a, 0x0002 */
5030
    "RT Plan Name\0" /* 2119, 0x300a, 0x0003 */
5031
    "RT Plan Description\0" /* 2120, 0x300a, 0x0004 */
5032
    "RT Plan Date\0" /* 2121, 0x300a, 0x0006 */
5033
    "RT Plan Time\0" /* 2122, 0x300a, 0x0007 */
5034
    "Treatment Protocols\0" /* 2123, 0x300a, 0x0009 */
5035
    "Treatment Intent\0" /* 2124, 0x300a, 0x000a */
5036
    "Treatment Sites\0" /* 2125, 0x300a, 0x000b */
5037
    "RT Plan Geometry\0" /* 2126, 0x300a, 0x000c */
5038
    "Prescription Description\0" /* 2127, 0x300a, 0x000e */
5039
    "Dose ReferenceSequence\0" /* 2128, 0x300a, 0x0010 */
5040
    "Dose ReferenceNumber\0" /* 2129, 0x300a, 0x0012 */
5041
    "Dose Reference Structure Type\0" /* 2130, 0x300a, 0x0014 */
5042
    "Dose ReferenceDescription\0" /* 2131, 0x300a, 0x0016 */
5043
    "Dose Reference Point Coordinates\0" /* 2132, 0x300a, 0x0018 */
5044
    "Nominal Prior Dose\0" /* 2133, 0x300a, 0x001a */
5045
    "Dose Reference Type\0" /* 2134, 0x300a, 0x0020 */
5046
    "Constraint Weight\0" /* 2135, 0x300a, 0x0021 */
5047
    "Delivery Warning Dose\0" /* 2136, 0x300a, 0x0022 */
5048
    "Delivery Maximum Dose\0" /* 2137, 0x300a, 0x0023 */
5049
    "Target Minimum Dose\0" /* 2138, 0x300a, 0x0025 */
5050
    "Target Prescription Dose\0" /* 2139, 0x300a, 0x0026 */
5051
    "Target Maximum Dose\0" /* 2140, 0x300a, 0x0027 */
5052
    "Target Underdose Volume Fraction\0" /* 2141, 0x300a, 0x0028 */
5053
    "Organ at Risk Full-volume Dose\0" /* 2142, 0x300a, 0x002a */
5054
    "Organ at Risk Limit Dose\0" /* 2143, 0x300a, 0x002b */
5055
    "Organ at Risk Maximum Dose\0" /* 2144, 0x300a, 0x002c */
5056
    "Organ at Risk Overdose Volume Fraction\0" /* 2145, 0x300a, 0x002d */
5057
    "Tolerance Table Sequence\0" /* 2146, 0x300a, 0x0040 */
5058
    "Tolerance Table Number\0" /* 2147, 0x300a, 0x0042 */
5059
    "Tolerance Table Label\0" /* 2148, 0x300a, 0x0043 */
5060
    "Gantry Angle Tolerance\0" /* 2149, 0x300a, 0x0044 */
5061
    "Beam Limiting Device Angle Tolerance\0" /* 2150, 0x300a, 0x0046 */
5062
    "Beam Limiting Device Tolerance Sequence\0" /* 2151, 0x300a, 0x0048 */
5063
    "Beam Limiting Device Position Tolerance\0" /* 2152, 0x300a, 0x004a */
5064
    "Patient Support Angle Tolerance\0" /* 2153, 0x300a, 0x004c */
5065
    "Table Top Eccentric Angle Tolerance\0" /* 2154, 0x300a, 0x004e */
5066
    "Table Top Vertical Position Tolerance\0" /* 2155, 0x300a, 0x0051 */
5067
    "Table Top Longitudinal Position Tolerance\0" /* 2156, 0x300a, 0x0052 */
5068
    "Table Top Lateral Position Tolerance\0" /* 2157, 0x300a, 0x0053 */
5069
    "RT Plan Relationship\0" /* 2158, 0x300a, 0x0055 */
5070
    "Fraction Group Sequence\0" /* 2159, 0x300a, 0x0070 */
5071
    "Fraction Group Number\0" /* 2160, 0x300a, 0x0071 */
5072
    "Number of Fractions Planned\0" /* 2161, 0x300a, 0x0078 */
5073
    "Number of Fractions Per Day\0" /* 2162, 0x300a, 0x0079 */
5074
    "Repeat Fraction Cycle Length\0" /* 2163, 0x300a, 0x007a */
5075
    "Fraction Pattern\0" /* 2164, 0x300a, 0x007b */
5076
    "Number of Beams\0" /* 2165, 0x300a, 0x0080 */
5077
    "Beam Dose Specification Point\0" /* 2166, 0x300a, 0x0082 */
5078
    "Beam Dose\0" /* 2167, 0x300a, 0x0084 */
5079
    "Beam Meterset\0" /* 2168, 0x300a, 0x0086 */
5080
    "Number of Brachy Application Setups\0" /* 2169, 0x300a, 0x00a0 */
5081
    "Brachy Application Setup Dose Specification Point\0" /* 2170, 0x300a, 0x00a2 */
5082
    "Brachy Application Setup Dose\0" /* 2171, 0x300a, 0x00a4 */
5083
    "Beam Sequence\0" /* 2172, 0x300a, 0x00b0 */
5084
    "Treatment Machine Name \0" /* 2173, 0x300a, 0x00b2 */
5085
    "Primary Dosimeter Unit\0" /* 2174, 0x300a, 0x00b3 */
5086
    "Source-Axis Distance\0" /* 2175, 0x300a, 0x00b4 */
5087
    "Beam Limiting Device Sequence\0" /* 2176, 0x300a, 0x00b6 */
5088
    "RT Beam Limiting Device Type\0" /* 2177, 0x300a, 0x00b8 */
5089
    "Source to Beam Limiting Device Distance\0" /* 2178, 0x300a, 0x00ba */
5090
    "Number of Leaf/Jaw Pairs\0" /* 2179, 0x300a, 0x00bc */
5091
    "Leaf Position Boundaries\0" /* 2180, 0x300a, 0x00be */
5092
    "Beam Number\0" /* 2181, 0x300a, 0x00c0 */
5093
    "Beam Name\0" /* 2182, 0x300a, 0x00c2 */
5094
    "Beam Description\0" /* 2183, 0x300a, 0x00c3 */
5095
    "Beam Type\0" /* 2184, 0x300a, 0x00c4 */
5096
    "Radiation Type\0" /* 2185, 0x300a, 0x00c6 */
5097
    "Reference Image Number\0" /* 2186, 0x300a, 0x00c8 */
5098
    "Planned Verification Image Sequence\0" /* 2187, 0x300a, 0x00ca */
5099
    "Imaging Device Specific Acquisition Parameters\0" /* 2188, 0x300a, 0x00cc */
5100
    "Treatment Delivery Type\0" /* 2189, 0x300a, 0x00ce */
5101
    "Number of Wedges\0" /* 2190, 0x300a, 0x00d0 */
5102
    "Wedge Sequence\0" /* 2191, 0x300a, 0x00d1 */
5103
    "Wedge Number\0" /* 2192, 0x300a, 0x00d2 */
5104
    "Wedge Type\0" /* 2193, 0x300a, 0x00d3 */
5105
    "Wedge ID\0" /* 2194, 0x300a, 0x00d4 */
5106
    "Wedge Angle\0" /* 2195, 0x300a, 0x00d5 */
5107
    "Wedge Factor\0" /* 2196, 0x300a, 0x00d6 */
5108
    "Wedge Orientation\0" /* 2197, 0x300a, 0x00d8 */
5109
    "Source to Wedge Tray Distance\0" /* 2198, 0x300a, 0x00da */
5110
    "Number of Compensators\0" /* 2199, 0x300a, 0x00e0 */
5111
    "Material ID\0" /* 2200, 0x300a, 0x00e1 */
5112
    "Total Compensator Tray Factor\0" /* 2201, 0x300a, 0x00e2 */
5113
    "Compensator Sequence\0" /* 2202, 0x300a, 0x00e3 */
5114
    "Compensator Number\0" /* 2203, 0x300a, 0x00e4 */
5115
    "Compensator ID\0" /* 2204, 0x300a, 0x00e5 */
5116
    "Source to Compensator Tray Distance\0" /* 2205, 0x300a, 0x00e6 */
5117
    "Compensator Rows\0" /* 2206, 0x300a, 0x00e7 */
5118
    "Compensator Columns\0" /* 2207, 0x300a, 0x00e8 */
5119
    "Compensator Pixel Spacing\0" /* 2208, 0x300a, 0x00e9 */
5120
    "Compensator Position\0" /* 2209, 0x300a, 0x00ea */
5121
    "Compensator Transmission Data\0" /* 2210, 0x300a, 0x00eb */
5122
    "Compensator Thickness Data\0" /* 2211, 0x300a, 0x00ec */
5123
    "Number of Boli\0" /* 2212, 0x300a, 0x00ed */
5124
    "Number of Blocks\0" /* 2213, 0x300a, 0x00f0 */
5125
    "Total Block Tray Factor\0" /* 2214, 0x300a, 0x00f2 */
5126
    "Block Sequence\0" /* 2215, 0x300a, 0x00f4 */
5127
    "Block Tray ID\0" /* 2216, 0x300a, 0x00f5 */
5128
    "Source to Block Tray Distance\0" /* 2217, 0x300a, 0x00f6 */
5129
    "Block Type\0" /* 2218, 0x300a, 0x00f8 */
5130
    "Block Divergence\0" /* 2219, 0x300a, 0x00fa */
5131
    "Block Number\0" /* 2220, 0x300a, 0x00fc */
5132
    "Block Name\0" /* 2221, 0x300a, 0x00fe */
5133
    "Block Thickness\0" /* 2222, 0x300a, 0x0100 */
5134
    "Block Transmission\0" /* 2223, 0x300a, 0x0102 */
5135
    "Block Number of Points\0" /* 2224, 0x300a, 0x0104 */
5136
    "Block Data\0" /* 2225, 0x300a, 0x0106 */
5137
    "Applicator Sequence\0" /* 2226, 0x300a, 0x0107 */
5138
    "Applicator ID\0" /* 2227, 0x300a, 0x0108 */
5139
    "Applicator Type\0" /* 2228, 0x300a, 0x0109 */
5140
    "Applicator Description\0" /* 2229, 0x300a, 0x010a */
5141
    "Cumulative Dose Reference Coefficient\0" /* 2230, 0x300a, 0x010c */
5142
    "Final Cumulative Meterset Weight\0" /* 2231, 0x300a, 0x010e */
5143
    "Number of Control Points\0" /* 2232, 0x300a, 0x0110 */
5144
    "Control Point Sequence\0" /* 2233, 0x300a, 0x0111 */
5145
    "Control Point Index\0" /* 2234, 0x300a, 0x0112 */
5146
    "Nominal Beam Energy\0" /* 2235, 0x300a, 0x0114 */
5147
    "Dose Rate Set\0" /* 2236, 0x300a, 0x0115 */
5148
    "Wedge Position Sequence\0" /* 2237, 0x300a, 0x0116 */
5149
    "Wedge Position\0" /* 2238, 0x300a, 0x0118 */
5150
    "Beam Limiting Device Position Sequence\0" /* 2239, 0x300a, 0x011a */
5151
    "Leaf Jaw Positions\0" /* 2240, 0x300a, 0x011c */
5152
    "Gantry Angle\0" /* 2241, 0x300a, 0x011e */
5153
    "Gantry Rotation Direction\0" /* 2242, 0x300a, 0x011f */
5154
    "Beam Limiting Device Angle\0" /* 2243, 0x300a, 0x0120 */
5155
    "Beam Limiting Device Rotation Direction\0" /* 2244, 0x300a, 0x0121 */
5156
    "Patient Support Angle\0" /* 2245, 0x300a, 0x0122 */
5157
    "Patient Support Rotation Direction\0" /* 2246, 0x300a, 0x0123 */
5158
    "Table Top Eccentric Axis Distance\0" /* 2247, 0x300a, 0x0124 */
5159
    "Table Top Eccentric Angle\0" /* 2248, 0x300a, 0x0125 */
5160
    "Table Top Eccentric Rotation Direction\0" /* 2249, 0x300a, 0x0126 */
5161
    "Table Top Vertical Position\0" /* 2250, 0x300a, 0x0128 */
5162
    "Table Top Longitudinal Position\0" /* 2251, 0x300a, 0x0129 */
5163
    "Table Top Lateral Position\0" /* 2252, 0x300a, 0x012a */
5164
    "Isocenter Position\0" /* 2253, 0x300a, 0x012c */
5165
    "Surface Entry Point\0" /* 2254, 0x300a, 0x012e */
5166
    "Source to Surface Distance\0" /* 2255, 0x300a, 0x0130 */
5167
    "Cumulative Meterset Weight\0" /* 2256, 0x300a, 0x0134 */
5168
    "Patient Setup Sequence\0" /* 2257, 0x300a, 0x0180 */
5169
    "Patient Setup Number\0" /* 2258, 0x300a, 0x0182 */
5170
    "Patient Additional Position\0" /* 2259, 0x300a, 0x0184 */
5171
    "Fixation Device Sequence\0" /* 2260, 0x300a, 0x0190 */
5172
    "Fixation Device Type\0" /* 2261, 0x300a, 0x0192 */
5173
    "Fixation Device Label\0" /* 2262, 0x300a, 0x0194 */
5174
    "Fixation Device Description\0" /* 2263, 0x300a, 0x0196 */
5175
    "Fixation Device Position\0" /* 2264, 0x300a, 0x0198 */
5176
    "Shielding Device Sequence\0" /* 2265, 0x300a, 0x01a0 */
5177
    "Shielding Device Type\0" /* 2266, 0x300a, 0x01a2 */
5178
    "Shielding Device Label\0" /* 2267, 0x300a, 0x01a4 */
5179
    "Shielding Device Description\0" /* 2268, 0x300a, 0x01a6 */
5180
    "Shielding Device Position\0" /* 2269, 0x300a, 0x01a8 */
5181
    "Setup Technique\0" /* 2270, 0x300a, 0x01b0 */
5182
    "Setup TechniqueDescription\0" /* 2271, 0x300a, 0x01b2 */
5183
    "Setup Device Sequence\0" /* 2272, 0x300a, 0x01b4 */
5184
    "Setup Device Type\0" /* 2273, 0x300a, 0x01b6 */
5185
    "Setup Device Label\0" /* 2274, 0x300a, 0x01b8 */
5186
    "Setup Device Description\0" /* 2275, 0x300a, 0x01ba */
5187
    "Setup Device Parameter\0" /* 2276, 0x300a, 0x01bc */
5188
    "Setup ReferenceDescription\0" /* 2277, 0x300a, 0x01d0 */
5189
    "Table Top Vertical Setup Displacement\0" /* 2278, 0x300a, 0x01d2 */
5190
    "Table Top Longitudinal Setup Displacement\0" /* 2279, 0x300a, 0x01d4 */
5191
    "Table Top Lateral Setup Displacement\0" /* 2280, 0x300a, 0x01d6 */
5192
    "Brachy Treatment Technique\0" /* 2281, 0x300a, 0x0200 */
5193
    "Brachy Treatment Type\0" /* 2282, 0x300a, 0x0202 */
5194
    "Treatment Machine Sequence\0" /* 2283, 0x300a, 0x0206 */
5195
    "Source Sequence\0" /* 2284, 0x300a, 0x0210 */
5196
    "Source Number\0" /* 2285, 0x300a, 0x0212 */
5197
    "Source Type\0" /* 2286, 0x300a, 0x0214 */
5198
    "Source Manufacturer\0" /* 2287, 0x300a, 0x0216 */
5199
    "Active Source Diameter\0" /* 2288, 0x300a, 0x0218 */
5200
    "Active Source Length\0" /* 2289, 0x300a, 0x021a */
5201
    "Source Encapsulation Nominal Thickness\0" /* 2290, 0x300a, 0x0222 */
5202
    "Source Encapsulation Nominal Transmission\0" /* 2291, 0x300a, 0x0224 */
5203
    "Source IsotopeName\0" /* 2292, 0x300a, 0x0226 */
5204
    "Source Isotope Half Life\0" /* 2293, 0x300a, 0x0228 */
5205
    "Reference Air Kerma Rate\0" /* 2294, 0x300a, 0x022a */
5206
    "Air Kerma Rate Reference Date\0" /* 2295, 0x300a, 0x022c */
5207
    "Air Kerma Rate Reference Time\0" /* 2296, 0x300a, 0x022e */
5208
    "Application Setup Sequence\0" /* 2297, 0x300a, 0x0230 */
5209
    "Application Setup Type\0" /* 2298, 0x300a, 0x0232 */
5210
    "Application Setup Number\0" /* 2299, 0x300a, 0x0234 */
5211
    "Application Setup Name\0" /* 2300, 0x300a, 0x0236 */
5212
    "Application Setup Manufacturer\0" /* 2301, 0x300a, 0x0238 */
5213
    "Template Number\0" /* 2302, 0x300a, 0x0240 */
5214
    "Template Type\0" /* 2303, 0x300a, 0x0242 */
5215
    "Template Name\0" /* 2304, 0x300a, 0x0244 */
5216
    "Total Reference Air Kerma\0" /* 2305, 0x300a, 0x0250 */
5217
    "Brachy Accessory Device Sequence\0" /* 2306, 0x300a, 0x0260 */
5218
    "Brachy Accessory Device Number\0" /* 2307, 0x300a, 0x0262 */
5219
    "Brachy Accessory Device ID\0" /* 2308, 0x300a, 0x0263 */
5220
    "Brachy Accessory Device Type\0" /* 2309, 0x300a, 0x0264 */
5221
    "Brachy Accessory Device Name\0" /* 2310, 0x300a, 0x0266 */
5222
    "Brachy Accessory Device Nominal Thickness\0" /* 2311, 0x300a, 0x026a */
5223
    "Brachy Accessory Device Nominal Transmission\0" /* 2312, 0x300a, 0x026c */
5224
    "Channel Sequence\0" /* 2313, 0x300a, 0x0280 */
5225
    "Channel Number\0" /* 2314, 0x300a, 0x0282 */
5226
    "Channel Length\0" /* 2315, 0x300a, 0x0284 */
5227
    "Channel Total Time\0" /* 2316, 0x300a, 0x0286 */
5228
    "Source Movement Type\0" /* 2317, 0x300a, 0x0288 */
5229
    "Number of Pulses\0" /* 2318, 0x300a, 0x028a */
5230
    "Pulse Repetition Interval\0" /* 2319, 0x300a, 0x028c */
5231
    "Source Applicator Number\0" /* 2320, 0x300a, 0x0290 */
5232
    "Source Applicator ID\0" /* 2321, 0x300a, 0x0291 */
5233
    "Source Applicator Type\0" /* 2322, 0x300a, 0x0292 */
5234
    "Source Applicator Name\0" /* 2323, 0x300a, 0x0294 */
5235
    "Source Applicator Length\0" /* 2324, 0x300a, 0x0296 */
5236
    "Source Applicator Manufacturer\0" /* 2325, 0x300a, 0x0298 */
5237
    "Source Applicator Wall Nominal Thickness\0" /* 2326, 0x300a, 0x029c */
5238
    "Source Applicator Wall Nominal Transmission\0" /* 2327, 0x300a, 0x029e */
5239
    "Source Applicator Step Size\0" /* 2328, 0x300a, 0x02a0 */
5240
    "Transfer Tube Number\0" /* 2329, 0x300a, 0x02a2 */
5241
    "Transfer Tube Length\0" /* 2330, 0x300a, 0x02a4 */
5242
    "Channel Shield Sequence\0" /* 2331, 0x300a, 0x02b0 */
5243
    "Channel Shield Number\0" /* 2332, 0x300a, 0x02b2 */
5244
    "Channel Shield ID\0" /* 2333, 0x300a, 0x02b3 */
5245
    "Channel Shield Name\0" /* 2334, 0x300a, 0x02b4 */
5246
    "Channel Shield Nominal Thickness\0" /* 2335, 0x300a, 0x02b8 */
5247
    "Channel Shield Nominal Transmission\0" /* 2336, 0x300a, 0x02ba */
5248
    "Final Cumulative Time Weight\0" /* 2337, 0x300a, 0x02c8 */
5249
    "Brachy Control Point Sequence\0" /* 2338, 0x300a, 0x02d0 */
5250
    "Control Point Relative Position\0" /* 2339, 0x300a, 0x02d2 */
5251
    "Control Point 3D Position\0" /* 2340, 0x300a, 0x02d4 */
5252
    "Cumulative Time Weight\0" /* 2341, 0x300a, 0x02d6 */
5253
    "Referenced RT Plan Sequence\0" /* 2342, 0x300c, 0x0002 */
5254
    "Referenced Beam Sequence\0" /* 2343, 0x300c, 0x0004 */
5255
    "Referenced Beam Number\0" /* 2344, 0x300c, 0x0006 */
5256
    "Referenced Reference Image Number\0" /* 2345, 0x300c, 0x0007 */
5257
    "Start Cumulative Meterset Weight\0" /* 2346, 0x300c, 0x0008 */
5258
    "End Cumulative Meterset Weight\0" /* 2347, 0x300c, 0x0009 */
5259
    "Referenced Brachy Application Setup Sequence\0" /* 2348, 0x300c, 0x000a */
5260
    "Referenced Brachy Application Setup Number\0" /* 2349, 0x300c, 0x000c */
5261
    "Referenced Source Number\0" /* 2350, 0x300c, 0x000e */
5262
    "Referenced Fraction Group Sequence\0" /* 2351, 0x300c, 0x0020 */
5263
    "Referenced Fraction Group Number\0" /* 2352, 0x300c, 0x0022 */
5264
    "Referenced Verification Image Sequence\0" /* 2353, 0x300c, 0x0040 */
5265
    "Referenced Reference Image Sequence\0" /* 2354, 0x300c, 0x0042 */
5266
    "Referenced Dose Reference Sequence\0" /* 2355, 0x300c, 0x0050 */
5267
    "Referenced Dose Reference Number\0" /* 2356, 0x300c, 0x0051 */
5268
    "Brachy Referenced Dose Reference Sequence\0" /* 2357, 0x300c, 0x0055 */
5269
    "Referenced Structure Set Sequence\0" /* 2358, 0x300c, 0x0060 */
5270
    "Referenced Patient Setup Number\0" /* 2359, 0x300c, 0x006a */
5271
    "Referenced Dose Sequence\0" /* 2360, 0x300c, 0x0080 */
5272
    "Referenced Tolerance Table Number\0" /* 2361, 0x300c, 0x00a0 */
5273
    "Referenced Bolus Sequence\0" /* 2362, 0x300c, 0x00b0 */
5274
    "Referenced Wedge Number\0" /* 2363, 0x300c, 0x00c0 */
5275
    "Referenced Compensato rNumber\0" /* 2364, 0x300c, 0x00d0 */
5276
    "Referenced Block Number\0" /* 2365, 0x300c, 0x00e0 */
5277
    "Referenced Control Point\0" /* 2366, 0x300c, 0x00f0 */
5278
    "Approval Status\0" /* 2367, 0x300e, 0x0002 */
5279
    "Review Date\0" /* 2368, 0x300e, 0x0004 */
5280
    "Review Time\0" /* 2369, 0x300e, 0x0005 */
5281
    "Reviewer Name\0" /* 2370, 0x300e, 0x0008 */
5282
    "Text Group Length\0" /* 2371, 0x4000, 0x0000 */
5283
    "Text Arbitrary\0" /* 2372, 0x4000, 0x0010 */
5284
    "Text Comments\0" /* 2373, 0x4000, 0x4000 */
5285
    "Results Group Length\0" /* 2374, 0x4008, 0x0000 */
5286
    "Results ID\0" /* 2375, 0x4008, 0x0040 */
5287
    "Results ID Issuer\0" /* 2376, 0x4008, 0x0042 */
5288
    "Referenced Interpretation Sequence\0" /* 2377, 0x4008, 0x0050 */
5289
    "Report Production Status\0" /* 2378, 0x4008, 0x00ff */
5290
    "Interpretation Recorded Date\0" /* 2379, 0x4008, 0x0100 */
5291
    "Interpretation Recorded Time\0" /* 2380, 0x4008, 0x0101 */
5292
    "Interpretation Recorder\0" /* 2381, 0x4008, 0x0102 */
5293
    "Reference to Recorded Sound\0" /* 2382, 0x4008, 0x0103 */
5294
    "Interpretation Transcription Date\0" /* 2383, 0x4008, 0x0108 */
5295
    "Interpretation Transcription Time\0" /* 2384, 0x4008, 0x0109 */
5296
    "Interpretation Transcriber\0" /* 2385, 0x4008, 0x010a */
5297
    "Interpretation Text\0" /* 2386, 0x4008, 0x010b */
5298
    "Interpretation Author\0" /* 2387, 0x4008, 0x010c */
5299
    "Interpretation Approver Sequence\0" /* 2388, 0x4008, 0x0111 */
5300
    "Interpretation Approval Date\0" /* 2389, 0x4008, 0x0112 */
5301
    "Interpretation Approval Time\0" /* 2390, 0x4008, 0x0113 */
5302
    "Physician Approving Interpretation\0" /* 2391, 0x4008, 0x0114 */
5303
    "Interpretation Diagnosis Description\0" /* 2392, 0x4008, 0x0115 */
5304
    "InterpretationDiagnosis Code Sequence\0" /* 2393, 0x4008, 0x0117 */
5305
    "Results Distribution List Sequence\0" /* 2394, 0x4008, 0x0118 */
5306
    "Distribution Name\0" /* 2395, 0x4008, 0x0119 */
5307
    "Distribution Address\0" /* 2396, 0x4008, 0x011a */
5308
    "Interpretation ID\0" /* 2397, 0x4008, 0x0200 */
5309
    "Interpretation ID Issuer\0" /* 2398, 0x4008, 0x0202 */
5310
    "Interpretation Type ID\0" /* 2399, 0x4008, 0x0210 */
5311
    "Interpretation Status ID\0" /* 2400, 0x4008, 0x0212 */
5312
    "Impressions\0" /* 2401, 0x4008, 0x0300 */
5313
    "Results Comments\0" /* 2402, 0x4008, 0x4000 */
5314
    "Report ID\0" /* 2403, 0x4009, 0x0001 */
5315
    "Report Status\0" /* 2404, 0x4009, 0x0020 */
5316
    "Report Creation Date\0" /* 2405, 0x4009, 0x0030 */
5317
    "Report Approving Physician\0" /* 2406, 0x4009, 0x0070 */
5318
    "Report Text\0" /* 2407, 0x4009, 0x00e0 */
5319
    "Report Author\0" /* 2408, 0x4009, 0x00e1 */
5320
    "Reporting Radiologist\0" /* 2409, 0x4009, 0x00e3 */
5321
    "Curve Group Length\0" /* 2410, 0x5000, 0x0000 */
5322
    "Curve Dimensions\0" /* 2411, 0x5000, 0x0005 */
5323
    "Number of Points\0" /* 2412, 0x5000, 0x0010 */
5324
    "Type of Data\0" /* 2413, 0x5000, 0x0020 */
5325
    "Curve Description\0" /* 2414, 0x5000, 0x0022 */
5326
    "Axis Units\0" /* 2415, 0x5000, 0x0030 */
5327
    "Axis Labels\0" /* 2416, 0x5000, 0x0040 */
5328
    "Data Value Representation\0" /* 2417, 0x5000, 0x0103 */
5329
    "Minimum Coordinate Value\0" /* 2418, 0x5000, 0x0104 */
5330
    "Maximum Coordinate Value\0" /* 2419, 0x5000, 0x0105 */
5331
    "Curve Range\0" /* 2420, 0x5000, 0x0106 */
5332
    "Curve Data Descriptor\0" /* 2421, 0x5000, 0x0110 */
5333
    "Coordinate Start Value\0" /* 2422, 0x5000, 0x0112 */
5334
    "Coordinate Step Value\0" /* 2423, 0x5000, 0x0114 */
5335
    "Curve Activation Layer\0" /* 2424, 0x5000, 0x1001 */
5336
    "Audio Type\0" /* 2425, 0x5000, 0x2000 */
5337
    "Audio Sample Format\0" /* 2426, 0x5000, 0x2002 */
5338
    "Number of Channels\0" /* 2427, 0x5000, 0x2004 */
5339
    "Number of Samples\0" /* 2428, 0x5000, 0x2006 */
5340
    "Sample Rate\0" /* 2429, 0x5000, 0x2008 */
5341
    "Total Time\0" /* 2430, 0x5000, 0x200a */
5342
    "Audio Sample Data\0" /* 2431, 0x5000, 0x200c */
5343
    "Audio Comments\0" /* 2432, 0x5000, 0x200e */
5344
    "Curve Label\0" /* 2433, 0x5000, 0x2500 */
5345
    "CurveReferenced Overlay Sequence\0" /* 2434, 0x5000, 0x2600 */
5346
    "CurveReferenced Overlay Group\0" /* 2435, 0x5000, 0x2610 */
5347
    "Curve Data\0" /* 2436, 0x5000, 0x3000 */
5348
    "Overlay Group Length\0" /* 2437, 0x6000, 0x0000 */
5349
    "Gray Palette Color Lookup Table Descriptor\0" /* 2438, 0x6000, 0x0001 */
5350
    "Gray Palette Color Lookup Table Data\0" /* 2439, 0x6000, 0x0002 */
5351
    "Overlay Rows\0" /* 2440, 0x6000, 0x0010 */
5352
    "Overlay Columns\0" /* 2441, 0x6000, 0x0011 */
5353
    "Overlay Planes\0" /* 2442, 0x6000, 0x0012 */
5354
    "Number of Frames in Overlay\0" /* 2443, 0x6000, 0x0015 */
5355
    "Overlay Description\0" /* 2444, 0x6000, 0x0022 */
5356
    "Overlay Type\0" /* 2445, 0x6000, 0x0040 */
5357
    "Overlay Subtype\0" /* 2446, 0x6000, 0x0045 */
5358
    "Overlay Origin\0" /* 2447, 0x6000, 0x0050 */
5359
    "Image Frame Origin\0" /* 2448, 0x6000, 0x0051 */
5360
    "Plane Origin\0" /* 2449, 0x6000, 0x0052 */
5361
    "Overlay Compression Code\0" /* 2450, 0x6000, 0x0060 */
5362
    "Overlay Compression Originator\0" /* 2451, 0x6000, 0x0061 */
5363
    "Overlay Compression Label\0" /* 2452, 0x6000, 0x0062 */
5364
    "Overlay Compression Description\0" /* 2453, 0x6000, 0x0063 */
5365
    "Overlay Compression Step Pointers\0" /* 2454, 0x6000, 0x0066 */
5366
    "Overlay Repeat Interval\0" /* 2455, 0x6000, 0x0068 */
5367
    "Overlay Bits Grouped\0" /* 2456, 0x6000, 0x0069 */
5368
    "Overlay Bits Allocated\0" /* 2457, 0x6000, 0x0100 */
5369
    "Overlay Bit Position\0" /* 2458, 0x6000, 0x0102 */
5370
    "Overlay Format\0" /* 2459, 0x6000, 0x0110 */
5371
    "Overlay Location\0" /* 2460, 0x6000, 0x0200 */
5372
    "Overlay Code Label\0" /* 2461, 0x6000, 0x0800 */
5373
    "Overlay Number of Tables\0" /* 2462, 0x6000, 0x0802 */
5374
    "Overlay Code Table Location\0" /* 2463, 0x6000, 0x0803 */
5375
    "Overlay Bits For Code Word\0" /* 2464, 0x6000, 0x0804 */
5376
    "Overlay Activation Layer\0" /* 2465, 0x6000, 0x1001 */
5377
    "Overlay Descriptor - Gray\0" /* 2466, 0x6000, 0x1100 */
5378
    "Overlay Descriptor - Red\0" /* 2467, 0x6000, 0x1101 */
5379
    "Overlay Descriptor - Green\0" /* 2468, 0x6000, 0x1102 */
5380
    "Overlay Descriptor - Blue\0" /* 2469, 0x6000, 0x1103 */
5381
    "Overlays - Gray\0" /* 2470, 0x6000, 0x1200 */
5382
    "Overlays - Red\0" /* 2471, 0x6000, 0x1201 */
5383
    "Overlays - Green\0" /* 2472, 0x6000, 0x1202 */
5384
    "Overlays - Blue\0" /* 2473, 0x6000, 0x1203 */
5385
    "ROI Area\0" /* 2474, 0x6000, 0x1301 */
5386
    "ROI Mean\0" /* 2475, 0x6000, 0x1302 */
5387
    "ROI Standard Deviation\0" /* 2476, 0x6000, 0x1303 */
5388
    "Overlay Label\0" /* 2477, 0x6000, 0x1500 */
5389
    "Overlay Data\0" /* 2478, 0x6000, 0x3000 */
5390
    "Overlay Comments\0" /* 2479, 0x6000, 0x4000 */
5391
    "?\0" /* 2480, 0x6001, 0x0000 */
5392
    "?\0" /* 2481, 0x6001, 0x0010 */
5393
    "?\0" /* 2482, 0x6001, 0x1010 */
5394
    "?\0" /* 2483, 0x6001, 0x1030 */
5395
    "?\0" /* 2484, 0x6021, 0x0000 */
5396
    "?\0" /* 2485, 0x6021, 0x0010 */
5397
    "Dummy\0" /* 2486, 0x7001, 0x0010 */
5398
    "Info\0" /* 2487, 0x7003, 0x0010 */
5399
    "Dummy\0" /* 2488, 0x7005, 0x0010 */
5400
    "TextAnnotation\0" /* 2489, 0x7000, 0x0004 */
5401
    "Box\0" /* 2490, 0x7000, 0x0005 */
5402
    "ArrowEnd\0" /* 2491, 0x7000, 0x0007 */
5403
    "Pixel Data Group Length\0" /* 2492, 0x7fe0, 0x0000 */
5404
    "Pixel Data\0" /* 2493, 0x7fe0, 0x0010 */
5405
    "Coefficients SDVN\0" /* 2494, 0x7fe0, 0x0020 */
5406
    "Coefficients SDHN\0" /* 2495, 0x7fe0, 0x0030 */
5407
    "Coefficients SDDN\0" /* 2496, 0x7fe0, 0x0040 */
5408
    "Pixel Data\0" /* 2497, 0x7fe1, 0x0010 */
5409
    "Variable Pixel Data Group Length\0" /* 2498, 0x7f00, 0x0000 */
5410
    "Variable Pixel Data\0" /* 2499, 0x7f00, 0x0010 */
5411
    "Variable Next Data Group\0" /* 2500, 0x7f00, 0x0011 */
5412
    "Variable Coefficients SDVN\0" /* 2501, 0x7f00, 0x0020 */
5413
    "Variable Coefficients SDHN\0" /* 2502, 0x7f00, 0x0030 */
5414
    "Variable Coefficients SDDN\0" /* 2503, 0x7f00, 0x0040 */
5415
    "Binary Data\0" /* 2504, 0x7fe1, 0x0000 */
5416
    "Image Graphics Format Code\0" /* 2505, 0x7fe3, 0x0000 */
5417
    "Image Graphics\0" /* 2506, 0x7fe3, 0x0010 */
5418
    "Image Graphics Dummy\0" /* 2507, 0x7fe3, 0x0020 */
5419
    "?\0" /* 2508, 0x7ff1, 0x0001 */
5420
    "?\0" /* 2509, 0x7ff1, 0x0002 */
5421
    "?\0" /* 2510, 0x7ff1, 0x0003 */
5422
    "?\0" /* 2511, 0x7ff1, 0x0004 */
5423
    "?\0" /* 2512, 0x7ff1, 0x0005 */
5424
    "?\0" /* 2513, 0x7ff1, 0x0007 */
5425
    "?\0" /* 2514, 0x7ff1, 0x0008 */
5426
    "?\0" /* 2515, 0x7ff1, 0x0009 */
5427
    "?\0" /* 2516, 0x7ff1, 0x000a */
5428
    "?\0" /* 2517, 0x7ff1, 0x000b */
5429
    "?\0" /* 2518, 0x7ff1, 0x000c */
5430
    "?\0" /* 2519, 0x7ff1, 0x000d */
5431
    "?\0" /* 2520, 0x7ff1, 0x0010 */
5432
    "Data Set Trailing Padding\0" /* 2521, 0xfffc, 0xfffc */
5433
    "Item\0" /* 2522, 0xfffe, 0xe000 */
5434
    "Item Delimitation Item\0" /* 2523, 0xfffe, 0xe00d */
5435
    "Sequence Delimitation Item\0" /* 2524, 0xfffe, 0xe0dd */
5436
    "\0"; /* 2525, 0xffff, 0xffff */
5437
#endif /* DESCRIPION_STR */
5438

5439
static const char *DCM_Get_Description(const unsigned int index)
5440
0
{
5441
0
#if DESCRIPION_STR
5442
0
    size_t count;
5443
0
    const char *p = dicom_descriptions;
5444
0
    for (count = 0;
5445
0
         (count < index) && (p < dicom_descriptions+sizeof(dicom_descriptions)-1);
5446
0
         p++)
5447
0
    {
5448
0
        if (*p == '\0')
5449
0
          count++;
5450
0
    }
5451
0
    return p;
5452
#else
5453
    return dicom_info[index].description;
5454
#endif
5455
0
}
5456
/*
5457
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5458
%                                                                             %
5459
%                                                                             %
5460
%                                                                             %
5461
%   I s D C M                                                                 %
5462
%                                                                             %
5463
%                                                                             %
5464
%                                                                             %
5465
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5466
%
5467
%  Method IsDCM returns True if the image format type, identified by the
5468
%  magick string, is DCM.
5469
%
5470
%  The format of the ReadDCMImage method is:
5471
%
5472
%      unsigned int IsDCM(const unsigned char *magick,const size_t length)
5473
%
5474
%  A description of each parameter follows:
5475
%
5476
%    o status:  Method IsDCM returns True if the image format type is DCM.
5477
%
5478
%    o magick: This string is generally the first few bytes of an image file
5479
%      or blob.
5480
%
5481
%    o length: Specifies the length of the magick string.
5482
%
5483
%
5484
*/
5485
static MagickPassFail IsDCM(const unsigned char *magick,const size_t length)
5486
0
{
5487
0
  if (length < 132)
5488
0
    return(False);
5489
0
  if (LocaleNCompare((char *) (magick+128),"DICM",4) == 0)
5490
0
    return(True);
5491
0
  return(False);
5492
0
}
5493

5494
static MagickPassFail DCM_InitDCM(DicomStream *dcm,int verbose)
5495
23.9k
{
5496
23.9k
  (void) memset(dcm,0,sizeof(*dcm));
5497
23.9k
  dcm->columns=0;
5498
23.9k
  dcm->rows=0;
5499
23.9k
  dcm->samples_per_pixel=1;
5500
23.9k
  dcm->bits_allocated=8;
5501
23.9k
  dcm->significant_bits=0;
5502
23.9k
  dcm->high_bit=0;
5503
23.9k
  dcm->bytes_per_pixel=1;
5504
23.9k
  dcm->max_value_in=255;
5505
23.9k
  dcm->max_value_out=255;
5506
23.9k
  dcm->pixel_representation=0;
5507
23.9k
  dcm->transfer_syntax=DCM_TS_IMPL_LITTLE;
5508
23.9k
  dcm->interlace=0;
5509
23.9k
  dcm->msb_state=DCM_MSB_LITTLE;
5510
23.9k
  dcm->phot_interp=DCM_PI_MONOCHROME2;
5511
23.9k
  dcm->window_center=0;
5512
23.9k
  dcm->window_width=0;
5513
23.9k
  dcm->rescale_intercept=0;
5514
23.9k
  dcm->rescale_slope=1;
5515
23.9k
  dcm->number_scenes=1;
5516
23.9k
  dcm->data=NULL;
5517
23.9k
  dcm->upper_lim=0;
5518
23.9k
  dcm->lower_lim=0;
5519
23.9k
  dcm->rescale_map=NULL;
5520
23.9k
  dcm->rescale_type=DCM_RT_HOUNSFIELD;
5521
23.9k
  dcm->rescaling=DCM_RS_NONE;
5522
23.9k
  dcm->offset_ct=0;
5523
23.9k
  dcm->offset_arr=NULL;
5524
23.9k
  dcm->frag_bytes=0;
5525
23.9k
  dcm->rle_rep_ct=0;
5526
#if defined(USE_GRAYMAP)
5527
  dcm->graymap=(unsigned short *) NULL;
5528
#endif
5529
23.9k
  dcm->funcReadShort=ReadBlobLSBShort;
5530
23.9k
  dcm->funcReadLong=ReadBlobLSBLong;
5531
23.9k
  dcm->explicit_file=False;
5532
23.9k
  dcm->verbose=verbose;
5533
5534
23.9k
  return MagickPass;
5535
23.9k
}
5536

5537
static void DCM_DestroyDCM(DicomStream *dcm)
5538
23.9k
{
5539
23.9k
  MagickFreeResourceLimitedMemory(magick_uint32_t *,dcm->offset_arr);
5540
23.9k
  MagickFreeResourceLimitedMemory(unsigned char *,dcm->data);
5541
#if defined(USE_GRAYMAP)
5542
  MagickFreeResourceLimitedMemory(unsigned short *,dcm->graymap);
5543
#endif
5544
23.9k
  MagickFreeResourceLimitedMemory(Quantum *,dcm->rescale_map);
5545
23.9k
}
5546

5547
/*
5548
  Parse functions for DICOM elements
5549
*/
5550
static MagickPassFail funcDCM_TransferSyntax(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5551
11.7k
{
5552
11.7k
  char
5553
11.7k
    *p;
5554
5555
11.7k
  int
5556
11.7k
    type,
5557
11.7k
    subtype;
5558
5559
11.7k
  if (dcm->data == (unsigned char *) NULL)
5560
586
    {
5561
586
      ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5562
586
      return MagickFail;
5563
586
    }
5564
5565
11.1k
  p=(char *) dcm->data;
5566
11.1k
  if (strncmp(p,"1.2.840.10008.1.2",17) == 0)
5567
8.96k
    {
5568
8.96k
      if (*(p+17) == 0)
5569
34
        {
5570
34
          dcm->transfer_syntax = DCM_TS_IMPL_LITTLE;
5571
34
          return MagickPass;
5572
34
        }
5573
8.93k
      type=0;
5574
8.93k
      subtype=0;
5575
      /* Subtype is not always provided, but insist on type */
5576
8.93k
      if (sscanf(p+17,".%d.%d",&type,&subtype) < 1)
5577
6
        {
5578
6
          ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5579
6
          return MagickFail;
5580
6
        }
5581
8.92k
      switch (type)
5582
8.92k
        {
5583
73
        case 1:
5584
73
          dcm->transfer_syntax = DCM_TS_EXPL_LITTLE;
5585
73
          break;
5586
269
        case 2:
5587
269
          dcm->transfer_syntax = DCM_TS_EXPL_BIG;
5588
269
          dcm->msb_state=DCM_MSB_BIG_PENDING;
5589
269
          break;
5590
6.66k
        case 4:
5591
6.66k
          if ((subtype >= 80) && (subtype <= 81))
5592
66
            dcm->transfer_syntax = DCM_TS_JPEG_LS;
5593
6.59k
          else
5594
6.59k
          if ((subtype >= 90) && (subtype <= 93))
5595
1.08k
            dcm->transfer_syntax = DCM_TS_JPEG_2000;
5596
5.51k
          else
5597
5.51k
            dcm->transfer_syntax = DCM_TS_JPEG;
5598
6.66k
          break;
5599
1.72k
        case 5:
5600
1.72k
          dcm->transfer_syntax = DCM_TS_RLE;
5601
1.72k
          break;
5602
8.92k
        }
5603
8.92k
    }
5604
11.1k
  return MagickPass;
5605
11.1k
}
5606
5607
static MagickPassFail funcDCM_StudyDate(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5608
237
{
5609
237
  ARG_NOT_USED(exception);
5610
5611
237
  (void) SetImageAttribute(image,"StudyDate",(char *) dcm->data);
5612
237
  return MagickPass;
5613
237
}
5614
5615
static MagickPassFail funcDCM_PatientName(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5616
993
{
5617
993
  ARG_NOT_USED(exception);
5618
5619
993
  (void) SetImageAttribute(image,"PatientName",(char *) dcm->data);
5620
993
  return MagickPass;
5621
993
}
5622
5623
static MagickPassFail funcDCM_TriggerTime(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5624
210
{
5625
210
  ARG_NOT_USED(exception);
5626
5627
210
  (void) SetImageAttribute(image,"TriggerTime",(char *) dcm->data);
5628
210
  return MagickPass;
5629
210
}
5630
5631
static MagickPassFail funcDCM_FieldOfView(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5632
202
{
5633
202
  ARG_NOT_USED(exception);
5634
5635
202
  (void) SetImageAttribute(image,"FieldOfView",(char *) dcm->data);
5636
202
  return MagickPass;
5637
202
}
5638
5639
static MagickPassFail funcDCM_SeriesNumber(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5640
497
{
5641
497
  ARG_NOT_USED(exception);
5642
497
  (void) SetImageAttribute(image,"SeriesNumber",(char *) dcm->data);
5643
497
  return MagickPass;
5644
497
}
5645
5646
static MagickPassFail funcDCM_ImagePosition(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5647
5.99k
{
5648
5.99k
  ARG_NOT_USED(exception);
5649
5.99k
  (void) SetImageAttribute(image,"ImagePosition",(char *) dcm->data);
5650
5.99k
  return MagickPass;
5651
5.99k
}
5652
5653
static MagickPassFail funcDCM_ImageOrientation(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5654
335
{
5655
335
  ARG_NOT_USED(exception);
5656
335
  (void) SetImageAttribute(image,"ImageOrientation",(char *) dcm->data);
5657
335
  return MagickPass;
5658
335
}
5659
5660
static MagickPassFail funcDCM_SliceLocation(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5661
77
{
5662
77
  ARG_NOT_USED(exception);
5663
77
  (void) SetImageAttribute(image,"SliceLocation",(char *) dcm->data);
5664
77
  return MagickPass;
5665
77
}
5666
5667
static MagickPassFail funcDCM_SamplesPerPixel(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5668
1.32k
{
5669
1.32k
  ARG_NOT_USED(image);
5670
1.32k
  ARG_NOT_USED(exception);
5671
1.32k
  dcm->samples_per_pixel=dcm->datum;
5672
1.32k
  return MagickPass;
5673
1.32k
}
5674
5675
static MagickPassFail funcDCM_PhotometricInterpretation(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5676
1.93k
{
5677
1.93k
  char photometric[MaxTextExtent];
5678
1.93k
  unsigned int i;
5679
5680
1.93k
  ARG_NOT_USED(image);
5681
1.93k
  ARG_NOT_USED(exception);
5682
5683
1.93k
  if (dcm->data == (unsigned char *) NULL)
5684
4
    {
5685
4
      ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5686
4
      return MagickFail;
5687
4
    }
5688
5689
1.93k
  (void) memset(photometric,0,sizeof(photometric));
5690
227k
  for (i=0; i < Min(dcm->length, MaxTextExtent-1); i++)
5691
225k
    photometric[i]=dcm->data[i];
5692
1.93k
  photometric[i]='\0';
5693
5694
1.93k
  if (strncmp(photometric,"MONOCHROME1",11) == 0)
5695
85
    dcm->phot_interp = DCM_PI_MONOCHROME1;
5696
1.84k
  else
5697
1.84k
    if (strncmp(photometric,"MONOCHROME2",11) == 0)
5698
351
      dcm->phot_interp = DCM_PI_MONOCHROME2;
5699
1.49k
    else
5700
1.49k
      if (strncmp(photometric,"PALETTE COLOR",13) == 0)
5701
654
        dcm->phot_interp = DCM_PI_PALETTE_COLOR;
5702
840
      else
5703
840
        if (strncmp(photometric,"RGB",3) == 0)
5704
74
          dcm->phot_interp = DCM_PI_RGB;
5705
766
        else
5706
766
          dcm->phot_interp = DCM_PI_OTHER;
5707
1.93k
  return MagickPass;
5708
1.93k
}
5709
5710
static MagickPassFail funcDCM_PlanarConfiguration(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5711
860
{
5712
860
  ARG_NOT_USED(image);
5713
860
  ARG_NOT_USED(exception);
5714
5715
860
  dcm->interlace=dcm->datum;
5716
860
  return MagickPass;
5717
860
}
5718
5719
static MagickPassFail funcDCM_NumberOfFrames(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5720
6.57k
{
5721
6.57k
  if (dcm->data == (unsigned char *) NULL)
5722
1
    {
5723
1
      ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5724
1
      return MagickFail;
5725
1
    }
5726
5727
6.56k
  dcm->number_scenes=MagickAtoI((char *) dcm->data);
5728
6.56k
  return MagickPass;
5729
6.57k
}
5730
5731
static MagickPassFail funcDCM_Rows(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5732
8.76k
{
5733
8.76k
  ARG_NOT_USED(image);
5734
8.76k
  ARG_NOT_USED(exception);
5735
5736
8.76k
  dcm->rows=dcm->datum;
5737
8.76k
  return MagickPass;
5738
8.76k
}
5739
5740
static MagickPassFail funcDCM_Columns(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5741
8.61k
{
5742
8.61k
  ARG_NOT_USED(image);
5743
8.61k
  ARG_NOT_USED(exception);
5744
5745
8.61k
  dcm->columns=dcm->datum;
5746
8.61k
  return MagickPass;
5747
8.61k
}
5748
5749
static MagickPassFail funcDCM_BitsAllocated(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5750
2.28k
{
5751
2.28k
  ARG_NOT_USED(image);
5752
2.28k
  ARG_NOT_USED(exception);
5753
5754
2.28k
  dcm->bits_allocated=dcm->datum;
5755
2.28k
  dcm->bytes_per_pixel=1;
5756
2.28k
  if (dcm->datum > 8)
5757
1.02k
    dcm->bytes_per_pixel=2;
5758
2.28k
  return MagickPass;
5759
2.28k
}
5760
5761
static MagickPassFail funcDCM_BitsStored(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5762
786
{
5763
786
  ARG_NOT_USED(exception);
5764
5765
786
  dcm->significant_bits=dcm->datum;
5766
786
  dcm->bytes_per_pixel=1;
5767
786
  if ((dcm->significant_bits == 0U) || (dcm->significant_bits > 16U))
5768
18
    {
5769
18
      if (image->logging)
5770
18
        (void) LogMagickEvent(CoderEvent,GetMagickModule(),
5771
18
                              "DICOM significant_bits = %u (supported range is 1-16)",
5772
18
                              dcm->significant_bits);
5773
18
      ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5774
18
      return MagickFail;
5775
18
    }
5776
768
  if (dcm->significant_bits > 8)
5777
425
    dcm->bytes_per_pixel=2;
5778
768
  dcm->max_value_in=MaxValueGivenBits(dcm->significant_bits);
5779
768
  if (image->logging)
5780
768
        (void) LogMagickEvent(CoderEvent,GetMagickModule(),
5781
768
                              "Set max_value_in to %u due to %u significant bits",
5782
768
                              dcm->max_value_in, dcm->significant_bits);
5783
768
  dcm->max_value_out=dcm->max_value_in;
5784
768
  image->depth=Min(dcm->significant_bits,QuantumDepth);
5785
768
  return MagickPass;
5786
786
}
5787
5788
static MagickPassFail funcDCM_HighBit(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5789
412
{
5790
412
  ARG_NOT_USED(image);
5791
412
  ARG_NOT_USED(exception);
5792
5793
412
  dcm->high_bit=dcm->datum;
5794
412
  return MagickPass;
5795
412
}
5796
5797
static MagickPassFail funcDCM_PixelRepresentation(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5798
575
{
5799
575
  ARG_NOT_USED(image);
5800
575
  ARG_NOT_USED(exception);
5801
5802
575
  dcm->pixel_representation=dcm->datum;
5803
575
  return MagickPass;
5804
575
}
5805
5806
static MagickPassFail funcDCM_WindowCenter(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5807
492
{
5808
492
  char
5809
492
    *p;
5810
5811
492
  if (dcm->data == (unsigned char *) NULL)
5812
1
    {
5813
1
      ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5814
1
      return MagickFail;
5815
1
    }
5816
5817
491
  p = strrchr((char *) dcm->data,'\\');
5818
491
  if (p)
5819
203
    p++;
5820
288
  else
5821
288
    p=(char *) dcm->data;
5822
491
  dcm->window_center=MagickAtoF(p);
5823
491
  return MagickPass;
5824
492
}
5825
5826
static MagickPassFail funcDCM_WindowWidth(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5827
551
{
5828
551
  char
5829
551
    *p;
5830
5831
551
  if (dcm->data == (unsigned char *) NULL)
5832
2
    {
5833
2
      ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5834
2
      return MagickFail;
5835
2
    }
5836
5837
549
  p = strrchr((char *) dcm->data,'\\');
5838
549
  if (p)
5839
466
    p++;
5840
83
  else
5841
83
    p=(char *) dcm->data;
5842
549
  dcm->window_width=MagickAtoF(p);
5843
549
  return MagickPass;
5844
551
}
5845
5846
static MagickPassFail funcDCM_RescaleIntercept(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5847
479
{
5848
479
  char
5849
479
    *p;
5850
5851
479
  if (dcm->data == (unsigned char *) NULL)
5852
1
    {
5853
1
      ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5854
1
      return MagickFail;
5855
1
    }
5856
5857
478
  p = strrchr((char *) dcm->data,'\\');
5858
478
  if (p)
5859
283
    p++;
5860
195
  else
5861
195
    p=(char *) dcm->data;
5862
478
  dcm->rescale_intercept=MagickAtoF(p);
5863
478
  return MagickPass;
5864
479
}
5865
5866
static MagickPassFail funcDCM_RescaleSlope(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5867
590
{
5868
590
  char
5869
590
    *p;
5870
5871
590
  if (dcm->data == (unsigned char *) NULL)
5872
1
    {
5873
1
      ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5874
1
      return MagickFail;
5875
1
    }
5876
5877
589
  p = strrchr((char *) dcm->data,'\\');
5878
589
  if (p)
5879
324
    p++;
5880
265
  else
5881
265
    p=(char *) dcm->data;
5882
589
  dcm->rescale_slope=MagickAtoF(p);
5883
589
  return MagickPass;
5884
590
}
5885
5886
static MagickPassFail funcDCM_RescaleType(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5887
1.96k
{
5888
5889
1.96k
  if (dcm->data == (unsigned char *) NULL)
5890
1
    {
5891
1
      ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5892
1
      return MagickFail;
5893
1
    }
5894
5895
1.96k
  if (strncmp((char *) dcm->data,"OF",2) == 0)
5896
699
    dcm->rescale_type=DCM_RT_OPTICAL_DENSITY;
5897
1.26k
  else if (strncmp((char *) dcm->data,"HU",2) == 0)
5898
68
    dcm->rescale_type=DCM_RT_HOUNSFIELD;
5899
1.19k
  else if (strncmp((char *) dcm->data,"US",2) == 0)
5900
794
    dcm->rescale_type=DCM_RT_UNSPECIFIED;
5901
402
  else
5902
402
    dcm->rescale_type=DCM_RT_UNKNOWN;
5903
1.96k
  return MagickPass;
5904
1.96k
}
5905
5906
static MagickPassFail funcDCM_PaletteDescriptor(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5907
201
{
5908
  /*
5909
    Palette descriptor tables
5910
    element = 1101/2/3 = for red/green/blue palette
5911
    val 0 = # of entries in LUT (0 for 65535)
5912
    val 1 = min pix value in palette (ie pix <= val1 -> palette[0])
5913
    val 2 = # bits in LUT (8 or 16)
5914
    NB Required by specification to be the same for each color
5915
5916
    #1 - check the same each time
5917
    #2 - use scale_remap to map vals <= (val1) to first entry
5918
    and vals >= (val1 + palette size) to last entry
5919
    #3 - if (val2) == 8, use UINT8 values instead of UINT16
5920
    #4 - Check for UINT8 values packed into low bits of UINT16
5921
    entries as per spec
5922
  */
5923
201
  ARG_NOT_USED(image);
5924
201
  ARG_NOT_USED(dcm);
5925
201
  ARG_NOT_USED(exception);
5926
5927
201
  return MagickPass;
5928
201
}
5929
5930
static MagickPassFail funcDCM_LUT(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5931
399
{
5932
#if defined(USE_GRAYMAP)
5933
  /*
5934
    1200 = grey, LUT data 3006 = LUT data
5935
  */
5936
  unsigned long
5937
    colors;
5938
5939
  register unsigned long
5940
    i;
5941
5942
  if (dcm->data == (unsigned char *) NULL)
5943
    {
5944
      ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5945
      return MagickFail;
5946
    }
5947
5948
  colors=dcm->length/dcm->bytes_per_pixel;
5949
  dcm->datum=(long) colors;
5950
  dcm->graymap=MagickAllocateResourceLimitedArray(unsigned short *,colors,sizeof(unsigned short));
5951
  if (dcm->graymap == (unsigned short *) NULL)
5952
    {
5953
      ThrowException(exception,ResourceLimitError,MemoryAllocationFailed,image->filename);
5954
      return MagickFail;
5955
    }
5956
  for (i=0; i < (long) colors; i++)
5957
    if (dcm->bytes_per_pixel == 1)
5958
      dcm->graymap[i]=dcm->data[i];
5959
    else
5960
      dcm->graymap[i]=(unsigned short) ((short *) dcm->data)[i];
5961
#else
5962
399
  ARG_NOT_USED(image);
5963
399
  ARG_NOT_USED(dcm);
5964
399
  ARG_NOT_USED(exception);
5965
399
#endif
5966
399
  return MagickPass;
5967
399
}
5968
5969
static MagickPassFail funcDCM_Palette(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5970
6.71k
{
5971
6.71k
  register long
5972
6.71k
    i;
5973
5974
6.71k
  unsigned char
5975
6.71k
    *p;
5976
5977
6.71k
  unsigned short
5978
6.71k
    index;
5979
5980
6.71k
  if (dcm->data == (unsigned char *) NULL)
5981
15
    {
5982
15
      ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5983
15
      return MagickFail;
5984
15
    }
5985
5986
6.70k
  if (image->logging)
5987
6.70k
    (void) LogMagickEvent(CoderEvent,GetMagickModule(),
5988
6.70k
                          "Palette with %" MAGICK_SIZE_T_F "u entries...",
5989
6.70k
                          (MAGICK_SIZE_T) dcm->length);
5990
  /*
5991
    Initialize colormap (entries are always 16 bit)
5992
    1201/2/3 = red/green/blue palette
5993
  */
5994
6.70k
  if (image->colormap == (PixelPacket *) NULL)
5995
3.14k
    {
5996
      /*
5997
        Allocate color map first time in
5998
      */
5999
3.14k
      if (!AllocateImageColormap(image,(unsigned long) dcm->length))
6000
1
        {
6001
1
          ThrowException(exception,ResourceLimitError,UnableToCreateColormap,image->filename);
6002
1
          return MagickFail;
6003
1
        }
6004
3.14k
    }
6005
6006
  /*
6007
    Check that palette size matches previous one(s)
6008
  */
6009
6.70k
  if (dcm->length != image->colors)
6010
1.63k
    {
6011
1.63k
      ThrowException(exception,ResourceLimitError,UnableToCreateColormap,image->filename);
6012
1.63k
      return MagickFail;
6013
1.63k
    }
6014
6015
5.07k
  p=dcm->data;
6016
68.0k
  for (i=0; i < (long) image->colors; i++)
6017
62.9k
    {
6018
62.9k
      if (dcm->msb_state == DCM_MSB_BIG)
6019
972
        index=((unsigned short) *p << 8) | (unsigned short) *(p+1);
6020
61.9k
      else
6021
61.9k
        index=(unsigned short) *p | ((unsigned short) *(p+1) << 8);
6022
62.9k
      if (dcm->element == 0x1201)
6023
536
        image->colormap[i].red=ScaleShortToQuantum(index);
6024
62.4k
      else if (dcm->element == 0x1202)
6025
57.8k
        image->colormap[i].green=ScaleShortToQuantum(index);
6026
4.56k
      else
6027
4.56k
        image->colormap[i].blue=ScaleShortToQuantum(index);
6028
62.9k
      p+=2;
6029
62.9k
    }
6030
5.07k
  return MagickPass;
6031
6.70k
}
6032
6033
static magick_uint8_t DCM_RLE_ReadByte(Image *image, DicomStream *dcm)
6034
168k
{
6035
168k
  if (dcm->rle_rep_ct == 0)
6036
31.7k
    {
6037
31.7k
      int
6038
31.7k
        rep_ct,
6039
31.7k
        rep_char;
6040
6041
      /* We need to read the next command pair */
6042
31.7k
      if (dcm->frag_bytes <= 2)
6043
4.82k
        dcm->frag_bytes = 0;
6044
26.9k
      else
6045
26.9k
        dcm->frag_bytes -= 2;
6046
6047
31.7k
      rep_ct=ReadBlobByte(image);
6048
31.7k
      rep_char=ReadBlobByte(image);
6049
31.7k
      if (rep_ct == 128)
6050
4.17k
        {
6051
          /* Illegal value */
6052
4.17k
          return 0;
6053
4.17k
        }
6054
27.5k
      else
6055
27.5k
      if (rep_ct < 128)
6056
21.7k
        {
6057
          /* (rep_ct+1) literal bytes */
6058
21.7k
          dcm->rle_rep_ct=rep_ct;
6059
21.7k
          dcm->rle_rep_char=-1;
6060
21.7k
          return (magick_uint8_t)rep_char;
6061
21.7k
        }
6062
5.84k
      else
6063
5.84k
        {
6064
          /* (257-rep_ct) repeated bytes */
6065
5.84k
          dcm->rle_rep_ct=256-rep_ct;
6066
5.84k
          dcm->rle_rep_char=rep_char;
6067
5.84k
          return (magick_uint8_t)rep_char;
6068
5.84k
        }
6069
31.7k
    }
6070
6071
136k
  dcm->rle_rep_ct--;
6072
136k
  if (dcm->rle_rep_char >= 0)
6073
123k
    return dcm->rle_rep_char;
6074
6075
13.0k
  if (dcm->frag_bytes > 0)
6076
8.58k
    dcm->frag_bytes--;
6077
13.0k
  return ReadBlobByte(image);
6078
136k
}
6079
6080
static magick_uint16_t DCM_RLE_ReadShort(Image *image, DicomStream *dcm)
6081
20.9k
{
6082
20.9k
  return (((magick_uint16_t) DCM_RLE_ReadByte(image,dcm) << 4) |
6083
20.9k
          (magick_uint16_t) DCM_RLE_ReadByte(image,dcm));
6084
20.9k
}
6085
6086
static MagickPassFail DCM_ReadElement(Image *image, DicomStream *dcm,ExceptionInfo *exception)
6087
1.68M
{
6088
1.68M
  unsigned int
6089
1.68M
    use_explicit;
6090
6091
1.68M
  char
6092
1.68M
    explicit_vr[MaxTextExtent],
6093
1.68M
    implicit_vr[MaxTextExtent];
6094
6095
1.68M
  register long
6096
1.68M
    i;
6097
6098
  /*
6099
    Read group and element IDs
6100
  */
6101
1.68M
  image->offset=(long) TellBlob(image);
6102
1.68M
  dcm->group=dcm->funcReadShort(image);
6103
1.68M
  if ((dcm->msb_state == DCM_MSB_BIG_PENDING) && (dcm->group != 2))
6104
262
    {
6105
262
      dcm->group = (dcm->group << 8) | (dcm->group >> 8);
6106
262
      dcm->funcReadShort=ReadBlobMSBShort;
6107
262
      dcm->funcReadLong=ReadBlobMSBLong;
6108
262
      dcm->msb_state=DCM_MSB_BIG;
6109
262
    }
6110
1.68M
  dcm->element=dcm->funcReadShort(image);
6111
1.68M
  dcm->data=(unsigned char *) NULL;
6112
1.68M
  dcm->quantum=0;
6113
1.68M
  if (EOFBlob(image))
6114
665
    {
6115
665
      ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6116
665
      return MagickFail;
6117
665
    }
6118
  /*
6119
    Find corresponding VR for this group and element.
6120
  */
6121
215M
  for (i=0; dicom_info[i].group < 0xffffU; i++)
6122
215M
    if ((dcm->group == dicom_info[i].group) &&
6123
4.05M
        (dcm->element == dicom_info[i].element))
6124
1.63M
      break;
6125
1.68M
  dcm->index=i;
6126
6127
  /*
6128
    Check for "explicitness", but meta-file headers always explicit.
6129
  */
6130
1.68M
  if (ReadBlob(image,2,(char *) explicit_vr) != 2)
6131
466
    {
6132
466
      ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6133
466
      return MagickFail;
6134
466
    }
6135
1.68M
  explicit_vr[2]='\0';
6136
1.68M
  (void) strlcpy(implicit_vr,dicom_info[dcm->index].vr,MaxTextExtent);
6137
6138
1.68M
#if defined(NEW_IMPLICIT_LOGIC)
6139
1.68M
  use_explicit=False;
6140
1.68M
  if (isupper((int) *explicit_vr) && isupper((int) *(explicit_vr+1)))
6141
5.71k
    {
6142
      /* Explicit VR looks to be valid */
6143
5.71k
      if (strcmp(explicit_vr,implicit_vr) == 0)
6144
704
        {
6145
          /* Explicit VR matches implicit VR so assume that it is explicit */
6146
704
          use_explicit=True;
6147
704
        }
6148
5.01k
      else if ((dcm->group & 1) || strcmp(implicit_vr,"xs") == 0)
6149
4.60k
        {
6150
          /*
6151
            We *must* use explicit type under two conditions
6152
            1) group is odd and therefore private
6153
            2) element vr is set as "xs" ie is not of a fixed type
6154
          */
6155
4.60k
          use_explicit=True;
6156
4.60k
          strlcpy(implicit_vr,explicit_vr,sizeof(implicit_vr));
6157
4.60k
        }
6158
5.71k
    }
6159
1.68M
  if ((!use_explicit) || (strcmp(implicit_vr,"!!") == 0))
6160
1.67M
    {
6161
      /* Use implicit logic */
6162
1.67M
      (void) SeekBlob(image,(ExtendedSignedIntegralType) -2,SEEK_CUR);
6163
1.67M
      dcm->quantum=4;
6164
1.67M
    }
6165
5.30k
  else
6166
5.30k
    {
6167
      /* Use explicit logic */
6168
5.30k
      dcm->quantum=2;
6169
5.30k
      if ((strcmp(explicit_vr,"OB") == 0) ||
6170
5.22k
          (strcmp(explicit_vr,"OW") == 0) ||
6171
5.13k
          (strcmp(explicit_vr,"OF") == 0) ||
6172
4.22k
          (strcmp(explicit_vr,"SQ") == 0) ||
6173
4.12k
          (strcmp(explicit_vr,"UN") == 0) ||
6174
3.46k
          (strcmp(explicit_vr,"UT") == 0))
6175
2.25k
        {
6176
2.25k
          (void) dcm->funcReadShort(image);
6177
2.25k
          if (EOFBlob(image))
6178
8
            {
6179
8
              ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6180
8
              return MagickFail;
6181
8
            }
6182
2.24k
          dcm->quantum=4;
6183
2.24k
        }
6184
5.30k
    }
6185
#else
6186
  if (!dcm->explicit_file && (dcm->group != 0x0002))
6187
    dcm->explicit_file=isupper((int) *explicit_vr) && isupper((int) *(explicit_vr+1));
6188
  use_explicit=((dcm->group == 0x0002) || dcm->explicit_file);
6189
  if (use_explicit && (strcmp(implicit_vr,"xs") == 0))
6190
    (void) strlcpy(implicit_vr,explicit_vr,MaxTextExtent);
6191
  if (!use_explicit || (strcmp(implicit_vr,"!!") == 0))
6192
    {
6193
      (void) SeekBlob(image,(ExtendedSignedIntegralType) -2,SEEK_CUR);
6194
      dcm->quantum=4;
6195
    }
6196
  else
6197
    {
6198
      /*
6199
        Assume explicit type.
6200
      */
6201
      dcm->quantum=2;
6202
      if ((strcmp(explicit_vr,"OB") == 0) ||
6203
          (strcmp(explicit_vr,"UN") == 0) ||
6204
          (strcmp(explicit_vr,"OW") == 0) || (strcmp(explicit_vr,"SQ") == 0))
6205
        {
6206
          (void) dcm->funcReadShort(image)
6207
            if (EOFBlob(image))
6208
              {
6209
                ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6210
                return MagickFail;
6211
              }
6212
          dcm->quantum=4;
6213
        }
6214
    }
6215
#endif
6216
6217
1.68M
  dcm->datum=0;
6218
1.68M
  if (dcm->quantum == 4)
6219
1.68M
    {
6220
1.68M
      dcm->datum=dcm->funcReadLong(image);
6221
1.68M
      if (EOFBlob(image))
6222
86
        {
6223
86
          ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6224
86
          return MagickFail;
6225
86
        }
6226
1.68M
    }
6227
3.05k
  else if (dcm->quantum == 2)
6228
3.05k
    {
6229
3.05k
      dcm->datum=(long) dcm->funcReadShort(image);
6230
3.05k
      if (EOFBlob(image))
6231
29
        {
6232
29
          ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6233
29
          return MagickFail;
6234
29
        }
6235
3.05k
    }
6236
1.68M
  dcm->quantum=0;
6237
1.68M
  dcm->length=1;
6238
1.68M
  if (dcm->datum != 0)
6239
110k
    {
6240
110k
      if ((strcmp(implicit_vr,"SS") == 0) ||
6241
108k
          (strcmp(implicit_vr,"US") == 0) ||
6242
86.1k
          (strcmp(implicit_vr,"OW") == 0))
6243
30.7k
        dcm->quantum=2;
6244
79.2k
      else if ((strcmp(implicit_vr,"UL") == 0) ||
6245
69.0k
              (strcmp(implicit_vr,"SL") == 0) ||
6246
68.7k
              (strcmp(implicit_vr,"FL") == 0) ||
6247
68.3k
              (strcmp(implicit_vr,"OF") == 0))
6248
11.7k
        dcm->quantum=4;
6249
67.4k
      else  if (strcmp(implicit_vr,"FD") == 0)
6250
40
        dcm->quantum=8;
6251
67.4k
      else
6252
67.4k
        dcm->quantum=1;
6253
6254
110k
      if (dcm->datum != -1)
6255
92.1k
        {
6256
92.1k
          dcm->length=(size_t) dcm->datum/dcm->quantum;
6257
92.1k
        }
6258
17.9k
      else
6259
17.9k
        {
6260
          /*
6261
            Sequence and item of undefined length.
6262
          */
6263
17.9k
          dcm->quantum=0;
6264
17.9k
          dcm->length=0;
6265
17.9k
        }
6266
110k
    }
6267
  /*
6268
    Display Dicom info.
6269
  */
6270
1.68M
  if (dcm->verbose)
6271
0
    {
6272
0
      const char * description;
6273
0
      if (!use_explicit)
6274
0
        explicit_vr[0]='\0';
6275
0
      (void) fprintf(stdout,"0x%04lX %4lu %.1024s-%.1024s (0x%04x,0x%04x)",
6276
0
                     image->offset,(unsigned long) dcm->length,implicit_vr,explicit_vr,
6277
0
                     dcm->group,dcm->element);
6278
0
      if ((description=DCM_Get_Description(dcm->index)) != (char *) NULL)
6279
0
          (void) fprintf(stdout," %.1024s",description);
6280
0
      (void) fprintf(stdout,": ");
6281
0
    }
6282
1.68M
  if ((dcm->group == 0x7FE0) && (dcm->element == 0x0010))
6283
7.95k
    {
6284
7.95k
      if (dcm->verbose)
6285
0
        (void) fprintf(stdout,"\n");
6286
7.95k
      return MagickPass;
6287
7.95k
    }
6288
  /*
6289
    Allocate array and read data into it
6290
  */
6291
1.67M
  if ((dcm->length == 1) && (dcm->quantum == 1))
6292
1.26k
    {
6293
1.26k
      if ((dcm->datum=ReadBlobByte(image)) == EOF)
6294
3
        {
6295
3
          ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6296
3
          return MagickFail;
6297
3
        }
6298
1.26k
    }
6299
1.67M
  else if ((dcm->length == 1) && (dcm->quantum == 2))
6300
3.44k
    {
6301
3.44k
      dcm->datum=dcm->funcReadShort(image);
6302
3.44k
      if (EOFBlob(image))
6303
2
        {
6304
2
          ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6305
2
          return MagickFail;
6306
2
        }
6307
3.44k
    }
6308
1.67M
  else if ((dcm->length == 1) && (dcm->quantum == 4))
6309
2.72k
    {
6310
2.72k
      dcm->datum=dcm->funcReadLong(image);
6311
2.72k
      if (EOFBlob(image))
6312
1.46k
        {
6313
1.46k
          ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6314
1.46k
          return MagickFail;
6315
1.46k
        }
6316
2.72k
    }
6317
1.66M
  else if ((dcm->quantum != 0) && (dcm->length != 0))
6318
70.0k
    {
6319
70.0k
      size_t
6320
70.0k
        size;
6321
6322
70.0k
      if (dcm->length > ((size_t) GetBlobSize(image)))
6323
9.17k
        {
6324
9.17k
          ThrowException(exception,CorruptImageError,InsufficientImageDataInFile,image->filename);
6325
9.17k
          return MagickFail;
6326
9.17k
        }
6327
60.8k
      if (dcm->length > ((~0UL)/dcm->quantum))
6328
0
        {
6329
0
          ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
6330
0
          return MagickFail;
6331
0
        }
6332
60.8k
      dcm->data=MagickAllocateResourceLimitedArray(unsigned char *,(dcm->length+1),dcm->quantum);
6333
60.8k
      if (dcm->data == (unsigned char *) NULL)
6334
0
        {
6335
0
          ThrowException(exception,ResourceLimitError,MemoryAllocationFailed,image->filename);
6336
0
          return MagickFail;
6337
0
        }
6338
60.8k
      size=MagickArraySize(dcm->quantum,dcm->length);
6339
60.8k
      if (size == 0)
6340
0
        {
6341
0
          ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
6342
0
          return MagickFail;
6343
0
        }
6344
60.8k
      if (ReadBlob(image,size,(char *) dcm->data) != size)
6345
1.80k
        {
6346
1.80k
          ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6347
1.80k
          return MagickFail;
6348
1.80k
        }
6349
59.0k
      dcm->data[size]=0;
6350
59.0k
    }
6351
6352
1.66M
  if (dcm->verbose)
6353
0
    {
6354
      /*
6355
        Display data
6356
      */
6357
0
      if (dcm->data == (unsigned char *) NULL)
6358
0
        {
6359
0
          (void) fprintf(stdout,"%d\n",dcm->datum);
6360
0
        }
6361
0
      else
6362
0
        {
6363
0
          for (i=0; i < (long) Max(dcm->length,4); i++)
6364
0
            if (!isprint(dcm->data[i]))
6365
0
              break;
6366
0
          if ((i != (long) dcm->length) && (dcm->length <= 4))
6367
0
            {
6368
0
              long
6369
0
                j,
6370
0
                bin_datum;
6371
6372
0
              bin_datum=0;
6373
0
              for (j=(long) dcm->length-1; j >= 0; j--)
6374
0
                bin_datum=256*bin_datum+dcm->data[j];
6375
0
              (void) fprintf(stdout,"%lu\n",bin_datum);
6376
0
            }
6377
0
          else
6378
0
            {
6379
0
              for (i=0; i < (long) dcm->length; i++)
6380
0
                if (isprint(dcm->data[i]))
6381
0
                  (void) fprintf(stdout,"%c",dcm->data[i]);
6382
0
                else
6383
0
                  (void) fprintf(stdout,"%c",'.');
6384
0
              (void) fprintf(stdout,"\n");
6385
0
            }
6386
0
        }
6387
0
    }
6388
1.66M
  return MagickPass;
6389
1.67M
}
6390

6391
static MagickPassFail DCM_SetupColormap(Image *image,DicomStream *dcm,ExceptionInfo *exception)
6392
354
{
6393
354
  if ((image->previous) && (image->previous->colormap != (PixelPacket*)NULL))
6394
0
    {
6395
0
      size_t
6396
0
        length;
6397
6398
      /*
6399
        Clone colormap from previous image
6400
      */
6401
0
      image->storage_class=PseudoClass;
6402
0
      image->colors=image->previous->colors;
6403
0
      length=image->colors*sizeof(PixelPacket);
6404
0
      image->colormap=MagickAllocateMemory(PixelPacket *,length);
6405
0
      if (image->colormap == (PixelPacket *) NULL)
6406
0
        {
6407
0
          ThrowException(exception,ResourceLimitError,MemoryAllocationFailed,image->filename);
6408
0
          return MagickFail;
6409
0
        }
6410
0
      (void) memcpy(image->colormap,image->previous->colormap,length);
6411
0
    }
6412
354
  else
6413
354
    {
6414
      /*
6415
        Create new colormap
6416
      */
6417
354
      if (AllocateImageColormap(image,dcm->max_value_out+1) == MagickFail)
6418
0
        {
6419
0
          ThrowException(exception,ResourceLimitError,MemoryAllocationFailed,image->filename);
6420
0
          return MagickFail;
6421
0
        }
6422
354
    }
6423
354
  return MagickPass;
6424
354
}
6425

6426
static MagickPassFail DCM_SetupRescaleMap(Image *image,DicomStream *dcm,ExceptionInfo *exception)
6427
18.7k
{
6428
  /*
6429
    rescale_map maps input sample range -> output colormap range combining rescale
6430
    and window transforms, palette scaling and palette inversion (for MONOCHROME1)
6431
    as well as allowing for pixel_representation of 1 which causes input samples to
6432
    be treated as signed
6433
  */
6434
18.7k
  double
6435
18.7k
    win_center,
6436
18.7k
    win_width,
6437
18.7k
    Xr,
6438
18.7k
    Xw_min,
6439
18.7k
    Xw_max;
6440
6441
18.7k
  unsigned int
6442
18.7k
    i;
6443
6444
18.7k
  if (dcm->rescaling == DCM_RS_NONE)
6445
407
    return MagickPass;
6446
6447
18.3k
  if (image->logging)
6448
18.3k
    (void) LogMagickEvent(CoderEvent,GetMagickModule(),
6449
18.3k
                          "Set up rescale map for input range of %u"
6450
18.3k
                          " (%u entries)...",
6451
18.3k
                          dcm->max_value_in+1,MaxMap+1);
6452
6453
  /*
6454
    The rescale map must be limited to MaxMap+1 entries, which is 256
6455
    or 65536, depending on QuantumDepth.  Using a QuantumDepth less
6456
    than 16 for DICOM is a bad idea.
6457
6458
    The dcm->significant_bits value is limited to 16 (larger values
6459
    are outright rejected) so dcm->max_value_in and dcm->max_value_out
6460
    are limited to 65535.
6461
  */
6462
18.3k
  if (dcm->significant_bits == 0 || dcm->significant_bits > 16)
6463
54
    {
6464
54
      (void) LogMagickEvent(CoderEvent,GetMagickModule(),
6465
54
                            "DICOM significant_bits = %u (supported range is 1-16)",
6466
54
                            dcm->significant_bits);
6467
54
      ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
6468
54
      return MagickFail;
6469
54
    }
6470
18.3k
  if (dcm->max_value_in > MaxMap+1)
6471
0
    {
6472
0
      (void) LogMagickEvent(CoderEvent,GetMagickModule(),
6473
0
                            "DICOM max_value_in out of range %u (supported range is 0 - %u)",
6474
0
                            dcm->max_value_in, MaxMap+1);
6475
0
      ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
6476
0
      return MagickFail;
6477
0
    }
6478
18.3k
    if (dcm->max_value_out > MaxMap+1)
6479
0
    {
6480
0
      (void) LogMagickEvent(CoderEvent,GetMagickModule(),
6481
0
                            "DICOM max_value_out out of range %u (supported range is 0 - %u)",
6482
0
                            dcm->max_value_out, MaxMap+1);
6483
0
      ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
6484
0
      return MagickFail;
6485
0
    }
6486
18.3k
  if (dcm->rescale_map == (Quantum *) NULL)
6487
1.52k
    {
6488
1.52k
      size_t num_entries = Max((size_t) MaxMap+1,(size_t) dcm->max_value_in+1);
6489
6490
1.52k
      if (image->logging)
6491
1.52k
        (void) LogMagickEvent(CoderEvent,GetMagickModule(),
6492
1.52k
                              "Allocating %" MAGICK_SIZE_T_F "u entries for rescale map...", (MAGICK_SIZE_T) num_entries);
6493
1.52k
      dcm->rescale_map=MagickAllocateResourceLimitedClearedArray(Quantum *,num_entries,sizeof(Quantum));
6494
1.52k
      if (dcm->rescale_map == NULL)
6495
0
        {
6496
0
          ThrowException(exception,ResourceLimitError,MemoryAllocationFailed,image->filename);
6497
0
          return MagickFail;
6498
0
        }
6499
1.52k
    }
6500
6501
18.3k
  if (dcm->window_width == 0)
6502
18.2k
    { /* zero window width */
6503
18.2k
      if (dcm->upper_lim > dcm->lower_lim)
6504
15.5k
        {
6505
          /* Use known range within image */
6506
15.5k
          win_width=((double) dcm->upper_lim-dcm->lower_lim+1)*dcm->rescale_slope;
6507
15.5k
          win_center=(((double) dcm->upper_lim+dcm->lower_lim)/2.0)*dcm->rescale_slope+dcm->rescale_intercept;
6508
15.5k
        }
6509
2.69k
      else
6510
2.69k
        {
6511
          /* Use full sample range and hope for the best */
6512
2.69k
          win_width=((double) dcm->max_value_in+1)*dcm->rescale_slope;
6513
2.69k
          if (dcm->pixel_representation == 1)
6514
2.64k
            win_center=dcm->rescale_intercept;
6515
50
          else
6516
50
            win_center=win_width/2 + dcm->rescale_intercept;
6517
2.69k
        }
6518
18.2k
    }
6519
66
  else
6520
66
    {
6521
66
      win_width=dcm->window_width;
6522
66
      win_center=dcm->window_center;
6523
66
    }
6524
18.3k
  Xw_min = win_center - 0.5 - ((win_width-1)/2);
6525
18.3k
  Xw_max = win_center - 0.5 + ((win_width-1)/2);
6526
9.85M
  for (i=0; i < (dcm->max_value_in+1); i++)
6527
9.83M
    {
6528
9.83M
      if ((dcm->pixel_representation == 1) && (i >= MaxValueGivenBits(dcm->significant_bits)))
6529
2.65k
        Xr = -(((double) dcm->max_value_in+1-i) * dcm->rescale_slope) + dcm->rescale_intercept;
6530
9.83M
      else
6531
9.83M
        Xr = (i * dcm->rescale_slope) + dcm->rescale_intercept;
6532
9.83M
      if (Xr <= Xw_min)
6533
524k
        dcm->rescale_map[i]=0;
6534
9.30M
      else if (Xr >= Xw_max)
6535
489k
        dcm->rescale_map[i]=dcm->max_value_out;
6536
8.82M
      else
6537
8.82M
        dcm->rescale_map[i]=(Quantum)(((Xr-Xw_min)/(win_width-1))*dcm->max_value_out+0.5);
6538
9.83M
    }
6539
18.3k
  if (dcm->phot_interp == DCM_PI_MONOCHROME1)
6540
50.8k
    for (i=0; i <= dcm->max_value_in; i++)
6541
50.6k
      dcm->rescale_map[i]=dcm->max_value_out-dcm->rescale_map[i];
6542
6543
18.3k
  return MagickPass;
6544
18.3k
}
6545

6546
static void DCM_SetRescaling(DicomStream *dcm,int avoid_scaling)
6547
7.95k
{
6548
  /*
6549
    If avoid_scaling is True then scaling will only be applied where necessary ie
6550
    input bit depth exceeds quantum size.
6551
6552
    ### TODO : Should this throw an error rather than setting DCM_RS_PRE?
6553
  */
6554
7.95k
  dcm->rescaling=DCM_RS_NONE;
6555
7.95k
  dcm->max_value_out=dcm->max_value_in;
6556
6557
7.95k
  if (dcm->phot_interp == DCM_PI_PALETTE_COLOR)
6558
412
    {
6559
412
      if (dcm->max_value_in >= MaxColormapSize)
6560
0
        {
6561
0
          dcm->max_value_out=MaxColormapSize-1;
6562
0
          dcm->rescaling=DCM_RS_PRE;
6563
0
        }
6564
412
      return;
6565
412
    }
6566
6567
7.53k
  if ((dcm->phot_interp == DCM_PI_MONOCHROME1) ||
6568
7.52k
      (dcm->phot_interp == DCM_PI_MONOCHROME2))
6569
7.49k
    {
6570
7.49k
      if ((dcm->transfer_syntax == DCM_TS_JPEG) ||
6571
2.45k
          (dcm->transfer_syntax == DCM_TS_JPEG_LS) ||
6572
2.45k
          (dcm->transfer_syntax == DCM_TS_JPEG_2000))
6573
6.05k
        {
6574
          /* Encapsulated non-native grayscale images are post rescaled by default */
6575
6.05k
          if (!avoid_scaling)
6576
6.05k
            dcm->rescaling=DCM_RS_POST;
6577
6.05k
        }
6578
#if defined(GRAYSCALE_USES_PALETTE)
6579
      else if (dcm->max_value_in >= MaxColormapSize)
6580
        {
6581
          dcm->max_value_out=MaxColormapSize-1;
6582
          dcm->rescaling=DCM_RS_PRE;
6583
        }
6584
#else
6585
1.44k
      else if (dcm->max_value_in > MaxRGB)
6586
0
        {
6587
0
          dcm->max_value_out=MaxRGB;
6588
0
          dcm->rescaling=DCM_RS_PRE;
6589
0
        }
6590
1.44k
#endif
6591
1.44k
      else if (!avoid_scaling)
6592
1.44k
        {
6593
1.44k
#if !defined(GRAYSCALE_USES_PALETTE)
6594
1.44k
          dcm->max_value_out=MaxRGB;
6595
1.44k
#endif
6596
1.44k
          dcm->rescaling=DCM_RS_POST;
6597
1.44k
        }
6598
7.49k
      return;
6599
7.49k
    }
6600
6601
42
  if (avoid_scaling || (dcm->max_value_in == MaxRGB))
6602
4
    return;
6603
6604
38
  dcm->max_value_out=MaxRGB;
6605
38
  dcm->rescaling=DCM_RS_PRE;
6606
38
}
6607

6608
/*
6609
  FIXME: This code is totally broken since DCM_SetupRescaleMap
6610
  populates dcm->rescale_map and dcm->rescale_map has
6611
  dcm->max_value_in+1 entries, which has nothing to do with the number
6612
  of colormap entries or the range of MaxRGB.
6613
6614
  Disabling this whole function and code invoking it until someone
6615
  figures it out.
6616
*/
6617
static MagickPassFail DCM_PostRescaleImage(Image *image,DicomStream *dcm,unsigned long ScanLimits,ExceptionInfo *exception)
6618
19.5k
{
6619
19.5k
  unsigned long
6620
19.5k
    y,
6621
19.5k
    x;
6622
6623
19.5k
  register PixelPacket
6624
19.5k
    *q;
6625
6626
19.5k
  if (ScanLimits)
6627
19.4k
    {
6628
      /*
6629
        Causes rescan for upper/lower limits - used for encapsulated images
6630
      */
6631
19.4k
      unsigned int
6632
19.4k
        l;
6633
6634
2.80M
      for (y=0; y < image->rows; y++)
6635
2.78M
        {
6636
2.78M
          q=GetImagePixels(image,0,y,image->columns,1);
6637
2.78M
          if (q == (PixelPacket *) NULL)
6638
0
            return MagickFail;
6639
6640
2.78M
          if (image->storage_class == PseudoClass)
6641
205k
            {
6642
205k
              register IndexPacket
6643
205k
                *indexes;
6644
6645
205k
              indexes=AccessMutableIndexes(image);
6646
50.4M
              for (x=0; x < image->columns; x++)
6647
50.2M
                {
6648
50.2M
                  l=indexes[x];
6649
50.2M
                  if (dcm->pixel_representation == 1)
6650
5.74M
                    if (l > ((dcm->max_value_in >> 1)))
6651
4.75M
                      l = dcm->max_value_in-l+1;
6652
50.2M
                  if (l < (unsigned int) dcm->lower_lim)
6653
0
                    dcm->lower_lim = l;
6654
50.2M
                  if (l > (unsigned int) dcm->upper_lim)
6655
1.44k
                    dcm->upper_lim = l;
6656
50.2M
                }
6657
205k
            }
6658
2.57M
          else
6659
2.57M
            {
6660
451M
              for (x=0; x < image->columns; x++)
6661
449M
                {
6662
449M
                  l=q->green;
6663
449M
                  if (dcm->pixel_representation == 1)
6664
7.98M
                    if (l > (dcm->max_value_in >> 1))
6665
7.75M
                      l = dcm->max_value_in-l+1;
6666
449M
                  if (l < (unsigned int) dcm->lower_lim)
6667
0
                    dcm->lower_lim = l;
6668
449M
                  if (l > (unsigned int) dcm->upper_lim)
6669
8.30k
                    dcm->upper_lim = l;
6670
449M
                  q++;
6671
449M
                }
6672
2.57M
            }
6673
2.78M
        }
6674
6675
19.4k
      if (image->storage_class == PseudoClass)
6676
1.19k
        {
6677
          /* Handle compressed range by reallocating palette */
6678
1.19k
          if (!AllocateImageColormap(image,dcm->upper_lim+1))
6679
13
            {
6680
13
              ThrowException(exception,ResourceLimitError,UnableToCreateColormap,image->filename);
6681
13
              return MagickFail;
6682
13
            }
6683
1.17k
          return MagickPass;
6684
1.19k
        }
6685
19.4k
    }
6686
6687
18.3k
  if (DCM_SetupRescaleMap(image,dcm,exception) == MagickFail)
6688
51
    return MagickFail;
6689
2.59M
  for (y=0; y < image->rows; y++)
6690
2.57M
    {
6691
2.57M
      q=GetImagePixels(image,0,y,image->columns,1);
6692
2.57M
      if (q == (PixelPacket *) NULL)
6693
0
        return MagickFail;
6694
6695
2.57M
      if (image->storage_class == PseudoClass)
6696
0
        {
6697
0
          register IndexPacket
6698
0
            *indexes;
6699
6700
0
          indexes=AccessMutableIndexes(image);
6701
0
          for (x=0; x < image->columns; x++)
6702
0
            indexes[x]=dcm->rescale_map[indexes[x]];
6703
0
        }
6704
2.57M
      else
6705
2.57M
        {
6706
451M
          for (x=0; x < image->columns; x++)
6707
449M
            {
6708
449M
              q->red=dcm->rescale_map[q->red];
6709
449M
              q->green=dcm->rescale_map[q->green];
6710
449M
              q->blue=dcm->rescale_map[q->blue];
6711
449M
              q++;
6712
449M
            }
6713
2.57M
        }
6714
2.57M
      if (!SyncImagePixels(image))
6715
0
        return MagickFail;
6716
      /*
6717
        if (image->previous == (Image *) NULL)
6718
        if (QuantumTick(y,image->rows))
6719
        if (!MagickMonitorFormatted(y,image->rows,exception,
6720
        LoadImageText,image->filename))
6721
        return MagickFail;
6722
      */
6723
2.57M
    }
6724
18.3k
  return MagickPass;
6725
18.3k
}
6726

6727
static MagickPassFail DCM_ReadPaletteImage(Image *image,DicomStream *dcm,ExceptionInfo *exception)
6728
395
{
6729
395
  unsigned long
6730
395
    y;
6731
6732
395
  register unsigned long
6733
395
    x;
6734
6735
395
  register PixelPacket
6736
395
    *q;
6737
6738
395
  register IndexPacket
6739
395
    *indexes;
6740
6741
395
  unsigned short
6742
395
    index;
6743
6744
395
  unsigned char
6745
395
    byte;
6746
6747
395
  byte=0;
6748
6749
395
  if (image->logging)
6750
395
    (void) LogMagickEvent(CoderEvent,GetMagickModule(),
6751
395
                          "Reading Palette image...");
6752
6753
8.72k
  for (y=0; y < image->rows; y++)
6754
8.67k
    {
6755
8.67k
      q=SetImagePixels(image,0,y,image->columns,1);
6756
8.67k
      if (q == (PixelPacket *) NULL)
6757
0
        return MagickFail;
6758
8.67k
      indexes=AccessMutableIndexes(image);
6759
23.9k
      for (x=0; x < image->columns; x++)
6760
15.5k
        {
6761
15.5k
          if (dcm->bytes_per_pixel == 1)
6762
3.15k
            {
6763
3.15k
              if (dcm->transfer_syntax == DCM_TS_RLE)
6764
2.38k
                index=DCM_RLE_ReadByte(image,dcm);
6765
777
              else
6766
777
                index=ReadBlobByte(image);
6767
3.15k
            }
6768
12.4k
          else
6769
12.4k
          if (dcm->bits_allocated != 12)
6770
1.48k
            {
6771
1.48k
              if (dcm->transfer_syntax == DCM_TS_RLE)
6772
919
                index=DCM_RLE_ReadShort(image,dcm);
6773
561
              else
6774
561
                index=dcm->funcReadShort(image);
6775
1.48k
            }
6776
10.9k
          else
6777
10.9k
            {
6778
10.9k
              if (x & 0x01)
6779
3.86k
                {
6780
                  /* ### TODO - Check whether logic needs altering if msb_state != DCM_MSB_LITTLE */
6781
3.86k
                  if (dcm->transfer_syntax == DCM_TS_RLE)
6782
3.64k
                    index=DCM_RLE_ReadByte(image,dcm);
6783
222
                  else
6784
222
                    index=ReadBlobByte(image);
6785
3.86k
                  index=(index << 4) | byte;
6786
3.86k
                }
6787
7.07k
              else
6788
7.07k
                {
6789
7.07k
                  if (dcm->transfer_syntax == DCM_TS_RLE)
6790
6.68k
                    index=DCM_RLE_ReadByte(image,dcm);
6791
390
                  else
6792
390
                    index=dcm->funcReadShort(image);
6793
7.07k
                  byte=index >> 12;
6794
7.07k
                  index&=0xfff;
6795
7.07k
                }
6796
10.9k
            }
6797
15.5k
          index&=dcm->max_value_in;
6798
15.5k
          if (dcm->rescaling == DCM_RS_PRE)
6799
0
            {
6800
              /*
6801
                ### TODO - must read as Direct Class so look up
6802
                red/green/blue values in palette table, processed via
6803
                rescale_map
6804
              */
6805
0
            }
6806
15.5k
          else
6807
15.5k
            {
6808
#if defined(USE_GRAYMAP)
6809
              if (dcm->graymap != (unsigned short *) NULL)
6810
                index=dcm->graymap[index];
6811
#endif
6812
15.5k
              index=(IndexPacket) (index);
6813
15.5k
              VerifyColormapIndex(image,index);
6814
15.5k
              indexes[x]=index;
6815
15.5k
              *q=image->colormap[index];
6816
15.5k
              q++;
6817
15.5k
            }
6818
6819
15.5k
          if (EOFBlob(image))
6820
340
            {
6821
340
              ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6822
340
              return MagickFail;
6823
340
            }
6824
15.5k
        }
6825
8.33k
      if (!SyncImagePixels(image))
6826
0
        return MagickFail;
6827
8.33k
      if (image->previous == (Image *) NULL)
6828
8.33k
        if (QuantumTick(y,image->rows))
6829
3.51k
          if (!MagickMonitorFormatted(y,image->rows,exception,
6830
3.51k
                                      LoadImageText,image->filename,
6831
3.51k
                                      image->columns,image->rows))
6832
0
            return MagickFail;
6833
8.33k
    }
6834
55
  return MagickPass;
6835
395
}
6836

6837
static MagickPassFail DCM_ReadGrayscaleImage(Image *image,DicomStream *dcm,ExceptionInfo *exception)
6838
569
{
6839
569
  unsigned long
6840
569
    y;
6841
6842
569
  register unsigned long
6843
569
    x;
6844
6845
569
  register PixelPacket
6846
569
    *q;
6847
6848
#if defined(GRAYSCALE_USES_PALETTE) /* not used */
6849
  register IndexPacket
6850
    *indexes;
6851
#endif
6852
6853
569
  unsigned short
6854
569
    index;
6855
6856
569
  unsigned char
6857
569
    byte;
6858
6859
569
  if (image->logging)
6860
569
    (void) LogMagickEvent(CoderEvent,GetMagickModule(),
6861
569
                          "Reading Grayscale %lux%lu image...",image->columns,image->rows);
6862
6863
569
#if !defined(GRAYSCALE_USES_PALETTE)
6864
  /*
6865
    If a palette was provided, the image may be in PseudoClass
6866
  */
6867
569
  image->storage_class=DirectClass;
6868
569
#endif
6869
6870
569
  dcm->lower_lim = dcm->max_value_in;
6871
569
  dcm->upper_lim = -(dcm->lower_lim);
6872
569
  byte=0;
6873
12.6k
  for (y=0; y < image->rows; y++)
6874
12.5k
    {
6875
12.5k
      q=SetImagePixelsEx(image,0,y,image->columns,1,exception);
6876
12.5k
      if (q == (PixelPacket *) NULL)
6877
0
        return MagickFail;
6878
#if defined(GRAYSCALE_USES_PALETTE) /* not used */
6879
      indexes=AccessMutableIndexes(image);
6880
#endif
6881
47.5k
      for (x=0; x < image->columns; x++)
6882
35.4k
        {
6883
35.4k
          if (dcm->bytes_per_pixel == 1)
6884
9.00k
            {
6885
9.00k
              if (dcm->transfer_syntax == DCM_TS_RLE)
6886
7.19k
                index=DCM_RLE_ReadByte(image,dcm);
6887
1.80k
              else
6888
1.80k
                index=ReadBlobByte(image);
6889
9.00k
            }
6890
26.4k
          else
6891
26.4k
          if (dcm->bits_allocated != 12)
6892
14.8k
            {
6893
14.8k
              if (dcm->transfer_syntax == DCM_TS_RLE)
6894
13.3k
                index=DCM_RLE_ReadShort(image,dcm);
6895
1.47k
              else
6896
1.47k
                index=dcm->funcReadShort(image);
6897
14.8k
            }
6898
11.6k
          else
6899
11.6k
            {
6900
11.6k
              if (x & 0x01)
6901
5.56k
                {
6902
                  /* ### TODO - Check whether logic needs altering if msb_state != DCM_MSB_LITTLE */
6903
5.56k
                  if (dcm->transfer_syntax == DCM_TS_RLE)
6904
5.34k
                    index=DCM_RLE_ReadByte(image,dcm);
6905
221
                  else
6906
221
                    index=ReadBlobByte(image);
6907
5.56k
                  index=(index << 4) | byte;
6908
5.56k
                }
6909
6.10k
              else
6910
6.10k
                {
6911
6.10k
                  if (dcm->transfer_syntax == DCM_TS_RLE)
6912
5.71k
                    index=DCM_RLE_ReadShort(image,dcm);
6913
395
                  else
6914
395
                    index=dcm->funcReadShort(image);
6915
6.10k
                  byte=index >> 12;
6916
6.10k
                  index&=0xfff;
6917
6.10k
                }
6918
11.6k
            }
6919
35.4k
          index&=dcm->max_value_in;
6920
35.4k
          if (dcm->rescaling == DCM_RS_POST)
6921
35.2k
            {
6922
35.2k
              unsigned int
6923
35.2k
                l;
6924
6925
35.2k
              l = index;
6926
35.2k
              if (dcm->pixel_representation == 1)
6927
890
                if (l > (dcm->max_value_in >> 1))
6928
361
                  l = dcm->max_value_in-l+1;
6929
35.2k
              if ((int) l < dcm->lower_lim)
6930
758
                dcm->lower_lim = l;
6931
35.2k
              if ((int) l > dcm->upper_lim)
6932
1.17k
                dcm->upper_lim = l;
6933
35.2k
            }
6934
#if defined(GRAYSCALE_USES_PALETTE) /* not used */
6935
          if (dcm->rescaling == DCM_RS_PRE)
6936
            indexes[x]=dcm->rescale_map[index];
6937
          else
6938
            indexes[x]=index;
6939
#else
6940
35.4k
          if ((dcm->rescaling == DCM_RS_PRE) &&
6941
265
              (dcm->rescale_map != (Quantum *) NULL))
6942
265
            {
6943
265
              index=dcm->rescale_map[index];
6944
265
            }
6945
35.4k
          q->red=index;
6946
35.4k
          q->green=index;
6947
35.4k
          q->blue=index;
6948
35.4k
          q->opacity=OpaqueOpacity;
6949
35.4k
          q++;
6950
35.4k
#endif
6951
35.4k
          if (EOFBlob(image))
6952
490
            {
6953
490
              ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6954
490
              return MagickFail;
6955
490
            }
6956
35.4k
        }
6957
12.0k
      if (!SyncImagePixelsEx(image,exception))
6958
0
        return MagickFail;
6959
12.0k
      if (image->previous == (Image *) NULL)
6960
12.0k
        if (QuantumTick(y,image->rows))
6961
5.38k
          if (!MagickMonitorFormatted(y,image->rows,exception,
6962
5.38k
                                      LoadImageText,image->filename,
6963
5.38k
                                      image->columns,image->rows))
6964
0
            return MagickFail;
6965
12.0k
    }
6966
79
  return MagickPass;
6967
569
}
6968

6969
static MagickPassFail DCM_ReadPlanarRGBImage(Image *image,DicomStream *dcm,ExceptionInfo *exception)
6970
402
{
6971
402
  unsigned long
6972
402
    plane,
6973
402
    y,
6974
402
    x;
6975
6976
402
  register PixelPacket
6977
402
    *q;
6978
6979
402
  if (image->logging)
6980
402
    (void) LogMagickEvent(CoderEvent,GetMagickModule(),
6981
402
                          "Reading Planar RGB %s compressed image with %u planes...",
6982
402
                          (dcm->transfer_syntax == DCM_TS_RLE ? "RLE" : "not"),
6983
402
                          dcm->samples_per_pixel);
6984
  /*
6985
    Force image to DirectClass since we are only updating DirectClass
6986
    representation.  The image may be in PseudoClass if we were
6987
    previously provided with a Palette.
6988
  */
6989
402
  image->storage_class=DirectClass;
6990
6991
1.07k
  for (plane=0; plane < dcm->samples_per_pixel; plane++)
6992
1.04k
    {
6993
1.04k
      if (image->logging)
6994
1.04k
        (void) LogMagickEvent(CoderEvent,GetMagickModule(),
6995
1.04k
                              "  Plane %lu...",plane);
6996
29.7k
      for (y=0; y < image->rows; y++)
6997
29.1k
        {
6998
29.1k
          q=GetImagePixels(image,0,y,image->columns,1);
6999
29.1k
          if (q == (PixelPacket *) NULL)
7000
0
              return MagickFail;
7001
7002
86.7k
          for (x=0; x < image->columns; x++)
7003
58.0k
            {
7004
58.0k
              switch ((int) plane)
7005
58.0k
                {
7006
25.6k
                  case 0:
7007
25.6k
                    if (dcm->transfer_syntax == DCM_TS_RLE)
7008
24.2k
                      q->red=ScaleCharToQuantum(DCM_RLE_ReadByte(image,dcm));
7009
1.39k
                    else
7010
1.39k
                      q->red=ScaleCharToQuantum(ReadBlobByte(image));
7011
25.6k
                    break;
7012
17.7k
                  case 1:
7013
17.7k
                    if (dcm->transfer_syntax == DCM_TS_RLE)
7014
17.1k
                      q->green=ScaleCharToQuantum(DCM_RLE_ReadByte(image,dcm));
7015
558
                    else
7016
558
                      q->green=ScaleCharToQuantum(ReadBlobByte(image));
7017
17.7k
                    break;
7018
10.8k
                  case 2:
7019
10.8k
                    if (dcm->transfer_syntax == DCM_TS_RLE)
7020
10.4k
                      q->blue=ScaleCharToQuantum(DCM_RLE_ReadByte(image,dcm));
7021
413
                    else
7022
413
                      q->blue=ScaleCharToQuantum(ReadBlobByte(image));
7023
10.8k
                    break;
7024
3.69k
                  case 3:
7025
3.69k
                    if (dcm->transfer_syntax == DCM_TS_RLE)
7026
3.49k
                      q->opacity=ScaleCharToQuantum((Quantum)(MaxRGB-ScaleCharToQuantum(DCM_RLE_ReadByte(image,dcm))));
7027
201
                    else
7028
201
                      q->opacity=ScaleCharToQuantum((Quantum)(MaxRGB-ScaleCharToQuantum(ReadBlobByte(image))));
7029
3.69k
                    break;
7030
58.0k
                }
7031
58.0k
              if (EOFBlob(image))
7032
373
                {
7033
373
                  ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
7034
373
                  return MagickFail;
7035
373
                }
7036
57.6k
              q++;
7037
57.6k
            }
7038
28.7k
          if (!SyncImagePixels(image))
7039
0
            return MagickFail;
7040
28.7k
          if (image->previous == (Image *) NULL)
7041
28.7k
            if (QuantumTick(y,image->rows))
7042
16.1k
              if (!MagickMonitorFormatted(y,image->rows,exception,
7043
16.1k
                                          LoadImageText,image->filename,
7044
16.1k
                                          image->columns,image->rows))
7045
0
                return MagickFail;
7046
28.7k
        }
7047
1.04k
    }
7048
29
  return MagickPass;
7049
402
}
7050

7051
static MagickPassFail DCM_ReadRGBImage(Image *image,DicomStream *dcm,ExceptionInfo *exception)
7052
317
{
7053
317
  unsigned long
7054
317
    y,
7055
317
    x;
7056
7057
317
  register PixelPacket
7058
317
    *q;
7059
7060
317
  Quantum
7061
317
    blue,
7062
317
    green,
7063
317
    red;
7064
7065
317
  red=0;
7066
317
  green=0;
7067
317
  blue=0;
7068
7069
317
  if (image->logging)
7070
317
    (void) LogMagickEvent(CoderEvent,GetMagickModule(),
7071
317
                          "Reading RGB image...");
7072
7073
  /*
7074
    Force image to DirectClass since we are only updating DirectClass
7075
    representation.  The image may be in PseudoClass if we were
7076
    previously provided with a Palette.
7077
  */
7078
317
  image->storage_class=DirectClass;
7079
7080
6.06k
  for (y=0; y < image->rows; y++)
7081
6.05k
    {
7082
6.05k
      q=GetImagePixels(image,0,y,image->columns,1);
7083
6.05k
      if (q == (PixelPacket *) NULL)
7084
0
        return MagickFail;
7085
7086
22.3k
      for (x=0; x < image->columns; x++)
7087
16.6k
        {
7088
16.6k
          if (dcm->bytes_per_pixel == 1)
7089
15.9k
            {
7090
15.9k
              if (dcm->transfer_syntax == DCM_TS_RLE)
7091
15.3k
                {
7092
15.3k
                  red=DCM_RLE_ReadByte(image,dcm);
7093
15.3k
                  green=DCM_RLE_ReadByte(image,dcm);
7094
15.3k
                  blue=DCM_RLE_ReadByte(image,dcm);
7095
7096
15.3k
                }
7097
628
              else
7098
628
                {
7099
628
                  red=ReadBlobByte(image);
7100
628
                  green=ReadBlobByte(image);
7101
628
                  blue=ReadBlobByte(image);
7102
628
                }
7103
15.9k
            }
7104
636
          else
7105
636
            {
7106
636
              if (dcm->transfer_syntax == DCM_TS_RLE)
7107
342
                {
7108
342
                  red=DCM_RLE_ReadShort(image,dcm);
7109
342
                  green=DCM_RLE_ReadShort(image,dcm);
7110
342
                  blue=DCM_RLE_ReadShort(image,dcm);
7111
342
                }
7112
294
              else
7113
294
                {
7114
294
                  red=dcm->funcReadShort(image);
7115
294
                  green=dcm->funcReadShort(image);
7116
294
                  blue=dcm->funcReadShort(image);
7117
294
                }
7118
636
            }
7119
16.6k
          red&=dcm->max_value_in;
7120
16.6k
          green&=dcm->max_value_in;
7121
16.6k
          blue&=dcm->max_value_in;
7122
16.6k
          if ((dcm->rescaling == DCM_RS_PRE) &&
7123
231
              (dcm->rescale_map != (Quantum *) NULL))
7124
231
            {
7125
231
              red=dcm->rescale_map[red];
7126
231
              green=dcm->rescale_map[green];
7127
231
              blue=dcm->rescale_map[blue];
7128
231
            }
7129
7130
16.6k
          q->red=(Quantum) red;
7131
16.6k
          q->green=(Quantum) green;
7132
16.6k
          q->blue=(Quantum) blue;
7133
16.6k
          q->opacity=OpaqueOpacity;
7134
16.6k
          q++;
7135
16.6k
          if (EOFBlob(image))
7136
310
            {
7137
310
              ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
7138
310
              return MagickFail;
7139
310
            }
7140
16.6k
        }
7141
5.74k
      if (!SyncImagePixels(image))
7142
0
        return MagickFail;
7143
5.74k
      if (image->previous == (Image *) NULL)
7144
5.74k
        if (QuantumTick(y,image->rows))
7145
2.51k
          if (!MagickMonitorFormatted(y,image->rows,exception,
7146
2.51k
                                      LoadImageText,image->filename,
7147
2.51k
                                      image->columns,image->rows))
7148
0
            return MagickFail;
7149
5.74k
    }
7150
7
  return MagickPass;
7151
317
}
7152

7153
static MagickPassFail DCM_ReadOffsetTable(Image *image,DicomStream *dcm,ExceptionInfo *exception)
7154
7.59k
{
7155
7.59k
  magick_uint32_t
7156
7.59k
    base_offset,
7157
7.59k
    tag,
7158
7.59k
    length,
7159
7.59k
    i;
7160
7161
7.59k
  tag=((magick_uint32_t) dcm->funcReadShort(image) << 16) |
7162
7.59k
    (magick_uint32_t) dcm->funcReadShort(image);
7163
7.59k
  length=dcm->funcReadLong(image);
7164
7.59k
  if (tag != 0xFFFEE000)
7165
38
    return MagickFail;
7166
7167
7.55k
  dcm->offset_ct=length >> 2;
7168
7.55k
  if (dcm->offset_ct == 0)
7169
7.44k
    return MagickPass;
7170
7171
110
  if (dcm->offset_ct != dcm->number_scenes)
7172
35
    {
7173
35
      ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
7174
35
      return MagickFail;
7175
35
    }
7176
7177
75
  dcm->offset_arr=MagickAllocateResourceLimitedClearedArray(magick_uint32_t *,dcm->offset_ct,sizeof(magick_uint32_t));
7178
75
  if (dcm->offset_arr == (magick_uint32_t *) NULL)
7179
0
    {
7180
0
      ThrowException(exception,ResourceLimitError,MemoryAllocationFailed,image->filename);
7181
0
      return MagickFail;
7182
0
    }
7183
7184
1.32k
  for (i=0; i < dcm->offset_ct; i++)
7185
1.25k
  {
7186
1.25k
    dcm->offset_arr[i]=dcm->funcReadLong(image);
7187
1.25k
    if (EOFBlob(image))
7188
7
      return MagickFail;
7189
1.25k
  }
7190
68
  base_offset=(magick_uint32_t)TellBlob(image);
7191
862
  for (i=0; i < dcm->offset_ct; i++)
7192
794
    dcm->offset_arr[i]+=base_offset;
7193
7194
  /*
7195
     Seek first fragment of first frame if necessary (although it shouldn't be...)
7196
  */
7197
68
  if (TellBlob(image) != dcm->offset_arr[0])
7198
54
    SeekBlob(image,dcm->offset_arr[0],SEEK_SET);
7199
68
  return MagickPass;
7200
75
}
7201

7202
static MagickPassFail DCM_ReadNonNativeImages(Image **image,const ImageInfo *image_info,DicomStream *dcm,ExceptionInfo *exception)
7203
6.07k
{
7204
6.07k
  char
7205
6.07k
    filename[MaxTextExtent];
7206
7207
6.07k
  FILE
7208
6.07k
    *file;
7209
7210
6.07k
  int
7211
6.07k
    c;
7212
7213
6.07k
  Image
7214
6.07k
    *image_list,
7215
6.07k
    *next_image;
7216
7217
6.07k
  ImageInfo
7218
6.07k
    *clone_info;
7219
7220
6.07k
  magick_uint32_t
7221
6.07k
    scene,
7222
6.07k
    tag,
7223
6.07k
    status,
7224
6.07k
    length,
7225
6.07k
    i;
7226
7227
6.07k
  image_list=(Image *)NULL;
7228
7229
  /*
7230
    Read offset table
7231
  */
7232
6.07k
  if (DCM_ReadOffsetTable(*image,dcm,exception) == MagickFail)
7233
50
    return MagickFail;
7234
7235
6.02k
  if (dcm->number_scenes == 0U)
7236
1
    {
7237
1
      ThrowException(exception,CorruptImageError,
7238
1
                     ImageFileHasNoScenes,
7239
1
                     image_info->filename);
7240
1
      return MagickFail;
7241
1
    }
7242
7243
6.02k
  status=MagickPass;
7244
26.2k
  for (scene=0; scene < dcm->number_scenes; scene++)
7245
26.2k
    {
7246
      /*
7247
        Use temporary file to hold extracted data stream
7248
      */
7249
26.2k
      file=AcquireTemporaryFileStream(filename,BinaryFileIOMode);
7250
26.2k
      if (file == (FILE *) NULL)
7251
0
        {
7252
0
          ThrowException(exception,FileOpenError,UnableToCreateTemporaryFile,filename);
7253
0
          return MagickFail;
7254
0
        }
7255
7256
26.2k
      status=MagickPass;
7257
26.2k
      do
7258
26.9k
        {
7259
          /*
7260
            Read fragment tag
7261
          */
7262
26.9k
          tag=(((magick_uint32_t) dcm->funcReadShort(*image) << 16) |
7263
26.9k
               (magick_uint32_t) dcm->funcReadShort(*image));
7264
26.9k
          length=dcm->funcReadLong(*image);
7265
26.9k
          if (EOFBlob(*image))
7266
1.33k
            {
7267
1.33k
              status=MagickFail;
7268
1.33k
              break;
7269
1.33k
            }
7270
7271
25.6k
          if (tag == 0xFFFEE0DD)
7272
3
            {
7273
              /* Sequence delimiter tag */
7274
3
              break;
7275
3
            }
7276
25.6k
          else
7277
25.6k
            if (tag != 0xFFFEE000)
7278
313
              {
7279
313
                status=MagickFail;
7280
313
                break;
7281
313
              }
7282
7283
          /*
7284
            Copy this fragment to the temporary file
7285
          */
7286
28.1M
          while (length > 0)
7287
28.0M
            {
7288
28.0M
              c=ReadBlobByte(*image);
7289
28.0M
              if (c == EOF)
7290
151
                {
7291
151
                  status=MagickFail;
7292
151
                  break;
7293
151
                }
7294
28.0M
              (void) fputc(c,file);
7295
28.0M
              length--;
7296
28.0M
            }
7297
7298
25.3k
          if (dcm->offset_ct == 0)
7299
24.9k
            {
7300
              /*
7301
                Assume one fragment per frame so break loop unless we are in the last frame
7302
              */
7303
24.9k
              if (scene < dcm->number_scenes-1)
7304
24.5k
                break;
7305
24.9k
            }
7306
328
          else
7307
328
            {
7308
              /* Look for end of multi-fragment frames by checking for against offset table */
7309
328
              length=TellBlob(*image);
7310
656
              for (i=0; i < dcm->offset_ct; i++)
7311
328
                if (length == dcm->offset_arr[i])
7312
0
                  {
7313
0
                    break;
7314
0
                  }
7315
328
            }
7316
25.3k
        } while (status == MagickPass);
7317
7318
26.2k
      (void) fclose(file);
7319
26.2k
      if (status == MagickPass)
7320
24.4k
        {
7321
24.4k
          clone_info=CloneImageInfo(image_info);
7322
24.4k
          clone_info->blob=(_BlobInfoPtr_) NULL;
7323
24.4k
          clone_info->length=0;
7324
24.4k
          if (dcm->transfer_syntax == DCM_TS_JPEG_2000)
7325
973
            FormatString(clone_info->filename,"jp2:%.1024s",filename);
7326
23.4k
          else
7327
23.4k
            FormatString(clone_info->filename,"jpeg:%.1024s",filename);
7328
24.4k
          next_image=ReadImage(clone_info,exception);
7329
24.4k
          DestroyImageInfo(clone_info);
7330
24.4k
          if (next_image == (Image*)NULL)
7331
4.20k
            {
7332
4.20k
              status=MagickFail;
7333
4.20k
            }
7334
20.2k
          else
7335
20.2k
            if (dcm->rescaling == DCM_RS_POST)
7336
19.4k
              {
7337
                /*
7338
                  ### TODO: ???
7339
                  We cannot guarantee integrity of input data since libjpeg may already have
7340
                  downsampled 12- or 16-bit jpegs. Best guess at the moment is to recalculate
7341
                  scaling using the image depth (unless avoid-scaling is in force)
7342
                */
7343
                /* Allow for libjpeg having changed depth of image */
7344
19.4k
                if ((next_image->depth == 0U) || (next_image->depth > 16U))
7345
0
                  {
7346
0
                    if (next_image->logging)
7347
0
                      (void) LogMagickEvent(CoderEvent,GetMagickModule(),
7348
0
                                            "Depth out of range! depth = %u (supported range is 1-16)",
7349
0
                                            next_image->depth);
7350
0
                    ThrowException(exception,CorruptImageError,ImproperImageHeader,next_image->filename);
7351
0
                    status=MagickFail;
7352
0
                  }
7353
19.4k
                else
7354
19.4k
                  {
7355
19.4k
                    dcm->significant_bits=next_image->depth;
7356
19.4k
                    dcm->bytes_per_pixel=1;
7357
19.4k
                    if (dcm->significant_bits > 8)
7358
1.12k
                      dcm->bytes_per_pixel=2;
7359
19.4k
                    dcm->max_value_in=MaxValueGivenBits(dcm->significant_bits);
7360
19.4k
                    dcm->max_value_out=dcm->max_value_in;
7361
19.4k
                    status=DCM_PostRescaleImage(next_image,dcm,True,exception);
7362
19.4k
                  }
7363
19.4k
              }
7364
24.4k
          if (status == MagickPass)
7365
20.2k
            {
7366
20.2k
              strlcpy(next_image->filename,(*image)->filename,sizeof(next_image->filename));
7367
20.2k
              next_image->scene=scene;
7368
20.2k
              if (image_list == (Image*)NULL)
7369
1.92k
                image_list=next_image;
7370
18.3k
              else
7371
18.3k
                AppendImageToList(&image_list,next_image);
7372
20.2k
            }
7373
4.21k
          else if (next_image != (Image *) NULL)
7374
13
            {
7375
13
              DestroyImage(next_image);
7376
13
#if !defined(__COVERITY__) /* 384799 Unused value */
7377
13
              next_image=(Image *) NULL;
7378
13
#endif /* if !defined(__COVERITY__) */
7379
13
            }
7380
24.4k
        }
7381
26.2k
      (void) LiberateTemporaryFile(filename);
7382
7383
26.2k
      if (status == MagickFail)
7384
6.01k
        break;
7385
26.2k
    }
7386
6.02k
  if (EOFBlob(*image))
7387
1.48k
    {
7388
1.48k
      status = MagickFail;
7389
1.48k
      ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,(*image)->filename);
7390
1.48k
    }
7391
7392
6.02k
  if (status == MagickFail)
7393
6.01k
    {
7394
6.01k
      DestroyImageList(image_list);
7395
6.01k
      image_list = (Image *) NULL;
7396
6.01k
    }
7397
1
  else
7398
1
    {
7399
1
      DestroyImage(*image);
7400
1
      *image=image_list;
7401
1
    }
7402
6.02k
  return status;
7403
6.02k
}
7404

7405
/*
7406
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7407
%                                                                             %
7408
%                                                                             %
7409
%                                                                             %
7410
%   R e a d D C M I m a g e                                                   %
7411
%                                                                             %
7412
%                                                                             %
7413
%                                                                             %
7414
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7415
%
7416
%  Method ReadDCMImage reads a Digital Imaging and Communications in Medicine
7417
%  (DICOM) file and returns it.  It It allocates the memory necessary for the
7418
%  new Image structure and returns a pointer to the new image.
7419
%
7420
%  The format of the ReadDCMImage method is:
7421
%
7422
%      Image *ReadDCMImage(const ImageInfo *image_info,ExceptionInfo *exception)
7423
%
7424
%  A description of each parameter follows:
7425
%
7426
%    o image:  Method ReadDCMImage returns a pointer to the image after
7427
%      reading.  A null image is returned if there is a memory shortage or
7428
%      if the image cannot be read.
7429
%
7430
%    o image_info: Specifies a pointer to a ImageInfo structure.
7431
%
7432
%    o exception: return any errors or warnings in this structure.
7433
%
7434
%
7435
*/
7436
#define ThrowDCMReaderException(code_,reason_,image_)   \
7437
123
  {                                                     \
7438
123
    DCM_DestroyDCM(&dcm);                               \
7439
123
    ThrowReaderException(code_,reason_,image_);         \
7440
0
}
7441
static Image *ReadDCMImage(const ImageInfo *image_info,ExceptionInfo *exception)
7442
23.9k
{
7443
23.9k
  char
7444
23.9k
    magick[MaxTextExtent];
7445
7446
23.9k
  Image
7447
23.9k
    *image;
7448
7449
23.9k
  int
7450
23.9k
    scene;
7451
7452
23.9k
  size_t
7453
23.9k
    count;
7454
7455
23.9k
  unsigned long
7456
23.9k
    status;
7457
7458
23.9k
  DicomStream
7459
23.9k
    dcm;
7460
7461
  /*
7462
    Open image file
7463
  */
7464
23.9k
  assert(image_info != (const ImageInfo *) NULL);
7465
23.9k
  assert(image_info->signature == MagickSignature);
7466
23.9k
  assert(exception != (ExceptionInfo *) NULL);
7467
23.9k
  assert(exception->signature == MagickSignature);
7468
23.9k
  (void) DCM_InitDCM(&dcm,image_info->verbose);
7469
23.9k
  image=AllocateImage(image_info);
7470
23.9k
  status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
7471
23.9k
  if (status == MagickFail)
7472
23.9k
    ThrowDCMReaderException(FileOpenError,UnableToOpenFile,image);
7473
7474
  /*
7475
    Read DCM preamble
7476
  */
7477
23.9k
  if ((count=ReadBlob(image,128,(char *) magick)) != 128)
7478
23.9k
    ThrowDCMReaderException(CorruptImageError,UnexpectedEndOfFile,image);
7479
23.9k
  if ((count=ReadBlob(image,4,(char *) magick)) != 4)
7480
23.9k
    ThrowDCMReaderException(CorruptImageError,UnexpectedEndOfFile,image);
7481
23.9k
  if (image->logging)
7482
23.9k
    (void) LogMagickEvent(CoderEvent,GetMagickModule(),
7483
23.9k
                          "magick: \"%.4s\"",magick);
7484
23.9k
  if (LocaleNCompare((char *) magick,"DICM",4) != 0)
7485
8.88k
    (void) SeekBlob(image,0L,SEEK_SET);
7486
7487
  /*
7488
    Loop to read DCM image header one element at a time
7489
  */
7490
23.9k
  status=DCM_ReadElement(image,&dcm,exception);
7491
1.68M
  while ((status == MagickPass) && ((dcm.group != 0x7FE0) || (dcm.element != 0x0010)))
7492
1.66M
    {
7493
1.66M
      DicomElemParseFunc
7494
1.66M
        *pfunc;
7495
7496
1.66M
      pfunc=parse_funcs[dicom_info[dcm.index].funce];
7497
1.66M
      if (pfunc != (DicomElemParseFunc *)NULL)
7498
63.7k
        status=pfunc(image,&dcm,exception);
7499
1.66M
      MagickFreeResourceLimitedMemory(unsigned char *,dcm.data);
7500
1.66M
      dcm.data = NULL;
7501
1.66M
      dcm.length = 0;
7502
1.66M
      if (status == MagickPass)
7503
1.66M
        status=DCM_ReadElement(image,&dcm,exception);
7504
1.66M
    }
7505
23.9k
  if (status == MagickFail)
7506
15.9k
    goto dcm_read_failure;
7507
7.95k
#if defined(IGNORE_WINDOW_FOR_UNSPECIFIED_SCALE_TYPE)
7508
7.95k
  if (dcm.rescale_type == DCM_RT_UNSPECIFIED)
7509
3
    {
7510
3
      dcm.window_width=0;
7511
3
      dcm.rescale_slope=1;
7512
3
      dcm.rescale_intercept=0;
7513
3
    }
7514
7.95k
#endif
7515
7.95k
  DCM_SetRescaling(&dcm,(AccessDefinition(image_info,"dcm","avoid-scaling") != NULL));
7516
  /*
7517
    Now process the image data
7518
  */
7519
7.95k
  if ((dcm.columns == 0) || (dcm.rows == 0))
7520
3
    {
7521
3
      ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
7522
3
      status=MagickFail;
7523
3
    }
7524
7.94k
  else if ((dcm.samples_per_pixel == 0) || (dcm.samples_per_pixel > 4))
7525
16
    {
7526
16
      ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
7527
16
      status=MagickFail;
7528
16
    }
7529
7.93k
  else if ((dcm.transfer_syntax != DCM_TS_IMPL_LITTLE) &&
7530
7.60k
           (dcm.transfer_syntax != DCM_TS_EXPL_LITTLE) &&
7531
7.60k
           (dcm.transfer_syntax != DCM_TS_EXPL_BIG) &&
7532
7.59k
           (dcm.transfer_syntax != DCM_TS_RLE))
7533
6.07k
    {
7534
6.07k
      status=DCM_ReadNonNativeImages(&image,image_info,&dcm,exception);
7535
6.07k
      dcm.number_scenes=0;
7536
6.07k
    }
7537
1.86k
  else if (dcm.rescaling != DCM_RS_POST)
7538
435
    {
7539
435
      status=DCM_SetupRescaleMap(image,&dcm,exception);
7540
435
    }
7541
7542
7.95k
  if (status == MagickFail)
7543
6.09k
    goto dcm_read_failure;
7544
7545
1.85k
  if (dcm.transfer_syntax == DCM_TS_RLE)
7546
1.52k
    status=DCM_ReadOffsetTable(image,&dcm,exception);
7547
7548
  /* Loop to process all scenes in image */
7549
1.85k
  if (image->logging)
7550
1.85k
    (void) LogMagickEvent(CoderEvent,GetMagickModule(),
7551
1.85k
                          "DICOM has %d scenes", dcm.number_scenes);
7552
1.85k
  if (status == MagickFail)
7553
30
    goto dcm_read_failure;
7554
7555
1.82k
  for (scene=0; scene < (long) dcm.number_scenes; scene++)
7556
1.82k
    {
7557
1.82k
      if (dcm.transfer_syntax == DCM_TS_RLE)
7558
1.49k
        {
7559
1.49k
          magick_uint32_t
7560
1.49k
            tag,
7561
1.49k
            length;
7562
7563
          /*
7564
            Discard any remaining bytes from last fragment
7565
          */
7566
1.49k
          if (dcm.frag_bytes)
7567
0
            SeekBlob(image,dcm.frag_bytes,SEEK_CUR);
7568
7569
          /*
7570
            Read fragment tag
7571
          */
7572
1.49k
          tag=(((magick_uint32_t) dcm.funcReadShort(image)) << 16) |
7573
1.49k
            (magick_uint32_t) dcm.funcReadShort(image);
7574
1.49k
          length=dcm.funcReadLong(image);
7575
1.49k
          if ((tag != 0xFFFEE000) || (length <= 64) || EOFBlob(image))
7576
31
            {
7577
31
              status=MagickFail;
7578
31
              ThrowDCMReaderException(CorruptImageError,UnexpectedEndOfFile,image);
7579
0
              break;
7580
31
            }
7581
7582
          /*
7583
            Set up decompression state
7584
          */
7585
1.46k
          dcm.frag_bytes=length;
7586
1.46k
          dcm.rle_rep_ct=0;
7587
7588
          /*
7589
            Read RLE segment table
7590
          */
7591
1.46k
          dcm.rle_seg_ct=dcm.funcReadLong(image);
7592
23.4k
          for (length=0; length < 15; length++)
7593
21.9k
            dcm.rle_seg_offsets[length]=dcm.funcReadLong(image);
7594
1.46k
          dcm.frag_bytes-=64;
7595
1.46k
          if (EOFBlob(image))
7596
37
            {
7597
37
              status=MagickFail;
7598
37
              ThrowDCMReaderException(CorruptImageError,UnexpectedEndOfFile,image);
7599
0
              break;
7600
37
            }
7601
1.42k
          if (dcm.rle_seg_ct > 1)
7602
44
            {
7603
44
              fprintf(stdout,"Multiple RLE segments in frame are not supported\n");
7604
44
              status=MagickFail;
7605
44
              break;
7606
44
            }
7607
1.42k
        }
7608
7609
      /*
7610
        Initialize image structure.
7611
      */
7612
1.71k
      image->columns=dcm.columns;
7613
1.71k
      image->rows=dcm.rows;
7614
1.71k
      image->interlace=(dcm.interlace==1)?PlaneInterlace:NoInterlace;
7615
1.71k
      if (image->logging)
7616
1.71k
        (void) LogMagickEvent(CoderEvent,GetMagickModule(),
7617
1.71k
                              "Scene[%d]: %lux%lu", scene, image->columns, image->rows);
7618
#if defined(GRAYSCALE_USES_PALETTE)
7619
      if ((image->colormap == (PixelPacket *) NULL) && (dcm.samples_per_pixel == 1))
7620
#else
7621
1.71k
        if ((image->colormap == (PixelPacket *) NULL) && (dcm.phot_interp == DCM_PI_PALETTE_COLOR))
7622
354
#endif
7623
354
          {
7624
354
            status=DCM_SetupColormap(image,&dcm,exception);
7625
354
            if (status == MagickFail)
7626
0
              break;
7627
354
          }
7628
1.71k
      if (image_info->ping)
7629
0
        break;
7630
7631
1.71k
      if (CheckImagePixelLimits(image, exception) != MagickPass)
7632
1.68k
        ThrowDCMReaderException(ResourceLimitError,ImagePixelLimitExceeded,image);
7633
7634
      /*
7635
        Process image according to type
7636
      */
7637
1.68k
      if (dcm.samples_per_pixel == 1)
7638
964
        {
7639
964
          if (dcm.phot_interp == DCM_PI_PALETTE_COLOR)
7640
395
            status=DCM_ReadPaletteImage(image,&dcm,exception);
7641
569
          else
7642
569
            status=DCM_ReadGrayscaleImage(image,&dcm,exception);
7643
964
        }
7644
719
      else
7645
719
        {
7646
719
          if (image->interlace == PlaneInterlace)
7647
402
            status=DCM_ReadPlanarRGBImage(image,&dcm,exception);
7648
317
          else
7649
317
            status=DCM_ReadRGBImage(image,&dcm,exception);
7650
719
        }
7651
1.68k
      if (status != MagickPass)
7652
1.51k
        break;
7653
7654
170
      if ((dcm.rescaling == DCM_RS_PRE) &&
7655
11
          ((dcm.phot_interp == DCM_PI_MONOCHROME1) ||
7656
11
           (dcm.phot_interp == DCM_PI_MONOCHROME2)))
7657
0
        {
7658
0
          if (image->logging)
7659
0
            (void) LogMagickEvent(CoderEvent,GetMagickModule(),
7660
0
                                  "Normalizing image channels...");
7661
0
          NormalizeImage(image);
7662
0
        }
7663
170
      else
7664
170
        {
7665
170
          if (dcm.rescaling == DCM_RS_POST)
7666
102
            {
7667
102
              if (image->logging)
7668
102
                (void) LogMagickEvent(CoderEvent,GetMagickModule(),
7669
102
                                      "Rescaling image channels...");
7670
102
              status = DCM_PostRescaleImage(image,&dcm,False,exception);
7671
102
              if (status != MagickPass)
7672
51
                break;
7673
102
            }
7674
170
        }
7675
119
      StopTimer(&image->timer);
7676
7677
      /*
7678
        Proceed to next image.
7679
      */
7680
119
      if (image_info->subrange != 0)
7681
119
        if (image->scene >= (image_info->subimage+image_info->subrange-1))
7682
119
          break;
7683
0
      if (scene < (long) (dcm.number_scenes-1))
7684
0
        {
7685
          /*
7686
            Allocate next image structure.
7687
          */
7688
0
          AllocateNextImage(image_info,image);
7689
0
          if (image->next == (Image *) NULL)
7690
0
            {
7691
0
              status=MagickFail;
7692
0
              break;
7693
0
            }
7694
0
          image=SyncNextImageInList(image);
7695
0
          status=MagickMonitorFormatted(TellBlob(image),GetBlobSize(image),
7696
0
                                        exception,LoadImagesText,
7697
0
                                        image->filename);
7698
0
          if (status == MagickFail)
7699
0
            break;
7700
0
        }
7701
0
    }
7702
7703
  /*
7704
    Free allocated resources
7705
  */
7706
23.8k
 dcm_read_failure:
7707
23.8k
  DCM_DestroyDCM(&dcm);
7708
23.8k
  if (status == MagickPass)
7709
121
    {
7710
      /* It is possible to have success status yet have no image */
7711
121
      if (image != (Image *) NULL)
7712
121
        {
7713
121
          while (image->previous != (Image *) NULL)
7714
0
            image=image->previous;
7715
121
          CloseBlob(image);
7716
121
          return(image);
7717
121
        }
7718
0
      else
7719
0
        {
7720
0
          ThrowException(exception,CorruptImageError,
7721
0
                         ImageFileDoesNotContainAnyImageData,
7722
0
                         image_info->filename);
7723
0
          return (Image *) NULL;
7724
0
        }
7725
121
    }
7726
23.7k
  else
7727
23.7k
    {
7728
23.7k
      DestroyImageList(image);
7729
23.7k
      return((Image *) NULL);
7730
23.7k
    }
7731
23.8k
}
7732

7733
/*
7734
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7735
%                                                                             %
7736
%                                                                             %
7737
%                                                                             %
7738
%   R e g i s t e r D C M I m a g e                                           %
7739
%                                                                             %
7740
%                                                                             %
7741
%                                                                             %
7742
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7743
%
7744
%  Method RegisterDCMImage adds attributes for the DCM image format to
7745
%  the list of supported formats.  The attributes include the image format
7746
%  tag, a method to read and/or write the format, whether the format
7747
%  supports the saving of more than one frame to the same file or blob,
7748
%  whether the format supports native in-memory I/O, and a brief
7749
%  description of the format.
7750
%
7751
%  The format of the RegisterDCMImage method is:
7752
%
7753
%      RegisterDCMImage(void)
7754
%
7755
*/
7756
ModuleExport void RegisterDCMImage(void)
7757
4
{
7758
4
  MagickInfo
7759
4
    *entry;
7760
7761
4
  entry=SetMagickInfo("DCM");
7762
4
  entry->decoder=(DecoderHandler) ReadDCMImage;
7763
4
  entry->magick=(MagickHandler) IsDCM;
7764
4
  entry->adjoin=False;
7765
4
  entry->seekable_stream=True;
7766
4
  entry->description="Digital Imaging and Communications in Medicine image";
7767
4
  entry->note="See http://medical.nema.org/ for information on DICOM.";
7768
4
  entry->module="DCM";
7769
4
  (void) RegisterMagickInfo(entry);
7770
4
}
7771

7772
/*
7773
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7774
%                                                                             %
7775
%                                                                             %
7776
%                                                                             %
7777
%   U n r e g i s t e r D C M I m a g e                                       %
7778
%                                                                             %
7779
%                                                                             %
7780
%                                                                             %
7781
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7782
%
7783
%  Method UnregisterDCMImage removes format registrations made by the
7784
%  DCM module from the list of supported formats.
7785
%
7786
%  The format of the UnregisterDCMImage method is:
7787
%
7788
%      UnregisterDCMImage(void)
7789
%
7790
*/
7791
ModuleExport void UnregisterDCMImage(void)
7792
0
{
7793
0
  (void) UnregisterMagickInfo("DCM");
7794
0
}
7795
/*
7796
   ### TODO :
7797
   #1 Fixes on palette support:
7798
                - Handle palette images where # of entries > MaxColormapSize - create image
7799
                  as Direct class, store the original palette (scaled to MaxRGB) and then map
7800
                  input values via modified palette to output RGB values.
7801
        - Honour palette/LUT descriptors (ie values <= min value map to first
7802
                  entry, value = (min_value + 1) maps to second entry, and so on, whilst
7803
                  values >= (min value + palette/LUT size) map to last entry.
7804
   #2 Use ImportImagePixelArea?
7805
   #3 Handling of encapsulated JPEGs which downsample to 8 bit via
7806
      libjpeg. These lose accuracy before we can rescale to handle the
7807
          issues of PR=1 + window center/width + rescale slope/intercept on
7808
          MONOCHROME1 or 2. Worst case : CT-MONO2-16-chest. Currently images
7809
          are post-rescaled based on sample range. For PseudoClass grayscales
7810
          this is done by colormap manipulation only.
7811
   #4 JPEG/JPEG-LS/JPEG 2000: Check that multi frame handling in DCM_ReadEncapImages
7812
      is ok
7813
   #5 Support LUTs?
7814
   #6 Pixel Padding value/range - make transparent or allow use to specify a color?
7815
*/