1 /*
2 % Copyright (C) 2003-2020 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
51 /*
52 #define USE_GRAYMAP
53 #define GRAYSCALE_USES_PALETTE
54 */
55
56 /* Defines for "best guess" fixes */
57 #define NEW_IMPLICIT_LOGIC
58 #define IGNORE_WINDOW_FOR_UNSPECIFIED_SCALE_TYPE
59
60 /*
61 Function types for reading MSB/LSB shorts/longs
62 */
63 typedef magick_uint16_t (DicomReadShortFunc)(Image *);
64 typedef magick_uint32_t (DicomReadLongFunc)(Image *);
65
66 /*
67 DCM enums
68 */
69 typedef enum
70 {
71 DCM_TS_IMPL_LITTLE,
72 DCM_TS_EXPL_LITTLE,
73 DCM_TS_EXPL_BIG,
74 DCM_TS_JPEG,
75 DCM_TS_JPEG_LS,
76 DCM_TS_JPEG_2000,
77 DCM_TS_RLE
78 } Dicom_TS;
79
80 typedef enum
81 {
82 DCM_MSB_LITTLE,
83 DCM_MSB_BIG_PENDING,
84 DCM_MSB_BIG
85 } Dicom_MSB;
86
87 typedef enum
88 {
89 DCM_PI_MONOCHROME1,
90 DCM_PI_MONOCHROME2,
91 DCM_PI_PALETTE_COLOR,
92 DCM_PI_RGB,
93 DCM_PI_OTHER
94 } Dicom_PI;
95
96 typedef enum
97 {
98 DCM_RT_OPTICAL_DENSITY,
99 DCM_RT_HOUNSFIELD,
100 DCM_RT_UNSPECIFIED,
101 DCM_RT_UNKNOWN
102 } Dicom_RT;
103
104 typedef enum
105 {
106 DCM_RS_NONE,
107 DCM_RS_PRE,
108 DCM_RS_POST
109 } Dicom_RS;
110
111 /*
112 Dicom medical image declarations.
113 */
114 typedef struct _DicomStream
115 {
116 /*
117 Values representing nature of image
118 */
119 unsigned long
120 rows,
121 columns;
122
123 unsigned int
124 number_scenes,
125 samples_per_pixel,
126 bits_allocated,
127 significant_bits,
128 bytes_per_pixel,
129 max_value_in,
130 max_value_out,
131 high_bit,
132 pixel_representation,
133 interlace;
134
135 Dicom_MSB
136 msb_state;
137
138 Dicom_PI
139 phot_interp;
140
141 double
142 window_center,
143 window_width,
144 rescale_intercept,
145 rescale_slope;
146
147 Dicom_TS
148 transfer_syntax;
149
150 Dicom_RT
151 rescale_type;
152
153 Dicom_RS
154 rescaling;
155
156 /*
157 Array to store offset table for fragments within image
158 */
159 magick_uint32_t
160 offset_ct;
161 magick_uint32_t *
162 offset_arr;
163
164 /*
165 Variables used to handle fragments and RLE compression
166 */
167 magick_uint32_t
168 frag_bytes;
169
170 magick_uint32_t
171 rle_seg_ct,
172 rle_seg_offsets[15];
173
174 int
175 rle_rep_ct,
176 rle_rep_char;
177
178 /*
179 Max and minimum sample values within image used for post rescale mapping
180 */
181 int
182 upper_lim,
183 lower_lim;
184
185 Quantum
186 *rescale_map; /* Allocated with dcm->max_value_in+1 entries */
187
188 #if defined(USE_GRAYMAP)
189 unsigned short
190 *graymap;
191 #endif
192
193 /*
194 Values representing last read element
195 */
196 unsigned short
197 group,
198 element;
199
200 int
201 index,
202 datum;
203
204 size_t
205 quantum,
206 length;
207
208 unsigned char *
209 data;
210
211 /*
212 Remaining fields for internal use by DCM_ReadElement and to read data
213 */
214 DicomReadShortFunc *
215 funcReadShort;
216
217 DicomReadLongFunc *
218 funcReadLong;
219
220 int
221 explicit_file;
222
223 unsigned int
224 verbose;
225 } DicomStream;
226
227 /*
228 Function type for parsing DICOM elements
229 */
230 typedef MagickPassFail (DicomElemParseFunc)(Image *Image,DicomStream *dcm,ExceptionInfo *exception);
231
232 /*
233 Forward declaration for parser functions
234 */
235 static DicomElemParseFunc funcDCM_BitsAllocated;
236 static DicomElemParseFunc funcDCM_BitsStored;
237 static DicomElemParseFunc funcDCM_Columns;
238 static DicomElemParseFunc funcDCM_FieldOfView;
239 static DicomElemParseFunc funcDCM_HighBit;
240 static DicomElemParseFunc funcDCM_ImageOrientation;
241 static DicomElemParseFunc funcDCM_ImagePosition;
242 static DicomElemParseFunc funcDCM_LUT;
243 static DicomElemParseFunc funcDCM_NumberOfFrames;
244 static DicomElemParseFunc funcDCM_Palette;
245 static DicomElemParseFunc funcDCM_PaletteDescriptor;
246 static DicomElemParseFunc funcDCM_PatientName;
247 static DicomElemParseFunc funcDCM_PhotometricInterpretation;
248 static DicomElemParseFunc funcDCM_PixelRepresentation;
249 static DicomElemParseFunc funcDCM_PlanarConfiguration;
250 static DicomElemParseFunc funcDCM_RescaleIntercept;
251 static DicomElemParseFunc funcDCM_RescaleSlope;
252 static DicomElemParseFunc funcDCM_RescaleType;
253 static DicomElemParseFunc funcDCM_Rows;
254 static DicomElemParseFunc funcDCM_SamplesPerPixel;
255 static DicomElemParseFunc funcDCM_SeriesNumber;
256 static DicomElemParseFunc funcDCM_SliceLocation;
257 static DicomElemParseFunc funcDCM_StudyDate;
258 static DicomElemParseFunc funcDCM_TransferSyntax;
259 static DicomElemParseFunc funcDCM_TriggerTime;
260 static DicomElemParseFunc funcDCM_WindowCenter;
261 static DicomElemParseFunc funcDCM_WindowWidth;
262
263 /*
264 Function vectors for supported DICOM element parsing functions.
265
266 We store the enumeration in the DICOM info table and use it to look
267 up the callback function in the parse_funcs table. This approach is
268 used because we only support a small subset of possible functions,
269 the pointers are large (8 bytes) on 64-bit systems, and because
270 relocations in shared libraries (especially with ASLR support) cause
271 the whole data-structure that the function pointers are stored in to
272 become initialized data (which is then set read-only). With this
273 approach, only the list of parsing functions may be initialized data
274 and we store a reference to the function using a smaller storage
275 element.
276
277 The list of enumerations and parsing functions must be in the same
278 order (1:1 match).
279 */
280 typedef enum _DICOM_PARSE_FUNC_T
281 {
282 FUNCDCM_NONE,
283 FUNCDCM_BITSALLOCATED,
284 FUNCDCM_BITSSTORED,
285 FUNCDCM_COLUMNS,
286 FUNCDCM_FIELDOFVIEW,
287 FUNCDCM_HIGHBIT,
288 FUNCDCM_IMAGEORIENTATION,
289 FUNCDCM_IMAGEPOSITION,
290 FUNCDCM_LUT,
291 FUNCDCM_NUMBEROFFRAMES,
292 FUNCDCM_PALETTE,
293 FUNCDCM_PALETTEDESCRIPTOR,
294 FUNCDCM_PATIENTNAME,
295 FUNCDCM_PHOTOMETRICINTERPRETATION,
296 FUNCDCM_PIXELREPRESENTATION,
297 FUNCDCM_PLANARCONFIGURATION,
298 FUNCDCM_RESCALEINTERCEPT,
299 FUNCDCM_RESCALESLOPE,
300 FUNCDCM_RESCALETYPE,
301 FUNCDCM_ROWS,
302 FUNCDCM_SAMPLESPERPIXEL,
303 FUNCDCM_SERIESNUMBER,
304 FUNCDCM_SLICELOCATION,
305 FUNCDCM_STUDYDATE,
306 FUNCDCM_TRANSFERSYNTAX,
307 FUNCDCM_TRIGGERTIME,
308 FUNCDCM_WINDOWCENTER,
309 FUNCDCM_WINDOWWIDTH
310 } DICOM_PARSE_FUNC_T;
311
312 static DicomElemParseFunc * parse_funcs[] =
313 {
314 (DicomElemParseFunc *) NULL ,
315 (DicomElemParseFunc *) funcDCM_BitsAllocated ,
316 (DicomElemParseFunc *) funcDCM_BitsStored ,
317 (DicomElemParseFunc *) funcDCM_Columns ,
318 (DicomElemParseFunc *) funcDCM_FieldOfView ,
319 (DicomElemParseFunc *) funcDCM_HighBit ,
320 (DicomElemParseFunc *) funcDCM_ImageOrientation ,
321 (DicomElemParseFunc *) funcDCM_ImagePosition ,
322 (DicomElemParseFunc *) funcDCM_LUT ,
323 (DicomElemParseFunc *) funcDCM_NumberOfFrames ,
324 (DicomElemParseFunc *) funcDCM_Palette ,
325 (DicomElemParseFunc *) funcDCM_PaletteDescriptor ,
326 (DicomElemParseFunc *) funcDCM_PatientName ,
327 (DicomElemParseFunc *) funcDCM_PhotometricInterpretation ,
328 (DicomElemParseFunc *) funcDCM_PixelRepresentation ,
329 (DicomElemParseFunc *) funcDCM_PlanarConfiguration ,
330 (DicomElemParseFunc *) funcDCM_RescaleIntercept ,
331 (DicomElemParseFunc *) funcDCM_RescaleSlope ,
332 (DicomElemParseFunc *) funcDCM_RescaleType ,
333 (DicomElemParseFunc *) funcDCM_Rows ,
334 (DicomElemParseFunc *) funcDCM_SamplesPerPixel ,
335 (DicomElemParseFunc *) funcDCM_SeriesNumber ,
336 (DicomElemParseFunc *) funcDCM_SliceLocation ,
337 (DicomElemParseFunc *) funcDCM_StudyDate ,
338 (DicomElemParseFunc *) funcDCM_TransferSyntax ,
339 (DicomElemParseFunc *) funcDCM_TriggerTime ,
340 (DicomElemParseFunc *) funcDCM_WindowCenter ,
341 (DicomElemParseFunc *) funcDCM_WindowWidth
342 };
343
344 /*
345 Type for holding information on DICOM elements
346 */
347 #define DESCRIPION_STR 1 /* Description text elements in one big string */
348 typedef struct _DicomInfo
349 {
350 const unsigned short
351 group,
352 element;
353
354 const char
355 vr[3];
356
357 #if !DESCRIPION_STR
358 const char
359 *description;
360 #endif /* DESCRIPION_STR */
361
362 const unsigned char /* DICOM_PARSE_FUNC_T */
363 funce;
364
365 } DicomInfo;
366
367 /*
368 Array holding information on DICOM elements
369 */
370 static const DicomInfo
371 dicom_info[]=
372 {
373 #if DESCRIPION_STR
374 #define ENTRY(group, element, vr, description, pfunc) {group, element, vr, pfunc}
375 #else
376 #define ENTRY(group, element, vr, description, pfunc) {group, element, vr, description, pfunc}
377 #endif
378 ENTRY( 0x0000, 0x0000, "UL", "Group Length", FUNCDCM_NONE ),
379 ENTRY( 0x0000, 0x0001, "UL", "Command Length to End", FUNCDCM_NONE ),
380 ENTRY( 0x0000, 0x0002, "UI", "Affected SOP Class UID", FUNCDCM_NONE ),
381 ENTRY( 0x0000, 0x0003, "UI", "Requested SOP Class UID", FUNCDCM_NONE ),
382 ENTRY( 0x0000, 0x0010, "LO", "Command Recognition Code", FUNCDCM_NONE ),
383 ENTRY( 0x0000, 0x0100, "US", "Command Field", FUNCDCM_NONE ),
384 ENTRY( 0x0000, 0x0110, "US", "Message ID", FUNCDCM_NONE ),
385 ENTRY( 0x0000, 0x0120, "US", "Message ID Being Responded To", FUNCDCM_NONE ),
386 ENTRY( 0x0000, 0x0200, "AE", "Initiator", FUNCDCM_NONE ),
387 ENTRY( 0x0000, 0x0300, "AE", "Receiver", FUNCDCM_NONE ),
388 ENTRY( 0x0000, 0x0400, "AE", "Find Location", FUNCDCM_NONE ),
389 ENTRY( 0x0000, 0x0600, "AE", "Move Destination", FUNCDCM_NONE ),
390 ENTRY( 0x0000, 0x0700, "US", "Priority", FUNCDCM_NONE ),
391 ENTRY( 0x0000, 0x0800, "US", "Data Set Type", FUNCDCM_NONE ),
392 ENTRY( 0x0000, 0x0850, "US", "Number of Matches", FUNCDCM_NONE ),
393 ENTRY( 0x0000, 0x0860, "US", "Response Sequence Number", FUNCDCM_NONE ),
394 ENTRY( 0x0000, 0x0900, "US", "Status", FUNCDCM_NONE ),
395 ENTRY( 0x0000, 0x0901, "AT", "Offending Element", FUNCDCM_NONE ),
396 ENTRY( 0x0000, 0x0902, "LO", "Exception Comment", FUNCDCM_NONE ),
397 ENTRY( 0x0000, 0x0903, "US", "Exception ID", FUNCDCM_NONE ),
398 ENTRY( 0x0000, 0x1000, "UI", "Affected SOP Instance UID", FUNCDCM_NONE ),
399 ENTRY( 0x0000, 0x1001, "UI", "Requested SOP Instance UID", FUNCDCM_NONE ),
400 ENTRY( 0x0000, 0x1002, "US", "Event Type ID", FUNCDCM_NONE ),
401 ENTRY( 0x0000, 0x1005, "AT", "Attribute Identifier List", FUNCDCM_NONE ),
402 ENTRY( 0x0000, 0x1008, "US", "Action Type ID", FUNCDCM_NONE ),
403 ENTRY( 0x0000, 0x1020, "US", "Number of Remaining Suboperations", FUNCDCM_NONE ),
404 ENTRY( 0x0000, 0x1021, "US", "Number of Completed Suboperations", FUNCDCM_NONE ),
405 ENTRY( 0x0000, 0x1022, "US", "Number of Failed Suboperations", FUNCDCM_NONE ),
406 ENTRY( 0x0000, 0x1023, "US", "Number of Warning Suboperations", FUNCDCM_NONE ),
407 ENTRY( 0x0000, 0x1030, "AE", "Move Originator Application Entity Title", FUNCDCM_NONE ),
408 ENTRY( 0x0000, 0x1031, "US", "Move Originator Message ID", FUNCDCM_NONE ),
409 ENTRY( 0x0000, 0x4000, "LO", "Dialog Receiver", FUNCDCM_NONE ),
410 ENTRY( 0x0000, 0x4010, "LO", "Terminal Type", FUNCDCM_NONE ),
411 ENTRY( 0x0000, 0x5010, "SH", "Message Set ID", FUNCDCM_NONE ),
412 ENTRY( 0x0000, 0x5020, "SH", "End Message Set", FUNCDCM_NONE ),
413 ENTRY( 0x0000, 0x5110, "LO", "Display Format", FUNCDCM_NONE ),
414 ENTRY( 0x0000, 0x5120, "LO", "Page Position ID", FUNCDCM_NONE ),
415 ENTRY( 0x0000, 0x5130, "LO", "Text Format ID", FUNCDCM_NONE ),
416 ENTRY( 0x0000, 0x5140, "LO", "Normal Reverse", FUNCDCM_NONE ),
417 ENTRY( 0x0000, 0x5150, "LO", "Add Gray Scale", FUNCDCM_NONE ),
418 ENTRY( 0x0000, 0x5160, "LO", "Borders", FUNCDCM_NONE ),
419 ENTRY( 0x0000, 0x5170, "IS", "Copies", FUNCDCM_NONE ),
420 ENTRY( 0x0000, 0x5180, "LO", "OldMagnificationType", FUNCDCM_NONE ),
421 ENTRY( 0x0000, 0x5190, "LO", "Erase", FUNCDCM_NONE ),
422 ENTRY( 0x0000, 0x51a0, "LO", "Print", FUNCDCM_NONE ),
423 ENTRY( 0x0000, 0x51b0, "US", "Overlays", FUNCDCM_NONE ),
424 ENTRY( 0x0002, 0x0000, "UL", "Meta Element Group Length", FUNCDCM_NONE ),
425 ENTRY( 0x0002, 0x0001, "OB", "File Meta Information Version", FUNCDCM_NONE ),
426 ENTRY( 0x0002, 0x0002, "UI", "Media Storage SOP Class UID", FUNCDCM_NONE ),
427 ENTRY( 0x0002, 0x0003, "UI", "Media Storage SOP Instance UID", FUNCDCM_NONE ),
428 ENTRY( 0x0002, 0x0010, "UI", "Transfer Syntax UID", FUNCDCM_TRANSFERSYNTAX ),
429 ENTRY( 0x0002, 0x0012, "UI", "Implementation Class UID", FUNCDCM_NONE ),
430 ENTRY( 0x0002, 0x0013, "SH", "Implementation Version Name", FUNCDCM_NONE ),
431 ENTRY( 0x0002, 0x0016, "AE", "Source Application Entity Title", FUNCDCM_NONE ),
432 ENTRY( 0x0002, 0x0100, "UI", "Private Information Creator UID", FUNCDCM_NONE ),
433 ENTRY( 0x0002, 0x0102, "OB", "Private Information", FUNCDCM_NONE ),
434 ENTRY( 0x0003, 0x0000, "US", "?", FUNCDCM_NONE ),
435 ENTRY( 0x0003, 0x0008, "US", "ISI Command Field", FUNCDCM_NONE ),
436 ENTRY( 0x0003, 0x0011, "US", "Attach ID Application Code", FUNCDCM_NONE ),
437 ENTRY( 0x0003, 0x0012, "UL", "Attach ID Message Count", FUNCDCM_NONE ),
438 ENTRY( 0x0003, 0x0013, "DA", "Attach ID Date", FUNCDCM_NONE ),
439 ENTRY( 0x0003, 0x0014, "TM", "Attach ID Time", FUNCDCM_NONE ),
440 ENTRY( 0x0003, 0x0020, "US", "Message Type", FUNCDCM_NONE ),
441 ENTRY( 0x0003, 0x0030, "DA", "Max Waiting Date", FUNCDCM_NONE ),
442 ENTRY( 0x0003, 0x0031, "TM", "Max Waiting Time", FUNCDCM_NONE ),
443 ENTRY( 0x0004, 0x0000, "UL", "File Set Group Length", FUNCDCM_NONE ),
444 ENTRY( 0x0004, 0x1130, "CS", "File Set ID", FUNCDCM_NONE ),
445 ENTRY( 0x0004, 0x1141, "CS", "File Set Descriptor File ID", FUNCDCM_NONE ),
446 ENTRY( 0x0004, 0x1142, "CS", "File Set Descriptor File Specific Character Set", FUNCDCM_NONE ),
447 ENTRY( 0x0004, 0x1200, "UL", "Root Directory Entity First Directory Record Offset", FUNCDCM_NONE ),
448 ENTRY( 0x0004, 0x1202, "UL", "Root Directory Entity Last Directory Record Offset", FUNCDCM_NONE ),
449 ENTRY( 0x0004, 0x1212, "US", "File Set Consistency Flag", FUNCDCM_NONE ),
450 ENTRY( 0x0004, 0x1220, "SQ", "Directory Record Sequence", FUNCDCM_NONE ),
451 ENTRY( 0x0004, 0x1400, "UL", "Next Directory Record Offset", FUNCDCM_NONE ),
452 ENTRY( 0x0004, 0x1410, "US", "Record In Use Flag", FUNCDCM_NONE ),
453 ENTRY( 0x0004, 0x1420, "UL", "Referenced Lower Level Directory Entity Offset", FUNCDCM_NONE ),
454 ENTRY( 0x0004, 0x1430, "CS", "Directory Record Type", FUNCDCM_NONE ),
455 ENTRY( 0x0004, 0x1432, "UI", "Private Record UID", FUNCDCM_NONE ),
456 ENTRY( 0x0004, 0x1500, "CS", "Referenced File ID", FUNCDCM_NONE ),
457 ENTRY( 0x0004, 0x1504, "UL", "MRDR Directory Record Offset", FUNCDCM_NONE ),
458 ENTRY( 0x0004, 0x1510, "UI", "Referenced SOP Class UID In File", FUNCDCM_NONE ),
459 ENTRY( 0x0004, 0x1511, "UI", "Referenced SOP Instance UID In File", FUNCDCM_NONE ),
460 ENTRY( 0x0004, 0x1512, "UI", "Referenced Transfer Syntax UID In File", FUNCDCM_NONE ),
461 ENTRY( 0x0004, 0x1600, "UL", "Number of References", FUNCDCM_NONE ),
462 ENTRY( 0x0005, 0x0000, "US", "?", FUNCDCM_NONE ),
463 ENTRY( 0x0006, 0x0000, "US", "?", FUNCDCM_NONE ),
464 ENTRY( 0x0008, 0x0000, "UL", "Identifying Group Length", FUNCDCM_NONE ),
465 ENTRY( 0x0008, 0x0001, "UL", "Length to End", FUNCDCM_NONE ),
466 ENTRY( 0x0008, 0x0005, "CS", "Specific Character Set", FUNCDCM_NONE ),
467 ENTRY( 0x0008, 0x0008, "CS", "Image Type", FUNCDCM_NONE ),
468 ENTRY( 0x0008, 0x0010, "LO", "Recognition Code", FUNCDCM_NONE ),
469 ENTRY( 0x0008, 0x0012, "DA", "Instance Creation Date", FUNCDCM_NONE ),
470 ENTRY( 0x0008, 0x0013, "TM", "Instance Creation Time", FUNCDCM_NONE ),
471 ENTRY( 0x0008, 0x0014, "UI", "Instance Creator UID", FUNCDCM_NONE ),
472 ENTRY( 0x0008, 0x0016, "UI", "SOP Class UID", FUNCDCM_NONE ),
473 ENTRY( 0x0008, 0x0018, "UI", "SOP Instance UID", FUNCDCM_NONE ),
474 ENTRY( 0x0008, 0x0020, "DA", "Study Date", FUNCDCM_STUDYDATE ),
475 ENTRY( 0x0008, 0x0021, "DA", "Series Date", FUNCDCM_NONE ),
476 ENTRY( 0x0008, 0x0022, "DA", "Acquisition Date", FUNCDCM_NONE ),
477 ENTRY( 0x0008, 0x0023, "DA", "Image Date", FUNCDCM_NONE ),
478 ENTRY( 0x0008, 0x0024, "DA", "Overlay Date", FUNCDCM_NONE ),
479 ENTRY( 0x0008, 0x0025, "DA", "Curve Date", FUNCDCM_NONE ),
480 ENTRY( 0x0008, 0x0030, "TM", "Study Time", FUNCDCM_NONE ),
481 ENTRY( 0x0008, 0x0031, "TM", "Series Time", FUNCDCM_NONE ),
482 ENTRY( 0x0008, 0x0032, "TM", "Acquisition Time", FUNCDCM_NONE ),
483 ENTRY( 0x0008, 0x0033, "TM", "Image Time", FUNCDCM_NONE ),
484 ENTRY( 0x0008, 0x0034, "TM", "Overlay Time", FUNCDCM_NONE ),
485 ENTRY( 0x0008, 0x0035, "TM", "Curve Time", FUNCDCM_NONE ),
486 ENTRY( 0x0008, 0x0040, "xs", "Old Data Set Type", FUNCDCM_NONE ),
487 ENTRY( 0x0008, 0x0041, "xs", "Old Data Set Subtype", FUNCDCM_NONE ),
488 ENTRY( 0x0008, 0x0042, "CS", "Nuclear Medicine Series Type", FUNCDCM_NONE ),
489 ENTRY( 0x0008, 0x0050, "SH", "Accession Number", FUNCDCM_NONE ),
490 ENTRY( 0x0008, 0x0052, "CS", "Query/Retrieve Level", FUNCDCM_NONE ),
491 ENTRY( 0x0008, 0x0054, "AE", "Retrieve AE Title", FUNCDCM_NONE ),
492 ENTRY( 0x0008, 0x0058, "UI", "Failed SOP Instance UID List", FUNCDCM_NONE ),
493 ENTRY( 0x0008, 0x0060, "CS", "Modality", FUNCDCM_NONE ),
494 ENTRY( 0x0008, 0x0062, "SQ", "Modality Subtype", FUNCDCM_NONE ),
495 ENTRY( 0x0008, 0x0064, "CS", "Conversion Type", FUNCDCM_NONE ),
496 ENTRY( 0x0008, 0x0068, "CS", "Presentation Intent Type", FUNCDCM_NONE ),
497 ENTRY( 0x0008, 0x0070, "LO", "Manufacturer", FUNCDCM_NONE ),
498 ENTRY( 0x0008, 0x0080, "LO", "Institution Name", FUNCDCM_NONE ),
499 ENTRY( 0x0008, 0x0081, "ST", "Institution Address", FUNCDCM_NONE ),
500 ENTRY( 0x0008, 0x0082, "SQ", "Institution Code Sequence", FUNCDCM_NONE ),
501 ENTRY( 0x0008, 0x0090, "PN", "Referring Physician's Name", FUNCDCM_NONE ),
502 ENTRY( 0x0008, 0x0092, "ST", "Referring Physician's Address", FUNCDCM_NONE ),
503 ENTRY( 0x0008, 0x0094, "SH", "Referring Physician's Telephone Numbers", FUNCDCM_NONE ),
504 ENTRY( 0x0008, 0x0100, "SH", "Code Value", FUNCDCM_NONE ),
505 ENTRY( 0x0008, 0x0102, "SH", "Coding Scheme Designator", FUNCDCM_NONE ),
506 ENTRY( 0x0008, 0x0103, "SH", "Coding Scheme Version", FUNCDCM_NONE ),
507 ENTRY( 0x0008, 0x0104, "LO", "Code Meaning", FUNCDCM_NONE ),
508 ENTRY( 0x0008, 0x0105, "CS", "Mapping Resource", FUNCDCM_NONE ),
509 ENTRY( 0x0008, 0x0106, "DT", "Context Group Version", FUNCDCM_NONE ),
510 ENTRY( 0x0008, 0x010b, "CS", "Code Set Extension Flag", FUNCDCM_NONE ),
511 ENTRY( 0x0008, 0x010c, "UI", "Private Coding Scheme Creator UID", FUNCDCM_NONE ),
512 ENTRY( 0x0008, 0x010d, "UI", "Code Set Extension Creator UID", FUNCDCM_NONE ),
513 ENTRY( 0x0008, 0x010f, "CS", "Context Identifier", FUNCDCM_NONE ),
514 ENTRY( 0x0008, 0x1000, "LT", "Network ID", FUNCDCM_NONE ),
515 ENTRY( 0x0008, 0x1010, "SH", "Station Name", FUNCDCM_NONE ),
516 ENTRY( 0x0008, 0x1030, "LO", "Study Description", FUNCDCM_NONE ),
517 ENTRY( 0x0008, 0x1032, "SQ", "Procedure Code Sequence", FUNCDCM_NONE ),
518 ENTRY( 0x0008, 0x103e, "LO", "Series Description", FUNCDCM_NONE ),
519 ENTRY( 0x0008, 0x1040, "LO", "Institutional Department Name", FUNCDCM_NONE ),
520 ENTRY( 0x0008, 0x1048, "PN", "Physician of Record", FUNCDCM_NONE ),
521 ENTRY( 0x0008, 0x1050, "PN", "Performing Physician's Name", FUNCDCM_NONE ),
522 ENTRY( 0x0008, 0x1060, "PN", "Name of Physician(s) Reading Study", FUNCDCM_NONE ),
523 ENTRY( 0x0008, 0x1070, "PN", "Operator's Name", FUNCDCM_NONE ),
524 ENTRY( 0x0008, 0x1080, "LO", "Admitting Diagnosis Description", FUNCDCM_NONE ),
525 ENTRY( 0x0008, 0x1084, "SQ", "Admitting Diagnosis Code Sequence", FUNCDCM_NONE ),
526 ENTRY( 0x0008, 0x1090, "LO", "Manufacturer's Model Name", FUNCDCM_NONE ),
527 ENTRY( 0x0008, 0x1100, "SQ", "Referenced Results Sequence", FUNCDCM_NONE ),
528 ENTRY( 0x0008, 0x1110, "SQ", "Referenced Study Sequence", FUNCDCM_NONE ),
529 ENTRY( 0x0008, 0x1111, "SQ", "Referenced Study Component Sequence", FUNCDCM_NONE ),
530 ENTRY( 0x0008, 0x1115, "SQ", "Referenced Series Sequence", FUNCDCM_NONE ),
531 ENTRY( 0x0008, 0x1120, "SQ", "Referenced Patient Sequence", FUNCDCM_NONE ),
532 ENTRY( 0x0008, 0x1125, "SQ", "Referenced Visit Sequence", FUNCDCM_NONE ),
533 ENTRY( 0x0008, 0x1130, "SQ", "Referenced Overlay Sequence", FUNCDCM_NONE ),
534 ENTRY( 0x0008, 0x1140, "SQ", "Referenced Image Sequence", FUNCDCM_NONE ),
535 ENTRY( 0x0008, 0x1145, "SQ", "Referenced Curve Sequence", FUNCDCM_NONE ),
536 ENTRY( 0x0008, 0x1148, "SQ", "Referenced Previous Waveform", FUNCDCM_NONE ),
537 ENTRY( 0x0008, 0x114a, "SQ", "Referenced Simultaneous Waveforms", FUNCDCM_NONE ),
538 ENTRY( 0x0008, 0x114c, "SQ", "Referenced Subsequent Waveform", FUNCDCM_NONE ),
539 ENTRY( 0x0008, 0x1150, "UI", "Referenced SOP Class UID", FUNCDCM_NONE ),
540 ENTRY( 0x0008, 0x1155, "UI", "Referenced SOP Instance UID", FUNCDCM_NONE ),
541 ENTRY( 0x0008, 0x1160, "IS", "Referenced Frame Number", FUNCDCM_NONE ),
542 ENTRY( 0x0008, 0x1195, "UI", "Transaction UID", FUNCDCM_NONE ),
543 ENTRY( 0x0008, 0x1197, "US", "Failure Reason", FUNCDCM_NONE ),
544 ENTRY( 0x0008, 0x1198, "SQ", "Failed SOP Sequence", FUNCDCM_NONE ),
545 ENTRY( 0x0008, 0x1199, "SQ", "Referenced SOP Sequence", FUNCDCM_NONE ),
546 ENTRY( 0x0008, 0x2110, "CS", "Old Lossy Image Compression", FUNCDCM_NONE ),
547 ENTRY( 0x0008, 0x2111, "ST", "Derivation Description", FUNCDCM_NONE ),
548 ENTRY( 0x0008, 0x2112, "SQ", "Source Image Sequence", FUNCDCM_NONE ),
549 ENTRY( 0x0008, 0x2120, "SH", "Stage Name", FUNCDCM_NONE ),
550 ENTRY( 0x0008, 0x2122, "IS", "Stage Number", FUNCDCM_NONE ),
551 ENTRY( 0x0008, 0x2124, "IS", "Number of Stages", FUNCDCM_NONE ),
552 ENTRY( 0x0008, 0x2128, "IS", "View Number", FUNCDCM_NONE ),
553 ENTRY( 0x0008, 0x2129, "IS", "Number of Event Timers", FUNCDCM_NONE ),
554 ENTRY( 0x0008, 0x212a, "IS", "Number of Views in Stage", FUNCDCM_NONE ),
555 ENTRY( 0x0008, 0x2130, "DS", "Event Elapsed Time(s)", FUNCDCM_NONE ),
556 ENTRY( 0x0008, 0x2132, "LO", "Event Timer Name(s)", FUNCDCM_NONE ),
557 ENTRY( 0x0008, 0x2142, "IS", "Start Trim", FUNCDCM_NONE ),
558 ENTRY( 0x0008, 0x2143, "IS", "Stop Trim", FUNCDCM_NONE ),
559 ENTRY( 0x0008, 0x2144, "IS", "Recommended Display Frame Rate", FUNCDCM_NONE ),
560 ENTRY( 0x0008, 0x2200, "CS", "Transducer Position", FUNCDCM_NONE ),
561 ENTRY( 0x0008, 0x2204, "CS", "Transducer Orientation", FUNCDCM_NONE ),
562 ENTRY( 0x0008, 0x2208, "CS", "Anatomic Structure", FUNCDCM_NONE ),
563 ENTRY( 0x0008, 0x2218, "SQ", "Anatomic Region Sequence", FUNCDCM_NONE ),
564 ENTRY( 0x0008, 0x2220, "SQ", "Anatomic Region Modifier Sequence", FUNCDCM_NONE ),
565 ENTRY( 0x0008, 0x2228, "SQ", "Primary Anatomic Structure Sequence", FUNCDCM_NONE ),
566 ENTRY( 0x0008, 0x2230, "SQ", "Primary Anatomic Structure Modifier Sequence", FUNCDCM_NONE ),
567 ENTRY( 0x0008, 0x2240, "SQ", "Transducer Position Sequence", FUNCDCM_NONE ),
568 ENTRY( 0x0008, 0x2242, "SQ", "Transducer Position Modifier Sequence", FUNCDCM_NONE ),
569 ENTRY( 0x0008, 0x2244, "SQ", "Transducer Orientation Sequence", FUNCDCM_NONE ),
570 ENTRY( 0x0008, 0x2246, "SQ", "Transducer Orientation Modifier Sequence", FUNCDCM_NONE ),
571 ENTRY( 0x0008, 0x2251, "SQ", "Anatomic Structure Space Or Region Code Sequence", FUNCDCM_NONE ),
572 ENTRY( 0x0008, 0x2253, "SQ", "Anatomic Portal Of Entrance Code Sequence", FUNCDCM_NONE ),
573 ENTRY( 0x0008, 0x2255, "SQ", "Anatomic Approach Direction Code Sequence", FUNCDCM_NONE ),
574 ENTRY( 0x0008, 0x2256, "ST", "Anatomic Perspective Description", FUNCDCM_NONE ),
575 ENTRY( 0x0008, 0x2257, "SQ", "Anatomic Perspective Code Sequence", FUNCDCM_NONE ),
576 ENTRY( 0x0008, 0x2258, "ST", "Anatomic Location Of Examining Instrument Description", FUNCDCM_NONE ),
577 ENTRY( 0x0008, 0x2259, "SQ", "Anatomic Location Of Examining Instrument Code Sequence", FUNCDCM_NONE ),
578 ENTRY( 0x0008, 0x225a, "SQ", "Anatomic Structure Space Or Region Modifier Code Sequence", FUNCDCM_NONE ),
579 ENTRY( 0x0008, 0x225c, "SQ", "OnAxis Background Anatomic Structure Code Sequence", FUNCDCM_NONE ),
580 ENTRY( 0x0008, 0x4000, "LT", "Identifying Comments", FUNCDCM_NONE ),
581 ENTRY( 0x0009, 0x0000, "xs", "?", FUNCDCM_NONE ),
582 ENTRY( 0x0009, 0x0001, "xs", "?", FUNCDCM_NONE ),
583 ENTRY( 0x0009, 0x0002, "xs", "?", FUNCDCM_NONE ),
584 ENTRY( 0x0009, 0x0003, "xs", "?", FUNCDCM_NONE ),
585 ENTRY( 0x0009, 0x0004, "xs", "?", FUNCDCM_NONE ),
586 ENTRY( 0x0009, 0x0005, "UN", "?", FUNCDCM_NONE ),
587 ENTRY( 0x0009, 0x0006, "UN", "?", FUNCDCM_NONE ),
588 ENTRY( 0x0009, 0x0007, "UN", "?", FUNCDCM_NONE ),
589 ENTRY( 0x0009, 0x0008, "xs", "?", FUNCDCM_NONE ),
590 ENTRY( 0x0009, 0x0009, "LT", "?", FUNCDCM_NONE ),
591 ENTRY( 0x0009, 0x000a, "IS", "?", FUNCDCM_NONE ),
592 ENTRY( 0x0009, 0x000b, "IS", "?", FUNCDCM_NONE ),
593 ENTRY( 0x0009, 0x000c, "IS", "?", FUNCDCM_NONE ),
594 ENTRY( 0x0009, 0x000d, "IS", "?", FUNCDCM_NONE ),
595 ENTRY( 0x0009, 0x000e, "IS", "?", FUNCDCM_NONE ),
596 ENTRY( 0x0009, 0x000f, "UN", "?", FUNCDCM_NONE ),
597 ENTRY( 0x0009, 0x0010, "xs", "?", FUNCDCM_NONE ),
598 ENTRY( 0x0009, 0x0011, "xs", "?", FUNCDCM_NONE ),
599 ENTRY( 0x0009, 0x0012, "xs", "?", FUNCDCM_NONE ),
600 ENTRY( 0x0009, 0x0013, "xs", "?", FUNCDCM_NONE ),
601 ENTRY( 0x0009, 0x0014, "xs", "?", FUNCDCM_NONE ),
602 ENTRY( 0x0009, 0x0015, "xs", "?", FUNCDCM_NONE ),
603 ENTRY( 0x0009, 0x0016, "xs", "?", FUNCDCM_NONE ),
604 ENTRY( 0x0009, 0x0017, "LT", "?", FUNCDCM_NONE ),
605 ENTRY( 0x0009, 0x0018, "LT", "Data Set Identifier", FUNCDCM_NONE ),
606 ENTRY( 0x0009, 0x001a, "US", "?", FUNCDCM_NONE ),
607 ENTRY( 0x0009, 0x001e, "UI", "?", FUNCDCM_NONE ),
608 ENTRY( 0x0009, 0x0020, "xs", "?", FUNCDCM_NONE ),
609 ENTRY( 0x0009, 0x0021, "xs", "?", FUNCDCM_NONE ),
610 ENTRY( 0x0009, 0x0022, "SH", "User Orientation", FUNCDCM_NONE ),
611 ENTRY( 0x0009, 0x0023, "SL", "Initiation Type", FUNCDCM_NONE ),
612 ENTRY( 0x0009, 0x0024, "xs", "?", FUNCDCM_NONE ),
613 ENTRY( 0x0009, 0x0025, "xs", "?", FUNCDCM_NONE ),
614 ENTRY( 0x0009, 0x0026, "xs", "?", FUNCDCM_NONE ),
615 ENTRY( 0x0009, 0x0027, "xs", "?", FUNCDCM_NONE ),
616 ENTRY( 0x0009, 0x0029, "xs", "?", FUNCDCM_NONE ),
617 ENTRY( 0x0009, 0x002a, "SL", "?", FUNCDCM_NONE ),
618 ENTRY( 0x0009, 0x002c, "LO", "Series Comments", FUNCDCM_NONE ),
619 ENTRY( 0x0009, 0x002d, "SL", "Track Beat Average", FUNCDCM_NONE ),
620 ENTRY( 0x0009, 0x002e, "FD", "Distance Prescribed", FUNCDCM_NONE ),
621 ENTRY( 0x0009, 0x002f, "LT", "?", FUNCDCM_NONE ),
622 ENTRY( 0x0009, 0x0030, "xs", "?", FUNCDCM_NONE ),
623 ENTRY( 0x0009, 0x0031, "xs", "?", FUNCDCM_NONE ),
624 ENTRY( 0x0009, 0x0032, "LT", "?", FUNCDCM_NONE ),
625 ENTRY( 0x0009, 0x0034, "xs", "?", FUNCDCM_NONE ),
626 ENTRY( 0x0009, 0x0035, "SL", "Gantry Locus Type", FUNCDCM_NONE ),
627 ENTRY( 0x0009, 0x0037, "SL", "Starting Heart Rate", FUNCDCM_NONE ),
628 ENTRY( 0x0009, 0x0038, "xs", "?", FUNCDCM_NONE ),
629 ENTRY( 0x0009, 0x0039, "SL", "RR Window Offset", FUNCDCM_NONE ),
630 ENTRY( 0x0009, 0x003a, "SL", "Percent Cycle Imaged", FUNCDCM_NONE ),
631 ENTRY( 0x0009, 0x003e, "US", "?", FUNCDCM_NONE ),
632 ENTRY( 0x0009, 0x003f, "US", "?", FUNCDCM_NONE ),
633 ENTRY( 0x0009, 0x0040, "xs", "?", FUNCDCM_NONE ),
634 ENTRY( 0x0009, 0x0041, "xs", "?", FUNCDCM_NONE ),
635 ENTRY( 0x0009, 0x0042, "xs", "?", FUNCDCM_NONE ),
636 ENTRY( 0x0009, 0x0043, "xs", "?", FUNCDCM_NONE ),
637 ENTRY( 0x0009, 0x0050, "LT", "?", FUNCDCM_NONE ),
638 ENTRY( 0x0009, 0x0051, "xs", "?", FUNCDCM_NONE ),
639 ENTRY( 0x0009, 0x0060, "LT", "?", FUNCDCM_NONE ),
640 ENTRY( 0x0009, 0x0061, "LT", "Series Unique Identifier", FUNCDCM_NONE ),
641 ENTRY( 0x0009, 0x0070, "LT", "?", FUNCDCM_NONE ),
642 ENTRY( 0x0009, 0x0080, "LT", "?", FUNCDCM_NONE ),
643 ENTRY( 0x0009, 0x0091, "LT", "?", FUNCDCM_NONE ),
644 ENTRY( 0x0009, 0x00e2, "LT", "?", FUNCDCM_NONE ),
645 ENTRY( 0x0009, 0x00e3, "UI", "Equipment UID", FUNCDCM_NONE ),
646 ENTRY( 0x0009, 0x00e6, "SH", "Genesis Version Now", FUNCDCM_NONE ),
647 ENTRY( 0x0009, 0x00e7, "UL", "Exam Record Checksum", FUNCDCM_NONE ),
648 ENTRY( 0x0009, 0x00e8, "UL", "?", FUNCDCM_NONE ),
649 ENTRY( 0x0009, 0x00e9, "SL", "Actual Series Data Time Stamp", FUNCDCM_NONE ),
650 ENTRY( 0x0009, 0x00f2, "UN", "?", FUNCDCM_NONE ),
651 ENTRY( 0x0009, 0x00f3, "UN", "?", FUNCDCM_NONE ),
652 ENTRY( 0x0009, 0x00f4, "LT", "?", FUNCDCM_NONE ),
653 ENTRY( 0x0009, 0x00f5, "xs", "?", FUNCDCM_NONE ),
654 ENTRY( 0x0009, 0x00f6, "LT", "PDM Data Object Type Extension", FUNCDCM_NONE ),
655 ENTRY( 0x0009, 0x00f8, "US", "?", FUNCDCM_NONE ),
656 ENTRY( 0x0009, 0x00fb, "IS", "?", FUNCDCM_NONE ),
657 ENTRY( 0x0009, 0x1002, "OB", "?", FUNCDCM_NONE ),
658 ENTRY( 0x0009, 0x1003, "OB", "?", FUNCDCM_NONE ),
659 ENTRY( 0x0009, 0x1010, "UN", "?", FUNCDCM_NONE ),
660 ENTRY( 0x0010, 0x0000, "UL", "Patient Group Length", FUNCDCM_NONE ),
661 ENTRY( 0x0010, 0x0010, "PN", "Patient's Name", FUNCDCM_PATIENTNAME ),
662 ENTRY( 0x0010, 0x0020, "LO", "Patient's ID", FUNCDCM_NONE ),
663 ENTRY( 0x0010, 0x0021, "LO", "Issuer of Patient's ID", FUNCDCM_NONE ),
664 ENTRY( 0x0010, 0x0030, "DA", "Patient's Birth Date", FUNCDCM_NONE ),
665 ENTRY( 0x0010, 0x0032, "TM", "Patient's Birth Time", FUNCDCM_NONE ),
666 ENTRY( 0x0010, 0x0040, "CS", "Patient's Sex", FUNCDCM_NONE ),
667 ENTRY( 0x0010, 0x0050, "SQ", "Patient's Insurance Plan Code Sequence", FUNCDCM_NONE ),
668 ENTRY( 0x0010, 0x1000, "LO", "Other Patient's ID's", FUNCDCM_NONE ),
669 ENTRY( 0x0010, 0x1001, "PN", "Other Patient's Names", FUNCDCM_NONE ),
670 ENTRY( 0x0010, 0x1005, "PN", "Patient's Birth Name", FUNCDCM_NONE ),
671 ENTRY( 0x0010, 0x1010, "AS", "Patient's Age", FUNCDCM_NONE ),
672 ENTRY( 0x0010, 0x1020, "DS", "Patient's Size", FUNCDCM_NONE ),
673 ENTRY( 0x0010, 0x1030, "DS", "Patient's Weight", FUNCDCM_NONE ),
674 ENTRY( 0x0010, 0x1040, "LO", "Patient's Address", FUNCDCM_NONE ),
675 ENTRY( 0x0010, 0x1050, "LT", "Insurance Plan Identification", FUNCDCM_NONE ),
676 ENTRY( 0x0010, 0x1060, "PN", "Patient's Mother's Birth Name", FUNCDCM_NONE ),
677 ENTRY( 0x0010, 0x1080, "LO", "Military Rank", FUNCDCM_NONE ),
678 ENTRY( 0x0010, 0x1081, "LO", "Branch of Service", FUNCDCM_NONE ),
679 ENTRY( 0x0010, 0x1090, "LO", "Medical Record Locator", FUNCDCM_NONE ),
680 ENTRY( 0x0010, 0x2000, "LO", "Medical Alerts", FUNCDCM_NONE ),
681 ENTRY( 0x0010, 0x2110, "LO", "Contrast Allergies", FUNCDCM_NONE ),
682 ENTRY( 0x0010, 0x2150, "LO", "Country of Residence", FUNCDCM_NONE ),
683 ENTRY( 0x0010, 0x2152, "LO", "Region of Residence", FUNCDCM_NONE ),
684 ENTRY( 0x0010, 0x2154, "SH", "Patients Telephone Numbers", FUNCDCM_NONE ),
685 ENTRY( 0x0010, 0x2160, "SH", "Ethnic Group", FUNCDCM_NONE ),
686 ENTRY( 0x0010, 0x2180, "SH", "Occupation", FUNCDCM_NONE ),
687 ENTRY( 0x0010, 0x21a0, "CS", "Smoking Status", FUNCDCM_NONE ),
688 ENTRY( 0x0010, 0x21b0, "LT", "Additional Patient History", FUNCDCM_NONE ),
689 ENTRY( 0x0010, 0x21c0, "US", "Pregnancy Status", FUNCDCM_NONE ),
690 ENTRY( 0x0010, 0x21d0, "DA", "Last Menstrual Date", FUNCDCM_NONE ),
691 ENTRY( 0x0010, 0x21f0, "LO", "Patients Religious Preference", FUNCDCM_NONE ),
692 ENTRY( 0x0010, 0x4000, "LT", "Patient Comments", FUNCDCM_NONE ),
693 ENTRY( 0x0011, 0x0001, "xs", "?", FUNCDCM_NONE ),
694 ENTRY( 0x0011, 0x0002, "US", "?", FUNCDCM_NONE ),
695 ENTRY( 0x0011, 0x0003, "LT", "Patient UID", FUNCDCM_NONE ),
696 ENTRY( 0x0011, 0x0004, "LT", "Patient ID", FUNCDCM_NONE ),
697 ENTRY( 0x0011, 0x000a, "xs", "?", FUNCDCM_NONE ),
698 ENTRY( 0x0011, 0x000b, "SL", "Effective Series Duration", FUNCDCM_NONE ),
699 ENTRY( 0x0011, 0x000c, "SL", "Num Beats", FUNCDCM_NONE ),
700 ENTRY( 0x0011, 0x000d, "LO", "Radio Nuclide Name", FUNCDCM_NONE ),
701 ENTRY( 0x0011, 0x0010, "xs", "?", FUNCDCM_NONE ),
702 ENTRY( 0x0011, 0x0011, "xs", "?", FUNCDCM_NONE ),
703 ENTRY( 0x0011, 0x0012, "LO", "Dataset Name", FUNCDCM_NONE ),
704 ENTRY( 0x0011, 0x0013, "LO", "Dataset Type", FUNCDCM_NONE ),
705 ENTRY( 0x0011, 0x0015, "xs", "?", FUNCDCM_NONE ),
706 ENTRY( 0x0011, 0x0016, "SL", "Energy Number", FUNCDCM_NONE ),
707 ENTRY( 0x0011, 0x0017, "SL", "RR Interval Window Number", FUNCDCM_NONE ),
708 ENTRY( 0x0011, 0x0018, "SL", "MG Bin Number", FUNCDCM_NONE ),
709 ENTRY( 0x0011, 0x0019, "FD", "Radius Of Rotation", FUNCDCM_NONE ),
710 ENTRY( 0x0011, 0x001a, "SL", "Detector Count Zone", FUNCDCM_NONE ),
711 ENTRY( 0x0011, 0x001b, "SL", "Num Energy Windows", FUNCDCM_NONE ),
712 ENTRY( 0x0011, 0x001c, "SL", "Energy Offset", FUNCDCM_NONE ),
713 ENTRY( 0x0011, 0x001d, "SL", "Energy Range", FUNCDCM_NONE ),
714 ENTRY( 0x0011, 0x001f, "SL", "Image Orientation", FUNCDCM_IMAGEORIENTATION ),
715 ENTRY( 0x0011, 0x0020, "xs", "?", FUNCDCM_NONE ),
716 ENTRY( 0x0011, 0x0021, "xs", "?", FUNCDCM_NONE ),
717 ENTRY( 0x0011, 0x0022, "xs", "?", FUNCDCM_NONE ),
718 ENTRY( 0x0011, 0x0023, "xs", "?", FUNCDCM_NONE ),
719 ENTRY( 0x0011, 0x0024, "SL", "FOV Mask Y Cutoff Angle", FUNCDCM_NONE ),
720 ENTRY( 0x0011, 0x0025, "xs", "?", FUNCDCM_NONE ),
721 ENTRY( 0x0011, 0x0026, "SL", "Table Orientation", FUNCDCM_NONE ),
722 ENTRY( 0x0011, 0x0027, "SL", "ROI Top Left", FUNCDCM_NONE ),
723 ENTRY( 0x0011, 0x0028, "SL", "ROI Bottom Right", FUNCDCM_NONE ),
724 ENTRY( 0x0011, 0x0030, "xs", "?", FUNCDCM_NONE ),
725 ENTRY( 0x0011, 0x0031, "xs", "?", FUNCDCM_NONE ),
726 ENTRY( 0x0011, 0x0032, "UN", "?", FUNCDCM_NONE ),
727 ENTRY( 0x0011, 0x0033, "LO", "Energy Correct Name", FUNCDCM_NONE ),
728 ENTRY( 0x0011, 0x0034, "LO", "Spatial Correct Name", FUNCDCM_NONE ),
729 ENTRY( 0x0011, 0x0035, "xs", "?", FUNCDCM_NONE ),
730 ENTRY( 0x0011, 0x0036, "LO", "Uniformity Correct Name", FUNCDCM_NONE ),
731 ENTRY( 0x0011, 0x0037, "LO", "Acquisition Specific Correct Name", FUNCDCM_NONE ),
732 ENTRY( 0x0011, 0x0038, "SL", "Byte Order", FUNCDCM_NONE ),
733 ENTRY( 0x0011, 0x003a, "SL", "Picture Format", FUNCDCM_NONE ),
734 ENTRY( 0x0011, 0x003b, "FD", "Pixel Scale", FUNCDCM_NONE ),
735 ENTRY( 0x0011, 0x003c, "FD", "Pixel Offset", FUNCDCM_NONE ),
736 ENTRY( 0x0011, 0x003e, "SL", "FOV Shape", FUNCDCM_NONE ),
737 ENTRY( 0x0011, 0x003f, "SL", "Dataset Flags", FUNCDCM_NONE ),
738 ENTRY( 0x0011, 0x0040, "xs", "?", FUNCDCM_NONE ),
739 ENTRY( 0x0011, 0x0041, "LT", "Medical Alerts", FUNCDCM_NONE ),
740 ENTRY( 0x0011, 0x0042, "LT", "Contrast Allergies", FUNCDCM_NONE ),
741 ENTRY( 0x0011, 0x0044, "FD", "Threshold Center", FUNCDCM_NONE ),
742 ENTRY( 0x0011, 0x0045, "FD", "Threshold Width", FUNCDCM_NONE ),
743 ENTRY( 0x0011, 0x0046, "SL", "Interpolation Type", FUNCDCM_NONE ),
744 ENTRY( 0x0011, 0x0055, "FD", "Period", FUNCDCM_NONE ),
745 ENTRY( 0x0011, 0x0056, "FD", "ElapsedTime", FUNCDCM_NONE ),
746 ENTRY( 0x0011, 0x00a1, "DA", "Patient Registration Date", FUNCDCM_NONE ),
747 ENTRY( 0x0011, 0x00a2, "TM", "Patient Registration Time", FUNCDCM_NONE ),
748 ENTRY( 0x0011, 0x00b0, "LT", "Patient Last Name", FUNCDCM_NONE ),
749 ENTRY( 0x0011, 0x00b2, "LT", "Patient First Name", FUNCDCM_NONE ),
750 ENTRY( 0x0011, 0x00b4, "LT", "Patient Hospital Status", FUNCDCM_NONE ),
751 ENTRY( 0x0011, 0x00bc, "TM", "Current Location Time", FUNCDCM_NONE ),
752 ENTRY( 0x0011, 0x00c0, "LT", "Patient Insurance Status", FUNCDCM_NONE ),
753 ENTRY( 0x0011, 0x00d0, "LT", "Patient Billing Type", FUNCDCM_NONE ),
754 ENTRY( 0x0011, 0x00d2, "LT", "Patient Billing Address", FUNCDCM_NONE ),
755 ENTRY( 0x0013, 0x0000, "LT", "Modifying Physician", FUNCDCM_NONE ),
756 ENTRY( 0x0013, 0x0010, "xs", "?", FUNCDCM_NONE ),
757 ENTRY( 0x0013, 0x0011, "SL", "?", FUNCDCM_NONE ),
758 ENTRY( 0x0013, 0x0012, "xs", "?", FUNCDCM_NONE ),
759 ENTRY( 0x0013, 0x0016, "SL", "AutoTrack Peak", FUNCDCM_NONE ),
760 ENTRY( 0x0013, 0x0017, "SL", "AutoTrack Width", FUNCDCM_NONE ),
761 ENTRY( 0x0013, 0x0018, "FD", "Transmission Scan Time", FUNCDCM_NONE ),
762 ENTRY( 0x0013, 0x0019, "FD", "Transmission Mask Width", FUNCDCM_NONE ),
763 ENTRY( 0x0013, 0x001a, "FD", "Copper Attenuator Thickness", FUNCDCM_NONE ),
764 ENTRY( 0x0013, 0x001c, "FD", "?", FUNCDCM_NONE ),
765 ENTRY( 0x0013, 0x001d, "FD", "?", FUNCDCM_NONE ),
766 ENTRY( 0x0013, 0x001e, "FD", "Tomo View Offset", FUNCDCM_NONE ),
767 ENTRY( 0x0013, 0x0020, "LT", "Patient Name", FUNCDCM_NONE ),
768 ENTRY( 0x0013, 0x0022, "LT", "Patient Id", FUNCDCM_NONE ),
769 ENTRY( 0x0013, 0x0026, "LT", "Study Comments", FUNCDCM_NONE ),
770 ENTRY( 0x0013, 0x0030, "DA", "Patient Birthdate", FUNCDCM_NONE ),
771 ENTRY( 0x0013, 0x0031, "DS", "Patient Weight", FUNCDCM_NONE ),
772 ENTRY( 0x0013, 0x0032, "LT", "Patients Maiden Name", FUNCDCM_NONE ),
773 ENTRY( 0x0013, 0x0033, "LT", "Referring Physician", FUNCDCM_NONE ),
774 ENTRY( 0x0013, 0x0034, "LT", "Admitting Diagnosis", FUNCDCM_NONE ),
775 ENTRY( 0x0013, 0x0035, "LT", "Patient Sex", FUNCDCM_NONE ),
776 ENTRY( 0x0013, 0x0040, "LT", "Procedure Description", FUNCDCM_NONE ),
777 ENTRY( 0x0013, 0x0042, "LT", "Patient Rest Direction", FUNCDCM_NONE ),
778 ENTRY( 0x0013, 0x0044, "LT", "Patient Position", FUNCDCM_NONE ),
779 ENTRY( 0x0013, 0x0046, "LT", "View Direction", FUNCDCM_NONE ),
780 ENTRY( 0x0015, 0x0001, "DS", "Stenosis Calibration Ratio", FUNCDCM_NONE ),
781 ENTRY( 0x0015, 0x0002, "DS", "Stenosis Magnification", FUNCDCM_NONE ),
782 ENTRY( 0x0015, 0x0003, "DS", "Cardiac Calibration Ratio", FUNCDCM_NONE ),
783 ENTRY( 0x0018, 0x0000, "UL", "Acquisition Group Length", FUNCDCM_NONE ),
784 ENTRY( 0x0018, 0x0010, "LO", "Contrast/Bolus Agent", FUNCDCM_NONE ),
785 ENTRY( 0x0018, 0x0012, "SQ", "Contrast/Bolus Agent Sequence", FUNCDCM_NONE ),
786 ENTRY( 0x0018, 0x0014, "SQ", "Contrast/Bolus Administration Route Sequence", FUNCDCM_NONE ),
787 ENTRY( 0x0018, 0x0015, "CS", "Body Part Examined", FUNCDCM_NONE ),
788 ENTRY( 0x0018, 0x0020, "CS", "Scanning Sequence", FUNCDCM_NONE ),
789 ENTRY( 0x0018, 0x0021, "CS", "Sequence Variant", FUNCDCM_NONE ),
790 ENTRY( 0x0018, 0x0022, "CS", "Scan Options", FUNCDCM_NONE ),
791 ENTRY( 0x0018, 0x0023, "CS", "MR Acquisition Type", FUNCDCM_NONE ),
792 ENTRY( 0x0018, 0x0024, "SH", "Sequence Name", FUNCDCM_NONE ),
793 ENTRY( 0x0018, 0x0025, "CS", "Angio Flag", FUNCDCM_NONE ),
794 ENTRY( 0x0018, 0x0026, "SQ", "Intervention Drug Information Sequence", FUNCDCM_NONE ),
795 ENTRY( 0x0018, 0x0027, "TM", "Intervention Drug Stop Time", FUNCDCM_NONE ),
796 ENTRY( 0x0018, 0x0028, "DS", "Intervention Drug Dose", FUNCDCM_NONE ),
797 ENTRY( 0x0018, 0x0029, "SQ", "Intervention Drug Code Sequence", FUNCDCM_NONE ),
798 ENTRY( 0x0018, 0x002a, "SQ", "Additional Drug Sequence", FUNCDCM_NONE ),
799 ENTRY( 0x0018, 0x0030, "LO", "Radionuclide", FUNCDCM_NONE ),
800 ENTRY( 0x0018, 0x0031, "LO", "Radiopharmaceutical", FUNCDCM_NONE ),
801 ENTRY( 0x0018, 0x0032, "DS", "Energy Window Centerline", FUNCDCM_NONE ),
802 ENTRY( 0x0018, 0x0033, "DS", "Energy Window Total Width", FUNCDCM_NONE ),
803 ENTRY( 0x0018, 0x0034, "LO", "Intervention Drug Name", FUNCDCM_NONE ),
804 ENTRY( 0x0018, 0x0035, "TM", "Intervention Drug Start Time", FUNCDCM_NONE ),
805 ENTRY( 0x0018, 0x0036, "SQ", "Intervention Therapy Sequence", FUNCDCM_NONE ),
806 ENTRY( 0x0018, 0x0037, "CS", "Therapy Type", FUNCDCM_NONE ),
807 ENTRY( 0x0018, 0x0038, "CS", "Intervention Status", FUNCDCM_NONE ),
808 ENTRY( 0x0018, 0x0039, "CS", "Therapy Description", FUNCDCM_NONE ),
809 ENTRY( 0x0018, 0x0040, "IS", "Cine Rate", FUNCDCM_NONE ),
810 ENTRY( 0x0018, 0x0050, "DS", "Slice Thickness", FUNCDCM_NONE ),
811 ENTRY( 0x0018, 0x0060, "DS", "KVP", FUNCDCM_NONE ),
812 ENTRY( 0x0018, 0x0070, "IS", "Counts Accumulated", FUNCDCM_NONE ),
813 ENTRY( 0x0018, 0x0071, "CS", "Acquisition Termination Condition", FUNCDCM_NONE ),
814 ENTRY( 0x0018, 0x0072, "DS", "Effective Series Duration", FUNCDCM_NONE ),
815 ENTRY( 0x0018, 0x0073, "CS", "Acquisition Start Condition", FUNCDCM_NONE ),
816 ENTRY( 0x0018, 0x0074, "IS", "Acquisition Start Condition Data", FUNCDCM_NONE ),
817 ENTRY( 0x0018, 0x0075, "IS", "Acquisition Termination Condition Data", FUNCDCM_NONE ),
818 ENTRY( 0x0018, 0x0080, "DS", "Repetition Time", FUNCDCM_NONE ),
819 ENTRY( 0x0018, 0x0081, "DS", "Echo Time", FUNCDCM_NONE ),
820 ENTRY( 0x0018, 0x0082, "DS", "Inversion Time", FUNCDCM_NONE ),
821 ENTRY( 0x0018, 0x0083, "DS", "Number of Averages", FUNCDCM_NONE ),
822 ENTRY( 0x0018, 0x0084, "DS", "Imaging Frequency", FUNCDCM_NONE ),
823 ENTRY( 0x0018, 0x0085, "SH", "Imaged Nucleus", FUNCDCM_NONE ),
824 ENTRY( 0x0018, 0x0086, "IS", "Echo Number(s)", FUNCDCM_NONE ),
825 ENTRY( 0x0018, 0x0087, "DS", "Magnetic Field Strength", FUNCDCM_NONE ),
826 ENTRY( 0x0018, 0x0088, "DS", "Spacing Between Slices", FUNCDCM_NONE ),
827 ENTRY( 0x0018, 0x0089, "IS", "Number of Phase Encoding Steps", FUNCDCM_NONE ),
828 ENTRY( 0x0018, 0x0090, "DS", "Data Collection Diameter", FUNCDCM_NONE ),
829 ENTRY( 0x0018, 0x0091, "IS", "Echo Train Length", FUNCDCM_NONE ),
830 ENTRY( 0x0018, 0x0093, "DS", "Percent Sampling", FUNCDCM_NONE ),
831 ENTRY( 0x0018, 0x0094, "DS", "Percent Phase Field of View", FUNCDCM_NONE ),
832 ENTRY( 0x0018, 0x0095, "DS", "Pixel Bandwidth", FUNCDCM_NONE ),
833 ENTRY( 0x0018, 0x1000, "LO", "Device Serial Number", FUNCDCM_NONE ),
834 ENTRY( 0x0018, 0x1004, "LO", "Plate ID", FUNCDCM_NONE ),
835 ENTRY( 0x0018, 0x1010, "LO", "Secondary Capture Device ID", FUNCDCM_NONE ),
836 ENTRY( 0x0018, 0x1012, "DA", "Date of Secondary Capture", FUNCDCM_NONE ),
837 ENTRY( 0x0018, 0x1014, "TM", "Time of Secondary Capture", FUNCDCM_NONE ),
838 ENTRY( 0x0018, 0x1016, "LO", "Secondary Capture Device Manufacturer", FUNCDCM_NONE ),
839 ENTRY( 0x0018, 0x1018, "LO", "Secondary Capture Device Manufacturer Model Name", FUNCDCM_NONE ),
840 ENTRY( 0x0018, 0x1019, "LO", "Secondary Capture Device Software Version(s)", FUNCDCM_NONE ),
841 ENTRY( 0x0018, 0x1020, "LO", "Software Version(s)", FUNCDCM_NONE ),
842 ENTRY( 0x0018, 0x1022, "SH", "Video Image Format Acquired", FUNCDCM_NONE ),
843 ENTRY( 0x0018, 0x1023, "LO", "Digital Image Format Acquired", FUNCDCM_NONE ),
844 ENTRY( 0x0018, 0x1030, "LO", "Protocol Name", FUNCDCM_NONE ),
845 ENTRY( 0x0018, 0x1040, "LO", "Contrast/Bolus Route", FUNCDCM_NONE ),
846 ENTRY( 0x0018, 0x1041, "DS", "Contrast/Bolus Volume", FUNCDCM_NONE ),
847 ENTRY( 0x0018, 0x1042, "TM", "Contrast/Bolus Start Time", FUNCDCM_NONE ),
848 ENTRY( 0x0018, 0x1043, "TM", "Contrast/Bolus Stop Time", FUNCDCM_NONE ),
849 ENTRY( 0x0018, 0x1044, "DS", "Contrast/Bolus Total Dose", FUNCDCM_NONE ),
850 ENTRY( 0x0018, 0x1045, "IS", "Syringe Counts", FUNCDCM_NONE ),
851 ENTRY( 0x0018, 0x1046, "DS", "Contrast Flow Rate", FUNCDCM_NONE ),
852 ENTRY( 0x0018, 0x1047, "DS", "Contrast Flow Duration", FUNCDCM_NONE ),
853 ENTRY( 0x0018, 0x1048, "CS", "Contrast/Bolus Ingredient", FUNCDCM_NONE ),
854 ENTRY( 0x0018, 0x1049, "DS", "Contrast/Bolus Ingredient Concentration", FUNCDCM_NONE ),
855 ENTRY( 0x0018, 0x1050, "DS", "Spatial Resolution", FUNCDCM_NONE ),
856 ENTRY( 0x0018, 0x1060, "DS", "Trigger Time", FUNCDCM_TRIGGERTIME ),
857 ENTRY( 0x0018, 0x1061, "LO", "Trigger Source or Type", FUNCDCM_NONE ),
858 ENTRY( 0x0018, 0x1062, "IS", "Nominal Interval", FUNCDCM_NONE ),
859 ENTRY( 0x0018, 0x1063, "DS", "Frame Time", FUNCDCM_NONE ),
860 ENTRY( 0x0018, 0x1064, "LO", "Framing Type", FUNCDCM_NONE ),
861 ENTRY( 0x0018, 0x1065, "DS", "Frame Time Vector", FUNCDCM_NONE ),
862 ENTRY( 0x0018, 0x1066, "DS", "Frame Delay", FUNCDCM_NONE ),
863 ENTRY( 0x0018, 0x1067, "DS", "Image Trigger Delay", FUNCDCM_NONE ),
864 ENTRY( 0x0018, 0x1068, "DS", "Group Time Offset", FUNCDCM_NONE ),
865 ENTRY( 0x0018, 0x1069, "DS", "Trigger Time Offset", FUNCDCM_NONE ),
866 ENTRY( 0x0018, 0x106a, "CS", "Synchronization Trigger", FUNCDCM_NONE ),
867 ENTRY( 0x0018, 0x106b, "UI", "Synchronization Frame of Reference", FUNCDCM_NONE ),
868 ENTRY( 0x0018, 0x106e, "UL", "Trigger Sample Position", FUNCDCM_NONE ),
869 ENTRY( 0x0018, 0x1070, "LO", "Radiopharmaceutical Route", FUNCDCM_NONE ),
870 ENTRY( 0x0018, 0x1071, "DS", "Radiopharmaceutical Volume", FUNCDCM_NONE ),
871 ENTRY( 0x0018, 0x1072, "TM", "Radiopharmaceutical Start Time", FUNCDCM_NONE ),
872 ENTRY( 0x0018, 0x1073, "TM", "Radiopharmaceutical Stop Time", FUNCDCM_NONE ),
873 ENTRY( 0x0018, 0x1074, "DS", "Radionuclide Total Dose", FUNCDCM_NONE ),
874 ENTRY( 0x0018, 0x1075, "DS", "Radionuclide Half Life", FUNCDCM_NONE ),
875 ENTRY( 0x0018, 0x1076, "DS", "Radionuclide Positron Fraction", FUNCDCM_NONE ),
876 ENTRY( 0x0018, 0x1077, "DS", "Radiopharmaceutical Specific Activity", FUNCDCM_NONE ),
877 ENTRY( 0x0018, 0x1080, "CS", "Beat Rejection Flag", FUNCDCM_NONE ),
878 ENTRY( 0x0018, 0x1081, "IS", "Low R-R Value", FUNCDCM_NONE ),
879 ENTRY( 0x0018, 0x1082, "IS", "High R-R Value", FUNCDCM_NONE ),
880 ENTRY( 0x0018, 0x1083, "IS", "Intervals Acquired", FUNCDCM_NONE ),
881 ENTRY( 0x0018, 0x1084, "IS", "Intervals Rejected", FUNCDCM_NONE ),
882 ENTRY( 0x0018, 0x1085, "LO", "PVC Rejection", FUNCDCM_NONE ),
883 ENTRY( 0x0018, 0x1086, "IS", "Skip Beats", FUNCDCM_NONE ),
884 ENTRY( 0x0018, 0x1088, "IS", "Heart Rate", FUNCDCM_NONE ),
885 ENTRY( 0x0018, 0x1090, "IS", "Cardiac Number of Images", FUNCDCM_NONE ),
886 ENTRY( 0x0018, 0x1094, "IS", "Trigger Window", FUNCDCM_NONE ),
887 ENTRY( 0x0018, 0x1100, "DS", "Reconstruction Diameter", FUNCDCM_NONE ),
888 ENTRY( 0x0018, 0x1110, "DS", "Distance Source to Detector", FUNCDCM_NONE ),
889 ENTRY( 0x0018, 0x1111, "DS", "Distance Source to Patient", FUNCDCM_NONE ),
890 ENTRY( 0x0018, 0x1114, "DS", "Estimated Radiographic Magnification Factor", FUNCDCM_NONE ),
891 ENTRY( 0x0018, 0x1120, "DS", "Gantry/Detector Tilt", FUNCDCM_NONE ),
892 ENTRY( 0x0018, 0x1121, "DS", "Gantry/Detector Slew", FUNCDCM_NONE ),
893 ENTRY( 0x0018, 0x1130, "DS", "Table Height", FUNCDCM_NONE ),
894 ENTRY( 0x0018, 0x1131, "DS", "Table Traverse", FUNCDCM_NONE ),
895 ENTRY( 0x0018, 0x1134, "CS", "Table Motion", FUNCDCM_NONE ),
896 ENTRY( 0x0018, 0x1135, "DS", "Table Vertical Increment", FUNCDCM_NONE ),
897 ENTRY( 0x0018, 0x1136, "DS", "Table Lateral Increment", FUNCDCM_NONE ),
898 ENTRY( 0x0018, 0x1137, "DS", "Table Longitudinal Increment", FUNCDCM_NONE ),
899 ENTRY( 0x0018, 0x1138, "DS", "Table Angle", FUNCDCM_NONE ),
900 ENTRY( 0x0018, 0x113a, "CS", "Table Type", FUNCDCM_NONE ),
901 ENTRY( 0x0018, 0x1140, "CS", "Rotation Direction", FUNCDCM_NONE ),
902 ENTRY( 0x0018, 0x1141, "DS", "Angular Position", FUNCDCM_NONE ),
903 ENTRY( 0x0018, 0x1142, "DS", "Radial Position", FUNCDCM_NONE ),
904 ENTRY( 0x0018, 0x1143, "DS", "Scan Arc", FUNCDCM_NONE ),
905 ENTRY( 0x0018, 0x1144, "DS", "Angular Step", FUNCDCM_NONE ),
906 ENTRY( 0x0018, 0x1145, "DS", "Center of Rotation Offset", FUNCDCM_NONE ),
907 ENTRY( 0x0018, 0x1146, "DS", "Rotation Offset", FUNCDCM_NONE ),
908 ENTRY( 0x0018, 0x1147, "CS", "Field of View Shape", FUNCDCM_NONE ),
909 ENTRY( 0x0018, 0x1149, "IS", "Field of View Dimension(s)", FUNCDCM_NONE ),
910 ENTRY( 0x0018, 0x1150, "IS", "Exposure Time", FUNCDCM_NONE ),
911 ENTRY( 0x0018, 0x1151, "IS", "X-ray Tube Current", FUNCDCM_NONE ),
912 ENTRY( 0x0018, 0x1152, "IS", "Exposure", FUNCDCM_NONE ),
913 ENTRY( 0x0018, 0x1153, "IS", "Exposure in uAs", FUNCDCM_NONE ),
914 ENTRY( 0x0018, 0x1154, "DS", "AveragePulseWidth", FUNCDCM_NONE ),
915 ENTRY( 0x0018, 0x1155, "CS", "RadiationSetting", FUNCDCM_NONE ),
916 ENTRY( 0x0018, 0x1156, "CS", "Rectification Type", FUNCDCM_NONE ),
917 ENTRY( 0x0018, 0x115a, "CS", "RadiationMode", FUNCDCM_NONE ),
918 ENTRY( 0x0018, 0x115e, "DS", "ImageAreaDoseProduct", FUNCDCM_NONE ),
919 ENTRY( 0x0018, 0x1160, "SH", "Filter Type", FUNCDCM_NONE ),
920 ENTRY( 0x0018, 0x1161, "LO", "TypeOfFilters", FUNCDCM_NONE ),
921 ENTRY( 0x0018, 0x1162, "DS", "IntensifierSize", FUNCDCM_NONE ),
922 ENTRY( 0x0018, 0x1164, "DS", "ImagerPixelSpacing", FUNCDCM_NONE ),
923 ENTRY( 0x0018, 0x1166, "CS", "Grid", FUNCDCM_NONE ),
924 ENTRY( 0x0018, 0x1170, "IS", "Generator Power", FUNCDCM_NONE ),
925 ENTRY( 0x0018, 0x1180, "SH", "Collimator/Grid Name", FUNCDCM_NONE ),
926 ENTRY( 0x0018, 0x1181, "CS", "Collimator Type", FUNCDCM_NONE ),
927 ENTRY( 0x0018, 0x1182, "IS", "Focal Distance", FUNCDCM_NONE ),
928 ENTRY( 0x0018, 0x1183, "DS", "X Focus Center", FUNCDCM_NONE ),
929 ENTRY( 0x0018, 0x1184, "DS", "Y Focus Center", FUNCDCM_NONE ),
930 ENTRY( 0x0018, 0x1190, "DS", "Focal Spot(s)", FUNCDCM_NONE ),
931 ENTRY( 0x0018, 0x1191, "CS", "Anode Target Material", FUNCDCM_NONE ),
932 ENTRY( 0x0018, 0x11a0, "DS", "Body Part Thickness", FUNCDCM_NONE ),
933 ENTRY( 0x0018, 0x11a2, "DS", "Compression Force", FUNCDCM_NONE ),
934 ENTRY( 0x0018, 0x1200, "DA", "Date of Last Calibration", FUNCDCM_NONE ),
935 ENTRY( 0x0018, 0x1201, "TM", "Time of Last Calibration", FUNCDCM_NONE ),
936 ENTRY( 0x0018, 0x1210, "SH", "Convolution Kernel", FUNCDCM_NONE ),
937 ENTRY( 0x0018, 0x1240, "IS", "Upper/Lower Pixel Values", FUNCDCM_NONE ),
938 ENTRY( 0x0018, 0x1242, "IS", "Actual Frame Duration", FUNCDCM_NONE ),
939 ENTRY( 0x0018, 0x1243, "IS", "Count Rate", FUNCDCM_NONE ),
940 ENTRY( 0x0018, 0x1244, "US", "Preferred Playback Sequencing", FUNCDCM_NONE ),
941 ENTRY( 0x0018, 0x1250, "SH", "Receiving Coil", FUNCDCM_NONE ),
942 ENTRY( 0x0018, 0x1251, "SH", "Transmitting Coil", FUNCDCM_NONE ),
943 ENTRY( 0x0018, 0x1260, "SH", "Plate Type", FUNCDCM_NONE ),
944 ENTRY( 0x0018, 0x1261, "LO", "Phosphor Type", FUNCDCM_NONE ),
945 ENTRY( 0x0018, 0x1300, "DS", "Scan Velocity", FUNCDCM_NONE ),
946 ENTRY( 0x0018, 0x1301, "CS", "Whole Body Technique", FUNCDCM_NONE ),
947 ENTRY( 0x0018, 0x1302, "IS", "Scan Length", FUNCDCM_NONE ),
948 ENTRY( 0x0018, 0x1310, "US", "Acquisition Matrix", FUNCDCM_NONE ),
949 ENTRY( 0x0018, 0x1312, "CS", "Phase Encoding Direction", FUNCDCM_NONE ),
950 ENTRY( 0x0018, 0x1314, "DS", "Flip Angle", FUNCDCM_NONE ),
951 ENTRY( 0x0018, 0x1315, "CS", "Variable Flip Angle Flag", FUNCDCM_NONE ),
952 ENTRY( 0x0018, 0x1316, "DS", "SAR", FUNCDCM_NONE ),
953 ENTRY( 0x0018, 0x1318, "DS", "dB/dt", FUNCDCM_NONE ),
954 ENTRY( 0x0018, 0x1400, "LO", "Acquisition Device Processing Description", FUNCDCM_NONE ),
955 ENTRY( 0x0018, 0x1401, "LO", "Acquisition Device Processing Code", FUNCDCM_NONE ),
956 ENTRY( 0x0018, 0x1402, "CS", "Cassette Orientation", FUNCDCM_NONE ),
957 ENTRY( 0x0018, 0x1403, "CS", "Cassette Size", FUNCDCM_NONE ),
958 ENTRY( 0x0018, 0x1404, "US", "Exposures on Plate", FUNCDCM_NONE ),
959 ENTRY( 0x0018, 0x1405, "IS", "Relative X-ray Exposure", FUNCDCM_NONE ),
960 ENTRY( 0x0018, 0x1450, "DS", "Column Angulation", FUNCDCM_NONE ),
961 ENTRY( 0x0018, 0x1460, "DS", "Tomo Layer Height", FUNCDCM_NONE ),
962 ENTRY( 0x0018, 0x1470, "DS", "Tomo Angle", FUNCDCM_NONE ),
963 ENTRY( 0x0018, 0x1480, "DS", "Tomo Time", FUNCDCM_NONE ),
964 ENTRY( 0x0018, 0x1490, "CS", "Tomo Type", FUNCDCM_NONE ),
965 ENTRY( 0x0018, 0x1491, "CS", "Tomo Class", FUNCDCM_NONE ),
966 ENTRY( 0x0018, 0x1495, "IS", "Number of Tomosynthesis Source Images", FUNCDCM_NONE ),
967 ENTRY( 0x0018, 0x1500, "CS", "PositionerMotion", FUNCDCM_NONE ),
968 ENTRY( 0x0018, 0x1508, "CS", "Positioner Type", FUNCDCM_NONE ),
969 ENTRY( 0x0018, 0x1510, "DS", "PositionerPrimaryAngle", FUNCDCM_NONE ),
970 ENTRY( 0x0018, 0x1511, "DS", "PositionerSecondaryAngle", FUNCDCM_NONE ),
971 ENTRY( 0x0018, 0x1520, "DS", "PositionerPrimaryAngleIncrement", FUNCDCM_NONE ),
972 ENTRY( 0x0018, 0x1521, "DS", "PositionerSecondaryAngleIncrement", FUNCDCM_NONE ),
973 ENTRY( 0x0018, 0x1530, "DS", "DetectorPrimaryAngle", FUNCDCM_NONE ),
974 ENTRY( 0x0018, 0x1531, "DS", "DetectorSecondaryAngle", FUNCDCM_NONE ),
975 ENTRY( 0x0018, 0x1600, "CS", "Shutter Shape", FUNCDCM_NONE ),
976 ENTRY( 0x0018, 0x1602, "IS", "Shutter Left Vertical Edge", FUNCDCM_NONE ),
977 ENTRY( 0x0018, 0x1604, "IS", "Shutter Right Vertical Edge", FUNCDCM_NONE ),
978 ENTRY( 0x0018, 0x1606, "IS", "Shutter Upper Horizontal Edge", FUNCDCM_NONE ),
979 ENTRY( 0x0018, 0x1608, "IS", "Shutter Lower Horizonta lEdge", FUNCDCM_NONE ),
980 ENTRY( 0x0018, 0x1610, "IS", "Center of Circular Shutter", FUNCDCM_NONE ),
981 ENTRY( 0x0018, 0x1612, "IS", "Radius of Circular Shutter", FUNCDCM_NONE ),
982 ENTRY( 0x0018, 0x1620, "IS", "Vertices of Polygonal Shutter", FUNCDCM_NONE ),
983 ENTRY( 0x0018, 0x1622, "US", "Shutter Presentation Value", FUNCDCM_NONE ),
984 ENTRY( 0x0018, 0x1623, "US", "Shutter Overlay Group", FUNCDCM_NONE ),
985 ENTRY( 0x0018, 0x1700, "CS", "Collimator Shape", FUNCDCM_NONE ),
986 ENTRY( 0x0018, 0x1702, "IS", "Collimator Left Vertical Edge", FUNCDCM_NONE ),
987 ENTRY( 0x0018, 0x1704, "IS", "Collimator Right Vertical Edge", FUNCDCM_NONE ),
988 ENTRY( 0x0018, 0x1706, "IS", "Collimator Upper Horizontal Edge", FUNCDCM_NONE ),
989 ENTRY( 0x0018, 0x1708, "IS", "Collimator Lower Horizontal Edge", FUNCDCM_NONE ),
990 ENTRY( 0x0018, 0x1710, "IS", "Center of Circular Collimator", FUNCDCM_NONE ),
991 ENTRY( 0x0018, 0x1712, "IS", "Radius of Circular Collimator", FUNCDCM_NONE ),
992 ENTRY( 0x0018, 0x1720, "IS", "Vertices of Polygonal Collimator", FUNCDCM_NONE ),
993 ENTRY( 0x0018, 0x1800, "CS", "Acquisition Time Synchronized", FUNCDCM_NONE ),
994 ENTRY( 0x0018, 0x1801, "SH", "Time Source", FUNCDCM_NONE ),
995 ENTRY( 0x0018, 0x1802, "CS", "Time Distribution Protocol", FUNCDCM_NONE ),
996 ENTRY( 0x0018, 0x4000, "LT", "Acquisition Comments", FUNCDCM_NONE ),
997 ENTRY( 0x0018, 0x5000, "SH", "Output Power", FUNCDCM_NONE ),
998 ENTRY( 0x0018, 0x5010, "LO", "Transducer Data", FUNCDCM_NONE ),
999 ENTRY( 0x0018, 0x5012, "DS", "Focus Depth", FUNCDCM_NONE ),
1000 ENTRY( 0x0018, 0x5020, "LO", "Processing Function", FUNCDCM_NONE ),
1001 ENTRY( 0x0018, 0x5021, "LO", "Postprocessing Function", FUNCDCM_NONE ),
1002 ENTRY( 0x0018, 0x5022, "DS", "Mechanical Index", FUNCDCM_NONE ),
1003 ENTRY( 0x0018, 0x5024, "DS", "Thermal Index", FUNCDCM_NONE ),
1004 ENTRY( 0x0018, 0x5026, "DS", "Cranial Thermal Index", FUNCDCM_NONE ),
1005 ENTRY( 0x0018, 0x5027, "DS", "Soft Tissue Thermal Index", FUNCDCM_NONE ),
1006 ENTRY( 0x0018, 0x5028, "DS", "Soft Tissue-Focus Thermal Index", FUNCDCM_NONE ),
1007 ENTRY( 0x0018, 0x5029, "DS", "Soft Tissue-Surface Thermal Index", FUNCDCM_NONE ),
1008 ENTRY( 0x0018, 0x5030, "DS", "Dynamic Range", FUNCDCM_NONE ),
1009 ENTRY( 0x0018, 0x5040, "DS", "Total Gain", FUNCDCM_NONE ),
1010 ENTRY( 0x0018, 0x5050, "IS", "Depth of Scan Field", FUNCDCM_NONE ),
1011 ENTRY( 0x0018, 0x5100, "CS", "Patient Position", FUNCDCM_NONE ),
1012 ENTRY( 0x0018, 0x5101, "CS", "View Position", FUNCDCM_NONE ),
1013 ENTRY( 0x0018, 0x5104, "SQ", "Projection Eponymous Name Code Sequence", FUNCDCM_NONE ),
1014 ENTRY( 0x0018, 0x5210, "DS", "Image Transformation Matrix", FUNCDCM_NONE ),
1015 ENTRY( 0x0018, 0x5212, "DS", "Image Translation Vector", FUNCDCM_NONE ),
1016 ENTRY( 0x0018, 0x6000, "DS", "Sensitivity", FUNCDCM_NONE ),
1017 ENTRY( 0x0018, 0x6011, "IS", "Sequence of Ultrasound Regions", FUNCDCM_NONE ),
1018 ENTRY( 0x0018, 0x6012, "US", "Region Spatial Format", FUNCDCM_NONE ),
1019 ENTRY( 0x0018, 0x6014, "US", "Region Data Type", FUNCDCM_NONE ),
1020 ENTRY( 0x0018, 0x6016, "UL", "Region Flags", FUNCDCM_NONE ),
1021 ENTRY( 0x0018, 0x6018, "UL", "Region Location Min X0", FUNCDCM_NONE ),
1022 ENTRY( 0x0018, 0x601a, "UL", "Region Location Min Y0", FUNCDCM_NONE ),
1023 ENTRY( 0x0018, 0x601c, "UL", "Region Location Max X1", FUNCDCM_NONE ),
1024 ENTRY( 0x0018, 0x601e, "UL", "Region Location Max Y1", FUNCDCM_NONE ),
1025 ENTRY( 0x0018, 0x6020, "SL", "Reference Pixel X0", FUNCDCM_NONE ),
1026 ENTRY( 0x0018, 0x6022, "SL", "Reference Pixel Y0", FUNCDCM_NONE ),
1027 ENTRY( 0x0018, 0x6024, "US", "Physical Units X Direction", FUNCDCM_NONE ),
1028 ENTRY( 0x0018, 0x6026, "US", "Physical Units Y Direction", FUNCDCM_NONE ),
1029 ENTRY( 0x0018, 0x6028, "FD", "Reference Pixel Physical Value X", FUNCDCM_NONE ),
1030 ENTRY( 0x0018, 0x602a, "US", "Reference Pixel Physical Value Y", FUNCDCM_NONE ),
1031 ENTRY( 0x0018, 0x602c, "US", "Physical Delta X", FUNCDCM_NONE ),
1032 ENTRY( 0x0018, 0x602e, "US", "Physical Delta Y", FUNCDCM_NONE ),
1033 ENTRY( 0x0018, 0x6030, "UL", "Transducer Frequency", FUNCDCM_NONE ),
1034 ENTRY( 0x0018, 0x6031, "CS", "Transducer Type", FUNCDCM_NONE ),
1035 ENTRY( 0x0018, 0x6032, "UL", "Pulse Repetition Frequency", FUNCDCM_NONE ),
1036 ENTRY( 0x0018, 0x6034, "FD", "Doppler Correction Angle", FUNCDCM_NONE ),
1037 ENTRY( 0x0018, 0x6036, "FD", "Steering Angle", FUNCDCM_NONE ),
1038 ENTRY( 0x0018, 0x6038, "UL", "Doppler Sample Volume X Position", FUNCDCM_NONE ),
1039 ENTRY( 0x0018, 0x603a, "UL", "Doppler Sample Volume Y Position", FUNCDCM_NONE ),
1040 ENTRY( 0x0018, 0x603c, "UL", "TM-Line Position X0", FUNCDCM_NONE ),
1041 ENTRY( 0x0018, 0x603e, "UL", "TM-Line Position Y0", FUNCDCM_NONE ),
1042 ENTRY( 0x0018, 0x6040, "UL", "TM-Line Position X1", FUNCDCM_NONE ),
1043 ENTRY( 0x0018, 0x6042, "UL", "TM-Line Position Y1", FUNCDCM_NONE ),
1044 ENTRY( 0x0018, 0x6044, "US", "Pixel Component Organization", FUNCDCM_NONE ),
1045 ENTRY( 0x0018, 0x6046, "UL", "Pixel Component Mask", FUNCDCM_NONE ),
1046 ENTRY( 0x0018, 0x6048, "UL", "Pixel Component Range Start", FUNCDCM_NONE ),
1047 ENTRY( 0x0018, 0x604a, "UL", "Pixel Component Range Stop", FUNCDCM_NONE ),
1048 ENTRY( 0x0018, 0x604c, "US", "Pixel Component Physical Units", FUNCDCM_NONE ),
1049 ENTRY( 0x0018, 0x604e, "US", "Pixel Component Data Type", FUNCDCM_NONE ),
1050 ENTRY( 0x0018, 0x6050, "UL", "Number of Table Break Points", FUNCDCM_NONE ),
1051 ENTRY( 0x0018, 0x6052, "UL", "Table of X Break Points", FUNCDCM_NONE ),
1052 ENTRY( 0x0018, 0x6054, "FD", "Table of Y Break Points", FUNCDCM_NONE ),
1053 ENTRY( 0x0018, 0x6056, "UL", "Number of Table Entries", FUNCDCM_NONE ),
1054 ENTRY( 0x0018, 0x6058, "UL", "Table of Pixel Values", FUNCDCM_NONE ),
1055 ENTRY( 0x0018, 0x605a, "FL", "Table of Parameter Values", FUNCDCM_NONE ),
1056 ENTRY( 0x0018, 0x7000, "CS", "Detector Conditions Nominal Flag", FUNCDCM_NONE ),
1057 ENTRY( 0x0018, 0x7001, "DS", "Detector Temperature", FUNCDCM_NONE ),
1058 ENTRY( 0x0018, 0x7004, "CS", "Detector Type", FUNCDCM_NONE ),
1059 ENTRY( 0x0018, 0x7005, "CS", "Detector Configuration", FUNCDCM_NONE ),
1060 ENTRY( 0x0018, 0x7006, "LT", "Detector Description", FUNCDCM_NONE ),
1061 ENTRY( 0x0018, 0x7008, "LT", "Detector Mode", FUNCDCM_NONE ),
1062 ENTRY( 0x0018, 0x700a, "SH", "Detector ID", FUNCDCM_NONE ),
1063 ENTRY( 0x0018, 0x700c, "DA", "Date of Last Detector Calibration ", FUNCDCM_NONE ),
1064 ENTRY( 0x0018, 0x700e, "TM", "Time of Last Detector Calibration", FUNCDCM_NONE ),
1065 ENTRY( 0x0018, 0x7010, "IS", "Exposures on Detector Since Last Calibration", FUNCDCM_NONE ),
1066 ENTRY( 0x0018, 0x7011, "IS", "Exposures on Detector Since Manufactured", FUNCDCM_NONE ),
1067 ENTRY( 0x0018, 0x7012, "DS", "Detector Time Since Last Exposure", FUNCDCM_NONE ),
1068 ENTRY( 0x0018, 0x7014, "DS", "Detector Active Time", FUNCDCM_NONE ),
1069 ENTRY( 0x0018, 0x7016, "DS", "Detector Activation Offset From Exposure", FUNCDCM_NONE ),
1070 ENTRY( 0x0018, 0x701a, "DS", "Detector Binning", FUNCDCM_NONE ),
1071 ENTRY( 0x0018, 0x7020, "DS", "Detector Element Physical Size", FUNCDCM_NONE ),
1072 ENTRY( 0x0018, 0x7022, "DS", "Detector Element Spacing", FUNCDCM_NONE ),
1073 ENTRY( 0x0018, 0x7024, "CS", "Detector Active Shape", FUNCDCM_NONE ),
1074 ENTRY( 0x0018, 0x7026, "DS", "Detector Active Dimensions", FUNCDCM_NONE ),
1075 ENTRY( 0x0018, 0x7028, "DS", "Detector Active Origin", FUNCDCM_NONE ),
1076 ENTRY( 0x0018, 0x7030, "DS", "Field of View Origin", FUNCDCM_NONE ),
1077 ENTRY( 0x0018, 0x7032, "DS", "Field of View Rotation", FUNCDCM_NONE ),
1078 ENTRY( 0x0018, 0x7034, "CS", "Field of View Horizontal Flip", FUNCDCM_NONE ),
1079 ENTRY( 0x0018, 0x7040, "LT", "Grid Absorbing Material", FUNCDCM_NONE ),
1080 ENTRY( 0x0018, 0x7041, "LT", "Grid Spacing Material", FUNCDCM_NONE ),
1081 ENTRY( 0x0018, 0x7042, "DS", "Grid Thickness", FUNCDCM_NONE ),
1082 ENTRY( 0x0018, 0x7044, "DS", "Grid Pitch", FUNCDCM_NONE ),
1083 ENTRY( 0x0018, 0x7046, "IS", "Grid Aspect Ratio", FUNCDCM_NONE ),
1084 ENTRY( 0x0018, 0x7048, "DS", "Grid Period", FUNCDCM_NONE ),
1085 ENTRY( 0x0018, 0x704c, "DS", "Grid Focal Distance", FUNCDCM_NONE ),
1086 ENTRY( 0x0018, 0x7050, "LT", "Filter Material", FUNCDCM_NONE ),
1087 ENTRY( 0x0018, 0x7052, "DS", "Filter Thickness Minimum", FUNCDCM_NONE ),
1088 ENTRY( 0x0018, 0x7054, "DS", "Filter Thickness Maximum", FUNCDCM_NONE ),
1089 ENTRY( 0x0018, 0x7060, "CS", "Exposure Control Mode", FUNCDCM_NONE ),
1090 ENTRY( 0x0018, 0x7062, "LT", "Exposure Control Mode Description", FUNCDCM_NONE ),
1091 ENTRY( 0x0018, 0x7064, "CS", "Exposure Status", FUNCDCM_NONE ),
1092 ENTRY( 0x0018, 0x7065, "DS", "Phototimer Setting", FUNCDCM_NONE ),
1093 ENTRY( 0x0019, 0x0000, "xs", "?", FUNCDCM_NONE ),
1094 ENTRY( 0x0019, 0x0001, "xs", "?", FUNCDCM_NONE ),
1095 ENTRY( 0x0019, 0x0002, "xs", "?", FUNCDCM_NONE ),
1096 ENTRY( 0x0019, 0x0003, "xs", "?", FUNCDCM_NONE ),
1097 ENTRY( 0x0019, 0x0004, "xs", "?", FUNCDCM_NONE ),
1098 ENTRY( 0x0019, 0x0005, "xs", "?", FUNCDCM_NONE ),
1099 ENTRY( 0x0019, 0x0006, "xs", "?", FUNCDCM_NONE ),
1100 ENTRY( 0x0019, 0x0007, "xs", "?", FUNCDCM_NONE ),
1101 ENTRY( 0x0019, 0x0008, "xs", "?", FUNCDCM_NONE ),
1102 ENTRY( 0x0019, 0x0009, "xs", "?", FUNCDCM_NONE ),
1103 ENTRY( 0x0019, 0x000a, "xs", "?", FUNCDCM_NONE ),
1104 ENTRY( 0x0019, 0x000b, "DS", "?", FUNCDCM_NONE ),
1105 ENTRY( 0x0019, 0x000c, "US", "?", FUNCDCM_NONE ),
1106 ENTRY( 0x0019, 0x000d, "TM", "Time", FUNCDCM_NONE ),
1107 ENTRY( 0x0019, 0x000e, "xs", "?", FUNCDCM_NONE ),
1108 ENTRY( 0x0019, 0x000f, "DS", "Horizontal Frame Of Reference", FUNCDCM_NONE ),
1109 ENTRY( 0x0019, 0x0010, "xs", "?", FUNCDCM_NONE ),
1110 ENTRY( 0x0019, 0x0011, "xs", "?", FUNCDCM_NONE ),
1111 ENTRY( 0x0019, 0x0012, "xs", "?", FUNCDCM_NONE ),
1112 ENTRY( 0x0019, 0x0013, "xs", "?", FUNCDCM_NONE ),
1113 ENTRY( 0x0019, 0x0014, "xs", "?", FUNCDCM_NONE ),
1114 ENTRY( 0x0019, 0x0015, "xs", "?", FUNCDCM_NONE ),
1115 ENTRY( 0x0019, 0x0016, "xs", "?", FUNCDCM_NONE ),
1116 ENTRY( 0x0019, 0x0017, "xs", "?", FUNCDCM_NONE ),
1117 ENTRY( 0x0019, 0x0018, "xs", "?", FUNCDCM_NONE ),
1118 ENTRY( 0x0019, 0x0019, "xs", "?", FUNCDCM_NONE ),
1119 ENTRY( 0x0019, 0x001a, "xs", "?", FUNCDCM_NONE ),
1120 ENTRY( 0x0019, 0x001b, "xs", "?", FUNCDCM_NONE ),
1121 ENTRY( 0x0019, 0x001c, "CS", "Dose", FUNCDCM_NONE ),
1122 ENTRY( 0x0019, 0x001d, "IS", "Side Mark", FUNCDCM_NONE ),
1123 ENTRY( 0x0019, 0x001e, "xs", "?", FUNCDCM_NONE ),
1124 ENTRY( 0x0019, 0x001f, "DS", "Exposure Duration", FUNCDCM_NONE ),
1125 ENTRY( 0x0019, 0x0020, "xs", "?", FUNCDCM_NONE ),
1126 ENTRY( 0x0019, 0x0021, "xs", "?", FUNCDCM_NONE ),
1127 ENTRY( 0x0019, 0x0022, "xs", "?", FUNCDCM_NONE ),
1128 ENTRY( 0x0019, 0x0023, "xs", "?", FUNCDCM_NONE ),
1129 ENTRY( 0x0019, 0x0024, "xs", "?", FUNCDCM_NONE ),
1130 ENTRY( 0x0019, 0x0025, "xs", "?", FUNCDCM_NONE ),
1131 ENTRY( 0x0019, 0x0026, "xs", "?", FUNCDCM_NONE ),
1132 ENTRY( 0x0019, 0x0027, "xs", "?", FUNCDCM_NONE ),
1133 ENTRY( 0x0019, 0x0028, "xs", "?", FUNCDCM_NONE ),
1134 ENTRY( 0x0019, 0x0029, "IS", "?", FUNCDCM_NONE ),
1135 ENTRY( 0x0019, 0x002a, "xs", "?", FUNCDCM_NONE ),
1136 ENTRY( 0x0019, 0x002b, "DS", "Xray Off Position", FUNCDCM_NONE ),
1137 ENTRY( 0x0019, 0x002c, "xs", "?", FUNCDCM_NONE ),
1138 ENTRY( 0x0019, 0x002d, "US", "?", FUNCDCM_NONE ),
1139 ENTRY( 0x0019, 0x002e, "xs", "?", FUNCDCM_NONE ),
1140 ENTRY( 0x0019, 0x002f, "DS", "Trigger Frequency", FUNCDCM_NONE ),
1141 ENTRY( 0x0019, 0x0030, "xs", "?", FUNCDCM_NONE ),
1142 ENTRY( 0x0019, 0x0031, "xs", "?", FUNCDCM_NONE ),
1143 ENTRY( 0x0019, 0x0032, "xs", "?", FUNCDCM_NONE ),
1144 ENTRY( 0x0019, 0x0033, "UN", "ECG 2 Offset 2", FUNCDCM_NONE ),
1145 ENTRY( 0x0019, 0x0034, "US", "?", FUNCDCM_NONE ),
1146 ENTRY( 0x0019, 0x0036, "US", "?", FUNCDCM_NONE ),
1147 ENTRY( 0x0019, 0x0038, "US", "?", FUNCDCM_NONE ),
1148 ENTRY( 0x0019, 0x0039, "xs", "?", FUNCDCM_NONE ),
1149 ENTRY( 0x0019, 0x003a, "xs", "?", FUNCDCM_NONE ),
1150 ENTRY( 0x0019, 0x003b, "LT", "?", FUNCDCM_NONE ),
1151 ENTRY( 0x0019, 0x003c, "xs", "?", FUNCDCM_NONE ),
1152 ENTRY( 0x0019, 0x003e, "xs", "?", FUNCDCM_NONE ),
1153 ENTRY( 0x0019, 0x003f, "UN", "?", FUNCDCM_NONE ),
1154 ENTRY( 0x0019, 0x0040, "xs", "?", FUNCDCM_NONE ),
1155 ENTRY( 0x0019, 0x0041, "xs", "?", FUNCDCM_NONE ),
1156 ENTRY( 0x0019, 0x0042, "xs", "?", FUNCDCM_NONE ),
1157 ENTRY( 0x0019, 0x0043, "xs", "?", FUNCDCM_NONE ),
1158 ENTRY( 0x0019, 0x0044, "xs", "?", FUNCDCM_NONE ),
1159 ENTRY( 0x0019, 0x0045, "xs", "?", FUNCDCM_NONE ),
1160 ENTRY( 0x0019, 0x0046, "xs", "?", FUNCDCM_NONE ),
1161 ENTRY( 0x0019, 0x0047, "xs", "?", FUNCDCM_NONE ),
1162 ENTRY( 0x0019, 0x0048, "xs", "?", FUNCDCM_NONE ),
1163 ENTRY( 0x0019, 0x0049, "US", "?", FUNCDCM_NONE ),
1164 ENTRY( 0x0019, 0x004a, "xs", "?", FUNCDCM_NONE ),
1165 ENTRY( 0x0019, 0x004b, "SL", "Data Size For Scan Data", FUNCDCM_NONE ),
1166 ENTRY( 0x0019, 0x004c, "US", "?", FUNCDCM_NONE ),
1167 ENTRY( 0x0019, 0x004e, "US", "?", FUNCDCM_NONE ),
1168 ENTRY( 0x0019, 0x0050, "xs", "?", FUNCDCM_NONE ),
1169 ENTRY( 0x0019, 0x0051, "xs", "?", FUNCDCM_NONE ),
1170 ENTRY( 0x0019, 0x0052, "xs", "?", FUNCDCM_NONE ),
1171 ENTRY( 0x0019, 0x0053, "LT", "Barcode", FUNCDCM_NONE ),
1172 ENTRY( 0x0019, 0x0054, "xs", "?", FUNCDCM_NONE ),
1173 ENTRY( 0x0019, 0x0055, "DS", "Receiver Reference Gain", FUNCDCM_NONE ),
1174 ENTRY( 0x0019, 0x0056, "xs", "?", FUNCDCM_NONE ),
1175 ENTRY( 0x0019, 0x0057, "SS", "CT Water Number", FUNCDCM_NONE ),
1176 ENTRY( 0x0019, 0x0058, "xs", "?", FUNCDCM_NONE ),
1177 ENTRY( 0x0019, 0x005a, "xs", "?", FUNCDCM_NONE ),
1178 ENTRY( 0x0019, 0x005c, "xs", "?", FUNCDCM_NONE ),
1179 ENTRY( 0x0019, 0x005d, "US", "?", FUNCDCM_NONE ),
1180 ENTRY( 0x0019, 0x005e, "xs", "?", FUNCDCM_NONE ),
1181 ENTRY( 0x0019, 0x005f, "SL", "Increment Between Channels", FUNCDCM_NONE ),
1182 ENTRY( 0x0019, 0x0060, "xs", "?", FUNCDCM_NONE ),
1183 ENTRY( 0x0019, 0x0061, "xs", "?", FUNCDCM_NONE ),
1184 ENTRY( 0x0019, 0x0062, "xs", "?", FUNCDCM_NONE ),
1185 ENTRY( 0x0019, 0x0063, "xs", "?", FUNCDCM_NONE ),
1186 ENTRY( 0x0019, 0x0064, "xs", "?", FUNCDCM_NONE ),
1187 ENTRY( 0x0019, 0x0065, "xs", "?", FUNCDCM_NONE ),
1188 ENTRY( 0x0019, 0x0066, "xs", "?", FUNCDCM_NONE ),
1189 ENTRY( 0x0019, 0x0067, "xs", "?", FUNCDCM_NONE ),
1190 ENTRY( 0x0019, 0x0068, "xs", "?", FUNCDCM_NONE ),
1191 ENTRY( 0x0019, 0x0069, "UL", "Convolution Mode", FUNCDCM_NONE ),
1192 ENTRY( 0x0019, 0x006a, "xs", "?", FUNCDCM_NONE ),
1193 ENTRY( 0x0019, 0x006b, "SS", "Field Of View In Detector Cells", FUNCDCM_NONE ),
1194 ENTRY( 0x0019, 0x006c, "US", "?", FUNCDCM_NONE ),
1195 ENTRY( 0x0019, 0x006e, "US", "?", FUNCDCM_NONE ),
1196 ENTRY( 0x0019, 0x0070, "xs", "?", FUNCDCM_NONE ),
1197 ENTRY( 0x0019, 0x0071, "xs", "?", FUNCDCM_NONE ),
1198 ENTRY( 0x0019, 0x0072, "xs", "?", FUNCDCM_NONE ),
1199 ENTRY( 0x0019, 0x0073, "xs", "?", FUNCDCM_NONE ),
1200 ENTRY( 0x0019, 0x0074, "xs", "?", FUNCDCM_NONE ),
1201 ENTRY( 0x0019, 0x0075, "xs", "?", FUNCDCM_NONE ),
1202 ENTRY( 0x0019, 0x0076, "xs", "?", FUNCDCM_NONE ),
1203 ENTRY( 0x0019, 0x0077, "US", "?", FUNCDCM_NONE ),
1204 ENTRY( 0x0019, 0x0078, "US", "?", FUNCDCM_NONE ),
1205 ENTRY( 0x0019, 0x007a, "US", "?", FUNCDCM_NONE ),
1206 ENTRY( 0x0019, 0x007c, "US", "?", FUNCDCM_NONE ),
1207 ENTRY( 0x0019, 0x007d, "DS", "Second Echo", FUNCDCM_NONE ),
1208 ENTRY( 0x0019, 0x007e, "xs", "?", FUNCDCM_NONE ),
1209 ENTRY( 0x0019, 0x007f, "DS", "Table Delta", FUNCDCM_NONE ),
1210 ENTRY( 0x0019, 0x0080, "xs", "?", FUNCDCM_NONE ),
1211 ENTRY( 0x0019, 0x0081, "xs", "?", FUNCDCM_NONE ),
1212 ENTRY( 0x0019, 0x0082, "xs", "?", FUNCDCM_NONE ),
1213 ENTRY( 0x0019, 0x0083, "xs", "?", FUNCDCM_NONE ),
1214 ENTRY( 0x0019, 0x0084, "xs", "?", FUNCDCM_NONE ),
1215 ENTRY( 0x0019, 0x0085, "xs", "?", FUNCDCM_NONE ),
1216 ENTRY( 0x0019, 0x0086, "xs", "?", FUNCDCM_NONE ),
1217 ENTRY( 0x0019, 0x0087, "xs", "?", FUNCDCM_NONE ),
1218 ENTRY( 0x0019, 0x0088, "xs", "?", FUNCDCM_NONE ),
1219 ENTRY( 0x0019, 0x008a, "xs", "?", FUNCDCM_NONE ),
1220 ENTRY( 0x0019, 0x008b, "SS", "Actual Receive Gain Digital", FUNCDCM_NONE ),
1221 ENTRY( 0x0019, 0x008c, "US", "?", FUNCDCM_NONE ),
1222 ENTRY( 0x0019, 0x008d, "DS", "Delay After Trigger", FUNCDCM_NONE ),
1223 ENTRY( 0x0019, 0x008e, "US", "?", FUNCDCM_NONE ),
1224 ENTRY( 0x0019, 0x008f, "SS", "Swap Phase Frequency", FUNCDCM_NONE ),
1225 ENTRY( 0x0019, 0x0090, "xs", "?", FUNCDCM_NONE ),
1226 ENTRY( 0x0019, 0x0091, "xs", "?", FUNCDCM_NONE ),
1227 ENTRY( 0x0019, 0x0092, "xs", "?", FUNCDCM_NONE ),
1228 ENTRY( 0x0019, 0x0093, "xs", "?", FUNCDCM_NONE ),
1229 ENTRY( 0x0019, 0x0094, "xs", "?", FUNCDCM_NONE ),
1230 ENTRY( 0x0019, 0x0095, "SS", "Analog Receiver Gain", FUNCDCM_NONE ),
1231 ENTRY( 0x0019, 0x0096, "xs", "?", FUNCDCM_NONE ),
1232 ENTRY( 0x0019, 0x0097, "xs", "?", FUNCDCM_NONE ),
1233 ENTRY( 0x0019, 0x0098, "xs", "?", FUNCDCM_NONE ),
1234 ENTRY( 0x0019, 0x0099, "US", "?", FUNCDCM_NONE ),
1235 ENTRY( 0x0019, 0x009a, "US", "?", FUNCDCM_NONE ),
1236 ENTRY( 0x0019, 0x009b, "SS", "Pulse Sequence Mode", FUNCDCM_NONE ),
1237 ENTRY( 0x0019, 0x009c, "xs", "?", FUNCDCM_NONE ),
1238 ENTRY( 0x0019, 0x009d, "DT", "Pulse Sequence Date", FUNCDCM_NONE ),
1239 ENTRY( 0x0019, 0x009e, "xs", "?", FUNCDCM_NONE ),
1240 ENTRY( 0x0019, 0x009f, "xs", "?", FUNCDCM_NONE ),
1241 ENTRY( 0x0019, 0x00a0, "xs", "?", FUNCDCM_NONE ),
1242 ENTRY( 0x0019, 0x00a1, "xs", "?", FUNCDCM_NONE ),
1243 ENTRY( 0x0019, 0x00a2, "xs", "?", FUNCDCM_NONE ),
1244 ENTRY( 0x0019, 0x00a3, "xs", "?", FUNCDCM_NONE ),
1245 ENTRY( 0x0019, 0x00a4, "xs", "?", FUNCDCM_NONE ),
1246 ENTRY( 0x0019, 0x00a5, "xs", "?", FUNCDCM_NONE ),
1247 ENTRY( 0x0019, 0x00a6, "xs", "?", FUNCDCM_NONE ),
1248 ENTRY( 0x0019, 0x00a7, "xs", "?", FUNCDCM_NONE ),
1249 ENTRY( 0x0019, 0x00a8, "xs", "?", FUNCDCM_NONE ),
1250 ENTRY( 0x0019, 0x00a9, "xs", "?", FUNCDCM_NONE ),
1251 ENTRY( 0x0019, 0x00aa, "xs", "?", FUNCDCM_NONE ),
1252 ENTRY( 0x0019, 0x00ab, "xs", "?", FUNCDCM_NONE ),
1253 ENTRY( 0x0019, 0x00ac, "xs", "?", FUNCDCM_NONE ),
1254 ENTRY( 0x0019, 0x00ad, "xs", "?", FUNCDCM_NONE ),
1255 ENTRY( 0x0019, 0x00ae, "xs", "?", FUNCDCM_NONE ),
1256 ENTRY( 0x0019, 0x00af, "xs", "?", FUNCDCM_NONE ),
1257 ENTRY( 0x0019, 0x00b0, "xs", "?", FUNCDCM_NONE ),
1258 ENTRY( 0x0019, 0x00b1, "xs", "?", FUNCDCM_NONE ),
1259 ENTRY( 0x0019, 0x00b2, "xs", "?", FUNCDCM_NONE ),
1260 ENTRY( 0x0019, 0x00b3, "xs", "?", FUNCDCM_NONE ),
1261 ENTRY( 0x0019, 0x00b4, "xs", "?", FUNCDCM_NONE ),
1262 ENTRY( 0x0019, 0x00b5, "xs", "?", FUNCDCM_NONE ),
1263 ENTRY( 0x0019, 0x00b6, "DS", "User Data", FUNCDCM_NONE ),
1264 ENTRY( 0x0019, 0x00b7, "DS", "User Data", FUNCDCM_NONE ),
1265 ENTRY( 0x0019, 0x00b8, "DS", "User Data", FUNCDCM_NONE ),
1266 ENTRY( 0x0019, 0x00b9, "DS", "User Data", FUNCDCM_NONE ),
1267 ENTRY( 0x0019, 0x00ba, "DS", "User Data", FUNCDCM_NONE ),
1268 ENTRY( 0x0019, 0x00bb, "DS", "User Data", FUNCDCM_NONE ),
1269 ENTRY( 0x0019, 0x00bc, "DS", "User Data", FUNCDCM_NONE ),
1270 ENTRY( 0x0019, 0x00bd, "DS", "User Data", FUNCDCM_NONE ),
1271 ENTRY( 0x0019, 0x00be, "DS", "Projection Angle", FUNCDCM_NONE ),
1272 ENTRY( 0x0019, 0x00c0, "xs", "?", FUNCDCM_NONE ),
1273 ENTRY( 0x0019, 0x00c1, "xs", "?", FUNCDCM_NONE ),
1274 ENTRY( 0x0019, 0x00c2, "xs", "?", FUNCDCM_NONE ),
1275 ENTRY( 0x0019, 0x00c3, "xs", "?", FUNCDCM_NONE ),
1276 ENTRY( 0x0019, 0x00c4, "xs", "?", FUNCDCM_NONE ),
1277 ENTRY( 0x0019, 0x00c5, "xs", "?", FUNCDCM_NONE ),
1278 ENTRY( 0x0019, 0x00c6, "SS", "SAT Location H", FUNCDCM_NONE ),
1279 ENTRY( 0x0019, 0x00c7, "SS", "SAT Location F", FUNCDCM_NONE ),
1280 ENTRY( 0x0019, 0x00c8, "SS", "SAT Thickness R L", FUNCDCM_NONE ),
1281 ENTRY( 0x0019, 0x00c9, "SS", "SAT Thickness A P", FUNCDCM_NONE ),
1282 ENTRY( 0x0019, 0x00ca, "SS", "SAT Thickness H F", FUNCDCM_NONE ),
1283 ENTRY( 0x0019, 0x00cb, "xs", "?", FUNCDCM_NONE ),
1284 ENTRY( 0x0019, 0x00cc, "xs", "?", FUNCDCM_NONE ),
1285 ENTRY( 0x0019, 0x00cd, "SS", "Thickness Disclaimer", FUNCDCM_NONE ),
1286 ENTRY( 0x0019, 0x00ce, "SS", "Prescan Type", FUNCDCM_NONE ),
1287 ENTRY( 0x0019, 0x00cf, "SS", "Prescan Status", FUNCDCM_NONE ),
1288 ENTRY( 0x0019, 0x00d0, "SH", "Raw Data Type", FUNCDCM_NONE ),
1289 ENTRY( 0x0019, 0x00d1, "DS", "Flow Sensitivity", FUNCDCM_NONE ),
1290 ENTRY( 0x0019, 0x00d2, "xs", "?", FUNCDCM_NONE ),
1291 ENTRY( 0x0019, 0x00d3, "xs", "?", FUNCDCM_NONE ),
1292 ENTRY( 0x0019, 0x00d4, "xs", "?", FUNCDCM_NONE ),
1293 ENTRY( 0x0019, 0x00d5, "xs", "?", FUNCDCM_NONE ),
1294 ENTRY( 0x0019, 0x00d6, "xs", "?", FUNCDCM_NONE ),
1295 ENTRY( 0x0019, 0x00d7, "xs", "?", FUNCDCM_NONE ),
1296 ENTRY( 0x0019, 0x00d8, "xs", "?", FUNCDCM_NONE ),
1297 ENTRY( 0x0019, 0x00d9, "xs", "?", FUNCDCM_NONE ),
1298 ENTRY( 0x0019, 0x00da, "xs", "?", FUNCDCM_NONE ),
1299 ENTRY( 0x0019, 0x00db, "DS", "Back Projector Coefficient", FUNCDCM_NONE ),
1300 ENTRY( 0x0019, 0x00dc, "SS", "Primary Speed Correction Used", FUNCDCM_NONE ),
1301 ENTRY( 0x0019, 0x00dd, "SS", "Overrange Correction Used", FUNCDCM_NONE ),
1302 ENTRY( 0x0019, 0x00de, "DS", "Dynamic Z Alpha Value", FUNCDCM_NONE ),
1303 ENTRY( 0x0019, 0x00df, "DS", "User Data", FUNCDCM_NONE ),
1304 ENTRY( 0x0019, 0x00e0, "DS", "User Data", FUNCDCM_NONE ),
1305 ENTRY( 0x0019, 0x00e1, "xs", "?", FUNCDCM_NONE ),
1306 ENTRY( 0x0019, 0x00e2, "xs", "?", FUNCDCM_NONE ),
1307 ENTRY( 0x0019, 0x00e3, "xs", "?", FUNCDCM_NONE ),
1308 ENTRY( 0x0019, 0x00e4, "LT", "?", FUNCDCM_NONE ),
1309 ENTRY( 0x0019, 0x00e5, "IS", "?", FUNCDCM_NONE ),
1310 ENTRY( 0x0019, 0x00e6, "US", "?", FUNCDCM_NONE ),
1311 ENTRY( 0x0019, 0x00e8, "DS", "?", FUNCDCM_NONE ),
1312 ENTRY( 0x0019, 0x00e9, "DS", "?", FUNCDCM_NONE ),
1313 ENTRY( 0x0019, 0x00eb, "DS", "?", FUNCDCM_NONE ),
1314 ENTRY( 0x0019, 0x00ec, "US", "?", FUNCDCM_NONE ),
1315 ENTRY( 0x0019, 0x00f0, "xs", "?", FUNCDCM_NONE ),
1316 ENTRY( 0x0019, 0x00f1, "xs", "?", FUNCDCM_NONE ),
1317 ENTRY( 0x0019, 0x00f2, "xs", "?", FUNCDCM_NONE ),
1318 ENTRY( 0x0019, 0x00f3, "xs", "?", FUNCDCM_NONE ),
1319 ENTRY( 0x0019, 0x00f4, "LT", "?", FUNCDCM_NONE ),
1320 ENTRY( 0x0019, 0x00f9, "DS", "Transmission Gain", FUNCDCM_NONE ),
1321 ENTRY( 0x0019, 0x1015, "UN", "?", FUNCDCM_NONE ),
1322 ENTRY( 0x0020, 0x0000, "UL", "Relationship Group Length", FUNCDCM_NONE ),
1323 ENTRY( 0x0020, 0x000d, "UI", "Study Instance UID", FUNCDCM_NONE ),
1324 ENTRY( 0x0020, 0x000e, "UI", "Series Instance UID", FUNCDCM_NONE ),
1325 ENTRY( 0x0020, 0x0010, "SH", "Study ID", FUNCDCM_NONE ),
1326 ENTRY( 0x0020, 0x0011, "IS", "Series Number", FUNCDCM_SERIESNUMBER ),
1327 ENTRY( 0x0020, 0x0012, "IS", "Acquisition Number", FUNCDCM_NONE ),
1328 ENTRY( 0x0020, 0x0013, "IS", "Instance (formerly Image) Number", FUNCDCM_NONE ),
1329 ENTRY( 0x0020, 0x0014, "IS", "Isotope Number", FUNCDCM_NONE ),
1330 ENTRY( 0x0020, 0x0015, "IS", "Phase Number", FUNCDCM_NONE ),
1331 ENTRY( 0x0020, 0x0016, "IS", "Interval Number", FUNCDCM_NONE ),
1332 ENTRY( 0x0020, 0x0017, "IS", "Time Slot Number", FUNCDCM_NONE ),
1333 ENTRY( 0x0020, 0x0018, "IS", "Angle Number", FUNCDCM_NONE ),
1334 ENTRY( 0x0020, 0x0020, "CS", "Patient Orientation", FUNCDCM_NONE ),
1335 ENTRY( 0x0020, 0x0022, "IS", "Overlay Number", FUNCDCM_NONE ),
1336 ENTRY( 0x0020, 0x0024, "IS", "Curve Number", FUNCDCM_NONE ),
1337 ENTRY( 0x0020, 0x0026, "IS", "LUT Number", FUNCDCM_NONE ),
1338 ENTRY( 0x0020, 0x0030, "DS", "Image Position", FUNCDCM_IMAGEPOSITION ),
1339 ENTRY( 0x0020, 0x0032, "DS", "Image Position (Patient)", FUNCDCM_NONE ),
1340 ENTRY( 0x0020, 0x0035, "DS", "Image Orientation", FUNCDCM_NONE ),
1341 ENTRY( 0x0020, 0x0037, "DS", "Image Orientation (Patient)", FUNCDCM_NONE ),
1342 ENTRY( 0x0020, 0x0050, "DS", "Location", FUNCDCM_NONE ),
1343 ENTRY( 0x0020, 0x0052, "UI", "Frame of Reference UID", FUNCDCM_NONE ),
1344 ENTRY( 0x0020, 0x0060, "CS", "Laterality", FUNCDCM_NONE ),
1345 ENTRY( 0x0020, 0x0062, "CS", "Image Laterality", FUNCDCM_NONE ),
1346 ENTRY( 0x0020, 0x0070, "LT", "Image Geometry Type", FUNCDCM_NONE ),
1347 ENTRY( 0x0020, 0x0080, "LO", "Masking Image", FUNCDCM_NONE ),
1348 ENTRY( 0x0020, 0x0100, "IS", "Temporal Position Identifier", FUNCDCM_NONE ),
1349 ENTRY( 0x0020, 0x0105, "IS", "Number of Temporal Positions", FUNCDCM_NONE ),
1350 ENTRY( 0x0020, 0x0110, "DS", "Temporal Resolution", FUNCDCM_NONE ),
1351 ENTRY( 0x0020, 0x1000, "IS", "Series in Study", FUNCDCM_NONE ),
1352 ENTRY( 0x0020, 0x1001, "DS", "Acquisitions in Series", FUNCDCM_NONE ),
1353 ENTRY( 0x0020, 0x1002, "IS", "Images in Acquisition", FUNCDCM_NONE ),
1354 ENTRY( 0x0020, 0x1003, "IS", "Images in Series", FUNCDCM_NONE ),
1355 ENTRY( 0x0020, 0x1004, "IS", "Acquisitions in Study", FUNCDCM_NONE ),
1356 ENTRY( 0x0020, 0x1005, "IS", "Images in Study", FUNCDCM_NONE ),
1357 ENTRY( 0x0020, 0x1020, "LO", "Reference", FUNCDCM_NONE ),
1358 ENTRY( 0x0020, 0x1040, "LO", "Position Reference Indicator", FUNCDCM_NONE ),
1359 ENTRY( 0x0020, 0x1041, "DS", "Slice Location", FUNCDCM_SLICELOCATION ),
1360 ENTRY( 0x0020, 0x1070, "IS", "Other Study Numbers", FUNCDCM_NONE ),
1361 ENTRY( 0x0020, 0x1200, "IS", "Number of Patient Related Studies", FUNCDCM_NONE ),
1362 ENTRY( 0x0020, 0x1202, "IS", "Number of Patient Related Series", FUNCDCM_NONE ),
1363 ENTRY( 0x0020, 0x1204, "IS", "Number of Patient Related Images", FUNCDCM_NONE ),
1364 ENTRY( 0x0020, 0x1206, "IS", "Number of Study Related Series", FUNCDCM_NONE ),
1365 ENTRY( 0x0020, 0x1208, "IS", "Number of Study Related Series", FUNCDCM_NONE ),
1366 ENTRY( 0x0020, 0x3100, "LO", "Source Image IDs", FUNCDCM_NONE ),
1367 ENTRY( 0x0020, 0x3401, "LO", "Modifying Device ID", FUNCDCM_NONE ),
1368 ENTRY( 0x0020, 0x3402, "LO", "Modified Image ID", FUNCDCM_NONE ),
1369 ENTRY( 0x0020, 0x3403, "xs", "Modified Image Date", FUNCDCM_NONE ),
1370 ENTRY( 0x0020, 0x3404, "LO", "Modifying Device Manufacturer", FUNCDCM_NONE ),
1371 ENTRY( 0x0020, 0x3405, "xs", "Modified Image Time", FUNCDCM_NONE ),
1372 ENTRY( 0x0020, 0x3406, "xs", "Modified Image Description", FUNCDCM_NONE ),
1373 ENTRY( 0x0020, 0x4000, "LT", "Image Comments", FUNCDCM_NONE ),
1374 ENTRY( 0x0020, 0x5000, "AT", "Original Image Identification", FUNCDCM_NONE ),
1375 ENTRY( 0x0020, 0x5002, "LO", "Original Image Identification Nomenclature", FUNCDCM_NONE ),
1376 ENTRY( 0x0021, 0x0000, "xs", "?", FUNCDCM_NONE ),
1377 ENTRY( 0x0021, 0x0001, "xs", "?", FUNCDCM_NONE ),
1378 ENTRY( 0x0021, 0x0002, "xs", "?", FUNCDCM_NONE ),
1379 ENTRY( 0x0021, 0x0003, "xs", "?", FUNCDCM_NONE ),
1380 ENTRY( 0x0021, 0x0004, "DS", "VOI Position", FUNCDCM_NONE ),
1381 ENTRY( 0x0021, 0x0005, "xs", "?", FUNCDCM_NONE ),
1382 ENTRY( 0x0021, 0x0006, "IS", "CSI Matrix Size Original", FUNCDCM_NONE ),
1383 ENTRY( 0x0021, 0x0007, "xs", "?", FUNCDCM_NONE ),
1384 ENTRY( 0x0021, 0x0008, "DS", "Spatial Grid Shift", FUNCDCM_NONE ),
1385 ENTRY( 0x0021, 0x0009, "DS", "Signal Limits Minimum", FUNCDCM_NONE ),
1386 ENTRY( 0x0021, 0x0010, "xs", "?", FUNCDCM_NONE ),
1387 ENTRY( 0x0021, 0x0011, "xs", "?", FUNCDCM_NONE ),
1388 ENTRY( 0x0021, 0x0012, "xs", "?", FUNCDCM_NONE ),
1389 ENTRY( 0x0021, 0x0013, "xs", "?", FUNCDCM_NONE ),
1390 ENTRY( 0x0021, 0x0014, "xs", "?", FUNCDCM_NONE ),
1391 ENTRY( 0x0021, 0x0015, "xs", "?", FUNCDCM_NONE ),
1392 ENTRY( 0x0021, 0x0016, "xs", "?", FUNCDCM_NONE ),
1393 ENTRY( 0x0021, 0x0017, "DS", "EPI Operation Mode Flag", FUNCDCM_NONE ),
1394 ENTRY( 0x0021, 0x0018, "xs", "?", FUNCDCM_NONE ),
1395 ENTRY( 0x0021, 0x0019, "xs", "?", FUNCDCM_NONE ),
1396 ENTRY( 0x0021, 0x0020, "xs", "?", FUNCDCM_NONE ),
1397 ENTRY( 0x0021, 0x0021, "xs", "?", FUNCDCM_NONE ),
1398 ENTRY( 0x0021, 0x0022, "xs", "?", FUNCDCM_NONE ),
1399 ENTRY( 0x0021, 0x0024, "xs", "?", FUNCDCM_NONE ),
1400 ENTRY( 0x0021, 0x0025, "US", "?", FUNCDCM_NONE ),
1401 ENTRY( 0x0021, 0x0026, "IS", "Image Pixel Offset", FUNCDCM_NONE ),
1402 ENTRY( 0x0021, 0x0030, "xs", "?", FUNCDCM_NONE ),
1403 ENTRY( 0x0021, 0x0031, "xs", "?", FUNCDCM_NONE ),
1404 ENTRY( 0x0021, 0x0032, "xs", "?", FUNCDCM_NONE ),
1405 ENTRY( 0x0021, 0x0034, "xs", "?", FUNCDCM_NONE ),
1406 ENTRY( 0x0021, 0x0035, "SS", "Series From Which Prescribed", FUNCDCM_NONE ),
1407 ENTRY( 0x0021, 0x0036, "xs", "?", FUNCDCM_NONE ),
1408 ENTRY( 0x0021, 0x0037, "SS", "Screen Format", FUNCDCM_NONE ),
1409 ENTRY( 0x0021, 0x0039, "DS", "Slab Thickness", FUNCDCM_NONE ),
1410 ENTRY( 0x0021, 0x0040, "xs", "?", FUNCDCM_NONE ),
1411 ENTRY( 0x0021, 0x0041, "xs", "?", FUNCDCM_NONE ),
1412 ENTRY( 0x0021, 0x0042, "xs", "?", FUNCDCM_NONE ),
1413 ENTRY( 0x0021, 0x0043, "xs", "?", FUNCDCM_NONE ),
1414 ENTRY( 0x0021, 0x0044, "xs", "?", FUNCDCM_NONE ),
1415 ENTRY( 0x0021, 0x0045, "xs", "?", FUNCDCM_NONE ),
1416 ENTRY( 0x0021, 0x0046, "xs", "?", FUNCDCM_NONE ),
1417 ENTRY( 0x0021, 0x0047, "xs", "?", FUNCDCM_NONE ),
1418 ENTRY( 0x0021, 0x0048, "xs", "?", FUNCDCM_NONE ),
1419 ENTRY( 0x0021, 0x0049, "xs", "?", FUNCDCM_NONE ),
1420 ENTRY( 0x0021, 0x004a, "xs", "?", FUNCDCM_NONE ),
1421 ENTRY( 0x0021, 0x004e, "US", "?", FUNCDCM_NONE ),
1422 ENTRY( 0x0021, 0x004f, "xs", "?", FUNCDCM_NONE ),
1423 ENTRY( 0x0021, 0x0050, "xs", "?", FUNCDCM_NONE ),
1424 ENTRY( 0x0021, 0x0051, "xs", "?", FUNCDCM_NONE ),
1425 ENTRY( 0x0021, 0x0052, "xs", "?", FUNCDCM_NONE ),
1426 ENTRY( 0x0021, 0x0053, "xs", "?", FUNCDCM_NONE ),
1427 ENTRY( 0x0021, 0x0054, "xs", "?", FUNCDCM_NONE ),
1428 ENTRY( 0x0021, 0x0055, "xs", "?", FUNCDCM_NONE ),
1429 ENTRY( 0x0021, 0x0056, "xs", "?", FUNCDCM_NONE ),
1430 ENTRY( 0x0021, 0x0057, "xs", "?", FUNCDCM_NONE ),
1431 ENTRY( 0x0021, 0x0058, "xs", "?", FUNCDCM_NONE ),
1432 ENTRY( 0x0021, 0x0059, "xs", "?", FUNCDCM_NONE ),
1433 ENTRY( 0x0021, 0x005a, "SL", "Integer Slop", FUNCDCM_NONE ),
1434 ENTRY( 0x0021, 0x005b, "DS", "Float Slop", FUNCDCM_NONE ),
1435 ENTRY( 0x0021, 0x005c, "DS", "Float Slop", FUNCDCM_NONE ),
1436 ENTRY( 0x0021, 0x005d, "DS", "Float Slop", FUNCDCM_NONE ),
1437 ENTRY( 0x0021, 0x005e, "DS", "Float Slop", FUNCDCM_NONE ),
1438 ENTRY( 0x0021, 0x005f, "DS", "Float Slop", FUNCDCM_NONE ),
1439 ENTRY( 0x0021, 0x0060, "xs", "?", FUNCDCM_NONE ),
1440 ENTRY( 0x0021, 0x0061, "DS", "Image Normal", FUNCDCM_NONE ),
1441 ENTRY( 0x0021, 0x0062, "IS", "Reference Type Code", FUNCDCM_NONE ),
1442 ENTRY( 0x0021, 0x0063, "DS", "Image Distance", FUNCDCM_NONE ),
1443 ENTRY( 0x0021, 0x0065, "US", "Image Positioning History Mask", FUNCDCM_NONE ),
1444 ENTRY( 0x0021, 0x006a, "DS", "Image Row", FUNCDCM_NONE ),
1445 ENTRY( 0x0021, 0x006b, "DS", "Image Column", FUNCDCM_NONE ),
1446 ENTRY( 0x0021, 0x0070, "xs", "?", FUNCDCM_NONE ),
1447 ENTRY( 0x0021, 0x0071, "xs", "?", FUNCDCM_NONE ),
1448 ENTRY( 0x0021, 0x0072, "xs", "?", FUNCDCM_NONE ),
1449 ENTRY( 0x0021, 0x0073, "DS", "Second Repetition Time", FUNCDCM_NONE ),
1450 ENTRY( 0x0021, 0x0075, "DS", "Light Brightness", FUNCDCM_NONE ),
1451 ENTRY( 0x0021, 0x0076, "DS", "Light Contrast", FUNCDCM_NONE ),
1452 ENTRY( 0x0021, 0x007a, "IS", "Overlay Threshold", FUNCDCM_NONE ),
1453 ENTRY( 0x0021, 0x007b, "IS", "Surface Threshold", FUNCDCM_NONE ),
1454 ENTRY( 0x0021, 0x007c, "IS", "Grey Scale Threshold", FUNCDCM_NONE ),
1455 ENTRY( 0x0021, 0x0080, "xs", "?", FUNCDCM_NONE ),
1456 ENTRY( 0x0021, 0x0081, "DS", "Auto Window Level Alpha", FUNCDCM_NONE ),
1457 ENTRY( 0x0021, 0x0082, "xs", "?", FUNCDCM_NONE ),
1458 ENTRY( 0x0021, 0x0083, "DS", "Auto Window Level Window", FUNCDCM_NONE ),
1459 ENTRY( 0x0021, 0x0084, "DS", "Auto Window Level Level", FUNCDCM_NONE ),
1460 ENTRY( 0x0021, 0x0090, "xs", "?", FUNCDCM_NONE ),
1461 ENTRY( 0x0021, 0x0091, "xs", "?", FUNCDCM_NONE ),
1462 ENTRY( 0x0021, 0x0092, "xs", "?", FUNCDCM_NONE ),
1463 ENTRY( 0x0021, 0x0093, "xs", "?", FUNCDCM_NONE ),
1464 ENTRY( 0x0021, 0x0094, "DS", "EPI Change Value of X Component", FUNCDCM_NONE ),
1465 ENTRY( 0x0021, 0x0095, "DS", "EPI Change Value of Y Component", FUNCDCM_NONE ),
1466 ENTRY( 0x0021, 0x0096, "DS", "EPI Change Value of Z Component", FUNCDCM_NONE ),
1467 ENTRY( 0x0021, 0x00a0, "xs", "?", FUNCDCM_NONE ),
1468 ENTRY( 0x0021, 0x00a1, "DS", "?", FUNCDCM_NONE ),
1469 ENTRY( 0x0021, 0x00a2, "xs", "?", FUNCDCM_NONE ),
1470 ENTRY( 0x0021, 0x00a3, "LT", "?", FUNCDCM_NONE ),
1471 ENTRY( 0x0021, 0x00a4, "LT", "?", FUNCDCM_NONE ),
1472 ENTRY( 0x0021, 0x00a7, "LT", "?", FUNCDCM_NONE ),
1473 ENTRY( 0x0021, 0x00b0, "IS", "?", FUNCDCM_NONE ),
1474 ENTRY( 0x0021, 0x00c0, "IS", "?", FUNCDCM_NONE ),
1475 ENTRY( 0x0023, 0x0000, "xs", "?", FUNCDCM_NONE ),
1476 ENTRY( 0x0023, 0x0001, "SL", "Number Of Series In Study", FUNCDCM_NONE ),
1477 ENTRY( 0x0023, 0x0002, "SL", "Number Of Unarchived Series", FUNCDCM_NONE ),
1478 ENTRY( 0x0023, 0x0010, "xs", "?", FUNCDCM_NONE ),
1479 ENTRY( 0x0023, 0x0020, "xs", "?", FUNCDCM_NONE ),
1480 ENTRY( 0x0023, 0x0030, "xs", "?", FUNCDCM_NONE ),
1481 ENTRY( 0x0023, 0x0040, "xs", "?", FUNCDCM_NONE ),
1482 ENTRY( 0x0023, 0x0050, "xs", "?", FUNCDCM_NONE ),
1483 ENTRY( 0x0023, 0x0060, "xs", "?", FUNCDCM_NONE ),
1484 ENTRY( 0x0023, 0x0070, "xs", "?", FUNCDCM_NONE ),
1485 ENTRY( 0x0023, 0x0074, "SL", "Number Of Updates To Info", FUNCDCM_NONE ),
1486 ENTRY( 0x0023, 0x007d, "SS", "Indicates If Study Has Complete Info", FUNCDCM_NONE ),
1487 ENTRY( 0x0023, 0x0080, "xs", "?", FUNCDCM_NONE ),
1488 ENTRY( 0x0023, 0x0090, "xs", "?", FUNCDCM_NONE ),
1489 ENTRY( 0x0023, 0x00ff, "US", "?", FUNCDCM_NONE ),
1490 ENTRY( 0x0025, 0x0000, "UL", "Group Length", FUNCDCM_NONE ),
1491 ENTRY( 0x0025, 0x0006, "SS", "Last Pulse Sequence Used", FUNCDCM_NONE ),
1492 ENTRY( 0x0025, 0x0007, "SL", "Images In Series", FUNCDCM_NONE ),
1493 ENTRY( 0x0025, 0x0010, "SS", "Landmark Counter", FUNCDCM_NONE ),
1494 ENTRY( 0x0025, 0x0011, "SS", "Number Of Acquisitions", FUNCDCM_NONE ),
1495 ENTRY( 0x0025, 0x0014, "SL", "Indicates Number Of Updates To Info", FUNCDCM_NONE ),
1496 ENTRY( 0x0025, 0x0017, "SL", "Series Complete Flag", FUNCDCM_NONE ),
1497 ENTRY( 0x0025, 0x0018, "SL", "Number Of Images Archived", FUNCDCM_NONE ),
1498 ENTRY( 0x0025, 0x0019, "SL", "Last Image Number Used", FUNCDCM_NONE ),
1499 ENTRY( 0x0025, 0x001a, "SH", "Primary Receiver Suite And Host", FUNCDCM_NONE ),
1500 ENTRY( 0x0027, 0x0000, "US", "?", FUNCDCM_NONE ),
1501 ENTRY( 0x0027, 0x0006, "SL", "Image Archive Flag", FUNCDCM_NONE ),
1502 ENTRY( 0x0027, 0x0010, "SS", "Scout Type", FUNCDCM_NONE ),
1503 ENTRY( 0x0027, 0x0011, "UN", "?", FUNCDCM_NONE ),
1504 ENTRY( 0x0027, 0x0012, "IS", "?", FUNCDCM_NONE ),
1505 ENTRY( 0x0027, 0x0013, "IS", "?", FUNCDCM_NONE ),
1506 ENTRY( 0x0027, 0x0014, "IS", "?", FUNCDCM_NONE ),
1507 ENTRY( 0x0027, 0x0015, "IS", "?", FUNCDCM_NONE ),
1508 ENTRY( 0x0027, 0x0016, "LT", "?", FUNCDCM_NONE ),
1509 ENTRY( 0x0027, 0x001c, "SL", "Vma Mamp", FUNCDCM_NONE ),
1510 ENTRY( 0x0027, 0x001d, "SS", "Vma Phase", FUNCDCM_NONE ),
1511 ENTRY( 0x0027, 0x001e, "SL", "Vma Mod", FUNCDCM_NONE ),
1512 ENTRY( 0x0027, 0x001f, "SL", "Vma Clip", FUNCDCM_NONE ),
1513 ENTRY( 0x0027, 0x0020, "SS", "Smart Scan On Off Flag", FUNCDCM_NONE ),
1514 ENTRY( 0x0027, 0x0030, "SH", "Foreign Image Revision", FUNCDCM_NONE ),
1515 ENTRY( 0x0027, 0x0031, "SS", "Imaging Mode", FUNCDCM_NONE ),
1516 ENTRY( 0x0027, 0x0032, "SS", "Pulse Sequence", FUNCDCM_NONE ),
1517 ENTRY( 0x0027, 0x0033, "SL", "Imaging Options", FUNCDCM_NONE ),
1518 ENTRY( 0x0027, 0x0035, "SS", "Plane Type", FUNCDCM_NONE ),
1519 ENTRY( 0x0027, 0x0036, "SL", "Oblique Plane", FUNCDCM_NONE ),
1520 ENTRY( 0x0027, 0x0040, "SH", "RAS Letter Of Image Location", FUNCDCM_NONE ),
1521 ENTRY( 0x0027, 0x0041, "FL", "Image Location", FUNCDCM_NONE ),
1522 ENTRY( 0x0027, 0x0042, "FL", "Center R Coord Of Plane Image", FUNCDCM_NONE ),
1523 ENTRY( 0x0027, 0x0043, "FL", "Center A Coord Of Plane Image", FUNCDCM_NONE ),
1524 ENTRY( 0x0027, 0x0044, "FL", "Center S Coord Of Plane Image", FUNCDCM_NONE ),
1525 ENTRY( 0x0027, 0x0045, "FL", "Normal R Coord", FUNCDCM_NONE ),
1526 ENTRY( 0x0027, 0x0046, "FL", "Normal A Coord", FUNCDCM_NONE ),
1527 ENTRY( 0x0027, 0x0047, "FL", "Normal S Coord", FUNCDCM_NONE ),
1528 ENTRY( 0x0027, 0x0048, "FL", "R Coord Of Top Right Corner", FUNCDCM_NONE ),
1529 ENTRY( 0x0027, 0x0049, "FL", "A Coord Of Top Right Corner", FUNCDCM_NONE ),
1530 ENTRY( 0x0027, 0x004a, "FL", "S Coord Of Top Right Corner", FUNCDCM_NONE ),
1531 ENTRY( 0x0027, 0x004b, "FL", "R Coord Of Bottom Right Corner", FUNCDCM_NONE ),
1532 ENTRY( 0x0027, 0x004c, "FL", "A Coord Of Bottom Right Corner", FUNCDCM_NONE ),
1533 ENTRY( 0x0027, 0x004d, "FL", "S Coord Of Bottom Right Corner", FUNCDCM_NONE ),
1534 ENTRY( 0x0027, 0x0050, "FL", "Table Start Location", FUNCDCM_NONE ),
1535 ENTRY( 0x0027, 0x0051, "FL", "Table End Location", FUNCDCM_NONE ),
1536 ENTRY( 0x0027, 0x0052, "SH", "RAS Letter For Side Of Image", FUNCDCM_NONE ),
1537 ENTRY( 0x0027, 0x0053, "SH", "RAS Letter For Anterior Posterior", FUNCDCM_NONE ),
1538 ENTRY( 0x0027, 0x0054, "SH", "RAS Letter For Scout Start Loc", FUNCDCM_NONE ),
1539 ENTRY( 0x0027, 0x0055, "SH", "RAS Letter For Scout End Loc", FUNCDCM_NONE ),
1540 ENTRY( 0x0027, 0x0060, "FL", "Image Dimension X", FUNCDCM_NONE ),
1541 ENTRY( 0x0027, 0x0061, "FL", "Image Dimension Y", FUNCDCM_NONE ),
1542 ENTRY( 0x0027, 0x0062, "FL", "Number Of Excitations", FUNCDCM_NONE ),
1543 ENTRY( 0x0028, 0x0000, "UL", "Image Presentation Group Length", FUNCDCM_NONE ),
1544 ENTRY( 0x0028, 0x0002, "US", "Samples per Pixel", FUNCDCM_SAMPLESPERPIXEL ),
1545 ENTRY( 0x0028, 0x0004, "CS", "Photometric Interpretation", FUNCDCM_PHOTOMETRICINTERPRETATION ),
1546 ENTRY( 0x0028, 0x0005, "US", "Image Dimensions", FUNCDCM_NONE ),
1547 ENTRY( 0x0028, 0x0006, "US", "Planar Configuration", FUNCDCM_PLANARCONFIGURATION ),
1548 ENTRY( 0x0028, 0x0008, "IS", "Number of Frames", FUNCDCM_NUMBEROFFRAMES ),
1549 ENTRY( 0x0028, 0x0009, "AT", "Frame Increment Pointer", FUNCDCM_NONE ),
1550 ENTRY( 0x0028, 0x0010, "US", "Rows", FUNCDCM_ROWS ),
1551 ENTRY( 0x0028, 0x0011, "US", "Columns", FUNCDCM_COLUMNS ),
1552 ENTRY( 0x0028, 0x0012, "US", "Planes", FUNCDCM_NONE ),
1553 ENTRY( 0x0028, 0x0014, "US", "Ultrasound Color Data Present", FUNCDCM_NONE ),
1554 ENTRY( 0x0028, 0x0030, "DS", "Pixel Spacing", FUNCDCM_NONE ),
1555 ENTRY( 0x0028, 0x0031, "DS", "Zoom Factor", FUNCDCM_NONE ),
1556 ENTRY( 0x0028, 0x0032, "DS", "Zoom Center", FUNCDCM_NONE ),
1557 ENTRY( 0x0028, 0x0034, "IS", "Pixel Aspect Ratio", FUNCDCM_NONE ),
1558 ENTRY( 0x0028, 0x0040, "LO", "Image Format", FUNCDCM_NONE ),
1559 ENTRY( 0x0028, 0x0050, "LT", "Manipulated Image", FUNCDCM_NONE ),
1560 ENTRY( 0x0028, 0x0051, "CS", "Corrected Image", FUNCDCM_NONE ),
1561 ENTRY( 0x0028, 0x005f, "LO", "Compression Recognition Code", FUNCDCM_NONE ),
1562 ENTRY( 0x0028, 0x0060, "LO", "Compression Code", FUNCDCM_NONE ),
1563 ENTRY( 0x0028, 0x0061, "SH", "Compression Originator", FUNCDCM_NONE ),
1564 ENTRY( 0x0028, 0x0062, "SH", "Compression Label", FUNCDCM_NONE ),
1565 ENTRY( 0x0028, 0x0063, "SH", "Compression Description", FUNCDCM_NONE ),
1566 ENTRY( 0x0028, 0x0065, "LO", "Compression Sequence", FUNCDCM_NONE ),
1567 ENTRY( 0x0028, 0x0066, "AT", "Compression Step Pointers", FUNCDCM_NONE ),
1568 ENTRY( 0x0028, 0x0068, "US", "Repeat Interval", FUNCDCM_NONE ),
1569 ENTRY( 0x0028, 0x0069, "US", "Bits Grouped", FUNCDCM_NONE ),
1570 ENTRY( 0x0028, 0x0070, "US", "Perimeter Table", FUNCDCM_NONE ),
1571 ENTRY( 0x0028, 0x0071, "xs", "Perimeter Value", FUNCDCM_NONE ),
1572 ENTRY( 0x0028, 0x0080, "US", "Predictor Rows", FUNCDCM_NONE ),
1573 ENTRY( 0x0028, 0x0081, "US", "Predictor Columns", FUNCDCM_NONE ),
1574 ENTRY( 0x0028, 0x0082, "US", "Predictor Constants", FUNCDCM_NONE ),
1575 ENTRY( 0x0028, 0x0090, "LO", "Blocked Pixels", FUNCDCM_NONE ),
1576 ENTRY( 0x0028, 0x0091, "US", "Block Rows", FUNCDCM_NONE ),
1577 ENTRY( 0x0028, 0x0092, "US", "Block Columns", FUNCDCM_NONE ),
1578 ENTRY( 0x0028, 0x0093, "US", "Row Overlap", FUNCDCM_NONE ),
1579 ENTRY( 0x0028, 0x0094, "US", "Column Overlap", FUNCDCM_NONE ),
1580 ENTRY( 0x0028, 0x0100, "US", "Bits Allocated", FUNCDCM_BITSALLOCATED ),
1581 ENTRY( 0x0028, 0x0101, "US", "Bits Stored", FUNCDCM_BITSSTORED ),
1582 ENTRY( 0x0028, 0x0102, "US", "High Bit", FUNCDCM_HIGHBIT ),
1583 ENTRY( 0x0028, 0x0103, "US", "Pixel Representation", FUNCDCM_PIXELREPRESENTATION ),
1584 ENTRY( 0x0028, 0x0104, "xs", "Smallest Valid Pixel Value", FUNCDCM_NONE ),
1585 ENTRY( 0x0028, 0x0105, "xs", "Largest Valid Pixel Value", FUNCDCM_NONE ),
1586 ENTRY( 0x0028, 0x0106, "xs", "Smallest Image Pixel Value", FUNCDCM_NONE ),
1587 ENTRY( 0x0028, 0x0107, "xs", "Largest Image Pixel Value", FUNCDCM_NONE ),
1588 ENTRY( 0x0028, 0x0108, "xs", "Smallest Pixel Value in Series", FUNCDCM_NONE ),
1589 ENTRY( 0x0028, 0x0109, "xs", "Largest Pixel Value in Series", FUNCDCM_NONE ),
1590 ENTRY( 0x0028, 0x0110, "xs", "Smallest Pixel Value in Plane", FUNCDCM_NONE ),
1591 ENTRY( 0x0028, 0x0111, "xs", "Largest Pixel Value in Plane", FUNCDCM_NONE ),
1592 ENTRY( 0x0028, 0x0120, "xs", "Pixel Padding Value", FUNCDCM_NONE ),
1593 ENTRY( 0x0028, 0x0121, "xs", "Pixel Padding Range Limit", FUNCDCM_NONE ),
1594 ENTRY( 0x0028, 0x0200, "xs", "Image Location", FUNCDCM_NONE ),
1595 ENTRY( 0x0028, 0x0300, "CS", "Quality Control Image", FUNCDCM_NONE ),
1596 ENTRY( 0x0028, 0x0301, "CS", "Burned In Annotation", FUNCDCM_NONE ),
1597 ENTRY( 0x0028, 0x0400, "xs", "?", FUNCDCM_NONE ),
1598 ENTRY( 0x0028, 0x0401, "xs", "?", FUNCDCM_NONE ),
1599 ENTRY( 0x0028, 0x0402, "xs", "?", FUNCDCM_NONE ),
1600 ENTRY( 0x0028, 0x0403, "xs", "?", FUNCDCM_NONE ),
1601 ENTRY( 0x0028, 0x0404, "AT", "Details of Coefficients", FUNCDCM_NONE ),
1602 ENTRY( 0x0028, 0x0700, "LO", "DCT Label", FUNCDCM_NONE ),
1603 ENTRY( 0x0028, 0x0701, "LO", "Data Block Description", FUNCDCM_NONE ),
1604 ENTRY( 0x0028, 0x0702, "AT", "Data Block", FUNCDCM_NONE ),
1605 ENTRY( 0x0028, 0x0710, "US", "Normalization Factor Format", FUNCDCM_NONE ),
1606 ENTRY( 0x0028, 0x0720, "US", "Zonal Map Number Format", FUNCDCM_NONE ),
1607 ENTRY( 0x0028, 0x0721, "AT", "Zonal Map Location", FUNCDCM_NONE ),
1608 ENTRY( 0x0028, 0x0722, "US", "Zonal Map Format", FUNCDCM_NONE ),
1609 ENTRY( 0x0028, 0x0730, "US", "Adaptive Map Format", FUNCDCM_NONE ),
1610 ENTRY( 0x0028, 0x0740, "US", "Code Number Format", FUNCDCM_NONE ),
1611 ENTRY( 0x0028, 0x0800, "LO", "Code Label", FUNCDCM_NONE ),
1612 ENTRY( 0x0028, 0x0802, "US", "Number of Tables", FUNCDCM_NONE ),
1613 ENTRY( 0x0028, 0x0803, "AT", "Code Table Location", FUNCDCM_NONE ),
1614 ENTRY( 0x0028, 0x0804, "US", "Bits For Code Word", FUNCDCM_NONE ),
1615 ENTRY( 0x0028, 0x0808, "AT", "Image Data Location", FUNCDCM_NONE ),
1616 ENTRY( 0x0028, 0x1040, "CS", "Pixel Intensity Relationship", FUNCDCM_NONE ),
1617 ENTRY( 0x0028, 0x1041, "SS", "Pixel Intensity Relationship Sign", FUNCDCM_NONE ),
1618 ENTRY( 0x0028, 0x1050, "DS", "Window Center", FUNCDCM_WINDOWCENTER ),
1619 ENTRY( 0x0028, 0x1051, "DS", "Window Width", FUNCDCM_WINDOWWIDTH ),
1620 ENTRY( 0x0028, 0x1052, "DS", "Rescale Intercept", FUNCDCM_RESCALEINTERCEPT ),
1621 ENTRY( 0x0028, 0x1053, "DS", "Rescale Slope", FUNCDCM_RESCALESLOPE ),
1622 ENTRY( 0x0028, 0x1054, "LO", "Rescale Type", FUNCDCM_RESCALETYPE ),
1623 ENTRY( 0x0028, 0x1055, "LO", "Window Center & Width Explanation", FUNCDCM_NONE ),
1624 ENTRY( 0x0028, 0x1080, "LO", "Gray Scale", FUNCDCM_NONE ),
1625 ENTRY( 0x0028, 0x1090, "CS", "Recommended Viewing Mode", FUNCDCM_NONE ),
1626 ENTRY( 0x0028, 0x1100, "xs", "Gray Lookup Table Descriptor", FUNCDCM_NONE ),
1627 ENTRY( 0x0028, 0x1101, "xs", "Red Palette Color Lookup Table Descriptor", FUNCDCM_PALETTEDESCRIPTOR ),
1628 ENTRY( 0x0028, 0x1102, "xs", "Green Palette Color Lookup Table Descriptor", FUNCDCM_PALETTEDESCRIPTOR ),
1629 ENTRY( 0x0028, 0x1103, "xs", "Blue Palette Color Lookup Table Descriptor", FUNCDCM_PALETTEDESCRIPTOR ),
1630 ENTRY( 0x0028, 0x1111, "OW", "Large Red Palette Color Lookup Table Descriptor", FUNCDCM_NONE ),
1631 ENTRY( 0x0028, 0x1112, "OW", "Large Green Palette Color Lookup Table Descriptor", FUNCDCM_NONE ),
1632 ENTRY( 0x0028, 0x1113, "OW", "Large Blue Palette Color Lookup Table Descriptor", FUNCDCM_NONE ),
1633 ENTRY( 0x0028, 0x1199, "UI", "Palette Color Lookup Table UID", FUNCDCM_NONE ),
1634 ENTRY( 0x0028, 0x1200, "xs", "Gray Lookup Table Data", FUNCDCM_LUT ),
1635 ENTRY( 0x0028, 0x1201, "OW", "Red Palette Color Lookup Table Data", FUNCDCM_PALETTE ),
1636 ENTRY( 0x0028, 0x1202, "OW", "Green Palette Color Lookup Table Data", FUNCDCM_PALETTE ),
1637 ENTRY( 0x0028, 0x1203, "OW", "Blue Palette Color Lookup Table Data", FUNCDCM_PALETTE ),
1638 ENTRY( 0x0028, 0x1211, "OW", "Large Red Palette Color Lookup Table Data", FUNCDCM_NONE ),
1639 ENTRY( 0x0028, 0x1212, "OW", "Large Green Palette Color Lookup Table Data", FUNCDCM_NONE ),
1640 ENTRY( 0x0028, 0x1213, "OW", "Large Blue Palette Color Lookup Table Data", FUNCDCM_NONE ),
1641 ENTRY( 0x0028, 0x1214, "UI", "Large Palette Color Lookup Table UID", FUNCDCM_NONE ),
1642 ENTRY( 0x0028, 0x1221, "OW", "Segmented Red Palette Color Lookup Table Data", FUNCDCM_NONE ),
1643 ENTRY( 0x0028, 0x1222, "OW", "Segmented Green Palette Color Lookup Table Data", FUNCDCM_NONE ),
1644 ENTRY( 0x0028, 0x1223, "OW", "Segmented Blue Palette Color Lookup Table Data", FUNCDCM_NONE ),
1645 ENTRY( 0x0028, 0x1300, "CS", "Implant Present", FUNCDCM_NONE ),
1646 ENTRY( 0x0028, 0x2110, "CS", "Lossy Image Compression", FUNCDCM_NONE ),
1647 ENTRY( 0x0028, 0x2112, "DS", "Lossy Image Compression Ratio", FUNCDCM_NONE ),
1648 ENTRY( 0x0028, 0x3000, "SQ", "Modality LUT Sequence", FUNCDCM_NONE ),
1649 ENTRY( 0x0028, 0x3002, "US", "LUT Descriptor", FUNCDCM_NONE ),
1650 ENTRY( 0x0028, 0x3003, "LO", "LUT Explanation", FUNCDCM_NONE ),
1651 ENTRY( 0x0028, 0x3004, "LO", "Modality LUT Type", FUNCDCM_NONE ),
1652 ENTRY( 0x0028, 0x3006, "US", "LUT Data", FUNCDCM_LUT ),
1653 ENTRY( 0x0028, 0x3010, "xs", "VOI LUT Sequence", FUNCDCM_NONE ),
1654 ENTRY( 0x0028, 0x4000, "LT", "Image Presentation Comments", FUNCDCM_NONE ),
1655 ENTRY( 0x0028, 0x5000, "SQ", "Biplane Acquisition Sequence", FUNCDCM_NONE ),
1656 ENTRY( 0x0028, 0x6010, "US", "Representative Frame Number", FUNCDCM_NONE ),
1657 ENTRY( 0x0028, 0x6020, "US", "Frame Numbers of Interest", FUNCDCM_NONE ),
1658 ENTRY( 0x0028, 0x6022, "LO", "Frame of Interest Description", FUNCDCM_NONE ),
1659 ENTRY( 0x0028, 0x6030, "US", "Mask Pointer", FUNCDCM_NONE ),
1660 ENTRY( 0x0028, 0x6040, "US", "R Wave Pointer", FUNCDCM_NONE ),
1661 ENTRY( 0x0028, 0x6100, "SQ", "Mask Subtraction Sequence", FUNCDCM_NONE ),
1662 ENTRY( 0x0028, 0x6101, "CS", "Mask Operation", FUNCDCM_NONE ),
1663 ENTRY( 0x0028, 0x6102, "US", "Applicable Frame Range", FUNCDCM_NONE ),
1664 ENTRY( 0x0028, 0x6110, "US", "Mask Frame Numbers", FUNCDCM_NONE ),
1665 ENTRY( 0x0028, 0x6112, "US", "Contrast Frame Averaging", FUNCDCM_NONE ),
1666 ENTRY( 0x0028, 0x6114, "FL", "Mask Sub-Pixel Shift", FUNCDCM_NONE ),
1667 ENTRY( 0x0028, 0x6120, "SS", "TID Offset", FUNCDCM_NONE ),
1668 ENTRY( 0x0028, 0x6190, "ST", "Mask Operation Explanation", FUNCDCM_NONE ),
1669 ENTRY( 0x0029, 0x0000, "xs", "?", FUNCDCM_NONE ),
1670 ENTRY( 0x0029, 0x0001, "xs", "?", FUNCDCM_NONE ),
1671 ENTRY( 0x0029, 0x0002, "xs", "?", FUNCDCM_NONE ),
1672 ENTRY( 0x0029, 0x0003, "xs", "?", FUNCDCM_NONE ),
1673 ENTRY( 0x0029, 0x0004, "xs", "?", FUNCDCM_NONE ),
1674 ENTRY( 0x0029, 0x0005, "xs", "?", FUNCDCM_NONE ),
1675 ENTRY( 0x0029, 0x0006, "xs", "?", FUNCDCM_NONE ),
1676 ENTRY( 0x0029, 0x0007, "SL", "Lower Range Of Pixels", FUNCDCM_NONE ),
1677 ENTRY( 0x0029, 0x0008, "SH", "Lower Range Of Pixels", FUNCDCM_NONE ),
1678 ENTRY( 0x0029, 0x0009, "SH", "Lower Range Of Pixels", FUNCDCM_NONE ),
1679 ENTRY( 0x0029, 0x000a, "SS", "Lower Range Of Pixels", FUNCDCM_NONE ),
1680 ENTRY( 0x0029, 0x000c, "xs", "?", FUNCDCM_NONE ),
1681 ENTRY( 0x0029, 0x000e, "CS", "Zoom Enable Status", FUNCDCM_NONE ),
1682 ENTRY( 0x0029, 0x000f, "CS", "Zoom Select Status", FUNCDCM_NONE ),
1683 ENTRY( 0x0029, 0x0010, "xs", "?", FUNCDCM_NONE ),
1684 ENTRY( 0x0029, 0x0011, "xs", "?", FUNCDCM_NONE ),
1685 ENTRY( 0x0029, 0x0013, "LT", "?", FUNCDCM_NONE ),
1686 ENTRY( 0x0029, 0x0015, "xs", "?", FUNCDCM_NONE ),
1687 ENTRY( 0x0029, 0x0016, "SL", "Lower Range Of Pixels", FUNCDCM_NONE ),
1688 ENTRY( 0x0029, 0x0017, "SL", "Lower Range Of Pixels", FUNCDCM_NONE ),
1689 ENTRY( 0x0029, 0x0018, "SL", "Upper Range Of Pixels", FUNCDCM_NONE ),
1690 ENTRY( 0x0029, 0x001a, "SL", "Length Of Total Info In Bytes", FUNCDCM_NONE ),
1691 ENTRY( 0x0029, 0x001e, "xs", "?", FUNCDCM_NONE ),
1692 ENTRY( 0x0029, 0x001f, "xs", "?", FUNCDCM_NONE ),
1693 ENTRY( 0x0029, 0x0020, "xs", "?", FUNCDCM_NONE ),
1694 ENTRY( 0x0029, 0x0022, "IS", "Pixel Quality Value", FUNCDCM_NONE ),
1695 ENTRY( 0x0029, 0x0025, "LT", "Processed Pixel Data Quality", FUNCDCM_NONE ),
1696 ENTRY( 0x0029, 0x0026, "SS", "Version Of Info Structure", FUNCDCM_NONE ),
1697 ENTRY( 0x0029, 0x0030, "xs", "?", FUNCDCM_NONE ),
1698 ENTRY( 0x0029, 0x0031, "xs", "?", FUNCDCM_NONE ),
1699 ENTRY( 0x0029, 0x0032, "xs", "?", FUNCDCM_NONE ),
1700 ENTRY( 0x0029, 0x0033, "xs", "?", FUNCDCM_NONE ),
1701 ENTRY( 0x0029, 0x0034, "xs", "?", FUNCDCM_NONE ),
1702 ENTRY( 0x0029, 0x0035, "SL", "Advantage Comp Underflow", FUNCDCM_NONE ),
1703 ENTRY( 0x0029, 0x0038, "US", "?", FUNCDCM_NONE ),
1704 ENTRY( 0x0029, 0x0040, "xs", "?", FUNCDCM_NONE ),
1705 ENTRY( 0x0029, 0x0041, "DS", "Magnifying Glass Rectangle", FUNCDCM_NONE ),
1706 ENTRY( 0x0029, 0x0043, "DS", "Magnifying Glass Factor", FUNCDCM_NONE ),
1707 ENTRY( 0x0029, 0x0044, "US", "Magnifying Glass Function", FUNCDCM_NONE ),
1708 ENTRY( 0x0029, 0x004e, "CS", "Magnifying Glass Enable Status", FUNCDCM_NONE ),
1709 ENTRY( 0x0029, 0x004f, "CS", "Magnifying Glass Select Status", FUNCDCM_NONE ),
1710 ENTRY( 0x0029, 0x0050, "xs", "?", FUNCDCM_NONE ),
1711 ENTRY( 0x0029, 0x0051, "LT", "Exposure Code", FUNCDCM_NONE ),
1712 ENTRY( 0x0029, 0x0052, "LT", "Sort Code", FUNCDCM_NONE ),
1713 ENTRY( 0x0029, 0x0053, "LT", "?", FUNCDCM_NONE ),
1714 ENTRY( 0x0029, 0x0060, "xs", "?", FUNCDCM_NONE ),
1715 ENTRY( 0x0029, 0x0061, "xs", "?", FUNCDCM_NONE ),
1716 ENTRY( 0x0029, 0x0067, "LT", "?", FUNCDCM_NONE ),
1717 ENTRY( 0x0029, 0x0070, "xs", "?", FUNCDCM_NONE ),
1718 ENTRY( 0x0029, 0x0071, "xs", "?", FUNCDCM_NONE ),
1719 ENTRY( 0x0029, 0x0072, "xs", "?", FUNCDCM_NONE ),
1720 ENTRY( 0x0029, 0x0077, "CS", "Window Select Status", FUNCDCM_NONE ),
1721 ENTRY( 0x0029, 0x0078, "LT", "ECG Display Printing ID", FUNCDCM_NONE ),
1722 ENTRY( 0x0029, 0x0079, "CS", "ECG Display Printing", FUNCDCM_NONE ),
1723 ENTRY( 0x0029, 0x007e, "CS", "ECG Display Printing Enable Status", FUNCDCM_NONE ),
1724 ENTRY( 0x0029, 0x007f, "CS", "ECG Display Printing Select Status", FUNCDCM_NONE ),
1725 ENTRY( 0x0029, 0x0080, "xs", "?", FUNCDCM_NONE ),
1726 ENTRY( 0x0029, 0x0081, "xs", "?", FUNCDCM_NONE ),
1727 ENTRY( 0x0029, 0x0082, "IS", "View Zoom", FUNCDCM_NONE ),
1728 ENTRY( 0x0029, 0x0083, "IS", "View Transform", FUNCDCM_NONE ),
1729 ENTRY( 0x0029, 0x008e, "CS", "Physiological Display Enable Status", FUNCDCM_NONE ),
1730 ENTRY( 0x0029, 0x008f, "CS", "Physiological Display Select Status", FUNCDCM_NONE ),
1731 ENTRY( 0x0029, 0x0090, "IS", "?", FUNCDCM_NONE ),
1732 ENTRY( 0x0029, 0x0099, "LT", "Shutter Type", FUNCDCM_NONE ),
1733 ENTRY( 0x0029, 0x00a0, "US", "Rows of Rectangular Shutter", FUNCDCM_NONE ),
1734 ENTRY( 0x0029, 0x00a1, "US", "Columns of Rectangular Shutter", FUNCDCM_NONE ),
1735 ENTRY( 0x0029, 0x00a2, "US", "Origin of Rectangular Shutter", FUNCDCM_NONE ),
1736 ENTRY( 0x0029, 0x00b0, "US", "Radius of Circular Shutter", FUNCDCM_NONE ),
1737 ENTRY( 0x0029, 0x00b2, "US", "Origin of Circular Shutter", FUNCDCM_NONE ),
1738 ENTRY( 0x0029, 0x00c0, "LT", "Functional Shutter ID", FUNCDCM_NONE ),
1739 ENTRY( 0x0029, 0x00c1, "xs", "?", FUNCDCM_NONE ),
1740 ENTRY( 0x0029, 0x00c3, "IS", "Scan Resolution", FUNCDCM_NONE ),
1741 ENTRY( 0x0029, 0x00c4, "IS", "Field of View", FUNCDCM_FIELDOFVIEW ),
1742 ENTRY( 0x0029, 0x00c5, "LT", "Field Of Shutter Rectangle", FUNCDCM_NONE ),
1743 ENTRY( 0x0029, 0x00ce, "CS", "Shutter Enable Status", FUNCDCM_NONE ),
1744 ENTRY( 0x0029, 0x00cf, "CS", "Shutter Select Status", FUNCDCM_NONE ),
1745 ENTRY( 0x0029, 0x00d0, "IS", "?", FUNCDCM_NONE ),
1746 ENTRY( 0x0029, 0x00d1, "IS", "?", FUNCDCM_NONE ),
1747 ENTRY( 0x0029, 0x00d5, "LT", "Slice Thickness", FUNCDCM_NONE ),
1748 ENTRY( 0x0031, 0x0010, "LT", "Request UID", FUNCDCM_NONE ),
1749 ENTRY( 0x0031, 0x0012, "LT", "Examination Reason", FUNCDCM_NONE ),
1750 ENTRY( 0x0031, 0x0030, "DA", "Requested Date", FUNCDCM_NONE ),
1751 ENTRY( 0x0031, 0x0032, "TM", "Worklist Request Start Time", FUNCDCM_NONE ),
1752 ENTRY( 0x0031, 0x0033, "TM", "Worklist Request End Time", FUNCDCM_NONE ),
1753 ENTRY( 0x0031, 0x0045, "LT", "Requesting Physician", FUNCDCM_NONE ),
1754 ENTRY( 0x0031, 0x004a, "TM", "Requested Time", FUNCDCM_NONE ),
1755 ENTRY( 0x0031, 0x0050, "LT", "Requested Physician", FUNCDCM_NONE ),
1756 ENTRY( 0x0031, 0x0080, "LT", "Requested Location", FUNCDCM_NONE ),
1757 ENTRY( 0x0032, 0x0000, "UL", "Study Group Length", FUNCDCM_NONE ),
1758 ENTRY( 0x0032, 0x000a, "CS", "Study Status ID", FUNCDCM_NONE ),
1759 ENTRY( 0x0032, 0x000c, "CS", "Study Priority ID", FUNCDCM_NONE ),
1760 ENTRY( 0x0032, 0x0012, "LO", "Study ID Issuer", FUNCDCM_NONE ),
1761 ENTRY( 0x0032, 0x0032, "DA", "Study Verified Date", FUNCDCM_NONE ),
1762 ENTRY( 0x0032, 0x0033, "TM", "Study Verified Time", FUNCDCM_NONE ),
1763 ENTRY( 0x0032, 0x0034, "DA", "Study Read Date", FUNCDCM_NONE ),
1764 ENTRY( 0x0032, 0x0035, "TM", "Study Read Time", FUNCDCM_NONE ),
1765 ENTRY( 0x0032, 0x1000, "DA", "Scheduled Study Start Date", FUNCDCM_NONE ),
1766 ENTRY( 0x0032, 0x1001, "TM", "Scheduled Study Start Time", FUNCDCM_NONE ),
1767 ENTRY( 0x0032, 0x1010, "DA", "Scheduled Study Stop Date", FUNCDCM_NONE ),
1768 ENTRY( 0x0032, 0x1011, "TM", "Scheduled Study Stop Time", FUNCDCM_NONE ),
1769 ENTRY( 0x0032, 0x1020, "LO", "Scheduled Study Location", FUNCDCM_NONE ),
1770 ENTRY( 0x0032, 0x1021, "AE", "Scheduled Study Location AE Title(s)", FUNCDCM_NONE ),
1771 ENTRY( 0x0032, 0x1030, "LO", "Reason for Study", FUNCDCM_NONE ),
1772 ENTRY( 0x0032, 0x1032, "PN", "Requesting Physician", FUNCDCM_NONE ),
1773 ENTRY( 0x0032, 0x1033, "LO", "Requesting Service", FUNCDCM_NONE ),
1774 ENTRY( 0x0032, 0x1040, "DA", "Study Arrival Date", FUNCDCM_NONE ),
1775 ENTRY( 0x0032, 0x1041, "TM", "Study Arrival Time", FUNCDCM_NONE ),
1776 ENTRY( 0x0032, 0x1050, "DA", "Study Completion Date", FUNCDCM_NONE ),
1777 ENTRY( 0x0032, 0x1051, "TM", "Study Completion Time", FUNCDCM_NONE ),
1778 ENTRY( 0x0032, 0x1055, "CS", "Study Component Status ID", FUNCDCM_NONE ),
1779 ENTRY( 0x0032, 0x1060, "LO", "Requested Procedure Description", FUNCDCM_NONE ),
1780 ENTRY( 0x0032, 0x1064, "SQ", "Requested Procedure Code Sequence", FUNCDCM_NONE ),
1781 ENTRY( 0x0032, 0x1070, "LO", "Requested Contrast Agent", FUNCDCM_NONE ),
1782 ENTRY( 0x0032, 0x4000, "LT", "Study Comments", FUNCDCM_NONE ),
1783 ENTRY( 0x0033, 0x0001, "UN", "?", FUNCDCM_NONE ),
1784 ENTRY( 0x0033, 0x0002, "UN", "?", FUNCDCM_NONE ),
1785 ENTRY( 0x0033, 0x0005, "UN", "?", FUNCDCM_NONE ),
1786 ENTRY( 0x0033, 0x0006, "UN", "?", FUNCDCM_NONE ),
1787 ENTRY( 0x0033, 0x0010, "LT", "Patient Study UID", FUNCDCM_NONE ),
1788 ENTRY( 0x0037, 0x0010, "LO", "ReferringDepartment", FUNCDCM_NONE ),
1789 ENTRY( 0x0037, 0x0020, "US", "ScreenNumber", FUNCDCM_NONE ),
1790 ENTRY( 0x0037, 0x0040, "SH", "LeftOrientation", FUNCDCM_NONE ),
1791 ENTRY( 0x0037, 0x0042, "SH", "RightOrientation", FUNCDCM_NONE ),
1792 ENTRY( 0x0037, 0x0050, "CS", "Inversion", FUNCDCM_NONE ),
1793 ENTRY( 0x0037, 0x0060, "US", "DSA", FUNCDCM_NONE ),
1794 ENTRY( 0x0038, 0x0000, "UL", "Visit Group Length", FUNCDCM_NONE ),
1795 ENTRY( 0x0038, 0x0004, "SQ", "Referenced Patient Alias Sequence", FUNCDCM_NONE ),
1796 ENTRY( 0x0038, 0x0008, "CS", "Visit Status ID", FUNCDCM_NONE ),
1797 ENTRY( 0x0038, 0x0010, "LO", "Admission ID", FUNCDCM_NONE ),
1798 ENTRY( 0x0038, 0x0011, "LO", "Issuer of Admission ID", FUNCDCM_NONE ),
1799 ENTRY( 0x0038, 0x0016, "LO", "Route of Admissions", FUNCDCM_NONE ),
1800 ENTRY( 0x0038, 0x001a, "DA", "Scheduled Admission Date", FUNCDCM_NONE ),
1801 ENTRY( 0x0038, 0x001b, "TM", "Scheduled Admission Time", FUNCDCM_NONE ),
1802 ENTRY( 0x0038, 0x001c, "DA", "Scheduled Discharge Date", FUNCDCM_NONE ),
1803 ENTRY( 0x0038, 0x001d, "TM", "Scheduled Discharge Time", FUNCDCM_NONE ),
1804 ENTRY( 0x0038, 0x001e, "LO", "Scheduled Patient Institution Residence", FUNCDCM_NONE ),
1805 ENTRY( 0x0038, 0x0020, "DA", "Admitting Date", FUNCDCM_NONE ),
1806 ENTRY( 0x0038, 0x0021, "TM", "Admitting Time", FUNCDCM_NONE ),
1807 ENTRY( 0x0038, 0x0030, "DA", "Discharge Date", FUNCDCM_NONE ),
1808 ENTRY( 0x0038, 0x0032, "TM", "Discharge Time", FUNCDCM_NONE ),
1809 ENTRY( 0x0038, 0x0040, "LO", "Discharge Diagnosis Description", FUNCDCM_NONE ),
1810 ENTRY( 0x0038, 0x0044, "SQ", "Discharge Diagnosis Code Sequence", FUNCDCM_NONE ),
1811 ENTRY( 0x0038, 0x0050, "LO", "Special Needs", FUNCDCM_NONE ),
1812 ENTRY( 0x0038, 0x0300, "LO", "Current Patient Location", FUNCDCM_NONE ),
1813 ENTRY( 0x0038, 0x0400, "LO", "Patient's Institution Residence", FUNCDCM_NONE ),
1814 ENTRY( 0x0038, 0x0500, "LO", "Patient State", FUNCDCM_NONE ),
1815 ENTRY( 0x0038, 0x4000, "LT", "Visit Comments", FUNCDCM_NONE ),
1816 ENTRY( 0x0039, 0x0080, "IS", "Private Entity Number", FUNCDCM_NONE ),
1817 ENTRY( 0x0039, 0x0085, "DA", "Private Entity Date", FUNCDCM_NONE ),
1818 ENTRY( 0x0039, 0x0090, "TM", "Private Entity Time", FUNCDCM_NONE ),
1819 ENTRY( 0x0039, 0x0095, "LO", "Private Entity Launch Command", FUNCDCM_NONE ),
1820 ENTRY( 0x0039, 0x00aa, "CS", "Private Entity Type", FUNCDCM_NONE ),
1821 ENTRY( 0x003a, 0x0002, "SQ", "Waveform Sequence", FUNCDCM_NONE ),
1822 ENTRY( 0x003a, 0x0005, "US", "Waveform Number of Channels", FUNCDCM_NONE ),
1823 ENTRY( 0x003a, 0x0010, "UL", "Waveform Number of Samples", FUNCDCM_NONE ),
1824 ENTRY( 0x003a, 0x001a, "DS", "Sampling Frequency", FUNCDCM_NONE ),
1825 ENTRY( 0x003a, 0x0020, "SH", "Group Label", FUNCDCM_NONE ),
1826 ENTRY( 0x003a, 0x0103, "CS", "Waveform Sample Value Representation", FUNCDCM_NONE ),
1827 ENTRY( 0x003a, 0x0122, "OB", "Waveform Padding Value", FUNCDCM_NONE ),
1828 ENTRY( 0x003a, 0x0200, "SQ", "Channel Definition", FUNCDCM_NONE ),
1829 ENTRY( 0x003a, 0x0202, "IS", "Waveform Channel Number", FUNCDCM_NONE ),
1830 ENTRY( 0x003a, 0x0203, "SH", "Channel Label", FUNCDCM_NONE ),
1831 ENTRY( 0x003a, 0x0205, "CS", "Channel Status", FUNCDCM_NONE ),
1832 ENTRY( 0x003a, 0x0208, "SQ", "Channel Source", FUNCDCM_NONE ),
1833 ENTRY( 0x003a, 0x0209, "SQ", "Channel Source Modifiers", FUNCDCM_NONE ),
1834 ENTRY( 0x003a, 0x020a, "SQ", "Differential Channel Source", FUNCDCM_NONE ),
1835 ENTRY( 0x003a, 0x020b, "SQ", "Differential Channel Source Modifiers", FUNCDCM_NONE ),
1836 ENTRY( 0x003a, 0x0210, "DS", "Channel Sensitivity", FUNCDCM_NONE ),
1837 ENTRY( 0x003a, 0x0211, "SQ", "Channel Sensitivity Units", FUNCDCM_NONE ),
1838 ENTRY( 0x003a, 0x0212, "DS", "Channel Sensitivity Correction Factor", FUNCDCM_NONE ),
1839 ENTRY( 0x003a, 0x0213, "DS", "Channel Baseline", FUNCDCM_NONE ),
1840 ENTRY( 0x003a, 0x0214, "DS", "Channel Time Skew", FUNCDCM_NONE ),
1841 ENTRY( 0x003a, 0x0215, "DS", "Channel Sample Skew", FUNCDCM_NONE ),
1842 ENTRY( 0x003a, 0x0216, "OB", "Channel Minimum Value", FUNCDCM_NONE ),
1843 ENTRY( 0x003a, 0x0217, "OB", "Channel Maximum Value", FUNCDCM_NONE ),
1844 ENTRY( 0x003a, 0x0218, "DS", "Channel Offset", FUNCDCM_NONE ),
1845 ENTRY( 0x003a, 0x021a, "US", "Bits Per Sample", FUNCDCM_NONE ),
1846 ENTRY( 0x003a, 0x0220, "DS", "Filter Low Frequency", FUNCDCM_NONE ),
1847 ENTRY( 0x003a, 0x0221, "DS", "Filter High Frequency", FUNCDCM_NONE ),
1848 ENTRY( 0x003a, 0x0222, "DS", "Notch Filter Frequency", FUNCDCM_NONE ),
1849 ENTRY( 0x003a, 0x0223, "DS", "Notch Filter Bandwidth", FUNCDCM_NONE ),
1850 ENTRY( 0x003a, 0x1000, "OB", "Waveform Data", FUNCDCM_NONE ),
1851 ENTRY( 0x0040, 0x0001, "AE", "Scheduled Station AE Title", FUNCDCM_NONE ),
1852 ENTRY( 0x0040, 0x0002, "DA", "Scheduled Procedure Step Start Date", FUNCDCM_NONE ),
1853 ENTRY( 0x0040, 0x0003, "TM", "Scheduled Procedure Step Start Time", FUNCDCM_NONE ),
1854 ENTRY( 0x0040, 0x0004, "DA", "Scheduled Procedure Step End Date", FUNCDCM_NONE ),
1855 ENTRY( 0x0040, 0x0005, "TM", "Scheduled Procedure Step End Time", FUNCDCM_NONE ),
1856 ENTRY( 0x0040, 0x0006, "PN", "Scheduled Performing Physician Name", FUNCDCM_NONE ),
1857 ENTRY( 0x0040, 0x0007, "LO", "Scheduled Procedure Step Description", FUNCDCM_NONE ),
1858 ENTRY( 0x0040, 0x0008, "SQ", "Scheduled Action Item Code Sequence", FUNCDCM_NONE ),
1859 ENTRY( 0x0040, 0x0009, "SH", "Scheduled Procedure Step ID", FUNCDCM_NONE ),
1860 ENTRY( 0x0040, 0x0010, "SH", "Scheduled Station Name", FUNCDCM_NONE ),
1861 ENTRY( 0x0040, 0x0011, "SH", "Scheduled Procedure Step Location", FUNCDCM_NONE ),
1862 ENTRY( 0x0040, 0x0012, "LO", "Pre-Medication", FUNCDCM_NONE ),
1863 ENTRY( 0x0040, 0x0020, "CS", "Scheduled Procedure Step Status", FUNCDCM_NONE ),
1864 ENTRY( 0x0040, 0x0100, "SQ", "Scheduled Procedure Step Sequence", FUNCDCM_NONE ),
1865 ENTRY( 0x0040, 0x0302, "US", "Entrance Dose", FUNCDCM_NONE ),
1866 ENTRY( 0x0040, 0x0303, "US", "Exposed Area", FUNCDCM_NONE ),
1867 ENTRY( 0x0040, 0x0306, "DS", "Distance Source to Entrance", FUNCDCM_NONE ),
1868 ENTRY( 0x0040, 0x0307, "DS", "Distance Source to Support", FUNCDCM_NONE ),
1869 ENTRY( 0x0040, 0x0310, "ST", "Comments On Radiation Dose", FUNCDCM_NONE ),
1870 ENTRY( 0x0040, 0x0312, "DS", "X-Ray Output", FUNCDCM_NONE ),
1871 ENTRY( 0x0040, 0x0314, "DS", "Half Value Layer", FUNCDCM_NONE ),
1872 ENTRY( 0x0040, 0x0316, "DS", "Organ Dose", FUNCDCM_NONE ),
1873 ENTRY( 0x0040, 0x0318, "CS", "Organ Exposed", FUNCDCM_NONE ),
1874 ENTRY( 0x0040, 0x0400, "LT", "Comments On Scheduled Procedure Step", FUNCDCM_NONE ),
1875 ENTRY( 0x0040, 0x050a, "LO", "Specimen Accession Number", FUNCDCM_NONE ),
1876 ENTRY( 0x0040, 0x0550, "SQ", "Specimen Sequence", FUNCDCM_NONE ),
1877 ENTRY( 0x0040, 0x0551, "LO", "Specimen Identifier", FUNCDCM_NONE ),
1878 ENTRY( 0x0040, 0x0552, "SQ", "Specimen Description Sequence", FUNCDCM_NONE ),
1879 ENTRY( 0x0040, 0x0553, "ST", "Specimen Description", FUNCDCM_NONE ),
1880 ENTRY( 0x0040, 0x0555, "SQ", "Acquisition Context Sequence", FUNCDCM_NONE ),
1881 ENTRY( 0x0040, 0x0556, "ST", "Acquisition Context Description", FUNCDCM_NONE ),
1882 ENTRY( 0x0040, 0x059a, "SQ", "Specimen Type Code Sequence", FUNCDCM_NONE ),
1883 ENTRY( 0x0040, 0x06fa, "LO", "Slide Identifier", FUNCDCM_NONE ),
1884 ENTRY( 0x0040, 0x071a, "SQ", "Image Center Point Coordinates Sequence", FUNCDCM_NONE ),
1885 ENTRY( 0x0040, 0x072a, "DS", "X Offset In Slide Coordinate System", FUNCDCM_NONE ),
1886 ENTRY( 0x0040, 0x073a, "DS", "Y Offset In Slide Coordinate System", FUNCDCM_NONE ),
1887 ENTRY( 0x0040, 0x074a, "DS", "Z Offset In Slide Coordinate System", FUNCDCM_NONE ),
1888 ENTRY( 0x0040, 0x08d8, "SQ", "Pixel Spacing Sequence", FUNCDCM_NONE ),
1889 ENTRY( 0x0040, 0x08da, "SQ", "Coordinate System Axis Code Sequence", FUNCDCM_NONE ),
1890 ENTRY( 0x0040, 0x08ea, "SQ", "Measurement Units Code Sequence", FUNCDCM_NONE ),
1891 ENTRY( 0x0040, 0x09f8, "SQ", "Vital Stain Code Sequence", FUNCDCM_NONE ),
1892 ENTRY( 0x0040, 0x1001, "SH", "Requested Procedure ID", FUNCDCM_NONE ),
1893 ENTRY( 0x0040, 0x1002, "LO", "Reason For Requested Procedure", FUNCDCM_NONE ),
1894 ENTRY( 0x0040, 0x1003, "SH", "Requested Procedure Priority", FUNCDCM_NONE ),
1895 ENTRY( 0x0040, 0x1004, "LO", "Patient Transport Arrangements", FUNCDCM_NONE ),
1896 ENTRY( 0x0040, 0x1005, "LO", "Requested Procedure Location", FUNCDCM_NONE ),
1897 ENTRY( 0x0040, 0x1006, "SH", "Placer Order Number of Procedure", FUNCDCM_NONE ),
1898 ENTRY( 0x0040, 0x1007, "SH", "Filler Order Number of Procedure", FUNCDCM_NONE ),
1899 ENTRY( 0x0040, 0x1008, "LO", "Confidentiality Code", FUNCDCM_NONE ),
1900 ENTRY( 0x0040, 0x1009, "SH", "Reporting Priority", FUNCDCM_NONE ),
1901 ENTRY( 0x0040, 0x1010, "PN", "Names of Intended Recipients of Results", FUNCDCM_NONE ),
1902 ENTRY( 0x0040, 0x1400, "LT", "Requested Procedure Comments", FUNCDCM_NONE ),
1903 ENTRY( 0x0040, 0x2001, "LO", "Reason For Imaging Service Request", FUNCDCM_NONE ),
1904 ENTRY( 0x0040, 0x2004, "DA", "Issue Date of Imaging Service Request", FUNCDCM_NONE ),
1905 ENTRY( 0x0040, 0x2005, "TM", "Issue Time of Imaging Service Request", FUNCDCM_NONE ),
1906 ENTRY( 0x0040, 0x2006, "SH", "Placer Order Number of Imaging Service Request", FUNCDCM_NONE ),
1907 ENTRY( 0x0040, 0x2007, "SH", "Filler Order Number of Imaging Service Request", FUNCDCM_NONE ),
1908 ENTRY( 0x0040, 0x2008, "PN", "Order Entered By", FUNCDCM_NONE ),
1909 ENTRY( 0x0040, 0x2009, "SH", "Order Enterer Location", FUNCDCM_NONE ),
1910 ENTRY( 0x0040, 0x2010, "SH", "Order Callback Phone Number", FUNCDCM_NONE ),
1911 ENTRY( 0x0040, 0x2400, "LT", "Imaging Service Request Comments", FUNCDCM_NONE ),
1912 ENTRY( 0x0040, 0x3001, "LO", "Confidentiality Constraint On Patient Data", FUNCDCM_NONE ),
1913 ENTRY( 0x0040, 0xa007, "CS", "Findings Flag", FUNCDCM_NONE ),
1914 ENTRY( 0x0040, 0xa020, "SQ", "Findings Sequence", FUNCDCM_NONE ),
1915 ENTRY( 0x0040, 0xa021, "UI", "Findings Group UID", FUNCDCM_NONE ),
1916 ENTRY( 0x0040, 0xa022, "UI", "Referenced Findings Group UID", FUNCDCM_NONE ),
1917 ENTRY( 0x0040, 0xa023, "DA", "Findings Group Recording Date", FUNCDCM_NONE ),
1918 ENTRY( 0x0040, 0xa024, "TM", "Findings Group Recording Time", FUNCDCM_NONE ),
1919 ENTRY( 0x0040, 0xa026, "SQ", "Findings Source Category Code Sequence", FUNCDCM_NONE ),
1920 ENTRY( 0x0040, 0xa027, "LO", "Documenting Organization", FUNCDCM_NONE ),
1921 ENTRY( 0x0040, 0xa028, "SQ", "Documenting Organization Identifier Code Sequence", FUNCDCM_NONE ),
1922 ENTRY( 0x0040, 0xa032, "LO", "History Reliability Qualifier Description", FUNCDCM_NONE ),
1923 ENTRY( 0x0040, 0xa043, "SQ", "Concept Name Code Sequence", FUNCDCM_NONE ),
1924 ENTRY( 0x0040, 0xa047, "LO", "Measurement Precision Description", FUNCDCM_NONE ),
1925 ENTRY( 0x0040, 0xa057, "CS", "Urgency or Priority Alerts", FUNCDCM_NONE ),
1926 ENTRY( 0x0040, 0xa060, "LO", "Sequencing Indicator", FUNCDCM_NONE ),
1927 ENTRY( 0x0040, 0xa066, "SQ", "Document Identifier Code Sequence", FUNCDCM_NONE ),
1928 ENTRY( 0x0040, 0xa067, "PN", "Document Author", FUNCDCM_NONE ),
1929 ENTRY( 0x0040, 0xa068, "SQ", "Document Author Identifier Code Sequence", FUNCDCM_NONE ),
1930 ENTRY( 0x0040, 0xa070, "SQ", "Identifier Code Sequence", FUNCDCM_NONE ),
1931 ENTRY( 0x0040, 0xa073, "LO", "Object String Identifier", FUNCDCM_NONE ),
1932 ENTRY( 0x0040, 0xa074, "OB", "Object Binary Identifier", FUNCDCM_NONE ),
1933 ENTRY( 0x0040, 0xa075, "PN", "Documenting Observer", FUNCDCM_NONE ),
1934 ENTRY( 0x0040, 0xa076, "SQ", "Documenting Observer Identifier Code Sequence", FUNCDCM_NONE ),
1935 ENTRY( 0x0040, 0xa078, "SQ", "Observation Subject Identifier Code Sequence", FUNCDCM_NONE ),
1936 ENTRY( 0x0040, 0xa080, "SQ", "Person Identifier Code Sequence", FUNCDCM_NONE ),
1937 ENTRY( 0x0040, 0xa085, "SQ", "Procedure Identifier Code Sequence", FUNCDCM_NONE ),
1938 ENTRY( 0x0040, 0xa088, "LO", "Object Directory String Identifier", FUNCDCM_NONE ),
1939 ENTRY( 0x0040, 0xa089, "OB", "Object Directory Binary Identifier", FUNCDCM_NONE ),
1940 ENTRY( 0x0040, 0xa090, "CS", "History Reliability Qualifier", FUNCDCM_NONE ),
1941 ENTRY( 0x0040, 0xa0a0, "CS", "Referenced Type of Data", FUNCDCM_NONE ),
1942 ENTRY( 0x0040, 0xa0b0, "US", "Referenced Waveform Channels", FUNCDCM_NONE ),
1943 ENTRY( 0x0040, 0xa110, "DA", "Date of Document or Verbal Transaction", FUNCDCM_NONE ),
1944 ENTRY( 0x0040, 0xa112, "TM", "Time of Document Creation or Verbal Transaction", FUNCDCM_NONE ),
1945 ENTRY( 0x0040, 0xa121, "DA", "Date", FUNCDCM_NONE ),
1946 ENTRY( 0x0040, 0xa122, "TM", "Time", FUNCDCM_NONE ),
1947 ENTRY( 0x0040, 0xa123, "PN", "Person Name", FUNCDCM_NONE ),
1948 ENTRY( 0x0040, 0xa124, "SQ", "Referenced Person Sequence", FUNCDCM_NONE ),
1949 ENTRY( 0x0040, 0xa125, "CS", "Report Status ID", FUNCDCM_NONE ),
1950 ENTRY( 0x0040, 0xa130, "CS", "Temporal Range Type", FUNCDCM_NONE ),
1951 ENTRY( 0x0040, 0xa132, "UL", "Referenced Sample Offsets", FUNCDCM_NONE ),
1952 ENTRY( 0x0040, 0xa136, "US", "Referenced Frame Numbers", FUNCDCM_NONE ),
1953 ENTRY( 0x0040, 0xa138, "DS", "Referenced Time Offsets", FUNCDCM_NONE ),
1954 ENTRY( 0x0040, 0xa13a, "DT", "Referenced Datetime", FUNCDCM_NONE ),
1955 ENTRY( 0x0040, 0xa160, "UT", "Text Value", FUNCDCM_NONE ),
1956 ENTRY( 0x0040, 0xa167, "SQ", "Observation Category Code Sequence", FUNCDCM_NONE ),
1957 ENTRY( 0x0040, 0xa168, "SQ", "Concept Code Sequence", FUNCDCM_NONE ),
1958 ENTRY( 0x0040, 0xa16a, "ST", "Bibliographic Citation", FUNCDCM_NONE ),
1959 ENTRY( 0x0040, 0xa170, "CS", "Observation Class", FUNCDCM_NONE ),
1960 ENTRY( 0x0040, 0xa171, "UI", "Observation UID", FUNCDCM_NONE ),
1961 ENTRY( 0x0040, 0xa172, "UI", "Referenced Observation UID", FUNCDCM_NONE ),
1962 ENTRY( 0x0040, 0xa173, "CS", "Referenced Observation Class", FUNCDCM_NONE ),
1963 ENTRY( 0x0040, 0xa174, "CS", "Referenced Object Observation Class", FUNCDCM_NONE ),
1964 ENTRY( 0x0040, 0xa180, "US", "Annotation Group Number", FUNCDCM_NONE ),
1965 ENTRY( 0x0040, 0xa192, "DA", "Observation Date", FUNCDCM_NONE ),
1966 ENTRY( 0x0040, 0xa193, "TM", "Observation Time", FUNCDCM_NONE ),
1967 ENTRY( 0x0040, 0xa194, "CS", "Measurement Automation", FUNCDCM_NONE ),
1968 ENTRY( 0x0040, 0xa195, "SQ", "Concept Name Code Sequence Modifier", FUNCDCM_NONE ),
1969 ENTRY( 0x0040, 0xa224, "ST", "Identification Description", FUNCDCM_NONE ),
1970 ENTRY( 0x0040, 0xa290, "CS", "Coordinates Set Geometric Type", FUNCDCM_NONE ),
1971 ENTRY( 0x0040, 0xa296, "SQ", "Algorithm Code Sequence", FUNCDCM_NONE ),
1972 ENTRY( 0x0040, 0xa297, "ST", "Algorithm Description", FUNCDCM_NONE ),
1973 ENTRY( 0x0040, 0xa29a, "SL", "Pixel Coordinates Set", FUNCDCM_NONE ),
1974 ENTRY( 0x0040, 0xa300, "SQ", "Measured Value Sequence", FUNCDCM_NONE ),
1975 ENTRY( 0x0040, 0xa307, "PN", "Current Observer", FUNCDCM_NONE ),
1976 ENTRY( 0x0040, 0xa30a, "DS", "Numeric Value", FUNCDCM_NONE ),
1977 ENTRY( 0x0040, 0xa313, "SQ", "Referenced Accession Sequence", FUNCDCM_NONE ),
1978 ENTRY( 0x0040, 0xa33a, "ST", "Report Status Comment", FUNCDCM_NONE ),
1979 ENTRY( 0x0040, 0xa340, "SQ", "Procedure Context Sequence", FUNCDCM_NONE ),
1980 ENTRY( 0x0040, 0xa352, "PN", "Verbal Source", FUNCDCM_NONE ),
1981 ENTRY( 0x0040, 0xa353, "ST", "Address", FUNCDCM_NONE ),
1982 ENTRY( 0x0040, 0xa354, "LO", "Telephone Number", FUNCDCM_NONE ),
1983 ENTRY( 0x0040, 0xa358, "SQ", "Verbal Source Identifier Code Sequence", FUNCDCM_NONE ),
1984 ENTRY( 0x0040, 0xa380, "SQ", "Report Detail Sequence", FUNCDCM_NONE ),
1985 ENTRY( 0x0040, 0xa402, "UI", "Observation Subject UID", FUNCDCM_NONE ),
1986 ENTRY( 0x0040, 0xa403, "CS", "Observation Subject Class", FUNCDCM_NONE ),
1987 ENTRY( 0x0040, 0xa404, "SQ", "Observation Subject Type Code Sequence", FUNCDCM_NONE ),
1988 ENTRY( 0x0040, 0xa600, "CS", "Observation Subject Context Flag", FUNCDCM_NONE ),
1989 ENTRY( 0x0040, 0xa601, "CS", "Observer Context Flag", FUNCDCM_NONE ),
1990 ENTRY( 0x0040, 0xa603, "CS", "Procedure Context Flag", FUNCDCM_NONE ),
1991 ENTRY( 0x0040, 0xa730, "SQ", "Observations Sequence", FUNCDCM_NONE ),
1992 ENTRY( 0x0040, 0xa731, "SQ", "Relationship Sequence", FUNCDCM_NONE ),
1993 ENTRY( 0x0040, 0xa732, "SQ", "Relationship Type Code Sequence", FUNCDCM_NONE ),
1994 ENTRY( 0x0040, 0xa744, "SQ", "Language Code Sequence", FUNCDCM_NONE ),
1995 ENTRY( 0x0040, 0xa992, "ST", "Uniform Resource Locator", FUNCDCM_NONE ),
1996 ENTRY( 0x0040, 0xb020, "SQ", "Annotation Sequence", FUNCDCM_NONE ),
1997 ENTRY( 0x0040, 0xdb73, "SQ", "Relationship Type Code Sequence Modifier", FUNCDCM_NONE ),
1998 ENTRY( 0x0041, 0x0000, "LT", "Papyrus Comments", FUNCDCM_NONE ),
1999 ENTRY( 0x0041, 0x0010, "xs", "?", FUNCDCM_NONE ),
2000 ENTRY( 0x0041, 0x0011, "xs", "?", FUNCDCM_NONE ),
2001 ENTRY( 0x0041, 0x0012, "UL", "Pixel Offset", FUNCDCM_NONE ),
2002 ENTRY( 0x0041, 0x0013, "SQ", "Image Identifier Sequence", FUNCDCM_NONE ),
2003 ENTRY( 0x0041, 0x0014, "SQ", "External File Reference Sequence", FUNCDCM_NONE ),
2004 ENTRY( 0x0041, 0x0015, "US", "Number of Images", FUNCDCM_NONE ),
2005 ENTRY( 0x0041, 0x0020, "xs", "?", FUNCDCM_NONE ),
2006 ENTRY( 0x0041, 0x0021, "UI", "Referenced SOP Class UID", FUNCDCM_NONE ),
2007 ENTRY( 0x0041, 0x0022, "UI", "Referenced SOP Instance UID", FUNCDCM_NONE ),
2008 ENTRY( 0x0041, 0x0030, "xs", "?", FUNCDCM_NONE ),
2009 ENTRY( 0x0041, 0x0031, "xs", "?", FUNCDCM_NONE ),
2010 ENTRY( 0x0041, 0x0032, "xs", "?", FUNCDCM_NONE ),
2011 ENTRY( 0x0041, 0x0034, "DA", "Modified Date", FUNCDCM_NONE ),
2012 ENTRY( 0x0041, 0x0036, "TM", "Modified Time", FUNCDCM_NONE ),
2013 ENTRY( 0x0041, 0x0040, "LT", "Owner Name", FUNCDCM_NONE ),
2014 ENTRY( 0x0041, 0x0041, "UI", "Referenced Image SOP Class UID", FUNCDCM_NONE ),
2015 ENTRY( 0x0041, 0x0042, "UI", "Referenced Image SOP Instance UID", FUNCDCM_NONE ),
2016 ENTRY( 0x0041, 0x0050, "xs", "?", FUNCDCM_NONE ),
2017 ENTRY( 0x0041, 0x0060, "UL", "Number of Images", FUNCDCM_NONE ),
2018 ENTRY( 0x0041, 0x0062, "UL", "Number of Other", FUNCDCM_NONE ),
2019 ENTRY( 0x0041, 0x00a0, "LT", "External Folder Element DSID", FUNCDCM_NONE ),
2020 ENTRY( 0x0041, 0x00a1, "US", "External Folder Element Data Set Type", FUNCDCM_NONE ),
2021 ENTRY( 0x0041, 0x00a2, "LT", "External Folder Element File Location", FUNCDCM_NONE ),
2022 ENTRY( 0x0041, 0x00a3, "UL", "External Folder Element Length", FUNCDCM_NONE ),
2023 ENTRY( 0x0041, 0x00b0, "LT", "Internal Folder Element DSID", FUNCDCM_NONE ),
2024 ENTRY( 0x0041, 0x00b1, "US", "Internal Folder Element Data Set Type", FUNCDCM_NONE ),
2025 ENTRY( 0x0041, 0x00b2, "UL", "Internal Offset To Data Set", FUNCDCM_NONE ),
2026 ENTRY( 0x0041, 0x00b3, "UL", "Internal Offset To Image", FUNCDCM_NONE ),
2027 ENTRY( 0x0043, 0x0001, "SS", "Bitmap Of Prescan Options", FUNCDCM_NONE ),
2028 ENTRY( 0x0043, 0x0002, "SS", "Gradient Offset In X", FUNCDCM_NONE ),
2029 ENTRY( 0x0043, 0x0003, "SS", "Gradient Offset In Y", FUNCDCM_NONE ),
2030 ENTRY( 0x0043, 0x0004, "SS", "Gradient Offset In Z", FUNCDCM_NONE ),
2031 ENTRY( 0x0043, 0x0005, "SS", "Image Is Original Or Unoriginal", FUNCDCM_NONE ),
2032 ENTRY( 0x0043, 0x0006, "SS", "Number Of EPI Shots", FUNCDCM_NONE ),
2033 ENTRY( 0x0043, 0x0007, "SS", "Views Per Segment", FUNCDCM_NONE ),
2034 ENTRY( 0x0043, 0x0008, "SS", "Respiratory Rate In BPM", FUNCDCM_NONE ),
2035 ENTRY( 0x0043, 0x0009, "SS", "Respiratory Trigger Point", FUNCDCM_NONE ),
2036 ENTRY( 0x0043, 0x000a, "SS", "Type Of Receiver Used", FUNCDCM_NONE ),
2037 ENTRY( 0x0043, 0x000b, "DS", "Peak Rate Of Change Of Gradient Field", FUNCDCM_NONE ),
2038 ENTRY( 0x0043, 0x000c, "DS", "Limits In Units Of Percent", FUNCDCM_NONE ),
2039 ENTRY( 0x0043, 0x000d, "DS", "PSD Estimated Limit", FUNCDCM_NONE ),
2040 ENTRY( 0x0043, 0x000e, "DS", "PSD Estimated Limit In Tesla Per Second", FUNCDCM_NONE ),
2041 ENTRY( 0x0043, 0x000f, "DS", "SAR Avg Head", FUNCDCM_NONE ),
2042 ENTRY( 0x0043, 0x0010, "US", "Window Value", FUNCDCM_NONE ),
2043 ENTRY( 0x0043, 0x0011, "US", "Total Input Views", FUNCDCM_NONE ),
2044 ENTRY( 0x0043, 0x0012, "SS", "Xray Chain", FUNCDCM_NONE ),
2045 ENTRY( 0x0043, 0x0013, "SS", "Recon Kernel Parameters", FUNCDCM_NONE ),
2046 ENTRY( 0x0043, 0x0014, "SS", "Calibration Parameters", FUNCDCM_NONE ),
2047 ENTRY( 0x0043, 0x0015, "SS", "Total Output Views", FUNCDCM_NONE ),
2048 ENTRY( 0x0043, 0x0016, "SS", "Number Of Overranges", FUNCDCM_NONE ),
2049 ENTRY( 0x0043, 0x0017, "DS", "IBH Image Scale Factors", FUNCDCM_NONE ),
2050 ENTRY( 0x0043, 0x0018, "DS", "BBH Coefficients", FUNCDCM_NONE ),
2051 ENTRY( 0x0043, 0x0019, "SS", "Number Of BBH Chains To Blend", FUNCDCM_NONE ),
2052 ENTRY( 0x0043, 0x001a, "SL", "Starting Channel Number", FUNCDCM_NONE ),
2053 ENTRY( 0x0043, 0x001b, "SS", "PPScan Parameters", FUNCDCM_NONE ),
2054 ENTRY( 0x0043, 0x001c, "SS", "GE Image Integrity", FUNCDCM_NONE ),
2055 ENTRY( 0x0043, 0x001d, "SS", "Level Value", FUNCDCM_NONE ),
2056 ENTRY( 0x0043, 0x001e, "xs", "?", FUNCDCM_NONE ),
2057 ENTRY( 0x0043, 0x001f, "SL", "Max Overranges In A View", FUNCDCM_NONE ),
2058 ENTRY( 0x0043, 0x0020, "DS", "Avg Overranges All Views", FUNCDCM_NONE ),
2059 ENTRY( 0x0043, 0x0021, "SS", "Corrected Afterglow Terms", FUNCDCM_NONE ),
2060 ENTRY( 0x0043, 0x0025, "SS", "Reference Channels", FUNCDCM_NONE ),
2061 ENTRY( 0x0043, 0x0026, "US", "No Views Ref Channels Blocked", FUNCDCM_NONE ),
2062 ENTRY( 0x0043, 0x0027, "xs", "?", FUNCDCM_NONE ),
2063 ENTRY( 0x0043, 0x0028, "OB", "Unique Image Identifier", FUNCDCM_NONE ),
2064 ENTRY( 0x0043, 0x0029, "OB", "Histogram Tables", FUNCDCM_NONE ),
2065 ENTRY( 0x0043, 0x002a, "OB", "User Defined Data", FUNCDCM_NONE ),
2066 ENTRY( 0x0043, 0x002b, "SS", "Private Scan Options", FUNCDCM_NONE ),
2067 ENTRY( 0x0043, 0x002c, "SS", "Effective Echo Spacing", FUNCDCM_NONE ),
2068 ENTRY( 0x0043, 0x002d, "SH", "String Slop Field 1", FUNCDCM_NONE ),
2069 ENTRY( 0x0043, 0x002e, "SH", "String Slop Field 2", FUNCDCM_NONE ),
2070 ENTRY( 0x0043, 0x002f, "SS", "Raw Data Type", FUNCDCM_NONE ),
2071 ENTRY( 0x0043, 0x0030, "SS", "Raw Data Type", FUNCDCM_NONE ),
2072 ENTRY( 0x0043, 0x0031, "DS", "RA Coord Of Target Recon Centre", FUNCDCM_NONE ),
2073 ENTRY( 0x0043, 0x0032, "SS", "Raw Data Type", FUNCDCM_NONE ),
2074 ENTRY( 0x0043, 0x0033, "FL", "Neg Scan Spacing", FUNCDCM_NONE ),
2075 ENTRY( 0x0043, 0x0034, "IS", "Offset Frequency", FUNCDCM_NONE ),
2076 ENTRY( 0x0043, 0x0035, "UL", "User Usage Tag", FUNCDCM_NONE ),
2077 ENTRY( 0x0043, 0x0036, "UL", "User Fill Map MSW", FUNCDCM_NONE ),
2078 ENTRY( 0x0043, 0x0037, "UL", "User Fill Map LSW", FUNCDCM_NONE ),
2079 ENTRY( 0x0043, 0x0038, "FL", "User 25 To User 48", FUNCDCM_NONE ),
2080 ENTRY( 0x0043, 0x0039, "IS", "Slop Integer 6 To Slop Integer 9", FUNCDCM_NONE ),
2081 ENTRY( 0x0043, 0x0040, "FL", "Trigger On Position", FUNCDCM_NONE ),
2082 ENTRY( 0x0043, 0x0041, "FL", "Degree Of Rotation", FUNCDCM_NONE ),
2083 ENTRY( 0x0043, 0x0042, "SL", "DAS Trigger Source", FUNCDCM_NONE ),
2084 ENTRY( 0x0043, 0x0043, "SL", "DAS Fpa Gain", FUNCDCM_NONE ),
2085 ENTRY( 0x0043, 0x0044, "SL", "DAS Output Source", FUNCDCM_NONE ),
2086 ENTRY( 0x0043, 0x0045, "SL", "DAS Ad Input", FUNCDCM_NONE ),
2087 ENTRY( 0x0043, 0x0046, "SL", "DAS Cal Mode", FUNCDCM_NONE ),
2088 ENTRY( 0x0043, 0x0047, "SL", "DAS Cal Frequency", FUNCDCM_NONE ),
2089 ENTRY( 0x0043, 0x0048, "SL", "DAS Reg Xm", FUNCDCM_NONE ),
2090 ENTRY( 0x0043, 0x0049, "SL", "DAS Auto Zero", FUNCDCM_NONE ),
2091 ENTRY( 0x0043, 0x004a, "SS", "Starting Channel Of View", FUNCDCM_NONE ),
2092 ENTRY( 0x0043, 0x004b, "SL", "DAS Xm Pattern", FUNCDCM_NONE ),
2093 ENTRY( 0x0043, 0x004c, "SS", "TGGC Trigger Mode", FUNCDCM_NONE ),
2094 ENTRY( 0x0043, 0x004d, "FL", "Start Scan To Xray On Delay", FUNCDCM_NONE ),
2095 ENTRY( 0x0043, 0x004e, "FL", "Duration Of Xray On", FUNCDCM_NONE ),
2096 ENTRY( 0x0044, 0x0000, "UI", "?", FUNCDCM_NONE ),
2097 ENTRY( 0x0045, 0x0004, "CS", "AES", FUNCDCM_NONE ),
2098 ENTRY( 0x0045, 0x0006, "DS", "Angulation", FUNCDCM_NONE ),
2099 ENTRY( 0x0045, 0x0009, "DS", "Real Magnification Factor", FUNCDCM_NONE ),
2100 ENTRY( 0x0045, 0x000b, "CS", "Senograph Type", FUNCDCM_NONE ),
2101 ENTRY( 0x0045, 0x000c, "DS", "Integration Time", FUNCDCM_NONE ),
2102 ENTRY( 0x0045, 0x000d, "DS", "ROI Origin X and Y", FUNCDCM_NONE ),
2103 ENTRY( 0x0045, 0x0011, "DS", "Receptor Size cm X and Y", FUNCDCM_NONE ),
2104 ENTRY( 0x0045, 0x0012, "IS", "Receptor Size Pixels X and Y", FUNCDCM_NONE ),
2105 ENTRY( 0x0045, 0x0013, "ST", "Screen", FUNCDCM_NONE ),
2106 ENTRY( 0x0045, 0x0014, "DS", "Pixel Pitch Microns", FUNCDCM_NONE ),
2107 ENTRY( 0x0045, 0x0015, "IS", "Pixel Depth Bits", FUNCDCM_NONE ),
2108 ENTRY( 0x0045, 0x0016, "IS", "Binning Factor X and Y", FUNCDCM_NONE ),
2109 ENTRY( 0x0045, 0x001b, "CS", "Clinical View", FUNCDCM_NONE ),
2110 ENTRY( 0x0045, 0x001d, "DS", "Mean Of Raw Gray Levels", FUNCDCM_NONE ),
2111 ENTRY( 0x0045, 0x001e, "DS", "Mean Of Offset Gray Levels", FUNCDCM_NONE ),
2112 ENTRY( 0x0045, 0x001f, "DS", "Mean Of Corrected Gray Levels", FUNCDCM_NONE ),
2113 ENTRY( 0x0045, 0x0020, "DS", "Mean Of Region Gray Levels", FUNCDCM_NONE ),
2114 ENTRY( 0x0045, 0x0021, "DS", "Mean Of Log Region Gray Levels", FUNCDCM_NONE ),
2115 ENTRY( 0x0045, 0x0022, "DS", "Standard Deviation Of Raw Gray Levels", FUNCDCM_NONE ),
2116 ENTRY( 0x0045, 0x0023, "DS", "Standard Deviation Of Corrected Gray Levels", FUNCDCM_NONE ),
2117 ENTRY( 0x0045, 0x0024, "DS", "Standard Deviation Of Region Gray Levels", FUNCDCM_NONE ),
2118 ENTRY( 0x0045, 0x0025, "DS", "Standard Deviation Of Log Region Gray Levels", FUNCDCM_NONE ),
2119 ENTRY( 0x0045, 0x0026, "OB", "MAO Buffer", FUNCDCM_NONE ),
2120 ENTRY( 0x0045, 0x0027, "IS", "Set Number", FUNCDCM_NONE ),
2121 ENTRY( 0x0045, 0x0028, "CS", "WindowingType (LINEAR or GAMMA)", FUNCDCM_NONE ),
2122 ENTRY( 0x0045, 0x0029, "DS", "WindowingParameters", FUNCDCM_NONE ),
2123 ENTRY( 0x0045, 0x002a, "IS", "Crosshair Cursor X Coordinates", FUNCDCM_NONE ),
2124 ENTRY( 0x0045, 0x002b, "IS", "Crosshair Cursor Y Coordinates", FUNCDCM_NONE ),
2125 ENTRY( 0x0045, 0x0039, "US", "Vignette Rows", FUNCDCM_NONE ),
2126 ENTRY( 0x0045, 0x003a, "US", "Vignette Columns", FUNCDCM_NONE ),
2127 ENTRY( 0x0045, 0x003b, "US", "Vignette Bits Allocated", FUNCDCM_NONE ),
2128 ENTRY( 0x0045, 0x003c, "US", "Vignette Bits Stored", FUNCDCM_NONE ),
2129 ENTRY( 0x0045, 0x003d, "US", "Vignette High Bit", FUNCDCM_NONE ),
2130 ENTRY( 0x0045, 0x003e, "US", "Vignette Pixel Representation", FUNCDCM_NONE ),
2131 ENTRY( 0x0045, 0x003f, "OB", "Vignette Pixel Data", FUNCDCM_NONE ),
2132 ENTRY( 0x0047, 0x0001, "SQ", "Reconstruction Parameters Sequence", FUNCDCM_NONE ),
2133 ENTRY( 0x0047, 0x0050, "UL", "Volume Voxel Count", FUNCDCM_NONE ),
2134 ENTRY( 0x0047, 0x0051, "UL", "Volume Segment Count", FUNCDCM_NONE ),
2135 ENTRY( 0x0047, 0x0053, "US", "Volume Slice Size", FUNCDCM_NONE ),
2136 ENTRY( 0x0047, 0x0054, "US", "Volume Slice Count", FUNCDCM_NONE ),
2137 ENTRY( 0x0047, 0x0055, "SL", "Volume Threshold Value", FUNCDCM_NONE ),
2138 ENTRY( 0x0047, 0x0057, "DS", "Volume Voxel Ratio", FUNCDCM_NONE ),
2139 ENTRY( 0x0047, 0x0058, "DS", "Volume Voxel Size", FUNCDCM_NONE ),
2140 ENTRY( 0x0047, 0x0059, "US", "Volume Z Position Size", FUNCDCM_NONE ),
2141 ENTRY( 0x0047, 0x0060, "DS", "Volume Base Line", FUNCDCM_NONE ),
2142 ENTRY( 0x0047, 0x0061, "DS", "Volume Center Point", FUNCDCM_NONE ),
2143 ENTRY( 0x0047, 0x0063, "SL", "Volume Skew Base", FUNCDCM_NONE ),
2144 ENTRY( 0x0047, 0x0064, "DS", "Volume Registration Transform Rotation Matrix", FUNCDCM_NONE ),
2145 ENTRY( 0x0047, 0x0065, "DS", "Volume Registration Transform Translation Vector", FUNCDCM_NONE ),
2146 ENTRY( 0x0047, 0x0070, "DS", "KVP List", FUNCDCM_NONE ),
2147 ENTRY( 0x0047, 0x0071, "IS", "XRay Tube Current List", FUNCDCM_NONE ),
2148 ENTRY( 0x0047, 0x0072, "IS", "Exposure List", FUNCDCM_NONE ),
2149 ENTRY( 0x0047, 0x0080, "LO", "Acquisition DLX Identifier", FUNCDCM_NONE ),
2150 ENTRY( 0x0047, 0x0085, "SQ", "Acquisition DLX 2D Series Sequence", FUNCDCM_NONE ),
2151 ENTRY( 0x0047, 0x0089, "DS", "Contrast Agent Volume List", FUNCDCM_NONE ),
2152 ENTRY( 0x0047, 0x008a, "US", "Number Of Injections", FUNCDCM_NONE ),
2153 ENTRY( 0x0047, 0x008b, "US", "Frame Count", FUNCDCM_NONE ),
2154 ENTRY( 0x0047, 0x0096, "IS", "Used Frames", FUNCDCM_NONE ),
2155 ENTRY( 0x0047, 0x0091, "LO", "XA 3D Reconstruction Algorithm Name", FUNCDCM_NONE ),
2156 ENTRY( 0x0047, 0x0092, "CS", "XA 3D Reconstruction Algorithm Version", FUNCDCM_NONE ),
2157 ENTRY( 0x0047, 0x0093, "DA", "DLX Calibration Date", FUNCDCM_NONE ),
2158 ENTRY( 0x0047, 0x0094, "TM", "DLX Calibration Time", FUNCDCM_NONE ),
2159 ENTRY( 0x0047, 0x0095, "CS", "DLX Calibration Status", FUNCDCM_NONE ),
2160 ENTRY( 0x0047, 0x0098, "US", "Transform Count", FUNCDCM_NONE ),
2161 ENTRY( 0x0047, 0x0099, "SQ", "Transform Sequence", FUNCDCM_NONE ),
2162 ENTRY( 0x0047, 0x009a, "DS", "Transform Rotation Matrix", FUNCDCM_NONE ),
2163 ENTRY( 0x0047, 0x009b, "DS", "Transform Translation Vector", FUNCDCM_NONE ),
2164 ENTRY( 0x0047, 0x009c, "LO", "Transform Label", FUNCDCM_NONE ),
2165 ENTRY( 0x0047, 0x00b1, "US", "Wireframe Count", FUNCDCM_NONE ),
2166 ENTRY( 0x0047, 0x00b2, "US", "Location System", FUNCDCM_NONE ),
2167 ENTRY( 0x0047, 0x00b0, "SQ", "Wireframe List", FUNCDCM_NONE ),
2168 ENTRY( 0x0047, 0x00b5, "LO", "Wireframe Name", FUNCDCM_NONE ),
2169 ENTRY( 0x0047, 0x00b6, "LO", "Wireframe Group Name", FUNCDCM_NONE ),
2170 ENTRY( 0x0047, 0x00b7, "LO", "Wireframe Color", FUNCDCM_NONE ),
2171 ENTRY( 0x0047, 0x00b8, "SL", "Wireframe Attributes", FUNCDCM_NONE ),
2172 ENTRY( 0x0047, 0x00b9, "SL", "Wireframe Point Count", FUNCDCM_NONE ),
2173 ENTRY( 0x0047, 0x00ba, "SL", "Wireframe Timestamp", FUNCDCM_NONE ),
2174 ENTRY( 0x0047, 0x00bb, "SQ", "Wireframe Point List", FUNCDCM_NONE ),
2175 ENTRY( 0x0047, 0x00bc, "DS", "Wireframe Points Coordinates", FUNCDCM_NONE ),
2176 ENTRY( 0x0047, 0x00c0, "DS", "Volume Upper Left High Corner RAS", FUNCDCM_NONE ),
2177 ENTRY( 0x0047, 0x00c1, "DS", "Volume Slice To RAS Rotation Matrix", FUNCDCM_NONE ),
2178 ENTRY( 0x0047, 0x00c2, "DS", "Volume Upper Left High Corner TLOC", FUNCDCM_NONE ),
2179 ENTRY( 0x0047, 0x00d1, "OB", "Volume Segment List", FUNCDCM_NONE ),
2180 ENTRY( 0x0047, 0x00d2, "OB", "Volume Gradient List", FUNCDCM_NONE ),
2181 ENTRY( 0x0047, 0x00d3, "OB", "Volume Density List", FUNCDCM_NONE ),
2182 ENTRY( 0x0047, 0x00d4, "OB", "Volume Z Position List", FUNCDCM_NONE ),
2183 ENTRY( 0x0047, 0x00d5, "OB", "Volume Original Index List", FUNCDCM_NONE ),
2184 ENTRY( 0x0050, 0x0000, "UL", "Calibration Group Length", FUNCDCM_NONE ),
2185 ENTRY( 0x0050, 0x0004, "CS", "Calibration Object", FUNCDCM_NONE ),
2186 ENTRY( 0x0050, 0x0010, "SQ", "DeviceSequence", FUNCDCM_NONE ),
2187 ENTRY( 0x0050, 0x0014, "DS", "DeviceLength", FUNCDCM_NONE ),
2188 ENTRY( 0x0050, 0x0016, "DS", "DeviceDiameter", FUNCDCM_NONE ),
2189 ENTRY( 0x0050, 0x0017, "CS", "DeviceDiameterUnits", FUNCDCM_NONE ),
2190 ENTRY( 0x0050, 0x0018, "DS", "DeviceVolume", FUNCDCM_NONE ),
2191 ENTRY( 0x0050, 0x0019, "DS", "InterMarkerDistance", FUNCDCM_NONE ),
2192 ENTRY( 0x0050, 0x0020, "LO", "DeviceDescription", FUNCDCM_NONE ),
2193 ENTRY( 0x0050, 0x0030, "SQ", "CodedInterventionDeviceSequence", FUNCDCM_NONE ),
2194 ENTRY( 0x0051, 0x0010, "xs", "Image Text", FUNCDCM_NONE ),
2195 ENTRY( 0x0054, 0x0000, "UL", "Nuclear Acquisition Group Length", FUNCDCM_NONE ),
2196 ENTRY( 0x0054, 0x0010, "US", "Energy Window Vector", FUNCDCM_NONE ),
2197 ENTRY( 0x0054, 0x0011, "US", "Number of Energy Windows", FUNCDCM_NONE ),
2198 ENTRY( 0x0054, 0x0012, "SQ", "Energy Window Information Sequence", FUNCDCM_NONE ),
2199 ENTRY( 0x0054, 0x0013, "SQ", "Energy Window Range Sequence", FUNCDCM_NONE ),
2200 ENTRY( 0x0054, 0x0014, "DS", "Energy Window Lower Limit", FUNCDCM_NONE ),
2201 ENTRY( 0x0054, 0x0015, "DS", "Energy Window Upper Limit", FUNCDCM_NONE ),
2202 ENTRY( 0x0054, 0x0016, "SQ", "Radiopharmaceutical Information Sequence", FUNCDCM_NONE ),
2203 ENTRY( 0x0054, 0x0017, "IS", "Residual Syringe Counts", FUNCDCM_NONE ),
2204 ENTRY( 0x0054, 0x0018, "SH", "Energy Window Name", FUNCDCM_NONE ),
2205 ENTRY( 0x0054, 0x0020, "US", "Detector Vector", FUNCDCM_NONE ),
2206 ENTRY( 0x0054, 0x0021, "US", "Number of Detectors", FUNCDCM_NONE ),
2207 ENTRY( 0x0054, 0x0022, "SQ", "Detector Information Sequence", FUNCDCM_NONE ),
2208 ENTRY( 0x0054, 0x0030, "US", "Phase Vector", FUNCDCM_NONE ),
2209 ENTRY( 0x0054, 0x0031, "US", "Number of Phases", FUNCDCM_NONE ),
2210 ENTRY( 0x0054, 0x0032, "SQ", "Phase Information Sequence", FUNCDCM_NONE ),
2211 ENTRY( 0x0054, 0x0033, "US", "Number of Frames In Phase", FUNCDCM_NONE ),
2212 ENTRY( 0x0054, 0x0036, "IS", "Phase Delay", FUNCDCM_NONE ),
2213 ENTRY( 0x0054, 0x0038, "IS", "Pause Between Frames", FUNCDCM_NONE ),
2214 ENTRY( 0x0054, 0x0050, "US", "Rotation Vector", FUNCDCM_NONE ),
2215 ENTRY( 0x0054, 0x0051, "US", "Number of Rotations", FUNCDCM_NONE ),
2216 ENTRY( 0x0054, 0x0052, "SQ", "Rotation Information Sequence", FUNCDCM_NONE ),
2217 ENTRY( 0x0054, 0x0053, "US", "Number of Frames In Rotation", FUNCDCM_NONE ),
2218 ENTRY( 0x0054, 0x0060, "US", "R-R Interval Vector", FUNCDCM_NONE ),
2219 ENTRY( 0x0054, 0x0061, "US", "Number of R-R Intervals", FUNCDCM_NONE ),
2220 ENTRY( 0x0054, 0x0062, "SQ", "Gated Information Sequence", FUNCDCM_NONE ),
2221 ENTRY( 0x0054, 0x0063, "SQ", "Data Information Sequence", FUNCDCM_NONE ),
2222 ENTRY( 0x0054, 0x0070, "US", "Time Slot Vector", FUNCDCM_NONE ),
2223 ENTRY( 0x0054, 0x0071, "US", "Number of Time Slots", FUNCDCM_NONE ),
2224 ENTRY( 0x0054, 0x0072, "SQ", "Time Slot Information Sequence", FUNCDCM_NONE ),
2225 ENTRY( 0x0054, 0x0073, "DS", "Time Slot Time", FUNCDCM_NONE ),
2226 ENTRY( 0x0054, 0x0080, "US", "Slice Vector", FUNCDCM_NONE ),
2227 ENTRY( 0x0054, 0x0081, "US", "Number of Slices", FUNCDCM_NONE ),
2228 ENTRY( 0x0054, 0x0090, "US", "Angular View Vector", FUNCDCM_NONE ),
2229 ENTRY( 0x0054, 0x0100, "US", "Time Slice Vector", FUNCDCM_NONE ),
2230 ENTRY( 0x0054, 0x0101, "US", "Number Of Time Slices", FUNCDCM_NONE ),
2231 ENTRY( 0x0054, 0x0200, "DS", "Start Angle", FUNCDCM_NONE ),
2232 ENTRY( 0x0054, 0x0202, "CS", "Type of Detector Motion", FUNCDCM_NONE ),
2233 ENTRY( 0x0054, 0x0210, "IS", "Trigger Vector", FUNCDCM_NONE ),
2234 ENTRY( 0x0054, 0x0211, "US", "Number of Triggers in Phase", FUNCDCM_NONE ),
2235 ENTRY( 0x0054, 0x0220, "SQ", "View Code Sequence", FUNCDCM_NONE ),
2236 ENTRY( 0x0054, 0x0222, "SQ", "View Modifier Code Sequence", FUNCDCM_NONE ),
2237 ENTRY( 0x0054, 0x0300, "SQ", "Radionuclide Code Sequence", FUNCDCM_NONE ),
2238 ENTRY( 0x0054, 0x0302, "SQ", "Radiopharmaceutical Route Code Sequence", FUNCDCM_NONE ),
2239 ENTRY( 0x0054, 0x0304, "SQ", "Radiopharmaceutical Code Sequence", FUNCDCM_NONE ),
2240 ENTRY( 0x0054, 0x0306, "SQ", "Calibration Data Sequence", FUNCDCM_NONE ),
2241 ENTRY( 0x0054, 0x0308, "US", "Energy Window Number", FUNCDCM_NONE ),
2242 ENTRY( 0x0054, 0x0400, "SH", "Image ID", FUNCDCM_NONE ),
2243 ENTRY( 0x0054, 0x0410, "SQ", "Patient Orientation Code Sequence", FUNCDCM_NONE ),
2244 ENTRY( 0x0054, 0x0412, "SQ", "Patient Orientation Modifier Code Sequence", FUNCDCM_NONE ),
2245 ENTRY( 0x0054, 0x0414, "SQ", "Patient Gantry Relationship Code Sequence", FUNCDCM_NONE ),
2246 ENTRY( 0x0054, 0x1000, "CS", "Positron Emission Tomography Series Type", FUNCDCM_NONE ),
2247 ENTRY( 0x0054, 0x1001, "CS", "Positron Emission Tomography Units", FUNCDCM_NONE ),
2248 ENTRY( 0x0054, 0x1002, "CS", "Counts Source", FUNCDCM_NONE ),
2249 ENTRY( 0x0054, 0x1004, "CS", "Reprojection Method", FUNCDCM_NONE ),
2250 ENTRY( 0x0054, 0x1100, "CS", "Randoms Correction Method", FUNCDCM_NONE ),
2251 ENTRY( 0x0054, 0x1101, "LO", "Attenuation Correction Method", FUNCDCM_NONE ),
2252 ENTRY( 0x0054, 0x1102, "CS", "Decay Correction", FUNCDCM_NONE ),
2253 ENTRY( 0x0054, 0x1103, "LO", "Reconstruction Method", FUNCDCM_NONE ),
2254 ENTRY( 0x0054, 0x1104, "LO", "Detector Lines of Response Used", FUNCDCM_NONE ),
2255 ENTRY( 0x0054, 0x1105, "LO", "Scatter Correction Method", FUNCDCM_NONE ),
2256 ENTRY( 0x0054, 0x1200, "DS", "Axial Acceptance", FUNCDCM_NONE ),
2257 ENTRY( 0x0054, 0x1201, "IS", "Axial Mash", FUNCDCM_NONE ),
2258 ENTRY( 0x0054, 0x1202, "IS", "Transverse Mash", FUNCDCM_NONE ),
2259 ENTRY( 0x0054, 0x1203, "DS", "Detector Element Size", FUNCDCM_NONE ),
2260 ENTRY( 0x0054, 0x1210, "DS", "Coincidence Window Width", FUNCDCM_NONE ),
2261 ENTRY( 0x0054, 0x1220, "CS", "Secondary Counts Type", FUNCDCM_NONE ),
2262 ENTRY( 0x0054, 0x1300, "DS", "Frame Reference Time", FUNCDCM_NONE ),
2263 ENTRY( 0x0054, 0x1310, "IS", "Primary Prompts Counts Accumulated", FUNCDCM_NONE ),
2264 ENTRY( 0x0054, 0x1311, "IS", "Secondary Counts Accumulated", FUNCDCM_NONE ),
2265 ENTRY( 0x0054, 0x1320, "DS", "Slice Sensitivity Factor", FUNCDCM_NONE ),
2266 ENTRY( 0x0054, 0x1321, "DS", "Decay Factor", FUNCDCM_NONE ),
2267 ENTRY( 0x0054, 0x1322, "DS", "Dose Calibration Factor", FUNCDCM_NONE ),
2268 ENTRY( 0x0054, 0x1323, "DS", "Scatter Fraction Factor", FUNCDCM_NONE ),
2269 ENTRY( 0x0054, 0x1324, "DS", "Dead Time Factor", FUNCDCM_NONE ),
2270 ENTRY( 0x0054, 0x1330, "US", "Image Index", FUNCDCM_NONE ),
2271 ENTRY( 0x0054, 0x1400, "CS", "Counts Included", FUNCDCM_NONE ),
2272 ENTRY( 0x0054, 0x1401, "CS", "Dead Time Correction Flag", FUNCDCM_NONE ),
2273 ENTRY( 0x0055, 0x0046, "LT", "Current Ward", FUNCDCM_NONE ),
2274 ENTRY( 0x0058, 0x0000, "SQ", "?", FUNCDCM_NONE ),
2275 ENTRY( 0x0060, 0x3000, "SQ", "Histogram Sequence", FUNCDCM_NONE ),
2276 ENTRY( 0x0060, 0x3002, "US", "Histogram Number of Bins", FUNCDCM_NONE ),
2277 ENTRY( 0x0060, 0x3004, "xs", "Histogram First Bin Value", FUNCDCM_NONE ),
2278 ENTRY( 0x0060, 0x3006, "xs", "Histogram Last Bin Value", FUNCDCM_NONE ),
2279 ENTRY( 0x0060, 0x3008, "US", "Histogram Bin Width", FUNCDCM_NONE ),
2280 ENTRY( 0x0060, 0x3010, "LO", "Histogram Explanation", FUNCDCM_NONE ),
2281 ENTRY( 0x0060, 0x3020, "UL", "Histogram Data", FUNCDCM_NONE ),
2282 ENTRY( 0x0070, 0x0001, "SQ", "Graphic Annotation Sequence", FUNCDCM_NONE ),
2283 ENTRY( 0x0070, 0x0002, "CS", "Graphic Layer", FUNCDCM_NONE ),
2284 ENTRY( 0x0070, 0x0003, "CS", "Bounding Box Annotation Units", FUNCDCM_NONE ),
2285 ENTRY( 0x0070, 0x0004, "CS", "Anchor Point Annotation Units", FUNCDCM_NONE ),
2286 ENTRY( 0x0070, 0x0005, "CS", "Graphic Annotation Units", FUNCDCM_NONE ),
2287 ENTRY( 0x0070, 0x0006, "ST", "Unformatted Text Value", FUNCDCM_NONE ),
2288 ENTRY( 0x0070, 0x0008, "SQ", "Text Object Sequence", FUNCDCM_NONE ),
2289 ENTRY( 0x0070, 0x0009, "SQ", "Graphic Object Sequence", FUNCDCM_NONE ),
2290 ENTRY( 0x0070, 0x0010, "FL", "Bounding Box TLHC", FUNCDCM_NONE ),
2291 ENTRY( 0x0070, 0x0011, "FL", "Bounding Box BRHC", FUNCDCM_NONE ),
2292 ENTRY( 0x0070, 0x0014, "FL", "Anchor Point", FUNCDCM_NONE ),
2293 ENTRY( 0x0070, 0x0015, "CS", "Anchor Point Visibility", FUNCDCM_NONE ),
2294 ENTRY( 0x0070, 0x0020, "US", "Graphic Dimensions", FUNCDCM_NONE ),
2295 ENTRY( 0x0070, 0x0021, "US", "Number Of Graphic Points", FUNCDCM_NONE ),
2296 ENTRY( 0x0070, 0x0022, "FL", "Graphic Data", FUNCDCM_NONE ),
2297 ENTRY( 0x0070, 0x0023, "CS", "Graphic Type", FUNCDCM_NONE ),
2298 ENTRY( 0x0070, 0x0024, "CS", "Graphic Filled", FUNCDCM_NONE ),
2299 ENTRY( 0x0070, 0x0040, "IS", "Image Rotation", FUNCDCM_NONE ),
2300 ENTRY( 0x0070, 0x0041, "CS", "Image Horizontal Flip", FUNCDCM_NONE ),
2301 ENTRY( 0x0070, 0x0050, "US", "Displayed Area TLHC", FUNCDCM_NONE ),
2302 ENTRY( 0x0070, 0x0051, "US", "Displayed Area BRHC", FUNCDCM_NONE ),
2303 ENTRY( 0x0070, 0x0060, "SQ", "Graphic Layer Sequence", FUNCDCM_NONE ),
2304 ENTRY( 0x0070, 0x0062, "IS", "Graphic Layer Order", FUNCDCM_NONE ),
2305 ENTRY( 0x0070, 0x0066, "US", "Graphic Layer Recommended Display Value", FUNCDCM_NONE ),
2306 ENTRY( 0x0070, 0x0068, "LO", "Graphic Layer Description", FUNCDCM_NONE ),
2307 ENTRY( 0x0070, 0x0080, "CS", "Presentation Label", FUNCDCM_NONE ),
2308 ENTRY( 0x0070, 0x0081, "LO", "Presentation Description", FUNCDCM_NONE ),
2309 ENTRY( 0x0070, 0x0082, "DA", "Presentation Creation Date", FUNCDCM_NONE ),
2310 ENTRY( 0x0070, 0x0083, "TM", "Presentation Creation Time", FUNCDCM_NONE ),
2311 ENTRY( 0x0070, 0x0084, "PN", "Presentation Creator's Name", FUNCDCM_NONE ),
2312 ENTRY( 0x0087, 0x0010, "CS", "Media Type", FUNCDCM_NONE ),
2313 ENTRY( 0x0087, 0x0020, "CS", "Media Location", FUNCDCM_NONE ),
2314 ENTRY( 0x0087, 0x0050, "IS", "Estimated Retrieve Time", FUNCDCM_NONE ),
2315 ENTRY( 0x0088, 0x0000, "UL", "Storage Group Length", FUNCDCM_NONE ),
2316 ENTRY( 0x0088, 0x0130, "SH", "Storage Media FileSet ID", FUNCDCM_NONE ),
2317 ENTRY( 0x0088, 0x0140, "UI", "Storage Media FileSet UID", FUNCDCM_NONE ),
2318 ENTRY( 0x0088, 0x0200, "SQ", "Icon Image Sequence", FUNCDCM_NONE ),
2319 ENTRY( 0x0088, 0x0904, "LO", "Topic Title", FUNCDCM_NONE ),
2320 ENTRY( 0x0088, 0x0906, "ST", "Topic Subject", FUNCDCM_NONE ),
2321 ENTRY( 0x0088, 0x0910, "LO", "Topic Author", FUNCDCM_NONE ),
2322 ENTRY( 0x0088, 0x0912, "LO", "Topic Key Words", FUNCDCM_NONE ),
2323 ENTRY( 0x0095, 0x0001, "LT", "Examination Folder ID", FUNCDCM_NONE ),
2324 ENTRY( 0x0095, 0x0004, "UL", "Folder Reported Status", FUNCDCM_NONE ),
2325 ENTRY( 0x0095, 0x0005, "LT", "Folder Reporting Radiologist", FUNCDCM_NONE ),
2326 ENTRY( 0x0095, 0x0007, "LT", "SIENET ISA PLA", FUNCDCM_NONE ),
2327 ENTRY( 0x0099, 0x0002, "UL", "Data Object Attributes", FUNCDCM_NONE ),
2328 ENTRY( 0x00e1, 0x0001, "US", "Data Dictionary Version", FUNCDCM_NONE ),
2329 ENTRY( 0x00e1, 0x0014, "LT", "?", FUNCDCM_NONE ),
2330 ENTRY( 0x00e1, 0x0022, "DS", "?", FUNCDCM_NONE ),
2331 ENTRY( 0x00e1, 0x0023, "DS", "?", FUNCDCM_NONE ),
2332 ENTRY( 0x00e1, 0x0024, "LT", "?", FUNCDCM_NONE ),
2333 ENTRY( 0x00e1, 0x0025, "LT", "?", FUNCDCM_NONE ),
2334 ENTRY( 0x00e1, 0x0040, "SH", "Offset From CT MR Images", FUNCDCM_NONE ),
2335 ENTRY( 0x0193, 0x0002, "DS", "RIS Key", FUNCDCM_NONE ),
2336 ENTRY( 0x0307, 0x0001, "UN", "RIS Worklist IMGEF", FUNCDCM_NONE ),
2337 ENTRY( 0x0309, 0x0001, "UN", "RIS Report IMGEF", FUNCDCM_NONE ),
2338 ENTRY( 0x0601, 0x0000, "SH", "Implementation Version", FUNCDCM_NONE ),
2339 ENTRY( 0x0601, 0x0020, "DS", "Relative Table Position", FUNCDCM_NONE ),
2340 ENTRY( 0x0601, 0x0021, "DS", "Relative Table Height", FUNCDCM_NONE ),
2341 ENTRY( 0x0601, 0x0030, "SH", "Surview Direction", FUNCDCM_NONE ),
2342 ENTRY( 0x0601, 0x0031, "DS", "Surview Length", FUNCDCM_NONE ),
2343 ENTRY( 0x0601, 0x0050, "SH", "Image View Type", FUNCDCM_NONE ),
2344 ENTRY( 0x0601, 0x0070, "DS", "Batch Number", FUNCDCM_NONE ),
2345 ENTRY( 0x0601, 0x0071, "DS", "Batch Size", FUNCDCM_NONE ),
2346 ENTRY( 0x0601, 0x0072, "DS", "Batch Slice Number", FUNCDCM_NONE ),
2347 ENTRY( 0x1000, 0x0000, "xs", "?", FUNCDCM_NONE ),
2348 ENTRY( 0x1000, 0x0001, "US", "Run Length Triplet", FUNCDCM_NONE ),
2349 ENTRY( 0x1000, 0x0002, "US", "Huffman Table Size", FUNCDCM_NONE ),
2350 ENTRY( 0x1000, 0x0003, "US", "Huffman Table Triplet", FUNCDCM_NONE ),
2351 ENTRY( 0x1000, 0x0004, "US", "Shift Table Size", FUNCDCM_NONE ),
2352 ENTRY( 0x1000, 0x0005, "US", "Shift Table Triplet", FUNCDCM_NONE ),
2353 ENTRY( 0x1010, 0x0000, "xs", "?", FUNCDCM_NONE ),
2354 ENTRY( 0x1369, 0x0000, "US", "?", FUNCDCM_NONE ),
2355 ENTRY( 0x2000, 0x0000, "UL", "Film Session Group Length", FUNCDCM_NONE ),
2356 ENTRY( 0x2000, 0x0010, "IS", "Number of Copies", FUNCDCM_NONE ),
2357 ENTRY( 0x2000, 0x0020, "CS", "Print Priority", FUNCDCM_NONE ),
2358 ENTRY( 0x2000, 0x0030, "CS", "Medium Type", FUNCDCM_NONE ),
2359 ENTRY( 0x2000, 0x0040, "CS", "Film Destination", FUNCDCM_NONE ),
2360 ENTRY( 0x2000, 0x0050, "LO", "Film Session Label", FUNCDCM_NONE ),
2361 ENTRY( 0x2000, 0x0060, "IS", "Memory Allocation", FUNCDCM_NONE ),
2362 ENTRY( 0x2000, 0x0500, "SQ", "Referenced Film Box Sequence", FUNCDCM_NONE ),
2363 ENTRY( 0x2010, 0x0000, "UL", "Film Box Group Length", FUNCDCM_NONE ),
2364 ENTRY( 0x2010, 0x0010, "ST", "Image Display Format", FUNCDCM_NONE ),
2365 ENTRY( 0x2010, 0x0030, "CS", "Annotation Display Format ID", FUNCDCM_NONE ),
2366 ENTRY( 0x2010, 0x0040, "CS", "Film Orientation", FUNCDCM_NONE ),
2367 ENTRY( 0x2010, 0x0050, "CS", "Film Size ID", FUNCDCM_NONE ),
2368 ENTRY( 0x2010, 0x0060, "CS", "Magnification Type", FUNCDCM_NONE ),
2369 ENTRY( 0x2010, 0x0080, "CS", "Smoothing Type", FUNCDCM_NONE ),
2370 ENTRY( 0x2010, 0x0100, "CS", "Border Density", FUNCDCM_NONE ),
2371 ENTRY( 0x2010, 0x0110, "CS", "Empty Image Density", FUNCDCM_NONE ),
2372 ENTRY( 0x2010, 0x0120, "US", "Min Density", FUNCDCM_NONE ),
2373 ENTRY( 0x2010, 0x0130, "US", "Max Density", FUNCDCM_NONE ),
2374 ENTRY( 0x2010, 0x0140, "CS", "Trim", FUNCDCM_NONE ),
2375 ENTRY( 0x2010, 0x0150, "ST", "Configuration Information", FUNCDCM_NONE ),
2376 ENTRY( 0x2010, 0x0500, "SQ", "Referenced Film Session Sequence", FUNCDCM_NONE ),
2377 ENTRY( 0x2010, 0x0510, "SQ", "Referenced Image Box Sequence", FUNCDCM_NONE ),
2378 ENTRY( 0x2010, 0x0520, "SQ", "Referenced Basic Annotation Box Sequence", FUNCDCM_NONE ),
2379 ENTRY( 0x2020, 0x0000, "UL", "Image Box Group Length", FUNCDCM_NONE ),
2380 ENTRY( 0x2020, 0x0010, "US", "Image Box Position", FUNCDCM_NONE ),
2381 ENTRY( 0x2020, 0x0020, "CS", "Polarity", FUNCDCM_NONE ),
2382 ENTRY( 0x2020, 0x0030, "DS", "Requested Image Size", FUNCDCM_NONE ),
2383 ENTRY( 0x2020, 0x0110, "SQ", "Preformatted Grayscale Image Sequence", FUNCDCM_NONE ),
2384 ENTRY( 0x2020, 0x0111, "SQ", "Preformatted Color Image Sequence", FUNCDCM_NONE ),
2385 ENTRY( 0x2020, 0x0130, "SQ", "Referenced Image Overlay Box Sequence", FUNCDCM_NONE ),
2386 ENTRY( 0x2020, 0x0140, "SQ", "Referenced VOI LUT Box Sequence", FUNCDCM_NONE ),
2387 ENTRY( 0x2030, 0x0000, "UL", "Annotation Group Length", FUNCDCM_NONE ),
2388 ENTRY( 0x2030, 0x0010, "US", "Annotation Position", FUNCDCM_NONE ),
2389 ENTRY( 0x2030, 0x0020, "LO", "Text String", FUNCDCM_NONE ),
2390 ENTRY( 0x2040, 0x0000, "UL", "Overlay Box Group Length", FUNCDCM_NONE ),
2391 ENTRY( 0x2040, 0x0010, "SQ", "Referenced Overlay Plane Sequence", FUNCDCM_NONE ),
2392 ENTRY( 0x2040, 0x0011, "US", "Referenced Overlay Plane Groups", FUNCDCM_NONE ),
2393 ENTRY( 0x2040, 0x0060, "CS", "Overlay Magnification Type", FUNCDCM_NONE ),
2394 ENTRY( 0x2040, 0x0070, "CS", "Overlay Smoothing Type", FUNCDCM_NONE ),
2395 ENTRY( 0x2040, 0x0080, "CS", "Overlay Foreground Density", FUNCDCM_NONE ),
2396 ENTRY( 0x2040, 0x0090, "CS", "Overlay Mode", FUNCDCM_NONE ),
2397 ENTRY( 0x2040, 0x0100, "CS", "Threshold Density", FUNCDCM_NONE ),
2398 ENTRY( 0x2040, 0x0500, "SQ", "Referenced Overlay Image Box Sequence", FUNCDCM_NONE ),
2399 ENTRY( 0x2050, 0x0010, "SQ", "Presentation LUT Sequence", FUNCDCM_NONE ),
2400 ENTRY( 0x2050, 0x0020, "CS", "Presentation LUT Shape", FUNCDCM_NONE ),
2401 ENTRY( 0x2100, 0x0000, "UL", "Print Job Group Length", FUNCDCM_NONE ),
2402 ENTRY( 0x2100, 0x0020, "CS", "Execution Status", FUNCDCM_NONE ),
2403 ENTRY( 0x2100, 0x0030, "CS", "Execution Status Info", FUNCDCM_NONE ),
2404 ENTRY( 0x2100, 0x0040, "DA", "Creation Date", FUNCDCM_NONE ),
2405 ENTRY( 0x2100, 0x0050, "TM", "Creation Time", FUNCDCM_NONE ),
2406 ENTRY( 0x2100, 0x0070, "AE", "Originator", FUNCDCM_NONE ),
2407 ENTRY( 0x2100, 0x0500, "SQ", "Referenced Print Job Sequence", FUNCDCM_NONE ),
2408 ENTRY( 0x2110, 0x0000, "UL", "Printer Group Length", FUNCDCM_NONE ),
2409 ENTRY( 0x2110, 0x0010, "CS", "Printer Status", FUNCDCM_NONE ),
2410 ENTRY( 0x2110, 0x0020, "CS", "Printer Status Info", FUNCDCM_NONE ),
2411 ENTRY( 0x2110, 0x0030, "LO", "Printer Name", FUNCDCM_NONE ),
2412 ENTRY( 0x2110, 0x0099, "SH", "Print Queue ID", FUNCDCM_NONE ),
2413 ENTRY( 0x3002, 0x0002, "SH", "RT Image Label", FUNCDCM_NONE ),
2414 ENTRY( 0x3002, 0x0003, "LO", "RT Image Name", FUNCDCM_NONE ),
2415 ENTRY( 0x3002, 0x0004, "ST", "RT Image Description", FUNCDCM_NONE ),
2416 ENTRY( 0x3002, 0x000a, "CS", "Reported Values Origin", FUNCDCM_NONE ),
2417 ENTRY( 0x3002, 0x000c, "CS", "RT Image Plane", FUNCDCM_NONE ),
2418 ENTRY( 0x3002, 0x000e, "DS", "X-Ray Image Receptor Angle", FUNCDCM_NONE ),
2419 ENTRY( 0x3002, 0x0010, "DS", "RTImageOrientation", FUNCDCM_NONE ),
2420 ENTRY( 0x3002, 0x0011, "DS", "Image Plane Pixel Spacing", FUNCDCM_NONE ),
2421 ENTRY( 0x3002, 0x0012, "DS", "RT Image Position", FUNCDCM_NONE ),
2422 ENTRY( 0x3002, 0x0020, "SH", "Radiation Machine Name", FUNCDCM_NONE ),
2423 ENTRY( 0x3002, 0x0022, "DS", "Radiation Machine SAD", FUNCDCM_NONE ),
2424 ENTRY( 0x3002, 0x0024, "DS", "Radiation Machine SSD", FUNCDCM_NONE ),
2425 ENTRY( 0x3002, 0x0026, "DS", "RT Image SID", FUNCDCM_NONE ),
2426 ENTRY( 0x3002, 0x0028, "DS", "Source to Reference Object Distance", FUNCDCM_NONE ),
2427 ENTRY( 0x3002, 0x0029, "IS", "Fraction Number", FUNCDCM_NONE ),
2428 ENTRY( 0x3002, 0x0030, "SQ", "Exposure Sequence", FUNCDCM_NONE ),
2429 ENTRY( 0x3002, 0x0032, "DS", "Meterset Exposure", FUNCDCM_NONE ),
2430 ENTRY( 0x3004, 0x0001, "CS", "DVH Type", FUNCDCM_NONE ),
2431 ENTRY( 0x3004, 0x0002, "CS", "Dose Units", FUNCDCM_NONE ),
2432 ENTRY( 0x3004, 0x0004, "CS", "Dose Type", FUNCDCM_NONE ),
2433 ENTRY( 0x3004, 0x0006, "LO", "Dose Comment", FUNCDCM_NONE ),
2434 ENTRY( 0x3004, 0x0008, "DS", "Normalization Point", FUNCDCM_NONE ),
2435 ENTRY( 0x3004, 0x000a, "CS", "Dose Summation Type", FUNCDCM_NONE ),
2436 ENTRY( 0x3004, 0x000c, "DS", "GridFrame Offset Vector", FUNCDCM_NONE ),
2437 ENTRY( 0x3004, 0x000e, "DS", "Dose Grid Scaling", FUNCDCM_NONE ),
2438 ENTRY( 0x3004, 0x0010, "SQ", "RT Dose ROI Sequence", FUNCDCM_NONE ),
2439 ENTRY( 0x3004, 0x0012, "DS", "Dose Value", FUNCDCM_NONE ),
2440 ENTRY( 0x3004, 0x0040, "DS", "DVH Normalization Point", FUNCDCM_NONE ),
2441 ENTRY( 0x3004, 0x0042, "DS", "DVH Normalization Dose Value", FUNCDCM_NONE ),
2442 ENTRY( 0x3004, 0x0050, "SQ", "DVH Sequence", FUNCDCM_NONE ),
2443 ENTRY( 0x3004, 0x0052, "DS", "DVH Dose Scaling", FUNCDCM_NONE ),
2444 ENTRY( 0x3004, 0x0054, "CS", "DVH Volume Units", FUNCDCM_NONE ),
2445 ENTRY( 0x3004, 0x0056, "IS", "DVH Number of Bins", FUNCDCM_NONE ),
2446 ENTRY( 0x3004, 0x0058, "DS", "DVH Data", FUNCDCM_NONE ),
2447 ENTRY( 0x3004, 0x0060, "SQ", "DVH Referenced ROI Sequence", FUNCDCM_NONE ),
2448 ENTRY( 0x3004, 0x0062, "CS", "DVH ROI Contribution Type", FUNCDCM_NONE ),
2449 ENTRY( 0x3004, 0x0070, "DS", "DVH Minimum Dose", FUNCDCM_NONE ),
2450 ENTRY( 0x3004, 0x0072, "DS", "DVH Maximum Dose", FUNCDCM_NONE ),
2451 ENTRY( 0x3004, 0x0074, "DS", "DVH Mean Dose", FUNCDCM_NONE ),
2452 ENTRY( 0x3006, 0x0002, "SH", "Structure Set Label", FUNCDCM_NONE ),
2453 ENTRY( 0x3006, 0x0004, "LO", "Structure Set Name", FUNCDCM_NONE ),
2454 ENTRY( 0x3006, 0x0006, "ST", "Structure Set Description", FUNCDCM_NONE ),
2455 ENTRY( 0x3006, 0x0008, "DA", "Structure Set Date", FUNCDCM_NONE ),
2456 ENTRY( 0x3006, 0x0009, "TM", "Structure Set Time", FUNCDCM_NONE ),
2457 ENTRY( 0x3006, 0x0010, "SQ", "Referenced Frame of Reference Sequence", FUNCDCM_NONE ),
2458 ENTRY( 0x3006, 0x0012, "SQ", "RT Referenced Study Sequence", FUNCDCM_NONE ),
2459 ENTRY( 0x3006, 0x0014, "SQ", "RT Referenced Series Sequence", FUNCDCM_NONE ),
2460 ENTRY( 0x3006, 0x0016, "SQ", "Contour Image Sequence", FUNCDCM_NONE ),
2461 ENTRY( 0x3006, 0x0020, "SQ", "Structure Set ROI Sequence", FUNCDCM_NONE ),
2462 ENTRY( 0x3006, 0x0022, "IS", "ROI Number", FUNCDCM_NONE ),
2463 ENTRY( 0x3006, 0x0024, "UI", "Referenced Frame of Reference UID", FUNCDCM_NONE ),
2464 ENTRY( 0x3006, 0x0026, "LO", "ROI Name", FUNCDCM_NONE ),
2465 ENTRY( 0x3006, 0x0028, "ST", "ROI Description", FUNCDCM_NONE ),
2466 ENTRY( 0x3006, 0x002a, "IS", "ROI Display Color", FUNCDCM_NONE ),
2467 ENTRY( 0x3006, 0x002c, "DS", "ROI Volume", FUNCDCM_NONE ),
2468 ENTRY( 0x3006, 0x0030, "SQ", "RT Related ROI Sequence", FUNCDCM_NONE ),
2469 ENTRY( 0x3006, 0x0033, "CS", "RT ROI Relationship", FUNCDCM_NONE ),
2470 ENTRY( 0x3006, 0x0036, "CS", "ROI Generation Algorithm", FUNCDCM_NONE ),
2471 ENTRY( 0x3006, 0x0038, "LO", "ROI Generation Description", FUNCDCM_NONE ),
2472 ENTRY( 0x3006, 0x0039, "SQ", "ROI Contour Sequence", FUNCDCM_NONE ),
2473 ENTRY( 0x3006, 0x0040, "SQ", "Contour Sequence", FUNCDCM_NONE ),
2474 ENTRY( 0x3006, 0x0042, "CS", "Contour Geometric Type", FUNCDCM_NONE ),
2475 ENTRY( 0x3006, 0x0044, "DS", "Contour SlabT hickness", FUNCDCM_NONE ),
2476 ENTRY( 0x3006, 0x0045, "DS", "Contour Offset Vector", FUNCDCM_NONE ),
2477 ENTRY( 0x3006, 0x0046, "IS", "Number of Contour Points", FUNCDCM_NONE ),
2478 ENTRY( 0x3006, 0x0050, "DS", "Contour Data", FUNCDCM_NONE ),
2479 ENTRY( 0x3006, 0x0080, "SQ", "RT ROI Observations Sequence", FUNCDCM_NONE ),
2480 ENTRY( 0x3006, 0x0082, "IS", "Observation Number", FUNCDCM_NONE ),
2481 ENTRY( 0x3006, 0x0084, "IS", "Referenced ROI Number", FUNCDCM_NONE ),
2482 ENTRY( 0x3006, 0x0085, "SH", "ROI Observation Label", FUNCDCM_NONE ),
2483 ENTRY( 0x3006, 0x0086, "SQ", "RT ROI Identification Code Sequence", FUNCDCM_NONE ),
2484 ENTRY( 0x3006, 0x0088, "ST", "ROI Observation Description", FUNCDCM_NONE ),
2485 ENTRY( 0x3006, 0x00a0, "SQ", "Related RT ROI Observations Sequence", FUNCDCM_NONE ),
2486 ENTRY( 0x3006, 0x00a4, "CS", "RT ROI Interpreted Type", FUNCDCM_NONE ),
2487 ENTRY( 0x3006, 0x00a6, "PN", "ROI Interpreter", FUNCDCM_NONE ),
2488 ENTRY( 0x3006, 0x00b0, "SQ", "ROI Physical Properties Sequence", FUNCDCM_NONE ),
2489 ENTRY( 0x3006, 0x00b2, "CS", "ROI Physical Property", FUNCDCM_NONE ),
2490 ENTRY( 0x3006, 0x00b4, "DS", "ROI Physical Property Value", FUNCDCM_NONE ),
2491 ENTRY( 0x3006, 0x00c0, "SQ", "Frame of Reference Relationship Sequence", FUNCDCM_NONE ),
2492 ENTRY( 0x3006, 0x00c2, "UI", "Related Frame of Reference UID", FUNCDCM_NONE ),
2493 ENTRY( 0x3006, 0x00c4, "CS", "Frame of Reference Transformation Type", FUNCDCM_NONE ),
2494 ENTRY( 0x3006, 0x00c6, "DS", "Frame of Reference Transformation Matrix", FUNCDCM_NONE ),
2495 ENTRY( 0x3006, 0x00c8, "LO", "Frame of Reference Transformation Comment", FUNCDCM_NONE ),
2496 ENTRY( 0x300a, 0x0002, "SH", "RT Plan Label", FUNCDCM_NONE ),
2497 ENTRY( 0x300a, 0x0003, "LO", "RT Plan Name", FUNCDCM_NONE ),
2498 ENTRY( 0x300a, 0x0004, "ST", "RT Plan Description", FUNCDCM_NONE ),
2499 ENTRY( 0x300a, 0x0006, "DA", "RT Plan Date", FUNCDCM_NONE ),
2500 ENTRY( 0x300a, 0x0007, "TM", "RT Plan Time", FUNCDCM_NONE ),
2501 ENTRY( 0x300a, 0x0009, "LO", "Treatment Protocols", FUNCDCM_NONE ),
2502 ENTRY( 0x300a, 0x000a, "CS", "Treatment Intent", FUNCDCM_NONE ),
2503 ENTRY( 0x300a, 0x000b, "LO", "Treatment Sites", FUNCDCM_NONE ),
2504 ENTRY( 0x300a, 0x000c, "CS", "RT Plan Geometry", FUNCDCM_NONE ),
2505 ENTRY( 0x300a, 0x000e, "ST", "Prescription Description", FUNCDCM_NONE ),
2506 ENTRY( 0x300a, 0x0010, "SQ", "Dose ReferenceSequence", FUNCDCM_NONE ),
2507 ENTRY( 0x300a, 0x0012, "IS", "Dose ReferenceNumber", FUNCDCM_NONE ),
2508 ENTRY( 0x300a, 0x0014, "CS", "Dose Reference Structure Type", FUNCDCM_NONE ),
2509 ENTRY( 0x300a, 0x0016, "LO", "Dose ReferenceDescription", FUNCDCM_NONE ),
2510 ENTRY( 0x300a, 0x0018, "DS", "Dose Reference Point Coordinates", FUNCDCM_NONE ),
2511 ENTRY( 0x300a, 0x001a, "DS", "Nominal Prior Dose", FUNCDCM_NONE ),
2512 ENTRY( 0x300a, 0x0020, "CS", "Dose Reference Type", FUNCDCM_NONE ),
2513 ENTRY( 0x300a, 0x0021, "DS", "Constraint Weight", FUNCDCM_NONE ),
2514 ENTRY( 0x300a, 0x0022, "DS", "Delivery Warning Dose", FUNCDCM_NONE ),
2515 ENTRY( 0x300a, 0x0023, "DS", "Delivery Maximum Dose", FUNCDCM_NONE ),
2516 ENTRY( 0x300a, 0x0025, "DS", "Target Minimum Dose", FUNCDCM_NONE ),
2517 ENTRY( 0x300a, 0x0026, "DS", "Target Prescription Dose", FUNCDCM_NONE ),
2518 ENTRY( 0x300a, 0x0027, "DS", "Target Maximum Dose", FUNCDCM_NONE ),
2519 ENTRY( 0x300a, 0x0028, "DS", "Target Underdose Volume Fraction", FUNCDCM_NONE ),
2520 ENTRY( 0x300a, 0x002a, "DS", "Organ at Risk Full-volume Dose", FUNCDCM_NONE ),
2521 ENTRY( 0x300a, 0x002b, "DS", "Organ at Risk Limit Dose", FUNCDCM_NONE ),
2522 ENTRY( 0x300a, 0x002c, "DS", "Organ at Risk Maximum Dose", FUNCDCM_NONE ),
2523 ENTRY( 0x300a, 0x002d, "DS", "Organ at Risk Overdose Volume Fraction", FUNCDCM_NONE ),
2524 ENTRY( 0x300a, 0x0040, "SQ", "Tolerance Table Sequence", FUNCDCM_NONE ),
2525 ENTRY( 0x300a, 0x0042, "IS", "Tolerance Table Number", FUNCDCM_NONE ),
2526 ENTRY( 0x300a, 0x0043, "SH", "Tolerance Table Label", FUNCDCM_NONE ),
2527 ENTRY( 0x300a, 0x0044, "DS", "Gantry Angle Tolerance", FUNCDCM_NONE ),
2528 ENTRY( 0x300a, 0x0046, "DS", "Beam Limiting Device Angle Tolerance", FUNCDCM_NONE ),
2529 ENTRY( 0x300a, 0x0048, "SQ", "Beam Limiting Device Tolerance Sequence", FUNCDCM_NONE ),
2530 ENTRY( 0x300a, 0x004a, "DS", "Beam Limiting Device Position Tolerance", FUNCDCM_NONE ),
2531 ENTRY( 0x300a, 0x004c, "DS", "Patient Support Angle Tolerance", FUNCDCM_NONE ),
2532 ENTRY( 0x300a, 0x004e, "DS", "Table Top Eccentric Angle Tolerance", FUNCDCM_NONE ),
2533 ENTRY( 0x300a, 0x0051, "DS", "Table Top Vertical Position Tolerance", FUNCDCM_NONE ),
2534 ENTRY( 0x300a, 0x0052, "DS", "Table Top Longitudinal Position Tolerance", FUNCDCM_NONE ),
2535 ENTRY( 0x300a, 0x0053, "DS", "Table Top Lateral Position Tolerance", FUNCDCM_NONE ),
2536 ENTRY( 0x300a, 0x0055, "CS", "RT Plan Relationship", FUNCDCM_NONE ),
2537 ENTRY( 0x300a, 0x0070, "SQ", "Fraction Group Sequence", FUNCDCM_NONE ),
2538 ENTRY( 0x300a, 0x0071, "IS", "Fraction Group Number", FUNCDCM_NONE ),
2539 ENTRY( 0x300a, 0x0078, "IS", "Number of Fractions Planned", FUNCDCM_NONE ),
2540 ENTRY( 0x300a, 0x0079, "IS", "Number of Fractions Per Day", FUNCDCM_NONE ),
2541 ENTRY( 0x300a, 0x007a, "IS", "Repeat Fraction Cycle Length", FUNCDCM_NONE ),
2542 ENTRY( 0x300a, 0x007b, "LT", "Fraction Pattern", FUNCDCM_NONE ),
2543 ENTRY( 0x300a, 0x0080, "IS", "Number of Beams", FUNCDCM_NONE ),
2544 ENTRY( 0x300a, 0x0082, "DS", "Beam Dose Specification Point", FUNCDCM_NONE ),
2545 ENTRY( 0x300a, 0x0084, "DS", "Beam Dose", FUNCDCM_NONE ),
2546 ENTRY( 0x300a, 0x0086, "DS", "Beam Meterset", FUNCDCM_NONE ),
2547 ENTRY( 0x300a, 0x00a0, "IS", "Number of Brachy Application Setups", FUNCDCM_NONE ),
2548 ENTRY( 0x300a, 0x00a2, "DS", "Brachy Application Setup Dose Specification Point", FUNCDCM_NONE ),
2549 ENTRY( 0x300a, 0x00a4, "DS", "Brachy Application Setup Dose", FUNCDCM_NONE ),
2550 ENTRY( 0x300a, 0x00b0, "SQ", "Beam Sequence", FUNCDCM_NONE ),
2551 ENTRY( 0x300a, 0x00b2, "SH", "Treatment Machine Name ", FUNCDCM_NONE ),
2552 ENTRY( 0x300a, 0x00b3, "CS", "Primary Dosimeter Unit", FUNCDCM_NONE ),
2553 ENTRY( 0x300a, 0x00b4, "DS", "Source-Axis Distance", FUNCDCM_NONE ),
2554 ENTRY( 0x300a, 0x00b6, "SQ", "Beam Limiting Device Sequence", FUNCDCM_NONE ),
2555 ENTRY( 0x300a, 0x00b8, "CS", "RT Beam Limiting Device Type", FUNCDCM_NONE ),
2556 ENTRY( 0x300a, 0x00ba, "DS", "Source to Beam Limiting Device Distance", FUNCDCM_NONE ),
2557 ENTRY( 0x300a, 0x00bc, "IS", "Number of Leaf/Jaw Pairs", FUNCDCM_NONE ),
2558 ENTRY( 0x300a, 0x00be, "DS", "Leaf Position Boundaries", FUNCDCM_NONE ),
2559 ENTRY( 0x300a, 0x00c0, "IS", "Beam Number", FUNCDCM_NONE ),
2560 ENTRY( 0x300a, 0x00c2, "LO", "Beam Name", FUNCDCM_NONE ),
2561 ENTRY( 0x300a, 0x00c3, "ST", "Beam Description", FUNCDCM_NONE ),
2562 ENTRY( 0x300a, 0x00c4, "CS", "Beam Type", FUNCDCM_NONE ),
2563 ENTRY( 0x300a, 0x00c6, "CS", "Radiation Type", FUNCDCM_NONE ),
2564 ENTRY( 0x300a, 0x00c8, "IS", "Reference Image Number", FUNCDCM_NONE ),
2565 ENTRY( 0x300a, 0x00ca, "SQ", "Planned Verification Image Sequence", FUNCDCM_NONE ),
2566 ENTRY( 0x300a, 0x00cc, "LO", "Imaging Device Specific Acquisition Parameters", FUNCDCM_NONE ),
2567 ENTRY( 0x300a, 0x00ce, "CS", "Treatment Delivery Type", FUNCDCM_NONE ),
2568 ENTRY( 0x300a, 0x00d0, "IS", "Number of Wedges", FUNCDCM_NONE ),
2569 ENTRY( 0x300a, 0x00d1, "SQ", "Wedge Sequence", FUNCDCM_NONE ),
2570 ENTRY( 0x300a, 0x00d2, "IS", "Wedge Number", FUNCDCM_NONE ),
2571 ENTRY( 0x300a, 0x00d3, "CS", "Wedge Type", FUNCDCM_NONE ),
2572 ENTRY( 0x300a, 0x00d4, "SH", "Wedge ID", FUNCDCM_NONE ),
2573 ENTRY( 0x300a, 0x00d5, "IS", "Wedge Angle", FUNCDCM_NONE ),
2574 ENTRY( 0x300a, 0x00d6, "DS", "Wedge Factor", FUNCDCM_NONE ),
2575 ENTRY( 0x300a, 0x00d8, "DS", "Wedge Orientation", FUNCDCM_NONE ),
2576 ENTRY( 0x300a, 0x00da, "DS", "Source to Wedge Tray Distance", FUNCDCM_NONE ),
2577 ENTRY( 0x300a, 0x00e0, "IS", "Number of Compensators", FUNCDCM_NONE ),
2578 ENTRY( 0x300a, 0x00e1, "SH", "Material ID", FUNCDCM_NONE ),
2579 ENTRY( 0x300a, 0x00e2, "DS", "Total Compensator Tray Factor", FUNCDCM_NONE ),
2580 ENTRY( 0x300a, 0x00e3, "SQ", "Compensator Sequence", FUNCDCM_NONE ),
2581 ENTRY( 0x300a, 0x00e4, "IS", "Compensator Number", FUNCDCM_NONE ),
2582 ENTRY( 0x300a, 0x00e5, "SH", "Compensator ID", FUNCDCM_NONE ),
2583 ENTRY( 0x300a, 0x00e6, "DS", "Source to Compensator Tray Distance", FUNCDCM_NONE ),
2584 ENTRY( 0x300a, 0x00e7, "IS", "Compensator Rows", FUNCDCM_NONE ),
2585 ENTRY( 0x300a, 0x00e8, "IS", "Compensator Columns", FUNCDCM_NONE ),
2586 ENTRY( 0x300a, 0x00e9, "DS", "Compensator Pixel Spacing", FUNCDCM_NONE ),
2587 ENTRY( 0x300a, 0x00ea, "DS", "Compensator Position", FUNCDCM_NONE ),
2588 ENTRY( 0x300a, 0x00eb, "DS", "Compensator Transmission Data", FUNCDCM_NONE ),
2589 ENTRY( 0x300a, 0x00ec, "DS", "Compensator Thickness Data", FUNCDCM_NONE ),
2590 ENTRY( 0x300a, 0x00ed, "IS", "Number of Boli", FUNCDCM_NONE ),
2591 ENTRY( 0x300a, 0x00f0, "IS", "Number of Blocks", FUNCDCM_NONE ),
2592 ENTRY( 0x300a, 0x00f2, "DS", "Total Block Tray Factor", FUNCDCM_NONE ),
2593 ENTRY( 0x300a, 0x00f4, "SQ", "Block Sequence", FUNCDCM_NONE ),
2594 ENTRY( 0x300a, 0x00f5, "SH", "Block Tray ID", FUNCDCM_NONE ),
2595 ENTRY( 0x300a, 0x00f6, "DS", "Source to Block Tray Distance", FUNCDCM_NONE ),
2596 ENTRY( 0x300a, 0x00f8, "CS", "Block Type", FUNCDCM_NONE ),
2597 ENTRY( 0x300a, 0x00fa, "CS", "Block Divergence", FUNCDCM_NONE ),
2598 ENTRY( 0x300a, 0x00fc, "IS", "Block Number", FUNCDCM_NONE ),
2599 ENTRY( 0x300a, 0x00fe, "LO", "Block Name", FUNCDCM_NONE ),
2600 ENTRY( 0x300a, 0x0100, "DS", "Block Thickness", FUNCDCM_NONE ),
2601 ENTRY( 0x300a, 0x0102, "DS", "Block Transmission", FUNCDCM_NONE ),
2602 ENTRY( 0x300a, 0x0104, "IS", "Block Number of Points", FUNCDCM_NONE ),
2603 ENTRY( 0x300a, 0x0106, "DS", "Block Data", FUNCDCM_NONE ),
2604 ENTRY( 0x300a, 0x0107, "SQ", "Applicator Sequence", FUNCDCM_NONE ),
2605 ENTRY( 0x300a, 0x0108, "SH", "Applicator ID", FUNCDCM_NONE ),
2606 ENTRY( 0x300a, 0x0109, "CS", "Applicator Type", FUNCDCM_NONE ),
2607 ENTRY( 0x300a, 0x010a, "LO", "Applicator Description", FUNCDCM_NONE ),
2608 ENTRY( 0x300a, 0x010c, "DS", "Cumulative Dose Reference Coefficient", FUNCDCM_NONE ),
2609 ENTRY( 0x300a, 0x010e, "DS", "Final Cumulative Meterset Weight", FUNCDCM_NONE ),
2610 ENTRY( 0x300a, 0x0110, "IS", "Number of Control Points", FUNCDCM_NONE ),
2611 ENTRY( 0x300a, 0x0111, "SQ", "Control Point Sequence", FUNCDCM_NONE ),
2612 ENTRY( 0x300a, 0x0112, "IS", "Control Point Index", FUNCDCM_NONE ),
2613 ENTRY( 0x300a, 0x0114, "DS", "Nominal Beam Energy", FUNCDCM_NONE ),
2614 ENTRY( 0x300a, 0x0115, "DS", "Dose Rate Set", FUNCDCM_NONE ),
2615 ENTRY( 0x300a, 0x0116, "SQ", "Wedge Position Sequence", FUNCDCM_NONE ),
2616 ENTRY( 0x300a, 0x0118, "CS", "Wedge Position", FUNCDCM_NONE ),
2617 ENTRY( 0x300a, 0x011a, "SQ", "Beam Limiting Device Position Sequence", FUNCDCM_NONE ),
2618 ENTRY( 0x300a, 0x011c, "DS", "Leaf Jaw Positions", FUNCDCM_NONE ),
2619 ENTRY( 0x300a, 0x011e, "DS", "Gantry Angle", FUNCDCM_NONE ),
2620 ENTRY( 0x300a, 0x011f, "CS", "Gantry Rotation Direction", FUNCDCM_NONE ),
2621 ENTRY( 0x300a, 0x0120, "DS", "Beam Limiting Device Angle", FUNCDCM_NONE ),
2622 ENTRY( 0x300a, 0x0121, "CS", "Beam Limiting Device Rotation Direction", FUNCDCM_NONE ),
2623 ENTRY( 0x300a, 0x0122, "DS", "Patient Support Angle", FUNCDCM_NONE ),
2624 ENTRY( 0x300a, 0x0123, "CS", "Patient Support Rotation Direction", FUNCDCM_NONE ),
2625 ENTRY( 0x300a, 0x0124, "DS", "Table Top Eccentric Axis Distance", FUNCDCM_NONE ),
2626 ENTRY( 0x300a, 0x0125, "DS", "Table Top Eccentric Angle", FUNCDCM_NONE ),
2627 ENTRY( 0x300a, 0x0126, "CS", "Table Top Eccentric Rotation Direction", FUNCDCM_NONE ),
2628 ENTRY( 0x300a, 0x0128, "DS", "Table Top Vertical Position", FUNCDCM_NONE ),
2629 ENTRY( 0x300a, 0x0129, "DS", "Table Top Longitudinal Position", FUNCDCM_NONE ),
2630 ENTRY( 0x300a, 0x012a, "DS", "Table Top Lateral Position", FUNCDCM_NONE ),
2631 ENTRY( 0x300a, 0x012c, "DS", "Isocenter Position", FUNCDCM_NONE ),
2632 ENTRY( 0x300a, 0x012e, "DS", "Surface Entry Point", FUNCDCM_NONE ),
2633 ENTRY( 0x300a, 0x0130, "DS", "Source to Surface Distance", FUNCDCM_NONE ),
2634 ENTRY( 0x300a, 0x0134, "DS", "Cumulative Meterset Weight", FUNCDCM_NONE ),
2635 ENTRY( 0x300a, 0x0180, "SQ", "Patient Setup Sequence", FUNCDCM_NONE ),
2636 ENTRY( 0x300a, 0x0182, "IS", "Patient Setup Number", FUNCDCM_NONE ),
2637 ENTRY( 0x300a, 0x0184, "LO", "Patient Additional Position", FUNCDCM_NONE ),
2638 ENTRY( 0x300a, 0x0190, "SQ", "Fixation Device Sequence", FUNCDCM_NONE ),
2639 ENTRY( 0x300a, 0x0192, "CS", "Fixation Device Type", FUNCDCM_NONE ),
2640 ENTRY( 0x300a, 0x0194, "SH", "Fixation Device Label", FUNCDCM_NONE ),
2641 ENTRY( 0x300a, 0x0196, "ST", "Fixation Device Description", FUNCDCM_NONE ),
2642 ENTRY( 0x300a, 0x0198, "SH", "Fixation Device Position", FUNCDCM_NONE ),
2643 ENTRY( 0x300a, 0x01a0, "SQ", "Shielding Device Sequence", FUNCDCM_NONE ),
2644 ENTRY( 0x300a, 0x01a2, "CS", "Shielding Device Type", FUNCDCM_NONE ),
2645 ENTRY( 0x300a, 0x01a4, "SH", "Shielding Device Label", FUNCDCM_NONE ),
2646 ENTRY( 0x300a, 0x01a6, "ST", "Shielding Device Description", FUNCDCM_NONE ),
2647 ENTRY( 0x300a, 0x01a8, "SH", "Shielding Device Position", FUNCDCM_NONE ),
2648 ENTRY( 0x300a, 0x01b0, "CS", "Setup Technique", FUNCDCM_NONE ),
2649 ENTRY( 0x300a, 0x01b2, "ST", "Setup TechniqueDescription", FUNCDCM_NONE ),
2650 ENTRY( 0x300a, 0x01b4, "SQ", "Setup Device Sequence", FUNCDCM_NONE ),
2651 ENTRY( 0x300a, 0x01b6, "CS", "Setup Device Type", FUNCDCM_NONE ),
2652 ENTRY( 0x300a, 0x01b8, "SH", "Setup Device Label", FUNCDCM_NONE ),
2653 ENTRY( 0x300a, 0x01ba, "ST", "Setup Device Description", FUNCDCM_NONE ),
2654 ENTRY( 0x300a, 0x01bc, "DS", "Setup Device Parameter", FUNCDCM_NONE ),
2655 ENTRY( 0x300a, 0x01d0, "ST", "Setup ReferenceDescription", FUNCDCM_NONE ),
2656 ENTRY( 0x300a, 0x01d2, "DS", "Table Top Vertical Setup Displacement", FUNCDCM_NONE ),
2657 ENTRY( 0x300a, 0x01d4, "DS", "Table Top Longitudinal Setup Displacement", FUNCDCM_NONE ),
2658 ENTRY( 0x300a, 0x01d6, "DS", "Table Top Lateral Setup Displacement", FUNCDCM_NONE ),
2659 ENTRY( 0x300a, 0x0200, "CS", "Brachy Treatment Technique", FUNCDCM_NONE ),
2660 ENTRY( 0x300a, 0x0202, "CS", "Brachy Treatment Type", FUNCDCM_NONE ),
2661 ENTRY( 0x300a, 0x0206, "SQ", "Treatment Machine Sequence", FUNCDCM_NONE ),
2662 ENTRY( 0x300a, 0x0210, "SQ", "Source Sequence", FUNCDCM_NONE ),
2663 ENTRY( 0x300a, 0x0212, "IS", "Source Number", FUNCDCM_NONE ),
2664 ENTRY( 0x300a, 0x0214, "CS", "Source Type", FUNCDCM_NONE ),
2665 ENTRY( 0x300a, 0x0216, "LO", "Source Manufacturer", FUNCDCM_NONE ),
2666 ENTRY( 0x300a, 0x0218, "DS", "Active Source Diameter", FUNCDCM_NONE ),
2667 ENTRY( 0x300a, 0x021a, "DS", "Active Source Length", FUNCDCM_NONE ),
2668 ENTRY( 0x300a, 0x0222, "DS", "Source Encapsulation Nominal Thickness", FUNCDCM_NONE ),
2669 ENTRY( 0x300a, 0x0224, "DS", "Source Encapsulation Nominal Transmission", FUNCDCM_NONE ),
2670 ENTRY( 0x300a, 0x0226, "LO", "Source IsotopeName", FUNCDCM_NONE ),
2671 ENTRY( 0x300a, 0x0228, "DS", "Source Isotope Half Life", FUNCDCM_NONE ),
2672 ENTRY( 0x300a, 0x022a, "DS", "Reference Air Kerma Rate", FUNCDCM_NONE ),
2673 ENTRY( 0x300a, 0x022c, "DA", "Air Kerma Rate Reference Date", FUNCDCM_NONE ),
2674 ENTRY( 0x300a, 0x022e, "TM", "Air Kerma Rate Reference Time", FUNCDCM_NONE ),
2675 ENTRY( 0x300a, 0x0230, "SQ", "Application Setup Sequence", FUNCDCM_NONE ),
2676 ENTRY( 0x300a, 0x0232, "CS", "Application Setup Type", FUNCDCM_NONE ),
2677 ENTRY( 0x300a, 0x0234, "IS", "Application Setup Number", FUNCDCM_NONE ),
2678 ENTRY( 0x300a, 0x0236, "LO", "Application Setup Name", FUNCDCM_NONE ),
2679 ENTRY( 0x300a, 0x0238, "LO", "Application Setup Manufacturer", FUNCDCM_NONE ),
2680 ENTRY( 0x300a, 0x0240, "IS", "Template Number", FUNCDCM_NONE ),
2681 ENTRY( 0x300a, 0x0242, "SH", "Template Type", FUNCDCM_NONE ),
2682 ENTRY( 0x300a, 0x0244, "LO", "Template Name", FUNCDCM_NONE ),
2683 ENTRY( 0x300a, 0x0250, "DS", "Total Reference Air Kerma", FUNCDCM_NONE ),
2684 ENTRY( 0x300a, 0x0260, "SQ", "Brachy Accessory Device Sequence", FUNCDCM_NONE ),
2685 ENTRY( 0x300a, 0x0262, "IS", "Brachy Accessory Device Number", FUNCDCM_NONE ),
2686 ENTRY( 0x300a, 0x0263, "SH", "Brachy Accessory Device ID", FUNCDCM_NONE ),
2687 ENTRY( 0x300a, 0x0264, "CS", "Brachy Accessory Device Type", FUNCDCM_NONE ),
2688 ENTRY( 0x300a, 0x0266, "LO", "Brachy Accessory Device Name", FUNCDCM_NONE ),
2689 ENTRY( 0x300a, 0x026a, "DS", "Brachy Accessory Device Nominal Thickness", FUNCDCM_NONE ),
2690 ENTRY( 0x300a, 0x026c, "DS", "Brachy Accessory Device Nominal Transmission", FUNCDCM_NONE ),
2691 ENTRY( 0x300a, 0x0280, "SQ", "Channel Sequence", FUNCDCM_NONE ),
2692 ENTRY( 0x300a, 0x0282, "IS", "Channel Number", FUNCDCM_NONE ),
2693 ENTRY( 0x300a, 0x0284, "DS", "Channel Length", FUNCDCM_NONE ),
2694 ENTRY( 0x300a, 0x0286, "DS", "Channel Total Time", FUNCDCM_NONE ),
2695 ENTRY( 0x300a, 0x0288, "CS", "Source Movement Type", FUNCDCM_NONE ),
2696 ENTRY( 0x300a, 0x028a, "IS", "Number of Pulses", FUNCDCM_NONE ),
2697 ENTRY( 0x300a, 0x028c, "DS", "Pulse Repetition Interval", FUNCDCM_NONE ),
2698 ENTRY( 0x300a, 0x0290, "IS", "Source Applicator Number", FUNCDCM_NONE ),
2699 ENTRY( 0x300a, 0x0291, "SH", "Source Applicator ID", FUNCDCM_NONE ),
2700 ENTRY( 0x300a, 0x0292, "CS", "Source Applicator Type", FUNCDCM_NONE ),
2701 ENTRY( 0x300a, 0x0294, "LO", "Source Applicator Name", FUNCDCM_NONE ),
2702 ENTRY( 0x300a, 0x0296, "DS", "Source Applicator Length", FUNCDCM_NONE ),
2703 ENTRY( 0x300a, 0x0298, "LO", "Source Applicator Manufacturer", FUNCDCM_NONE ),
2704 ENTRY( 0x300a, 0x029c, "DS", "Source Applicator Wall Nominal Thickness", FUNCDCM_NONE ),
2705 ENTRY( 0x300a, 0x029e, "DS", "Source Applicator Wall Nominal Transmission", FUNCDCM_NONE ),
2706 ENTRY( 0x300a, 0x02a0, "DS", "Source Applicator Step Size", FUNCDCM_NONE ),
2707 ENTRY( 0x300a, 0x02a2, "IS", "Transfer Tube Number", FUNCDCM_NONE ),
2708 ENTRY( 0x300a, 0x02a4, "DS", "Transfer Tube Length", FUNCDCM_NONE ),
2709 ENTRY( 0x300a, 0x02b0, "SQ", "Channel Shield Sequence", FUNCDCM_NONE ),
2710 ENTRY( 0x300a, 0x02b2, "IS", "Channel Shield Number", FUNCDCM_NONE ),
2711 ENTRY( 0x300a, 0x02b3, "SH", "Channel Shield ID", FUNCDCM_NONE ),
2712 ENTRY( 0x300a, 0x02b4, "LO", "Channel Shield Name", FUNCDCM_NONE ),
2713 ENTRY( 0x300a, 0x02b8, "DS", "Channel Shield Nominal Thickness", FUNCDCM_NONE ),
2714 ENTRY( 0x300a, 0x02ba, "DS", "Channel Shield Nominal Transmission", FUNCDCM_NONE ),
2715 ENTRY( 0x300a, 0x02c8, "DS", "Final Cumulative Time Weight", FUNCDCM_NONE ),
2716 ENTRY( 0x300a, 0x02d0, "SQ", "Brachy Control Point Sequence", FUNCDCM_NONE ),
2717 ENTRY( 0x300a, 0x02d2, "DS", "Control Point Relative Position", FUNCDCM_NONE ),
2718 ENTRY( 0x300a, 0x02d4, "DS", "Control Point 3D Position", FUNCDCM_NONE ),
2719 ENTRY( 0x300a, 0x02d6, "DS", "Cumulative Time Weight", FUNCDCM_NONE ),
2720 ENTRY( 0x300c, 0x0002, "SQ", "Referenced RT Plan Sequence", FUNCDCM_NONE ),
2721 ENTRY( 0x300c, 0x0004, "SQ", "Referenced Beam Sequence", FUNCDCM_NONE ),
2722 ENTRY( 0x300c, 0x0006, "IS", "Referenced Beam Number", FUNCDCM_NONE ),
2723 ENTRY( 0x300c, 0x0007, "IS", "Referenced Reference Image Number", FUNCDCM_NONE ),
2724 ENTRY( 0x300c, 0x0008, "DS", "Start Cumulative Meterset Weight", FUNCDCM_NONE ),
2725 ENTRY( 0x300c, 0x0009, "DS", "End Cumulative Meterset Weight", FUNCDCM_NONE ),
2726 ENTRY( 0x300c, 0x000a, "SQ", "Referenced Brachy Application Setup Sequence", FUNCDCM_NONE ),
2727 ENTRY( 0x300c, 0x000c, "IS", "Referenced Brachy Application Setup Number", FUNCDCM_NONE ),
2728 ENTRY( 0x300c, 0x000e, "IS", "Referenced Source Number", FUNCDCM_NONE ),
2729 ENTRY( 0x300c, 0x0020, "SQ", "Referenced Fraction Group Sequence", FUNCDCM_NONE ),
2730 ENTRY( 0x300c, 0x0022, "IS", "Referenced Fraction Group Number", FUNCDCM_NONE ),
2731 ENTRY( 0x300c, 0x0040, "SQ", "Referenced Verification Image Sequence", FUNCDCM_NONE ),
2732 ENTRY( 0x300c, 0x0042, "SQ", "Referenced Reference Image Sequence", FUNCDCM_NONE ),
2733 ENTRY( 0x300c, 0x0050, "SQ", "Referenced Dose Reference Sequence", FUNCDCM_NONE ),
2734 ENTRY( 0x300c, 0x0051, "IS", "Referenced Dose Reference Number", FUNCDCM_NONE ),
2735 ENTRY( 0x300c, 0x0055, "SQ", "Brachy Referenced Dose Reference Sequence", FUNCDCM_NONE ),
2736 ENTRY( 0x300c, 0x0060, "SQ", "Referenced Structure Set Sequence", FUNCDCM_NONE ),
2737 ENTRY( 0x300c, 0x006a, "IS", "Referenced Patient Setup Number", FUNCDCM_NONE ),
2738 ENTRY( 0x300c, 0x0080, "SQ", "Referenced Dose Sequence", FUNCDCM_NONE ),
2739 ENTRY( 0x300c, 0x00a0, "IS", "Referenced Tolerance Table Number", FUNCDCM_NONE ),
2740 ENTRY( 0x300c, 0x00b0, "SQ", "Referenced Bolus Sequence", FUNCDCM_NONE ),
2741 ENTRY( 0x300c, 0x00c0, "IS", "Referenced Wedge Number", FUNCDCM_NONE ),
2742 ENTRY( 0x300c, 0x00d0, "IS", "Referenced Compensato rNumber", FUNCDCM_NONE ),
2743 ENTRY( 0x300c, 0x00e0, "IS", "Referenced Block Number", FUNCDCM_NONE ),
2744 ENTRY( 0x300c, 0x00f0, "IS", "Referenced Control Point", FUNCDCM_NONE ),
2745 ENTRY( 0x300e, 0x0002, "CS", "Approval Status", FUNCDCM_NONE ),
2746 ENTRY( 0x300e, 0x0004, "DA", "Review Date", FUNCDCM_NONE ),
2747 ENTRY( 0x300e, 0x0005, "TM", "Review Time", FUNCDCM_NONE ),
2748 ENTRY( 0x300e, 0x0008, "PN", "Reviewer Name", FUNCDCM_NONE ),
2749 ENTRY( 0x4000, 0x0000, "UL", "Text Group Length", FUNCDCM_NONE ),
2750 ENTRY( 0x4000, 0x0010, "LT", "Text Arbitrary", FUNCDCM_NONE ),
2751 ENTRY( 0x4000, 0x4000, "LT", "Text Comments", FUNCDCM_NONE ),
2752 ENTRY( 0x4008, 0x0000, "UL", "Results Group Length", FUNCDCM_NONE ),
2753 ENTRY( 0x4008, 0x0040, "SH", "Results ID", FUNCDCM_NONE ),
2754 ENTRY( 0x4008, 0x0042, "LO", "Results ID Issuer", FUNCDCM_NONE ),
2755 ENTRY( 0x4008, 0x0050, "SQ", "Referenced Interpretation Sequence", FUNCDCM_NONE ),
2756 ENTRY( 0x4008, 0x00ff, "CS", "Report Production Status", FUNCDCM_NONE ),
2757 ENTRY( 0x4008, 0x0100, "DA", "Interpretation Recorded Date", FUNCDCM_NONE ),
2758 ENTRY( 0x4008, 0x0101, "TM", "Interpretation Recorded Time", FUNCDCM_NONE ),
2759 ENTRY( 0x4008, 0x0102, "PN", "Interpretation Recorder", FUNCDCM_NONE ),
2760 ENTRY( 0x4008, 0x0103, "LO", "Reference to Recorded Sound", FUNCDCM_NONE ),
2761 ENTRY( 0x4008, 0x0108, "DA", "Interpretation Transcription Date", FUNCDCM_NONE ),
2762 ENTRY( 0x4008, 0x0109, "TM", "Interpretation Transcription Time", FUNCDCM_NONE ),
2763 ENTRY( 0x4008, 0x010a, "PN", "Interpretation Transcriber", FUNCDCM_NONE ),
2764 ENTRY( 0x4008, 0x010b, "ST", "Interpretation Text", FUNCDCM_NONE ),
2765 ENTRY( 0x4008, 0x010c, "PN", "Interpretation Author", FUNCDCM_NONE ),
2766 ENTRY( 0x4008, 0x0111, "SQ", "Interpretation Approver Sequence", FUNCDCM_NONE ),
2767 ENTRY( 0x4008, 0x0112, "DA", "Interpretation Approval Date", FUNCDCM_NONE ),
2768 ENTRY( 0x4008, 0x0113, "TM", "Interpretation Approval Time", FUNCDCM_NONE ),
2769 ENTRY( 0x4008, 0x0114, "PN", "Physician Approving Interpretation", FUNCDCM_NONE ),
2770 ENTRY( 0x4008, 0x0115, "LT", "Interpretation Diagnosis Description", FUNCDCM_NONE ),
2771 ENTRY( 0x4008, 0x0117, "SQ", "InterpretationDiagnosis Code Sequence", FUNCDCM_NONE ),
2772 ENTRY( 0x4008, 0x0118, "SQ", "Results Distribution List Sequence", FUNCDCM_NONE ),
2773 ENTRY( 0x4008, 0x0119, "PN", "Distribution Name", FUNCDCM_NONE ),
2774 ENTRY( 0x4008, 0x011a, "LO", "Distribution Address", FUNCDCM_NONE ),
2775 ENTRY( 0x4008, 0x0200, "SH", "Interpretation ID", FUNCDCM_NONE ),
2776 ENTRY( 0x4008, 0x0202, "LO", "Interpretation ID Issuer", FUNCDCM_NONE ),
2777 ENTRY( 0x4008, 0x0210, "CS", "Interpretation Type ID", FUNCDCM_NONE ),
2778 ENTRY( 0x4008, 0x0212, "CS", "Interpretation Status ID", FUNCDCM_NONE ),
2779 ENTRY( 0x4008, 0x0300, "ST", "Impressions", FUNCDCM_NONE ),
2780 ENTRY( 0x4008, 0x4000, "ST", "Results Comments", FUNCDCM_NONE ),
2781 ENTRY( 0x4009, 0x0001, "LT", "Report ID", FUNCDCM_NONE ),
2782 ENTRY( 0x4009, 0x0020, "LT", "Report Status", FUNCDCM_NONE ),
2783 ENTRY( 0x4009, 0x0030, "DA", "Report Creation Date", FUNCDCM_NONE ),
2784 ENTRY( 0x4009, 0x0070, "LT", "Report Approving Physician", FUNCDCM_NONE ),
2785 ENTRY( 0x4009, 0x00e0, "LT", "Report Text", FUNCDCM_NONE ),
2786 ENTRY( 0x4009, 0x00e1, "LT", "Report Author", FUNCDCM_NONE ),
2787 ENTRY( 0x4009, 0x00e3, "LT", "Reporting Radiologist", FUNCDCM_NONE ),
2788 ENTRY( 0x5000, 0x0000, "UL", "Curve Group Length", FUNCDCM_NONE ),
2789 ENTRY( 0x5000, 0x0005, "US", "Curve Dimensions", FUNCDCM_NONE ),
2790 ENTRY( 0x5000, 0x0010, "US", "Number of Points", FUNCDCM_NONE ),
2791 ENTRY( 0x5000, 0x0020, "CS", "Type of Data", FUNCDCM_NONE ),
2792 ENTRY( 0x5000, 0x0022, "LO", "Curve Description", FUNCDCM_NONE ),
2793 ENTRY( 0x5000, 0x0030, "SH", "Axis Units", FUNCDCM_NONE ),
2794 ENTRY( 0x5000, 0x0040, "SH", "Axis Labels", FUNCDCM_NONE ),
2795 ENTRY( 0x5000, 0x0103, "US", "Data Value Representation", FUNCDCM_NONE ),
2796 ENTRY( 0x5000, 0x0104, "US", "Minimum Coordinate Value", FUNCDCM_NONE ),
2797 ENTRY( 0x5000, 0x0105, "US", "Maximum Coordinate Value", FUNCDCM_NONE ),
2798 ENTRY( 0x5000, 0x0106, "SH", "Curve Range", FUNCDCM_NONE ),
2799 ENTRY( 0x5000, 0x0110, "US", "Curve Data Descriptor", FUNCDCM_NONE ),
2800 ENTRY( 0x5000, 0x0112, "US", "Coordinate Start Value", FUNCDCM_NONE ),
2801 ENTRY( 0x5000, 0x0114, "US", "Coordinate Step Value", FUNCDCM_NONE ),
2802 ENTRY( 0x5000, 0x1001, "CS", "Curve Activation Layer", FUNCDCM_NONE ),
2803 ENTRY( 0x5000, 0x2000, "US", "Audio Type", FUNCDCM_NONE ),
2804 ENTRY( 0x5000, 0x2002, "US", "Audio Sample Format", FUNCDCM_NONE ),
2805 ENTRY( 0x5000, 0x2004, "US", "Number of Channels", FUNCDCM_NONE ),
2806 ENTRY( 0x5000, 0x2006, "UL", "Number of Samples", FUNCDCM_NONE ),
2807 ENTRY( 0x5000, 0x2008, "UL", "Sample Rate", FUNCDCM_NONE ),
2808 ENTRY( 0x5000, 0x200a, "UL", "Total Time", FUNCDCM_NONE ),
2809 ENTRY( 0x5000, 0x200c, "xs", "Audio Sample Data", FUNCDCM_NONE ),
2810 ENTRY( 0x5000, 0x200e, "LT", "Audio Comments", FUNCDCM_NONE ),
2811 ENTRY( 0x5000, 0x2500, "LO", "Curve Label", FUNCDCM_NONE ),
2812 ENTRY( 0x5000, 0x2600, "SQ", "CurveReferenced Overlay Sequence", FUNCDCM_NONE ),
2813 ENTRY( 0x5000, 0x2610, "US", "CurveReferenced Overlay Group", FUNCDCM_NONE ),
2814 ENTRY( 0x5000, 0x3000, "OW", "Curve Data", FUNCDCM_NONE ),
2815 ENTRY( 0x6000, 0x0000, "UL", "Overlay Group Length", FUNCDCM_NONE ),
2816 ENTRY( 0x6000, 0x0001, "US", "Gray Palette Color Lookup Table Descriptor", FUNCDCM_NONE ),
2817 ENTRY( 0x6000, 0x0002, "US", "Gray Palette Color Lookup Table Data", FUNCDCM_NONE ),
2818 ENTRY( 0x6000, 0x0010, "US", "Overlay Rows", FUNCDCM_NONE ),
2819 ENTRY( 0x6000, 0x0011, "US", "Overlay Columns", FUNCDCM_NONE ),
2820 ENTRY( 0x6000, 0x0012, "US", "Overlay Planes", FUNCDCM_NONE ),
2821 ENTRY( 0x6000, 0x0015, "IS", "Number of Frames in Overlay", FUNCDCM_NONE ),
2822 ENTRY( 0x6000, 0x0022, "LO", "Overlay Description", FUNCDCM_NONE ),
2823 ENTRY( 0x6000, 0x0040, "CS", "Overlay Type", FUNCDCM_NONE ),
2824 ENTRY( 0x6000, 0x0045, "CS", "Overlay Subtype", FUNCDCM_NONE ),
2825 ENTRY( 0x6000, 0x0050, "SS", "Overlay Origin", FUNCDCM_NONE ),
2826 ENTRY( 0x6000, 0x0051, "US", "Image Frame Origin", FUNCDCM_NONE ),
2827 ENTRY( 0x6000, 0x0052, "US", "Plane Origin", FUNCDCM_NONE ),
2828 ENTRY( 0x6000, 0x0060, "LO", "Overlay Compression Code", FUNCDCM_NONE ),
2829 ENTRY( 0x6000, 0x0061, "SH", "Overlay Compression Originator", FUNCDCM_NONE ),
2830 ENTRY( 0x6000, 0x0062, "SH", "Overlay Compression Label", FUNCDCM_NONE ),
2831 ENTRY( 0x6000, 0x0063, "SH", "Overlay Compression Description", FUNCDCM_NONE ),
2832 ENTRY( 0x6000, 0x0066, "AT", "Overlay Compression Step Pointers", FUNCDCM_NONE ),
2833 ENTRY( 0x6000, 0x0068, "US", "Overlay Repeat Interval", FUNCDCM_NONE ),
2834 ENTRY( 0x6000, 0x0069, "US", "Overlay Bits Grouped", FUNCDCM_NONE ),
2835 ENTRY( 0x6000, 0x0100, "US", "Overlay Bits Allocated", FUNCDCM_NONE ),
2836 ENTRY( 0x6000, 0x0102, "US", "Overlay Bit Position", FUNCDCM_NONE ),
2837 ENTRY( 0x6000, 0x0110, "LO", "Overlay Format", FUNCDCM_NONE ),
2838 ENTRY( 0x6000, 0x0200, "xs", "Overlay Location", FUNCDCM_NONE ),
2839 ENTRY( 0x6000, 0x0800, "LO", "Overlay Code Label", FUNCDCM_NONE ),
2840 ENTRY( 0x6000, 0x0802, "US", "Overlay Number of Tables", FUNCDCM_NONE ),
2841 ENTRY( 0x6000, 0x0803, "AT", "Overlay Code Table Location", FUNCDCM_NONE ),
2842 ENTRY( 0x6000, 0x0804, "US", "Overlay Bits For Code Word", FUNCDCM_NONE ),
2843 ENTRY( 0x6000, 0x1001, "CS", "Overlay Activation Layer", FUNCDCM_NONE ),
2844 ENTRY( 0x6000, 0x1100, "US", "Overlay Descriptor - Gray", FUNCDCM_NONE ),
2845 ENTRY( 0x6000, 0x1101, "US", "Overlay Descriptor - Red", FUNCDCM_NONE ),
2846 ENTRY( 0x6000, 0x1102, "US", "Overlay Descriptor - Green", FUNCDCM_NONE ),
2847 ENTRY( 0x6000, 0x1103, "US", "Overlay Descriptor - Blue", FUNCDCM_NONE ),
2848 ENTRY( 0x6000, 0x1200, "US", "Overlays - Gray", FUNCDCM_NONE ),
2849 ENTRY( 0x6000, 0x1201, "US", "Overlays - Red", FUNCDCM_NONE ),
2850 ENTRY( 0x6000, 0x1202, "US", "Overlays - Green", FUNCDCM_NONE ),
2851 ENTRY( 0x6000, 0x1203, "US", "Overlays - Blue", FUNCDCM_NONE ),
2852 ENTRY( 0x6000, 0x1301, "IS", "ROI Area", FUNCDCM_NONE ),
2853 ENTRY( 0x6000, 0x1302, "DS", "ROI Mean", FUNCDCM_NONE ),
2854 ENTRY( 0x6000, 0x1303, "DS", "ROI Standard Deviation", FUNCDCM_NONE ),
2855 ENTRY( 0x6000, 0x1500, "LO", "Overlay Label", FUNCDCM_NONE ),
2856 ENTRY( 0x6000, 0x3000, "OW", "Overlay Data", FUNCDCM_NONE ),
2857 ENTRY( 0x6000, 0x4000, "LT", "Overlay Comments", FUNCDCM_NONE ),
2858 ENTRY( 0x6001, 0x0000, "UN", "?", FUNCDCM_NONE ),
2859 ENTRY( 0x6001, 0x0010, "LO", "?", FUNCDCM_NONE ),
2860 ENTRY( 0x6001, 0x1010, "xs", "?", FUNCDCM_NONE ),
2861 ENTRY( 0x6001, 0x1030, "xs", "?", FUNCDCM_NONE ),
2862 ENTRY( 0x6021, 0x0000, "xs", "?", FUNCDCM_NONE ),
2863 ENTRY( 0x6021, 0x0010, "xs", "?", FUNCDCM_NONE ),
2864 ENTRY( 0x7001, 0x0010, "LT", "Dummy", FUNCDCM_NONE ),
2865 ENTRY( 0x7003, 0x0010, "LT", "Info", FUNCDCM_NONE ),
2866 ENTRY( 0x7005, 0x0010, "LT", "Dummy", FUNCDCM_NONE ),
2867 ENTRY( 0x7000, 0x0004, "ST", "TextAnnotation", FUNCDCM_NONE ),
2868 ENTRY( 0x7000, 0x0005, "IS", "Box", FUNCDCM_NONE ),
2869 ENTRY( 0x7000, 0x0007, "IS", "ArrowEnd", FUNCDCM_NONE ),
2870 ENTRY( 0x7fe0, 0x0000, "UL", "Pixel Data Group Length", FUNCDCM_NONE ),
2871 ENTRY( 0x7fe0, 0x0010, "xs", "Pixel Data", FUNCDCM_NONE ),
2872 ENTRY( 0x7fe0, 0x0020, "OW", "Coefficients SDVN", FUNCDCM_NONE ),
2873 ENTRY( 0x7fe0, 0x0030, "OW", "Coefficients SDHN", FUNCDCM_NONE ),
2874 ENTRY( 0x7fe0, 0x0040, "OW", "Coefficients SDDN", FUNCDCM_NONE ),
2875 ENTRY( 0x7fe1, 0x0010, "xs", "Pixel Data", FUNCDCM_NONE ),
2876 ENTRY( 0x7f00, 0x0000, "UL", "Variable Pixel Data Group Length", FUNCDCM_NONE ),
2877 ENTRY( 0x7f00, 0x0010, "xs", "Variable Pixel Data", FUNCDCM_NONE ),
2878 ENTRY( 0x7f00, 0x0011, "US", "Variable Next Data Group", FUNCDCM_NONE ),
2879 ENTRY( 0x7f00, 0x0020, "OW", "Variable Coefficients SDVN", FUNCDCM_NONE ),
2880 ENTRY( 0x7f00, 0x0030, "OW", "Variable Coefficients SDHN", FUNCDCM_NONE ),
2881 ENTRY( 0x7f00, 0x0040, "OW", "Variable Coefficients SDDN", FUNCDCM_NONE ),
2882 ENTRY( 0x7fe1, 0x0000, "OB", "Binary Data", FUNCDCM_NONE ),
2883 ENTRY( 0x7fe3, 0x0000, "LT", "Image Graphics Format Code", FUNCDCM_NONE ),
2884 ENTRY( 0x7fe3, 0x0010, "OB", "Image Graphics", FUNCDCM_NONE ),
2885 ENTRY( 0x7fe3, 0x0020, "OB", "Image Graphics Dummy", FUNCDCM_NONE ),
2886 ENTRY( 0x7ff1, 0x0001, "US", "?", FUNCDCM_NONE ),
2887 ENTRY( 0x7ff1, 0x0002, "US", "?", FUNCDCM_NONE ),
2888 ENTRY( 0x7ff1, 0x0003, "xs", "?", FUNCDCM_NONE ),
2889 ENTRY( 0x7ff1, 0x0004, "IS", "?", FUNCDCM_NONE ),
2890 ENTRY( 0x7ff1, 0x0005, "US", "?", FUNCDCM_NONE ),
2891 ENTRY( 0x7ff1, 0x0007, "US", "?", FUNCDCM_NONE ),
2892 ENTRY( 0x7ff1, 0x0008, "US", "?", FUNCDCM_NONE ),
2893 ENTRY( 0x7ff1, 0x0009, "US", "?", FUNCDCM_NONE ),
2894 ENTRY( 0x7ff1, 0x000a, "LT", "?", FUNCDCM_NONE ),
2895 ENTRY( 0x7ff1, 0x000b, "US", "?", FUNCDCM_NONE ),
2896 ENTRY( 0x7ff1, 0x000c, "US", "?", FUNCDCM_NONE ),
2897 ENTRY( 0x7ff1, 0x000d, "US", "?", FUNCDCM_NONE ),
2898 ENTRY( 0x7ff1, 0x0010, "US", "?", FUNCDCM_NONE ),
2899 ENTRY( 0xfffc, 0xfffc, "OB", "Data Set Trailing Padding", FUNCDCM_NONE ),
2900 ENTRY( 0xfffe, 0xe000, "!!", "Item", FUNCDCM_NONE ),
2901 ENTRY( 0xfffe, 0xe00d, "!!", "Item Delimitation Item", FUNCDCM_NONE ),
2902 ENTRY( 0xfffe, 0xe0dd, "!!", "Sequence Delimitation Item", FUNCDCM_NONE ),
2903 ENTRY( 0xffff, 0xffff, "xs", "", FUNCDCM_NONE )
2904 };
2905
2906 #if DESCRIPION_STR
2907 static const char dicom_descriptions[] =
2908 "Group Length\0" /* 0, 0x0000, 0x0000 */
2909 "Command Length to End\0" /* 1, 0x0000, 0x0001 */
2910 "Affected SOP Class UID\0" /* 2, 0x0000, 0x0002 */
2911 "Requested SOP Class UID\0" /* 3, 0x0000, 0x0003 */
2912 "Command Recognition Code\0" /* 4, 0x0000, 0x0010 */
2913 "Command Field\0" /* 5, 0x0000, 0x0100 */
2914 "Message ID\0" /* 6, 0x0000, 0x0110 */
2915 "Message ID Being Responded To\0" /* 7, 0x0000, 0x0120 */
2916 "Initiator\0" /* 8, 0x0000, 0x0200 */
2917 "Receiver\0" /* 9, 0x0000, 0x0300 */
2918 "Find Location\0" /* 10, 0x0000, 0x0400 */
2919 "Move Destination\0" /* 11, 0x0000, 0x0600 */
2920 "Priority\0" /* 12, 0x0000, 0x0700 */
2921 "Data Set Type\0" /* 13, 0x0000, 0x0800 */
2922 "Number of Matches\0" /* 14, 0x0000, 0x0850 */
2923 "Response Sequence Number\0" /* 15, 0x0000, 0x0860 */
2924 "Status\0" /* 16, 0x0000, 0x0900 */
2925 "Offending Element\0" /* 17, 0x0000, 0x0901 */
2926 "Exception Comment\0" /* 18, 0x0000, 0x0902 */
2927 "Exception ID\0" /* 19, 0x0000, 0x0903 */
2928 "Affected SOP Instance UID\0" /* 20, 0x0000, 0x1000 */
2929 "Requested SOP Instance UID\0" /* 21, 0x0000, 0x1001 */
2930 "Event Type ID\0" /* 22, 0x0000, 0x1002 */
2931 "Attribute Identifier List\0" /* 23, 0x0000, 0x1005 */
2932 "Action Type ID\0" /* 24, 0x0000, 0x1008 */
2933 "Number of Remaining Suboperations\0" /* 25, 0x0000, 0x1020 */
2934 "Number of Completed Suboperations\0" /* 26, 0x0000, 0x1021 */
2935 "Number of Failed Suboperations\0" /* 27, 0x0000, 0x1022 */
2936 "Number of Warning Suboperations\0" /* 28, 0x0000, 0x1023 */
2937 "Move Originator Application Entity Title\0" /* 29, 0x0000, 0x1030 */
2938 "Move Originator Message ID\0" /* 30, 0x0000, 0x1031 */
2939 "Dialog Receiver\0" /* 31, 0x0000, 0x4000 */
2940 "Terminal Type\0" /* 32, 0x0000, 0x4010 */
2941 "Message Set ID\0" /* 33, 0x0000, 0x5010 */
2942 "End Message Set\0" /* 34, 0x0000, 0x5020 */
2943 "Display Format\0" /* 35, 0x0000, 0x5110 */
2944 "Page Position ID\0" /* 36, 0x0000, 0x5120 */
2945 "Text Format ID\0" /* 37, 0x0000, 0x5130 */
2946 "Normal Reverse\0" /* 38, 0x0000, 0x5140 */
2947 "Add Gray Scale\0" /* 39, 0x0000, 0x5150 */
2948 "Borders\0" /* 40, 0x0000, 0x5160 */
2949 "Copies\0" /* 41, 0x0000, 0x5170 */
2950 "OldMagnificationType\0" /* 42, 0x0000, 0x5180 */
2951 "Erase\0" /* 43, 0x0000, 0x5190 */
2952 "Print\0" /* 44, 0x0000, 0x51a0 */
2953 "Overlays\0" /* 45, 0x0000, 0x51b0 */
2954 "Meta Element Group Length\0" /* 46, 0x0002, 0x0000 */
2955 "File Meta Information Version\0" /* 47, 0x0002, 0x0001 */
2956 "Media Storage SOP Class UID\0" /* 48, 0x0002, 0x0002 */
2957 "Media Storage SOP Instance UID\0" /* 49, 0x0002, 0x0003 */
2958 "Transfer Syntax UID\0" /* 50, 0x0002, 0x0010 */
2959 "Implementation Class UID\0" /* 51, 0x0002, 0x0012 */
2960 "Implementation Version Name\0" /* 52, 0x0002, 0x0013 */
2961 "Source Application Entity Title\0" /* 53, 0x0002, 0x0016 */
2962 "Private Information Creator UID\0" /* 54, 0x0002, 0x0100 */
2963 "Private Information\0" /* 55, 0x0002, 0x0102 */
2964 "?\0" /* 56, 0x0003, 0x0000 */
2965 "ISI Command Field\0" /* 57, 0x0003, 0x0008 */
2966 "Attach ID Application Code\0" /* 58, 0x0003, 0x0011 */
2967 "Attach ID Message Count\0" /* 59, 0x0003, 0x0012 */
2968 "Attach ID Date\0" /* 60, 0x0003, 0x0013 */
2969 "Attach ID Time\0" /* 61, 0x0003, 0x0014 */
2970 "Message Type\0" /* 62, 0x0003, 0x0020 */
2971 "Max Waiting Date\0" /* 63, 0x0003, 0x0030 */
2972 "Max Waiting Time\0" /* 64, 0x0003, 0x0031 */
2973 "File Set Group Length\0" /* 65, 0x0004, 0x0000 */
2974 "File Set ID\0" /* 66, 0x0004, 0x1130 */
2975 "File Set Descriptor File ID\0" /* 67, 0x0004, 0x1141 */
2976 "File Set Descriptor File Specific Character Set\0" /* 68, 0x0004, 0x1142 */
2977 "Root Directory Entity First Directory Record Offset\0" /* 69, 0x0004, 0x1200 */
2978 "Root Directory Entity Last Directory Record Offset\0" /* 70, 0x0004, 0x1202 */
2979 "File Set Consistency Flag\0" /* 71, 0x0004, 0x1212 */
2980 "Directory Record Sequence\0" /* 72, 0x0004, 0x1220 */
2981 "Next Directory Record Offset\0" /* 73, 0x0004, 0x1400 */
2982 "Record In Use Flag\0" /* 74, 0x0004, 0x1410 */
2983 "Referenced Lower Level Directory Entity Offset\0" /* 75, 0x0004, 0x1420 */
2984 "Directory Record Type\0" /* 76, 0x0004, 0x1430 */
2985 "Private Record UID\0" /* 77, 0x0004, 0x1432 */
2986 "Referenced File ID\0" /* 78, 0x0004, 0x1500 */
2987 "MRDR Directory Record Offset\0" /* 79, 0x0004, 0x1504 */
2988 "Referenced SOP Class UID In File\0" /* 80, 0x0004, 0x1510 */
2989 "Referenced SOP Instance UID In File\0" /* 81, 0x0004, 0x1511 */
2990 "Referenced Transfer Syntax UID In File\0" /* 82, 0x0004, 0x1512 */
2991 "Number of References\0" /* 83, 0x0004, 0x1600 */
2992 "?\0" /* 84, 0x0005, 0x0000 */
2993 "?\0" /* 85, 0x0006, 0x0000 */
2994 "Identifying Group Length\0" /* 86, 0x0008, 0x0000 */
2995 "Length to End\0" /* 87, 0x0008, 0x0001 */
2996 "Specific Character Set\0" /* 88, 0x0008, 0x0005 */
2997 "Image Type\0" /* 89, 0x0008, 0x0008 */
2998 "Recognition Code\0" /* 90, 0x0008, 0x0010 */
2999 "Instance Creation Date\0" /* 91, 0x0008, 0x0012 */
3000 "Instance Creation Time\0" /* 92, 0x0008, 0x0013 */
3001 "Instance Creator UID\0" /* 93, 0x0008, 0x0014 */
3002 "SOP Class UID\0" /* 94, 0x0008, 0x0016 */
3003 "SOP Instance UID\0" /* 95, 0x0008, 0x0018 */
3004 "Study Date\0" /* 96, 0x0008, 0x0020 */
3005 "Series Date\0" /* 97, 0x0008, 0x0021 */
3006 "Acquisition Date\0" /* 98, 0x0008, 0x0022 */
3007 "Image Date\0" /* 99, 0x0008, 0x0023 */
3008 "Overlay Date\0" /* 100, 0x0008, 0x0024 */
3009 "Curve Date\0" /* 101, 0x0008, 0x0025 */
3010 "Study Time\0" /* 102, 0x0008, 0x0030 */
3011 "Series Time\0" /* 103, 0x0008, 0x0031 */
3012 "Acquisition Time\0" /* 104, 0x0008, 0x0032 */
3013 "Image Time\0" /* 105, 0x0008, 0x0033 */
3014 "Overlay Time\0" /* 106, 0x0008, 0x0034 */
3015 "Curve Time\0" /* 107, 0x0008, 0x0035 */
3016 "Old Data Set Type\0" /* 108, 0x0008, 0x0040 */
3017 "Old Data Set Subtype\0" /* 109, 0x0008, 0x0041 */
3018 "Nuclear Medicine Series Type\0" /* 110, 0x0008, 0x0042 */
3019 "Accession Number\0" /* 111, 0x0008, 0x0050 */
3020 "Query/Retrieve Level\0" /* 112, 0x0008, 0x0052 */
3021 "Retrieve AE Title\0" /* 113, 0x0008, 0x0054 */
3022 "Failed SOP Instance UID List\0" /* 114, 0x0008, 0x0058 */
3023 "Modality\0" /* 115, 0x0008, 0x0060 */
3024 "Modality Subtype\0" /* 116, 0x0008, 0x0062 */
3025 "Conversion Type\0" /* 117, 0x0008, 0x0064 */
3026 "Presentation Intent Type\0" /* 118, 0x0008, 0x0068 */
3027 "Manufacturer\0" /* 119, 0x0008, 0x0070 */
3028 "Institution Name\0" /* 120, 0x0008, 0x0080 */
3029 "Institution Address\0" /* 121, 0x0008, 0x0081 */
3030 "Institution Code Sequence\0" /* 122, 0x0008, 0x0082 */
3031 "Referring Physician's Name\0" /* 123, 0x0008, 0x0090 */
3032 "Referring Physician's Address\0" /* 124, 0x0008, 0x0092 */
3033 "Referring Physician's Telephone Numbers\0" /* 125, 0x0008, 0x0094 */
3034 "Code Value\0" /* 126, 0x0008, 0x0100 */
3035 "Coding Scheme Designator\0" /* 127, 0x0008, 0x0102 */
3036 "Coding Scheme Version\0" /* 128, 0x0008, 0x0103 */
3037 "Code Meaning\0" /* 129, 0x0008, 0x0104 */
3038 "Mapping Resource\0" /* 130, 0x0008, 0x0105 */
3039 "Context Group Version\0" /* 131, 0x0008, 0x0106 */
3040 "Code Set Extension Flag\0" /* 132, 0x0008, 0x010b */
3041 "Private Coding Scheme Creator UID\0" /* 133, 0x0008, 0x010c */
3042 "Code Set Extension Creator UID\0" /* 134, 0x0008, 0x010d */
3043 "Context Identifier\0" /* 135, 0x0008, 0x010f */
3044 "Network ID\0" /* 136, 0x0008, 0x1000 */
3045 "Station Name\0" /* 137, 0x0008, 0x1010 */
3046 "Study Description\0" /* 138, 0x0008, 0x1030 */
3047 "Procedure Code Sequence\0" /* 139, 0x0008, 0x1032 */
3048 "Series Description\0" /* 140, 0x0008, 0x103e */
3049 "Institutional Department Name\0" /* 141, 0x0008, 0x1040 */
3050 "Physician of Record\0" /* 142, 0x0008, 0x1048 */
3051 "Performing Physician's Name\0" /* 143, 0x0008, 0x1050 */
3052 "Name of Physician(s) Reading Study\0" /* 144, 0x0008, 0x1060 */
3053 "Operator's Name\0" /* 145, 0x0008, 0x1070 */
3054 "Admitting Diagnosis Description\0" /* 146, 0x0008, 0x1080 */
3055 "Admitting Diagnosis Code Sequence\0" /* 147, 0x0008, 0x1084 */
3056 "Manufacturer's Model Name\0" /* 148, 0x0008, 0x1090 */
3057 "Referenced Results Sequence\0" /* 149, 0x0008, 0x1100 */
3058 "Referenced Study Sequence\0" /* 150, 0x0008, 0x1110 */
3059 "Referenced Study Component Sequence\0" /* 151, 0x0008, 0x1111 */
3060 "Referenced Series Sequence\0" /* 152, 0x0008, 0x1115 */
3061 "Referenced Patient Sequence\0" /* 153, 0x0008, 0x1120 */
3062 "Referenced Visit Sequence\0" /* 154, 0x0008, 0x1125 */
3063 "Referenced Overlay Sequence\0" /* 155, 0x0008, 0x1130 */
3064 "Referenced Image Sequence\0" /* 156, 0x0008, 0x1140 */
3065 "Referenced Curve Sequence\0" /* 157, 0x0008, 0x1145 */
3066 "Referenced Previous Waveform\0" /* 158, 0x0008, 0x1148 */
3067 "Referenced Simultaneous Waveforms\0" /* 159, 0x0008, 0x114a */
3068 "Referenced Subsequent Waveform\0" /* 160, 0x0008, 0x114c */
3069 "Referenced SOP Class UID\0" /* 161, 0x0008, 0x1150 */
3070 "Referenced SOP Instance UID\0" /* 162, 0x0008, 0x1155 */
3071 "Referenced Frame Number\0" /* 163, 0x0008, 0x1160 */
3072 "Transaction UID\0" /* 164, 0x0008, 0x1195 */
3073 "Failure Reason\0" /* 165, 0x0008, 0x1197 */
3074 "Failed SOP Sequence\0" /* 166, 0x0008, 0x1198 */
3075 "Referenced SOP Sequence\0" /* 167, 0x0008, 0x1199 */
3076 "Old Lossy Image Compression\0" /* 168, 0x0008, 0x2110 */
3077 "Derivation Description\0" /* 169, 0x0008, 0x2111 */
3078 "Source Image Sequence\0" /* 170, 0x0008, 0x2112 */
3079 "Stage Name\0" /* 171, 0x0008, 0x2120 */
3080 "Stage Number\0" /* 172, 0x0008, 0x2122 */
3081 "Number of Stages\0" /* 173, 0x0008, 0x2124 */
3082 "View Number\0" /* 174, 0x0008, 0x2128 */
3083 "Number of Event Timers\0" /* 175, 0x0008, 0x2129 */
3084 "Number of Views in Stage\0" /* 176, 0x0008, 0x212a */
3085 "Event Elapsed Time(s)\0" /* 177, 0x0008, 0x2130 */
3086 "Event Timer Name(s)\0" /* 178, 0x0008, 0x2132 */
3087 "Start Trim\0" /* 179, 0x0008, 0x2142 */
3088 "Stop Trim\0" /* 180, 0x0008, 0x2143 */
3089 "Recommended Display Frame Rate\0" /* 181, 0x0008, 0x2144 */
3090 "Transducer Position\0" /* 182, 0x0008, 0x2200 */
3091 "Transducer Orientation\0" /* 183, 0x0008, 0x2204 */
3092 "Anatomic Structure\0" /* 184, 0x0008, 0x2208 */
3093 "Anatomic Region Sequence\0" /* 185, 0x0008, 0x2218 */
3094 "Anatomic Region Modifier Sequence\0" /* 186, 0x0008, 0x2220 */
3095 "Primary Anatomic Structure Sequence\0" /* 187, 0x0008, 0x2228 */
3096 "Primary Anatomic Structure Modifier Sequence\0" /* 188, 0x0008, 0x2230 */
3097 "Transducer Position Sequence\0" /* 189, 0x0008, 0x2240 */
3098 "Transducer Position Modifier Sequence\0" /* 190, 0x0008, 0x2242 */
3099 "Transducer Orientation Sequence\0" /* 191, 0x0008, 0x2244 */
3100 "Transducer Orientation Modifier Sequence\0" /* 192, 0x0008, 0x2246 */
3101 "Anatomic Structure Space Or Region Code Sequence\0" /* 193, 0x0008, 0x2251 */
3102 "Anatomic Portal Of Entrance Code Sequence\0" /* 194, 0x0008, 0x2253 */
3103 "Anatomic Approach Direction Code Sequence\0" /* 195, 0x0008, 0x2255 */
3104 "Anatomic Perspective Description\0" /* 196, 0x0008, 0x2256 */
3105 "Anatomic Perspective Code Sequence\0" /* 197, 0x0008, 0x2257 */
3106 "Anatomic Location Of Examining Instrument Description\0" /* 198, 0x0008, 0x2258 */
3107 "Anatomic Location Of Examining Instrument Code Sequence\0" /* 199, 0x0008, 0x2259 */
3108 "Anatomic Structure Space Or Region Modifier Code Sequence\0" /* 200, 0x0008, 0x225a */
3109 "OnAxis Background Anatomic Structure Code Sequence\0" /* 201, 0x0008, 0x225c */
3110 "Identifying Comments\0" /* 202, 0x0008, 0x4000 */
3111 "?\0" /* 203, 0x0009, 0x0000 */
3112 "?\0" /* 204, 0x0009, 0x0001 */
3113 "?\0" /* 205, 0x0009, 0x0002 */
3114 "?\0" /* 206, 0x0009, 0x0003 */
3115 "?\0" /* 207, 0x0009, 0x0004 */
3116 "?\0" /* 208, 0x0009, 0x0005 */
3117 "?\0" /* 209, 0x0009, 0x0006 */
3118 "?\0" /* 210, 0x0009, 0x0007 */
3119 "?\0" /* 211, 0x0009, 0x0008 */
3120 "?\0" /* 212, 0x0009, 0x0009 */
3121 "?\0" /* 213, 0x0009, 0x000a */
3122 "?\0" /* 214, 0x0009, 0x000b */
3123 "?\0" /* 215, 0x0009, 0x000c */
3124 "?\0" /* 216, 0x0009, 0x000d */
3125 "?\0" /* 217, 0x0009, 0x000e */
3126 "?\0" /* 218, 0x0009, 0x000f */
3127 "?\0" /* 219, 0x0009, 0x0010 */
3128 "?\0" /* 220, 0x0009, 0x0011 */
3129 "?\0" /* 221, 0x0009, 0x0012 */
3130 "?\0" /* 222, 0x0009, 0x0013 */
3131 "?\0" /* 223, 0x0009, 0x0014 */
3132 "?\0" /* 224, 0x0009, 0x0015 */
3133 "?\0" /* 225, 0x0009, 0x0016 */
3134 "?\0" /* 226, 0x0009, 0x0017 */
3135 "Data Set Identifier\0" /* 227, 0x0009, 0x0018 */
3136 "?\0" /* 228, 0x0009, 0x001a */
3137 "?\0" /* 229, 0x0009, 0x001e */
3138 "?\0" /* 230, 0x0009, 0x0020 */
3139 "?\0" /* 231, 0x0009, 0x0021 */
3140 "User Orientation\0" /* 232, 0x0009, 0x0022 */
3141 "Initiation Type\0" /* 233, 0x0009, 0x0023 */
3142 "?\0" /* 234, 0x0009, 0x0024 */
3143 "?\0" /* 235, 0x0009, 0x0025 */
3144 "?\0" /* 236, 0x0009, 0x0026 */
3145 "?\0" /* 237, 0x0009, 0x0027 */
3146 "?\0" /* 238, 0x0009, 0x0029 */
3147 "?\0" /* 239, 0x0009, 0x002a */
3148 "Series Comments\0" /* 240, 0x0009, 0x002c */
3149 "Track Beat Average\0" /* 241, 0x0009, 0x002d */
3150 "Distance Prescribed\0" /* 242, 0x0009, 0x002e */
3151 "?\0" /* 243, 0x0009, 0x002f */
3152 "?\0" /* 244, 0x0009, 0x0030 */
3153 "?\0" /* 245, 0x0009, 0x0031 */
3154 "?\0" /* 246, 0x0009, 0x0032 */
3155 "?\0" /* 247, 0x0009, 0x0034 */
3156 "Gantry Locus Type\0" /* 248, 0x0009, 0x0035 */
3157 "Starting Heart Rate\0" /* 249, 0x0009, 0x0037 */
3158 "?\0" /* 250, 0x0009, 0x0038 */
3159 "RR Window Offset\0" /* 251, 0x0009, 0x0039 */
3160 "Percent Cycle Imaged\0" /* 252, 0x0009, 0x003a */
3161 "?\0" /* 253, 0x0009, 0x003e */
3162 "?\0" /* 254, 0x0009, 0x003f */
3163 "?\0" /* 255, 0x0009, 0x0040 */
3164 "?\0" /* 256, 0x0009, 0x0041 */
3165 "?\0" /* 257, 0x0009, 0x0042 */
3166 "?\0" /* 258, 0x0009, 0x0043 */
3167 "?\0" /* 259, 0x0009, 0x0050 */
3168 "?\0" /* 260, 0x0009, 0x0051 */
3169 "?\0" /* 261, 0x0009, 0x0060 */
3170 "Series Unique Identifier\0" /* 262, 0x0009, 0x0061 */
3171 "?\0" /* 263, 0x0009, 0x0070 */
3172 "?\0" /* 264, 0x0009, 0x0080 */
3173 "?\0" /* 265, 0x0009, 0x0091 */
3174 "?\0" /* 266, 0x0009, 0x00e2 */
3175 "Equipment UID\0" /* 267, 0x0009, 0x00e3 */
3176 "Genesis Version Now\0" /* 268, 0x0009, 0x00e6 */
3177 "Exam Record Checksum\0" /* 269, 0x0009, 0x00e7 */
3178 "?\0" /* 270, 0x0009, 0x00e8 */
3179 "Actual Series Data Time Stamp\0" /* 271, 0x0009, 0x00e9 */
3180 "?\0" /* 272, 0x0009, 0x00f2 */
3181 "?\0" /* 273, 0x0009, 0x00f3 */
3182 "?\0" /* 274, 0x0009, 0x00f4 */
3183 "?\0" /* 275, 0x0009, 0x00f5 */
3184 "PDM Data Object Type Extension\0" /* 276, 0x0009, 0x00f6 */
3185 "?\0" /* 277, 0x0009, 0x00f8 */
3186 "?\0" /* 278, 0x0009, 0x00fb */
3187 "?\0" /* 279, 0x0009, 0x1002 */
3188 "?\0" /* 280, 0x0009, 0x1003 */
3189 "?\0" /* 281, 0x0009, 0x1010 */
3190 "Patient Group Length\0" /* 282, 0x0010, 0x0000 */
3191 "Patient's Name\0" /* 283, 0x0010, 0x0010 */
3192 "Patient's ID\0" /* 284, 0x0010, 0x0020 */
3193 "Issuer of Patient's ID\0" /* 285, 0x0010, 0x0021 */
3194 "Patient's Birth Date\0" /* 286, 0x0010, 0x0030 */
3195 "Patient's Birth Time\0" /* 287, 0x0010, 0x0032 */
3196 "Patient's Sex\0" /* 288, 0x0010, 0x0040 */
3197 "Patient's Insurance Plan Code Sequence\0" /* 289, 0x0010, 0x0050 */
3198 "Other Patient's ID's\0" /* 290, 0x0010, 0x1000 */
3199 "Other Patient's Names\0" /* 291, 0x0010, 0x1001 */
3200 "Patient's Birth Name\0" /* 292, 0x0010, 0x1005 */
3201 "Patient's Age\0" /* 293, 0x0010, 0x1010 */
3202 "Patient's Size\0" /* 294, 0x0010, 0x1020 */
3203 "Patient's Weight\0" /* 295, 0x0010, 0x1030 */
3204 "Patient's Address\0" /* 296, 0x0010, 0x1040 */
3205 "Insurance Plan Identification\0" /* 297, 0x0010, 0x1050 */
3206 "Patient's Mother's Birth Name\0" /* 298, 0x0010, 0x1060 */
3207 "Military Rank\0" /* 299, 0x0010, 0x1080 */
3208 "Branch of Service\0" /* 300, 0x0010, 0x1081 */
3209 "Medical Record Locator\0" /* 301, 0x0010, 0x1090 */
3210 "Medical Alerts\0" /* 302, 0x0010, 0x2000 */
3211 "Contrast Allergies\0" /* 303, 0x0010, 0x2110 */
3212 "Country of Residence\0" /* 304, 0x0010, 0x2150 */
3213 "Region of Residence\0" /* 305, 0x0010, 0x2152 */
3214 "Patients Telephone Numbers\0" /* 306, 0x0010, 0x2154 */
3215 "Ethnic Group\0" /* 307, 0x0010, 0x2160 */
3216 "Occupation\0" /* 308, 0x0010, 0x2180 */
3217 "Smoking Status\0" /* 309, 0x0010, 0x21a0 */
3218 "Additional Patient History\0" /* 310, 0x0010, 0x21b0 */
3219 "Pregnancy Status\0" /* 311, 0x0010, 0x21c0 */
3220 "Last Menstrual Date\0" /* 312, 0x0010, 0x21d0 */
3221 "Patients Religious Preference\0" /* 313, 0x0010, 0x21f0 */
3222 "Patient Comments\0" /* 314, 0x0010, 0x4000 */
3223 "?\0" /* 315, 0x0011, 0x0001 */
3224 "?\0" /* 316, 0x0011, 0x0002 */
3225 "Patient UID\0" /* 317, 0x0011, 0x0003 */
3226 "Patient ID\0" /* 318, 0x0011, 0x0004 */
3227 "?\0" /* 319, 0x0011, 0x000a */
3228 "Effective Series Duration\0" /* 320, 0x0011, 0x000b */
3229 "Num Beats\0" /* 321, 0x0011, 0x000c */
3230 "Radio Nuclide Name\0" /* 322, 0x0011, 0x000d */
3231 "?\0" /* 323, 0x0011, 0x0010 */
3232 "?\0" /* 324, 0x0011, 0x0011 */
3233 "Dataset Name\0" /* 325, 0x0011, 0x0012 */
3234 "Dataset Type\0" /* 326, 0x0011, 0x0013 */
3235 "?\0" /* 327, 0x0011, 0x0015 */
3236 "Energy Number\0" /* 328, 0x0011, 0x0016 */
3237 "RR Interval Window Number\0" /* 329, 0x0011, 0x0017 */
3238 "MG Bin Number\0" /* 330, 0x0011, 0x0018 */
3239 "Radius Of Rotation\0" /* 331, 0x0011, 0x0019 */
3240 "Detector Count Zone\0" /* 332, 0x0011, 0x001a */
3241 "Num Energy Windows\0" /* 333, 0x0011, 0x001b */
3242 "Energy Offset\0" /* 334, 0x0011, 0x001c */
3243 "Energy Range\0" /* 335, 0x0011, 0x001d */
3244 "Image Orientation\0" /* 336, 0x0011, 0x001f */
3245 "?\0" /* 337, 0x0011, 0x0020 */
3246 "?\0" /* 338, 0x0011, 0x0021 */
3247 "?\0" /* 339, 0x0011, 0x0022 */
3248 "?\0" /* 340, 0x0011, 0x0023 */
3249 "FOV Mask Y Cutoff Angle\0" /* 341, 0x0011, 0x0024 */
3250 "?\0" /* 342, 0x0011, 0x0025 */
3251 "Table Orientation\0" /* 343, 0x0011, 0x0026 */
3252 "ROI Top Left\0" /* 344, 0x0011, 0x0027 */
3253 "ROI Bottom Right\0" /* 345, 0x0011, 0x0028 */
3254 "?\0" /* 346, 0x0011, 0x0030 */
3255 "?\0" /* 347, 0x0011, 0x0031 */
3256 "?\0" /* 348, 0x0011, 0x0032 */
3257 "Energy Correct Name\0" /* 349, 0x0011, 0x0033 */
3258 "Spatial Correct Name\0" /* 350, 0x0011, 0x0034 */
3259 "?\0" /* 351, 0x0011, 0x0035 */
3260 "Uniformity Correct Name\0" /* 352, 0x0011, 0x0036 */
3261 "Acquisition Specific Correct Name\0" /* 353, 0x0011, 0x0037 */
3262 "Byte Order\0" /* 354, 0x0011, 0x0038 */
3263 "Picture Format\0" /* 355, 0x0011, 0x003a */
3264 "Pixel Scale\0" /* 356, 0x0011, 0x003b */
3265 "Pixel Offset\0" /* 357, 0x0011, 0x003c */
3266 "FOV Shape\0" /* 358, 0x0011, 0x003e */
3267 "Dataset Flags\0" /* 359, 0x0011, 0x003f */
3268 "?\0" /* 360, 0x0011, 0x0040 */
3269 "Medical Alerts\0" /* 361, 0x0011, 0x0041 */
3270 "Contrast Allergies\0" /* 362, 0x0011, 0x0042 */
3271 "Threshold Center\0" /* 363, 0x0011, 0x0044 */
3272 "Threshold Width\0" /* 364, 0x0011, 0x0045 */
3273 "Interpolation Type\0" /* 365, 0x0011, 0x0046 */
3274 "Period\0" /* 366, 0x0011, 0x0055 */
3275 "ElapsedTime\0" /* 367, 0x0011, 0x0056 */
3276 "Patient Registration Date\0" /* 368, 0x0011, 0x00a1 */
3277 "Patient Registration Time\0" /* 369, 0x0011, 0x00a2 */
3278 "Patient Last Name\0" /* 370, 0x0011, 0x00b0 */
3279 "Patient First Name\0" /* 371, 0x0011, 0x00b2 */
3280 "Patient Hospital Status\0" /* 372, 0x0011, 0x00b4 */
3281 "Current Location Time\0" /* 373, 0x0011, 0x00bc */
3282 "Patient Insurance Status\0" /* 374, 0x0011, 0x00c0 */
3283 "Patient Billing Type\0" /* 375, 0x0011, 0x00d0 */
3284 "Patient Billing Address\0" /* 376, 0x0011, 0x00d2 */
3285 "Modifying Physician\0" /* 377, 0x0013, 0x0000 */
3286 "?\0" /* 378, 0x0013, 0x0010 */
3287 "?\0" /* 379, 0x0013, 0x0011 */
3288 "?\0" /* 380, 0x0013, 0x0012 */
3289 "AutoTrack Peak\0" /* 381, 0x0013, 0x0016 */
3290 "AutoTrack Width\0" /* 382, 0x0013, 0x0017 */
3291 "Transmission Scan Time\0" /* 383, 0x0013, 0x0018 */
3292 "Transmission Mask Width\0" /* 384, 0x0013, 0x0019 */
3293 "Copper Attenuator Thickness\0" /* 385, 0x0013, 0x001a */
3294 "?\0" /* 386, 0x0013, 0x001c */
3295 "?\0" /* 387, 0x0013, 0x001d */
3296 "Tomo View Offset\0" /* 388, 0x0013, 0x001e */
3297 "Patient Name\0" /* 389, 0x0013, 0x0020 */
3298 "Patient Id\0" /* 390, 0x0013, 0x0022 */
3299 "Study Comments\0" /* 391, 0x0013, 0x0026 */
3300 "Patient Birthdate\0" /* 392, 0x0013, 0x0030 */
3301 "Patient Weight\0" /* 393, 0x0013, 0x0031 */
3302 "Patients Maiden Name\0" /* 394, 0x0013, 0x0032 */
3303 "Referring Physician\0" /* 395, 0x0013, 0x0033 */
3304 "Admitting Diagnosis\0" /* 396, 0x0013, 0x0034 */
3305 "Patient Sex\0" /* 397, 0x0013, 0x0035 */
3306 "Procedure Description\0" /* 398, 0x0013, 0x0040 */
3307 "Patient Rest Direction\0" /* 399, 0x0013, 0x0042 */
3308 "Patient Position\0" /* 400, 0x0013, 0x0044 */
3309 "View Direction\0" /* 401, 0x0013, 0x0046 */
3310 "Stenosis Calibration Ratio\0" /* 402, 0x0015, 0x0001 */
3311 "Stenosis Magnification\0" /* 403, 0x0015, 0x0002 */
3312 "Cardiac Calibration Ratio\0" /* 404, 0x0015, 0x0003 */
3313 "Acquisition Group Length\0" /* 405, 0x0018, 0x0000 */
3314 "Contrast/Bolus Agent\0" /* 406, 0x0018, 0x0010 */
3315 "Contrast/Bolus Agent Sequence\0" /* 407, 0x0018, 0x0012 */
3316 "Contrast/Bolus Administration Route Sequence\0" /* 408, 0x0018, 0x0014 */
3317 "Body Part Examined\0" /* 409, 0x0018, 0x0015 */
3318 "Scanning Sequence\0" /* 410, 0x0018, 0x0020 */
3319 "Sequence Variant\0" /* 411, 0x0018, 0x0021 */
3320 "Scan Options\0" /* 412, 0x0018, 0x0022 */
3321 "MR Acquisition Type\0" /* 413, 0x0018, 0x0023 */
3322 "Sequence Name\0" /* 414, 0x0018, 0x0024 */
3323 "Angio Flag\0" /* 415, 0x0018, 0x0025 */
3324 "Intervention Drug Information Sequence\0" /* 416, 0x0018, 0x0026 */
3325 "Intervention Drug Stop Time\0" /* 417, 0x0018, 0x0027 */
3326 "Intervention Drug Dose\0" /* 418, 0x0018, 0x0028 */
3327 "Intervention Drug Code Sequence\0" /* 419, 0x0018, 0x0029 */
3328 "Additional Drug Sequence\0" /* 420, 0x0018, 0x002a */
3329 "Radionuclide\0" /* 421, 0x0018, 0x0030 */
3330 "Radiopharmaceutical\0" /* 422, 0x0018, 0x0031 */
3331 "Energy Window Centerline\0" /* 423, 0x0018, 0x0032 */
3332 "Energy Window Total Width\0" /* 424, 0x0018, 0x0033 */
3333 "Intervention Drug Name\0" /* 425, 0x0018, 0x0034 */
3334 "Intervention Drug Start Time\0" /* 426, 0x0018, 0x0035 */
3335 "Intervention Therapy Sequence\0" /* 427, 0x0018, 0x0036 */
3336 "Therapy Type\0" /* 428, 0x0018, 0x0037 */
3337 "Intervention Status\0" /* 429, 0x0018, 0x0038 */
3338 "Therapy Description\0" /* 430, 0x0018, 0x0039 */
3339 "Cine Rate\0" /* 431, 0x0018, 0x0040 */
3340 "Slice Thickness\0" /* 432, 0x0018, 0x0050 */
3341 "KVP\0" /* 433, 0x0018, 0x0060 */
3342 "Counts Accumulated\0" /* 434, 0x0018, 0x0070 */
3343 "Acquisition Termination Condition\0" /* 435, 0x0018, 0x0071 */
3344 "Effective Series Duration\0" /* 436, 0x0018, 0x0072 */
3345 "Acquisition Start Condition\0" /* 437, 0x0018, 0x0073 */
3346 "Acquisition Start Condition Data\0" /* 438, 0x0018, 0x0074 */
3347 "Acquisition Termination Condition Data\0" /* 439, 0x0018, 0x0075 */
3348 "Repetition Time\0" /* 440, 0x0018, 0x0080 */
3349 "Echo Time\0" /* 441, 0x0018, 0x0081 */
3350 "Inversion Time\0" /* 442, 0x0018, 0x0082 */
3351 "Number of Averages\0" /* 443, 0x0018, 0x0083 */
3352 "Imaging Frequency\0" /* 444, 0x0018, 0x0084 */
3353 "Imaged Nucleus\0" /* 445, 0x0018, 0x0085 */
3354 "Echo Number(s)\0" /* 446, 0x0018, 0x0086 */
3355 "Magnetic Field Strength\0" /* 447, 0x0018, 0x0087 */
3356 "Spacing Between Slices\0" /* 448, 0x0018, 0x0088 */
3357 "Number of Phase Encoding Steps\0" /* 449, 0x0018, 0x0089 */
3358 "Data Collection Diameter\0" /* 450, 0x0018, 0x0090 */
3359 "Echo Train Length\0" /* 451, 0x0018, 0x0091 */
3360 "Percent Sampling\0" /* 452, 0x0018, 0x0093 */
3361 "Percent Phase Field of View\0" /* 453, 0x0018, 0x0094 */
3362 "Pixel Bandwidth\0" /* 454, 0x0018, 0x0095 */
3363 "Device Serial Number\0" /* 455, 0x0018, 0x1000 */
3364 "Plate ID\0" /* 456, 0x0018, 0x1004 */
3365 "Secondary Capture Device ID\0" /* 457, 0x0018, 0x1010 */
3366 "Date of Secondary Capture\0" /* 458, 0x0018, 0x1012 */
3367 "Time of Secondary Capture\0" /* 459, 0x0018, 0x1014 */
3368 "Secondary Capture Device Manufacturer\0" /* 460, 0x0018, 0x1016 */
3369 "Secondary Capture Device Manufacturer Model Name\0" /* 461, 0x0018, 0x1018 */
3370 "Secondary Capture Device Software Version(s)\0" /* 462, 0x0018, 0x1019 */
3371 "Software Version(s)\0" /* 463, 0x0018, 0x1020 */
3372 "Video Image Format Acquired\0" /* 464, 0x0018, 0x1022 */
3373 "Digital Image Format Acquired\0" /* 465, 0x0018, 0x1023 */
3374 "Protocol Name\0" /* 466, 0x0018, 0x1030 */
3375 "Contrast/Bolus Route\0" /* 467, 0x0018, 0x1040 */
3376 "Contrast/Bolus Volume\0" /* 468, 0x0018, 0x1041 */
3377 "Contrast/Bolus Start Time\0" /* 469, 0x0018, 0x1042 */
3378 "Contrast/Bolus Stop Time\0" /* 470, 0x0018, 0x1043 */
3379 "Contrast/Bolus Total Dose\0" /* 471, 0x0018, 0x1044 */
3380 "Syringe Counts\0" /* 472, 0x0018, 0x1045 */
3381 "Contrast Flow Rate\0" /* 473, 0x0018, 0x1046 */
3382 "Contrast Flow Duration\0" /* 474, 0x0018, 0x1047 */
3383 "Contrast/Bolus Ingredient\0" /* 475, 0x0018, 0x1048 */
3384 "Contrast/Bolus Ingredient Concentration\0" /* 476, 0x0018, 0x1049 */
3385 "Spatial Resolution\0" /* 477, 0x0018, 0x1050 */
3386 "Trigger Time\0" /* 478, 0x0018, 0x1060 */
3387 "Trigger Source or Type\0" /* 479, 0x0018, 0x1061 */
3388 "Nominal Interval\0" /* 480, 0x0018, 0x1062 */
3389 "Frame Time\0" /* 481, 0x0018, 0x1063 */
3390 "Framing Type\0" /* 482, 0x0018, 0x1064 */
3391 "Frame Time Vector\0" /* 483, 0x0018, 0x1065 */
3392 "Frame Delay\0" /* 484, 0x0018, 0x1066 */
3393 "Image Trigger Delay\0" /* 485, 0x0018, 0x1067 */
3394 "Group Time Offset\0" /* 486, 0x0018, 0x1068 */
3395 "Trigger Time Offset\0" /* 487, 0x0018, 0x1069 */
3396 "Synchronization Trigger\0" /* 488, 0x0018, 0x106a */
3397 "Synchronization Frame of Reference\0" /* 489, 0x0018, 0x106b */
3398 "Trigger Sample Position\0" /* 490, 0x0018, 0x106e */
3399 "Radiopharmaceutical Route\0" /* 491, 0x0018, 0x1070 */
3400 "Radiopharmaceutical Volume\0" /* 492, 0x0018, 0x1071 */
3401 "Radiopharmaceutical Start Time\0" /* 493, 0x0018, 0x1072 */
3402 "Radiopharmaceutical Stop Time\0" /* 494, 0x0018, 0x1073 */
3403 "Radionuclide Total Dose\0" /* 495, 0x0018, 0x1074 */
3404 "Radionuclide Half Life\0" /* 496, 0x0018, 0x1075 */
3405 "Radionuclide Positron Fraction\0" /* 497, 0x0018, 0x1076 */
3406 "Radiopharmaceutical Specific Activity\0" /* 498, 0x0018, 0x1077 */
3407 "Beat Rejection Flag\0" /* 499, 0x0018, 0x1080 */
3408 "Low R-R Value\0" /* 500, 0x0018, 0x1081 */
3409 "High R-R Value\0" /* 501, 0x0018, 0x1082 */
3410 "Intervals Acquired\0" /* 502, 0x0018, 0x1083 */
3411 "Intervals Rejected\0" /* 503, 0x0018, 0x1084 */
3412 "PVC Rejection\0" /* 504, 0x0018, 0x1085 */
3413 "Skip Beats\0" /* 505, 0x0018, 0x1086 */
3414 "Heart Rate\0" /* 506, 0x0018, 0x1088 */
3415 "Cardiac Number of Images\0" /* 507, 0x0018, 0x1090 */
3416 "Trigger Window\0" /* 508, 0x0018, 0x1094 */
3417 "Reconstruction Diameter\0" /* 509, 0x0018, 0x1100 */
3418 "Distance Source to Detector\0" /* 510, 0x0018, 0x1110 */
3419 "Distance Source to Patient\0" /* 511, 0x0018, 0x1111 */
3420 "Estimated Radiographic Magnification Factor\0" /* 512, 0x0018, 0x1114 */
3421 "Gantry/Detector Tilt\0" /* 513, 0x0018, 0x1120 */
3422 "Gantry/Detector Slew\0" /* 514, 0x0018, 0x1121 */
3423 "Table Height\0" /* 515, 0x0018, 0x1130 */
3424 "Table Traverse\0" /* 516, 0x0018, 0x1131 */
3425 "Table Motion\0" /* 517, 0x0018, 0x1134 */
3426 "Table Vertical Increment\0" /* 518, 0x0018, 0x1135 */
3427 "Table Lateral Increment\0" /* 519, 0x0018, 0x1136 */
3428 "Table Longitudinal Increment\0" /* 520, 0x0018, 0x1137 */
3429 "Table Angle\0" /* 521, 0x0018, 0x1138 */
3430 "Table Type\0" /* 522, 0x0018, 0x113a */
3431 "Rotation Direction\0" /* 523, 0x0018, 0x1140 */
3432 "Angular Position\0" /* 524, 0x0018, 0x1141 */
3433 "Radial Position\0" /* 525, 0x0018, 0x1142 */
3434 "Scan Arc\0" /* 526, 0x0018, 0x1143 */
3435 "Angular Step\0" /* 527, 0x0018, 0x1144 */
3436 "Center of Rotation Offset\0" /* 528, 0x0018, 0x1145 */
3437 "Rotation Offset\0" /* 529, 0x0018, 0x1146 */
3438 "Field of View Shape\0" /* 530, 0x0018, 0x1147 */
3439 "Field of View Dimension(s)\0" /* 531, 0x0018, 0x1149 */
3440 "Exposure Time\0" /* 532, 0x0018, 0x1150 */
3441 "X-ray Tube Current\0" /* 533, 0x0018, 0x1151 */
3442 "Exposure\0" /* 534, 0x0018, 0x1152 */
3443 "Exposure in uAs\0" /* 535, 0x0018, 0x1153 */
3444 "AveragePulseWidth\0" /* 536, 0x0018, 0x1154 */
3445 "RadiationSetting\0" /* 537, 0x0018, 0x1155 */
3446 "Rectification Type\0" /* 538, 0x0018, 0x1156 */
3447 "RadiationMode\0" /* 539, 0x0018, 0x115a */
3448 "ImageAreaDoseProduct\0" /* 540, 0x0018, 0x115e */
3449 "Filter Type\0" /* 541, 0x0018, 0x1160 */
3450 "TypeOfFilters\0" /* 542, 0x0018, 0x1161 */
3451 "IntensifierSize\0" /* 543, 0x0018, 0x1162 */
3452 "ImagerPixelSpacing\0" /* 544, 0x0018, 0x1164 */
3453 "Grid\0" /* 545, 0x0018, 0x1166 */
3454 "Generator Power\0" /* 546, 0x0018, 0x1170 */
3455 "Collimator/Grid Name\0" /* 547, 0x0018, 0x1180 */
3456 "Collimator Type\0" /* 548, 0x0018, 0x1181 */
3457 "Focal Distance\0" /* 549, 0x0018, 0x1182 */
3458 "X Focus Center\0" /* 550, 0x0018, 0x1183 */
3459 "Y Focus Center\0" /* 551, 0x0018, 0x1184 */
3460 "Focal Spot(s)\0" /* 552, 0x0018, 0x1190 */
3461 "Anode Target Material\0" /* 553, 0x0018, 0x1191 */
3462 "Body Part Thickness\0" /* 554, 0x0018, 0x11a0 */
3463 "Compression Force\0" /* 555, 0x0018, 0x11a2 */
3464 "Date of Last Calibration\0" /* 556, 0x0018, 0x1200 */
3465 "Time of Last Calibration\0" /* 557, 0x0018, 0x1201 */
3466 "Convolution Kernel\0" /* 558, 0x0018, 0x1210 */
3467 "Upper/Lower Pixel Values\0" /* 559, 0x0018, 0x1240 */
3468 "Actual Frame Duration\0" /* 560, 0x0018, 0x1242 */
3469 "Count Rate\0" /* 561, 0x0018, 0x1243 */
3470 "Preferred Playback Sequencing\0" /* 562, 0x0018, 0x1244 */
3471 "Receiving Coil\0" /* 563, 0x0018, 0x1250 */
3472 "Transmitting Coil\0" /* 564, 0x0018, 0x1251 */
3473 "Plate Type\0" /* 565, 0x0018, 0x1260 */
3474 "Phosphor Type\0" /* 566, 0x0018, 0x1261 */
3475 "Scan Velocity\0" /* 567, 0x0018, 0x1300 */
3476 "Whole Body Technique\0" /* 568, 0x0018, 0x1301 */
3477 "Scan Length\0" /* 569, 0x0018, 0x1302 */
3478 "Acquisition Matrix\0" /* 570, 0x0018, 0x1310 */
3479 "Phase Encoding Direction\0" /* 571, 0x0018, 0x1312 */
3480 "Flip Angle\0" /* 572, 0x0018, 0x1314 */
3481 "Variable Flip Angle Flag\0" /* 573, 0x0018, 0x1315 */
3482 "SAR\0" /* 574, 0x0018, 0x1316 */
3483 "dB/dt\0" /* 575, 0x0018, 0x1318 */
3484 "Acquisition Device Processing Description\0" /* 576, 0x0018, 0x1400 */
3485 "Acquisition Device Processing Code\0" /* 577, 0x0018, 0x1401 */
3486 "Cassette Orientation\0" /* 578, 0x0018, 0x1402 */
3487 "Cassette Size\0" /* 579, 0x0018, 0x1403 */
3488 "Exposures on Plate\0" /* 580, 0x0018, 0x1404 */
3489 "Relative X-ray Exposure\0" /* 581, 0x0018, 0x1405 */
3490 "Column Angulation\0" /* 582, 0x0018, 0x1450 */
3491 "Tomo Layer Height\0" /* 583, 0x0018, 0x1460 */
3492 "Tomo Angle\0" /* 584, 0x0018, 0x1470 */
3493 "Tomo Time\0" /* 585, 0x0018, 0x1480 */
3494 "Tomo Type\0" /* 586, 0x0018, 0x1490 */
3495 "Tomo Class\0" /* 587, 0x0018, 0x1491 */
3496 "Number of Tomosynthesis Source Images\0" /* 588, 0x0018, 0x1495 */
3497 "PositionerMotion\0" /* 589, 0x0018, 0x1500 */
3498 "Positioner Type\0" /* 590, 0x0018, 0x1508 */
3499 "PositionerPrimaryAngle\0" /* 591, 0x0018, 0x1510 */
3500 "PositionerSecondaryAngle\0" /* 592, 0x0018, 0x1511 */
3501 "PositionerPrimaryAngleIncrement\0" /* 593, 0x0018, 0x1520 */
3502 "PositionerSecondaryAngleIncrement\0" /* 594, 0x0018, 0x1521 */
3503 "DetectorPrimaryAngle\0" /* 595, 0x0018, 0x1530 */
3504 "DetectorSecondaryAngle\0" /* 596, 0x0018, 0x1531 */
3505 "Shutter Shape\0" /* 597, 0x0018, 0x1600 */
3506 "Shutter Left Vertical Edge\0" /* 598, 0x0018, 0x1602 */
3507 "Shutter Right Vertical Edge\0" /* 599, 0x0018, 0x1604 */
3508 "Shutter Upper Horizontal Edge\0" /* 600, 0x0018, 0x1606 */
3509 "Shutter Lower Horizonta lEdge\0" /* 601, 0x0018, 0x1608 */
3510 "Center of Circular Shutter\0" /* 602, 0x0018, 0x1610 */
3511 "Radius of Circular Shutter\0" /* 603, 0x0018, 0x1612 */
3512 "Vertices of Polygonal Shutter\0" /* 604, 0x0018, 0x1620 */
3513 "Shutter Presentation Value\0" /* 605, 0x0018, 0x1622 */
3514 "Shutter Overlay Group\0" /* 606, 0x0018, 0x1623 */
3515 "Collimator Shape\0" /* 607, 0x0018, 0x1700 */
3516 "Collimator Left Vertical Edge\0" /* 608, 0x0018, 0x1702 */
3517 "Collimator Right Vertical Edge\0" /* 609, 0x0018, 0x1704 */
3518 "Collimator Upper Horizontal Edge\0" /* 610, 0x0018, 0x1706 */
3519 "Collimator Lower Horizontal Edge\0" /* 611, 0x0018, 0x1708 */
3520 "Center of Circular Collimator\0" /* 612, 0x0018, 0x1710 */
3521 "Radius of Circular Collimator\0" /* 613, 0x0018, 0x1712 */
3522 "Vertices of Polygonal Collimator\0" /* 614, 0x0018, 0x1720 */
3523 "Acquisition Time Synchronized\0" /* 615, 0x0018, 0x1800 */
3524 "Time Source\0" /* 616, 0x0018, 0x1801 */
3525 "Time Distribution Protocol\0" /* 617, 0x0018, 0x1802 */
3526 "Acquisition Comments\0" /* 618, 0x0018, 0x4000 */
3527 "Output Power\0" /* 619, 0x0018, 0x5000 */
3528 "Transducer Data\0" /* 620, 0x0018, 0x5010 */
3529 "Focus Depth\0" /* 621, 0x0018, 0x5012 */
3530 "Processing Function\0" /* 622, 0x0018, 0x5020 */
3531 "Postprocessing Function\0" /* 623, 0x0018, 0x5021 */
3532 "Mechanical Index\0" /* 624, 0x0018, 0x5022 */
3533 "Thermal Index\0" /* 625, 0x0018, 0x5024 */
3534 "Cranial Thermal Index\0" /* 626, 0x0018, 0x5026 */
3535 "Soft Tissue Thermal Index\0" /* 627, 0x0018, 0x5027 */
3536 "Soft Tissue-Focus Thermal Index\0" /* 628, 0x0018, 0x5028 */
3537 "Soft Tissue-Surface Thermal Index\0" /* 629, 0x0018, 0x5029 */
3538 "Dynamic Range\0" /* 630, 0x0018, 0x5030 */
3539 "Total Gain\0" /* 631, 0x0018, 0x5040 */
3540 "Depth of Scan Field\0" /* 632, 0x0018, 0x5050 */
3541 "Patient Position\0" /* 633, 0x0018, 0x5100 */
3542 "View Position\0" /* 634, 0x0018, 0x5101 */
3543 "Projection Eponymous Name Code Sequence\0" /* 635, 0x0018, 0x5104 */
3544 "Image Transformation Matrix\0" /* 636, 0x0018, 0x5210 */
3545 "Image Translation Vector\0" /* 637, 0x0018, 0x5212 */
3546 "Sensitivity\0" /* 638, 0x0018, 0x6000 */
3547 "Sequence of Ultrasound Regions\0" /* 639, 0x0018, 0x6011 */
3548 "Region Spatial Format\0" /* 640, 0x0018, 0x6012 */
3549 "Region Data Type\0" /* 641, 0x0018, 0x6014 */
3550 "Region Flags\0" /* 642, 0x0018, 0x6016 */
3551 "Region Location Min X0\0" /* 643, 0x0018, 0x6018 */
3552 "Region Location Min Y0\0" /* 644, 0x0018, 0x601a */
3553 "Region Location Max X1\0" /* 645, 0x0018, 0x601c */
3554 "Region Location Max Y1\0" /* 646, 0x0018, 0x601e */
3555 "Reference Pixel X0\0" /* 647, 0x0018, 0x6020 */
3556 "Reference Pixel Y0\0" /* 648, 0x0018, 0x6022 */
3557 "Physical Units X Direction\0" /* 649, 0x0018, 0x6024 */
3558 "Physical Units Y Direction\0" /* 650, 0x0018, 0x6026 */
3559 "Reference Pixel Physical Value X\0" /* 651, 0x0018, 0x6028 */
3560 "Reference Pixel Physical Value Y\0" /* 652, 0x0018, 0x602a */
3561 "Physical Delta X\0" /* 653, 0x0018, 0x602c */
3562 "Physical Delta Y\0" /* 654, 0x0018, 0x602e */
3563 "Transducer Frequency\0" /* 655, 0x0018, 0x6030 */
3564 "Transducer Type\0" /* 656, 0x0018, 0x6031 */
3565 "Pulse Repetition Frequency\0" /* 657, 0x0018, 0x6032 */
3566 "Doppler Correction Angle\0" /* 658, 0x0018, 0x6034 */
3567 "Steering Angle\0" /* 659, 0x0018, 0x6036 */
3568 "Doppler Sample Volume X Position\0" /* 660, 0x0018, 0x6038 */
3569 "Doppler Sample Volume Y Position\0" /* 661, 0x0018, 0x603a */
3570 "TM-Line Position X0\0" /* 662, 0x0018, 0x603c */
3571 "TM-Line Position Y0\0" /* 663, 0x0018, 0x603e */
3572 "TM-Line Position X1\0" /* 664, 0x0018, 0x6040 */
3573 "TM-Line Position Y1\0" /* 665, 0x0018, 0x6042 */
3574 "Pixel Component Organization\0" /* 666, 0x0018, 0x6044 */
3575 "Pixel Component Mask\0" /* 667, 0x0018, 0x6046 */
3576 "Pixel Component Range Start\0" /* 668, 0x0018, 0x6048 */
3577 "Pixel Component Range Stop\0" /* 669, 0x0018, 0x604a */
3578 "Pixel Component Physical Units\0" /* 670, 0x0018, 0x604c */
3579 "Pixel Component Data Type\0" /* 671, 0x0018, 0x604e */
3580 "Number of Table Break Points\0" /* 672, 0x0018, 0x6050 */
3581 "Table of X Break Points\0" /* 673, 0x0018, 0x6052 */
3582 "Table of Y Break Points\0" /* 674, 0x0018, 0x6054 */
3583 "Number of Table Entries\0" /* 675, 0x0018, 0x6056 */
3584 "Table of Pixel Values\0" /* 676, 0x0018, 0x6058 */
3585 "Table of Parameter Values\0" /* 677, 0x0018, 0x605a */
3586 "Detector Conditions Nominal Flag\0" /* 678, 0x0018, 0x7000 */
3587 "Detector Temperature\0" /* 679, 0x0018, 0x7001 */
3588 "Detector Type\0" /* 680, 0x0018, 0x7004 */
3589 "Detector Configuration\0" /* 681, 0x0018, 0x7005 */
3590 "Detector Description\0" /* 682, 0x0018, 0x7006 */
3591 "Detector Mode\0" /* 683, 0x0018, 0x7008 */
3592 "Detector ID\0" /* 684, 0x0018, 0x700a */
3593 "Date of Last Detector Calibration \0" /* 685, 0x0018, 0x700c */
3594 "Time of Last Detector Calibration\0" /* 686, 0x0018, 0x700e */
3595 "Exposures on Detector Since Last Calibration\0" /* 687, 0x0018, 0x7010 */
3596 "Exposures on Detector Since Manufactured\0" /* 688, 0x0018, 0x7011 */
3597 "Detector Time Since Last Exposure\0" /* 689, 0x0018, 0x7012 */
3598 "Detector Active Time\0" /* 690, 0x0018, 0x7014 */
3599 "Detector Activation Offset From Exposure\0" /* 691, 0x0018, 0x7016 */
3600 "Detector Binning\0" /* 692, 0x0018, 0x701a */
3601 "Detector Element Physical Size\0" /* 693, 0x0018, 0x7020 */
3602 "Detector Element Spacing\0" /* 694, 0x0018, 0x7022 */
3603 "Detector Active Shape\0" /* 695, 0x0018, 0x7024 */
3604 "Detector Active Dimensions\0" /* 696, 0x0018, 0x7026 */
3605 "Detector Active Origin\0" /* 697, 0x0018, 0x7028 */
3606 "Field of View Origin\0" /* 698, 0x0018, 0x7030 */
3607 "Field of View Rotation\0" /* 699, 0x0018, 0x7032 */
3608 "Field of View Horizontal Flip\0" /* 700, 0x0018, 0x7034 */
3609 "Grid Absorbing Material\0" /* 701, 0x0018, 0x7040 */
3610 "Grid Spacing Material\0" /* 702, 0x0018, 0x7041 */
3611 "Grid Thickness\0" /* 703, 0x0018, 0x7042 */
3612 "Grid Pitch\0" /* 704, 0x0018, 0x7044 */
3613 "Grid Aspect Ratio\0" /* 705, 0x0018, 0x7046 */
3614 "Grid Period\0" /* 706, 0x0018, 0x7048 */
3615 "Grid Focal Distance\0" /* 707, 0x0018, 0x704c */
3616 "Filter Material\0" /* 708, 0x0018, 0x7050 */
3617 "Filter Thickness Minimum\0" /* 709, 0x0018, 0x7052 */
3618 "Filter Thickness Maximum\0" /* 710, 0x0018, 0x7054 */
3619 "Exposure Control Mode\0" /* 711, 0x0018, 0x7060 */
3620 "Exposure Control Mode Description\0" /* 712, 0x0018, 0x7062 */
3621 "Exposure Status\0" /* 713, 0x0018, 0x7064 */
3622 "Phototimer Setting\0" /* 714, 0x0018, 0x7065 */
3623 "?\0" /* 715, 0x0019, 0x0000 */
3624 "?\0" /* 716, 0x0019, 0x0001 */
3625 "?\0" /* 717, 0x0019, 0x0002 */
3626 "?\0" /* 718, 0x0019, 0x0003 */
3627 "?\0" /* 719, 0x0019, 0x0004 */
3628 "?\0" /* 720, 0x0019, 0x0005 */
3629 "?\0" /* 721, 0x0019, 0x0006 */
3630 "?\0" /* 722, 0x0019, 0x0007 */
3631 "?\0" /* 723, 0x0019, 0x0008 */
3632 "?\0" /* 724, 0x0019, 0x0009 */
3633 "?\0" /* 725, 0x0019, 0x000a */
3634 "?\0" /* 726, 0x0019, 0x000b */
3635 "?\0" /* 727, 0x0019, 0x000c */
3636 "Time\0" /* 728, 0x0019, 0x000d */
3637 "?\0" /* 729, 0x0019, 0x000e */
3638 "Horizontal Frame Of Reference\0" /* 730, 0x0019, 0x000f */
3639 "?\0" /* 731, 0x0019, 0x0010 */
3640 "?\0" /* 732, 0x0019, 0x0011 */
3641 "?\0" /* 733, 0x0019, 0x0012 */
3642 "?\0" /* 734, 0x0019, 0x0013 */
3643 "?\0" /* 735, 0x0019, 0x0014 */
3644 "?\0" /* 736, 0x0019, 0x0015 */
3645 "?\0" /* 737, 0x0019, 0x0016 */
3646 "?\0" /* 738, 0x0019, 0x0017 */
3647 "?\0" /* 739, 0x0019, 0x0018 */
3648 "?\0" /* 740, 0x0019, 0x0019 */
3649 "?\0" /* 741, 0x0019, 0x001a */
3650 "?\0" /* 742, 0x0019, 0x001b */
3651 "Dose\0" /* 743, 0x0019, 0x001c */
3652 "Side Mark\0" /* 744, 0x0019, 0x001d */
3653 "?\0" /* 745, 0x0019, 0x001e */
3654 "Exposure Duration\0" /* 746, 0x0019, 0x001f */
3655 "?\0" /* 747, 0x0019, 0x0020 */
3656 "?\0" /* 748, 0x0019, 0x0021 */
3657 "?\0" /* 749, 0x0019, 0x0022 */
3658 "?\0" /* 750, 0x0019, 0x0023 */
3659 "?\0" /* 751, 0x0019, 0x0024 */
3660 "?\0" /* 752, 0x0019, 0x0025 */
3661 "?\0" /* 753, 0x0019, 0x0026 */
3662 "?\0" /* 754, 0x0019, 0x0027 */
3663 "?\0" /* 755, 0x0019, 0x0028 */
3664 "?\0" /* 756, 0x0019, 0x0029 */
3665 "?\0" /* 757, 0x0019, 0x002a */
3666 "Xray Off Position\0" /* 758, 0x0019, 0x002b */
3667 "?\0" /* 759, 0x0019, 0x002c */
3668 "?\0" /* 760, 0x0019, 0x002d */
3669 "?\0" /* 761, 0x0019, 0x002e */
3670 "Trigger Frequency\0" /* 762, 0x0019, 0x002f */
3671 "?\0" /* 763, 0x0019, 0x0030 */
3672 "?\0" /* 764, 0x0019, 0x0031 */
3673 "?\0" /* 765, 0x0019, 0x0032 */
3674 "ECG 2 Offset 2\0" /* 766, 0x0019, 0x0033 */
3675 "?\0" /* 767, 0x0019, 0x0034 */
3676 "?\0" /* 768, 0x0019, 0x0036 */
3677 "?\0" /* 769, 0x0019, 0x0038 */
3678 "?\0" /* 770, 0x0019, 0x0039 */
3679 "?\0" /* 771, 0x0019, 0x003a */
3680 "?\0" /* 772, 0x0019, 0x003b */
3681 "?\0" /* 773, 0x0019, 0x003c */
3682 "?\0" /* 774, 0x0019, 0x003e */
3683 "?\0" /* 775, 0x0019, 0x003f */
3684 "?\0" /* 776, 0x0019, 0x0040 */
3685 "?\0" /* 777, 0x0019, 0x0041 */
3686 "?\0" /* 778, 0x0019, 0x0042 */
3687 "?\0" /* 779, 0x0019, 0x0043 */
3688 "?\0" /* 780, 0x0019, 0x0044 */
3689 "?\0" /* 781, 0x0019, 0x0045 */
3690 "?\0" /* 782, 0x0019, 0x0046 */
3691 "?\0" /* 783, 0x0019, 0x0047 */
3692 "?\0" /* 784, 0x0019, 0x0048 */
3693 "?\0" /* 785, 0x0019, 0x0049 */
3694 "?\0" /* 786, 0x0019, 0x004a */
3695 "Data Size For Scan Data\0" /* 787, 0x0019, 0x004b */
3696 "?\0" /* 788, 0x0019, 0x004c */
3697 "?\0" /* 789, 0x0019, 0x004e */
3698 "?\0" /* 790, 0x0019, 0x0050 */
3699 "?\0" /* 791, 0x0019, 0x0051 */
3700 "?\0" /* 792, 0x0019, 0x0052 */
3701 "Barcode\0" /* 793, 0x0019, 0x0053 */
3702 "?\0" /* 794, 0x0019, 0x0054 */
3703 "Receiver Reference Gain\0" /* 795, 0x0019, 0x0055 */
3704 "?\0" /* 796, 0x0019, 0x0056 */
3705 "CT Water Number\0" /* 797, 0x0019, 0x0057 */
3706 "?\0" /* 798, 0x0019, 0x0058 */
3707 "?\0" /* 799, 0x0019, 0x005a */
3708 "?\0" /* 800, 0x0019, 0x005c */
3709 "?\0" /* 801, 0x0019, 0x005d */
3710 "?\0" /* 802, 0x0019, 0x005e */
3711 "Increment Between Channels\0" /* 803, 0x0019, 0x005f */
3712 "?\0" /* 804, 0x0019, 0x0060 */
3713 "?\0" /* 805, 0x0019, 0x0061 */
3714 "?\0" /* 806, 0x0019, 0x0062 */
3715 "?\0" /* 807, 0x0019, 0x0063 */
3716 "?\0" /* 808, 0x0019, 0x0064 */
3717 "?\0" /* 809, 0x0019, 0x0065 */
3718 "?\0" /* 810, 0x0019, 0x0066 */
3719 "?\0" /* 811, 0x0019, 0x0067 */
3720 "?\0" /* 812, 0x0019, 0x0068 */
3721 "Convolution Mode\0" /* 813, 0x0019, 0x0069 */
3722 "?\0" /* 814, 0x0019, 0x006a */
3723 "Field Of View In Detector Cells\0" /* 815, 0x0019, 0x006b */
3724 "?\0" /* 816, 0x0019, 0x006c */
3725 "?\0" /* 817, 0x0019, 0x006e */
3726 "?\0" /* 818, 0x0019, 0x0070 */
3727 "?\0" /* 819, 0x0019, 0x0071 */
3728 "?\0" /* 820, 0x0019, 0x0072 */
3729 "?\0" /* 821, 0x0019, 0x0073 */
3730 "?\0" /* 822, 0x0019, 0x0074 */
3731 "?\0" /* 823, 0x0019, 0x0075 */
3732 "?\0" /* 824, 0x0019, 0x0076 */
3733 "?\0" /* 825, 0x0019, 0x0077 */
3734 "?\0" /* 826, 0x0019, 0x0078 */
3735 "?\0" /* 827, 0x0019, 0x007a */
3736 "?\0" /* 828, 0x0019, 0x007c */
3737 "Second Echo\0" /* 829, 0x0019, 0x007d */
3738 "?\0" /* 830, 0x0019, 0x007e */
3739 "Table Delta\0" /* 831, 0x0019, 0x007f */
3740 "?\0" /* 832, 0x0019, 0x0080 */
3741 "?\0" /* 833, 0x0019, 0x0081 */
3742 "?\0" /* 834, 0x0019, 0x0082 */
3743 "?\0" /* 835, 0x0019, 0x0083 */
3744 "?\0" /* 836, 0x0019, 0x0084 */
3745 "?\0" /* 837, 0x0019, 0x0085 */
3746 "?\0" /* 838, 0x0019, 0x0086 */
3747 "?\0" /* 839, 0x0019, 0x0087 */
3748 "?\0" /* 840, 0x0019, 0x0088 */
3749 "?\0" /* 841, 0x0019, 0x008a */
3750 "Actual Receive Gain Digital\0" /* 842, 0x0019, 0x008b */
3751 "?\0" /* 843, 0x0019, 0x008c */
3752 "Delay After Trigger\0" /* 844, 0x0019, 0x008d */
3753 "?\0" /* 845, 0x0019, 0x008e */
3754 "Swap Phase Frequency\0" /* 846, 0x0019, 0x008f */
3755 "?\0" /* 847, 0x0019, 0x0090 */
3756 "?\0" /* 848, 0x0019, 0x0091 */
3757 "?\0" /* 849, 0x0019, 0x0092 */
3758 "?\0" /* 850, 0x0019, 0x0093 */
3759 "?\0" /* 851, 0x0019, 0x0094 */
3760 "Analog Receiver Gain\0" /* 852, 0x0019, 0x0095 */
3761 "?\0" /* 853, 0x0019, 0x0096 */
3762 "?\0" /* 854, 0x0019, 0x0097 */
3763 "?\0" /* 855, 0x0019, 0x0098 */
3764 "?\0" /* 856, 0x0019, 0x0099 */
3765 "?\0" /* 857, 0x0019, 0x009a */
3766 "Pulse Sequence Mode\0" /* 858, 0x0019, 0x009b */
3767 "?\0" /* 859, 0x0019, 0x009c */
3768 "Pulse Sequence Date\0" /* 860, 0x0019, 0x009d */
3769 "?\0" /* 861, 0x0019, 0x009e */
3770 "?\0" /* 862, 0x0019, 0x009f */
3771 "?\0" /* 863, 0x0019, 0x00a0 */
3772 "?\0" /* 864, 0x0019, 0x00a1 */
3773 "?\0" /* 865, 0x0019, 0x00a2 */
3774 "?\0" /* 866, 0x0019, 0x00a3 */
3775 "?\0" /* 867, 0x0019, 0x00a4 */
3776 "?\0" /* 868, 0x0019, 0x00a5 */
3777 "?\0" /* 869, 0x0019, 0x00a6 */
3778 "?\0" /* 870, 0x0019, 0x00a7 */
3779 "?\0" /* 871, 0x0019, 0x00a8 */
3780 "?\0" /* 872, 0x0019, 0x00a9 */
3781 "?\0" /* 873, 0x0019, 0x00aa */
3782 "?\0" /* 874, 0x0019, 0x00ab */
3783 "?\0" /* 875, 0x0019, 0x00ac */
3784 "?\0" /* 876, 0x0019, 0x00ad */
3785 "?\0" /* 877, 0x0019, 0x00ae */
3786 "?\0" /* 878, 0x0019, 0x00af */
3787 "?\0" /* 879, 0x0019, 0x00b0 */
3788 "?\0" /* 880, 0x0019, 0x00b1 */
3789 "?\0" /* 881, 0x0019, 0x00b2 */
3790 "?\0" /* 882, 0x0019, 0x00b3 */
3791 "?\0" /* 883, 0x0019, 0x00b4 */
3792 "?\0" /* 884, 0x0019, 0x00b5 */
3793 "User Data\0" /* 885, 0x0019, 0x00b6 */
3794 "User Data\0" /* 886, 0x0019, 0x00b7 */
3795 "User Data\0" /* 887, 0x0019, 0x00b8 */
3796 "User Data\0" /* 888, 0x0019, 0x00b9 */
3797 "User Data\0" /* 889, 0x0019, 0x00ba */
3798 "User Data\0" /* 890, 0x0019, 0x00bb */
3799 "User Data\0" /* 891, 0x0019, 0x00bc */
3800 "User Data\0" /* 892, 0x0019, 0x00bd */
3801 "Projection Angle\0" /* 893, 0x0019, 0x00be */
3802 "?\0" /* 894, 0x0019, 0x00c0 */
3803 "?\0" /* 895, 0x0019, 0x00c1 */
3804 "?\0" /* 896, 0x0019, 0x00c2 */
3805 "?\0" /* 897, 0x0019, 0x00c3 */
3806 "?\0" /* 898, 0x0019, 0x00c4 */
3807 "?\0" /* 899, 0x0019, 0x00c5 */
3808 "SAT Location H\0" /* 900, 0x0019, 0x00c6 */
3809 "SAT Location F\0" /* 901, 0x0019, 0x00c7 */
3810 "SAT Thickness R L\0" /* 902, 0x0019, 0x00c8 */
3811 "SAT Thickness A P\0" /* 903, 0x0019, 0x00c9 */
3812 "SAT Thickness H F\0" /* 904, 0x0019, 0x00ca */
3813 "?\0" /* 905, 0x0019, 0x00cb */
3814 "?\0" /* 906, 0x0019, 0x00cc */
3815 "Thickness Disclaimer\0" /* 907, 0x0019, 0x00cd */
3816 "Prescan Type\0" /* 908, 0x0019, 0x00ce */
3817 "Prescan Status\0" /* 909, 0x0019, 0x00cf */
3818 "Raw Data Type\0" /* 910, 0x0019, 0x00d0 */
3819 "Flow Sensitivity\0" /* 911, 0x0019, 0x00d1 */
3820 "?\0" /* 912, 0x0019, 0x00d2 */
3821 "?\0" /* 913, 0x0019, 0x00d3 */
3822 "?\0" /* 914, 0x0019, 0x00d4 */
3823 "?\0" /* 915, 0x0019, 0x00d5 */
3824 "?\0" /* 916, 0x0019, 0x00d6 */
3825 "?\0" /* 917, 0x0019, 0x00d7 */
3826 "?\0" /* 918, 0x0019, 0x00d8 */
3827 "?\0" /* 919, 0x0019, 0x00d9 */
3828 "?\0" /* 920, 0x0019, 0x00da */
3829 "Back Projector Coefficient\0" /* 921, 0x0019, 0x00db */
3830 "Primary Speed Correction Used\0" /* 922, 0x0019, 0x00dc */
3831 "Overrange Correction Used\0" /* 923, 0x0019, 0x00dd */
3832 "Dynamic Z Alpha Value\0" /* 924, 0x0019, 0x00de */
3833 "User Data\0" /* 925, 0x0019, 0x00df */
3834 "User Data\0" /* 926, 0x0019, 0x00e0 */
3835 "?\0" /* 927, 0x0019, 0x00e1 */
3836 "?\0" /* 928, 0x0019, 0x00e2 */
3837 "?\0" /* 929, 0x0019, 0x00e3 */
3838 "?\0" /* 930, 0x0019, 0x00e4 */
3839 "?\0" /* 931, 0x0019, 0x00e5 */
3840 "?\0" /* 932, 0x0019, 0x00e6 */
3841 "?\0" /* 933, 0x0019, 0x00e8 */
3842 "?\0" /* 934, 0x0019, 0x00e9 */
3843 "?\0" /* 935, 0x0019, 0x00eb */
3844 "?\0" /* 936, 0x0019, 0x00ec */
3845 "?\0" /* 937, 0x0019, 0x00f0 */
3846 "?\0" /* 938, 0x0019, 0x00f1 */
3847 "?\0" /* 939, 0x0019, 0x00f2 */
3848 "?\0" /* 940, 0x0019, 0x00f3 */
3849 "?\0" /* 941, 0x0019, 0x00f4 */
3850 "Transmission Gain\0" /* 942, 0x0019, 0x00f9 */
3851 "?\0" /* 943, 0x0019, 0x1015 */
3852 "Relationship Group Length\0" /* 944, 0x0020, 0x0000 */
3853 "Study Instance UID\0" /* 945, 0x0020, 0x000d */
3854 "Series Instance UID\0" /* 946, 0x0020, 0x000e */
3855 "Study ID\0" /* 947, 0x0020, 0x0010 */
3856 "Series Number\0" /* 948, 0x0020, 0x0011 */
3857 "Acquisition Number\0" /* 949, 0x0020, 0x0012 */
3858 "Instance (formerly Image) Number\0" /* 950, 0x0020, 0x0013 */
3859 "Isotope Number\0" /* 951, 0x0020, 0x0014 */
3860 "Phase Number\0" /* 952, 0x0020, 0x0015 */
3861 "Interval Number\0" /* 953, 0x0020, 0x0016 */
3862 "Time Slot Number\0" /* 954, 0x0020, 0x0017 */
3863 "Angle Number\0" /* 955, 0x0020, 0x0018 */
3864 "Patient Orientation\0" /* 956, 0x0020, 0x0020 */
3865 "Overlay Number\0" /* 957, 0x0020, 0x0022 */
3866 "Curve Number\0" /* 958, 0x0020, 0x0024 */
3867 "LUT Number\0" /* 959, 0x0020, 0x0026 */
3868 "Image Position\0" /* 960, 0x0020, 0x0030 */
3869 "Image Position (Patient)\0" /* 961, 0x0020, 0x0032 */
3870 "Image Orientation\0" /* 962, 0x0020, 0x0035 */
3871 "Image Orientation (Patient)\0" /* 963, 0x0020, 0x0037 */
3872 "Location\0" /* 964, 0x0020, 0x0050 */
3873 "Frame of Reference UID\0" /* 965, 0x0020, 0x0052 */
3874 "Laterality\0" /* 966, 0x0020, 0x0060 */
3875 "Image Laterality\0" /* 967, 0x0020, 0x0062 */
3876 "Image Geometry Type\0" /* 968, 0x0020, 0x0070 */
3877 "Masking Image\0" /* 969, 0x0020, 0x0080 */
3878 "Temporal Position Identifier\0" /* 970, 0x0020, 0x0100 */
3879 "Number of Temporal Positions\0" /* 971, 0x0020, 0x0105 */
3880 "Temporal Resolution\0" /* 972, 0x0020, 0x0110 */
3881 "Series in Study\0" /* 973, 0x0020, 0x1000 */
3882 "Acquisitions in Series\0" /* 974, 0x0020, 0x1001 */
3883 "Images in Acquisition\0" /* 975, 0x0020, 0x1002 */
3884 "Images in Series\0" /* 976, 0x0020, 0x1003 */
3885 "Acquisitions in Study\0" /* 977, 0x0020, 0x1004 */
3886 "Images in Study\0" /* 978, 0x0020, 0x1005 */
3887 "Reference\0" /* 979, 0x0020, 0x1020 */
3888 "Position Reference Indicator\0" /* 980, 0x0020, 0x1040 */
3889 "Slice Location\0" /* 981, 0x0020, 0x1041 */
3890 "Other Study Numbers\0" /* 982, 0x0020, 0x1070 */
3891 "Number of Patient Related Studies\0" /* 983, 0x0020, 0x1200 */
3892 "Number of Patient Related Series\0" /* 984, 0x0020, 0x1202 */
3893 "Number of Patient Related Images\0" /* 985, 0x0020, 0x1204 */
3894 "Number of Study Related Series\0" /* 986, 0x0020, 0x1206 */
3895 "Number of Study Related Series\0" /* 987, 0x0020, 0x1208 */
3896 "Source Image IDs\0" /* 988, 0x0020, 0x3100 */
3897 "Modifying Device ID\0" /* 989, 0x0020, 0x3401 */
3898 "Modified Image ID\0" /* 990, 0x0020, 0x3402 */
3899 "Modified Image Date\0" /* 991, 0x0020, 0x3403 */
3900 "Modifying Device Manufacturer\0" /* 992, 0x0020, 0x3404 */
3901 "Modified Image Time\0" /* 993, 0x0020, 0x3405 */
3902 "Modified Image Description\0" /* 994, 0x0020, 0x3406 */
3903 "Image Comments\0" /* 995, 0x0020, 0x4000 */
3904 "Original Image Identification\0" /* 996, 0x0020, 0x5000 */
3905 "Original Image Identification Nomenclature\0" /* 997, 0x0020, 0x5002 */
3906 "?\0" /* 998, 0x0021, 0x0000 */
3907 "?\0" /* 999, 0x0021, 0x0001 */
3908 "?\0" /* 1000, 0x0021, 0x0002 */
3909 "?\0" /* 1001, 0x0021, 0x0003 */
3910 "VOI Position\0" /* 1002, 0x0021, 0x0004 */
3911 "?\0" /* 1003, 0x0021, 0x0005 */
3912 "CSI Matrix Size Original\0" /* 1004, 0x0021, 0x0006 */
3913 "?\0" /* 1005, 0x0021, 0x0007 */
3914 "Spatial Grid Shift\0" /* 1006, 0x0021, 0x0008 */
3915 "Signal Limits Minimum\0" /* 1007, 0x0021, 0x0009 */
3916 "?\0" /* 1008, 0x0021, 0x0010 */
3917 "?\0" /* 1009, 0x0021, 0x0011 */
3918 "?\0" /* 1010, 0x0021, 0x0012 */
3919 "?\0" /* 1011, 0x0021, 0x0013 */
3920 "?\0" /* 1012, 0x0021, 0x0014 */
3921 "?\0" /* 1013, 0x0021, 0x0015 */
3922 "?\0" /* 1014, 0x0021, 0x0016 */
3923 "EPI Operation Mode Flag\0" /* 1015, 0x0021, 0x0017 */
3924 "?\0" /* 1016, 0x0021, 0x0018 */
3925 "?\0" /* 1017, 0x0021, 0x0019 */
3926 "?\0" /* 1018, 0x0021, 0x0020 */
3927 "?\0" /* 1019, 0x0021, 0x0021 */
3928 "?\0" /* 1020, 0x0021, 0x0022 */
3929 "?\0" /* 1021, 0x0021, 0x0024 */
3930 "?\0" /* 1022, 0x0021, 0x0025 */
3931 "Image Pixel Offset\0" /* 1023, 0x0021, 0x0026 */
3932 "?\0" /* 1024, 0x0021, 0x0030 */
3933 "?\0" /* 1025, 0x0021, 0x0031 */
3934 "?\0" /* 1026, 0x0021, 0x0032 */
3935 "?\0" /* 1027, 0x0021, 0x0034 */
3936 "Series From Which Prescribed\0" /* 1028, 0x0021, 0x0035 */
3937 "?\0" /* 1029, 0x0021, 0x0036 */
3938 "Screen Format\0" /* 1030, 0x0021, 0x0037 */
3939 "Slab Thickness\0" /* 1031, 0x0021, 0x0039 */
3940 "?\0" /* 1032, 0x0021, 0x0040 */
3941 "?\0" /* 1033, 0x0021, 0x0041 */
3942 "?\0" /* 1034, 0x0021, 0x0042 */
3943 "?\0" /* 1035, 0x0021, 0x0043 */
3944 "?\0" /* 1036, 0x0021, 0x0044 */
3945 "?\0" /* 1037, 0x0021, 0x0045 */
3946 "?\0" /* 1038, 0x0021, 0x0046 */
3947 "?\0" /* 1039, 0x0021, 0x0047 */
3948 "?\0" /* 1040, 0x0021, 0x0048 */
3949 "?\0" /* 1041, 0x0021, 0x0049 */
3950 "?\0" /* 1042, 0x0021, 0x004a */
3951 "?\0" /* 1043, 0x0021, 0x004e */
3952 "?\0" /* 1044, 0x0021, 0x004f */
3953 "?\0" /* 1045, 0x0021, 0x0050 */
3954 "?\0" /* 1046, 0x0021, 0x0051 */
3955 "?\0" /* 1047, 0x0021, 0x0052 */
3956 "?\0" /* 1048, 0x0021, 0x0053 */
3957 "?\0" /* 1049, 0x0021, 0x0054 */
3958 "?\0" /* 1050, 0x0021, 0x0055 */
3959 "?\0" /* 1051, 0x0021, 0x0056 */
3960 "?\0" /* 1052, 0x0021, 0x0057 */
3961 "?\0" /* 1053, 0x0021, 0x0058 */
3962 "?\0" /* 1054, 0x0021, 0x0059 */
3963 "Integer Slop\0" /* 1055, 0x0021, 0x005a */
3964 "Float Slop\0" /* 1056, 0x0021, 0x005b */
3965 "Float Slop\0" /* 1057, 0x0021, 0x005c */
3966 "Float Slop\0" /* 1058, 0x0021, 0x005d */
3967 "Float Slop\0" /* 1059, 0x0021, 0x005e */
3968 "Float Slop\0" /* 1060, 0x0021, 0x005f */
3969 "?\0" /* 1061, 0x0021, 0x0060 */
3970 "Image Normal\0" /* 1062, 0x0021, 0x0061 */
3971 "Reference Type Code\0" /* 1063, 0x0021, 0x0062 */
3972 "Image Distance\0" /* 1064, 0x0021, 0x0063 */
3973 "Image Positioning History Mask\0" /* 1065, 0x0021, 0x0065 */
3974 "Image Row\0" /* 1066, 0x0021, 0x006a */
3975 "Image Column\0" /* 1067, 0x0021, 0x006b */
3976 "?\0" /* 1068, 0x0021, 0x0070 */
3977 "?\0" /* 1069, 0x0021, 0x0071 */
3978 "?\0" /* 1070, 0x0021, 0x0072 */
3979 "Second Repetition Time\0" /* 1071, 0x0021, 0x0073 */
3980 "Light Brightness\0" /* 1072, 0x0021, 0x0075 */
3981 "Light Contrast\0" /* 1073, 0x0021, 0x0076 */
3982 "Overlay Threshold\0" /* 1074, 0x0021, 0x007a */
3983 "Surface Threshold\0" /* 1075, 0x0021, 0x007b */
3984 "Grey Scale Threshold\0" /* 1076, 0x0021, 0x007c */
3985 "?\0" /* 1077, 0x0021, 0x0080 */
3986 "Auto Window Level Alpha\0" /* 1078, 0x0021, 0x0081 */
3987 "?\0" /* 1079, 0x0021, 0x0082 */
3988 "Auto Window Level Window\0" /* 1080, 0x0021, 0x0083 */
3989 "Auto Window Level Level\0" /* 1081, 0x0021, 0x0084 */
3990 "?\0" /* 1082, 0x0021, 0x0090 */
3991 "?\0" /* 1083, 0x0021, 0x0091 */
3992 "?\0" /* 1084, 0x0021, 0x0092 */
3993 "?\0" /* 1085, 0x0021, 0x0093 */
3994 "EPI Change Value of X Component\0" /* 1086, 0x0021, 0x0094 */
3995 "EPI Change Value of Y Component\0" /* 1087, 0x0021, 0x0095 */
3996 "EPI Change Value of Z Component\0" /* 1088, 0x0021, 0x0096 */
3997 "?\0" /* 1089, 0x0021, 0x00a0 */
3998 "?\0" /* 1090, 0x0021, 0x00a1 */
3999 "?\0" /* 1091, 0x0021, 0x00a2 */
4000 "?\0" /* 1092, 0x0021, 0x00a3 */
4001 "?\0" /* 1093, 0x0021, 0x00a4 */
4002 "?\0" /* 1094, 0x0021, 0x00a7 */
4003 "?\0" /* 1095, 0x0021, 0x00b0 */
4004 "?\0" /* 1096, 0x0021, 0x00c0 */
4005 "?\0" /* 1097, 0x0023, 0x0000 */
4006 "Number Of Series In Study\0" /* 1098, 0x0023, 0x0001 */
4007 "Number Of Unarchived Series\0" /* 1099, 0x0023, 0x0002 */
4008 "?\0" /* 1100, 0x0023, 0x0010 */
4009 "?\0" /* 1101, 0x0023, 0x0020 */
4010 "?\0" /* 1102, 0x0023, 0x0030 */
4011 "?\0" /* 1103, 0x0023, 0x0040 */
4012 "?\0" /* 1104, 0x0023, 0x0050 */
4013 "?\0" /* 1105, 0x0023, 0x0060 */
4014 "?\0" /* 1106, 0x0023, 0x0070 */
4015 "Number Of Updates To Info\0" /* 1107, 0x0023, 0x0074 */
4016 "Indicates If Study Has Complete Info\0" /* 1108, 0x0023, 0x007d */
4017 "?\0" /* 1109, 0x0023, 0x0080 */
4018 "?\0" /* 1110, 0x0023, 0x0090 */
4019 "?\0" /* 1111, 0x0023, 0x00ff */
4020 "Group Length\0" /* 1112, 0x0025, 0x0000 */
4021 "Last Pulse Sequence Used\0" /* 1113, 0x0025, 0x0006 */
4022 "Images In Series\0" /* 1114, 0x0025, 0x0007 */
4023 "Landmark Counter\0" /* 1115, 0x0025, 0x0010 */
4024 "Number Of Acquisitions\0" /* 1116, 0x0025, 0x0011 */
4025 "Indicates Number Of Updates To Info\0" /* 1117, 0x0025, 0x0014 */
4026 "Series Complete Flag\0" /* 1118, 0x0025, 0x0017 */
4027 "Number Of Images Archived\0" /* 1119, 0x0025, 0x0018 */
4028 "Last Image Number Used\0" /* 1120, 0x0025, 0x0019 */
4029 "Primary Receiver Suite And Host\0" /* 1121, 0x0025, 0x001a */
4030 "?\0" /* 1122, 0x0027, 0x0000 */
4031 "Image Archive Flag\0" /* 1123, 0x0027, 0x0006 */
4032 "Scout Type\0" /* 1124, 0x0027, 0x0010 */
4033 "?\0" /* 1125, 0x0027, 0x0011 */
4034 "?\0" /* 1126, 0x0027, 0x0012 */
4035 "?\0" /* 1127, 0x0027, 0x0013 */
4036 "?\0" /* 1128, 0x0027, 0x0014 */
4037 "?\0" /* 1129, 0x0027, 0x0015 */
4038 "?\0" /* 1130, 0x0027, 0x0016 */
4039 "Vma Mamp\0" /* 1131, 0x0027, 0x001c */
4040 "Vma Phase\0" /* 1132, 0x0027, 0x001d */
4041 "Vma Mod\0" /* 1133, 0x0027, 0x001e */
4042 "Vma Clip\0" /* 1134, 0x0027, 0x001f */
4043 "Smart Scan On Off Flag\0" /* 1135, 0x0027, 0x0020 */
4044 "Foreign Image Revision\0" /* 1136, 0x0027, 0x0030 */
4045 "Imaging Mode\0" /* 1137, 0x0027, 0x0031 */
4046 "Pulse Sequence\0" /* 1138, 0x0027, 0x0032 */
4047 "Imaging Options\0" /* 1139, 0x0027, 0x0033 */
4048 "Plane Type\0" /* 1140, 0x0027, 0x0035 */
4049 "Oblique Plane\0" /* 1141, 0x0027, 0x0036 */
4050 "RAS Letter Of Image Location\0" /* 1142, 0x0027, 0x0040 */
4051 "Image Location\0" /* 1143, 0x0027, 0x0041 */
4052 "Center R Coord Of Plane Image\0" /* 1144, 0x0027, 0x0042 */
4053 "Center A Coord Of Plane Image\0" /* 1145, 0x0027, 0x0043 */
4054 "Center S Coord Of Plane Image\0" /* 1146, 0x0027, 0x0044 */
4055 "Normal R Coord\0" /* 1147, 0x0027, 0x0045 */
4056 "Normal A Coord\0" /* 1148, 0x0027, 0x0046 */
4057 "Normal S Coord\0" /* 1149, 0x0027, 0x0047 */
4058 "R Coord Of Top Right Corner\0" /* 1150, 0x0027, 0x0048 */
4059 "A Coord Of Top Right Corner\0" /* 1151, 0x0027, 0x0049 */
4060 "S Coord Of Top Right Corner\0" /* 1152, 0x0027, 0x004a */
4061 "R Coord Of Bottom Right Corner\0" /* 1153, 0x0027, 0x004b */
4062 "A Coord Of Bottom Right Corner\0" /* 1154, 0x0027, 0x004c */
4063 "S Coord Of Bottom Right Corner\0" /* 1155, 0x0027, 0x004d */
4064 "Table Start Location\0" /* 1156, 0x0027, 0x0050 */
4065 "Table End Location\0" /* 1157, 0x0027, 0x0051 */
4066 "RAS Letter For Side Of Image\0" /* 1158, 0x0027, 0x0052 */
4067 "RAS Letter For Anterior Posterior\0" /* 1159, 0x0027, 0x0053 */
4068 "RAS Letter For Scout Start Loc\0" /* 1160, 0x0027, 0x0054 */
4069 "RAS Letter For Scout End Loc\0" /* 1161, 0x0027, 0x0055 */
4070 "Image Dimension X\0" /* 1162, 0x0027, 0x0060 */
4071 "Image Dimension Y\0" /* 1163, 0x0027, 0x0061 */
4072 "Number Of Excitations\0" /* 1164, 0x0027, 0x0062 */
4073 "Image Presentation Group Length\0" /* 1165, 0x0028, 0x0000 */
4074 "Samples per Pixel\0" /* 1166, 0x0028, 0x0002 */
4075 "Photometric Interpretation\0" /* 1167, 0x0028, 0x0004 */
4076 "Image Dimensions\0" /* 1168, 0x0028, 0x0005 */
4077 "Planar Configuration\0" /* 1169, 0x0028, 0x0006 */
4078 "Number of Frames\0" /* 1170, 0x0028, 0x0008 */
4079 "Frame Increment Pointer\0" /* 1171, 0x0028, 0x0009 */
4080 "Rows\0" /* 1172, 0x0028, 0x0010 */
4081 "Columns\0" /* 1173, 0x0028, 0x0011 */
4082 "Planes\0" /* 1174, 0x0028, 0x0012 */
4083 "Ultrasound Color Data Present\0" /* 1175, 0x0028, 0x0014 */
4084 "Pixel Spacing\0" /* 1176, 0x0028, 0x0030 */
4085 "Zoom Factor\0" /* 1177, 0x0028, 0x0031 */
4086 "Zoom Center\0" /* 1178, 0x0028, 0x0032 */
4087 "Pixel Aspect Ratio\0" /* 1179, 0x0028, 0x0034 */
4088 "Image Format\0" /* 1180, 0x0028, 0x0040 */
4089 "Manipulated Image\0" /* 1181, 0x0028, 0x0050 */
4090 "Corrected Image\0" /* 1182, 0x0028, 0x0051 */
4091 "Compression Recognition Code\0" /* 1183, 0x0028, 0x005f */
4092 "Compression Code\0" /* 1184, 0x0028, 0x0060 */
4093 "Compression Originator\0" /* 1185, 0x0028, 0x0061 */
4094 "Compression Label\0" /* 1186, 0x0028, 0x0062 */
4095 "Compression Description\0" /* 1187, 0x0028, 0x0063 */
4096 "Compression Sequence\0" /* 1188, 0x0028, 0x0065 */
4097 "Compression Step Pointers\0" /* 1189, 0x0028, 0x0066 */
4098 "Repeat Interval\0" /* 1190, 0x0028, 0x0068 */
4099 "Bits Grouped\0" /* 1191, 0x0028, 0x0069 */
4100 "Perimeter Table\0" /* 1192, 0x0028, 0x0070 */
4101 "Perimeter Value\0" /* 1193, 0x0028, 0x0071 */
4102 "Predictor Rows\0" /* 1194, 0x0028, 0x0080 */
4103 "Predictor Columns\0" /* 1195, 0x0028, 0x0081 */
4104 "Predictor Constants\0" /* 1196, 0x0028, 0x0082 */
4105 "Blocked Pixels\0" /* 1197, 0x0028, 0x0090 */
4106 "Block Rows\0" /* 1198, 0x0028, 0x0091 */
4107 "Block Columns\0" /* 1199, 0x0028, 0x0092 */
4108 "Row Overlap\0" /* 1200, 0x0028, 0x0093 */
4109 "Column Overlap\0" /* 1201, 0x0028, 0x0094 */
4110 "Bits Allocated\0" /* 1202, 0x0028, 0x0100 */
4111 "Bits Stored\0" /* 1203, 0x0028, 0x0101 */
4112 "High Bit\0" /* 1204, 0x0028, 0x0102 */
4113 "Pixel Representation\0" /* 1205, 0x0028, 0x0103 */
4114 "Smallest Valid Pixel Value\0" /* 1206, 0x0028, 0x0104 */
4115 "Largest Valid Pixel Value\0" /* 1207, 0x0028, 0x0105 */
4116 "Smallest Image Pixel Value\0" /* 1208, 0x0028, 0x0106 */
4117 "Largest Image Pixel Value\0" /* 1209, 0x0028, 0x0107 */
4118 "Smallest Pixel Value in Series\0" /* 1210, 0x0028, 0x0108 */
4119 "Largest Pixel Value in Series\0" /* 1211, 0x0028, 0x0109 */
4120 "Smallest Pixel Value in Plane\0" /* 1212, 0x0028, 0x0110 */
4121 "Largest Pixel Value in Plane\0" /* 1213, 0x0028, 0x0111 */
4122 "Pixel Padding Value\0" /* 1214, 0x0028, 0x0120 */
4123 "Pixel Padding Range Limit\0" /* 1215, 0x0028, 0x0121 */
4124 "Image Location\0" /* 1216, 0x0028, 0x0200 */
4125 "Quality Control Image\0" /* 1217, 0x0028, 0x0300 */
4126 "Burned In Annotation\0" /* 1218, 0x0028, 0x0301 */
4127 "?\0" /* 1219, 0x0028, 0x0400 */
4128 "?\0" /* 1220, 0x0028, 0x0401 */
4129 "?\0" /* 1221, 0x0028, 0x0402 */
4130 "?\0" /* 1222, 0x0028, 0x0403 */
4131 "Details of Coefficients\0" /* 1223, 0x0028, 0x0404 */
4132 "DCT Label\0" /* 1224, 0x0028, 0x0700 */
4133 "Data Block Description\0" /* 1225, 0x0028, 0x0701 */
4134 "Data Block\0" /* 1226, 0x0028, 0x0702 */
4135 "Normalization Factor Format\0" /* 1227, 0x0028, 0x0710 */
4136 "Zonal Map Number Format\0" /* 1228, 0x0028, 0x0720 */
4137 "Zonal Map Location\0" /* 1229, 0x0028, 0x0721 */
4138 "Zonal Map Format\0" /* 1230, 0x0028, 0x0722 */
4139 "Adaptive Map Format\0" /* 1231, 0x0028, 0x0730 */
4140 "Code Number Format\0" /* 1232, 0x0028, 0x0740 */
4141 "Code Label\0" /* 1233, 0x0028, 0x0800 */
4142 "Number of Tables\0" /* 1234, 0x0028, 0x0802 */
4143 "Code Table Location\0" /* 1235, 0x0028, 0x0803 */
4144 "Bits For Code Word\0" /* 1236, 0x0028, 0x0804 */
4145 "Image Data Location\0" /* 1237, 0x0028, 0x0808 */
4146 "Pixel Intensity Relationship\0" /* 1238, 0x0028, 0x1040 */
4147 "Pixel Intensity Relationship Sign\0" /* 1239, 0x0028, 0x1041 */
4148 "Window Center\0" /* 1240, 0x0028, 0x1050 */
4149 "Window Width\0" /* 1241, 0x0028, 0x1051 */
4150 "Rescale Intercept\0" /* 1242, 0x0028, 0x1052 */
4151 "Rescale Slope\0" /* 1243, 0x0028, 0x1053 */
4152 "Rescale Type\0" /* 1244, 0x0028, 0x1054 */
4153 "Window Center & Width Explanation\0" /* 1245, 0x0028, 0x1055 */
4154 "Gray Scale\0" /* 1246, 0x0028, 0x1080 */
4155 "Recommended Viewing Mode\0" /* 1247, 0x0028, 0x1090 */
4156 "Gray Lookup Table Descriptor\0" /* 1248, 0x0028, 0x1100 */
4157 "Red Palette Color Lookup Table Descriptor\0" /* 1249, 0x0028, 0x1101 */
4158 "Green Palette Color Lookup Table Descriptor\0" /* 1250, 0x0028, 0x1102 */
4159 "Blue Palette Color Lookup Table Descriptor\0" /* 1251, 0x0028, 0x1103 */
4160 "Large Red Palette Color Lookup Table Descriptor\0" /* 1252, 0x0028, 0x1111 */
4161 "Large Green Palette Color Lookup Table Descriptor\0" /* 1253, 0x0028, 0x1112 */
4162 "Large Blue Palette Color Lookup Table Descriptor\0" /* 1254, 0x0028, 0x1113 */
4163 "Palette Color Lookup Table UID\0" /* 1255, 0x0028, 0x1199 */
4164 "Gray Lookup Table Data\0" /* 1256, 0x0028, 0x1200 */
4165 "Red Palette Color Lookup Table Data\0" /* 1257, 0x0028, 0x1201 */
4166 "Green Palette Color Lookup Table Data\0" /* 1258, 0x0028, 0x1202 */
4167 "Blue Palette Color Lookup Table Data\0" /* 1259, 0x0028, 0x1203 */
4168 "Large Red Palette Color Lookup Table Data\0" /* 1260, 0x0028, 0x1211 */
4169 "Large Green Palette Color Lookup Table Data\0" /* 1261, 0x0028, 0x1212 */
4170 "Large Blue Palette Color Lookup Table Data\0" /* 1262, 0x0028, 0x1213 */
4171 "Large Palette Color Lookup Table UID\0" /* 1263, 0x0028, 0x1214 */
4172 "Segmented Red Palette Color Lookup Table Data\0" /* 1264, 0x0028, 0x1221 */
4173 "Segmented Green Palette Color Lookup Table Data\0" /* 1265, 0x0028, 0x1222 */
4174 "Segmented Blue Palette Color Lookup Table Data\0" /* 1266, 0x0028, 0x1223 */
4175 "Implant Present\0" /* 1267, 0x0028, 0x1300 */
4176 "Lossy Image Compression\0" /* 1268, 0x0028, 0x2110 */
4177 "Lossy Image Compression Ratio\0" /* 1269, 0x0028, 0x2112 */
4178 "Modality LUT Sequence\0" /* 1270, 0x0028, 0x3000 */
4179 "LUT Descriptor\0" /* 1271, 0x0028, 0x3002 */
4180 "LUT Explanation\0" /* 1272, 0x0028, 0x3003 */
4181 "Modality LUT Type\0" /* 1273, 0x0028, 0x3004 */
4182 "LUT Data\0" /* 1274, 0x0028, 0x3006 */
4183 "VOI LUT Sequence\0" /* 1275, 0x0028, 0x3010 */
4184 "Image Presentation Comments\0" /* 1276, 0x0028, 0x4000 */
4185 "Biplane Acquisition Sequence\0" /* 1277, 0x0028, 0x5000 */
4186 "Representative Frame Number\0" /* 1278, 0x0028, 0x6010 */
4187 "Frame Numbers of Interest\0" /* 1279, 0x0028, 0x6020 */
4188 "Frame of Interest Description\0" /* 1280, 0x0028, 0x6022 */
4189 "Mask Pointer\0" /* 1281, 0x0028, 0x6030 */
4190 "R Wave Pointer\0" /* 1282, 0x0028, 0x6040 */
4191 "Mask Subtraction Sequence\0" /* 1283, 0x0028, 0x6100 */
4192 "Mask Operation\0" /* 1284, 0x0028, 0x6101 */
4193 "Applicable Frame Range\0" /* 1285, 0x0028, 0x6102 */
4194 "Mask Frame Numbers\0" /* 1286, 0x0028, 0x6110 */
4195 "Contrast Frame Averaging\0" /* 1287, 0x0028, 0x6112 */
4196 "Mask Sub-Pixel Shift\0" /* 1288, 0x0028, 0x6114 */
4197 "TID Offset\0" /* 1289, 0x0028, 0x6120 */
4198 "Mask Operation Explanation\0" /* 1290, 0x0028, 0x6190 */
4199 "?\0" /* 1291, 0x0029, 0x0000 */
4200 "?\0" /* 1292, 0x0029, 0x0001 */
4201 "?\0" /* 1293, 0x0029, 0x0002 */
4202 "?\0" /* 1294, 0x0029, 0x0003 */
4203 "?\0" /* 1295, 0x0029, 0x0004 */
4204 "?\0" /* 1296, 0x0029, 0x0005 */
4205 "?\0" /* 1297, 0x0029, 0x0006 */
4206 "Lower Range Of Pixels\0" /* 1298, 0x0029, 0x0007 */
4207 "Lower Range Of Pixels\0" /* 1299, 0x0029, 0x0008 */
4208 "Lower Range Of Pixels\0" /* 1300, 0x0029, 0x0009 */
4209 "Lower Range Of Pixels\0" /* 1301, 0x0029, 0x000a */
4210 "?\0" /* 1302, 0x0029, 0x000c */
4211 "Zoom Enable Status\0" /* 1303, 0x0029, 0x000e */
4212 "Zoom Select Status\0" /* 1304, 0x0029, 0x000f */
4213 "?\0" /* 1305, 0x0029, 0x0010 */
4214 "?\0" /* 1306, 0x0029, 0x0011 */
4215 "?\0" /* 1307, 0x0029, 0x0013 */
4216 "?\0" /* 1308, 0x0029, 0x0015 */
4217 "Lower Range Of Pixels\0" /* 1309, 0x0029, 0x0016 */
4218 "Lower Range Of Pixels\0" /* 1310, 0x0029, 0x0017 */
4219 "Upper Range Of Pixels\0" /* 1311, 0x0029, 0x0018 */
4220 "Length Of Total Info In Bytes\0" /* 1312, 0x0029, 0x001a */
4221 "?\0" /* 1313, 0x0029, 0x001e */
4222 "?\0" /* 1314, 0x0029, 0x001f */
4223 "?\0" /* 1315, 0x0029, 0x0020 */
4224 "Pixel Quality Value\0" /* 1316, 0x0029, 0x0022 */
4225 "Processed Pixel Data Quality\0" /* 1317, 0x0029, 0x0025 */
4226 "Version Of Info Structure\0" /* 1318, 0x0029, 0x0026 */
4227 "?\0" /* 1319, 0x0029, 0x0030 */
4228 "?\0" /* 1320, 0x0029, 0x0031 */
4229 "?\0" /* 1321, 0x0029, 0x0032 */
4230 "?\0" /* 1322, 0x0029, 0x0033 */
4231 "?\0" /* 1323, 0x0029, 0x0034 */
4232 "Advantage Comp Underflow\0" /* 1324, 0x0029, 0x0035 */
4233 "?\0" /* 1325, 0x0029, 0x0038 */
4234 "?\0" /* 1326, 0x0029, 0x0040 */
4235 "Magnifying Glass Rectangle\0" /* 1327, 0x0029, 0x0041 */
4236 "Magnifying Glass Factor\0" /* 1328, 0x0029, 0x0043 */
4237 "Magnifying Glass Function\0" /* 1329, 0x0029, 0x0044 */
4238 "Magnifying Glass Enable Status\0" /* 1330, 0x0029, 0x004e */
4239 "Magnifying Glass Select Status\0" /* 1331, 0x0029, 0x004f */
4240 "?\0" /* 1332, 0x0029, 0x0050 */
4241 "Exposure Code\0" /* 1333, 0x0029, 0x0051 */
4242 "Sort Code\0" /* 1334, 0x0029, 0x0052 */
4243 "?\0" /* 1335, 0x0029, 0x0053 */
4244 "?\0" /* 1336, 0x0029, 0x0060 */
4245 "?\0" /* 1337, 0x0029, 0x0061 */
4246 "?\0" /* 1338, 0x0029, 0x0067 */
4247 "?\0" /* 1339, 0x0029, 0x0070 */
4248 "?\0" /* 1340, 0x0029, 0x0071 */
4249 "?\0" /* 1341, 0x0029, 0x0072 */
4250 "Window Select Status\0" /* 1342, 0x0029, 0x0077 */
4251 "ECG Display Printing ID\0" /* 1343, 0x0029, 0x0078 */
4252 "ECG Display Printing\0" /* 1344, 0x0029, 0x0079 */
4253 "ECG Display Printing Enable Status\0" /* 1345, 0x0029, 0x007e */
4254 "ECG Display Printing Select Status\0" /* 1346, 0x0029, 0x007f */
4255 "?\0" /* 1347, 0x0029, 0x0080 */
4256 "?\0" /* 1348, 0x0029, 0x0081 */
4257 "View Zoom\0" /* 1349, 0x0029, 0x0082 */
4258 "View Transform\0" /* 1350, 0x0029, 0x0083 */
4259 "Physiological Display Enable Status\0" /* 1351, 0x0029, 0x008e */
4260 "Physiological Display Select Status\0" /* 1352, 0x0029, 0x008f */
4261 "?\0" /* 1353, 0x0029, 0x0090 */
4262 "Shutter Type\0" /* 1354, 0x0029, 0x0099 */
4263 "Rows of Rectangular Shutter\0" /* 1355, 0x0029, 0x00a0 */
4264 "Columns of Rectangular Shutter\0" /* 1356, 0x0029, 0x00a1 */
4265 "Origin of Rectangular Shutter\0" /* 1357, 0x0029, 0x00a2 */
4266 "Radius of Circular Shutter\0" /* 1358, 0x0029, 0x00b0 */
4267 "Origin of Circular Shutter\0" /* 1359, 0x0029, 0x00b2 */
4268 "Functional Shutter ID\0" /* 1360, 0x0029, 0x00c0 */
4269 "?\0" /* 1361, 0x0029, 0x00c1 */
4270 "Scan Resolution\0" /* 1362, 0x0029, 0x00c3 */
4271 "Field of View\0" /* 1363, 0x0029, 0x00c4 */
4272 "Field Of Shutter Rectangle\0" /* 1364, 0x0029, 0x00c5 */
4273 "Shutter Enable Status\0" /* 1365, 0x0029, 0x00ce */
4274 "Shutter Select Status\0" /* 1366, 0x0029, 0x00cf */
4275 "?\0" /* 1367, 0x0029, 0x00d0 */
4276 "?\0" /* 1368, 0x0029, 0x00d1 */
4277 "Slice Thickness\0" /* 1369, 0x0029, 0x00d5 */
4278 "Request UID\0" /* 1370, 0x0031, 0x0010 */
4279 "Examination Reason\0" /* 1371, 0x0031, 0x0012 */
4280 "Requested Date\0" /* 1372, 0x0031, 0x0030 */
4281 "Worklist Request Start Time\0" /* 1373, 0x0031, 0x0032 */
4282 "Worklist Request End Time\0" /* 1374, 0x0031, 0x0033 */
4283 "Requesting Physician\0" /* 1375, 0x0031, 0x0045 */
4284 "Requested Time\0" /* 1376, 0x0031, 0x004a */
4285 "Requested Physician\0" /* 1377, 0x0031, 0x0050 */
4286 "Requested Location\0" /* 1378, 0x0031, 0x0080 */
4287 "Study Group Length\0" /* 1379, 0x0032, 0x0000 */
4288 "Study Status ID\0" /* 1380, 0x0032, 0x000a */
4289 "Study Priority ID\0" /* 1381, 0x0032, 0x000c */
4290 "Study ID Issuer\0" /* 1382, 0x0032, 0x0012 */
4291 "Study Verified Date\0" /* 1383, 0x0032, 0x0032 */
4292 "Study Verified Time\0" /* 1384, 0x0032, 0x0033 */
4293 "Study Read Date\0" /* 1385, 0x0032, 0x0034 */
4294 "Study Read Time\0" /* 1386, 0x0032, 0x0035 */
4295 "Scheduled Study Start Date\0" /* 1387, 0x0032, 0x1000 */
4296 "Scheduled Study Start Time\0" /* 1388, 0x0032, 0x1001 */
4297 "Scheduled Study Stop Date\0" /* 1389, 0x0032, 0x1010 */
4298 "Scheduled Study Stop Time\0" /* 1390, 0x0032, 0x1011 */
4299 "Scheduled Study Location\0" /* 1391, 0x0032, 0x1020 */
4300 "Scheduled Study Location AE Title(s)\0" /* 1392, 0x0032, 0x1021 */
4301 "Reason for Study\0" /* 1393, 0x0032, 0x1030 */
4302 "Requesting Physician\0" /* 1394, 0x0032, 0x1032 */
4303 "Requesting Service\0" /* 1395, 0x0032, 0x1033 */
4304 "Study Arrival Date\0" /* 1396, 0x0032, 0x1040 */
4305 "Study Arrival Time\0" /* 1397, 0x0032, 0x1041 */
4306 "Study Completion Date\0" /* 1398, 0x0032, 0x1050 */
4307 "Study Completion Time\0" /* 1399, 0x0032, 0x1051 */
4308 "Study Component Status ID\0" /* 1400, 0x0032, 0x1055 */
4309 "Requested Procedure Description\0" /* 1401, 0x0032, 0x1060 */
4310 "Requested Procedure Code Sequence\0" /* 1402, 0x0032, 0x1064 */
4311 "Requested Contrast Agent\0" /* 1403, 0x0032, 0x1070 */
4312 "Study Comments\0" /* 1404, 0x0032, 0x4000 */
4313 "?\0" /* 1405, 0x0033, 0x0001 */
4314 "?\0" /* 1406, 0x0033, 0x0002 */
4315 "?\0" /* 1407, 0x0033, 0x0005 */
4316 "?\0" /* 1408, 0x0033, 0x0006 */
4317 "Patient Study UID\0" /* 1409, 0x0033, 0x0010 */
4318 "ReferringDepartment\0" /* 1410, 0x0037, 0x0010 */
4319 "ScreenNumber\0" /* 1411, 0x0037, 0x0020 */
4320 "LeftOrientation\0" /* 1412, 0x0037, 0x0040 */
4321 "RightOrientation\0" /* 1413, 0x0037, 0x0042 */
4322 "Inversion\0" /* 1414, 0x0037, 0x0050 */
4323 "DSA\0" /* 1415, 0x0037, 0x0060 */
4324 "Visit Group Length\0" /* 1416, 0x0038, 0x0000 */
4325 "Referenced Patient Alias Sequence\0" /* 1417, 0x0038, 0x0004 */
4326 "Visit Status ID\0" /* 1418, 0x0038, 0x0008 */
4327 "Admission ID\0" /* 1419, 0x0038, 0x0010 */
4328 "Issuer of Admission ID\0" /* 1420, 0x0038, 0x0011 */
4329 "Route of Admissions\0" /* 1421, 0x0038, 0x0016 */
4330 "Scheduled Admission Date\0" /* 1422, 0x0038, 0x001a */
4331 "Scheduled Admission Time\0" /* 1423, 0x0038, 0x001b */
4332 "Scheduled Discharge Date\0" /* 1424, 0x0038, 0x001c */
4333 "Scheduled Discharge Time\0" /* 1425, 0x0038, 0x001d */
4334 "Scheduled Patient Institution Residence\0" /* 1426, 0x0038, 0x001e */
4335 "Admitting Date\0" /* 1427, 0x0038, 0x0020 */
4336 "Admitting Time\0" /* 1428, 0x0038, 0x0021 */
4337 "Discharge Date\0" /* 1429, 0x0038, 0x0030 */
4338 "Discharge Time\0" /* 1430, 0x0038, 0x0032 */
4339 "Discharge Diagnosis Description\0" /* 1431, 0x0038, 0x0040 */
4340 "Discharge Diagnosis Code Sequence\0" /* 1432, 0x0038, 0x0044 */
4341 "Special Needs\0" /* 1433, 0x0038, 0x0050 */
4342 "Current Patient Location\0" /* 1434, 0x0038, 0x0300 */
4343 "Patient's Institution Residence\0" /* 1435, 0x0038, 0x0400 */
4344 "Patient State\0" /* 1436, 0x0038, 0x0500 */
4345 "Visit Comments\0" /* 1437, 0x0038, 0x4000 */
4346 "Private Entity Number\0" /* 1438, 0x0039, 0x0080 */
4347 "Private Entity Date\0" /* 1439, 0x0039, 0x0085 */
4348 "Private Entity Time\0" /* 1440, 0x0039, 0x0090 */
4349 "Private Entity Launch Command\0" /* 1441, 0x0039, 0x0095 */
4350 "Private Entity Type\0" /* 1442, 0x0039, 0x00aa */
4351 "Waveform Sequence\0" /* 1443, 0x003a, 0x0002 */
4352 "Waveform Number of Channels\0" /* 1444, 0x003a, 0x0005 */
4353 "Waveform Number of Samples\0" /* 1445, 0x003a, 0x0010 */
4354 "Sampling Frequency\0" /* 1446, 0x003a, 0x001a */
4355 "Group Label\0" /* 1447, 0x003a, 0x0020 */
4356 "Waveform Sample Value Representation\0" /* 1448, 0x003a, 0x0103 */
4357 "Waveform Padding Value\0" /* 1449, 0x003a, 0x0122 */
4358 "Channel Definition\0" /* 1450, 0x003a, 0x0200 */
4359 "Waveform Channel Number\0" /* 1451, 0x003a, 0x0202 */
4360 "Channel Label\0" /* 1452, 0x003a, 0x0203 */
4361 "Channel Status\0" /* 1453, 0x003a, 0x0205 */
4362 "Channel Source\0" /* 1454, 0x003a, 0x0208 */
4363 "Channel Source Modifiers\0" /* 1455, 0x003a, 0x0209 */
4364 "Differential Channel Source\0" /* 1456, 0x003a, 0x020a */
4365 "Differential Channel Source Modifiers\0" /* 1457, 0x003a, 0x020b */
4366 "Channel Sensitivity\0" /* 1458, 0x003a, 0x0210 */
4367 "Channel Sensitivity Units\0" /* 1459, 0x003a, 0x0211 */
4368 "Channel Sensitivity Correction Factor\0" /* 1460, 0x003a, 0x0212 */
4369 "Channel Baseline\0" /* 1461, 0x003a, 0x0213 */
4370 "Channel Time Skew\0" /* 1462, 0x003a, 0x0214 */
4371 "Channel Sample Skew\0" /* 1463, 0x003a, 0x0215 */
4372 "Channel Minimum Value\0" /* 1464, 0x003a, 0x0216 */
4373 "Channel Maximum Value\0" /* 1465, 0x003a, 0x0217 */
4374 "Channel Offset\0" /* 1466, 0x003a, 0x0218 */
4375 "Bits Per Sample\0" /* 1467, 0x003a, 0x021a */
4376 "Filter Low Frequency\0" /* 1468, 0x003a, 0x0220 */
4377 "Filter High Frequency\0" /* 1469, 0x003a, 0x0221 */
4378 "Notch Filter Frequency\0" /* 1470, 0x003a, 0x0222 */
4379 "Notch Filter Bandwidth\0" /* 1471, 0x003a, 0x0223 */
4380 "Waveform Data\0" /* 1472, 0x003a, 0x1000 */
4381 "Scheduled Station AE Title\0" /* 1473, 0x0040, 0x0001 */
4382 "Scheduled Procedure Step Start Date\0" /* 1474, 0x0040, 0x0002 */
4383 "Scheduled Procedure Step Start Time\0" /* 1475, 0x0040, 0x0003 */
4384 "Scheduled Procedure Step End Date\0" /* 1476, 0x0040, 0x0004 */
4385 "Scheduled Procedure Step End Time\0" /* 1477, 0x0040, 0x0005 */
4386 "Scheduled Performing Physician Name\0" /* 1478, 0x0040, 0x0006 */
4387 "Scheduled Procedure Step Description\0" /* 1479, 0x0040, 0x0007 */
4388 "Scheduled Action Item Code Sequence\0" /* 1480, 0x0040, 0x0008 */
4389 "Scheduled Procedure Step ID\0" /* 1481, 0x0040, 0x0009 */
4390 "Scheduled Station Name\0" /* 1482, 0x0040, 0x0010 */
4391 "Scheduled Procedure Step Location\0" /* 1483, 0x0040, 0x0011 */
4392 "Pre-Medication\0" /* 1484, 0x0040, 0x0012 */
4393 "Scheduled Procedure Step Status\0" /* 1485, 0x0040, 0x0020 */
4394 "Scheduled Procedure Step Sequence\0" /* 1486, 0x0040, 0x0100 */
4395 "Entrance Dose\0" /* 1487, 0x0040, 0x0302 */
4396 "Exposed Area\0" /* 1488, 0x0040, 0x0303 */
4397 "Distance Source to Entrance\0" /* 1489, 0x0040, 0x0306 */
4398 "Distance Source to Support\0" /* 1490, 0x0040, 0x0307 */
4399 "Comments On Radiation Dose\0" /* 1491, 0x0040, 0x0310 */
4400 "X-Ray Output\0" /* 1492, 0x0040, 0x0312 */
4401 "Half Value Layer\0" /* 1493, 0x0040, 0x0314 */
4402 "Organ Dose\0" /* 1494, 0x0040, 0x0316 */
4403 "Organ Exposed\0" /* 1495, 0x0040, 0x0318 */
4404 "Comments On Scheduled Procedure Step\0" /* 1496, 0x0040, 0x0400 */
4405 "Specimen Accession Number\0" /* 1497, 0x0040, 0x050a */
4406 "Specimen Sequence\0" /* 1498, 0x0040, 0x0550 */
4407 "Specimen Identifier\0" /* 1499, 0x0040, 0x0551 */
4408 "Specimen Description Sequence\0" /* 1500, 0x0040, 0x0552 */
4409 "Specimen Description\0" /* 1501, 0x0040, 0x0553 */
4410 "Acquisition Context Sequence\0" /* 1502, 0x0040, 0x0555 */
4411 "Acquisition Context Description\0" /* 1503, 0x0040, 0x0556 */
4412 "Specimen Type Code Sequence\0" /* 1504, 0x0040, 0x059a */
4413 "Slide Identifier\0" /* 1505, 0x0040, 0x06fa */
4414 "Image Center Point Coordinates Sequence\0" /* 1506, 0x0040, 0x071a */
4415 "X Offset In Slide Coordinate System\0" /* 1507, 0x0040, 0x072a */
4416 "Y Offset In Slide Coordinate System\0" /* 1508, 0x0040, 0x073a */
4417 "Z Offset In Slide Coordinate System\0" /* 1509, 0x0040, 0x074a */
4418 "Pixel Spacing Sequence\0" /* 1510, 0x0040, 0x08d8 */
4419 "Coordinate System Axis Code Sequence\0" /* 1511, 0x0040, 0x08da */
4420 "Measurement Units Code Sequence\0" /* 1512, 0x0040, 0x08ea */
4421 "Vital Stain Code Sequence\0" /* 1513, 0x0040, 0x09f8 */
4422 "Requested Procedure ID\0" /* 1514, 0x0040, 0x1001 */
4423 "Reason For Requested Procedure\0" /* 1515, 0x0040, 0x1002 */
4424 "Requested Procedure Priority\0" /* 1516, 0x0040, 0x1003 */
4425 "Patient Transport Arrangements\0" /* 1517, 0x0040, 0x1004 */
4426 "Requested Procedure Location\0" /* 1518, 0x0040, 0x1005 */
4427 "Placer Order Number of Procedure\0" /* 1519, 0x0040, 0x1006 */
4428 "Filler Order Number of Procedure\0" /* 1520, 0x0040, 0x1007 */
4429 "Confidentiality Code\0" /* 1521, 0x0040, 0x1008 */
4430 "Reporting Priority\0" /* 1522, 0x0040, 0x1009 */
4431 "Names of Intended Recipients of Results\0" /* 1523, 0x0040, 0x1010 */
4432 "Requested Procedure Comments\0" /* 1524, 0x0040, 0x1400 */
4433 "Reason For Imaging Service Request\0" /* 1525, 0x0040, 0x2001 */
4434 "Issue Date of Imaging Service Request\0" /* 1526, 0x0040, 0x2004 */
4435 "Issue Time of Imaging Service Request\0" /* 1527, 0x0040, 0x2005 */
4436 "Placer Order Number of Imaging Service Request\0" /* 1528, 0x0040, 0x2006 */
4437 "Filler Order Number of Imaging Service Request\0" /* 1529, 0x0040, 0x2007 */
4438 "Order Entered By\0" /* 1530, 0x0040, 0x2008 */
4439 "Order Enterer Location\0" /* 1531, 0x0040, 0x2009 */
4440 "Order Callback Phone Number\0" /* 1532, 0x0040, 0x2010 */
4441 "Imaging Service Request Comments\0" /* 1533, 0x0040, 0x2400 */
4442 "Confidentiality Constraint On Patient Data\0" /* 1534, 0x0040, 0x3001 */
4443 "Findings Flag\0" /* 1535, 0x0040, 0xa007 */
4444 "Findings Sequence\0" /* 1536, 0x0040, 0xa020 */
4445 "Findings Group UID\0" /* 1537, 0x0040, 0xa021 */
4446 "Referenced Findings Group UID\0" /* 1538, 0x0040, 0xa022 */
4447 "Findings Group Recording Date\0" /* 1539, 0x0040, 0xa023 */
4448 "Findings Group Recording Time\0" /* 1540, 0x0040, 0xa024 */
4449 "Findings Source Category Code Sequence\0" /* 1541, 0x0040, 0xa026 */
4450 "Documenting Organization\0" /* 1542, 0x0040, 0xa027 */
4451 "Documenting Organization Identifier Code Sequence\0" /* 1543, 0x0040, 0xa028 */
4452 "History Reliability Qualifier Description\0" /* 1544, 0x0040, 0xa032 */
4453 "Concept Name Code Sequence\0" /* 1545, 0x0040, 0xa043 */
4454 "Measurement Precision Description\0" /* 1546, 0x0040, 0xa047 */
4455 "Urgency or Priority Alerts\0" /* 1547, 0x0040, 0xa057 */
4456 "Sequencing Indicator\0" /* 1548, 0x0040, 0xa060 */
4457 "Document Identifier Code Sequence\0" /* 1549, 0x0040, 0xa066 */
4458 "Document Author\0" /* 1550, 0x0040, 0xa067 */
4459 "Document Author Identifier Code Sequence\0" /* 1551, 0x0040, 0xa068 */
4460 "Identifier Code Sequence\0" /* 1552, 0x0040, 0xa070 */
4461 "Object String Identifier\0" /* 1553, 0x0040, 0xa073 */
4462 "Object Binary Identifier\0" /* 1554, 0x0040, 0xa074 */
4463 "Documenting Observer\0" /* 1555, 0x0040, 0xa075 */
4464 "Documenting Observer Identifier Code Sequence\0" /* 1556, 0x0040, 0xa076 */
4465 "Observation Subject Identifier Code Sequence\0" /* 1557, 0x0040, 0xa078 */
4466 "Person Identifier Code Sequence\0" /* 1558, 0x0040, 0xa080 */
4467 "Procedure Identifier Code Sequence\0" /* 1559, 0x0040, 0xa085 */
4468 "Object Directory String Identifier\0" /* 1560, 0x0040, 0xa088 */
4469 "Object Directory Binary Identifier\0" /* 1561, 0x0040, 0xa089 */
4470 "History Reliability Qualifier\0" /* 1562, 0x0040, 0xa090 */
4471 "Referenced Type of Data\0" /* 1563, 0x0040, 0xa0a0 */
4472 "Referenced Waveform Channels\0" /* 1564, 0x0040, 0xa0b0 */
4473 "Date of Document or Verbal Transaction\0" /* 1565, 0x0040, 0xa110 */
4474 "Time of Document Creation or Verbal Transaction\0" /* 1566, 0x0040, 0xa112 */
4475 "Date\0" /* 1567, 0x0040, 0xa121 */
4476 "Time\0" /* 1568, 0x0040, 0xa122 */
4477 "Person Name\0" /* 1569, 0x0040, 0xa123 */
4478 "Referenced Person Sequence\0" /* 1570, 0x0040, 0xa124 */
4479 "Report Status ID\0" /* 1571, 0x0040, 0xa125 */
4480 "Temporal Range Type\0" /* 1572, 0x0040, 0xa130 */
4481 "Referenced Sample Offsets\0" /* 1573, 0x0040, 0xa132 */
4482 "Referenced Frame Numbers\0" /* 1574, 0x0040, 0xa136 */
4483 "Referenced Time Offsets\0" /* 1575, 0x0040, 0xa138 */
4484 "Referenced Datetime\0" /* 1576, 0x0040, 0xa13a */
4485 "Text Value\0" /* 1577, 0x0040, 0xa160 */
4486 "Observation Category Code Sequence\0" /* 1578, 0x0040, 0xa167 */
4487 "Concept Code Sequence\0" /* 1579, 0x0040, 0xa168 */
4488 "Bibliographic Citation\0" /* 1580, 0x0040, 0xa16a */
4489 "Observation Class\0" /* 1581, 0x0040, 0xa170 */
4490 "Observation UID\0" /* 1582, 0x0040, 0xa171 */
4491 "Referenced Observation UID\0" /* 1583, 0x0040, 0xa172 */
4492 "Referenced Observation Class\0" /* 1584, 0x0040, 0xa173 */
4493 "Referenced Object Observation Class\0" /* 1585, 0x0040, 0xa174 */
4494 "Annotation Group Number\0" /* 1586, 0x0040, 0xa180 */
4495 "Observation Date\0" /* 1587, 0x0040, 0xa192 */
4496 "Observation Time\0" /* 1588, 0x0040, 0xa193 */
4497 "Measurement Automation\0" /* 1589, 0x0040, 0xa194 */
4498 "Concept Name Code Sequence Modifier\0" /* 1590, 0x0040, 0xa195 */
4499 "Identification Description\0" /* 1591, 0x0040, 0xa224 */
4500 "Coordinates Set Geometric Type\0" /* 1592, 0x0040, 0xa290 */
4501 "Algorithm Code Sequence\0" /* 1593, 0x0040, 0xa296 */
4502 "Algorithm Description\0" /* 1594, 0x0040, 0xa297 */
4503 "Pixel Coordinates Set\0" /* 1595, 0x0040, 0xa29a */
4504 "Measured Value Sequence\0" /* 1596, 0x0040, 0xa300 */
4505 "Current Observer\0" /* 1597, 0x0040, 0xa307 */
4506 "Numeric Value\0" /* 1598, 0x0040, 0xa30a */
4507 "Referenced Accession Sequence\0" /* 1599, 0x0040, 0xa313 */
4508 "Report Status Comment\0" /* 1600, 0x0040, 0xa33a */
4509 "Procedure Context Sequence\0" /* 1601, 0x0040, 0xa340 */
4510 "Verbal Source\0" /* 1602, 0x0040, 0xa352 */
4511 "Address\0" /* 1603, 0x0040, 0xa353 */
4512 "Telephone Number\0" /* 1604, 0x0040, 0xa354 */
4513 "Verbal Source Identifier Code Sequence\0" /* 1605, 0x0040, 0xa358 */
4514 "Report Detail Sequence\0" /* 1606, 0x0040, 0xa380 */
4515 "Observation Subject UID\0" /* 1607, 0x0040, 0xa402 */
4516 "Observation Subject Class\0" /* 1608, 0x0040, 0xa403 */
4517 "Observation Subject Type Code Sequence\0" /* 1609, 0x0040, 0xa404 */
4518 "Observation Subject Context Flag\0" /* 1610, 0x0040, 0xa600 */
4519 "Observer Context Flag\0" /* 1611, 0x0040, 0xa601 */
4520 "Procedure Context Flag\0" /* 1612, 0x0040, 0xa603 */
4521 "Observations Sequence\0" /* 1613, 0x0040, 0xa730 */
4522 "Relationship Sequence\0" /* 1614, 0x0040, 0xa731 */
4523 "Relationship Type Code Sequence\0" /* 1615, 0x0040, 0xa732 */
4524 "Language Code Sequence\0" /* 1616, 0x0040, 0xa744 */
4525 "Uniform Resource Locator\0" /* 1617, 0x0040, 0xa992 */
4526 "Annotation Sequence\0" /* 1618, 0x0040, 0xb020 */
4527 "Relationship Type Code Sequence Modifier\0" /* 1619, 0x0040, 0xdb73 */
4528 "Papyrus Comments\0" /* 1620, 0x0041, 0x0000 */
4529 "?\0" /* 1621, 0x0041, 0x0010 */
4530 "?\0" /* 1622, 0x0041, 0x0011 */
4531 "Pixel Offset\0" /* 1623, 0x0041, 0x0012 */
4532 "Image Identifier Sequence\0" /* 1624, 0x0041, 0x0013 */
4533 "External File Reference Sequence\0" /* 1625, 0x0041, 0x0014 */
4534 "Number of Images\0" /* 1626, 0x0041, 0x0015 */
4535 "?\0" /* 1627, 0x0041, 0x0020 */
4536 "Referenced SOP Class UID\0" /* 1628, 0x0041, 0x0021 */
4537 "Referenced SOP Instance UID\0" /* 1629, 0x0041, 0x0022 */
4538 "?\0" /* 1630, 0x0041, 0x0030 */
4539 "?\0" /* 1631, 0x0041, 0x0031 */
4540 "?\0" /* 1632, 0x0041, 0x0032 */
4541 "Modified Date\0" /* 1633, 0x0041, 0x0034 */
4542 "Modified Time\0" /* 1634, 0x0041, 0x0036 */
4543 "Owner Name\0" /* 1635, 0x0041, 0x0040 */
4544 "Referenced Image SOP Class UID\0" /* 1636, 0x0041, 0x0041 */
4545 "Referenced Image SOP Instance UID\0" /* 1637, 0x0041, 0x0042 */
4546 "?\0" /* 1638, 0x0041, 0x0050 */
4547 "Number of Images\0" /* 1639, 0x0041, 0x0060 */
4548 "Number of Other\0" /* 1640, 0x0041, 0x0062 */
4549 "External Folder Element DSID\0" /* 1641, 0x0041, 0x00a0 */
4550 "External Folder Element Data Set Type\0" /* 1642, 0x0041, 0x00a1 */
4551 "External Folder Element File Location\0" /* 1643, 0x0041, 0x00a2 */
4552 "External Folder Element Length\0" /* 1644, 0x0041, 0x00a3 */
4553 "Internal Folder Element DSID\0" /* 1645, 0x0041, 0x00b0 */
4554 "Internal Folder Element Data Set Type\0" /* 1646, 0x0041, 0x00b1 */
4555 "Internal Offset To Data Set\0" /* 1647, 0x0041, 0x00b2 */
4556 "Internal Offset To Image\0" /* 1648, 0x0041, 0x00b3 */
4557 "Bitmap Of Prescan Options\0" /* 1649, 0x0043, 0x0001 */
4558 "Gradient Offset In X\0" /* 1650, 0x0043, 0x0002 */
4559 "Gradient Offset In Y\0" /* 1651, 0x0043, 0x0003 */
4560 "Gradient Offset In Z\0" /* 1652, 0x0043, 0x0004 */
4561 "Image Is Original Or Unoriginal\0" /* 1653, 0x0043, 0x0005 */
4562 "Number Of EPI Shots\0" /* 1654, 0x0043, 0x0006 */
4563 "Views Per Segment\0" /* 1655, 0x0043, 0x0007 */
4564 "Respiratory Rate In BPM\0" /* 1656, 0x0043, 0x0008 */
4565 "Respiratory Trigger Point\0" /* 1657, 0x0043, 0x0009 */
4566 "Type Of Receiver Used\0" /* 1658, 0x0043, 0x000a */
4567 "Peak Rate Of Change Of Gradient Field\0" /* 1659, 0x0043, 0x000b */
4568 "Limits In Units Of Percent\0" /* 1660, 0x0043, 0x000c */
4569 "PSD Estimated Limit\0" /* 1661, 0x0043, 0x000d */
4570 "PSD Estimated Limit In Tesla Per Second\0" /* 1662, 0x0043, 0x000e */
4571 "SAR Avg Head\0" /* 1663, 0x0043, 0x000f */
4572 "Window Value\0" /* 1664, 0x0043, 0x0010 */
4573 "Total Input Views\0" /* 1665, 0x0043, 0x0011 */
4574 "Xray Chain\0" /* 1666, 0x0043, 0x0012 */
4575 "Recon Kernel Parameters\0" /* 1667, 0x0043, 0x0013 */
4576 "Calibration Parameters\0" /* 1668, 0x0043, 0x0014 */
4577 "Total Output Views\0" /* 1669, 0x0043, 0x0015 */
4578 "Number Of Overranges\0" /* 1670, 0x0043, 0x0016 */
4579 "IBH Image Scale Factors\0" /* 1671, 0x0043, 0x0017 */
4580 "BBH Coefficients\0" /* 1672, 0x0043, 0x0018 */
4581 "Number Of BBH Chains To Blend\0" /* 1673, 0x0043, 0x0019 */
4582 "Starting Channel Number\0" /* 1674, 0x0043, 0x001a */
4583 "PPScan Parameters\0" /* 1675, 0x0043, 0x001b */
4584 "GE Image Integrity\0" /* 1676, 0x0043, 0x001c */
4585 "Level Value\0" /* 1677, 0x0043, 0x001d */
4586 "?\0" /* 1678, 0x0043, 0x001e */
4587 "Max Overranges In A View\0" /* 1679, 0x0043, 0x001f */
4588 "Avg Overranges All Views\0" /* 1680, 0x0043, 0x0020 */
4589 "Corrected Afterglow Terms\0" /* 1681, 0x0043, 0x0021 */
4590 "Reference Channels\0" /* 1682, 0x0043, 0x0025 */
4591 "No Views Ref Channels Blocked\0" /* 1683, 0x0043, 0x0026 */
4592 "?\0" /* 1684, 0x0043, 0x0027 */
4593 "Unique Image Identifier\0" /* 1685, 0x0043, 0x0028 */
4594 "Histogram Tables\0" /* 1686, 0x0043, 0x0029 */
4595 "User Defined Data\0" /* 1687, 0x0043, 0x002a */
4596 "Private Scan Options\0" /* 1688, 0x0043, 0x002b */
4597 "Effective Echo Spacing\0" /* 1689, 0x0043, 0x002c */
4598 "String Slop Field 1\0" /* 1690, 0x0043, 0x002d */
4599 "String Slop Field 2\0" /* 1691, 0x0043, 0x002e */
4600 "Raw Data Type\0" /* 1692, 0x0043, 0x002f */
4601 "Raw Data Type\0" /* 1693, 0x0043, 0x0030 */
4602 "RA Coord Of Target Recon Centre\0" /* 1694, 0x0043, 0x0031 */
4603 "Raw Data Type\0" /* 1695, 0x0043, 0x0032 */
4604 "Neg Scan Spacing\0" /* 1696, 0x0043, 0x0033 */
4605 "Offset Frequency\0" /* 1697, 0x0043, 0x0034 */
4606 "User Usage Tag\0" /* 1698, 0x0043, 0x0035 */
4607 "User Fill Map MSW\0" /* 1699, 0x0043, 0x0036 */
4608 "User Fill Map LSW\0" /* 1700, 0x0043, 0x0037 */
4609 "User 25 To User 48\0" /* 1701, 0x0043, 0x0038 */
4610 "Slop Integer 6 To Slop Integer 9\0" /* 1702, 0x0043, 0x0039 */
4611 "Trigger On Position\0" /* 1703, 0x0043, 0x0040 */
4612 "Degree Of Rotation\0" /* 1704, 0x0043, 0x0041 */
4613 "DAS Trigger Source\0" /* 1705, 0x0043, 0x0042 */
4614 "DAS Fpa Gain\0" /* 1706, 0x0043, 0x0043 */
4615 "DAS Output Source\0" /* 1707, 0x0043, 0x0044 */
4616 "DAS Ad Input\0" /* 1708, 0x0043, 0x0045 */
4617 "DAS Cal Mode\0" /* 1709, 0x0043, 0x0046 */
4618 "DAS Cal Frequency\0" /* 1710, 0x0043, 0x0047 */
4619 "DAS Reg Xm\0" /* 1711, 0x0043, 0x0048 */
4620 "DAS Auto Zero\0" /* 1712, 0x0043, 0x0049 */
4621 "Starting Channel Of View\0" /* 1713, 0x0043, 0x004a */
4622 "DAS Xm Pattern\0" /* 1714, 0x0043, 0x004b */
4623 "TGGC Trigger Mode\0" /* 1715, 0x0043, 0x004c */
4624 "Start Scan To Xray On Delay\0" /* 1716, 0x0043, 0x004d */
4625 "Duration Of Xray On\0" /* 1717, 0x0043, 0x004e */
4626 "?\0" /* 1718, 0x0044, 0x0000 */
4627 "AES\0" /* 1719, 0x0045, 0x0004 */
4628 "Angulation\0" /* 1720, 0x0045, 0x0006 */
4629 "Real Magnification Factor\0" /* 1721, 0x0045, 0x0009 */
4630 "Senograph Type\0" /* 1722, 0x0045, 0x000b */
4631 "Integration Time\0" /* 1723, 0x0045, 0x000c */
4632 "ROI Origin X and Y\0" /* 1724, 0x0045, 0x000d */
4633 "Receptor Size cm X and Y\0" /* 1725, 0x0045, 0x0011 */
4634 "Receptor Size Pixels X and Y\0" /* 1726, 0x0045, 0x0012 */
4635 "Screen\0" /* 1727, 0x0045, 0x0013 */
4636 "Pixel Pitch Microns\0" /* 1728, 0x0045, 0x0014 */
4637 "Pixel Depth Bits\0" /* 1729, 0x0045, 0x0015 */
4638 "Binning Factor X and Y\0" /* 1730, 0x0045, 0x0016 */
4639 "Clinical View\0" /* 1731, 0x0045, 0x001b */
4640 "Mean Of Raw Gray Levels\0" /* 1732, 0x0045, 0x001d */
4641 "Mean Of Offset Gray Levels\0" /* 1733, 0x0045, 0x001e */
4642 "Mean Of Corrected Gray Levels\0" /* 1734, 0x0045, 0x001f */
4643 "Mean Of Region Gray Levels\0" /* 1735, 0x0045, 0x0020 */
4644 "Mean Of Log Region Gray Levels\0" /* 1736, 0x0045, 0x0021 */
4645 "Standard Deviation Of Raw Gray Levels\0" /* 1737, 0x0045, 0x0022 */
4646 "Standard Deviation Of Corrected Gray Levels\0" /* 1738, 0x0045, 0x0023 */
4647 "Standard Deviation Of Region Gray Levels\0" /* 1739, 0x0045, 0x0024 */
4648 "Standard Deviation Of Log Region Gray Levels\0" /* 1740, 0x0045, 0x0025 */
4649 "MAO Buffer\0" /* 1741, 0x0045, 0x0026 */
4650 "Set Number\0" /* 1742, 0x0045, 0x0027 */
4651 "WindowingType (LINEAR or GAMMA)\0" /* 1743, 0x0045, 0x0028 */
4652 "WindowingParameters\0" /* 1744, 0x0045, 0x0029 */
4653 "Crosshair Cursor X Coordinates\0" /* 1745, 0x0045, 0x002a */
4654 "Crosshair Cursor Y Coordinates\0" /* 1746, 0x0045, 0x002b */
4655 "Vignette Rows\0" /* 1747, 0x0045, 0x0039 */
4656 "Vignette Columns\0" /* 1748, 0x0045, 0x003a */
4657 "Vignette Bits Allocated\0" /* 1749, 0x0045, 0x003b */
4658 "Vignette Bits Stored\0" /* 1750, 0x0045, 0x003c */
4659 "Vignette High Bit\0" /* 1751, 0x0045, 0x003d */
4660 "Vignette Pixel Representation\0" /* 1752, 0x0045, 0x003e */
4661 "Vignette Pixel Data\0" /* 1753, 0x0045, 0x003f */
4662 "Reconstruction Parameters Sequence\0" /* 1754, 0x0047, 0x0001 */
4663 "Volume Voxel Count\0" /* 1755, 0x0047, 0x0050 */
4664 "Volume Segment Count\0" /* 1756, 0x0047, 0x0051 */
4665 "Volume Slice Size\0" /* 1757, 0x0047, 0x0053 */
4666 "Volume Slice Count\0" /* 1758, 0x0047, 0x0054 */
4667 "Volume Threshold Value\0" /* 1759, 0x0047, 0x0055 */
4668 "Volume Voxel Ratio\0" /* 1760, 0x0047, 0x0057 */
4669 "Volume Voxel Size\0" /* 1761, 0x0047, 0x0058 */
4670 "Volume Z Position Size\0" /* 1762, 0x0047, 0x0059 */
4671 "Volume Base Line\0" /* 1763, 0x0047, 0x0060 */
4672 "Volume Center Point\0" /* 1764, 0x0047, 0x0061 */
4673 "Volume Skew Base\0" /* 1765, 0x0047, 0x0063 */
4674 "Volume Registration Transform Rotation Matrix\0" /* 1766, 0x0047, 0x0064 */
4675 "Volume Registration Transform Translation Vector\0" /* 1767, 0x0047, 0x0065 */
4676 "KVP List\0" /* 1768, 0x0047, 0x0070 */
4677 "XRay Tube Current List\0" /* 1769, 0x0047, 0x0071 */
4678 "Exposure List\0" /* 1770, 0x0047, 0x0072 */
4679 "Acquisition DLX Identifier\0" /* 1771, 0x0047, 0x0080 */
4680 "Acquisition DLX 2D Series Sequence\0" /* 1772, 0x0047, 0x0085 */
4681 "Contrast Agent Volume List\0" /* 1773, 0x0047, 0x0089 */
4682 "Number Of Injections\0" /* 1774, 0x0047, 0x008a */
4683 "Frame Count\0" /* 1775, 0x0047, 0x008b */
4684 "Used Frames\0" /* 1776, 0x0047, 0x0096 */
4685 "XA 3D Reconstruction Algorithm Name\0" /* 1777, 0x0047, 0x0091 */
4686 "XA 3D Reconstruction Algorithm Version\0" /* 1778, 0x0047, 0x0092 */
4687 "DLX Calibration Date\0" /* 1779, 0x0047, 0x0093 */
4688 "DLX Calibration Time\0" /* 1780, 0x0047, 0x0094 */
4689 "DLX Calibration Status\0" /* 1781, 0x0047, 0x0095 */
4690 "Transform Count\0" /* 1782, 0x0047, 0x0098 */
4691 "Transform Sequence\0" /* 1783, 0x0047, 0x0099 */
4692 "Transform Rotation Matrix\0" /* 1784, 0x0047, 0x009a */
4693 "Transform Translation Vector\0" /* 1785, 0x0047, 0x009b */
4694 "Transform Label\0" /* 1786, 0x0047, 0x009c */
4695 "Wireframe Count\0" /* 1787, 0x0047, 0x00b1 */
4696 "Location System\0" /* 1788, 0x0047, 0x00b2 */
4697 "Wireframe List\0" /* 1789, 0x0047, 0x00b0 */
4698 "Wireframe Name\0" /* 1790, 0x0047, 0x00b5 */
4699 "Wireframe Group Name\0" /* 1791, 0x0047, 0x00b6 */
4700 "Wireframe Color\0" /* 1792, 0x0047, 0x00b7 */
4701 "Wireframe Attributes\0" /* 1793, 0x0047, 0x00b8 */
4702 "Wireframe Point Count\0" /* 1794, 0x0047, 0x00b9 */
4703 "Wireframe Timestamp\0" /* 1795, 0x0047, 0x00ba */
4704 "Wireframe Point List\0" /* 1796, 0x0047, 0x00bb */
4705 "Wireframe Points Coordinates\0" /* 1797, 0x0047, 0x00bc */
4706 "Volume Upper Left High Corner RAS\0" /* 1798, 0x0047, 0x00c0 */
4707 "Volume Slice To RAS Rotation Matrix\0" /* 1799, 0x0047, 0x00c1 */
4708 "Volume Upper Left High Corner TLOC\0" /* 1800, 0x0047, 0x00c2 */
4709 "Volume Segment List\0" /* 1801, 0x0047, 0x00d1 */
4710 "Volume Gradient List\0" /* 1802, 0x0047, 0x00d2 */
4711 "Volume Density List\0" /* 1803, 0x0047, 0x00d3 */
4712 "Volume Z Position List\0" /* 1804, 0x0047, 0x00d4 */
4713 "Volume Original Index List\0" /* 1805, 0x0047, 0x00d5 */
4714 "Calibration Group Length\0" /* 1806, 0x0050, 0x0000 */
4715 "Calibration Object\0" /* 1807, 0x0050, 0x0004 */
4716 "DeviceSequence\0" /* 1808, 0x0050, 0x0010 */
4717 "DeviceLength\0" /* 1809, 0x0050, 0x0014 */
4718 "DeviceDiameter\0" /* 1810, 0x0050, 0x0016 */
4719 "DeviceDiameterUnits\0" /* 1811, 0x0050, 0x0017 */
4720 "DeviceVolume\0" /* 1812, 0x0050, 0x0018 */
4721 "InterMarkerDistance\0" /* 1813, 0x0050, 0x0019 */
4722 "DeviceDescription\0" /* 1814, 0x0050, 0x0020 */
4723 "CodedInterventionDeviceSequence\0" /* 1815, 0x0050, 0x0030 */
4724 "Image Text\0" /* 1816, 0x0051, 0x0010 */
4725 "Nuclear Acquisition Group Length\0" /* 1817, 0x0054, 0x0000 */
4726 "Energy Window Vector\0" /* 1818, 0x0054, 0x0010 */
4727 "Number of Energy Windows\0" /* 1819, 0x0054, 0x0011 */
4728 "Energy Window Information Sequence\0" /* 1820, 0x0054, 0x0012 */
4729 "Energy Window Range Sequence\0" /* 1821, 0x0054, 0x0013 */
4730 "Energy Window Lower Limit\0" /* 1822, 0x0054, 0x0014 */
4731 "Energy Window Upper Limit\0" /* 1823, 0x0054, 0x0015 */
4732 "Radiopharmaceutical Information Sequence\0" /* 1824, 0x0054, 0x0016 */
4733 "Residual Syringe Counts\0" /* 1825, 0x0054, 0x0017 */
4734 "Energy Window Name\0" /* 1826, 0x0054, 0x0018 */
4735 "Detector Vector\0" /* 1827, 0x0054, 0x0020 */
4736 "Number of Detectors\0" /* 1828, 0x0054, 0x0021 */
4737 "Detector Information Sequence\0" /* 1829, 0x0054, 0x0022 */
4738 "Phase Vector\0" /* 1830, 0x0054, 0x0030 */
4739 "Number of Phases\0" /* 1831, 0x0054, 0x0031 */
4740 "Phase Information Sequence\0" /* 1832, 0x0054, 0x0032 */
4741 "Number of Frames In Phase\0" /* 1833, 0x0054, 0x0033 */
4742 "Phase Delay\0" /* 1834, 0x0054, 0x0036 */
4743 "Pause Between Frames\0" /* 1835, 0x0054, 0x0038 */
4744 "Rotation Vector\0" /* 1836, 0x0054, 0x0050 */
4745 "Number of Rotations\0" /* 1837, 0x0054, 0x0051 */
4746 "Rotation Information Sequence\0" /* 1838, 0x0054, 0x0052 */
4747 "Number of Frames In Rotation\0" /* 1839, 0x0054, 0x0053 */
4748 "R-R Interval Vector\0" /* 1840, 0x0054, 0x0060 */
4749 "Number of R-R Intervals\0" /* 1841, 0x0054, 0x0061 */
4750 "Gated Information Sequence\0" /* 1842, 0x0054, 0x0062 */
4751 "Data Information Sequence\0" /* 1843, 0x0054, 0x0063 */
4752 "Time Slot Vector\0" /* 1844, 0x0054, 0x0070 */
4753 "Number of Time Slots\0" /* 1845, 0x0054, 0x0071 */
4754 "Time Slot Information Sequence\0" /* 1846, 0x0054, 0x0072 */
4755 "Time Slot Time\0" /* 1847, 0x0054, 0x0073 */
4756 "Slice Vector\0" /* 1848, 0x0054, 0x0080 */
4757 "Number of Slices\0" /* 1849, 0x0054, 0x0081 */
4758 "Angular View Vector\0" /* 1850, 0x0054, 0x0090 */
4759 "Time Slice Vector\0" /* 1851, 0x0054, 0x0100 */
4760 "Number Of Time Slices\0" /* 1852, 0x0054, 0x0101 */
4761 "Start Angle\0" /* 1853, 0x0054, 0x0200 */
4762 "Type of Detector Motion\0" /* 1854, 0x0054, 0x0202 */
4763 "Trigger Vector\0" /* 1855, 0x0054, 0x0210 */
4764 "Number of Triggers in Phase\0" /* 1856, 0x0054, 0x0211 */
4765 "View Code Sequence\0" /* 1857, 0x0054, 0x0220 */
4766 "View Modifier Code Sequence\0" /* 1858, 0x0054, 0x0222 */
4767 "Radionuclide Code Sequence\0" /* 1859, 0x0054, 0x0300 */
4768 "Radiopharmaceutical Route Code Sequence\0" /* 1860, 0x0054, 0x0302 */
4769 "Radiopharmaceutical Code Sequence\0" /* 1861, 0x0054, 0x0304 */
4770 "Calibration Data Sequence\0" /* 1862, 0x0054, 0x0306 */
4771 "Energy Window Number\0" /* 1863, 0x0054, 0x0308 */
4772 "Image ID\0" /* 1864, 0x0054, 0x0400 */
4773 "Patient Orientation Code Sequence\0" /* 1865, 0x0054, 0x0410 */
4774 "Patient Orientation Modifier Code Sequence\0" /* 1866, 0x0054, 0x0412 */
4775 "Patient Gantry Relationship Code Sequence\0" /* 1867, 0x0054, 0x0414 */
4776 "Positron Emission Tomography Series Type\0" /* 1868, 0x0054, 0x1000 */
4777 "Positron Emission Tomography Units\0" /* 1869, 0x0054, 0x1001 */
4778 "Counts Source\0" /* 1870, 0x0054, 0x1002 */
4779 "Reprojection Method\0" /* 1871, 0x0054, 0x1004 */
4780 "Randoms Correction Method\0" /* 1872, 0x0054, 0x1100 */
4781 "Attenuation Correction Method\0" /* 1873, 0x0054, 0x1101 */
4782 "Decay Correction\0" /* 1874, 0x0054, 0x1102 */
4783 "Reconstruction Method\0" /* 1875, 0x0054, 0x1103 */
4784 "Detector Lines of Response Used\0" /* 1876, 0x0054, 0x1104 */
4785 "Scatter Correction Method\0" /* 1877, 0x0054, 0x1105 */
4786 "Axial Acceptance\0" /* 1878, 0x0054, 0x1200 */
4787 "Axial Mash\0" /* 1879, 0x0054, 0x1201 */
4788 "Transverse Mash\0" /* 1880, 0x0054, 0x1202 */
4789 "Detector Element Size\0" /* 1881, 0x0054, 0x1203 */
4790 "Coincidence Window Width\0" /* 1882, 0x0054, 0x1210 */
4791 "Secondary Counts Type\0" /* 1883, 0x0054, 0x1220 */
4792 "Frame Reference Time\0" /* 1884, 0x0054, 0x1300 */
4793 "Primary Prompts Counts Accumulated\0" /* 1885, 0x0054, 0x1310 */
4794 "Secondary Counts Accumulated\0" /* 1886, 0x0054, 0x1311 */
4795 "Slice Sensitivity Factor\0" /* 1887, 0x0054, 0x1320 */
4796 "Decay Factor\0" /* 1888, 0x0054, 0x1321 */
4797 "Dose Calibration Factor\0" /* 1889, 0x0054, 0x1322 */
4798 "Scatter Fraction Factor\0" /* 1890, 0x0054, 0x1323 */
4799 "Dead Time Factor\0" /* 1891, 0x0054, 0x1324 */
4800 "Image Index\0" /* 1892, 0x0054, 0x1330 */
4801 "Counts Included\0" /* 1893, 0x0054, 0x1400 */
4802 "Dead Time Correction Flag\0" /* 1894, 0x0054, 0x1401 */
4803 "Current Ward\0" /* 1895, 0x0055, 0x0046 */
4804 "?\0" /* 1896, 0x0058, 0x0000 */
4805 "Histogram Sequence\0" /* 1897, 0x0060, 0x3000 */
4806 "Histogram Number of Bins\0" /* 1898, 0x0060, 0x3002 */
4807 "Histogram First Bin Value\0" /* 1899, 0x0060, 0x3004 */
4808 "Histogram Last Bin Value\0" /* 1900, 0x0060, 0x3006 */
4809 "Histogram Bin Width\0" /* 1901, 0x0060, 0x3008 */
4810 "Histogram Explanation\0" /* 1902, 0x0060, 0x3010 */
4811 "Histogram Data\0" /* 1903, 0x0060, 0x3020 */
4812 "Graphic Annotation Sequence\0" /* 1904, 0x0070, 0x0001 */
4813 "Graphic Layer\0" /* 1905, 0x0070, 0x0002 */
4814 "Bounding Box Annotation Units\0" /* 1906, 0x0070, 0x0003 */
4815 "Anchor Point Annotation Units\0" /* 1907, 0x0070, 0x0004 */
4816 "Graphic Annotation Units\0" /* 1908, 0x0070, 0x0005 */
4817 "Unformatted Text Value\0" /* 1909, 0x0070, 0x0006 */
4818 "Text Object Sequence\0" /* 1910, 0x0070, 0x0008 */
4819 "Graphic Object Sequence\0" /* 1911, 0x0070, 0x0009 */
4820 "Bounding Box TLHC\0" /* 1912, 0x0070, 0x0010 */
4821 "Bounding Box BRHC\0" /* 1913, 0x0070, 0x0011 */
4822 "Anchor Point\0" /* 1914, 0x0070, 0x0014 */
4823 "Anchor Point Visibility\0" /* 1915, 0x0070, 0x0015 */
4824 "Graphic Dimensions\0" /* 1916, 0x0070, 0x0020 */
4825 "Number Of Graphic Points\0" /* 1917, 0x0070, 0x0021 */
4826 "Graphic Data\0" /* 1918, 0x0070, 0x0022 */
4827 "Graphic Type\0" /* 1919, 0x0070, 0x0023 */
4828 "Graphic Filled\0" /* 1920, 0x0070, 0x0024 */
4829 "Image Rotation\0" /* 1921, 0x0070, 0x0040 */
4830 "Image Horizontal Flip\0" /* 1922, 0x0070, 0x0041 */
4831 "Displayed Area TLHC\0" /* 1923, 0x0070, 0x0050 */
4832 "Displayed Area BRHC\0" /* 1924, 0x0070, 0x0051 */
4833 "Graphic Layer Sequence\0" /* 1925, 0x0070, 0x0060 */
4834 "Graphic Layer Order\0" /* 1926, 0x0070, 0x0062 */
4835 "Graphic Layer Recommended Display Value\0" /* 1927, 0x0070, 0x0066 */
4836 "Graphic Layer Description\0" /* 1928, 0x0070, 0x0068 */
4837 "Presentation Label\0" /* 1929, 0x0070, 0x0080 */
4838 "Presentation Description\0" /* 1930, 0x0070, 0x0081 */
4839 "Presentation Creation Date\0" /* 1931, 0x0070, 0x0082 */
4840 "Presentation Creation Time\0" /* 1932, 0x0070, 0x0083 */
4841 "Presentation Creator's Name\0" /* 1933, 0x0070, 0x0084 */
4842 "Media Type\0" /* 1934, 0x0087, 0x0010 */
4843 "Media Location\0" /* 1935, 0x0087, 0x0020 */
4844 "Estimated Retrieve Time\0" /* 1936, 0x0087, 0x0050 */
4845 "Storage Group Length\0" /* 1937, 0x0088, 0x0000 */
4846 "Storage Media FileSet ID\0" /* 1938, 0x0088, 0x0130 */
4847 "Storage Media FileSet UID\0" /* 1939, 0x0088, 0x0140 */
4848 "Icon Image Sequence\0" /* 1940, 0x0088, 0x0200 */
4849 "Topic Title\0" /* 1941, 0x0088, 0x0904 */
4850 "Topic Subject\0" /* 1942, 0x0088, 0x0906 */
4851 "Topic Author\0" /* 1943, 0x0088, 0x0910 */
4852 "Topic Key Words\0" /* 1944, 0x0088, 0x0912 */
4853 "Examination Folder ID\0" /* 1945, 0x0095, 0x0001 */
4854 "Folder Reported Status\0" /* 1946, 0x0095, 0x0004 */
4855 "Folder Reporting Radiologist\0" /* 1947, 0x0095, 0x0005 */
4856 "SIENET ISA PLA\0" /* 1948, 0x0095, 0x0007 */
4857 "Data Object Attributes\0" /* 1949, 0x0099, 0x0002 */
4858 "Data Dictionary Version\0" /* 1950, 0x00e1, 0x0001 */
4859 "?\0" /* 1951, 0x00e1, 0x0014 */
4860 "?\0" /* 1952, 0x00e1, 0x0022 */
4861 "?\0" /* 1953, 0x00e1, 0x0023 */
4862 "?\0" /* 1954, 0x00e1, 0x0024 */
4863 "?\0" /* 1955, 0x00e1, 0x0025 */
4864 "Offset From CT MR Images\0" /* 1956, 0x00e1, 0x0040 */
4865 "RIS Key\0" /* 1957, 0x0193, 0x0002 */
4866 "RIS Worklist IMGEF\0" /* 1958, 0x0307, 0x0001 */
4867 "RIS Report IMGEF\0" /* 1959, 0x0309, 0x0001 */
4868 "Implementation Version\0" /* 1960, 0x0601, 0x0000 */
4869 "Relative Table Position\0" /* 1961, 0x0601, 0x0020 */
4870 "Relative Table Height\0" /* 1962, 0x0601, 0x0021 */
4871 "Surview Direction\0" /* 1963, 0x0601, 0x0030 */
4872 "Surview Length\0" /* 1964, 0x0601, 0x0031 */
4873 "Image View Type\0" /* 1965, 0x0601, 0x0050 */
4874 "Batch Number\0" /* 1966, 0x0601, 0x0070 */
4875 "Batch Size\0" /* 1967, 0x0601, 0x0071 */
4876 "Batch Slice Number\0" /* 1968, 0x0601, 0x0072 */
4877 "?\0" /* 1969, 0x1000, 0x0000 */
4878 "Run Length Triplet\0" /* 1970, 0x1000, 0x0001 */
4879 "Huffman Table Size\0" /* 1971, 0x1000, 0x0002 */
4880 "Huffman Table Triplet\0" /* 1972, 0x1000, 0x0003 */
4881 "Shift Table Size\0" /* 1973, 0x1000, 0x0004 */
4882 "Shift Table Triplet\0" /* 1974, 0x1000, 0x0005 */
4883 "?\0" /* 1975, 0x1010, 0x0000 */
4884 "?\0" /* 1976, 0x1369, 0x0000 */
4885 "Film Session Group Length\0" /* 1977, 0x2000, 0x0000 */
4886 "Number of Copies\0" /* 1978, 0x2000, 0x0010 */
4887 "Print Priority\0" /* 1979, 0x2000, 0x0020 */
4888 "Medium Type\0" /* 1980, 0x2000, 0x0030 */
4889 "Film Destination\0" /* 1981, 0x2000, 0x0040 */
4890 "Film Session Label\0" /* 1982, 0x2000, 0x0050 */
4891 "Memory Allocation\0" /* 1983, 0x2000, 0x0060 */
4892 "Referenced Film Box Sequence\0" /* 1984, 0x2000, 0x0500 */
4893 "Film Box Group Length\0" /* 1985, 0x2010, 0x0000 */
4894 "Image Display Format\0" /* 1986, 0x2010, 0x0010 */
4895 "Annotation Display Format ID\0" /* 1987, 0x2010, 0x0030 */
4896 "Film Orientation\0" /* 1988, 0x2010, 0x0040 */
4897 "Film Size ID\0" /* 1989, 0x2010, 0x0050 */
4898 "Magnification Type\0" /* 1990, 0x2010, 0x0060 */
4899 "Smoothing Type\0" /* 1991, 0x2010, 0x0080 */
4900 "Border Density\0" /* 1992, 0x2010, 0x0100 */
4901 "Empty Image Density\0" /* 1993, 0x2010, 0x0110 */
4902 "Min Density\0" /* 1994, 0x2010, 0x0120 */
4903 "Max Density\0" /* 1995, 0x2010, 0x0130 */
4904 "Trim\0" /* 1996, 0x2010, 0x0140 */
4905 "Configuration Information\0" /* 1997, 0x2010, 0x0150 */
4906 "Referenced Film Session Sequence\0" /* 1998, 0x2010, 0x0500 */
4907 "Referenced Image Box Sequence\0" /* 1999, 0x2010, 0x0510 */
4908 "Referenced Basic Annotation Box Sequence\0" /* 2000, 0x2010, 0x0520 */
4909 "Image Box Group Length\0" /* 2001, 0x2020, 0x0000 */
4910 "Image Box Position\0" /* 2002, 0x2020, 0x0010 */
4911 "Polarity\0" /* 2003, 0x2020, 0x0020 */
4912 "Requested Image Size\0" /* 2004, 0x2020, 0x0030 */
4913 "Preformatted Grayscale Image Sequence\0" /* 2005, 0x2020, 0x0110 */
4914 "Preformatted Color Image Sequence\0" /* 2006, 0x2020, 0x0111 */
4915 "Referenced Image Overlay Box Sequence\0" /* 2007, 0x2020, 0x0130 */
4916 "Referenced VOI LUT Box Sequence\0" /* 2008, 0x2020, 0x0140 */
4917 "Annotation Group Length\0" /* 2009, 0x2030, 0x0000 */
4918 "Annotation Position\0" /* 2010, 0x2030, 0x0010 */
4919 "Text String\0" /* 2011, 0x2030, 0x0020 */
4920 "Overlay Box Group Length\0" /* 2012, 0x2040, 0x0000 */
4921 "Referenced Overlay Plane Sequence\0" /* 2013, 0x2040, 0x0010 */
4922 "Referenced Overlay Plane Groups\0" /* 2014, 0x2040, 0x0011 */
4923 "Overlay Magnification Type\0" /* 2015, 0x2040, 0x0060 */
4924 "Overlay Smoothing Type\0" /* 2016, 0x2040, 0x0070 */
4925 "Overlay Foreground Density\0" /* 2017, 0x2040, 0x0080 */
4926 "Overlay Mode\0" /* 2018, 0x2040, 0x0090 */
4927 "Threshold Density\0" /* 2019, 0x2040, 0x0100 */
4928 "Referenced Overlay Image Box Sequence\0" /* 2020, 0x2040, 0x0500 */
4929 "Presentation LUT Sequence\0" /* 2021, 0x2050, 0x0010 */
4930 "Presentation LUT Shape\0" /* 2022, 0x2050, 0x0020 */
4931 "Print Job Group Length\0" /* 2023, 0x2100, 0x0000 */
4932 "Execution Status\0" /* 2024, 0x2100, 0x0020 */
4933 "Execution Status Info\0" /* 2025, 0x2100, 0x0030 */
4934 "Creation Date\0" /* 2026, 0x2100, 0x0040 */
4935 "Creation Time\0" /* 2027, 0x2100, 0x0050 */
4936 "Originator\0" /* 2028, 0x2100, 0x0070 */
4937 "Referenced Print Job Sequence\0" /* 2029, 0x2100, 0x0500 */
4938 "Printer Group Length\0" /* 2030, 0x2110, 0x0000 */
4939 "Printer Status\0" /* 2031, 0x2110, 0x0010 */
4940 "Printer Status Info\0" /* 2032, 0x2110, 0x0020 */
4941 "Printer Name\0" /* 2033, 0x2110, 0x0030 */
4942 "Print Queue ID\0" /* 2034, 0x2110, 0x0099 */
4943 "RT Image Label\0" /* 2035, 0x3002, 0x0002 */
4944 "RT Image Name\0" /* 2036, 0x3002, 0x0003 */
4945 "RT Image Description\0" /* 2037, 0x3002, 0x0004 */
4946 "Reported Values Origin\0" /* 2038, 0x3002, 0x000a */
4947 "RT Image Plane\0" /* 2039, 0x3002, 0x000c */
4948 "X-Ray Image Receptor Angle\0" /* 2040, 0x3002, 0x000e */
4949 "RTImageOrientation\0" /* 2041, 0x3002, 0x0010 */
4950 "Image Plane Pixel Spacing\0" /* 2042, 0x3002, 0x0011 */
4951 "RT Image Position\0" /* 2043, 0x3002, 0x0012 */
4952 "Radiation Machine Name\0" /* 2044, 0x3002, 0x0020 */
4953 "Radiation Machine SAD\0" /* 2045, 0x3002, 0x0022 */
4954 "Radiation Machine SSD\0" /* 2046, 0x3002, 0x0024 */
4955 "RT Image SID\0" /* 2047, 0x3002, 0x0026 */
4956 "Source to Reference Object Distance\0" /* 2048, 0x3002, 0x0028 */
4957 "Fraction Number\0" /* 2049, 0x3002, 0x0029 */
4958 "Exposure Sequence\0" /* 2050, 0x3002, 0x0030 */
4959 "Meterset Exposure\0" /* 2051, 0x3002, 0x0032 */
4960 "DVH Type\0" /* 2052, 0x3004, 0x0001 */
4961 "Dose Units\0" /* 2053, 0x3004, 0x0002 */
4962 "Dose Type\0" /* 2054, 0x3004, 0x0004 */
4963 "Dose Comment\0" /* 2055, 0x3004, 0x0006 */
4964 "Normalization Point\0" /* 2056, 0x3004, 0x0008 */
4965 "Dose Summation Type\0" /* 2057, 0x3004, 0x000a */
4966 "GridFrame Offset Vector\0" /* 2058, 0x3004, 0x000c */
4967 "Dose Grid Scaling\0" /* 2059, 0x3004, 0x000e */
4968 "RT Dose ROI Sequence\0" /* 2060, 0x3004, 0x0010 */
4969 "Dose Value\0" /* 2061, 0x3004, 0x0012 */
4970 "DVH Normalization Point\0" /* 2062, 0x3004, 0x0040 */
4971 "DVH Normalization Dose Value\0" /* 2063, 0x3004, 0x0042 */
4972 "DVH Sequence\0" /* 2064, 0x3004, 0x0050 */
4973 "DVH Dose Scaling\0" /* 2065, 0x3004, 0x0052 */
4974 "DVH Volume Units\0" /* 2066, 0x3004, 0x0054 */
4975 "DVH Number of Bins\0" /* 2067, 0x3004, 0x0056 */
4976 "DVH Data\0" /* 2068, 0x3004, 0x0058 */
4977 "DVH Referenced ROI Sequence\0" /* 2069, 0x3004, 0x0060 */
4978 "DVH ROI Contribution Type\0" /* 2070, 0x3004, 0x0062 */
4979 "DVH Minimum Dose\0" /* 2071, 0x3004, 0x0070 */
4980 "DVH Maximum Dose\0" /* 2072, 0x3004, 0x0072 */
4981 "DVH Mean Dose\0" /* 2073, 0x3004, 0x0074 */
4982 "Structure Set Label\0" /* 2074, 0x3006, 0x0002 */
4983 "Structure Set Name\0" /* 2075, 0x3006, 0x0004 */
4984 "Structure Set Description\0" /* 2076, 0x3006, 0x0006 */
4985 "Structure Set Date\0" /* 2077, 0x3006, 0x0008 */
4986 "Structure Set Time\0" /* 2078, 0x3006, 0x0009 */
4987 "Referenced Frame of Reference Sequence\0" /* 2079, 0x3006, 0x0010 */
4988 "RT Referenced Study Sequence\0" /* 2080, 0x3006, 0x0012 */
4989 "RT Referenced Series Sequence\0" /* 2081, 0x3006, 0x0014 */
4990 "Contour Image Sequence\0" /* 2082, 0x3006, 0x0016 */
4991 "Structure Set ROI Sequence\0" /* 2083, 0x3006, 0x0020 */
4992 "ROI Number\0" /* 2084, 0x3006, 0x0022 */
4993 "Referenced Frame of Reference UID\0" /* 2085, 0x3006, 0x0024 */
4994 "ROI Name\0" /* 2086, 0x3006, 0x0026 */
4995 "ROI Description\0" /* 2087, 0x3006, 0x0028 */
4996 "ROI Display Color\0" /* 2088, 0x3006, 0x002a */
4997 "ROI Volume\0" /* 2089, 0x3006, 0x002c */
4998 "RT Related ROI Sequence\0" /* 2090, 0x3006, 0x0030 */
4999 "RT ROI Relationship\0" /* 2091, 0x3006, 0x0033 */
5000 "ROI Generation Algorithm\0" /* 2092, 0x3006, 0x0036 */
5001 "ROI Generation Description\0" /* 2093, 0x3006, 0x0038 */
5002 "ROI Contour Sequence\0" /* 2094, 0x3006, 0x0039 */
5003 "Contour Sequence\0" /* 2095, 0x3006, 0x0040 */
5004 "Contour Geometric Type\0" /* 2096, 0x3006, 0x0042 */
5005 "Contour SlabT hickness\0" /* 2097, 0x3006, 0x0044 */
5006 "Contour Offset Vector\0" /* 2098, 0x3006, 0x0045 */
5007 "Number of Contour Points\0" /* 2099, 0x3006, 0x0046 */
5008 "Contour Data\0" /* 2100, 0x3006, 0x0050 */
5009 "RT ROI Observations Sequence\0" /* 2101, 0x3006, 0x0080 */
5010 "Observation Number\0" /* 2102, 0x3006, 0x0082 */
5011 "Referenced ROI Number\0" /* 2103, 0x3006, 0x0084 */
5012 "ROI Observation Label\0" /* 2104, 0x3006, 0x0085 */
5013 "RT ROI Identification Code Sequence\0" /* 2105, 0x3006, 0x0086 */
5014 "ROI Observation Description\0" /* 2106, 0x3006, 0x0088 */
5015 "Related RT ROI Observations Sequence\0" /* 2107, 0x3006, 0x00a0 */
5016 "RT ROI Interpreted Type\0" /* 2108, 0x3006, 0x00a4 */
5017 "ROI Interpreter\0" /* 2109, 0x3006, 0x00a6 */
5018 "ROI Physical Properties Sequence\0" /* 2110, 0x3006, 0x00b0 */
5019 "ROI Physical Property\0" /* 2111, 0x3006, 0x00b2 */
5020 "ROI Physical Property Value\0" /* 2112, 0x3006, 0x00b4 */
5021 "Frame of Reference Relationship Sequence\0" /* 2113, 0x3006, 0x00c0 */
5022 "Related Frame of Reference UID\0" /* 2114, 0x3006, 0x00c2 */
5023 "Frame of Reference Transformation Type\0" /* 2115, 0x3006, 0x00c4 */
5024 "Frame of Reference Transformation Matrix\0" /* 2116, 0x3006, 0x00c6 */
5025 "Frame of Reference Transformation Comment\0" /* 2117, 0x3006, 0x00c8 */
5026 "RT Plan Label\0" /* 2118, 0x300a, 0x0002 */
5027 "RT Plan Name\0" /* 2119, 0x300a, 0x0003 */
5028 "RT Plan Description\0" /* 2120, 0x300a, 0x0004 */
5029 "RT Plan Date\0" /* 2121, 0x300a, 0x0006 */
5030 "RT Plan Time\0" /* 2122, 0x300a, 0x0007 */
5031 "Treatment Protocols\0" /* 2123, 0x300a, 0x0009 */
5032 "Treatment Intent\0" /* 2124, 0x300a, 0x000a */
5033 "Treatment Sites\0" /* 2125, 0x300a, 0x000b */
5034 "RT Plan Geometry\0" /* 2126, 0x300a, 0x000c */
5035 "Prescription Description\0" /* 2127, 0x300a, 0x000e */
5036 "Dose ReferenceSequence\0" /* 2128, 0x300a, 0x0010 */
5037 "Dose ReferenceNumber\0" /* 2129, 0x300a, 0x0012 */
5038 "Dose Reference Structure Type\0" /* 2130, 0x300a, 0x0014 */
5039 "Dose ReferenceDescription\0" /* 2131, 0x300a, 0x0016 */
5040 "Dose Reference Point Coordinates\0" /* 2132, 0x300a, 0x0018 */
5041 "Nominal Prior Dose\0" /* 2133, 0x300a, 0x001a */
5042 "Dose Reference Type\0" /* 2134, 0x300a, 0x0020 */
5043 "Constraint Weight\0" /* 2135, 0x300a, 0x0021 */
5044 "Delivery Warning Dose\0" /* 2136, 0x300a, 0x0022 */
5045 "Delivery Maximum Dose\0" /* 2137, 0x300a, 0x0023 */
5046 "Target Minimum Dose\0" /* 2138, 0x300a, 0x0025 */
5047 "Target Prescription Dose\0" /* 2139, 0x300a, 0x0026 */
5048 "Target Maximum Dose\0" /* 2140, 0x300a, 0x0027 */
5049 "Target Underdose Volume Fraction\0" /* 2141, 0x300a, 0x0028 */
5050 "Organ at Risk Full-volume Dose\0" /* 2142, 0x300a, 0x002a */
5051 "Organ at Risk Limit Dose\0" /* 2143, 0x300a, 0x002b */
5052 "Organ at Risk Maximum Dose\0" /* 2144, 0x300a, 0x002c */
5053 "Organ at Risk Overdose Volume Fraction\0" /* 2145, 0x300a, 0x002d */
5054 "Tolerance Table Sequence\0" /* 2146, 0x300a, 0x0040 */
5055 "Tolerance Table Number\0" /* 2147, 0x300a, 0x0042 */
5056 "Tolerance Table Label\0" /* 2148, 0x300a, 0x0043 */
5057 "Gantry Angle Tolerance\0" /* 2149, 0x300a, 0x0044 */
5058 "Beam Limiting Device Angle Tolerance\0" /* 2150, 0x300a, 0x0046 */
5059 "Beam Limiting Device Tolerance Sequence\0" /* 2151, 0x300a, 0x0048 */
5060 "Beam Limiting Device Position Tolerance\0" /* 2152, 0x300a, 0x004a */
5061 "Patient Support Angle Tolerance\0" /* 2153, 0x300a, 0x004c */
5062 "Table Top Eccentric Angle Tolerance\0" /* 2154, 0x300a, 0x004e */
5063 "Table Top Vertical Position Tolerance\0" /* 2155, 0x300a, 0x0051 */
5064 "Table Top Longitudinal Position Tolerance\0" /* 2156, 0x300a, 0x0052 */
5065 "Table Top Lateral Position Tolerance\0" /* 2157, 0x300a, 0x0053 */
5066 "RT Plan Relationship\0" /* 2158, 0x300a, 0x0055 */
5067 "Fraction Group Sequence\0" /* 2159, 0x300a, 0x0070 */
5068 "Fraction Group Number\0" /* 2160, 0x300a, 0x0071 */
5069 "Number of Fractions Planned\0" /* 2161, 0x300a, 0x0078 */
5070 "Number of Fractions Per Day\0" /* 2162, 0x300a, 0x0079 */
5071 "Repeat Fraction Cycle Length\0" /* 2163, 0x300a, 0x007a */
5072 "Fraction Pattern\0" /* 2164, 0x300a, 0x007b */
5073 "Number of Beams\0" /* 2165, 0x300a, 0x0080 */
5074 "Beam Dose Specification Point\0" /* 2166, 0x300a, 0x0082 */
5075 "Beam Dose\0" /* 2167, 0x300a, 0x0084 */
5076 "Beam Meterset\0" /* 2168, 0x300a, 0x0086 */
5077 "Number of Brachy Application Setups\0" /* 2169, 0x300a, 0x00a0 */
5078 "Brachy Application Setup Dose Specification Point\0" /* 2170, 0x300a, 0x00a2 */
5079 "Brachy Application Setup Dose\0" /* 2171, 0x300a, 0x00a4 */
5080 "Beam Sequence\0" /* 2172, 0x300a, 0x00b0 */
5081 "Treatment Machine Name \0" /* 2173, 0x300a, 0x00b2 */
5082 "Primary Dosimeter Unit\0" /* 2174, 0x300a, 0x00b3 */
5083 "Source-Axis Distance\0" /* 2175, 0x300a, 0x00b4 */
5084 "Beam Limiting Device Sequence\0" /* 2176, 0x300a, 0x00b6 */
5085 "RT Beam Limiting Device Type\0" /* 2177, 0x300a, 0x00b8 */
5086 "Source to Beam Limiting Device Distance\0" /* 2178, 0x300a, 0x00ba */
5087 "Number of Leaf/Jaw Pairs\0" /* 2179, 0x300a, 0x00bc */
5088 "Leaf Position Boundaries\0" /* 2180, 0x300a, 0x00be */
5089 "Beam Number\0" /* 2181, 0x300a, 0x00c0 */
5090 "Beam Name\0" /* 2182, 0x300a, 0x00c2 */
5091 "Beam Description\0" /* 2183, 0x300a, 0x00c3 */
5092 "Beam Type\0" /* 2184, 0x300a, 0x00c4 */
5093 "Radiation Type\0" /* 2185, 0x300a, 0x00c6 */
5094 "Reference Image Number\0" /* 2186, 0x300a, 0x00c8 */
5095 "Planned Verification Image Sequence\0" /* 2187, 0x300a, 0x00ca */
5096 "Imaging Device Specific Acquisition Parameters\0" /* 2188, 0x300a, 0x00cc */
5097 "Treatment Delivery Type\0" /* 2189, 0x300a, 0x00ce */
5098 "Number of Wedges\0" /* 2190, 0x300a, 0x00d0 */
5099 "Wedge Sequence\0" /* 2191, 0x300a, 0x00d1 */
5100 "Wedge Number\0" /* 2192, 0x300a, 0x00d2 */
5101 "Wedge Type\0" /* 2193, 0x300a, 0x00d3 */
5102 "Wedge ID\0" /* 2194, 0x300a, 0x00d4 */
5103 "Wedge Angle\0" /* 2195, 0x300a, 0x00d5 */
5104 "Wedge Factor\0" /* 2196, 0x300a, 0x00d6 */
5105 "Wedge Orientation\0" /* 2197, 0x300a, 0x00d8 */
5106 "Source to Wedge Tray Distance\0" /* 2198, 0x300a, 0x00da */
5107 "Number of Compensators\0" /* 2199, 0x300a, 0x00e0 */
5108 "Material ID\0" /* 2200, 0x300a, 0x00e1 */
5109 "Total Compensator Tray Factor\0" /* 2201, 0x300a, 0x00e2 */
5110 "Compensator Sequence\0" /* 2202, 0x300a, 0x00e3 */
5111 "Compensator Number\0" /* 2203, 0x300a, 0x00e4 */
5112 "Compensator ID\0" /* 2204, 0x300a, 0x00e5 */
5113 "Source to Compensator Tray Distance\0" /* 2205, 0x300a, 0x00e6 */
5114 "Compensator Rows\0" /* 2206, 0x300a, 0x00e7 */
5115 "Compensator Columns\0" /* 2207, 0x300a, 0x00e8 */
5116 "Compensator Pixel Spacing\0" /* 2208, 0x300a, 0x00e9 */
5117 "Compensator Position\0" /* 2209, 0x300a, 0x00ea */
5118 "Compensator Transmission Data\0" /* 2210, 0x300a, 0x00eb */
5119 "Compensator Thickness Data\0" /* 2211, 0x300a, 0x00ec */
5120 "Number of Boli\0" /* 2212, 0x300a, 0x00ed */
5121 "Number of Blocks\0" /* 2213, 0x300a, 0x00f0 */
5122 "Total Block Tray Factor\0" /* 2214, 0x300a, 0x00f2 */
5123 "Block Sequence\0" /* 2215, 0x300a, 0x00f4 */
5124 "Block Tray ID\0" /* 2216, 0x300a, 0x00f5 */
5125 "Source to Block Tray Distance\0" /* 2217, 0x300a, 0x00f6 */
5126 "Block Type\0" /* 2218, 0x300a, 0x00f8 */
5127 "Block Divergence\0" /* 2219, 0x300a, 0x00fa */
5128 "Block Number\0" /* 2220, 0x300a, 0x00fc */
5129 "Block Name\0" /* 2221, 0x300a, 0x00fe */
5130 "Block Thickness\0" /* 2222, 0x300a, 0x0100 */
5131 "Block Transmission\0" /* 2223, 0x300a, 0x0102 */
5132 "Block Number of Points\0" /* 2224, 0x300a, 0x0104 */
5133 "Block Data\0" /* 2225, 0x300a, 0x0106 */
5134 "Applicator Sequence\0" /* 2226, 0x300a, 0x0107 */
5135 "Applicator ID\0" /* 2227, 0x300a, 0x0108 */
5136 "Applicator Type\0" /* 2228, 0x300a, 0x0109 */
5137 "Applicator Description\0" /* 2229, 0x300a, 0x010a */
5138 "Cumulative Dose Reference Coefficient\0" /* 2230, 0x300a, 0x010c */
5139 "Final Cumulative Meterset Weight\0" /* 2231, 0x300a, 0x010e */
5140 "Number of Control Points\0" /* 2232, 0x300a, 0x0110 */
5141 "Control Point Sequence\0" /* 2233, 0x300a, 0x0111 */
5142 "Control Point Index\0" /* 2234, 0x300a, 0x0112 */
5143 "Nominal Beam Energy\0" /* 2235, 0x300a, 0x0114 */
5144 "Dose Rate Set\0" /* 2236, 0x300a, 0x0115 */
5145 "Wedge Position Sequence\0" /* 2237, 0x300a, 0x0116 */
5146 "Wedge Position\0" /* 2238, 0x300a, 0x0118 */
5147 "Beam Limiting Device Position Sequence\0" /* 2239, 0x300a, 0x011a */
5148 "Leaf Jaw Positions\0" /* 2240, 0x300a, 0x011c */
5149 "Gantry Angle\0" /* 2241, 0x300a, 0x011e */
5150 "Gantry Rotation Direction\0" /* 2242, 0x300a, 0x011f */
5151 "Beam Limiting Device Angle\0" /* 2243, 0x300a, 0x0120 */
5152 "Beam Limiting Device Rotation Direction\0" /* 2244, 0x300a, 0x0121 */
5153 "Patient Support Angle\0" /* 2245, 0x300a, 0x0122 */
5154 "Patient Support Rotation Direction\0" /* 2246, 0x300a, 0x0123 */
5155 "Table Top Eccentric Axis Distance\0" /* 2247, 0x300a, 0x0124 */
5156 "Table Top Eccentric Angle\0" /* 2248, 0x300a, 0x0125 */
5157 "Table Top Eccentric Rotation Direction\0" /* 2249, 0x300a, 0x0126 */
5158 "Table Top Vertical Position\0" /* 2250, 0x300a, 0x0128 */
5159 "Table Top Longitudinal Position\0" /* 2251, 0x300a, 0x0129 */
5160 "Table Top Lateral Position\0" /* 2252, 0x300a, 0x012a */
5161 "Isocenter Position\0" /* 2253, 0x300a, 0x012c */
5162 "Surface Entry Point\0" /* 2254, 0x300a, 0x012e */
5163 "Source to Surface Distance\0" /* 2255, 0x300a, 0x0130 */
5164 "Cumulative Meterset Weight\0" /* 2256, 0x300a, 0x0134 */
5165 "Patient Setup Sequence\0" /* 2257, 0x300a, 0x0180 */
5166 "Patient Setup Number\0" /* 2258, 0x300a, 0x0182 */
5167 "Patient Additional Position\0" /* 2259, 0x300a, 0x0184 */
5168 "Fixation Device Sequence\0" /* 2260, 0x300a, 0x0190 */
5169 "Fixation Device Type\0" /* 2261, 0x300a, 0x0192 */
5170 "Fixation Device Label\0" /* 2262, 0x300a, 0x0194 */
5171 "Fixation Device Description\0" /* 2263, 0x300a, 0x0196 */
5172 "Fixation Device Position\0" /* 2264, 0x300a, 0x0198 */
5173 "Shielding Device Sequence\0" /* 2265, 0x300a, 0x01a0 */
5174 "Shielding Device Type\0" /* 2266, 0x300a, 0x01a2 */
5175 "Shielding Device Label\0" /* 2267, 0x300a, 0x01a4 */
5176 "Shielding Device Description\0" /* 2268, 0x300a, 0x01a6 */
5177 "Shielding Device Position\0" /* 2269, 0x300a, 0x01a8 */
5178 "Setup Technique\0" /* 2270, 0x300a, 0x01b0 */
5179 "Setup TechniqueDescription\0" /* 2271, 0x300a, 0x01b2 */
5180 "Setup Device Sequence\0" /* 2272, 0x300a, 0x01b4 */
5181 "Setup Device Type\0" /* 2273, 0x300a, 0x01b6 */
5182 "Setup Device Label\0" /* 2274, 0x300a, 0x01b8 */
5183 "Setup Device Description\0" /* 2275, 0x300a, 0x01ba */
5184 "Setup Device Parameter\0" /* 2276, 0x300a, 0x01bc */
5185 "Setup ReferenceDescription\0" /* 2277, 0x300a, 0x01d0 */
5186 "Table Top Vertical Setup Displacement\0" /* 2278, 0x300a, 0x01d2 */
5187 "Table Top Longitudinal Setup Displacement\0" /* 2279, 0x300a, 0x01d4 */
5188 "Table Top Lateral Setup Displacement\0" /* 2280, 0x300a, 0x01d6 */
5189 "Brachy Treatment Technique\0" /* 2281, 0x300a, 0x0200 */
5190 "Brachy Treatment Type\0" /* 2282, 0x300a, 0x0202 */
5191 "Treatment Machine Sequence\0" /* 2283, 0x300a, 0x0206 */
5192 "Source Sequence\0" /* 2284, 0x300a, 0x0210 */
5193 "Source Number\0" /* 2285, 0x300a, 0x0212 */
5194 "Source Type\0" /* 2286, 0x300a, 0x0214 */
5195 "Source Manufacturer\0" /* 2287, 0x300a, 0x0216 */
5196 "Active Source Diameter\0" /* 2288, 0x300a, 0x0218 */
5197 "Active Source Length\0" /* 2289, 0x300a, 0x021a */
5198 "Source Encapsulation Nominal Thickness\0" /* 2290, 0x300a, 0x0222 */
5199 "Source Encapsulation Nominal Transmission\0" /* 2291, 0x300a, 0x0224 */
5200 "Source IsotopeName\0" /* 2292, 0x300a, 0x0226 */
5201 "Source Isotope Half Life\0" /* 2293, 0x300a, 0x0228 */
5202 "Reference Air Kerma Rate\0" /* 2294, 0x300a, 0x022a */
5203 "Air Kerma Rate Reference Date\0" /* 2295, 0x300a, 0x022c */
5204 "Air Kerma Rate Reference Time\0" /* 2296, 0x300a, 0x022e */
5205 "Application Setup Sequence\0" /* 2297, 0x300a, 0x0230 */
5206 "Application Setup Type\0" /* 2298, 0x300a, 0x0232 */
5207 "Application Setup Number\0" /* 2299, 0x300a, 0x0234 */
5208 "Application Setup Name\0" /* 2300, 0x300a, 0x0236 */
5209 "Application Setup Manufacturer\0" /* 2301, 0x300a, 0x0238 */
5210 "Template Number\0" /* 2302, 0x300a, 0x0240 */
5211 "Template Type\0" /* 2303, 0x300a, 0x0242 */
5212 "Template Name\0" /* 2304, 0x300a, 0x0244 */
5213 "Total Reference Air Kerma\0" /* 2305, 0x300a, 0x0250 */
5214 "Brachy Accessory Device Sequence\0" /* 2306, 0x300a, 0x0260 */
5215 "Brachy Accessory Device Number\0" /* 2307, 0x300a, 0x0262 */
5216 "Brachy Accessory Device ID\0" /* 2308, 0x300a, 0x0263 */
5217 "Brachy Accessory Device Type\0" /* 2309, 0x300a, 0x0264 */
5218 "Brachy Accessory Device Name\0" /* 2310, 0x300a, 0x0266 */
5219 "Brachy Accessory Device Nominal Thickness\0" /* 2311, 0x300a, 0x026a */
5220 "Brachy Accessory Device Nominal Transmission\0" /* 2312, 0x300a, 0x026c */
5221 "Channel Sequence\0" /* 2313, 0x300a, 0x0280 */
5222 "Channel Number\0" /* 2314, 0x300a, 0x0282 */
5223 "Channel Length\0" /* 2315, 0x300a, 0x0284 */
5224 "Channel Total Time\0" /* 2316, 0x300a, 0x0286 */
5225 "Source Movement Type\0" /* 2317, 0x300a, 0x0288 */
5226 "Number of Pulses\0" /* 2318, 0x300a, 0x028a */
5227 "Pulse Repetition Interval\0" /* 2319, 0x300a, 0x028c */
5228 "Source Applicator Number\0" /* 2320, 0x300a, 0x0290 */
5229 "Source Applicator ID\0" /* 2321, 0x300a, 0x0291 */
5230 "Source Applicator Type\0" /* 2322, 0x300a, 0x0292 */
5231 "Source Applicator Name\0" /* 2323, 0x300a, 0x0294 */
5232 "Source Applicator Length\0" /* 2324, 0x300a, 0x0296 */
5233 "Source Applicator Manufacturer\0" /* 2325, 0x300a, 0x0298 */
5234 "Source Applicator Wall Nominal Thickness\0" /* 2326, 0x300a, 0x029c */
5235 "Source Applicator Wall Nominal Transmission\0" /* 2327, 0x300a, 0x029e */
5236 "Source Applicator Step Size\0" /* 2328, 0x300a, 0x02a0 */
5237 "Transfer Tube Number\0" /* 2329, 0x300a, 0x02a2 */
5238 "Transfer Tube Length\0" /* 2330, 0x300a, 0x02a4 */
5239 "Channel Shield Sequence\0" /* 2331, 0x300a, 0x02b0 */
5240 "Channel Shield Number\0" /* 2332, 0x300a, 0x02b2 */
5241 "Channel Shield ID\0" /* 2333, 0x300a, 0x02b3 */
5242 "Channel Shield Name\0" /* 2334, 0x300a, 0x02b4 */
5243 "Channel Shield Nominal Thickness\0" /* 2335, 0x300a, 0x02b8 */
5244 "Channel Shield Nominal Transmission\0" /* 2336, 0x300a, 0x02ba */
5245 "Final Cumulative Time Weight\0" /* 2337, 0x300a, 0x02c8 */
5246 "Brachy Control Point Sequence\0" /* 2338, 0x300a, 0x02d0 */
5247 "Control Point Relative Position\0" /* 2339, 0x300a, 0x02d2 */
5248 "Control Point 3D Position\0" /* 2340, 0x300a, 0x02d4 */
5249 "Cumulative Time Weight\0" /* 2341, 0x300a, 0x02d6 */
5250 "Referenced RT Plan Sequence\0" /* 2342, 0x300c, 0x0002 */
5251 "Referenced Beam Sequence\0" /* 2343, 0x300c, 0x0004 */
5252 "Referenced Beam Number\0" /* 2344, 0x300c, 0x0006 */
5253 "Referenced Reference Image Number\0" /* 2345, 0x300c, 0x0007 */
5254 "Start Cumulative Meterset Weight\0" /* 2346, 0x300c, 0x0008 */
5255 "End Cumulative Meterset Weight\0" /* 2347, 0x300c, 0x0009 */
5256 "Referenced Brachy Application Setup Sequence\0" /* 2348, 0x300c, 0x000a */
5257 "Referenced Brachy Application Setup Number\0" /* 2349, 0x300c, 0x000c */
5258 "Referenced Source Number\0" /* 2350, 0x300c, 0x000e */
5259 "Referenced Fraction Group Sequence\0" /* 2351, 0x300c, 0x0020 */
5260 "Referenced Fraction Group Number\0" /* 2352, 0x300c, 0x0022 */
5261 "Referenced Verification Image Sequence\0" /* 2353, 0x300c, 0x0040 */
5262 "Referenced Reference Image Sequence\0" /* 2354, 0x300c, 0x0042 */
5263 "Referenced Dose Reference Sequence\0" /* 2355, 0x300c, 0x0050 */
5264 "Referenced Dose Reference Number\0" /* 2356, 0x300c, 0x0051 */
5265 "Brachy Referenced Dose Reference Sequence\0" /* 2357, 0x300c, 0x0055 */
5266 "Referenced Structure Set Sequence\0" /* 2358, 0x300c, 0x0060 */
5267 "Referenced Patient Setup Number\0" /* 2359, 0x300c, 0x006a */
5268 "Referenced Dose Sequence\0" /* 2360, 0x300c, 0x0080 */
5269 "Referenced Tolerance Table Number\0" /* 2361, 0x300c, 0x00a0 */
5270 "Referenced Bolus Sequence\0" /* 2362, 0x300c, 0x00b0 */
5271 "Referenced Wedge Number\0" /* 2363, 0x300c, 0x00c0 */
5272 "Referenced Compensato rNumber\0" /* 2364, 0x300c, 0x00d0 */
5273 "Referenced Block Number\0" /* 2365, 0x300c, 0x00e0 */
5274 "Referenced Control Point\0" /* 2366, 0x300c, 0x00f0 */
5275 "Approval Status\0" /* 2367, 0x300e, 0x0002 */
5276 "Review Date\0" /* 2368, 0x300e, 0x0004 */
5277 "Review Time\0" /* 2369, 0x300e, 0x0005 */
5278 "Reviewer Name\0" /* 2370, 0x300e, 0x0008 */
5279 "Text Group Length\0" /* 2371, 0x4000, 0x0000 */
5280 "Text Arbitrary\0" /* 2372, 0x4000, 0x0010 */
5281 "Text Comments\0" /* 2373, 0x4000, 0x4000 */
5282 "Results Group Length\0" /* 2374, 0x4008, 0x0000 */
5283 "Results ID\0" /* 2375, 0x4008, 0x0040 */
5284 "Results ID Issuer\0" /* 2376, 0x4008, 0x0042 */
5285 "Referenced Interpretation Sequence\0" /* 2377, 0x4008, 0x0050 */
5286 "Report Production Status\0" /* 2378, 0x4008, 0x00ff */
5287 "Interpretation Recorded Date\0" /* 2379, 0x4008, 0x0100 */
5288 "Interpretation Recorded Time\0" /* 2380, 0x4008, 0x0101 */
5289 "Interpretation Recorder\0" /* 2381, 0x4008, 0x0102 */
5290 "Reference to Recorded Sound\0" /* 2382, 0x4008, 0x0103 */
5291 "Interpretation Transcription Date\0" /* 2383, 0x4008, 0x0108 */
5292 "Interpretation Transcription Time\0" /* 2384, 0x4008, 0x0109 */
5293 "Interpretation Transcriber\0" /* 2385, 0x4008, 0x010a */
5294 "Interpretation Text\0" /* 2386, 0x4008, 0x010b */
5295 "Interpretation Author\0" /* 2387, 0x4008, 0x010c */
5296 "Interpretation Approver Sequence\0" /* 2388, 0x4008, 0x0111 */
5297 "Interpretation Approval Date\0" /* 2389, 0x4008, 0x0112 */
5298 "Interpretation Approval Time\0" /* 2390, 0x4008, 0x0113 */
5299 "Physician Approving Interpretation\0" /* 2391, 0x4008, 0x0114 */
5300 "Interpretation Diagnosis Description\0" /* 2392, 0x4008, 0x0115 */
5301 "InterpretationDiagnosis Code Sequence\0" /* 2393, 0x4008, 0x0117 */
5302 "Results Distribution List Sequence\0" /* 2394, 0x4008, 0x0118 */
5303 "Distribution Name\0" /* 2395, 0x4008, 0x0119 */
5304 "Distribution Address\0" /* 2396, 0x4008, 0x011a */
5305 "Interpretation ID\0" /* 2397, 0x4008, 0x0200 */
5306 "Interpretation ID Issuer\0" /* 2398, 0x4008, 0x0202 */
5307 "Interpretation Type ID\0" /* 2399, 0x4008, 0x0210 */
5308 "Interpretation Status ID\0" /* 2400, 0x4008, 0x0212 */
5309 "Impressions\0" /* 2401, 0x4008, 0x0300 */
5310 "Results Comments\0" /* 2402, 0x4008, 0x4000 */
5311 "Report ID\0" /* 2403, 0x4009, 0x0001 */
5312 "Report Status\0" /* 2404, 0x4009, 0x0020 */
5313 "Report Creation Date\0" /* 2405, 0x4009, 0x0030 */
5314 "Report Approving Physician\0" /* 2406, 0x4009, 0x0070 */
5315 "Report Text\0" /* 2407, 0x4009, 0x00e0 */
5316 "Report Author\0" /* 2408, 0x4009, 0x00e1 */
5317 "Reporting Radiologist\0" /* 2409, 0x4009, 0x00e3 */
5318 "Curve Group Length\0" /* 2410, 0x5000, 0x0000 */
5319 "Curve Dimensions\0" /* 2411, 0x5000, 0x0005 */
5320 "Number of Points\0" /* 2412, 0x5000, 0x0010 */
5321 "Type of Data\0" /* 2413, 0x5000, 0x0020 */
5322 "Curve Description\0" /* 2414, 0x5000, 0x0022 */
5323 "Axis Units\0" /* 2415, 0x5000, 0x0030 */
5324 "Axis Labels\0" /* 2416, 0x5000, 0x0040 */
5325 "Data Value Representation\0" /* 2417, 0x5000, 0x0103 */
5326 "Minimum Coordinate Value\0" /* 2418, 0x5000, 0x0104 */
5327 "Maximum Coordinate Value\0" /* 2419, 0x5000, 0x0105 */
5328 "Curve Range\0" /* 2420, 0x5000, 0x0106 */
5329 "Curve Data Descriptor\0" /* 2421, 0x5000, 0x0110 */
5330 "Coordinate Start Value\0" /* 2422, 0x5000, 0x0112 */
5331 "Coordinate Step Value\0" /* 2423, 0x5000, 0x0114 */
5332 "Curve Activation Layer\0" /* 2424, 0x5000, 0x1001 */
5333 "Audio Type\0" /* 2425, 0x5000, 0x2000 */
5334 "Audio Sample Format\0" /* 2426, 0x5000, 0x2002 */
5335 "Number of Channels\0" /* 2427, 0x5000, 0x2004 */
5336 "Number of Samples\0" /* 2428, 0x5000, 0x2006 */
5337 "Sample Rate\0" /* 2429, 0x5000, 0x2008 */
5338 "Total Time\0" /* 2430, 0x5000, 0x200a */
5339 "Audio Sample Data\0" /* 2431, 0x5000, 0x200c */
5340 "Audio Comments\0" /* 2432, 0x5000, 0x200e */
5341 "Curve Label\0" /* 2433, 0x5000, 0x2500 */
5342 "CurveReferenced Overlay Sequence\0" /* 2434, 0x5000, 0x2600 */
5343 "CurveReferenced Overlay Group\0" /* 2435, 0x5000, 0x2610 */
5344 "Curve Data\0" /* 2436, 0x5000, 0x3000 */
5345 "Overlay Group Length\0" /* 2437, 0x6000, 0x0000 */
5346 "Gray Palette Color Lookup Table Descriptor\0" /* 2438, 0x6000, 0x0001 */
5347 "Gray Palette Color Lookup Table Data\0" /* 2439, 0x6000, 0x0002 */
5348 "Overlay Rows\0" /* 2440, 0x6000, 0x0010 */
5349 "Overlay Columns\0" /* 2441, 0x6000, 0x0011 */
5350 "Overlay Planes\0" /* 2442, 0x6000, 0x0012 */
5351 "Number of Frames in Overlay\0" /* 2443, 0x6000, 0x0015 */
5352 "Overlay Description\0" /* 2444, 0x6000, 0x0022 */
5353 "Overlay Type\0" /* 2445, 0x6000, 0x0040 */
5354 "Overlay Subtype\0" /* 2446, 0x6000, 0x0045 */
5355 "Overlay Origin\0" /* 2447, 0x6000, 0x0050 */
5356 "Image Frame Origin\0" /* 2448, 0x6000, 0x0051 */
5357 "Plane Origin\0" /* 2449, 0x6000, 0x0052 */
5358 "Overlay Compression Code\0" /* 2450, 0x6000, 0x0060 */
5359 "Overlay Compression Originator\0" /* 2451, 0x6000, 0x0061 */
5360 "Overlay Compression Label\0" /* 2452, 0x6000, 0x0062 */
5361 "Overlay Compression Description\0" /* 2453, 0x6000, 0x0063 */
5362 "Overlay Compression Step Pointers\0" /* 2454, 0x6000, 0x0066 */
5363 "Overlay Repeat Interval\0" /* 2455, 0x6000, 0x0068 */
5364 "Overlay Bits Grouped\0" /* 2456, 0x6000, 0x0069 */
5365 "Overlay Bits Allocated\0" /* 2457, 0x6000, 0x0100 */
5366 "Overlay Bit Position\0" /* 2458, 0x6000, 0x0102 */
5367 "Overlay Format\0" /* 2459, 0x6000, 0x0110 */
5368 "Overlay Location\0" /* 2460, 0x6000, 0x0200 */
5369 "Overlay Code Label\0" /* 2461, 0x6000, 0x0800 */
5370 "Overlay Number of Tables\0" /* 2462, 0x6000, 0x0802 */
5371 "Overlay Code Table Location\0" /* 2463, 0x6000, 0x0803 */
5372 "Overlay Bits For Code Word\0" /* 2464, 0x6000, 0x0804 */
5373 "Overlay Activation Layer\0" /* 2465, 0x6000, 0x1001 */
5374 "Overlay Descriptor - Gray\0" /* 2466, 0x6000, 0x1100 */
5375 "Overlay Descriptor - Red\0" /* 2467, 0x6000, 0x1101 */
5376 "Overlay Descriptor - Green\0" /* 2468, 0x6000, 0x1102 */
5377 "Overlay Descriptor - Blue\0" /* 2469, 0x6000, 0x1103 */
5378 "Overlays - Gray\0" /* 2470, 0x6000, 0x1200 */
5379 "Overlays - Red\0" /* 2471, 0x6000, 0x1201 */
5380 "Overlays - Green\0" /* 2472, 0x6000, 0x1202 */
5381 "Overlays - Blue\0" /* 2473, 0x6000, 0x1203 */
5382 "ROI Area\0" /* 2474, 0x6000, 0x1301 */
5383 "ROI Mean\0" /* 2475, 0x6000, 0x1302 */
5384 "ROI Standard Deviation\0" /* 2476, 0x6000, 0x1303 */
5385 "Overlay Label\0" /* 2477, 0x6000, 0x1500 */
5386 "Overlay Data\0" /* 2478, 0x6000, 0x3000 */
5387 "Overlay Comments\0" /* 2479, 0x6000, 0x4000 */
5388 "?\0" /* 2480, 0x6001, 0x0000 */
5389 "?\0" /* 2481, 0x6001, 0x0010 */
5390 "?\0" /* 2482, 0x6001, 0x1010 */
5391 "?\0" /* 2483, 0x6001, 0x1030 */
5392 "?\0" /* 2484, 0x6021, 0x0000 */
5393 "?\0" /* 2485, 0x6021, 0x0010 */
5394 "Dummy\0" /* 2486, 0x7001, 0x0010 */
5395 "Info\0" /* 2487, 0x7003, 0x0010 */
5396 "Dummy\0" /* 2488, 0x7005, 0x0010 */
5397 "TextAnnotation\0" /* 2489, 0x7000, 0x0004 */
5398 "Box\0" /* 2490, 0x7000, 0x0005 */
5399 "ArrowEnd\0" /* 2491, 0x7000, 0x0007 */
5400 "Pixel Data Group Length\0" /* 2492, 0x7fe0, 0x0000 */
5401 "Pixel Data\0" /* 2493, 0x7fe0, 0x0010 */
5402 "Coefficients SDVN\0" /* 2494, 0x7fe0, 0x0020 */
5403 "Coefficients SDHN\0" /* 2495, 0x7fe0, 0x0030 */
5404 "Coefficients SDDN\0" /* 2496, 0x7fe0, 0x0040 */
5405 "Pixel Data\0" /* 2497, 0x7fe1, 0x0010 */
5406 "Variable Pixel Data Group Length\0" /* 2498, 0x7f00, 0x0000 */
5407 "Variable Pixel Data\0" /* 2499, 0x7f00, 0x0010 */
5408 "Variable Next Data Group\0" /* 2500, 0x7f00, 0x0011 */
5409 "Variable Coefficients SDVN\0" /* 2501, 0x7f00, 0x0020 */
5410 "Variable Coefficients SDHN\0" /* 2502, 0x7f00, 0x0030 */
5411 "Variable Coefficients SDDN\0" /* 2503, 0x7f00, 0x0040 */
5412 "Binary Data\0" /* 2504, 0x7fe1, 0x0000 */
5413 "Image Graphics Format Code\0" /* 2505, 0x7fe3, 0x0000 */
5414 "Image Graphics\0" /* 2506, 0x7fe3, 0x0010 */
5415 "Image Graphics Dummy\0" /* 2507, 0x7fe3, 0x0020 */
5416 "?\0" /* 2508, 0x7ff1, 0x0001 */
5417 "?\0" /* 2509, 0x7ff1, 0x0002 */
5418 "?\0" /* 2510, 0x7ff1, 0x0003 */
5419 "?\0" /* 2511, 0x7ff1, 0x0004 */
5420 "?\0" /* 2512, 0x7ff1, 0x0005 */
5421 "?\0" /* 2513, 0x7ff1, 0x0007 */
5422 "?\0" /* 2514, 0x7ff1, 0x0008 */
5423 "?\0" /* 2515, 0x7ff1, 0x0009 */
5424 "?\0" /* 2516, 0x7ff1, 0x000a */
5425 "?\0" /* 2517, 0x7ff1, 0x000b */
5426 "?\0" /* 2518, 0x7ff1, 0x000c */
5427 "?\0" /* 2519, 0x7ff1, 0x000d */
5428 "?\0" /* 2520, 0x7ff1, 0x0010 */
5429 "Data Set Trailing Padding\0" /* 2521, 0xfffc, 0xfffc */
5430 "Item\0" /* 2522, 0xfffe, 0xe000 */
5431 "Item Delimitation Item\0" /* 2523, 0xfffe, 0xe00d */
5432 "Sequence Delimitation Item\0" /* 2524, 0xfffe, 0xe0dd */
5433 "\0"; /* 2525, 0xffff, 0xffff */
5434 #endif /* DESCRIPION_STR */
5435
DCM_Get_Description(const unsigned int index)5436 static const char *DCM_Get_Description(const unsigned int index)
5437 {
5438 #if DESCRIPION_STR
5439 size_t count;
5440 const char *p = dicom_descriptions;
5441 for (count = 0;
5442 (count < index) && (p < dicom_descriptions+sizeof(dicom_descriptions)-1);
5443 p++)
5444 {
5445 if (*p == '\0')
5446 count++;
5447 }
5448 return p;
5449 #else
5450 return dicom_info[index].description;
5451 #endif
5452 }
5453 /*
5454 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5455 % %
5456 % %
5457 % %
5458 % I s D C M %
5459 % %
5460 % %
5461 % %
5462 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
5463 %
5464 % Method IsDCM returns True if the image format type, identified by the
5465 % magick string, is DCM.
5466 %
5467 % The format of the ReadDCMImage method is:
5468 %
5469 % unsigned int IsDCM(const unsigned char *magick,const size_t length)
5470 %
5471 % A description of each parameter follows:
5472 %
5473 % o status: Method IsDCM returns True if the image format type is DCM.
5474 %
5475 % o magick: This string is generally the first few bytes of an image file
5476 % or blob.
5477 %
5478 % o length: Specifies the length of the magick string.
5479 %
5480 %
5481 */
IsDCM(const unsigned char * magick,const size_t length)5482 static MagickPassFail IsDCM(const unsigned char *magick,const size_t length)
5483 {
5484 if (length < 132)
5485 return(False);
5486 if (LocaleNCompare((char *) (magick+128),"DICM",4) == 0)
5487 return(True);
5488 return(False);
5489 }
5490
DCM_InitDCM(DicomStream * dcm,int verbose)5491 static MagickPassFail DCM_InitDCM(DicomStream *dcm,int verbose)
5492 {
5493 (void) memset(dcm,0,sizeof(*dcm));
5494 dcm->columns=0;
5495 dcm->rows=0;
5496 dcm->samples_per_pixel=1;
5497 dcm->bits_allocated=8;
5498 dcm->significant_bits=0;
5499 dcm->high_bit=0;
5500 dcm->bytes_per_pixel=1;
5501 dcm->max_value_in=255;
5502 dcm->max_value_out=255;
5503 dcm->pixel_representation=0;
5504 dcm->transfer_syntax=DCM_TS_IMPL_LITTLE;
5505 dcm->interlace=0;
5506 dcm->msb_state=DCM_MSB_LITTLE;
5507 dcm->phot_interp=DCM_PI_MONOCHROME2;
5508 dcm->window_center=0;
5509 dcm->window_width=0;
5510 dcm->rescale_intercept=0;
5511 dcm->rescale_slope=1;
5512 dcm->number_scenes=1;
5513 dcm->data=NULL;
5514 dcm->upper_lim=0;
5515 dcm->lower_lim=0;
5516 dcm->rescale_map=NULL;
5517 dcm->rescale_type=DCM_RT_HOUNSFIELD;
5518 dcm->rescaling=DCM_RS_NONE;
5519 dcm->offset_ct=0;
5520 dcm->offset_arr=NULL;
5521 dcm->frag_bytes=0;
5522 dcm->rle_rep_ct=0;
5523 #if defined(USE_GRAYMAP)
5524 dcm->graymap=(unsigned short *) NULL;
5525 #endif
5526 dcm->funcReadShort=ReadBlobLSBShort;
5527 dcm->funcReadLong=ReadBlobLSBLong;
5528 dcm->explicit_file=False;
5529 dcm->verbose=verbose;
5530
5531 return MagickPass;
5532 }
5533
DCM_DestroyDCM(DicomStream * dcm)5534 static void DCM_DestroyDCM(DicomStream *dcm)
5535 {
5536 MagickFreeResourceLimitedMemory(dcm->offset_arr);
5537 MagickFreeResourceLimitedMemory(dcm->data);
5538 #if defined(USE_GRAYMAP)
5539 MagickFreeResourceLimitedMemory(dcm->graymap);
5540 #endif
5541 MagickFreeResourceLimitedMemory(dcm->rescale_map);
5542 }
5543
5544 /*
5545 Parse functions for DICOM elements
5546 */
funcDCM_TransferSyntax(Image * image,DicomStream * dcm,ExceptionInfo * exception)5547 static MagickPassFail funcDCM_TransferSyntax(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5548 {
5549 char
5550 *p;
5551
5552 int
5553 type,
5554 subtype;
5555
5556 if (dcm->data == (unsigned char *) NULL)
5557 {
5558 ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5559 return MagickFail;
5560 }
5561
5562 p=(char *) dcm->data;
5563 if (strncmp(p,"1.2.840.10008.1.2",17) == 0)
5564 {
5565 if (*(p+17) == 0)
5566 {
5567 dcm->transfer_syntax = DCM_TS_IMPL_LITTLE;
5568 return MagickPass;
5569 }
5570 type=0;
5571 subtype=0;
5572 /* Subtype is not always provided, but insist on type */
5573 if (sscanf(p+17,".%d.%d",&type,&subtype) < 1)
5574 {
5575 ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5576 return MagickFail;
5577 }
5578 switch (type)
5579 {
5580 case 1:
5581 dcm->transfer_syntax = DCM_TS_EXPL_LITTLE;
5582 break;
5583 case 2:
5584 dcm->transfer_syntax = DCM_TS_EXPL_BIG;
5585 dcm->msb_state=DCM_MSB_BIG_PENDING;
5586 break;
5587 case 4:
5588 if ((subtype >= 80) && (subtype <= 81))
5589 dcm->transfer_syntax = DCM_TS_JPEG_LS;
5590 else
5591 if ((subtype >= 90) && (subtype <= 93))
5592 dcm->transfer_syntax = DCM_TS_JPEG_2000;
5593 else
5594 dcm->transfer_syntax = DCM_TS_JPEG;
5595 break;
5596 case 5:
5597 dcm->transfer_syntax = DCM_TS_RLE;
5598 break;
5599 }
5600 }
5601 return MagickPass;
5602 }
5603
funcDCM_StudyDate(Image * image,DicomStream * dcm,ExceptionInfo * exception)5604 static MagickPassFail funcDCM_StudyDate(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5605 {
5606 ARG_NOT_USED(exception);
5607
5608 (void) SetImageAttribute(image,"StudyDate",(char *) dcm->data);
5609 return MagickPass;
5610 }
5611
funcDCM_PatientName(Image * image,DicomStream * dcm,ExceptionInfo * exception)5612 static MagickPassFail funcDCM_PatientName(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5613 {
5614 ARG_NOT_USED(exception);
5615
5616 (void) SetImageAttribute(image,"PatientName",(char *) dcm->data);
5617 return MagickPass;
5618 }
5619
funcDCM_TriggerTime(Image * image,DicomStream * dcm,ExceptionInfo * exception)5620 static MagickPassFail funcDCM_TriggerTime(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5621 {
5622 ARG_NOT_USED(exception);
5623
5624 (void) SetImageAttribute(image,"TriggerTime",(char *) dcm->data);
5625 return MagickPass;
5626 }
5627
funcDCM_FieldOfView(Image * image,DicomStream * dcm,ExceptionInfo * exception)5628 static MagickPassFail funcDCM_FieldOfView(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5629 {
5630 ARG_NOT_USED(exception);
5631
5632 (void) SetImageAttribute(image,"FieldOfView",(char *) dcm->data);
5633 return MagickPass;
5634 }
5635
funcDCM_SeriesNumber(Image * image,DicomStream * dcm,ExceptionInfo * exception)5636 static MagickPassFail funcDCM_SeriesNumber(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5637 {
5638 ARG_NOT_USED(exception);
5639 (void) SetImageAttribute(image,"SeriesNumber",(char *) dcm->data);
5640 return MagickPass;
5641 }
5642
funcDCM_ImagePosition(Image * image,DicomStream * dcm,ExceptionInfo * exception)5643 static MagickPassFail funcDCM_ImagePosition(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5644 {
5645 ARG_NOT_USED(exception);
5646 (void) SetImageAttribute(image,"ImagePosition",(char *) dcm->data);
5647 return MagickPass;
5648 }
5649
funcDCM_ImageOrientation(Image * image,DicomStream * dcm,ExceptionInfo * exception)5650 static MagickPassFail funcDCM_ImageOrientation(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5651 {
5652 ARG_NOT_USED(exception);
5653 (void) SetImageAttribute(image,"ImageOrientation",(char *) dcm->data);
5654 return MagickPass;
5655 }
5656
funcDCM_SliceLocation(Image * image,DicomStream * dcm,ExceptionInfo * exception)5657 static MagickPassFail funcDCM_SliceLocation(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5658 {
5659 ARG_NOT_USED(exception);
5660 (void) SetImageAttribute(image,"SliceLocation",(char *) dcm->data);
5661 return MagickPass;
5662 }
5663
funcDCM_SamplesPerPixel(Image * image,DicomStream * dcm,ExceptionInfo * exception)5664 static MagickPassFail funcDCM_SamplesPerPixel(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5665 {
5666 ARG_NOT_USED(image);
5667 ARG_NOT_USED(exception);
5668 dcm->samples_per_pixel=dcm->datum;
5669 return MagickPass;
5670 }
5671
funcDCM_PhotometricInterpretation(Image * image,DicomStream * dcm,ExceptionInfo * exception)5672 static MagickPassFail funcDCM_PhotometricInterpretation(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5673 {
5674 char photometric[MaxTextExtent];
5675 unsigned int i;
5676
5677 ARG_NOT_USED(image);
5678 ARG_NOT_USED(exception);
5679
5680 if (dcm->data == (unsigned char *) NULL)
5681 {
5682 ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5683 return MagickFail;
5684 }
5685
5686 (void) memset(photometric,0,sizeof(photometric));
5687 for (i=0; i < Min(dcm->length, MaxTextExtent-1); i++)
5688 photometric[i]=dcm->data[i];
5689 photometric[i]='\0';
5690
5691 if (strncmp(photometric,"MONOCHROME1",11) == 0)
5692 dcm->phot_interp = DCM_PI_MONOCHROME1;
5693 else
5694 if (strncmp(photometric,"MONOCHROME2",11) == 0)
5695 dcm->phot_interp = DCM_PI_MONOCHROME2;
5696 else
5697 if (strncmp(photometric,"PALETTE COLOR",13) == 0)
5698 dcm->phot_interp = DCM_PI_PALETTE_COLOR;
5699 else
5700 if (strncmp(photometric,"RGB",3) == 0)
5701 dcm->phot_interp = DCM_PI_RGB;
5702 else
5703 dcm->phot_interp = DCM_PI_OTHER;
5704 return MagickPass;
5705 }
5706
funcDCM_PlanarConfiguration(Image * image,DicomStream * dcm,ExceptionInfo * exception)5707 static MagickPassFail funcDCM_PlanarConfiguration(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5708 {
5709 ARG_NOT_USED(image);
5710 ARG_NOT_USED(exception);
5711
5712 dcm->interlace=dcm->datum;
5713 return MagickPass;
5714 }
5715
funcDCM_NumberOfFrames(Image * image,DicomStream * dcm,ExceptionInfo * exception)5716 static MagickPassFail funcDCM_NumberOfFrames(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5717 {
5718 if (dcm->data == (unsigned char *) NULL)
5719 {
5720 ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5721 return MagickFail;
5722 }
5723
5724 dcm->number_scenes=MagickAtoI((char *) dcm->data);
5725 return MagickPass;
5726 }
5727
funcDCM_Rows(Image * image,DicomStream * dcm,ExceptionInfo * exception)5728 static MagickPassFail funcDCM_Rows(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5729 {
5730 ARG_NOT_USED(image);
5731 ARG_NOT_USED(exception);
5732
5733 dcm->rows=dcm->datum;
5734 return MagickPass;
5735 }
5736
funcDCM_Columns(Image * image,DicomStream * dcm,ExceptionInfo * exception)5737 static MagickPassFail funcDCM_Columns(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5738 {
5739 ARG_NOT_USED(image);
5740 ARG_NOT_USED(exception);
5741
5742 dcm->columns=dcm->datum;
5743 return MagickPass;
5744 }
5745
funcDCM_BitsAllocated(Image * image,DicomStream * dcm,ExceptionInfo * exception)5746 static MagickPassFail funcDCM_BitsAllocated(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5747 {
5748 ARG_NOT_USED(image);
5749 ARG_NOT_USED(exception);
5750
5751 dcm->bits_allocated=dcm->datum;
5752 dcm->bytes_per_pixel=1;
5753 if (dcm->datum > 8)
5754 dcm->bytes_per_pixel=2;
5755 return MagickPass;
5756 }
5757
funcDCM_BitsStored(Image * image,DicomStream * dcm,ExceptionInfo * exception)5758 static MagickPassFail funcDCM_BitsStored(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5759 {
5760 ARG_NOT_USED(exception);
5761
5762 dcm->significant_bits=dcm->datum;
5763 dcm->bytes_per_pixel=1;
5764 if ((dcm->significant_bits == 0U) || (dcm->significant_bits > 16U))
5765 {
5766 if (image->logging)
5767 (void) LogMagickEvent(CoderEvent,GetMagickModule(),
5768 "DICOM significant_bits = %u",
5769 dcm->significant_bits);
5770 ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5771 return MagickFail;
5772 }
5773 if (dcm->significant_bits > 8)
5774 dcm->bytes_per_pixel=2;
5775 dcm->max_value_in=MaxValueGivenBits(dcm->significant_bits);
5776 dcm->max_value_out=dcm->max_value_in;
5777 image->depth=Min(dcm->significant_bits,QuantumDepth);
5778 return MagickPass;
5779 }
5780
funcDCM_HighBit(Image * image,DicomStream * dcm,ExceptionInfo * exception)5781 static MagickPassFail funcDCM_HighBit(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5782 {
5783 ARG_NOT_USED(image);
5784 ARG_NOT_USED(exception);
5785
5786 dcm->high_bit=dcm->datum;
5787 return MagickPass;
5788 }
5789
funcDCM_PixelRepresentation(Image * image,DicomStream * dcm,ExceptionInfo * exception)5790 static MagickPassFail funcDCM_PixelRepresentation(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5791 {
5792 ARG_NOT_USED(image);
5793 ARG_NOT_USED(exception);
5794
5795 dcm->pixel_representation=dcm->datum;
5796 return MagickPass;
5797 }
5798
funcDCM_WindowCenter(Image * image,DicomStream * dcm,ExceptionInfo * exception)5799 static MagickPassFail funcDCM_WindowCenter(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5800 {
5801 char
5802 *p;
5803
5804 if (dcm->data == (unsigned char *) NULL)
5805 {
5806 ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5807 return MagickFail;
5808 }
5809
5810 p = strrchr((char *) dcm->data,'\\');
5811 if (p)
5812 p++;
5813 else
5814 p=(char *) dcm->data;
5815 dcm->window_center=MagickAtoF(p);
5816 return MagickPass;
5817 }
5818
funcDCM_WindowWidth(Image * image,DicomStream * dcm,ExceptionInfo * exception)5819 static MagickPassFail funcDCM_WindowWidth(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5820 {
5821 char
5822 *p;
5823
5824 if (dcm->data == (unsigned char *) NULL)
5825 {
5826 ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5827 return MagickFail;
5828 }
5829
5830 p = strrchr((char *) dcm->data,'\\');
5831 if (p)
5832 p++;
5833 else
5834 p=(char *) dcm->data;
5835 dcm->window_width=MagickAtoF(p);
5836 return MagickPass;
5837 }
5838
funcDCM_RescaleIntercept(Image * image,DicomStream * dcm,ExceptionInfo * exception)5839 static MagickPassFail funcDCM_RescaleIntercept(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5840 {
5841 char
5842 *p;
5843
5844 if (dcm->data == (unsigned char *) NULL)
5845 {
5846 ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5847 return MagickFail;
5848 }
5849
5850 p = strrchr((char *) dcm->data,'\\');
5851 if (p)
5852 p++;
5853 else
5854 p=(char *) dcm->data;
5855 dcm->rescale_intercept=MagickAtoF(p);
5856 return MagickPass;
5857 }
5858
funcDCM_RescaleSlope(Image * image,DicomStream * dcm,ExceptionInfo * exception)5859 static MagickPassFail funcDCM_RescaleSlope(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5860 {
5861 char
5862 *p;
5863
5864 if (dcm->data == (unsigned char *) NULL)
5865 {
5866 ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5867 return MagickFail;
5868 }
5869
5870 p = strrchr((char *) dcm->data,'\\');
5871 if (p)
5872 p++;
5873 else
5874 p=(char *) dcm->data;
5875 dcm->rescale_slope=MagickAtoF(p);
5876 return MagickPass;
5877 }
5878
funcDCM_RescaleType(Image * image,DicomStream * dcm,ExceptionInfo * exception)5879 static MagickPassFail funcDCM_RescaleType(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5880 {
5881
5882 if (dcm->data == (unsigned char *) NULL)
5883 {
5884 ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5885 return MagickFail;
5886 }
5887
5888 if (strncmp((char *) dcm->data,"OD",2) == 0)
5889 dcm->rescale_type=DCM_RT_OPTICAL_DENSITY;
5890 else if (strncmp((char *) dcm->data,"HU",2) == 0)
5891 dcm->rescale_type=DCM_RT_HOUNSFIELD;
5892 else if (strncmp((char *) dcm->data,"US",2) == 0)
5893 dcm->rescale_type=DCM_RT_UNSPECIFIED;
5894 else
5895 dcm->rescale_type=DCM_RT_UNKNOWN;
5896 return MagickPass;
5897 }
5898
funcDCM_PaletteDescriptor(Image * image,DicomStream * dcm,ExceptionInfo * exception)5899 static MagickPassFail funcDCM_PaletteDescriptor(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5900 {
5901 /*
5902 Palette descriptor tables
5903 element = 1101/2/3 = for red/green/blue palette
5904 val 0 = # of entries in LUT (0 for 65535)
5905 val 1 = min pix value in palette (ie pix <= val1 -> palette[0])
5906 val 2 = # bits in LUT (8 or 16)
5907 NB Required by specification to be the same for each color
5908
5909 #1 - check the same each time
5910 #2 - use scale_remap to map vals <= (val1) to first entry
5911 and vals >= (val1 + palette size) to last entry
5912 #3 - if (val2) == 8, use UINT8 values instead of UINT16
5913 #4 - Check for UINT8 values packed into low bits of UINT16
5914 entries as per spec
5915 */
5916 ARG_NOT_USED(image);
5917 ARG_NOT_USED(dcm);
5918 ARG_NOT_USED(exception);
5919
5920 return MagickPass;
5921 }
5922
funcDCM_LUT(Image * image,DicomStream * dcm,ExceptionInfo * exception)5923 static MagickPassFail funcDCM_LUT(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5924 {
5925 #if defined(USE_GRAYMAP)
5926 /*
5927 1200 = grey, LUT data 3006 = LUT data
5928 */
5929 unsigned long
5930 colors;
5931
5932 register unsigned long
5933 i;
5934
5935 if (dcm->data == (unsigned char *) NULL)
5936 {
5937 ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5938 return MagickFail;
5939 }
5940
5941 colors=dcm->length/dcm->bytes_per_pixel;
5942 dcm->datum=(long) colors;
5943 dcm->graymap=MagickAllocateResourceLimitedArray(unsigned short *,colors,sizeof(unsigned short));
5944 if (dcm->graymap == (unsigned short *) NULL)
5945 {
5946 ThrowException(exception,ResourceLimitError,MemoryAllocationFailed,image->filename);
5947 return MagickFail;
5948 }
5949 for (i=0; i < (long) colors; i++)
5950 if (dcm->bytes_per_pixel == 1)
5951 dcm->graymap[i]=dcm->data[i];
5952 else
5953 dcm->graymap[i]=(unsigned short) ((short *) dcm->data)[i];
5954 #else
5955 ARG_NOT_USED(image);
5956 ARG_NOT_USED(dcm);
5957 ARG_NOT_USED(exception);
5958 #endif
5959 return MagickPass;
5960 }
5961
funcDCM_Palette(Image * image,DicomStream * dcm,ExceptionInfo * exception)5962 static MagickPassFail funcDCM_Palette(Image *image,DicomStream *dcm,ExceptionInfo *exception)
5963 {
5964 register long
5965 i;
5966
5967 unsigned char
5968 *p;
5969
5970 unsigned short
5971 index;
5972
5973 if (dcm->data == (unsigned char *) NULL)
5974 {
5975 ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
5976 return MagickFail;
5977 }
5978
5979 if (image->logging)
5980 (void) LogMagickEvent(CoderEvent,GetMagickModule(),
5981 "Palette with %" MAGICK_SIZE_T_F "u entries...",
5982 (MAGICK_SIZE_T) dcm->length);
5983 /*
5984 Initialize colormap (entries are always 16 bit)
5985 1201/2/3 = red/green/blue palette
5986 */
5987 if (image->colormap == (PixelPacket *) NULL)
5988 {
5989 /*
5990 Allocate color map first time in
5991 */
5992 if (!AllocateImageColormap(image,(const unsigned long) dcm->length))
5993 {
5994 ThrowException(exception,ResourceLimitError,UnableToCreateColormap,image->filename);
5995 return MagickFail;
5996 }
5997 }
5998
5999 /*
6000 Check that palette size matches previous one(s)
6001 */
6002 if (dcm->length != image->colors)
6003 {
6004 ThrowException(exception,ResourceLimitError,UnableToCreateColormap,image->filename);
6005 return MagickFail;
6006 }
6007
6008 p=dcm->data;
6009 for (i=0; i < (long) image->colors; i++)
6010 {
6011 if (dcm->msb_state == DCM_MSB_BIG)
6012 index=((unsigned short) *p << 8) | (unsigned short) *(p+1);
6013 else
6014 index=(unsigned short) *p | ((unsigned short) *(p+1) << 8);
6015 if (dcm->element == 0x1201)
6016 image->colormap[i].red=ScaleShortToQuantum(index);
6017 else if (dcm->element == 0x1202)
6018 image->colormap[i].green=ScaleShortToQuantum(index);
6019 else
6020 image->colormap[i].blue=ScaleShortToQuantum(index);
6021 p+=2;
6022 }
6023 return MagickPass;
6024 }
6025
DCM_RLE_ReadByte(Image * image,DicomStream * dcm)6026 static magick_uint8_t DCM_RLE_ReadByte(Image *image, DicomStream *dcm)
6027 {
6028 if (dcm->rle_rep_ct == 0)
6029 {
6030 int
6031 rep_ct,
6032 rep_char;
6033
6034 /* We need to read the next command pair */
6035 if (dcm->frag_bytes <= 2)
6036 dcm->frag_bytes = 0;
6037 else
6038 dcm->frag_bytes -= 2;
6039
6040 rep_ct=ReadBlobByte(image);
6041 rep_char=ReadBlobByte(image);
6042 if (rep_ct == 128)
6043 {
6044 /* Illegal value */
6045 return 0;
6046 }
6047 else
6048 if (rep_ct < 128)
6049 {
6050 /* (rep_ct+1) literal bytes */
6051 dcm->rle_rep_ct=rep_ct;
6052 dcm->rle_rep_char=-1;
6053 return (magick_uint8_t)rep_char;
6054 }
6055 else
6056 {
6057 /* (257-rep_ct) repeated bytes */
6058 dcm->rle_rep_ct=256-rep_ct;
6059 dcm->rle_rep_char=rep_char;
6060 return (magick_uint8_t)rep_char;
6061 }
6062 }
6063
6064 dcm->rle_rep_ct--;
6065 if (dcm->rle_rep_char >= 0)
6066 return dcm->rle_rep_char;
6067
6068 if (dcm->frag_bytes > 0)
6069 dcm->frag_bytes--;
6070 return ReadBlobByte(image);
6071 }
6072
DCM_RLE_ReadShort(Image * image,DicomStream * dcm)6073 static magick_uint16_t DCM_RLE_ReadShort(Image *image, DicomStream *dcm)
6074 {
6075 return (((magick_uint16_t) DCM_RLE_ReadByte(image,dcm) << 4) |
6076 (magick_uint16_t) DCM_RLE_ReadByte(image,dcm));
6077 }
6078
DCM_ReadElement(Image * image,DicomStream * dcm,ExceptionInfo * exception)6079 static MagickPassFail DCM_ReadElement(Image *image, DicomStream *dcm,ExceptionInfo *exception)
6080 {
6081 unsigned int
6082 use_explicit;
6083
6084 char
6085 explicit_vr[MaxTextExtent],
6086 implicit_vr[MaxTextExtent];
6087
6088 register long
6089 i;
6090
6091 /*
6092 Read group and element IDs
6093 */
6094 image->offset=(long) TellBlob(image);
6095 dcm->group=dcm->funcReadShort(image);
6096 if ((dcm->msb_state == DCM_MSB_BIG_PENDING) && (dcm->group != 2))
6097 {
6098 dcm->group = (dcm->group << 8) | (dcm->group >> 8);
6099 dcm->funcReadShort=ReadBlobMSBShort;
6100 dcm->funcReadLong=ReadBlobMSBLong;
6101 dcm->msb_state=DCM_MSB_BIG;
6102 }
6103 dcm->element=dcm->funcReadShort(image);
6104 dcm->data=(unsigned char *) NULL;
6105 dcm->quantum=0;
6106 if (EOFBlob(image))
6107 {
6108 ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6109 return MagickFail;
6110 }
6111 /*
6112 Find corresponding VR for this group and element.
6113 */
6114 for (i=0; dicom_info[i].group < 0xffffU; i++)
6115 if ((dcm->group == dicom_info[i].group) &&
6116 (dcm->element == dicom_info[i].element))
6117 break;
6118 dcm->index=i;
6119
6120 /*
6121 Check for "explicitness", but meta-file headers always explicit.
6122 */
6123 if (ReadBlob(image,2,(char *) explicit_vr) != 2)
6124 {
6125 ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6126 return MagickFail;
6127 }
6128 explicit_vr[2]='\0';
6129 (void) strlcpy(implicit_vr,dicom_info[dcm->index].vr,MaxTextExtent);
6130
6131 #if defined(NEW_IMPLICIT_LOGIC)
6132 use_explicit=False;
6133 if (isupper((int) *explicit_vr) && isupper((int) *(explicit_vr+1)))
6134 {
6135 /* Explicit VR looks to be valid */
6136 if (strcmp(explicit_vr,implicit_vr) == 0)
6137 {
6138 /* Explicit VR matches implicit VR so assume that it is explicit */
6139 use_explicit=True;
6140 }
6141 else if ((dcm->group & 1) || strcmp(implicit_vr,"xs") == 0)
6142 {
6143 /*
6144 We *must* use explicit type under two conditions
6145 1) group is odd and therefore private
6146 2) element vr is set as "xs" ie is not of a fixed type
6147 */
6148 use_explicit=True;
6149 strcpy(implicit_vr,explicit_vr);
6150 }
6151 }
6152 if ((!use_explicit) || (strcmp(implicit_vr,"!!") == 0))
6153 {
6154 /* Use implicit logic */
6155 (void) SeekBlob(image,(ExtendedSignedIntegralType) -2,SEEK_CUR);
6156 dcm->quantum=4;
6157 }
6158 else
6159 {
6160 /* Use explicit logic */
6161 dcm->quantum=2;
6162 if ((strcmp(explicit_vr,"OB") == 0) ||
6163 (strcmp(explicit_vr,"OW") == 0) ||
6164 (strcmp(explicit_vr,"OF") == 0) ||
6165 (strcmp(explicit_vr,"SQ") == 0) ||
6166 (strcmp(explicit_vr,"UN") == 0) ||
6167 (strcmp(explicit_vr,"UT") == 0))
6168 {
6169 (void) dcm->funcReadShort(image);
6170 if (EOFBlob(image))
6171 {
6172 ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6173 return MagickFail;
6174 }
6175 dcm->quantum=4;
6176 }
6177 }
6178 #else
6179 if (!dcm->explicit_file && (dcm->group != 0x0002))
6180 dcm->explicit_file=isupper((int) *explicit_vr) && isupper((int) *(explicit_vr+1));
6181 use_explicit=((dcm->group == 0x0002) || dcm->explicit_file);
6182 if (use_explicit && (strcmp(implicit_vr,"xs") == 0))
6183 (void) strlcpy(implicit_vr,explicit_vr,MaxTextExtent);
6184 if (!use_explicit || (strcmp(implicit_vr,"!!") == 0))
6185 {
6186 (void) SeekBlob(image,(ExtendedSignedIntegralType) -2,SEEK_CUR);
6187 dcm->quantum=4;
6188 }
6189 else
6190 {
6191 /*
6192 Assume explicit type.
6193 */
6194 dcm->quantum=2;
6195 if ((strcmp(explicit_vr,"OB") == 0) ||
6196 (strcmp(explicit_vr,"UN") == 0) ||
6197 (strcmp(explicit_vr,"OW") == 0) || (strcmp(explicit_vr,"SQ") == 0))
6198 {
6199 (void) dcm->funcReadShort(image)
6200 if (EOFBlob(image))
6201 {
6202 ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6203 return MagickFail;
6204 }
6205 dcm->quantum=4;
6206 }
6207 }
6208 #endif
6209
6210 dcm->datum=0;
6211 if (dcm->quantum == 4)
6212 {
6213 dcm->datum=dcm->funcReadLong(image);
6214 if (EOFBlob(image))
6215 {
6216 ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6217 return MagickFail;
6218 }
6219 }
6220 else if (dcm->quantum == 2)
6221 {
6222 dcm->datum=(long) dcm->funcReadShort(image);
6223 if (EOFBlob(image))
6224 {
6225 ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6226 return MagickFail;
6227 }
6228 }
6229 dcm->quantum=0;
6230 dcm->length=1;
6231 if (dcm->datum != 0)
6232 {
6233 if ((strcmp(implicit_vr,"SS") == 0) ||
6234 (strcmp(implicit_vr,"US") == 0) ||
6235 (strcmp(implicit_vr,"OW") == 0))
6236 dcm->quantum=2;
6237 else if ((strcmp(implicit_vr,"UL") == 0) ||
6238 (strcmp(implicit_vr,"SL") == 0) ||
6239 (strcmp(implicit_vr,"FL") == 0) ||
6240 (strcmp(implicit_vr,"OF") == 0))
6241 dcm->quantum=4;
6242 else if (strcmp(implicit_vr,"FD") == 0)
6243 dcm->quantum=8;
6244 else
6245 dcm->quantum=1;
6246
6247 if (dcm->datum != -1)
6248 {
6249 dcm->length=(size_t) dcm->datum/dcm->quantum;
6250 }
6251 else
6252 {
6253 /*
6254 Sequence and item of undefined length.
6255 */
6256 dcm->quantum=0;
6257 dcm->length=0;
6258 }
6259 }
6260 /*
6261 Display Dicom info.
6262 */
6263 if (dcm->verbose)
6264 {
6265 const char * description;
6266 if (!use_explicit)
6267 explicit_vr[0]='\0';
6268 (void) fprintf(stdout,"0x%04lX %4lu %.1024s-%.1024s (0x%04x,0x%04x)",
6269 image->offset,(unsigned long) dcm->length,implicit_vr,explicit_vr,
6270 dcm->group,dcm->element);
6271 if ((description=DCM_Get_Description(dcm->index)) != (char *) NULL)
6272 (void) fprintf(stdout," %.1024s",description);
6273 (void) fprintf(stdout,": ");
6274 }
6275 if ((dcm->group == 0x7FE0) && (dcm->element == 0x0010))
6276 {
6277 if (dcm->verbose)
6278 (void) fprintf(stdout,"\n");
6279 return MagickPass;
6280 }
6281 /*
6282 Allocate array and read data into it
6283 */
6284 if ((dcm->length == 1) && (dcm->quantum == 1))
6285 {
6286 if ((dcm->datum=ReadBlobByte(image)) == EOF)
6287 {
6288 ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6289 return MagickFail;
6290 }
6291 }
6292 else if ((dcm->length == 1) && (dcm->quantum == 2))
6293 {
6294 dcm->datum=dcm->funcReadShort(image);
6295 if (EOFBlob(image))
6296 {
6297 ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6298 return MagickFail;
6299 }
6300 }
6301 else if ((dcm->length == 1) && (dcm->quantum == 4))
6302 {
6303 dcm->datum=dcm->funcReadLong(image);
6304 if (EOFBlob(image))
6305 {
6306 ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6307 return MagickFail;
6308 }
6309 }
6310 else if ((dcm->quantum != 0) && (dcm->length != 0))
6311 {
6312 size_t
6313 size;
6314
6315 if (dcm->length > ((size_t) GetBlobSize(image)))
6316 {
6317 ThrowException(exception,CorruptImageError,InsufficientImageDataInFile,image->filename);
6318 return MagickFail;
6319 }
6320 if (dcm->length > ((~0UL)/dcm->quantum))
6321 {
6322 ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
6323 return MagickFail;
6324 }
6325 dcm->data=MagickAllocateResourceLimitedArray(unsigned char *,(dcm->length+1),dcm->quantum);
6326 if (dcm->data == (unsigned char *) NULL)
6327 {
6328 ThrowException(exception,ResourceLimitError,MemoryAllocationFailed,image->filename);
6329 return MagickFail;
6330 }
6331 size=MagickArraySize(dcm->quantum,dcm->length);
6332 if (size == 0)
6333 {
6334 ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
6335 return MagickFail;
6336 }
6337 if (ReadBlob(image,size,(char *) dcm->data) != size)
6338 {
6339 ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6340 return MagickFail;
6341 }
6342 dcm->data[size]=0;
6343 }
6344
6345 if (dcm->verbose)
6346 {
6347 /*
6348 Display data
6349 */
6350 if (dcm->data == (unsigned char *) NULL)
6351 {
6352 (void) fprintf(stdout,"%d\n",dcm->datum);
6353 }
6354 else
6355 {
6356 for (i=0; i < (long) Max(dcm->length,4); i++)
6357 if (!isprint(dcm->data[i]))
6358 break;
6359 if ((i != (long) dcm->length) && (dcm->length <= 4))
6360 {
6361 long
6362 j,
6363 bin_datum;
6364
6365 bin_datum=0;
6366 for (j=(long) dcm->length-1; j >= 0; j--)
6367 bin_datum=256*bin_datum+dcm->data[j];
6368 (void) fprintf(stdout,"%lu\n",bin_datum);
6369 }
6370 else
6371 {
6372 for (i=0; i < (long) dcm->length; i++)
6373 if (isprint(dcm->data[i]))
6374 (void) fprintf(stdout,"%c",dcm->data[i]);
6375 else
6376 (void) fprintf(stdout,"%c",'.');
6377 (void) fprintf(stdout,"\n");
6378 }
6379 }
6380 }
6381 return MagickPass;
6382 }
6383
DCM_SetupColormap(Image * image,DicomStream * dcm,ExceptionInfo * exception)6384 static MagickPassFail DCM_SetupColormap(Image *image,DicomStream *dcm,ExceptionInfo *exception)
6385 {
6386 if ((image->previous) && (image->previous->colormap != (PixelPacket*)NULL))
6387 {
6388 size_t
6389 length;
6390
6391 /*
6392 Clone colormap from previous image
6393 */
6394 image->storage_class=PseudoClass;
6395 image->colors=image->previous->colors;
6396 length=image->colors*sizeof(PixelPacket);
6397 image->colormap=MagickAllocateMemory(PixelPacket *,length);
6398 if (image->colormap == (PixelPacket *) NULL)
6399 {
6400 ThrowException(exception,ResourceLimitError,MemoryAllocationFailed,image->filename);
6401 return MagickFail;
6402 }
6403 (void) memcpy(image->colormap,image->previous->colormap,length);
6404 }
6405 else
6406 {
6407 /*
6408 Create new colormap
6409 */
6410 if (AllocateImageColormap(image,dcm->max_value_out+1) == MagickFail)
6411 {
6412 ThrowException(exception,ResourceLimitError,MemoryAllocationFailed,image->filename);
6413 return MagickFail;
6414 }
6415 }
6416 return MagickPass;
6417 }
6418
DCM_SetupRescaleMap(Image * image,DicomStream * dcm,ExceptionInfo * exception)6419 static MagickPassFail DCM_SetupRescaleMap(Image *image,DicomStream *dcm,ExceptionInfo *exception)
6420 {
6421 /*
6422 rescale_map maps input sample range -> output colormap range combining rescale
6423 and window transforms, palette scaling and palette inversion (for MONOCHROME1)
6424 as well as allowing for pixel_representation of 1 which causes input samples to
6425 be treated as signed
6426 */
6427 double
6428 win_center,
6429 win_width,
6430 Xr,
6431 Xw_min,
6432 Xw_max;
6433
6434 unsigned int
6435 i;
6436
6437 if (dcm->rescaling == DCM_RS_NONE)
6438 return MagickPass;
6439
6440 if (image->logging)
6441 (void) LogMagickEvent(CoderEvent,GetMagickModule(),
6442 "Set up rescale map for input range of %u"
6443 " (%u entries)...",
6444 dcm->max_value_in+1,MaxMap+1);
6445
6446 /*
6447 The rescale map must be limited to MaxMap+1 entries, which is 256
6448 or 65536, depending on QuantumDepth. Using a QuantumDepth less
6449 than 16 for DICOM is a bad idea.
6450
6451 The dcm->significant_bits value is limited to 16 (larger values
6452 are outright rejected) so dcm->max_value_in and dcm->max_value_out
6453 are limited to 65535.
6454 */
6455
6456 if (dcm->rescale_map == (Quantum *) NULL)
6457 {
6458 size_t num_entries = Max((size_t) MaxMap+1,(size_t) dcm->max_value_in+1);
6459 dcm->rescale_map=MagickAllocateResourceLimitedArray(Quantum *,num_entries,sizeof(Quantum));
6460 if (dcm->rescale_map == NULL)
6461 {
6462 ThrowException(exception,ResourceLimitError,MemoryAllocationFailed,image->filename);
6463 return MagickFail;
6464 }
6465 (void) memset(dcm->rescale_map,0,num_entries*sizeof(Quantum));
6466 }
6467
6468 if (dcm->window_width == 0)
6469 { /* zero window width */
6470 if (dcm->upper_lim > dcm->lower_lim)
6471 {
6472 /* Use known range within image */
6473 win_width=((double) dcm->upper_lim-dcm->lower_lim+1)*dcm->rescale_slope;
6474 win_center=(((double) dcm->upper_lim+dcm->lower_lim)/2.0)*dcm->rescale_slope+dcm->rescale_intercept;
6475 }
6476 else
6477 {
6478 /* Use full sample range and hope for the best */
6479 win_width=((double) dcm->max_value_in+1)*dcm->rescale_slope;
6480 if (dcm->pixel_representation == 1)
6481 win_center=dcm->rescale_intercept;
6482 else
6483 win_center=win_width/2 + dcm->rescale_intercept;
6484 }
6485 }
6486 else
6487 {
6488 win_width=dcm->window_width;
6489 win_center=dcm->window_center;
6490 }
6491 Xw_min = win_center - 0.5 - ((win_width-1)/2);
6492 Xw_max = win_center - 0.5 + ((win_width-1)/2);
6493 for (i=0; i < (dcm->max_value_in+1); i++)
6494 {
6495 if ((dcm->pixel_representation == 1) && (i >= MaxValueGivenBits(dcm->significant_bits)))
6496 Xr = -(((double) dcm->max_value_in+1-i) * dcm->rescale_slope) + dcm->rescale_intercept;
6497 else
6498 Xr = (i * dcm->rescale_slope) + dcm->rescale_intercept;
6499 if (Xr <= Xw_min)
6500 dcm->rescale_map[i]=0;
6501 else if (Xr >= Xw_max)
6502 dcm->rescale_map[i]=dcm->max_value_out;
6503 else
6504 dcm->rescale_map[i]=(Quantum)(((Xr-Xw_min)/(win_width-1))*dcm->max_value_out+0.5);
6505 }
6506 if (dcm->phot_interp == DCM_PI_MONOCHROME1)
6507 for (i=0; i <= dcm->max_value_in; i++)
6508 dcm->rescale_map[i]=dcm->max_value_out-dcm->rescale_map[i];
6509
6510 return MagickPass;
6511 }
6512
DCM_SetRescaling(DicomStream * dcm,int avoid_scaling)6513 void DCM_SetRescaling(DicomStream *dcm,int avoid_scaling)
6514 {
6515 /*
6516 If avoid_scaling is True then scaling will only be applied where necessary ie
6517 input bit depth exceeds quantum size.
6518
6519 ### TODO : Should this throw an error rather than setting DCM_RS_PRE?
6520 */
6521 dcm->rescaling=DCM_RS_NONE;
6522 dcm->max_value_out=dcm->max_value_in;
6523
6524 if (dcm->phot_interp == DCM_PI_PALETTE_COLOR)
6525 {
6526 if (dcm->max_value_in >= MaxColormapSize)
6527 {
6528 dcm->max_value_out=MaxColormapSize-1;
6529 dcm->rescaling=DCM_RS_PRE;
6530 }
6531 return;
6532 }
6533
6534 if ((dcm->phot_interp == DCM_PI_MONOCHROME1) ||
6535 (dcm->phot_interp == DCM_PI_MONOCHROME2))
6536 {
6537 if ((dcm->transfer_syntax == DCM_TS_JPEG) ||
6538 (dcm->transfer_syntax == DCM_TS_JPEG_LS) ||
6539 (dcm->transfer_syntax == DCM_TS_JPEG_2000))
6540 {
6541 /* Encapsulated non-native grayscale images are post rescaled by default */
6542 if (!avoid_scaling)
6543 dcm->rescaling=DCM_RS_POST;
6544 }
6545 #if defined(GRAYSCALE_USES_PALETTE)
6546 else if (dcm->max_value_in >= MaxColormapSize)
6547 {
6548 dcm->max_value_out=MaxColormapSize-1;
6549 dcm->rescaling=DCM_RS_PRE;
6550 }
6551 #else
6552 else if (dcm->max_value_in > MaxRGB)
6553 {
6554 dcm->max_value_out=MaxRGB;
6555 dcm->rescaling=DCM_RS_PRE;
6556 }
6557 #endif
6558 else if (!avoid_scaling)
6559 {
6560 #if !defined(GRAYSCALE_USES_PALETTE)
6561 dcm->max_value_out=MaxRGB;
6562 #endif
6563 dcm->rescaling=DCM_RS_POST;
6564 }
6565 return;
6566 }
6567
6568 if (avoid_scaling || (dcm->max_value_in == MaxRGB))
6569 return;
6570
6571 dcm->max_value_out=MaxRGB;
6572 dcm->rescaling=DCM_RS_PRE;
6573 }
6574
6575 /*
6576 FIXME: This code is totally broken since DCM_SetupRescaleMap
6577 populates dcm->rescale_map and dcm->rescale_map has
6578 dcm->max_value_in+1 entries, which has nothing to do with the number
6579 of colormap entries or the range of MaxRGB.
6580
6581 Disabling this whole function and code invoking it until someone
6582 figures it out.
6583 */
DCM_PostRescaleImage(Image * image,DicomStream * dcm,unsigned long ScanLimits,ExceptionInfo * exception)6584 static MagickPassFail DCM_PostRescaleImage(Image *image,DicomStream *dcm,unsigned long ScanLimits,ExceptionInfo *exception)
6585 {
6586 unsigned long
6587 y,
6588 x;
6589
6590 register PixelPacket
6591 *q;
6592
6593 if (ScanLimits)
6594 {
6595 /*
6596 Causes rescan for upper/lower limits - used for encapsulated images
6597 */
6598 unsigned int
6599 l;
6600
6601 for (y=0; y < image->rows; y++)
6602 {
6603 q=GetImagePixels(image,0,y,image->columns,1);
6604 if (q == (PixelPacket *) NULL)
6605 return MagickFail;
6606
6607 if (image->storage_class == PseudoClass)
6608 {
6609 register IndexPacket
6610 *indexes;
6611
6612 indexes=AccessMutableIndexes(image);
6613 for (x=0; x < image->columns; x++)
6614 {
6615 l=indexes[x];
6616 if (dcm->pixel_representation == 1)
6617 if (l > ((dcm->max_value_in >> 1)))
6618 l = dcm->max_value_in-l+1;
6619 if (l < (unsigned int) dcm->lower_lim)
6620 dcm->lower_lim = l;
6621 if (l > (unsigned int) dcm->upper_lim)
6622 dcm->upper_lim = l;
6623 }
6624 }
6625 else
6626 {
6627 for (x=0; x < image->columns; x++)
6628 {
6629 l=q->green;
6630 if (dcm->pixel_representation == 1)
6631 if (l > (dcm->max_value_in >> 1))
6632 l = dcm->max_value_in-l+1;
6633 if (l < (unsigned int) dcm->lower_lim)
6634 dcm->lower_lim = l;
6635 if (l > (unsigned int) dcm->upper_lim)
6636 dcm->upper_lim = l;
6637 q++;
6638 }
6639 }
6640 }
6641
6642 if (image->storage_class == PseudoClass)
6643 {
6644 /* Handle compressed range by reallocating palette */
6645 if (!AllocateImageColormap(image,dcm->upper_lim+1))
6646 {
6647 ThrowException(exception,ResourceLimitError,UnableToCreateColormap,image->filename);
6648 return MagickFail;
6649 }
6650 return MagickPass;
6651 }
6652 }
6653
6654 if (DCM_SetupRescaleMap(image,dcm,exception) == MagickFail)
6655 return MagickFail;
6656 for (y=0; y < image->rows; y++)
6657 {
6658 q=GetImagePixels(image,0,y,image->columns,1);
6659 if (q == (PixelPacket *) NULL)
6660 return MagickFail;
6661
6662 if (image->storage_class == PseudoClass)
6663 {
6664 register IndexPacket
6665 *indexes;
6666
6667 indexes=AccessMutableIndexes(image);
6668 for (x=0; x < image->columns; x++)
6669 indexes[x]=dcm->rescale_map[indexes[x]];
6670 }
6671 else
6672 {
6673 for (x=0; x < image->columns; x++)
6674 {
6675 q->red=dcm->rescale_map[q->red];
6676 q->green=dcm->rescale_map[q->green];
6677 q->blue=dcm->rescale_map[q->blue];
6678 q++;
6679 }
6680 }
6681 if (!SyncImagePixels(image))
6682 return MagickFail;
6683 /*
6684 if (image->previous == (Image *) NULL)
6685 if (QuantumTick(y,image->rows))
6686 if (!MagickMonitorFormatted(y,image->rows,exception,
6687 LoadImageText,image->filename))
6688 return MagickFail;
6689 */
6690 }
6691 return MagickPass;
6692 }
6693
DCM_ReadPaletteImage(Image * image,DicomStream * dcm,ExceptionInfo * exception)6694 static MagickPassFail DCM_ReadPaletteImage(Image *image,DicomStream *dcm,ExceptionInfo *exception)
6695 {
6696 unsigned long
6697 y;
6698
6699 register unsigned long
6700 x;
6701
6702 register PixelPacket
6703 *q;
6704
6705 register IndexPacket
6706 *indexes;
6707
6708 unsigned short
6709 index;
6710
6711 unsigned char
6712 byte;
6713
6714 byte=0;
6715
6716 if (image->logging)
6717 (void) LogMagickEvent(CoderEvent,GetMagickModule(),
6718 "Reading Palette image...");
6719
6720 for (y=0; y < image->rows; y++)
6721 {
6722 q=SetImagePixels(image,0,y,image->columns,1);
6723 if (q == (PixelPacket *) NULL)
6724 return MagickFail;
6725 indexes=AccessMutableIndexes(image);
6726 for (x=0; x < image->columns; x++)
6727 {
6728 if (dcm->bytes_per_pixel == 1)
6729 {
6730 if (dcm->transfer_syntax == DCM_TS_RLE)
6731 index=DCM_RLE_ReadByte(image,dcm);
6732 else
6733 index=ReadBlobByte(image);
6734 }
6735 else
6736 if (dcm->bits_allocated != 12)
6737 {
6738 if (dcm->transfer_syntax == DCM_TS_RLE)
6739 index=DCM_RLE_ReadShort(image,dcm);
6740 else
6741 index=dcm->funcReadShort(image);
6742 }
6743 else
6744 {
6745 if (x & 0x01)
6746 {
6747 /* ### TODO - Check whether logic needs altering if msb_state != DCM_MSB_LITTLE */
6748 if (dcm->transfer_syntax == DCM_TS_RLE)
6749 index=DCM_RLE_ReadByte(image,dcm);
6750 else
6751 index=ReadBlobByte(image);
6752 index=(index << 4) | byte;
6753 }
6754 else
6755 {
6756 if (dcm->transfer_syntax == DCM_TS_RLE)
6757 index=DCM_RLE_ReadByte(image,dcm);
6758 else
6759 index=dcm->funcReadShort(image);
6760 byte=index >> 12;
6761 index&=0xfff;
6762 }
6763 }
6764 index&=dcm->max_value_in;
6765 if (dcm->rescaling == DCM_RS_PRE)
6766 {
6767 /*
6768 ### TODO - must read as Direct Class so look up
6769 red/green/blue values in palette table, processed via
6770 rescale_map
6771 */
6772 }
6773 else
6774 {
6775 #if defined(USE_GRAYMAP)
6776 if (dcm->graymap != (unsigned short *) NULL)
6777 index=dcm->graymap[index];
6778 #endif
6779 index=(IndexPacket) (index);
6780 VerifyColormapIndex(image,index);
6781 indexes[x]=index;
6782 *q=image->colormap[index];
6783 q++;
6784 }
6785
6786 if (EOFBlob(image))
6787 {
6788 ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6789 return MagickFail;
6790 }
6791 }
6792 if (!SyncImagePixels(image))
6793 return MagickFail;
6794 if (image->previous == (Image *) NULL)
6795 if (QuantumTick(y,image->rows))
6796 if (!MagickMonitorFormatted(y,image->rows,exception,
6797 LoadImageText,image->filename,
6798 image->columns,image->rows))
6799 return MagickFail;
6800 }
6801 return MagickPass;
6802 }
6803
DCM_ReadGrayscaleImage(Image * image,DicomStream * dcm,ExceptionInfo * exception)6804 static MagickPassFail DCM_ReadGrayscaleImage(Image *image,DicomStream *dcm,ExceptionInfo *exception)
6805 {
6806 unsigned long
6807 y;
6808
6809 register unsigned long
6810 x;
6811
6812 register PixelPacket
6813 *q;
6814
6815 #if defined(GRAYSCALE_USES_PALETTE) /* not used */
6816 register IndexPacket
6817 *indexes;
6818 #endif
6819
6820 unsigned short
6821 index;
6822
6823 unsigned char
6824 byte;
6825
6826 if (image->logging)
6827 (void) LogMagickEvent(CoderEvent,GetMagickModule(),
6828 "Reading Grayscale %lux%lu image...",image->columns,image->rows);
6829
6830 #if !defined(GRAYSCALE_USES_PALETTE)
6831 /*
6832 If a palette was provided, the image may be in PseudoClass
6833 */
6834 image->storage_class=DirectClass;
6835 #endif
6836
6837 dcm->lower_lim = dcm->max_value_in;
6838 dcm->upper_lim = -(dcm->lower_lim);
6839 byte=0;
6840 for (y=0; y < image->rows; y++)
6841 {
6842 q=SetImagePixelsEx(image,0,y,image->columns,1,exception);
6843 if (q == (PixelPacket *) NULL)
6844 return MagickFail;
6845 #if defined(GRAYSCALE_USES_PALETTE) /* not used */
6846 indexes=AccessMutableIndexes(image);
6847 #endif
6848 for (x=0; x < image->columns; x++)
6849 {
6850 if (dcm->bytes_per_pixel == 1)
6851 {
6852 if (dcm->transfer_syntax == DCM_TS_RLE)
6853 index=DCM_RLE_ReadByte(image,dcm);
6854 else
6855 index=ReadBlobByte(image);
6856 }
6857 else
6858 if (dcm->bits_allocated != 12)
6859 {
6860 if (dcm->transfer_syntax == DCM_TS_RLE)
6861 index=DCM_RLE_ReadShort(image,dcm);
6862 else
6863 index=dcm->funcReadShort(image);
6864 }
6865 else
6866 {
6867 if (x & 0x01)
6868 {
6869 /* ### TODO - Check whether logic needs altering if msb_state != DCM_MSB_LITTLE */
6870 if (dcm->transfer_syntax == DCM_TS_RLE)
6871 index=DCM_RLE_ReadByte(image,dcm);
6872 else
6873 index=ReadBlobByte(image);
6874 index=(index << 4) | byte;
6875 }
6876 else
6877 {
6878 if (dcm->transfer_syntax == DCM_TS_RLE)
6879 index=DCM_RLE_ReadShort(image,dcm);
6880 else
6881 index=dcm->funcReadShort(image);
6882 byte=index >> 12;
6883 index&=0xfff;
6884 }
6885 }
6886 index&=dcm->max_value_in;
6887 if (dcm->rescaling == DCM_RS_POST)
6888 {
6889 unsigned int
6890 l;
6891
6892 l = index;
6893 if (dcm->pixel_representation == 1)
6894 if (l > (dcm->max_value_in >> 1))
6895 l = dcm->max_value_in-l+1;
6896 if ((int) l < dcm->lower_lim)
6897 dcm->lower_lim = l;
6898 if ((int) l > dcm->upper_lim)
6899 dcm->upper_lim = l;
6900 }
6901 #if defined(GRAYSCALE_USES_PALETTE) /* not used */
6902 if (dcm->rescaling == DCM_RS_PRE)
6903 indexes[x]=dcm->rescale_map[index];
6904 else
6905 indexes[x]=index;
6906 #else
6907 if ((dcm->rescaling == DCM_RS_PRE) &&
6908 (dcm->rescale_map != (Quantum *) NULL))
6909 {
6910 index=dcm->rescale_map[index];
6911 }
6912 q->red=index;
6913 q->green=index;
6914 q->blue=index;
6915 q->opacity=OpaqueOpacity;
6916 q++;
6917 #endif
6918 if (EOFBlob(image))
6919 {
6920 ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
6921 return MagickFail;
6922 }
6923 }
6924 if (!SyncImagePixelsEx(image,exception))
6925 return MagickFail;
6926 if (image->previous == (Image *) NULL)
6927 if (QuantumTick(y,image->rows))
6928 if (!MagickMonitorFormatted(y,image->rows,exception,
6929 LoadImageText,image->filename,
6930 image->columns,image->rows))
6931 return MagickFail;
6932 }
6933 return MagickPass;
6934 }
6935
DCM_ReadPlanarRGBImage(Image * image,DicomStream * dcm,ExceptionInfo * exception)6936 static MagickPassFail DCM_ReadPlanarRGBImage(Image *image,DicomStream *dcm,ExceptionInfo *exception)
6937 {
6938 unsigned long
6939 plane,
6940 y,
6941 x;
6942
6943 register PixelPacket
6944 *q;
6945
6946 if (image->logging)
6947 (void) LogMagickEvent(CoderEvent,GetMagickModule(),
6948 "Reading Planar RGB %s compressed image with %u planes...",
6949 (dcm->transfer_syntax == DCM_TS_RLE ? "RLE" : "not"),
6950 dcm->samples_per_pixel);
6951 /*
6952 Force image to DirectClass since we are only updating DirectClass
6953 representation. The image may be in PseudoClass if we were
6954 previously provided with a Palette.
6955 */
6956 image->storage_class=DirectClass;
6957
6958 for (plane=0; plane < dcm->samples_per_pixel; plane++)
6959 {
6960 if (image->logging)
6961 (void) LogMagickEvent(CoderEvent,GetMagickModule(),
6962 " Plane %lu...",plane);
6963 for (y=0; y < image->rows; y++)
6964 {
6965 q=GetImagePixels(image,0,y,image->columns,1);
6966 if (q == (PixelPacket *) NULL)
6967 return MagickFail;
6968
6969 for (x=0; x < image->columns; x++)
6970 {
6971 switch ((int) plane)
6972 {
6973 case 0:
6974 if (dcm->transfer_syntax == DCM_TS_RLE)
6975 q->red=ScaleCharToQuantum(DCM_RLE_ReadByte(image,dcm));
6976 else
6977 q->red=ScaleCharToQuantum(ReadBlobByte(image));
6978 break;
6979 case 1:
6980 if (dcm->transfer_syntax == DCM_TS_RLE)
6981 q->green=ScaleCharToQuantum(DCM_RLE_ReadByte(image,dcm));
6982 else
6983 q->green=ScaleCharToQuantum(ReadBlobByte(image));
6984 break;
6985 case 2:
6986 if (dcm->transfer_syntax == DCM_TS_RLE)
6987 q->blue=ScaleCharToQuantum(DCM_RLE_ReadByte(image,dcm));
6988 else
6989 q->blue=ScaleCharToQuantum(ReadBlobByte(image));
6990 break;
6991 case 3:
6992 if (dcm->transfer_syntax == DCM_TS_RLE)
6993 q->opacity=ScaleCharToQuantum((Quantum)(MaxRGB-ScaleCharToQuantum(DCM_RLE_ReadByte(image,dcm))));
6994 else
6995 q->opacity=ScaleCharToQuantum((Quantum)(MaxRGB-ScaleCharToQuantum(ReadBlobByte(image))));
6996 break;
6997 }
6998 if (EOFBlob(image))
6999 {
7000 ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
7001 return MagickFail;
7002 }
7003 q++;
7004 }
7005 if (!SyncImagePixels(image))
7006 return MagickFail;
7007 if (image->previous == (Image *) NULL)
7008 if (QuantumTick(y,image->rows))
7009 if (!MagickMonitorFormatted(y,image->rows,exception,
7010 LoadImageText,image->filename,
7011 image->columns,image->rows))
7012 return MagickFail;
7013 }
7014 }
7015 return MagickPass;
7016 }
7017
DCM_ReadRGBImage(Image * image,DicomStream * dcm,ExceptionInfo * exception)7018 static MagickPassFail DCM_ReadRGBImage(Image *image,DicomStream *dcm,ExceptionInfo *exception)
7019 {
7020 unsigned long
7021 y,
7022 x;
7023
7024 register PixelPacket
7025 *q;
7026
7027 Quantum
7028 blue,
7029 green,
7030 red;
7031
7032 red=0;
7033 green=0;
7034 blue=0;
7035
7036 if (image->logging)
7037 (void) LogMagickEvent(CoderEvent,GetMagickModule(),
7038 "Reading RGB image...");
7039
7040 /*
7041 Force image to DirectClass since we are only updating DirectClass
7042 representation. The image may be in PseudoClass if we were
7043 previously provided with a Palette.
7044 */
7045 image->storage_class=DirectClass;
7046
7047 for (y=0; y < image->rows; y++)
7048 {
7049 q=GetImagePixels(image,0,y,image->columns,1);
7050 if (q == (PixelPacket *) NULL)
7051 return MagickFail;
7052
7053 for (x=0; x < image->columns; x++)
7054 {
7055 if (dcm->bytes_per_pixel == 1)
7056 {
7057 if (dcm->transfer_syntax == DCM_TS_RLE)
7058 {
7059 red=DCM_RLE_ReadByte(image,dcm);
7060 green=DCM_RLE_ReadByte(image,dcm);
7061 blue=DCM_RLE_ReadByte(image,dcm);
7062
7063 }
7064 else
7065 {
7066 red=ReadBlobByte(image);
7067 green=ReadBlobByte(image);
7068 blue=ReadBlobByte(image);
7069 }
7070 }
7071 else
7072 {
7073 if (dcm->transfer_syntax == DCM_TS_RLE)
7074 {
7075 red=DCM_RLE_ReadShort(image,dcm);
7076 green=DCM_RLE_ReadShort(image,dcm);
7077 blue=DCM_RLE_ReadShort(image,dcm);
7078 }
7079 else
7080 {
7081 red=dcm->funcReadShort(image);
7082 green=dcm->funcReadShort(image);
7083 blue=dcm->funcReadShort(image);
7084 }
7085 }
7086 red&=dcm->max_value_in;
7087 green&=dcm->max_value_in;
7088 blue&=dcm->max_value_in;
7089 if ((dcm->rescaling == DCM_RS_PRE) &&
7090 (dcm->rescale_map != (Quantum *) NULL))
7091 {
7092 red=dcm->rescale_map[red];
7093 green=dcm->rescale_map[green];
7094 blue=dcm->rescale_map[blue];
7095 }
7096
7097 q->red=(Quantum) red;
7098 q->green=(Quantum) green;
7099 q->blue=(Quantum) blue;
7100 q->opacity=OpaqueOpacity;
7101 q++;
7102 if (EOFBlob(image))
7103 {
7104 ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,image->filename);
7105 return MagickFail;
7106 }
7107 }
7108 if (!SyncImagePixels(image))
7109 return MagickFail;
7110 if (image->previous == (Image *) NULL)
7111 if (QuantumTick(y,image->rows))
7112 if (!MagickMonitorFormatted(y,image->rows,exception,
7113 LoadImageText,image->filename,
7114 image->columns,image->rows))
7115 return MagickFail;
7116 }
7117 return MagickPass;
7118 }
7119
DCM_ReadOffsetTable(Image * image,DicomStream * dcm,ExceptionInfo * exception)7120 static MagickPassFail DCM_ReadOffsetTable(Image *image,DicomStream *dcm,ExceptionInfo *exception)
7121 {
7122 magick_uint32_t
7123 base_offset,
7124 tag,
7125 length,
7126 i;
7127
7128 tag=((magick_uint32_t) dcm->funcReadShort(image) << 16) |
7129 (magick_uint32_t) dcm->funcReadShort(image);
7130 length=dcm->funcReadLong(image);
7131 if (tag != 0xFFFEE000)
7132 return MagickFail;
7133
7134 dcm->offset_ct=length >> 2;
7135 if (dcm->offset_ct == 0)
7136 return MagickPass;
7137
7138 if (dcm->offset_ct != dcm->number_scenes)
7139 {
7140 ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
7141 return MagickFail;
7142 }
7143
7144 dcm->offset_arr=MagickAllocateResourceLimitedArray(magick_uint32_t *,dcm->offset_ct,sizeof(magick_uint32_t));
7145 if (dcm->offset_arr == (magick_uint32_t *) NULL)
7146 {
7147 ThrowException(exception,ResourceLimitError,MemoryAllocationFailed,image->filename);
7148 return MagickFail;
7149 }
7150
7151 for (i=0; i < dcm->offset_ct; i++)
7152 {
7153 dcm->offset_arr[i]=dcm->funcReadLong(image);
7154 if (EOFBlob(image))
7155 return MagickFail;
7156 }
7157 base_offset=(magick_uint32_t)TellBlob(image);
7158 for (i=0; i < dcm->offset_ct; i++)
7159 dcm->offset_arr[i]+=base_offset;
7160
7161 /*
7162 Seek first fragment of first frame if necessary (although it shouldn't be...)
7163 */
7164 if (TellBlob(image) != dcm->offset_arr[0])
7165 SeekBlob(image,dcm->offset_arr[0],SEEK_SET);
7166 return MagickPass;
7167 }
7168
DCM_ReadNonNativeImages(Image ** image,const ImageInfo * image_info,DicomStream * dcm,ExceptionInfo * exception)7169 static MagickPassFail DCM_ReadNonNativeImages(Image **image,const ImageInfo *image_info,DicomStream *dcm,ExceptionInfo *exception)
7170 {
7171 char
7172 filename[MaxTextExtent];
7173
7174 FILE
7175 *file;
7176
7177 int
7178 c;
7179
7180 Image
7181 *image_list,
7182 *next_image;
7183
7184 ImageInfo
7185 *clone_info;
7186
7187 magick_uint32_t
7188 scene,
7189 tag,
7190 status,
7191 length,
7192 i;
7193
7194 image_list=(Image *)NULL;
7195
7196 /*
7197 Read offset table
7198 */
7199 if (DCM_ReadOffsetTable(*image,dcm,exception) == MagickFail)
7200 return MagickFail;
7201
7202 if (dcm->number_scenes == 0U)
7203 {
7204 ThrowException(exception,CorruptImageError,
7205 ImageFileHasNoScenes,
7206 image_info->filename);
7207 return MagickFail;
7208 }
7209
7210 status=MagickPass;
7211 for (scene=0; scene < dcm->number_scenes; scene++)
7212 {
7213 /*
7214 Use temporary file to hold extracted data stream
7215 */
7216 file=AcquireTemporaryFileStream(filename,BinaryFileIOMode);
7217 if (file == (FILE *) NULL)
7218 {
7219 ThrowException(exception,FileOpenError,UnableToCreateTemporaryFile,filename);
7220 return MagickFail;
7221 }
7222
7223 status=MagickPass;
7224 do
7225 {
7226 /*
7227 Read fragment tag
7228 */
7229 tag=(((magick_uint32_t) dcm->funcReadShort(*image) << 16) |
7230 (magick_uint32_t) dcm->funcReadShort(*image));
7231 length=dcm->funcReadLong(*image);
7232 if (EOFBlob(*image))
7233 {
7234 status=MagickFail;
7235 break;
7236 }
7237
7238 if (tag == 0xFFFEE0DD)
7239 {
7240 /* Sequence delimiter tag */
7241 break;
7242 }
7243 else
7244 if (tag != 0xFFFEE000)
7245 {
7246 status=MagickFail;
7247 break;
7248 }
7249
7250 /*
7251 Copy this fragment to the temporary file
7252 */
7253 while (length > 0)
7254 {
7255 c=ReadBlobByte(*image);
7256 if (c == EOF)
7257 {
7258 status=MagickFail;
7259 break;
7260 }
7261 (void) fputc(c,file);
7262 length--;
7263 }
7264
7265 if (dcm->offset_ct == 0)
7266 {
7267 /*
7268 Assume one fragment per frame so break loop unless we are in the last frame
7269 */
7270 if (scene < dcm->number_scenes-1)
7271 break;
7272 }
7273 else
7274 {
7275 /* Look for end of multi-fragment frames by checking for against offset table */
7276 length=TellBlob(*image);
7277 for (i=0; i < dcm->offset_ct; i++)
7278 if (length == dcm->offset_arr[i])
7279 {
7280 break;
7281 }
7282 }
7283 } while (status == MagickPass);
7284
7285 (void) fclose(file);
7286 if (status == MagickPass)
7287 {
7288 clone_info=CloneImageInfo(image_info);
7289 clone_info->blob=(void *) NULL;
7290 clone_info->length=0;
7291 if (dcm->transfer_syntax == DCM_TS_JPEG_2000)
7292 FormatString(clone_info->filename,"jp2:%.1024s",filename);
7293 else
7294 FormatString(clone_info->filename,"jpeg:%.1024s",filename);
7295 next_image=ReadImage(clone_info,exception);
7296 DestroyImageInfo(clone_info);
7297 if (next_image == (Image*)NULL)
7298 {
7299 status=MagickFail;
7300 }
7301 else
7302 if (dcm->rescaling == DCM_RS_POST)
7303 {
7304 /*
7305 ### TODO: ???
7306 We cannot guarantee integrity of input data since libjpeg may already have
7307 downsampled 12- or 16-bit jpegs. Best guess at the moment is to recalculate
7308 scaling using the image depth (unless avoid-scaling is in force)
7309 */
7310 /* Allow for libjpeg having changed depth of image */
7311 dcm->significant_bits=next_image->depth;
7312 dcm->bytes_per_pixel=1;
7313 if (dcm->significant_bits > 8)
7314 dcm->bytes_per_pixel=2;
7315 dcm->max_value_in=MaxValueGivenBits(dcm->significant_bits);
7316 dcm->max_value_out=dcm->max_value_in;
7317 status=DCM_PostRescaleImage(next_image,dcm,True,exception);
7318 }
7319 if (status == MagickPass)
7320 {
7321 strcpy(next_image->filename,(*image)->filename);
7322 next_image->scene=scene;
7323 if (image_list == (Image*)NULL)
7324 image_list=next_image;
7325 else
7326 AppendImageToList(&image_list,next_image);
7327 }
7328 else if (next_image != (Image *) NULL)
7329 {
7330 DestroyImage(next_image);
7331 next_image=(Image *) NULL;
7332 }
7333 }
7334 (void) LiberateTemporaryFile(filename);
7335
7336 if (status == MagickFail)
7337 break;
7338 }
7339 if (EOFBlob(*image))
7340 {
7341 status = MagickFail;
7342 ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,(*image)->filename);
7343 }
7344
7345 if (status == MagickFail)
7346 {
7347 DestroyImageList(image_list);
7348 image_list = (Image *) NULL;
7349 }
7350 else
7351 {
7352 DestroyImage(*image);
7353 *image=image_list;
7354 }
7355 return status;
7356 }
7357
7358 /*
7359 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7360 % %
7361 % %
7362 % %
7363 % R e a d D C M I m a g e %
7364 % %
7365 % %
7366 % %
7367 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7368 %
7369 % Method ReadDCMImage reads a Digital Imaging and Communications in Medicine
7370 % (DICOM) file and returns it. It It allocates the memory necessary for the
7371 % new Image structure and returns a pointer to the new image.
7372 %
7373 % The format of the ReadDCMImage method is:
7374 %
7375 % Image *ReadDCMImage(const ImageInfo *image_info,ExceptionInfo *exception)
7376 %
7377 % A description of each parameter follows:
7378 %
7379 % o image: Method ReadDCMImage returns a pointer to the image after
7380 % reading. A null image is returned if there is a memory shortage or
7381 % if the image cannot be read.
7382 %
7383 % o image_info: Specifies a pointer to a ImageInfo structure.
7384 %
7385 % o exception: return any errors or warnings in this structure.
7386 %
7387 %
7388 */
7389 #define ThrowDCMReaderException(code_,reason_,image_) \
7390 { \
7391 DCM_DestroyDCM(&dcm); \
7392 ThrowReaderException(code_,reason_,image_); \
7393 }
ReadDCMImage(const ImageInfo * image_info,ExceptionInfo * exception)7394 static Image *ReadDCMImage(const ImageInfo *image_info,ExceptionInfo *exception)
7395 {
7396 char
7397 magick[MaxTextExtent];
7398
7399 Image
7400 *image;
7401
7402 int
7403 scene;
7404
7405 size_t
7406 count;
7407
7408 unsigned long
7409 status;
7410
7411 DicomStream
7412 dcm;
7413
7414 /*
7415 Open image file
7416 */
7417 assert(image_info != (const ImageInfo *) NULL);
7418 assert(image_info->signature == MagickSignature);
7419 assert(exception != (ExceptionInfo *) NULL);
7420 assert(exception->signature == MagickSignature);
7421 (void) DCM_InitDCM(&dcm,image_info->verbose);
7422 image=AllocateImage(image_info);
7423 status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception);
7424 if (status == MagickFail)
7425 ThrowDCMReaderException(FileOpenError,UnableToOpenFile,image);
7426
7427 /*
7428 Read DCM preamble
7429 */
7430 if ((count=ReadBlob(image,128,(char *) magick)) != 128)
7431 ThrowDCMReaderException(CorruptImageError,UnexpectedEndOfFile,image);
7432 if ((count=ReadBlob(image,4,(char *) magick)) != 4)
7433 ThrowDCMReaderException(CorruptImageError,UnexpectedEndOfFile,image);
7434 if (image->logging)
7435 (void) LogMagickEvent(CoderEvent,GetMagickModule(),
7436 "magick: \"%.4s\"",magick);
7437 if (LocaleNCompare((char *) magick,"DICM",4) != 0)
7438 (void) SeekBlob(image,0L,SEEK_SET);
7439
7440 /*
7441 Loop to read DCM image header one element at a time
7442 */
7443 status=DCM_ReadElement(image,&dcm,exception);
7444 while ((status == MagickPass) && ((dcm.group != 0x7FE0) || (dcm.element != 0x0010)))
7445 {
7446 DicomElemParseFunc
7447 *pfunc;
7448
7449 pfunc=parse_funcs[dicom_info[dcm.index].funce];
7450 if (pfunc != (DicomElemParseFunc *)NULL)
7451 status=pfunc(image,&dcm,exception);
7452 MagickFreeResourceLimitedMemory(dcm.data);
7453 dcm.data = NULL;
7454 dcm.length = 0;
7455 if (status == MagickPass)
7456 status=DCM_ReadElement(image,&dcm,exception);
7457 }
7458 if (status == MagickFail)
7459 goto dcm_read_failure;
7460 #if defined(IGNORE_WINDOW_FOR_UNSPECIFIED_SCALE_TYPE)
7461 if (dcm.rescale_type == DCM_RT_UNSPECIFIED)
7462 {
7463 dcm.window_width=0;
7464 dcm.rescale_slope=1;
7465 dcm.rescale_intercept=0;
7466 }
7467 #endif
7468 DCM_SetRescaling(&dcm,(AccessDefinition(image_info,"dcm","avoid-scaling") != NULL));
7469 /*
7470 Now process the image data
7471 */
7472 if ((dcm.columns == 0) || (dcm.rows == 0))
7473 {
7474 ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
7475 status=MagickFail;
7476 }
7477 else if ((dcm.samples_per_pixel == 0) || (dcm.samples_per_pixel > 4))
7478 {
7479 ThrowException(exception,CorruptImageError,ImproperImageHeader,image->filename);
7480 status=MagickFail;
7481 }
7482 else if ((dcm.transfer_syntax != DCM_TS_IMPL_LITTLE) &&
7483 (dcm.transfer_syntax != DCM_TS_EXPL_LITTLE) &&
7484 (dcm.transfer_syntax != DCM_TS_EXPL_BIG) &&
7485 (dcm.transfer_syntax != DCM_TS_RLE))
7486 {
7487 status=DCM_ReadNonNativeImages(&image,image_info,&dcm,exception);
7488 dcm.number_scenes=0;
7489 }
7490 else if (dcm.rescaling != DCM_RS_POST)
7491 {
7492 status=DCM_SetupRescaleMap(image,&dcm,exception);
7493 }
7494
7495 if (status == MagickFail)
7496 goto dcm_read_failure;
7497
7498 if (dcm.transfer_syntax == DCM_TS_RLE)
7499 status=DCM_ReadOffsetTable(image,&dcm,exception);
7500
7501 /* Loop to process all scenes in image */
7502 if (image->logging)
7503 (void) LogMagickEvent(CoderEvent,GetMagickModule(),
7504 "DICOM has %d scenes", dcm.number_scenes);
7505 if (status == MagickFail)
7506 goto dcm_read_failure;
7507
7508 for (scene=0; scene < (long) dcm.number_scenes; scene++)
7509 {
7510 if (dcm.transfer_syntax == DCM_TS_RLE)
7511 {
7512 magick_uint32_t
7513 tag,
7514 length;
7515
7516 /*
7517 Discard any remaining bytes from last fragment
7518 */
7519 if (dcm.frag_bytes)
7520 SeekBlob(image,dcm.frag_bytes,SEEK_CUR);
7521
7522 /*
7523 Read fragment tag
7524 */
7525 tag=(((magick_uint32_t) dcm.funcReadShort(image)) << 16) |
7526 (magick_uint32_t) dcm.funcReadShort(image);
7527 length=dcm.funcReadLong(image);
7528 if ((tag != 0xFFFEE000) || (length <= 64) || EOFBlob(image))
7529 {
7530 status=MagickFail;
7531 ThrowDCMReaderException(CorruptImageError,UnexpectedEndOfFile,image);
7532 break;
7533 }
7534
7535 /*
7536 Set up decompression state
7537 */
7538 dcm.frag_bytes=length;
7539 dcm.rle_rep_ct=0;
7540
7541 /*
7542 Read RLE segment table
7543 */
7544 dcm.rle_seg_ct=dcm.funcReadLong(image);
7545 for (length=0; length < 15; length++)
7546 dcm.rle_seg_offsets[length]=dcm.funcReadLong(image);
7547 dcm.frag_bytes-=64;
7548 if (EOFBlob(image))
7549 {
7550 status=MagickFail;
7551 ThrowDCMReaderException(CorruptImageError,UnexpectedEndOfFile,image);
7552 break;
7553 }
7554 if (dcm.rle_seg_ct > 1)
7555 {
7556 fprintf(stdout,"Multiple RLE segments in frame are not supported\n");
7557 status=MagickFail;
7558 break;
7559 }
7560 }
7561
7562 /*
7563 Initialize image structure.
7564 */
7565 image->columns=dcm.columns;
7566 image->rows=dcm.rows;
7567 image->interlace=(dcm.interlace==1)?PlaneInterlace:NoInterlace;
7568 if (image->logging)
7569 (void) LogMagickEvent(CoderEvent,GetMagickModule(),
7570 "Scene[%d]: %lux%lu", scene, image->columns, image->rows);
7571 #if defined(GRAYSCALE_USES_PALETTE)
7572 if ((image->colormap == (PixelPacket *) NULL) && (dcm.samples_per_pixel == 1))
7573 #else
7574 if ((image->colormap == (PixelPacket *) NULL) && (dcm.phot_interp == DCM_PI_PALETTE_COLOR))
7575 #endif
7576 {
7577 status=DCM_SetupColormap(image,&dcm,exception);
7578 if (status == MagickFail)
7579 break;
7580 }
7581 if (image_info->ping)
7582 break;
7583
7584 if (CheckImagePixelLimits(image, exception) != MagickPass)
7585 ThrowDCMReaderException(ResourceLimitError,ImagePixelLimitExceeded,image);
7586
7587 /*
7588 Process image according to type
7589 */
7590 if (dcm.samples_per_pixel == 1)
7591 {
7592 if (dcm.phot_interp == DCM_PI_PALETTE_COLOR)
7593 status=DCM_ReadPaletteImage(image,&dcm,exception);
7594 else
7595 status=DCM_ReadGrayscaleImage(image,&dcm,exception);
7596 }
7597 else
7598 {
7599 if (image->interlace == PlaneInterlace)
7600 status=DCM_ReadPlanarRGBImage(image,&dcm,exception);
7601 else
7602 status=DCM_ReadRGBImage(image,&dcm,exception);
7603 }
7604 if (status != MagickPass)
7605 break;
7606
7607 if ((dcm.rescaling == DCM_RS_PRE) &&
7608 ((dcm.phot_interp == DCM_PI_MONOCHROME1) ||
7609 (dcm.phot_interp == DCM_PI_MONOCHROME2)))
7610 {
7611 if (image->logging)
7612 (void) LogMagickEvent(CoderEvent,GetMagickModule(),
7613 "Normalizing image channels...");
7614 NormalizeImage(image);
7615 }
7616 else
7617 {
7618 if (dcm.rescaling == DCM_RS_POST)
7619 {
7620 if (image->logging)
7621 (void) LogMagickEvent(CoderEvent,GetMagickModule(),
7622 "Rescaling image channels...");
7623 status = DCM_PostRescaleImage(image,&dcm,False,exception);
7624 if (status != MagickPass)
7625 break;
7626 }
7627 }
7628 StopTimer(&image->timer);
7629
7630 /*
7631 Proceed to next image.
7632 */
7633 if (image_info->subrange != 0)
7634 if (image->scene >= (image_info->subimage+image_info->subrange-1))
7635 break;
7636 if (scene < (long) (dcm.number_scenes-1))
7637 {
7638 /*
7639 Allocate next image structure.
7640 */
7641 AllocateNextImage(image_info,image);
7642 if (image->next == (Image *) NULL)
7643 {
7644 status=MagickFail;
7645 break;
7646 }
7647 image=SyncNextImageInList(image);
7648 status=MagickMonitorFormatted(TellBlob(image),GetBlobSize(image),
7649 exception,LoadImagesText,
7650 image->filename);
7651 if (status == MagickFail)
7652 break;
7653 }
7654 }
7655
7656 /*
7657 Free allocated resources
7658 */
7659 dcm_read_failure:
7660 DCM_DestroyDCM(&dcm);
7661 if (status == MagickPass)
7662 {
7663 /* It is possible to have success status yet have no image */
7664 if (image != (Image *) NULL)
7665 {
7666 while (image->previous != (Image *) NULL)
7667 image=image->previous;
7668 CloseBlob(image);
7669 return(image);
7670 }
7671 else
7672 {
7673 ThrowException(exception,CorruptImageError,
7674 ImageFileDoesNotContainAnyImageData,
7675 image_info->filename);
7676 return (Image *) NULL;
7677 }
7678 }
7679 else
7680 {
7681 DestroyImageList(image);
7682 return((Image *) NULL);
7683 }
7684 }
7685
7686 /*
7687 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7688 % %
7689 % %
7690 % %
7691 % R e g i s t e r D C M I m a g e %
7692 % %
7693 % %
7694 % %
7695 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7696 %
7697 % Method RegisterDCMImage adds attributes for the DCM image format to
7698 % the list of supported formats. The attributes include the image format
7699 % tag, a method to read and/or write the format, whether the format
7700 % supports the saving of more than one frame to the same file or blob,
7701 % whether the format supports native in-memory I/O, and a brief
7702 % description of the format.
7703 %
7704 % The format of the RegisterDCMImage method is:
7705 %
7706 % RegisterDCMImage(void)
7707 %
7708 */
RegisterDCMImage(void)7709 ModuleExport void RegisterDCMImage(void)
7710 {
7711 MagickInfo
7712 *entry;
7713
7714 entry=SetMagickInfo("DCM");
7715 entry->decoder=(DecoderHandler) ReadDCMImage;
7716 entry->magick=(MagickHandler) IsDCM;
7717 entry->adjoin=False;
7718 entry->seekable_stream=True;
7719 entry->description="Digital Imaging and Communications in Medicine image";
7720 entry->note="See http://medical.nema.org/ for information on DICOM.";
7721 entry->module="DCM";
7722 (void) RegisterMagickInfo(entry);
7723 }
7724
7725 /*
7726 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7727 % %
7728 % %
7729 % %
7730 % U n r e g i s t e r D C M I m a g e %
7731 % %
7732 % %
7733 % %
7734 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
7735 %
7736 % Method UnregisterDCMImage removes format registrations made by the
7737 % DCM module from the list of supported formats.
7738 %
7739 % The format of the UnregisterDCMImage method is:
7740 %
7741 % UnregisterDCMImage(void)
7742 %
7743 */
UnregisterDCMImage(void)7744 ModuleExport void UnregisterDCMImage(void)
7745 {
7746 (void) UnregisterMagickInfo("DCM");
7747 }
7748 /*
7749 ### TODO :
7750 #1 Fixes on palette support:
7751 - Handle palette images where # of entries > MaxColormapSize - create image
7752 as Direct class, store the original palette (scaled to MaxRGB) and then map
7753 input values via modified palette to output RGB values.
7754 - Honour palette/LUT descriptors (ie values <= min value map to first
7755 entry, value = (min_value + 1) maps to second entry, and so on, whilst
7756 values >= (min value + palette/LUT size) map to last entry.
7757 #2 Use ImportImagePixelArea?
7758 #3 Handling of encapsulated JPEGs which downsample to 8 bit via
7759 libjpeg. These lose accuracy before we can rescale to handle the
7760 issues of PR=1 + window center/width + rescale slope/intercept on
7761 MONOCHROME1 or 2. Worst case : CT-MONO2-16-chest. Currently images
7762 are post-rescaled based on sample range. For PseudoClass grayscales
7763 this is done by colormap manipulation only.
7764 #4 JPEG/JPEG-LS/JPEG 2000: Check that multi frame handling in DCM_ReadEncapImages
7765 is ok
7766 #5 Support LUTs?
7767 #6 Pixel Padding value/range - make transparent or allow use to specify a color?
7768 */
7769