Treat TVBs as opaque: use the accessor functions instead of accessing the fields
[obnox/wireshark/wip.git] / epan / dissectors / packet-dcm.c
1 /* packet-dcm.c
2  * Routines for DICOM dissection
3  * Copyright 2003, Rich Coe <Richard.Coe@med.ge.com>
4  * Copyright 2008-2010, David Aggeler <david_aggeler@hispeed.ch>
5  *
6  * DICOM communication protocol
7  * http://medical.nema.org/dicom/2008
8  *   DICOM Part 8: Network Communication Support for Message Exchange
9  *
10  * $Id$
11  *
12  * Wireshark - Network traffic analyzer
13  * By Gerald Combs <gerald@wireshark.org>
14  * Copyright 1998 Gerald Combs
15  *
16  * This program is free software; you can redistribute it and/or
17  * modify it under the terms of the GNU General Public License
18  * as published by the Free Software Foundation; either version 2
19  * of the License, or (at your option) any later version.
20  *
21  * This program is distributed in the hope that it will be useful,
22  * but WITHOUT ANY WARRANTY; without even the implied warranty of
23  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24  * GNU General Public License for more details.
25  *
26  * You should have received a copy of the GNU General Public License
27  * along with this program; if not, write to the Free Software
28  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
29  */
30
31
32 /* History:
33  * This dissector was originally coded by Rich Coe and then modified by David Aggeler
34  * **********************************************************************************
35  * ToDo
36  *
37  * - Syntax detection, in case an association request is missing in capture
38  * - Read private tags from configuration and parse in capture
39  * - dissect_dcm_heuristic() to return proper data type
40  *
41  * Jul 11, 2010 - David Aggeler
42  *
43  * - Finally, better reassembly using fragment_add_seq_next().
44  *   The previous mode is still supported.
45  * - Fixed sporadic decoding and export issues. Always decode
46  *   association negotiation, since performance check (tree==NULL)
47  *   is now only in dissect_dcm_pdv_fragmented().
48  * - Added one more PDV length check
49  * - Show Association Headers as individual items
50  * - Code cleanup. i.e. moved a few lookup functions to be closer to the dissection
51  *
52  * May 13, 2010 - David Aggeler (SVN 32815)
53  *
54  * - Fixed HF to separate signed & unsigned values and to have BASE_DEC all signed ones
55  * - Fixed private sequences with undefined length in ILE
56  * - Fixed some spellings in comments
57  *
58  * May 27, 2009 - David Aggeler (SVN 29060)
59  *
60  * - Fixed corrupt files on DICOM Export
61  * - Fixed memory limitation on DICOM Export
62  * - Removed minimum packet length for static port mode
63  * - Simplified checks for heuristic mode
64  * - Removed unused functions
65  *
66  * May 17, 2009 - David Aggeler (SVN 28392)
67  *
68  * - Spelling
69  * - Added expert_add_info() for status responses with warning & error level
70  * - Added command details in info column (optionally)
71  *
72  * Dec 19, 2008 to Mar 29, 2009 - Misc (SVN 27880)
73  *
74  * - Spellings, see SVN
75  *
76  * Oct 26, 2008 - David Aggeler (SVN 26662)
77  *
78  * - Support remaining DICOM/ARCNEMA tags
79  *
80  * Oct 12, 2008 - David Aggeler (SVN 26424)
81  *
82  * - Follow-up checkin 26417
83  *
84  * Oct 3, 2008 - David Aggeler (SVN 26417)
85  *
86  * - DICOM Tags: Support all tags, except for group 1000, 7Fxx
87  *               and tags (0020,3100 to 0020, 31FF).
88  *               Luckily these ones are retired anyhow
89  * - DICOM Tags: Optionally show sequences, items and tags as subtree
90  * - DICOM Tags: Certain items do have a summary of a few contained tags
91  * - DICOM Tags: Support all defined VR representations
92  * - DICOM Tags: For Explicit Syntax, use VR in the capture
93  * - DICOM Tags: Lookup UIDs
94  * - DICOM Tags: Handle split at PDV start and end. RT Structures were affected by this.
95  * - DICOM Tags: Handle split in tag header
96  *
97  * - Added all status messages from PS 3.4 & PS 3.7
98  * - Fixed two more type warnings on solaris, i.e. (gchar *)tvb_get_ephemeral_string
99  * - Replaced all ep_alloc() with ep_alloc0() and se_alloc() with se_alloc0()
100  * - Replaced g_strdup with ep_strdup() or se_strdup()
101  * - Show multiple PDU description in COL_INFO, not just last one. Still not all, but more
102  *   sophisticated logic for this column is probably overkill
103  * - Since DICOM is a 32 bit protocol with all length items specified unsigned
104  *   all offset & position variables are now declared as guint32 for dissect_dcm_pdu and
105  *   its nested functions. dissect_dcm_main() remained by purpose on int,
106  *   since we request data consolidation, requiring a TRUE as return value
107  * - Decode DVTk streams when using defined ports (not in heuristic mode)
108  * - Changed to warning level 4 (for MSVC) and fixed the warnings
109  * - Code cleanup & removed last DISSECTOR_ASSERT()
110  *
111  * Jul 25, 2008 - David Aggeler (SVN 25834)
112  *
113  * - Replaced guchar with gchar, since it caused a lot of warnings on solaris.
114  * - Moved a little more form the include to this one to be consistent
115  *
116  * Jul 17, 2008 - David Aggeler
117  *
118  * - Export objects as part 10 compliant DICOM file. Finally, this major milestone has been reached.
119  * - PDVs are now a child of the PCTX rather than the ASSOC object.
120  * - Fixed PDV continuation for unknown tags (e.g. RT Structure Set)
121  * - Replaced proprietary trim() with g_strstrip()
122  * - Fixed strings that are displayed with /000 (padding of odd length)
123  * - Added expert_add_info() for invalid flags and presentation context IDs
124  *
125  * Jun 17, 2008 - David Aggeler
126  *
127  * - Support multiple PDVs per PDU
128  * - Better summary, in PDV, PDU header and in INFO Column, e.g. show commands like C-STORE
129  * - Fixed Association Reject (was working before my changes)
130  * - Fixed PDV Continuation with very small packets. Reduced minimum packet length
131  *   from 10 to 2 Bytes for PDU Type 4
132  * - Fixed PDV Continuation. Last packet was not found correctly.
133  * - Fixed compilation warning (build 56 on solaris)
134  * - Fixed tree expansion (hf_dcm_xxx)
135  * - Added expert_add_info() for Association Reject
136  * - Added expert_add_info() for Association Abort
137  * - Added expert_add_info() for short PDVs (i.e. last fragment, but PDV is not completed yet)
138  * - Clarified and grouped data structures and its related code (dcmItem, dcmState) to have
139  *   consistent _new() & _get() functions and to be be according to coding conventions
140  * - Added more function declaration to be more consistent
141  * - All dissect_dcm_xx now have (almost) the same parameter order
142  * - Removed DISSECTOR_ASSERT() for packet data errors. Not designed to handle this.
143  * - Handle multiple DICOM Associations in a capture correctly, i.e. if presentation contexts are different.
144  *
145  * May 23, 2008 - David Aggeler
146  *
147  * - Added Class UID lookup, both in the association and in the transfer
148  * - Better hierarchy for items in Association request/response and therefore better overview
149  *   This was a major rework. Abstract Syntax & Transfer Syntax are now children
150  *   of a presentation context and therefore grouped. User Info is now grouped.
151  * - Re-assemble PDVs that span multiple PDUs, i.e fix continuation packets
152  *   This caused significant changes to the data structures
153  * - Added preference with dicom tcp ports, to prevent 'stealing' the conversation
154  *   i.e. don't just rely on heuristic
155  * - Use pinfo->desegment_len instead of tcp_dissect_pdus()
156  * - Returns number of bytes parsed
157  * - For non DICOM packets, do not allocate any memory anymore,
158  * - Added one DISSECTOR_ASSERT() to prevent loop with len==0. More to come
159  * - Heuristic search is optional to save resources for non DICOM users
160  *
161  * - Output naming closer to DICOM Standard
162  * - Variable names closer to Standard
163  * - Protocol in now called DICOM not dcm anymore.
164  * - Fixed type of a few variables to guchar instead of guint8
165  * - Changed some of the length displays to decimal, because the hex value can
166  *   already be seen in the packet and decimal is easier for length calculation
167  *   in respect to TCP
168  *
169  * Apr 28, 2005 - Rich Coe
170  *
171  * - fix memory leak when Assoc packet is processed repeatedly in wireshark
172  * - removed unused partial packet flag
173  * - added better support for DICOM VR
174  *      - sequences
175  *      - report actual VR in packet display, if supplied by xfer syntax
176  *      - show that we are not displaying entire tag string with '[...]',
177  *        some tags can hold up to 2^32-1 chars
178  *
179  * - remove my goofy attempt at trying to get access to the fragmented packets
180  * - process all the data in the Assoc packet even if display is off
181  * - limit display of data in Assoc packet to defined size of the data even
182  *   if reported size is larger
183  * - show the last tag in a packet as [incomplete] if we don't have all the data
184  * - added framework for reporting DICOM async negotiation (not finished)
185  *   (I'm not aware of an implementation which currently supports this)
186  *
187  * Nov 9, 2004 - Rich Coe
188  *
189  * - Fixed the heuristic code -- sometimes a conversation already exists
190  * - Fixed the dissect code to display all the tags in the pdu
191  *
192  * Initial - Rich Coe
193  *
194  * - It currently displays most of the DICOM packets.
195  * - I've used it to debug Query/Retrieve, Storage, and Echo protocols.
196  * - Not all DICOM tags are currently displayed symbolically.
197  *   Unknown tags are displayed as '(unknown)'
198  *   More known tags might be added in the future.
199  *   If the tag data contains a string, it will be displayed.
200  *   Even if the tag contains Explicit VR, it is not currently used to
201  *   symbolically display the data.  Consider this a future enhancement.
202  *
203  */
204
205 #ifdef HAVE_CONFIG_H
206 # include "config.h"
207 #endif
208
209 #include <stdlib.h>
210 #include <string.h>
211 #include <ctype.h>
212
213 #include <glib.h>
214
215 #include <epan/prefs.h>
216 #include <epan/packet.h>
217 #include <epan/emem.h>
218 #include <epan/strutil.h>
219 #include <epan/conversation.h>
220 #include <epan/expert.h>
221 #include <epan/tap.h>
222 #include <epan/reassemble.h>
223
224 #include "packet-tcp.h"
225
226 #include "packet-dcm.h"
227
228 #define DICOM_DEFAULT_RANGE "104"
229
230 /* Many thanks to http://medicalconnections.co.uk/ for the GUID */
231 #define WIRESHARK_IMPLEMENTATION_UID                    "1.2.826.0.1.3680043.8.427.10"
232 #define WIRESHARK_MEDIA_STORAGE_SOP_CLASS_UID           "1.2.826.0.1.3680043.8.427.11.1"
233 #define WIRESHARK_MEDIA_STORAGE_SOP_INSTANCE_UID_PREFIX "1.2.826.0.1.3680043.8.427.11.2"
234 #define WIRESHARK_IMPLEMENTATION_VERSION                "WIRESHARK"
235
236 #define MAX_BUF_LEN 1024                                    /* Used for string allocations */
237
238 static range_t *global_dcm_tcp_range = NULL;
239 static range_t *global_dcm_tcp_range_backup = NULL;         /* needed to deregister */
240
241 static gboolean global_dcm_heuristic = FALSE;
242 static gboolean global_dcm_export_header = TRUE;
243 static guint    global_dcm_export_minsize = 4096;           /* Filter small objects in export */
244
245 static gboolean global_dcm_seq_subtree = TRUE;
246 static gboolean global_dcm_tag_subtree = FALSE;             /* Only useful for debugging */
247 static gboolean global_dcm_cmd_details = TRUE;              /* Show details in header and info column */
248 static gboolean global_dcm_reassemble = TRUE;               /* Merge fragmented PDVs */
249
250 static GHashTable *dcm_tag_table = NULL;
251 static GHashTable *dcm_uid_table = NULL;
252 static GHashTable *dcm_status_table = NULL;
253
254 /* Initialize the protocol and registered fields */
255 static int proto_dcm = -1;
256
257 static int dicom_eo_tap = -1;
258
259 static int hf_dcm_pdu = -1,
260     hf_dcm_pdu_len = -1,
261     hf_dcm_pdu_type = -1,
262     hf_dcm_assoc_version = -1,
263     hf_dcm_assoc_called = -1,
264     hf_dcm_assoc_calling = -1,
265     hf_dcm_assoc_reject_result = -1,
266     hf_dcm_assoc_reject_source = -1,
267     hf_dcm_assoc_reject_reason = -1,
268     hf_dcm_assoc_abort_source = -1,
269     hf_dcm_assoc_abort_reason = -1,
270     hf_dcm_assoc_item_type = -1,
271     hf_dcm_assoc_item_len = -1,
272     hf_dcm_actx = -1,
273     hf_dcm_pctx_id = -1,
274     hf_dcm_pctx_result = -1,
275     hf_dcm_pctx_abss_syntax = -1,
276     hf_dcm_pctx_xfer_syntax = -1,
277     hf_dcm_info_uid = -1,
278     hf_dcm_info_version = -1,
279     hf_dcm_pdu_maxlen = -1,
280     hf_dcm_pdv_len = -1,
281     hf_dcm_pdv_ctx = -1,
282     hf_dcm_pdv_flags = -1,
283     hf_dcm_data_tag = -1,
284     hf_dcm_tag = -1,
285     hf_dcm_tag_vr = -1,
286     hf_dcm_tag_vl = -1,
287     hf_dcm_tag_value_str = -1,
288     hf_dcm_tag_value_16u = -1,
289     hf_dcm_tag_value_16s = -1,
290     hf_dcm_tag_value_32s = -1,
291     hf_dcm_tag_value_32u = -1,
292     hf_dcm_tag_value_byte = -1;
293
294
295 /* Initialize the subtree pointers */
296 static gint
297     ett_dcm = -1,
298     ett_assoc = -1,
299     ett_assoc_header = -1,
300     ett_assoc_actx = -1,
301     ett_assoc_pctx = -1,
302     ett_assoc_pctx_abss = -1,
303     ett_assoc_pctx_xfer = -1,
304     ett_assoc_info = -1,
305     ett_assoc_info_uid = -1,
306     ett_assoc_info_version = -1,
307     ett_dcm_data = -1,
308     ett_dcm_data_pdv = -1,
309     ett_dcm_data_tag = -1,
310     ett_dcm_data_seq = -1,
311     ett_dcm_data_item = -1;
312
313 static dissector_handle_t dcm_handle;
314
315 static const value_string dcm_pdu_ids[] = {
316     { 1, "ASSOC Request" },
317     { 2, "ASSOC Accept" },
318     { 3, "ASSOC Reject" },
319     { 4, "Data" },
320     { 5, "RELEASE Request" },
321     { 6, "RELEASE Response" },
322     { 7, "ABORT" },
323     { 0, NULL }
324 };
325
326 static const value_string dcm_assoc_item_type[] = {
327     { 0x10, "Application Context" },
328     { 0x20, "Presentation Context" },
329     { 0x21, "Presentation Context Reply" },
330     { 0x30, "Abstract Syntax" },
331     { 0x40, "Transfer Syntax" },
332     { 0x50, "User Info" },
333     { 0x51, "Max Length" },
334     { 0x52, "Implementation Class UID" },
335     { 0x55, "Implementation Version" },
336     { 0, NULL }
337 };
338
339 /* ************************************************************************* */
340 /*                  Fragment items                                           */
341 /* ************************************************************************* */
342
343 /* Initialize the subtree pointers */
344 static gint ett_dcm_pdv = -1;
345
346 static gint ett_dcm_pdv_fragment = -1;
347 static gint ett_dcm_pdv_fragments = -1;
348
349 static int hf_dcm_pdv_fragments = -1;
350 static int hf_dcm_pdv_fragment = -1;
351 static int hf_dcm_pdv_fragment_overlap = -1;
352 static int hf_dcm_pdv_fragment_overlap_conflicts = -1;
353 static int hf_dcm_pdv_fragment_multiple_tails = -1;
354 static int hf_dcm_pdv_fragment_too_long_fragment = -1;
355 static int hf_dcm_pdv_fragment_error = -1;
356 static int hf_dcm_pdv_fragment_count = -1;
357 static int hf_dcm_pdv_reassembled_in = -1;
358 static int hf_dcm_pdv_reassembled_length = -1;
359
360 static const fragment_items dcm_pdv_fragment_items = {
361     /* Fragment subtrees */
362     &ett_dcm_pdv_fragment,
363     &ett_dcm_pdv_fragments,
364     /* Fragment fields */
365     &hf_dcm_pdv_fragments,
366     &hf_dcm_pdv_fragment,
367     &hf_dcm_pdv_fragment_overlap,
368     &hf_dcm_pdv_fragment_overlap_conflicts,
369     &hf_dcm_pdv_fragment_multiple_tails,
370     &hf_dcm_pdv_fragment_too_long_fragment,
371     &hf_dcm_pdv_fragment_error,
372     &hf_dcm_pdv_fragment_count,
373     &hf_dcm_pdv_reassembled_in,
374     &hf_dcm_pdv_reassembled_length,
375     /* Tag */
376     "Message fragments"
377 };
378
379 /* Structures to handle fragmented DICOM PDU packets */
380 static GHashTable *dcm_pdv_fragment_table = NULL;
381 static GHashTable *dcm_pdv_reassembled_table = NULL;
382
383 typedef struct dcm_open_tag {
384
385     /* Contains information about an open tag in a PDV, in case it was not complete.
386
387        This implementation differentiates between open headers (grm, elm, vr, vl) and
388        open values. This data structure will handl both cases.
389
390        Open headers are not shown in the packet where the tag starts, but only in the next PDV.
391        Open values are shown in the packet where the tag starts, with <Byte 1-n> as the value
392
393        The same PDV can close an open tag from a previous PDV at the beginning
394        and at the same have time open a new tag at the end. The closing part at the beginning
395        does not have it's own persitent data.
396
397        Do not overwrite the values, once defined, to save some memory.
398
399        Since PDVs are always n*2 bytes, store each of the 2 Bytes in a variable.
400        This way, we don't need to call tvb_get_xxx on a self created buffer
401
402     */
403
404     gboolean    is_header_fragmented;
405     gboolean    is_value_fragmented;
406
407     guint32     len_decoded;    /* Should only by < 16 bytes                */
408
409     guint16     grp;            /* Already decoded group                    */
410     guint16     elm;            /* Already decoded element                  */
411     gchar      *vr;             /* Already decoded VR                       */
412
413     gboolean    is_vl_long;     /* If TRUE, Value Length is 4 Bytes, otherwise 2 */
414     guint16     vl_1;           /* Partially decoded 1st two bytes of length  */
415     guint16     vl_2;           /* Partially decoded 2nd two bytes of length  */
416
417     /* These ones are, where the value was truncated */
418     guint32 len_total;          /* Tag length of 'oversized' tags. Used for display */
419     guint32 len_remaining;      /* Remining tag bytes to 'decoded' as binary data after this PDV */
420
421     gchar  *desc;               /* Last decoded description */
422
423 } dcm_open_tag_t;
424
425 /*
426     Per Data PDV store data needed, to allow decoding of tags longer than a PDV
427 */
428 typedef struct dcm_state_pdv {
429
430     struct dcm_state_pdv *next, *prev;
431
432     guint32  packet_no;         /* Wireshark packet number, where pdv starts */
433     guint32  offset;            /* Offset in packet, where PDV header starts */
434
435     gchar   *desc;              /* PDV description.         se_alloc()  */
436
437     guint8  pctx_id;            /* Reference to used Presentation Context */
438
439     /* Following is drived from the transfer syntax in the parent PCTX, execpt for Command PDVs */
440     guint8  syntax;
441
442     /* Used and filled for Export Object only */
443     gpointer data;              /* Copy of PDV data without any PDU/PDV header */
444     guint32  data_len;          /* Length of this PDV buffer. If >0, memory has been allocated */
445
446     gchar   *sop_class_uid;     /* SOP Class UID.    Set in 1st PDV of a DICOM object. se_alloc() */
447     gchar   *sop_instance_uid;  /* SOP Instance UID. Set in 1st PDV of a DICOM object. se_alloc() */
448     /* End Export use */
449
450     gboolean is_storage;        /* Ture, if the Data PDV is on the context of a storage SOP Class */
451     gboolean is_flagvalid;      /* The following two flags are initalized correctly */
452     gboolean is_command;        /* This PDV is a command rather than a data package */
453     gboolean is_last_fragment;  /* Last Fragment bit was set, i.e. termination of an object
454                                    This flag delimits different dicom object in the same
455                                    association */
456     gboolean is_corrupt;        /* Early termination of long PDVs */
457
458                                 /* The following five attributes are only used from command PDVs */
459
460     gchar   *command;           /* Decoded command as text */
461     gchar   *status;
462     gchar   *comment;           /* Error comment, if any */
463
464     gboolean is_warning;        /* Command response is a cancel, warning, error */
465
466     guint16  message_id;        /* (0000,0110) Message ID */
467     guint16  message_id_resp;   /* (0000,0120) Message ID Being Responded To */
468
469     guint16  no_remaining;      /* (0000,1020) Number of Remaining Sub-operations */
470     guint16  no_completed;      /* (0000,1021) Number of Completed Sub-operations */
471     guint16  no_failed;         /* (0000,1022) Number of Failed Sub-operations  */
472     guint16  no_warning;        /* (0000,1023) Number of Warning Sub-operations */
473
474     dcm_open_tag_t  open_tag;   /* Container to store information about a fragmented tag */
475
476 } dcm_state_pdv_t;
477
478 /*
479     Per Presentation Context in an association store data needed, for subsequent decoding
480 */
481 typedef struct dcm_state_pctx {
482
483     struct dcm_state_pctx *next, *prev;
484
485     guint8 id;                  /* 0x20 Presentation Context ID */
486     gchar *abss_uid;            /* 0x30 Abstract syntax */
487     gchar *abss_desc;           /* 0x30 Abstract syntax decoded*/
488     gchar *xfer_uid;            /* 0x40 Accepted Transfer syntax */
489     gchar *xfer_desc;           /* 0x40 Accepted Transfer syntax decoded*/
490     guint8 syntax;              /* Decoded transfer syntax */
491 #define DCM_ILE  0x01           /* implicit, little endian */
492 #define DCM_EBE  0x02           /* explicit, big endian */
493 #define DCM_ELE  0x03           /* explicit, little endian */
494 #define DCM_UNK  0xf0
495
496     dcm_state_pdv_t     *first_pdv,  *last_pdv;         /* List of PDV objects */
497
498 } dcm_state_pctx_t;
499
500
501 typedef struct dcm_state_assoc {
502
503     struct dcm_state_assoc *next, *prev;
504
505     dcm_state_pctx_t    *first_pctx, *last_pctx;        /* List of Presentation context objects */
506
507     guint32 packet_no;                  /* Wireshark packet number, where association starts */
508
509 #define AEEND 16
510     gchar ae_called[1+AEEND];           /* Called  AE tilte in A-ASSOCIATE RQ */
511     gchar ae_calling[1+AEEND];          /* Calling AE tilte in A-ASSOCIATE RQ */
512     gchar ae_called_resp[1+AEEND];      /* Called  AE tilte in A-ASSOCIATE RP */
513     gchar ae_calling_resp[1+AEEND];     /* Calling AE tilte in A-ASSOCIATE RP */
514
515 } dcm_state_assoc_t;
516
517 typedef struct dcm_state {
518
519     struct dcm_state_assoc *first_assoc, *last_assoc;
520
521     gboolean valid;                     /* this conversation is a DICOM conversation */
522
523 } dcm_state_t;
524
525
526 #define DCM_VR_AE  1  /* Application Entity        */
527 #define DCM_VR_AS  2  /* Age String                */
528 #define DCM_VR_AT  3  /* Attribute Tag             */
529 #define DCM_VR_CS  4  /* Code String               */
530 #define DCM_VR_DA  5  /* Date                      */
531 #define DCM_VR_DS  6  /* Decimal String            */
532 #define DCM_VR_DT  7  /* Date Time                 */
533 #define DCM_VR_FL  8  /* Floating Point Single     */
534 #define DCM_VR_FD  9  /* Floating Point Double     */
535 #define DCM_VR_IS 10  /* Integer String            */
536 #define DCM_VR_LO 11  /* Long String               */
537 #define DCM_VR_LT 12  /* Long Text                 */
538 #define DCM_VR_OB 13  /* Other Byte String         */
539 #define DCM_VR_OF 14  /* Other Float String        */
540 #define DCM_VR_OW 15  /* Other Word String         */
541 #define DCM_VR_PN 16  /* Person Name               */
542 #define DCM_VR_SH 17  /* Short String              */
543 #define DCM_VR_SL 18  /* Signed Long               */
544 #define DCM_VR_SQ 19  /* Sequence of Items         */
545 #define DCM_VR_SS 20  /* Signed Short              */
546 #define DCM_VR_ST 21  /* Short Text                */
547 #define DCM_VR_TM 22  /* Time                      */
548 #define DCM_VR_UI 23  /* Unique Identifier (UID)   */
549 #define DCM_VR_UL 24  /* Unsigned Long             */
550 #define DCM_VR_UN 25  /* Unknown                   */
551 #define DCM_VR_US 26  /* Unsigned Short            */
552 #define DCM_VR_UT 27  /* Unlimited Text            */
553
554 /* Following must be in the same order as the defintions above */
555 static const gchar* dcm_tag_vr_lookup[] = {
556     "  ",
557     "AE","AS","AT","CS","DA","DS","DT","FL",
558     "FD","IS","LO","LT","OB","OF","OW","PN",
559     "SH","SL","SQ","SS","ST","TM","UI","UL",
560     "UN","US","UT"
561 };
562
563 /* ---------------------------------------------------------------------
564  * DICOM Status Value Definitions
565  *
566  * Collected from PS 3.7 & 3.4
567  *
568 */
569
570 typedef struct dcm_status {
571     const guint16 value;
572     const gchar *description;
573 } dcm_status_t;
574
575 static dcm_status_t dcm_status_data[] = {
576
577     /* From PS 3.7 */
578
579     { 0x0000,   "Success"},
580     { 0x0105,   "No such attribute"},
581     { 0x0106,   "Invalid attribute value"},
582     { 0x0107,   "Attribute list error"},
583     { 0x0110,   "Processing failure"},
584     { 0x0111,   "Duplicate SOP instance"},
585     { 0x0112,   "No Such object instance"},
586     { 0x0113,   "No such event type"},
587     { 0x0114,   "No such argument"},
588     { 0x0115,   "Invalid argument value"},
589     { 0x0116,   "Attribute Value Out of Range"},
590     { 0x0117,   "Invalid object instance"},
591     { 0x0118,   "No Such SOP class"},
592     { 0x0119,   "Class-instance conflict"},
593     { 0x0120,   "Missing attribute"},
594     { 0x0121,   "Missing attribute value"},
595     { 0x0122,   "Refused: SOP class not supported"},
596     { 0x0123,   "No such action type"},
597     { 0x0210,   "Duplicate invocation"},
598     { 0x0211,   "Unrecognized operation"},
599     { 0x0212,   "Mistyped argument"},
600     { 0x0213,   "Resource limitation"},
601     { 0xFE00,   "Cancel"},
602
603     /* from PS 3.4 */
604
605     { 0x0001,   "Requested optional Attributes are not supported"},
606     { 0xA501,   "Refused because General Purpose Scheduled Procedure Step Object may no longer be updated"},
607     { 0xA502,   "Refused because the wrong Transaction UID is used"},
608     { 0xA503,   "Refused because the General Purpose Scheduled Procedure Step SOP Instance is already in the 'IN PROGRESS' state"},
609     { 0xA504,   "Refused because the related General Purpose Scheduled Procedure Step SOP Instance is not in the 'IN PROGRESS' state"},
610     { 0xA505,   "Refused because Referenced General Purpose Scheduled Procedure Step Transaction UID does not match the Transaction UID of the N-ACTION request"},
611     { 0xA510,   "Refused because an Initiate Media Creation action has already been received for this SOP Instance"},
612     { 0xA700,   "Refused: Out of Resources"},
613     { 0xA701,   "Refused: Out of Resources - Unable to calculate number of matches"},
614     { 0xA702,   "Refused: Out of Resources - Unable to perform sub-operations"},
615     /*
616     { 0xA7xx,   "Refused: Out of Resources"},
617     */
618     { 0xA801,   "Refused: Move Destination unknown"},
619     /*
620     { 0xA9xx,   "Error: Data Set does not match SOP Class"},
621     */
622     { 0xB000,   "Sub-operations Complete - One or more Failures"},
623     { 0xB006,   "Elements Discarded"},
624     { 0xB007,   "Data Set does not match SOP Class"},
625     { 0xB101,   "Specified Synchronization Frame of Reference UID does not match SCP Synchronization Frame of Reference"},
626     { 0xB102,   "Study Instance UID coercion; Event logged under a different Study Instance UID"},
627     { 0xB104,   "IDs inconsistent in matching a current study; Event logged"},
628     { 0xB605,   "Requested Min Density or Max Density outside of printer's operating range. The printer will use its respective minimum or maximum density value instead"},
629     { 0xC000,   "Error: Cannot understand/Unable to process"},
630     { 0xC100,   "More than one match found"},
631     { 0xC101,   "Procedural Logging not available for specified Study Instance UID"},
632     { 0xC102,   "Event Information does not match Template"},
633     { 0xC103,   "Cannot match event to a current study"},
634     { 0xC104,   "IDs inconsistent in matching a current study; Event not logged"},
635     { 0xC200,   "Unable to support requested template"},
636     { 0xC201,   "Media creation request already completed"},
637     { 0xC202,   "Media creation request already in progress and cannot be interrupted"},
638     { 0xC203,   "Cancellation denied for unspecified reason"},
639     /*
640     { 0xCxxx,   "Error: Cannot understand/Unable to Process"},
641     { 0xFE00,   "Matching/Sub-operations terminated due to Cancel request"},
642     */
643     { 0xFF00,   "Current Match is supplied. Sub-operations are continuing"},
644     { 0xFF01,   "Matches are continuing - Warning that one or more Optional Keys were not supported for existence for this Identifier"}
645
646 };
647
648
649 /* ---------------------------------------------------------------------
650  * DICOM Tag Definitions
651  *
652  * Part 6 lists following different Value Representations (2006-2008)
653  * AE,AS,AT,CS,DA,DS,DT,FD,FL,IS,LO,LT,OB,OB or OW,OF,OW,OW or OB,
654  * PN,SH,SL,SQ,SS,ST,TM,UI,UL,US,US or SS,US or SS or OW,UT
655  *
656  * Some Tags can have different VRs
657  *
658  * Group 1000 is not supported, multiple tags with same description  (retired anyhow)
659  * Group 7Fxx is not supported, multiple tags with same description  (retired anyhow)
660  *
661  * Tags (0020,3100 to 0020, 31FF) not supported, multiple tags with same description  (retired anyhow)
662  *
663  * Repeating groups (50xx & 60xx) are manually added. Declared as 5000 & 6000
664  */
665
666 typedef struct dcm_tag {
667     const guint32 tag;
668     const gchar *description;
669     const gchar *vr;
670     const gchar *vm;
671     const gboolean is_retired;
672     const gboolean add_to_summary;          /* Add to parent's item description */
673 } dcm_tag_t;
674
675 static dcm_tag_t dcm_tag_data[] = {
676
677     /* Command Tags */
678     { 0x00000000, "Command Group Length", "UL", "1", 0, 0},
679     { 0x00000002, "Affected SOP Class UID", "UI", "1", 0, 0},
680     { 0x00000003, "Requested SOP Class UID", "UI", "1", 0, 0},
681     { 0x00000100, "Command Field", "US", "1", 0, 0},
682     { 0x00000110, "Message ID", "US", "1", 0, 0},
683     { 0x00000120, "Message ID Being Responded To", "US", "1", 0, 0},
684     { 0x00000600, "Move Destination", "AE", "1", 0, 0},
685     { 0x00000700, "Priority", "US", "1", 0, 0},
686     { 0x00000800, "Data Set Type", "US", "1", 0, 0},
687     { 0x00000900, "Status", "US", "1", 0, 0},
688     { 0x00000901, "Offending Element", "AT", "1-n", 0, 0},
689     { 0x00000902, "Error Comment", "LO", "1", 0, 0},
690     { 0x00000903, "Error ID", "US", "1", 0, 0},
691     { 0x00001000, "Affected SOP Instance UID", "UI", "1", 0, 0},
692     { 0x00001001, "Requested SOP Instance UID", "UI", "1", 0, 0},
693     { 0x00001002, "Event Type ID", "US", "1", 0, 0},
694     { 0x00001005, "Attribute Identifier List", "AT", "1-n", 0, 0},
695     { 0x00001008, "Action Type ID", "US", "1", 0, 0},
696     { 0x00001020, "Number of Remaining Sub-operations", "US", "1", 0, 0},
697     { 0x00001021, "Number of Completed Sub-operations", "US", "1", 0, 0},
698     { 0x00001022, "Number of Failed Sub-operations", "US", "1", 0, 0},
699     { 0x00001023, "Number of Warning Sub-operations", "US", "1", 0, 0},
700     { 0x00001030, "Move Originator Application Entity Title", "AE", "1", 0, 0},
701     { 0x00001031, "Move Originator Message ID", "US", "1", 0, 0},
702     { 0x00000001, "Length to End", "UL", "1", -1, 0},
703     { 0x00000010, "Recognition Code", "CS", "1", -1, 0},
704     { 0x00000200, "Initiator", "AE", "1", -1, 0},
705     { 0x00000300, "Receiver", "AE", "1", -1, 0},
706     { 0x00000400, "Find Location", "AE", "1", -1, 0},
707     { 0x00000850, "Number of Matches", "US", "1", -1, 0},
708     { 0x00000860, "Response Sequence Number", "US", "1", -1, 0},
709     { 0x00004000, "DIALOG Receiver", "AT", "1", -1, 0},
710     { 0x00004010, "Terminal Type", "AT", "1", -1, 0},
711     { 0x00005010, "Message Set ID", "SH", "1", -1, 0},
712     { 0x00005020, "End Message ID", "SH", "1", -1, 0},
713     { 0x00005110, "Display Format", "AT", "1", -1, 0},
714     { 0x00005120, "Page Position ID", "AT", "1", -1, 0},
715     { 0x00005130, "Text Format ID", "CS", "1", -1, 0},
716     { 0x00005140, "Nor/Rev", "CS", "1", -1, 0},
717     { 0x00005150, "Add Gray Scale", "CS", "1", -1, 0},
718     { 0x00005160, "Borders", "CS", "1", -1, 0},
719     { 0x00005170, "Copies", "IS", "1", -1, 0},
720     { 0x00005180, "Magnification Type", "CS", "1", -1, 0},
721     { 0x00005190, "Erase", "CS", "1", -1, 0},
722     { 0x000051A0, "Print", "CS", "1", -1, 0},
723     { 0x000051B0, "Overlays", "US", "1-n", -1, 0},
724
725
726     /* Data Tags */
727     { 0x00080001, "Length to End", "UL", "1", -1, 0},
728     { 0x00080005, "Specific Character Set", "CS", "1-n", 0, 0},
729     { 0x00080008, "Image Type", "CS", "2-n", 0, 0},
730     { 0x00080010, "Recognition Code", "CS", "1", -1, 0},
731     { 0x00080012, "Instance Creation Date", "DA", "1", 0, 0},
732     { 0x00080013, "Instance Creation Time", "TM", "1", 0, 0},
733     { 0x00080014, "Instance Creator UID", "UI", "1", 0, 0},
734     { 0x00080016, "SOP Class UID", "UI", "1", 0, 0},
735     { 0x00080018, "SOP Instance UID", "UI", "1", 0, 0},
736     { 0x0008001A, "Related General SOP Class UID", "UI", "1-n", 0, 0},
737     { 0x0008001B, "Original Specialized SOP Class UID", "UI", "1", 0, 0},
738     { 0x00080020, "Study Date", "DA", "1", 0, 0},
739     { 0x00080021, "Series Date", "DA", "1", 0, 0},
740     { 0x00080022, "Acquisition Date", "DA", "1", 0, 0},
741     { 0x00080023, "Content Date", "DA", "1", 0, 0},
742     { 0x00080024, "Overlay Date", "DA", "1", -1, 0},
743     { 0x00080025, "Curve Date", "DA", "1", -1, 0},
744     { 0x0008002A, "Acquisition DateTime", "DT", "1", 0, 0},
745     { 0x00080030, "Study Time", "TM", "1", 0, 0},
746     { 0x00080031, "Series Time", "TM", "1", 0, 0},
747     { 0x00080032, "Acquisition Time", "TM", "1", 0, 0},
748     { 0x00080033, "Content Time", "TM", "1", 0, 0},
749     { 0x00080034, "Overlay Time", "TM", "1", -1, 0},
750     { 0x00080035, "Curve Time", "TM", "1", -1, 0},
751     { 0x00080040, "Data Set Type", "US", "1", -1, 0},
752     { 0x00080041, "Data Set Subtype", "LO", "1", -1, 0},
753     { 0x00080042, "Nuclear Medicine Series Type", "CS", "1", -1, 0},
754     { 0x00080050, "Accession Number", "SH", "1", 0, 0},
755     { 0x00080052, "Query/Retrieve Level", "CS", "1", 0, 0},
756     { 0x00080054, "Retrieve AE Title", "AE", "1-n", 0, 0},
757     { 0x00080056, "Instance Availability", "CS", "1", 0, 0},
758     { 0x00080058, "Failed SOP Instance UID List", "UI", "1-n", 0, 0},
759     { 0x00080060, "Modality", "CS", "1", 0, 0},
760     { 0x00080061, "Modalities in Study", "CS", "1-n", 0, 0},
761     { 0x00080062, "SOP Classes in Study", "UI", "1-n", 0, 0},
762     { 0x00080064, "Conversion Type", "CS", "1", 0, 0},
763     { 0x00080068, "Presentation Intent Type", "CS", "1", 0, 0},
764     { 0x00080070, "Manufacturer", "LO", "1", 0, 0},
765     { 0x00080080, "Institution Name", "LO", "1", 0, 0},
766     { 0x00080081, "Institution Address", "ST", "1", 0, 0},
767     { 0x00080082, "Institution Code Sequence", "SQ", "1", 0, 0},
768     { 0x00080090, "Referring Physician's Name", "PN", "1", 0, 0},
769     { 0x00080092, "Referring Physician's Address", "ST", "1", 0, 0},
770     { 0x00080094, "Referring Physician's Telephone Numbers", "SH", "1-n", 0, 0},
771     { 0x00080096, "Referring Physician Identification Sequence", "SQ", "1", 0, 0},
772     { 0x00080100, "Code Value", "SH", "1", 0, 0},
773     { 0x00080102, "Coding Scheme Designator", "SH", "1", 0, 0},
774     { 0x00080103, "Coding Scheme Version", "SH", "1", 0, 0},
775     { 0x00080104, "Code Meaning", "LO", "1", 0, 0},
776     { 0x00080105, "Mapping Resource", "CS", "1", 0, 0},
777     { 0x00080106, "Context Group Version", "DT", "1", 0, 0},
778     { 0x00080107, "Context Group Local Version", "DT", "1", 0, 0},
779     { 0x0008010B, "Context Group Extension Flag", "CS", "1", 0, 0},
780     { 0x0008010C, "Coding Scheme UID", "UI", "1", 0, 0},
781     { 0x0008010D, "Context Group Extension Creator UID", "UI", "1", 0, 0},
782     { 0x0008010F, "Context Identifier", "CS", "1", 0, 0},
783     { 0x00080110, "Coding Scheme Identification Sequence", "SQ", "1", 0, 0},
784     { 0x00080112, "Coding Scheme Registry", "LO", "1", 0, 0},
785     { 0x00080114, "Coding Scheme External ID", "ST", "1", 0, 0},
786     { 0x00080115, "Coding Scheme Name", "ST", "1", 0, 0},
787     { 0x00080116, "Coding Scheme Responsible Organization", "ST", "1", 0, 0},
788     { 0x00080201, "Timezone Offset From UTC", "SH", "1", 0, 0},
789     { 0x00081000, "Network ID", "AE", "1", -1, 0},
790     { 0x00081010, "Station Name", "SH", "1", 0, 0},
791     { 0x00081030, "Study Description", "LO", "1", 0, 0},
792     { 0x00081032, "Procedure Code Sequence", "SQ", "1", 0, 0},
793     { 0x0008103E, "Series Description", "LO", "1", 0, 0},
794     { 0x00081040, "Institutional Department Name", "LO", "1", 0, 0},
795     { 0x00081048, "Physician(s) of Record", "PN", "1-n", 0, 0},
796     { 0x00081049, "Physician(s) of Record Identification Sequence", "SQ", "1", 0, 0},
797     { 0x00081050, "Performing Physician's Name", "PN", "1-n", 0, 0},
798     { 0x00081052, "Performing Physician Identification Sequence", "SQ", "1", 0, 0},
799     { 0x00081060, "Name of Physician(s) Reading Study", "PN", "1-n", 0, 0},
800     { 0x00081062, "Physician(s) Reading Study Identification Sequence", "SQ", "1", 0, 0},
801     { 0x00081070, "Operators' Name", "PN", "1-n", 0, 0},
802     { 0x00081072, "Operator Identification Sequence", "SQ", "1", 0, 0},
803     { 0x00081080, "Admitting Diagnoses Description", "LO", "1-n", 0, 0},
804     { 0x00081084, "Admitting Diagnoses Code Sequence", "SQ", "1", 0, 0},
805     { 0x00081090, "Manufacturer's Model Name", "LO", "1", 0, 0},
806     { 0x00081100, "Referenced Results Sequence", "SQ", "1", -1, 0},
807     { 0x00081110, "Referenced Study Sequence", "SQ", "1", 0, 0},
808     { 0x00081111, "Referenced Performed Procedure Step Sequence", "SQ", "1", 0, 0},
809     { 0x00081115, "Referenced Series Sequence", "SQ", "1", 0, 0},
810     { 0x00081120, "Referenced Patient Sequence", "SQ", "1", 0, 0},
811     { 0x00081125, "Referenced Visit Sequence", "SQ", "1", 0, 0},
812     { 0x00081130, "Referenced Overlay Sequence", "SQ", "1", -1, 0},
813     { 0x0008113A, "Referenced Waveform Sequence", "SQ", "1", 0, 0},
814     { 0x00081140, "Referenced Image Sequence", "SQ", "1", 0, 0},
815     { 0x00081145, "Referenced Curve Sequence", "SQ", "1", -1, 0},
816     { 0x0008114A, "Referenced Instance Sequence", "SQ", "1", 0, 0},
817     { 0x0008114B, "Referenced Real World Value Mapping Instance Sequence", "SQ", "1", 0, 0},
818     { 0x00081150, "Referenced SOP Class UID", "UI", "1", 0, 0},
819     { 0x00081155, "Referenced SOP Instance UID", "UI", "1", 0, 0},
820     { 0x0008115A, "SOP Classes Supported", "UI", "1-n", 0, 0},
821     { 0x00081160, "Referenced Frame Number", "IS", "1-n", 0, 0},
822     { 0x00081195, "Transaction UID", "UI", "1", 0, 0},
823     { 0x00081197, "Failure Reason", "US", "1", 0, 0},
824     { 0x00081198, "Failed SOP Sequence", "SQ", "1", 0, 0},
825     { 0x00081199, "Referenced SOP Sequence", "SQ", "1", 0, 0},
826     { 0x00081200, "Studies Containing Other Referenced Instances Sequence", "SQ", "1", 0, 0},
827     { 0x00081250, "Related Series Sequence", "SQ", "1", 0, 0},
828     { 0x00082110, "Lossy Image Compression (Retired)", "CS", "1", -1, 0},
829     { 0x00082111, "Derivation Description", "ST", "1", 0, 0},
830     { 0x00082112, "Source Image Sequence", "SQ", "1", 0, 0},
831     { 0x00082120, "Stage Name", "SH", "1", 0, 0},
832     { 0x00082122, "Stage Number", "IS", "1", 0, 0},
833     { 0x00082124, "Number of Stages", "IS", "1", 0, 0},
834     { 0x00082127, "View Name", "SH", "1", 0, 0},
835     { 0x00082128, "View Number", "IS", "1", 0, 0},
836     { 0x00082129, "Number of Event Timers", "IS", "1", 0, 0},
837     { 0x0008212A, "Number of Views in Stage", "IS", "1", 0, 0},
838     { 0x00082130, "Event Elapsed Time(s)", "DS", "1-n", 0, 0},
839     { 0x00082132, "Event Timer Name(s)", "LO", "1-n", 0, 0},
840     { 0x00082142, "Start Trim", "IS", "1", 0, 0},
841     { 0x00082143, "Stop Trim", "IS", "1", 0, 0},
842     { 0x00082144, "Recommended Display Frame Rate", "IS", "1", 0, 0},
843     { 0x00082200, "Transducer Position", "CS", "1", -1, 0},
844     { 0x00082204, "Transducer Orientation", "CS", "1", -1, 0},
845     { 0x00082208, "Anatomic Structure", "CS", "1", -1, 0},
846     { 0x00082218, "Anatomic Region Sequence", "SQ", "1", 0, 0},
847     { 0x00082220, "Anatomic Region Modifier Sequence", "SQ", "1", 0, 0},
848     { 0x00082228, "Primary Anatomic Structure Sequence", "SQ", "1", 0, 0},
849     { 0x00082229, "Anatomic Structure, Space or Region Sequence", "SQ", "1", 0, 0},
850     { 0x00082230, "Primary Anatomic Structure Modifier Sequence", "SQ", "1", 0, 0},
851     { 0x00082240, "Transducer Position Sequence", "SQ", "1", -1, 0},
852     { 0x00082242, "Transducer Position Modifier Sequence", "SQ", "1", -1, 0},
853     { 0x00082244, "Transducer Orientation Sequence", "SQ", "1", -1, 0},
854     { 0x00082246, "Transducer Orientation Modifier Sequence", "SQ", "1", -1, 0},
855     { 0x00082251, "Anatomic Structure Space Or Region Code Sequence (Trial)", "SQ", "1", -1, 0},
856     { 0x00082253, "Anatomic Portal Of Entrance Code Sequence (Trial)", "SQ", "1", -1, 0},
857     { 0x00082255, "Anatomic Approach Direction Code Sequence (Trial)", "SQ", "1", -1, 0},
858     { 0x00082256, "Anatomic Perspective Description (Trial)", "ST", "1", -1, 0},
859     { 0x00082257, "Anatomic Perspective Code Sequence (Trial)", "SQ", "1", -1, 0},
860     { 0x00082258, "Anatomic Location Of Examining Instrument Description (Trial)", "ST", "1", -1, 0},
861     { 0x00082259, "Anatomic Location Of Examining Instrument Code Sequence (Trial)", "SQ", "1", -1, 0},
862     { 0x0008225A, "Anatomic Structure Space Or Region Modifier Code Sequence (Trial)", "SQ", "1", -1, 0},
863     { 0x0008225C, "OnAxis Background Anatomic Structure Code Sequence (Trial)", "SQ", "1", -1, 0},
864     { 0x00083001, "Alternate Representation Sequence", "SQ", "1", 0, 0},
865     { 0x00083010, "Irradiation Event UID", "UI", "1", 0, 0},
866     { 0x00084000, "Identifying Comments", "LT", "1", -1, 0},
867     { 0x00089007, "Frame Type", "CS", "4", 0, 0},
868     { 0x00089092, "Referenced Image Evidence Sequence", "SQ", "1", 0, 0},
869     { 0x00089121, "Referenced Raw Data Sequence", "SQ", "1", 0, 0},
870     { 0x00089123, "Creator-Version UID", "UI", "1", 0, 0},
871     { 0x00089124, "Derivation Image Sequence", "SQ", "1", 0, 0},
872     { 0x00089154, "Source Image Evidence Sequence", "SQ", "1", 0, 0},
873     { 0x00089205, "Pixel Presentation", "CS", "1", 0, 0},
874     { 0x00089206, "Volumetric Properties", "CS", "1", 0, 0},
875     { 0x00089207, "Volume Based Calculation Technique", "CS", "1", 0, 0},
876     { 0x00089208, "Complex Image Component", "CS", "1", 0, 0},
877     { 0x00089209, "Acquisition Contrast", "CS", "1", 0, 0},
878     { 0x00089215, "Derivation Code Sequence", "SQ", "1", 0, 0},
879     { 0x00089237, "Referenced Grayscale Presentation State Sequence", "SQ", "1", 0, 0},
880     { 0x00089410, "Referenced Other Plane Sequence", "SQ", "1", 0, 0},
881     { 0x00089458, "Frame Display Sequence", "SQ", "1", 0, 0},
882     { 0x00089459, "Recommended Display Frame Rate in Float", "FL", "1", 0, 0},
883     { 0x00089460, "Skip Frame Range Flag", "CS", "1", 0, 0},
884     { 0x00100010, "Patient's Name", "PN", "1", 0, 0},
885     { 0x00100020, "Patient ID", "LO", "1", 0, 0},
886     { 0x00100021, "Issuer of Patient ID", "LO", "1", 0, 0},
887     { 0x00100022, "Type of Patient ID", "CS", "1", 0, 0},
888     { 0x00100030, "Patient's Birth Date", "DA", "1", 0, 0},
889     { 0x00100032, "Patient's Birth Time", "TM", "1", 0, 0},
890     { 0x00100040, "Patient's Sex", "CS", "1", 0, 0},
891     { 0x00100050, "Patient's Insurance Plan Code Sequence", "SQ", "1", 0, 0},
892     { 0x00100101, "Patient's Primary Language Code Sequence", "SQ", "1", 0, 0},
893     { 0x00100102, "Patient's Primary Language Code Modifier Sequence", "SQ", "1", 0, 0},
894     { 0x00101000, "Other Patient IDs", "LO", "1-n", 0, 0},
895     { 0x00101001, "Other Patient Names", "PN", "1-n", 0, 0},
896     { 0x00101002, "Other Patient IDs Sequence", "SQ", "1", 0, 0},
897     { 0x00101005, "Patient's Birth Name", "PN", "1", 0, 0},
898     { 0x00101010, "Patient's Age", "AS", "1", 0, 0},
899     { 0x00101020, "Patient's Size", "DS", "1", 0, 0},
900     { 0x00101030, "Patient's Weight", "DS", "1", 0, 0},
901     { 0x00101040, "Patient's Address", "LO", "1", 0, 0},
902     { 0x00101050, "Insurance Plan Identification", "LO", "1-n", -1, 0},
903     { 0x00101060, "Patient's Mother's Birth Name", "PN", "1", 0, 0},
904     { 0x00101080, "Military Rank", "LO", "1", 0, 0},
905     { 0x00101081, "Branch of Service", "LO", "1", 0, 0},
906     { 0x00101090, "Medical Record Locator", "LO", "1", 0, 0},
907     { 0x00102000, "Medical Alerts", "LO", "1-n", 0, 0},
908     { 0x00102110, "Allergies", "LO", "1-n", 0, 0},
909     { 0x00102150, "Country of Residence", "LO", "1", 0, 0},
910     { 0x00102152, "Region of Residence", "LO", "1", 0, 0},
911     { 0x00102154, "Patient's Telephone Numbers", "SH", "1-n", 0, 0},
912     { 0x00102160, "Ethnic Group", "SH", "1", 0, 0},
913     { 0x00102180, "Occupation", "SH", "1", 0, 0},
914     { 0x001021A0, "Smoking Status", "CS", "1", 0, 0},
915     { 0x001021B0, "Additional Patient History", "LT", "1", 0, 0},
916     { 0x001021C0, "Pregnancy Status", "US", "1", 0, 0},
917     { 0x001021D0, "Last Menstrual Date", "DA", "1", 0, 0},
918     { 0x001021F0, "Patient's Religious Preference", "LO", "1", 0, 0},
919     { 0x00102201, "Patient Species Description", "LO", "1", 0, 0},
920     { 0x00102202, "Patient Species Code Sequence", "SQ", "1", 0, 0},
921     { 0x00102203, "Patient's Sex Neutered", "CS", "1", 0, 0},
922     { 0x00102292, "Patient Breed Description", "LO", "1", 0, 0},
923     { 0x00102293, "Patient Breed Code Sequence", "SQ", "1", 0, 0},
924     { 0x00102294, "Breed Registration Sequence", "SQ", "1", 0, 0},
925     { 0x00102295, "Breed Registration Number", "LO", "1", 0, 0},
926     { 0x00102296, "Breed Registry Code Sequence", "SQ", "1", 0, 0},
927     { 0x00102297, "Responsible Person", "PN", "1", 0, 0},
928     { 0x00102298, "Responsible Person Role", "CS", "1", 0, 0},
929     { 0x00102299, "Responsible Organization", "LO", "1", 0, 0},
930     { 0x00104000, "Patient Comments", "LT", "1", 0, 0},
931     { 0x00109431, "Examined Body Thickness", "FL", "1", 0, 0},
932     { 0x00120010, "Clinical Trial Sponsor Name", "LO", "1", 0, 0},
933     { 0x00120020, "Clinical Trial Protocol ID", "LO", "1", 0, 0},
934     { 0x00120021, "Clinical Trial Protocol Name", "LO", "1", 0, 0},
935     { 0x00120030, "Clinical Trial Site ID", "LO", "1", 0, 0},
936     { 0x00120031, "Clinical Trial Site Name", "LO", "1", 0, 0},
937     { 0x00120040, "Clinical Trial Subject ID", "LO", "1", 0, 0},
938     { 0x00120042, "Clinical Trial Subject Reading ID", "LO", "1", 0, 0},
939     { 0x00120050, "Clinical Trial Time Point ID", "LO", "1", 0, 0},
940     { 0x00120051, "Clinical Trial Time Point Description", "ST", "1", 0, 0},
941     { 0x00120060, "Clinical Trial Coordinating Center Name", "LO", "1", 0, 0},
942     { 0x00120062, "Patient Identity Removed", "CS", "1", 0, 0},
943     { 0x00120063, "De-identification Method", "LO", "1-n", 0, 0},
944     { 0x00120064, "De-identification Method Code Sequence", "SQ", "1", 0, 0},
945     { 0x00120071, "Clinical Trial Series ID", "LO", "1", 0, 0},
946     { 0x00120072, "Clinical Trial Series Description", "LO", "1", 0, 0},
947     { 0x00180010, "Contrast/Bolus Agent", "LO", "1", 0, 0},
948     { 0x00180012, "Contrast/Bolus Agent Sequence", "SQ", "1", 0, 0},
949     { 0x00180014, "Contrast/Bolus Administration Route Sequence", "SQ", "1", 0, 0},
950     { 0x00180015, "Body Part Examined", "CS", "1", 0, 0},
951     { 0x00180020, "Scanning Sequence", "CS", "1-n", 0, 0},
952     { 0x00180021, "Sequence Variant", "CS", "1-n", 0, 0},
953     { 0x00180022, "Scan Options", "CS", "1-n", 0, 0},
954     { 0x00180023, "MR Acquisition Type", "CS", "1", 0, 0},
955     { 0x00180024, "Sequence Name", "SH", "1", 0, 0},
956     { 0x00180025, "Angio Flag", "CS", "1", 0, 0},
957     { 0x00180026, "Intervention Drug Information Sequence", "SQ", "1", 0, 0},
958     { 0x00180027, "Intervention Drug Stop Time", "TM", "1", 0, 0},
959     { 0x00180028, "Intervention Drug Dose", "DS", "1", 0, 0},
960     { 0x00180029, "Intervention Drug Sequence", "SQ", "1", 0, 0},
961     { 0x0018002A, "Additional Drug Sequence", "SQ", "1", 0, 0},
962     { 0x00180030, "Radionuclide", "LO", "1-n", -1, 0},
963     { 0x00180031, "Radiopharmaceutical", "LO", "1", 0, 0},
964     { 0x00180032, "Energy Window Centerline", "DS", "1", -1, 0},
965     { 0x00180033, "Energy Window Total Width", "DS", "1-n", -1, 0},
966     { 0x00180034, "Intervention Drug Name", "LO", "1", 0, 0},
967     { 0x00180035, "Intervention Drug Start Time", "TM", "1", 0, 0},
968     { 0x00180036, "Intervention Sequence", "SQ", "1", 0, 0},
969     { 0x00180037, "Therapy Type", "CS", "1", -1, 0},
970     { 0x00180038, "Intervention Status", "CS", "1", 0, 0},
971     { 0x00180039, "Therapy Description", "CS", "1", -1, 0},
972     { 0x0018003A, "Intervention Description", "ST", "1", 0, 0},
973     { 0x00180040, "Cine Rate", "IS", "1", 0, 0},
974     { 0x00180050, "Slice Thickness", "DS", "1", 0, 0},
975     { 0x00180060, "KVP", "DS", "1", 0, 0},
976     { 0x00180070, "Counts Accumulated", "IS", "1", 0, 0},
977     { 0x00180071, "Acquisition Termination Condition", "CS", "1", 0, 0},
978     { 0x00180072, "Effective Duration", "DS", "1", 0, 0},
979     { 0x00180073, "Acquisition Start Condition", "CS", "1", 0, 0},
980     { 0x00180074, "Acquisition Start Condition Data", "IS", "1", 0, 0},
981     { 0x00180075, "Acquisition Termination Condition Data", "IS", "1", 0, 0},
982     { 0x00180080, "Repetition Time", "DS", "1", 0, 0},
983     { 0x00180081, "Echo Time", "DS", "1", 0, 0},
984     { 0x00180082, "Inversion Time", "DS", "1", 0, 0},
985     { 0x00180083, "Number of Averages", "DS", "1", 0, 0},
986     { 0x00180084, "Imaging Frequency", "DS", "1", 0, 0},
987     { 0x00180085, "Imaged Nucleus", "SH", "1", 0, 0},
988     { 0x00180086, "Echo Number(s)", "IS", "1-n", 0, 0},
989     { 0x00180087, "Magnetic Field Strength", "DS", "1", 0, 0},
990     { 0x00180088, "Spacing Between Slices", "DS", "1", 0, 0},
991     { 0x00180089, "Number of Phase Encoding Steps", "IS", "1", 0, 0},
992     { 0x00180090, "Data Collection Diameter", "DS", "1", 0, 0},
993     { 0x00180091, "Echo Train Length", "IS", "1", 0, 0},
994     { 0x00180093, "Percent Sampling", "DS", "1", 0, 0},
995     { 0x00180094, "Percent Phase Field of View", "DS", "1", 0, 0},
996     { 0x00180095, "Pixel Bandwidth", "DS", "1", 0, 0},
997     { 0x00181000, "Device Serial Number", "LO", "1", 0, 0},
998     { 0x00181002, "Device UID", "UI", "1", 0, 0},
999     { 0x00181003, "Device ID", "LO", "1", 0, 0},
1000     { 0x00181004, "Plate ID", "LO", "1", 0, 0},
1001     { 0x00181005, "Generator ID", "LO", "1", 0, 0},
1002     { 0x00181006, "Grid ID", "LO", "1", 0, 0},
1003     { 0x00181007, "Cassette ID", "LO", "1", 0, 0},
1004     { 0x00181008, "Gantry ID", "LO", "1", 0, 0},
1005     { 0x00181010, "Secondary Capture Device ID", "LO", "1", 0, 0},
1006     { 0x00181011, "Hardcopy Creation Device ID", "LO", "1", -1, 0},
1007     { 0x00181012, "Date of Secondary Capture", "DA", "1", 0, 0},
1008     { 0x00181014, "Time of Secondary Capture", "TM", "1", 0, 0},
1009     { 0x00181016, "Secondary Capture Device Manufacturers", "LO", "1", 0, 0},
1010     { 0x00181017, "Hardcopy Device Manufacturer", "LO", "1", -1, 0},
1011     { 0x00181018, "Secondary Capture Device Manufacturer's Model Name", "LO", "1", 0, 0},
1012     { 0x00181019, "Secondary Capture Device Software Version(s)", "LO", "1-n", 0, 0},
1013     { 0x0018101A, "Hardcopy Device Software Version", "LO", "1-n", -1, 0},
1014     { 0x0018101B, "Hardcopy Device Manufacturer's Model Name", "LO", "1", -1, 0},
1015     { 0x00181020, "Software Version(s)", "LO", "1-n", 0, 0},
1016     { 0x00181022, "Video Image Format Acquired", "SH", "1", 0, 0},
1017     { 0x00181023, "Digital Image Format Acquired", "LO", "1", 0, 0},
1018     { 0x00181030, "Protocol Name", "LO", "1", 0, 0},
1019     { 0x00181040, "Contrast/Bolus Route", "LO", "1", 0, 0},
1020     { 0x00181041, "Contrast/Bolus Volume", "DS", "1", 0, 0},
1021     { 0x00181042, "Contrast/Bolus Start Time", "TM", "1", 0, 0},
1022     { 0x00181043, "Contrast/Bolus Stop Time", "TM", "1", 0, 0},
1023     { 0x00181044, "Contrast/Bolus Total Dose", "DS", "1", 0, 0},
1024     { 0x00181045, "Syringe Counts", "IS", "1", 0, 0},
1025     { 0x00181046, "Contrast Flow Rate", "DS", "1-n", 0, 0},
1026     { 0x00181047, "Contrast Flow Duration", "DS", "1-n", 0, 0},
1027     { 0x00181048, "Contrast/Bolus Ingredient", "CS", "1", 0, 0},
1028     { 0x00181049, "Contrast/Bolus Ingredient Concentration", "DS", "1", 0, 0},
1029     { 0x00181050, "Spatial Resolution", "DS", "1", 0, 0},
1030     { 0x00181060, "Trigger Time", "DS", "1", 0, 0},
1031     { 0x00181061, "Trigger Source or Type", "LO", "1", 0, 0},
1032     { 0x00181062, "Nominal Interval", "IS", "1", 0, 0},
1033     { 0x00181063, "Frame Time", "DS", "1", 0, 0},
1034     { 0x00181064, "Cardiac Framing Type", "LO", "1", 0, 0},
1035     { 0x00181065, "Frame Time Vector", "DS", "1-n", 0, 0},
1036     { 0x00181066, "Frame Delay", "DS", "1", 0, 0},
1037     { 0x00181067, "Image Trigger Delay", "DS", "1", 0, 0},
1038     { 0x00181068, "Multiplex Group Time Offset", "DS", "1", 0, 0},
1039     { 0x00181069, "Trigger Time Offset", "DS", "1", 0, 0},
1040     { 0x0018106A, "Synchronization Trigger", "CS", "1", 0, 0},
1041     { 0x0018106C, "Synchronization Channel", "US", "2", 0, 0},
1042     { 0x0018106E, "Trigger Sample Position", "UL", "1", 0, 0},
1043     { 0x00181070, "Radiopharmaceutical Route", "LO", "1", 0, 0},
1044     { 0x00181071, "Radiopharmaceutical Volume", "DS", "1", 0, 0},
1045     { 0x00181072, "Radiopharmaceutical Start Time", "TM", "1", 0, 0},
1046     { 0x00181073, "Radiopharmaceutical Stop Time", "TM", "1", 0, 0},
1047     { 0x00181074, "Radionuclide Total Dose", "DS", "1", 0, 0},
1048     { 0x00181075, "Radionuclide Half Life", "DS", "1", 0, 0},
1049     { 0x00181076, "Radionuclide Positron Fraction", "DS", "1", 0, 0},
1050     { 0x00181077, "Radiopharmaceutical Specific Activity", "DS", "1", 0, 0},
1051     { 0x00181078, "Radiopharmaceutical Start DateTime", "DT", "1", 0, 0},
1052     { 0x00181079, "Radiopharmaceutical Stop DateTime", "DT", "1", 0, 0},
1053     { 0x00181080, "Beat Rejection Flag", "CS", "1", 0, 0},
1054     { 0x00181081, "Low R-R Value", "IS", "1", 0, 0},
1055     { 0x00181082, "High R-R Value", "IS", "1", 0, 0},
1056     { 0x00181083, "Intervals Acquired", "IS", "1", 0, 0},
1057     { 0x00181084, "Intervals Rejected", "IS", "1", 0, 0},
1058     { 0x00181085, "PVC Rejection", "LO", "1", 0, 0},
1059     { 0x00181086, "Skip Beats", "IS", "1", 0, 0},
1060     { 0x00181088, "Heart Rate", "IS", "1", 0, 0},
1061     { 0x00181090, "Cardiac Number of Images", "IS", "1", 0, 0},
1062     { 0x00181094, "Trigger Window", "IS", "1", 0, 0},
1063     { 0x00181100, "Reconstruction Diameter", "DS", "1", 0, 0},
1064     { 0x00181110, "Distance Source to Detector", "DS", "1", 0, 0},
1065     { 0x00181111, "Distance Source to Patient", "DS", "1", 0, 0},
1066     { 0x00181114, "Estimated Radiographic Magnification Factor", "DS", "1", 0, 0},
1067     { 0x00181120, "Gantry/Detector Tilt", "DS", "1", 0, 0},
1068     { 0x00181121, "Gantry/Detector Slew", "DS", "1", 0, 0},
1069     { 0x00181130, "Table Height", "DS", "1", 0, 0},
1070     { 0x00181131, "Table Traverse", "DS", "1", 0, 0},
1071     { 0x00181134, "Table Motion", "CS", "1", 0, 0},
1072     { 0x00181135, "Table Vertical Increment", "DS", "1-n", 0, 0},
1073     { 0x00181136, "Table Lateral Increment", "DS", "1-n", 0, 0},
1074     { 0x00181137, "Table Longitudinal Increment", "DS", "1-n", 0, 0},
1075     { 0x00181138, "Table Angle", "DS", "1", 0, 0},
1076     { 0x0018113A, "Table Type", "CS", "1", 0, 0},
1077     { 0x00181140, "Rotation Direction", "CS", "1", 0, 0},
1078     { 0x00181141, "Angular Position", "DS", "1", -1, 0},
1079     { 0x00181142, "Radial Position", "DS", "1-n", 0, 0},
1080     { 0x00181143, "Scan Arc", "DS", "1", 0, 0},
1081     { 0x00181144, "Angular Step", "DS", "1", 0, 0},
1082     { 0x00181145, "Center of Rotation Offset", "DS", "1", 0, 0},
1083     { 0x00181146, "Rotation Offset", "DS", "1-n", -1, 0},
1084     { 0x00181147, "Field of View Shape", "CS", "1", 0, 0},
1085     { 0x00181149, "Field of View Dimension(s)", "IS", "1-2", 0, 0},
1086     { 0x00181150, "Exposure Time", "IS", "1", 0, 0},
1087     { 0x00181151, "X-Ray Tube Current", "IS", "1", 0, 0},
1088     { 0x00181152, "Exposure", "IS", "1", 0, 0},
1089     { 0x00181153, "Exposure in uAs", "IS", "1", 0, 0},
1090     { 0x00181154, "Average Pulse Width", "DS", "1", 0, 0},
1091     { 0x00181155, "Radiation Setting", "CS", "1", 0, 0},
1092     { 0x00181156, "Rectification Type", "CS", "1", 0, 0},
1093     { 0x0018115A, "Radiation Mode", "CS", "1", 0, 0},
1094     { 0x0018115E, "Image and Fluoroscopy Area Dose Product", "DS", "1", 0, 0},
1095     { 0x00181160, "Filter Type", "SH", "1", 0, 0},
1096     { 0x00181161, "Type of Filters", "LO", "1-n", 0, 0},
1097     { 0x00181162, "Intensifier Size", "DS", "1", 0, 0},
1098     { 0x00181164, "Imager Pixel Spacing", "DS", "2", 0, 0},
1099     { 0x00181166, "Grid", "CS", "1-n", 0, 0},
1100     { 0x00181170, "Generator Power", "IS", "1", 0, 0},
1101     { 0x00181180, "Collimator/grid Name", "SH", "1", 0, 0},
1102     { 0x00181181, "Collimator Type", "CS", "1", 0, 0},
1103     { 0x00181182, "Focal Distance", "IS", "1-2", 0, 0},
1104     { 0x00181183, "X Focus Center", "DS", "1-2", 0, 0},
1105     { 0x00181184, "Y Focus Center", "DS", "1-2", 0, 0},
1106     { 0x00181190, "Focal Spot(s)", "DS", "1-n", 0, 0},
1107     { 0x00181191, "Anode Target Material", "CS", "1", 0, 0},
1108     { 0x001811A0, "Body Part Thickness", "DS", "1", 0, 0},
1109     { 0x001811A2, "Compression Force", "DS", "1", 0, 0},
1110     { 0x00181200, "Date of Last Calibration", "DA", "1-n", 0, 0},
1111     { 0x00181201, "Time of Last Calibration", "TM", "1-n", 0, 0},
1112     { 0x00181210, "Convolution Kernel", "SH", "1-n", 0, 0},
1113     { 0x00181240, "Upper/Lower Pixel Values", "IS", "1-n", -1, 0},
1114     { 0x00181242, "Actual Frame Duration", "IS", "1", 0, 0},
1115     { 0x00181243, "Count Rate", "IS", "1", 0, 0},
1116     { 0x00181244, "Preferred Playback Sequencing", "US", "1", 0, 0},
1117     { 0x00181250, "Receive Coil Name", "SH", "1", 0, 0},
1118     { 0x00181251, "Transmit Coil Name", "SH", "1", 0, 0},
1119     { 0x00181260, "Plate Type", "SH", "1", 0, 0},
1120     { 0x00181261, "Phosphor Type", "LO", "1", 0, 0},
1121     { 0x00181300, "Scan Velocity", "DS", "1", 0, 0},
1122     { 0x00181301, "Whole Body Technique", "CS", "1-n", 0, 0},
1123     { 0x00181302, "Scan Length", "IS", "1", 0, 0},
1124     { 0x00181310, "Acquisition Matrix", "US", "4", 0, 0},
1125     { 0x00181312, "In-plane Phase Encoding Direction", "CS", "1", 0, 0},
1126     { 0x00181314, "Flip Angle", "DS", "1", 0, 0},
1127     { 0x00181315, "Variable Flip Angle Flag", "CS", "1", 0, 0},
1128     { 0x00181316, "SAR", "DS", "1", 0, 0},
1129     { 0x00181318, "dB/dt", "DS", "1", 0, 0},
1130     { 0x00181400, "Acquisition Device Processing Description", "LO", "1", 0, 0},
1131     { 0x00181401, "Acquisition Device Processing Code", "LO", "1", 0, 0},
1132     { 0x00181402, "Cassette Orientation", "CS", "1", 0, 0},
1133     { 0x00181403, "Cassette Size", "CS", "1", 0, 0},
1134     { 0x00181404, "Exposures on Plate", "US", "1", 0, 0},
1135     { 0x00181405, "Relative X-Ray Exposure", "IS", "1", 0, 0},
1136     { 0x00181450, "Column Angulation", "DS", "1", 0, 0},
1137     { 0x00181460, "Tomo Layer Height", "DS", "1", 0, 0},
1138     { 0x00181470, "Tomo Angle", "DS", "1", 0, 0},
1139     { 0x00181480, "Tomo Time", "DS", "1", 0, 0},
1140     { 0x00181490, "Tomo Type", "CS", "1", 0, 0},
1141     { 0x00181491, "Tomo Class", "CS", "1", 0, 0},
1142     { 0x00181495, "Number of Tomosynthesis Source Images", "IS", "1", 0, 0},
1143     { 0x00181500, "Positioner Motion", "CS", "1", 0, 0},
1144     { 0x00181508, "Positioner Type", "CS", "1", 0, 0},
1145     { 0x00181510, "Positioner Primary Angle", "DS", "1", 0, 0},
1146     { 0x00181511, "Positioner Secondary Angle", "DS", "1", 0, 0},
1147     { 0x00181520, "Positioner Primary Angle Increment", "DS", "1-n", 0, 0},
1148     { 0x00181521, "Positioner Secondary Angle Increment", "DS", "1-n", 0, 0},
1149     { 0x00181530, "Detector Primary Angle", "DS", "1", 0, 0},
1150     { 0x00181531, "Detector Secondary Angle", "DS", "1", 0, 0},
1151     { 0x00181600, "Shutter Shape", "CS", "1-3", 0, 0},
1152     { 0x00181602, "Shutter Left Vertical Edge", "IS", "1", 0, 0},
1153     { 0x00181604, "Shutter Right Vertical Edge", "IS", "1", 0, 0},
1154     { 0x00181606, "Shutter Upper Horizontal Edge", "IS", "1", 0, 0},
1155     { 0x00181608, "Shutter Lower Horizontal Edge", "IS", "1", 0, 0},
1156     { 0x00181610, "Center of Circular Shutter", "IS", "2", 0, 0},
1157     { 0x00181612, "Radius of Circular Shutter", "IS", "1", 0, 0},
1158     { 0x00181620, "Vertices of the Polygonal Shutter", "IS", "2-2n", 0, 0},
1159     { 0x00181622, "Shutter Presentation Value", "US", "1", 0, 0},
1160     { 0x00181623, "Shutter Overlay Group", "US", "1", 0, 0},
1161     { 0x00181624, "Shutter Presentation Color CIELab Value", "US", "3", 0, 0},
1162     { 0x00181700, "Collimator Shape", "CS", "1-3", 0, 0},
1163     { 0x00181702, "Collimator Left Vertical Edge", "IS", "1", 0, 0},
1164     { 0x00181704, "Collimator Right Vertical Edge", "IS", "1", 0, 0},
1165     { 0x00181706, "Collimator Upper Horizontal Edge", "IS", "1", 0, 0},
1166     { 0x00181708, "Collimator Lower Horizontal Edge", "IS", "1", 0, 0},
1167     { 0x00181710, "Center of Circular Collimator", "IS", "2", 0, 0},
1168     { 0x00181712, "Radius of Circular Collimator", "IS", "1", 0, 0},
1169     { 0x00181720, "Vertices of the Polygonal Collimator", "IS", "2-2n", 0, 0},
1170     { 0x00181800, "Acquisition Time Synchronized", "CS", "1", 0, 0},
1171     { 0x00181801, "Time Source", "SH", "1", 0, 0},
1172     { 0x00181802, "Time Distribution Protocol", "CS", "1", 0, 0},
1173     { 0x00181803, "NTP Source Address", "LO", "1", 0, 0},
1174     { 0x00182001, "Page Number Vector", "IS", "1-n", 0, 0},
1175     { 0x00182002, "Frame Label Vector", "SH", "1-n", 0, 0},
1176     { 0x00182003, "Frame Primary Angle Vector", "DS", "1-n", 0, 0},
1177     { 0x00182004, "Frame Secondary Angle Vector", "DS", "1-n", 0, 0},
1178     { 0x00182005, "Slice Location Vector", "DS", "1-n", 0, 0},
1179     { 0x00182006, "Display Window Label Vector", "SH", "1-n", 0, 0},
1180     { 0x00182010, "Nominal Scanned Pixel Spacing", "DS", "2", 0, 0},
1181     { 0x00182020, "Digitizing Device Transport Direction", "CS", "1", 0, 0},
1182     { 0x00182030, "Rotation of Scanned Film", "DS", "1", 0, 0},
1183     { 0x00183100, "IVUS Acquisition", "CS", "1", 0, 0},
1184     { 0x00183101, "IVUS Pullback Rate", "DS", "1", 0, 0},
1185     { 0x00183102, "IVUS Gated Rate", "DS", "1", 0, 0},
1186     { 0x00183103, "IVUS Pullback Start Frame Number", "IS", "1", 0, 0},
1187     { 0x00183104, "IVUS Pullback Stop Frame Number", "IS", "1", 0, 0},
1188     { 0x00183105, "Lesion Number", "IS", "1-n", 0, 0},
1189     { 0x00184000, "Acquisition Comments", "LT", "1", -1, 0},
1190     { 0x00185000, "Output Power", "SH", "1-n", 0, 0},
1191     { 0x00185010, "Transducer Data", "LO", "3", 0, 0},
1192     { 0x00185012, "Focus Depth", "DS", "1", 0, 0},
1193     { 0x00185020, "Processing Function", "LO", "1", 0, 0},
1194     { 0x00185021, "Postprocessing Function", "LO", "1", -1, 0},
1195     { 0x00185022, "Mechanical Index", "DS", "1", 0, 0},
1196     { 0x00185024, "Bone Thermal Index", "DS", "1", 0, 0},
1197     { 0x00185026, "Cranial Thermal Index", "DS", "1", 0, 0},
1198     { 0x00185027, "Soft Tissue Thermal Index", "DS", "1", 0, 0},
1199     { 0x00185028, "Soft Tissue-focus Thermal Index", "DS", "1", 0, 0},
1200     { 0x00185029, "Soft Tissue-surface Thermal Index", "DS", "1", 0, 0},
1201     { 0x00185030, "Dynamic Range", "DS", "1", -1, 0},
1202     { 0x00185040, "Total Gain", "DS", "1", -1, 0},
1203     { 0x00185050, "Depth of Scan Field", "IS", "1", 0, 0},
1204     { 0x00185100, "Patient Position", "CS", "1", 0, -1},
1205     { 0x00185101, "View Position", "CS", "1", 0, 0},
1206     { 0x00185104, "Projection Eponymous Name Code Sequence", "SQ", "1", 0, 0},
1207     { 0x00185210, "Image Transformation Matrix", "DS", "6", -1, 0},
1208     { 0x00185212, "Image Translation Vector", "DS", "3", -1, 0},
1209     { 0x00186000, "Sensitivity", "DS", "1", 0, 0},
1210     { 0x00186011, "Sequence of Ultrasound Regions", "SQ", "1", 0, 0},
1211     { 0x00186012, "Region Spatial Format", "US", "1", 0, 0},
1212     { 0x00186014, "Region Data Type", "US", "1", 0, 0},
1213     { 0x00186016, "Region Flags", "UL", "1", 0, 0},
1214     { 0x00186018, "Region Location Min X0", "UL", "1", 0, 0},
1215     { 0x0018601A, "Region Location Min Y0", "UL", "1", 0, 0},
1216     { 0x0018601C, "Region Location Max X1", "UL", "1", 0, 0},
1217     { 0x0018601E, "Region Location Max Y1", "UL", "1", 0, 0},
1218     { 0x00186020, "Reference Pixel X0", "SL", "1", 0, 0},
1219     { 0x00186022, "Reference Pixel Y0", "SL", "1", 0, 0},
1220     { 0x00186024, "Physical Units X Direction", "US", "1", 0, 0},
1221     { 0x00186026, "Physical Units Y Direction", "US", "1", 0, 0},
1222     { 0x00186028, "Reference Pixel Physical Value X", "FD", "1", 0, 0},
1223     { 0x0018602A, "Reference Pixel Physical Value Y", "FD", "1", 0, 0},
1224     { 0x0018602C, "Physical Delta X", "FD", "1", 0, 0},
1225     { 0x0018602E, "Physical Delta Y", "FD", "1", 0, 0},
1226     { 0x00186030, "Transducer Frequency", "UL", "1", 0, 0},
1227     { 0x00186031, "Transducer Type", "CS", "1", 0, 0},
1228     { 0x00186032, "Pulse Repetition Frequency", "UL", "1", 0, 0},
1229     { 0x00186034, "Doppler Correction Angle", "FD", "1", 0, 0},
1230     { 0x00186036, "Steering Angle", "FD", "1", 0, 0},
1231     { 0x00186038, "Doppler Sample Volume X Position (Retired)", "UL", "1", -1, 0},
1232     { 0x00186039, "Doppler Sample Volume X Position", "SL", "1", 0, 0},
1233     { 0x0018603A, "Doppler Sample Volume Y Position (Retired)", "UL", "1", -1, 0},
1234     { 0x0018603B, "Doppler Sample Volume Y Position", "SL", "1", 0, 0},
1235     { 0x0018603C, "TM-Line Position X0 (Retired)", "UL", "1", -1, 0},
1236     { 0x0018603D, "TM-Line Position X0", "SL", "1", 0, 0},
1237     { 0x0018603E, "TM-Line Position Y0 (Retired)", "UL", "1", -1, 0},
1238     { 0x0018603F, "TM-Line Position Y0", "SL", "1", 0, 0},
1239     { 0x00186040, "TM-Line Position X1 (Retired)", "UL", "1", -1, 0},
1240     { 0x00186041, "TM-Line Position X1", "SL", "1", 0, 0},
1241     { 0x00186042, "TM-Line Position Y1 (Retired)", "UL", "1", -1, 0},
1242     { 0x00186043, "TM-Line Position Y1", "SL", "1", 0, 0},
1243     { 0x00186044, "Pixel Component Organization", "US", "1", 0, 0},
1244     { 0x00186046, "Pixel Component Mask", "UL", "1", 0, 0},
1245     { 0x00186048, "Pixel Component Range Start", "UL", "1", 0, 0},
1246     { 0x0018604A, "Pixel Component Range Stop", "UL", "1", 0, 0},
1247     { 0x0018604C, "Pixel Component Physical Units", "US", "1", 0, 0},
1248     { 0x0018604E, "Pixel Component Data Type", "US", "1", 0, 0},
1249     { 0x00186050, "Number of Table Break Points", "UL", "1", 0, 0},
1250     { 0x00186052, "Table of X Break Points", "UL", "1-n", 0, 0},
1251     { 0x00186054, "Table of Y Break Points", "FD", "1-n", 0, 0},
1252     { 0x00186056, "Number of Table Entries", "UL", "1", 0, 0},
1253     { 0x00186058, "Table of Pixel Values", "UL", "1-n", 0, 0},
1254     { 0x0018605A, "Table of Parameter Values", "FL", "1-n", 0, 0},
1255     { 0x00186060, "R Wave Time Vector", "FL", "1-n", 0, 0},
1256     { 0x00187000, "Detector Conditions Nominal Flag", "CS", "1", 0, 0},
1257     { 0x00187001, "Detector Temperature", "DS", "1", 0, 0},
1258     { 0x00187004, "Detector Type", "CS", "1", 0, 0},
1259     { 0x00187005, "Detector Configuration", "CS", "1", 0, 0},
1260     { 0x00187006, "Detector Description", "LT", "1", 0, 0},
1261     { 0x00187008, "Detector Mode", "LT", "1", 0, 0},
1262     { 0x0018700A, "Detector ID", "SH", "1", 0, 0},
1263     { 0x0018700C, "Date of Last Detector Calibration", "DA", "1", 0, 0},
1264     { 0x0018700E, "Time of Last Detector Calibration", "TM", "1", 0, 0},
1265     { 0x00187010, "Exposures on Detector Since Last Calibration", "IS", "1", 0, 0},
1266     { 0x00187011, "Exposures on Detector Since Manufactured", "IS", "1", 0, 0},
1267     { 0x00187012, "Detector Time Since Last Exposure", "DS", "1", 0, 0},
1268     { 0x00187014, "Detector Active Time", "DS", "1", 0, 0},
1269     { 0x00187016, "Detector Activation Offset From Exposure", "DS", "1", 0, 0},
1270     { 0x0018701A, "Detector Binning", "DS", "2", 0, 0},
1271     { 0x00187020, "Detector Element Physical Size", "DS", "2", 0, 0},
1272     { 0x00187022, "Detector Element Spacing", "DS", "2", 0, 0},
1273     { 0x00187024, "Detector Active Shape", "CS", "1", 0, 0},
1274     { 0x00187026, "Detector Active Dimension(s)", "DS", "1-2", 0, 0},
1275     { 0x00187028, "Detector Active Origin", "DS", "2", 0, 0},
1276     { 0x0018702A, "Detector Manufacturer Name", "LO", "1", 0, 0},
1277     { 0x0018702B, "Detector Manufacturer's Model Name", "LO", "1", 0, 0},
1278     { 0x00187030, "Field of View Origin", "DS", "2", 0, 0},
1279     { 0x00187032, "Field of View Rotation", "DS", "1", 0, 0},
1280     { 0x00187034, "Field of View Horizontal Flip", "CS", "1", 0, 0},
1281     { 0x00187040, "Grid Absorbing Material", "LT", "1", 0, 0},
1282     { 0x00187041, "Grid Spacing Material", "LT", "1", 0, 0},
1283     { 0x00187042, "Grid Thickness", "DS", "1", 0, 0},
1284     { 0x00187044, "Grid Pitch", "DS", "1", 0, 0},
1285     { 0x00187046, "Grid Aspect Ratio", "IS", "2", 0, 0},
1286     { 0x00187048, "Grid Period", "DS", "1", 0, 0},
1287     { 0x0018704C, "Grid Focal Distance", "DS", "1", 0, 0},
1288     { 0x00187050, "Filter Material", "CS", "1-n", 0, 0},
1289     { 0x00187052, "Filter Thickness Minimum", "DS", "1-n", 0, 0},
1290     { 0x00187054, "Filter Thickness Maximum", "DS", "1-n", 0, 0},
1291     { 0x00187060, "Exposure Control Mode", "CS", "1", 0, 0},
1292     { 0x00187062, "Exposure Control Mode Description", "LT", "1", 0, 0},
1293     { 0x00187064, "Exposure Status", "CS", "1", 0, 0},
1294     { 0x00187065, "Phototimer Setting", "DS", "1", 0, 0},
1295     { 0x00188150, "Exposure Time in uS", "DS", "1", 0, 0},
1296     { 0x00188151, "X-Ray Tube Current in uA", "DS", "1", 0, 0},
1297     { 0x00189004, "Content Qualification", "CS", "1", 0, 0},
1298     { 0x00189005, "Pulse Sequence Name", "SH", "1", 0, 0},
1299     { 0x00189006, "MR Imaging Modifier Sequence", "SQ", "1", 0, 0},
1300     { 0x00189008, "Echo Pulse Sequence", "CS", "1", 0, 0},
1301     { 0x00189009, "Inversion Recovery", "CS", "1", 0, 0},
1302     { 0x00189010, "Flow Compensation", "CS", "1", 0, 0},
1303     { 0x00189011, "Multiple Spin Echo", "CS", "1", 0, 0},
1304     { 0x00189012, "Multi-planar Excitation", "CS", "1", 0, 0},
1305     { 0x00189014, "Phase Contrast", "CS", "1", 0, 0},
1306     { 0x00189015, "Time of Flight Contrast", "CS", "1", 0, 0},
1307     { 0x00189016, "Spoiling", "CS", "1", 0, 0},
1308     { 0x00189017, "Steady State Pulse Sequence", "CS", "1", 0, 0},
1309     { 0x00189018, "Echo Planar Pulse Sequence", "CS", "1", 0, 0},
1310     { 0x00189019, "Tag Angle First Axis", "FD", "1", 0, 0},
1311     { 0x00189020, "Magnetization Transfer", "CS", "1", 0, 0},
1312     { 0x00189021, "T2 Preparation", "CS", "1", 0, 0},
1313     { 0x00189022, "Blood Signal Nulling", "CS", "1", 0, 0},
1314     { 0x00189024, "Saturation Recovery", "CS", "1", 0, 0},
1315     { 0x00189025, "Spectrally Selected Suppression", "CS", "1", 0, 0},
1316     { 0x00189026, "Spectrally Selected Excitation", "CS", "1", 0, 0},
1317     { 0x00189027, "Spatial Pre-saturation", "CS", "1", 0, 0},
1318     { 0x00189028, "Tagging", "CS", "1", 0, 0},
1319     { 0x00189029, "Oversampling Phase", "CS", "1", 0, 0},
1320     { 0x00189030, "Tag Spacing First Dimension", "FD", "1", 0, 0},
1321     { 0x00189032, "Geometry of k-Space Traversal", "CS", "1", 0, 0},
1322     { 0x00189033, "Segmented k-Space Traversal", "CS", "1", 0, 0},
1323     { 0x00189034, "Rectilinear Phase Encode Reordering", "CS", "1", 0, 0},
1324     { 0x00189035, "Tag Thickness", "FD", "1", 0, 0},
1325     { 0x00189036, "Partial Fourier Direction", "CS", "1", 0, 0},
1326     { 0x00189037, "Cardiac Synchronization Technique", "CS", "1", 0, 0},
1327     { 0x00189041, "Receive Coil Manufacturer Name", "LO", "1", 0, 0},
1328     { 0x00189042, "MR Receive Coil Sequence", "SQ", "1", 0, 0},
1329     { 0x00189043, "Receive Coil Type", "CS", "1", 0, 0},
1330     { 0x00189044, "Quadrature Receive Coil", "CS", "1", 0, 0},
1331     { 0x00189045, "Multi-Coil Definition Sequence", "SQ", "1", 0, 0},
1332     { 0x00189046, "Multi-Coil Configuration", "LO", "1", 0, 0},
1333     { 0x00189047, "Multi-Coil Element Name", "SH", "1", 0, 0},
1334     { 0x00189048, "Multi-Coil Element Used", "CS", "1", 0, 0},
1335     { 0x00189049, "MR Transmit Coil Sequence", "SQ", "1", 0, 0},
1336     { 0x00189050, "Transmit Coil Manufacturer Name", "LO", "1", 0, 0},
1337     { 0x00189051, "Transmit Coil Type", "CS", "1", 0, 0},
1338     { 0x00189052, "Spectral Width", "FD", "1-2", 0, 0},
1339     { 0x00189053, "Chemical Shift Reference", "FD", "1-2", 0, 0},
1340     { 0x00189054, "Volume Localization Technique", "CS", "1", 0, 0},
1341     { 0x00189058, "MR Acquisition Frequency Encoding Steps", "US", "1", 0, 0},
1342     { 0x00189059, "De-coupling", "CS", "1", 0, 0},
1343     { 0x00189060, "De-coupled Nucleus", "CS", "1-2", 0, 0},
1344     { 0x00189061, "De-coupling Frequency", "FD", "1-2", 0, 0},
1345     { 0x00189062, "De-coupling Method", "CS", "1", 0, 0},
1346     { 0x00189063, "De-coupling Chemical Shift Reference", "FD", "1-2", 0, 0},
1347     { 0x00189064, "k-space Filtering", "CS", "1", 0, 0},
1348     { 0x00189065, "Time Domain Filtering", "CS", "1-2", 0, 0},
1349     { 0x00189066, "Number of Zero fills", "US", "1-2", 0, 0},
1350     { 0x00189067, "Baseline Correction", "CS", "1", 0, 0},
1351     { 0x00189069, "Parallel Reduction Factor In-plane", "FD", "1", 0, 0},
1352     { 0x00189070, "Cardiac R-R Interval Specified", "FD", "1", 0, 0},
1353     { 0x00189073, "Acquisition Duration", "FD", "1", 0, 0},
1354     { 0x00189074, "Frame Acquisition DateTime", "DT", "1", 0, 0},
1355     { 0x00189075, "Diffusion Directionality", "CS", "1", 0, 0},
1356     { 0x00189076, "Diffusion Gradient Direction Sequence", "SQ", "1", 0, 0},
1357     { 0x00189077, "Parallel Acquisition", "CS", "1", 0, 0},
1358     { 0x00189078, "Parallel Acquisition Technique", "CS", "1", 0, 0},
1359     { 0x00189079, "Inversion Times", "FD", "1-n", 0, 0},
1360     { 0x00189080, "Metabolite Map Description", "ST", "1", 0, 0},
1361     { 0x00189081, "Partial Fourier", "CS", "1", 0, 0},
1362     { 0x00189082, "Effective Echo Time", "FD", "1", 0, 0},
1363     { 0x00189083, "Metabolite Map Code Sequence", "SQ", "1", 0, 0},
1364     { 0x00189084, "Chemical Shift Sequence", "SQ", "1", 0, 0},
1365     { 0x00189085, "Cardiac Signal Source", "CS", "1", 0, 0},
1366     { 0x00189087, "Diffusion b-value", "FD", "1", 0, 0},
1367     { 0x00189089, "Diffusion Gradient Orientation", "FD", "3", 0, 0},
1368     { 0x00189090, "Velocity Encoding Direction", "FD", "3", 0, 0},
1369     { 0x00189091, "Velocity Encoding Minimum Value", "FD", "1", 0, 0},
1370     { 0x00189093, "Number of k-Space Trajectories", "US", "1", 0, 0},
1371     { 0x00189094, "Coverage of k-Space", "CS", "1", 0, 0},
1372     { 0x00189095, "Spectroscopy Acquisition Phase Rows", "UL", "1", 0, 0},
1373     { 0x00189096, "Parallel Reduction Factor In-plane (Retired)", "FD", "1", -1, 0},
1374     { 0x00189098, "Transmitter Frequency", "FD", "1-2", 0, 0},
1375     { 0x00189100, "Resonant Nucleus", "CS", "1-2", 0, 0},
1376     { 0x00189101, "Frequency Correction", "CS", "1", 0, 0},
1377     { 0x00189103, "MR Spectroscopy FOV/Geometry Sequence", "SQ", "1", 0, 0},
1378     { 0x00189104, "Slab Thickness", "FD", "1", 0, 0},
1379     { 0x00189105, "Slab Orientation", "FD", "3", 0, 0},
1380     { 0x00189106, "Mid Slab Position", "FD", "3", 0, 0},
1381     { 0x00189107, "MR Spatial Saturation Sequence", "SQ", "1", 0, 0},
1382     { 0x00189112, "MR Timing and Related Parameters Sequence", "SQ", "1", 0, 0},
1383     { 0x00189114, "MR Echo Sequence", "SQ", "1", 0, 0},
1384     { 0x00189115, "MR Modifier Sequence", "SQ", "1", 0, 0},
1385     { 0x00189117, "MR Diffusion Sequence", "SQ", "1", 0, 0},
1386     { 0x00189118, "Cardiac Synchronization Sequence", "SQ", "1", 0, 0},
1387     { 0x00189119, "MR Averages Sequence", "SQ", "1", 0, 0},
1388     { 0x00189125, "MR FOV/Geometry Sequence", "SQ", "1", 0, 0},
1389     { 0x00189126, "Volume Localization Sequence", "SQ", "1", 0, 0},
1390     { 0x00189127, "Spectroscopy Acquisition Data Columns", "UL", "1", 0, 0},
1391     { 0x00189147, "Diffusion Anisotropy Type", "CS", "1", 0, 0},
1392     { 0x00189151, "Frame Reference DateTime", "DT", "1", 0, 0},
1393     { 0x00189152, "MR Metabolite Map Sequence", "SQ", "1", 0, 0},
1394     { 0x00189155, "Parallel Reduction Factor out-of-plane", "FD", "1", 0, 0},
1395     { 0x00189159, "Spectroscopy Acquisition Out-of-plane Phase Steps", "UL", "1", 0, 0},
1396     { 0x00189166, "Bulk Motion Status", "CS", "1", -1, 0},
1397     { 0x00189168, "Parallel Reduction Factor Second In-plane", "FD", "1", 0, 0},
1398     { 0x00189169, "Cardiac Beat Rejection Technique", "CS", "1", 0, 0},
1399     { 0x00189170, "Respiratory Motion Compensation Technique", "CS", "1", 0, 0},
1400     { 0x00189171, "Respiratory Signal Source", "CS", "1", 0, 0},
1401     { 0x00189172, "Bulk Motion Compensation Technique", "CS", "1", 0, 0},
1402     { 0x00189173, "Bulk Motion Signal Source", "CS", "1", 0, 0},
1403     { 0x00189174, "Applicable Safety Standard Agency", "CS", "1", 0, 0},
1404     { 0x00189175, "Applicable Safety Standard Description", "LO", "1", 0, 0},
1405     { 0x00189176, "Operating Mode Sequence", "SQ", "1", 0, 0},
1406     { 0x00189177, "Operating Mode Type", "CS", "1", 0, 0},
1407     { 0x00189178, "Operating Mode", "CS", "1", 0, 0},
1408     { 0x00189179, "Specific Absorption Rate Definition", "CS", "1", 0, 0},
1409     { 0x00189180, "Gradient Output Type", "CS", "1", 0, 0},
1410     { 0x00189181, "Specific Absorption Rate Value", "FD", "1", 0, 0},
1411     { 0x00189182, "Gradient Output", "FD", "1", 0, 0},
1412     { 0x00189183, "Flow Compensation Direction", "CS", "1", 0, 0},
1413     { 0x00189184, "Tagging Delay", "FD", "1", 0, 0},
1414     { 0x00189185, "Respiratory Motion Compensation Technique Description", "ST", "1", 0, 0},
1415     { 0x00189186, "Respiratory Signal Source ID", "SH", "1", 0, 0},
1416     { 0x00189195, "Chemical Shifts Minimum Integration Limit in Hz", "FD", "1", -1, 0},
1417     { 0x00189196, "Chemical Shifts Maximum Integration Limit in Hz", "FD", "1", -1, 0},
1418     { 0x00189197, "MR Velocity Encoding Sequence", "SQ", "1", 0, 0},
1419     { 0x00189198, "First Order Phase Correction", "CS", "1", 0, 0},
1420     { 0x00189199, "Water Referenced Phase Correction", "CS", "1", 0, 0},
1421     { 0x00189200, "MR Spectroscopy Acquisition Type", "CS", "1", 0, 0},
1422     { 0x00189214, "Respiratory Cycle Position", "CS", "1", 0, 0},
1423     { 0x00189217, "Velocity Encoding Maximum Value", "FD", "1", 0, 0},
1424     { 0x00189218, "Tag Spacing Second Dimension", "FD", "1", 0, 0},
1425     { 0x00189219, "Tag Angle Second Axis", "SS", "1", 0, 0},
1426     { 0x00189220, "Frame Acquisition Duration", "FD", "1", 0, 0},
1427     { 0x00189226, "MR Image Frame Type Sequence", "SQ", "1", 0, 0},
1428     { 0x00189227, "MR Spectroscopy Frame Type Sequence", "SQ", "1", 0, 0},
1429     { 0x00189231, "MR Acquisition Phase Encoding Steps in-plane", "US", "1", 0, 0},
1430     { 0x00189232, "MR Acquisition Phase Encoding Steps out-of-plane", "US", "1", 0, 0},
1431     { 0x00189234, "Spectroscopy Acquisition Phase Columns", "UL", "1", 0, 0},
1432     { 0x00189236, "Cardiac Cycle Position", "CS", "1", 0, 0},
1433     { 0x00189239, "Specific Absorption Rate Sequence", "SQ", "1", 0, 0},
1434     { 0x00189240, "RF Echo Train Length", "US", "1", 0, 0},
1435     { 0x00189241, "Gradient Echo Train Length", "US", "1", 0, 0},
1436     { 0x00189295, "Chemical Shifts Minimum Integration Limit in ppm", "FD", "1", 0, 0},
1437     { 0x00189296, "Chemical Shifts Maximum Integration Limit in ppm", "FD", "1", 0, 0},
1438     { 0x00189301, "CT Acquisition Type Sequence", "SQ", "1", 0, 0},
1439     { 0x00189302, "Acquisition Type", "CS", "1", 0, 0},
1440     { 0x00189303, "Tube Angle", "FD", "1", 0, 0},
1441     { 0x00189304, "CT Acquisition Details Sequence", "SQ", "1", 0, 0},
1442     { 0x00189305, "Revolution Time", "FD", "1", 0, 0},
1443     { 0x00189306, "Single Collimation Width", "FD", "1", 0, 0},
1444     { 0x00189307, "Total Collimation Width", "FD", "1", 0, 0},
1445     { 0x00189308, "CT Table Dynamics Sequence", "SQ", "1", 0, 0},
1446     { 0x00189309, "Table Speed", "FD", "1", 0, 0},
1447     { 0x00189310, "Table Feed per Rotation", "FD", "1", 0, 0},
1448     { 0x00189311, "Spiral Pitch Factor", "FD", "1", 0, 0},
1449     { 0x00189312, "CT Geometry Sequence", "SQ", "1", 0, 0},
1450     { 0x00189313, "Data Collection Center (Patient)", "FD", "3", 0, 0},
1451     { 0x00189314, "CT Reconstruction Sequence", "SQ", "1", 0, 0},
1452     { 0x00189315, "Reconstruction Algorithm", "CS", "1", 0, 0},
1453     { 0x00189316, "Convolution Kernel Group", "CS", "1", 0, 0},
1454     { 0x00189317, "Reconstruction Field of View", "FD", "2", 0, 0},
1455     { 0x00189318, "Reconstruction Target Center (Patient)", "FD", "3", 0, 0},
1456     { 0x00189319, "Reconstruction Angle", "FD", "1", 0, 0},
1457     { 0x00189320, "Image Filter", "SH", "1", 0, 0},
1458     { 0x00189321, "CT Exposure Sequence", "SQ", "1", 0, 0},
1459     { 0x00189322, "Reconstruction Pixel Spacing", "FD", "2", 0, 0},
1460     { 0x00189323, "Exposure Modulation Type", "CS", "1", 0, 0},
1461     { 0x00189324, "Estimated Dose Saving", "FD", "1", 0, 0},
1462     { 0x00189325, "CT X-Ray Details Sequence", "SQ", "1", 0, 0},
1463     { 0x00189326, "CT Position Sequence", "SQ", "1", 0, 0},
1464     { 0x00189327, "Table Position", "FD", "1", 0, 0},
1465     { 0x00189328, "Exposure Time in ms", "FD", "1", 0, 0},
1466     { 0x00189329, "CT Image Frame Type Sequence", "SQ", "1", 0, 0},
1467     { 0x00189330, "X-Ray Tube Current in mA", "FD", "1", 0, 0},
1468     { 0x00189332, "Exposure in mAs", "FD", "1", 0, 0},
1469     { 0x00189333, "Constant Volume Flag", "CS", "1", 0, 0},
1470     { 0x00189334, "Fluoroscopy Flag", "CS", "1", 0, 0},
1471     { 0x00189335, "Distance Source to Data Collection Center", "FD", "1", 0, 0},
1472     { 0x00189337, "Contrast/Bolus Agent Number", "US", "1", 0, 0},
1473     { 0x00189338, "Contrast/Bolus Ingredient Code Sequence", "SQ", "1", 0, 0},
1474     { 0x00189340, "Contrast Administration Profile Sequence", "SQ", "1", 0, 0},
1475     { 0x00189341, "Contrast/Bolus Usage Sequence", "SQ", "1", 0, 0},
1476     { 0x00189342, "Contrast/Bolus Agent Administered", "CS", "1", 0, 0},
1477     { 0x00189343, "Contrast/Bolus Agent Detected", "CS", "1", 0, 0},
1478     { 0x00189344, "Contrast/Bolus Agent Phase", "CS", "1", 0, 0},
1479     { 0x00189345, "CTDIvol", "FD", "1", 0, 0},
1480     { 0x00189346, "CTDI Phantom Type Code Sequence", "SQ", "1", 0, 0},
1481     { 0x00189351, "Calcium Scoring Mass Factor Patient", "FL", "1", 0, 0},
1482     { 0x00189352, "Calcium Scoring Mass Factor Device", "FL", "3", 0, 0},
1483     { 0x00189360, "CT Additional X-Ray Source Sequence", "SQ", "1", 0, 0},
1484     { 0x00189401, "Projection Pixel Calibration Sequence", "SQ", "1", 0, 0},
1485     { 0x00189402, "Distance Source to Isocenter", "FL", "1", 0, 0},
1486     { 0x00189403, "Distance Object to Table Top", "FL", "1", 0, 0},
1487     { 0x00189404, "Object Pixel Spacing in Center of Beam", "FL", "2", 0, 0},
1488     { 0x00189405, "Positioner Position Sequence", "SQ", "1", 0, 0},
1489     { 0x00189406, "Table Position Sequence", "SQ", "1", 0, 0},
1490     { 0x00189407, "Collimator Shape Sequence", "SQ", "1", 0, 0},
1491     { 0x00189412, "XA/XRF Frame Characteristics Sequence", "SQ", "1", 0, 0},
1492     { 0x00189417, "Frame Acquisition Sequence", "SQ", "1", 0, 0},
1493     { 0x00189420, "X-Ray Receptor Type", "CS", "1", 0, 0},
1494     { 0x00189423, "Acquisition Protocol Name", "LO", "1", 0, 0},
1495     { 0x00189424, "Acquisition Protocol Description", "LT", "1", 0, 0},
1496     { 0x00189425, "Contrast/Bolus Ingredient Opaque", "CS", "1", 0, 0},
1497     { 0x00189426, "Distance Receptor Plane to Detector Housing", "FL", "1", 0, 0},
1498     { 0x00189427, "Intensifier Active Shape", "CS", "1", 0, 0},
1499     { 0x00189428, "Intensifier Active Dimension(s)", "FL", "1-2", 0, 0},
1500     { 0x00189429, "Physical Detector Size", "FL", "2", 0, 0},
1501     { 0x00189430, "Position of Isocenter Projection", "US", "2", 0, 0},
1502     { 0x00189432, "Field of View Sequence", "SQ", "1", 0, 0},
1503     { 0x00189433, "Field of View Description", "LO", "1", 0, 0},
1504     { 0x00189434, "Exposure Control Sensing Regions Sequence", "SQ", "1", 0, 0},
1505     { 0x00189435, "Exposure Control Sensing Region Shape", "CS", "1", 0, 0},
1506     { 0x00189436, "Exposure Control Sensing Region Left Vertical Edge", "SS", "1", 0, 0},
1507     { 0x00189437, "Exposure Control Sensing Region Right Vertical Edge", "SS", "1", 0, 0},
1508     { 0x00189438, "Exposure Control Sensing Region Upper Horizontal Edge", "SS", "1", 0, 0},
1509     { 0x00189439, "Exposure Control Sensing Region Lower Horizontal Edge", "SS", "1", 0, 0},
1510     { 0x00189440, "Center of Circular Exposure Control Sensing Region", "SS", "2", 0, 0},
1511     { 0x00189441, "Radius of Circular Exposure Control Sensing Region", "US", "1", 0, 0},
1512     { 0x00189442, "Vertices of the Polygonal Exposure Control Sensing Region", "SS", "2-n", 0, 0},
1513     { 0x00189445, "", "", "", -1, 0},
1514     { 0x00189447, "Column Angulation (Patient)", "FL", "1", 0, 0},
1515     { 0x00189449, "Beam Angle", "FL", "1", 0, 0},
1516     { 0x00189451, "Frame Detector Parameters Sequence", "SQ", "1", 0, 0},
1517     { 0x00189452, "Calculated Anatomy Thickness", "FL", "1", 0, 0},
1518     { 0x00189455, "Calibration Sequence", "SQ", "1", 0, 0},
1519     { 0x00189456, "Object Thickness Sequence", "SQ", "1", 0, 0},
1520     { 0x00189457, "Plane Identification", "CS", "1", 0, 0},
1521     { 0x00189461, "Field of View Dimension(s) in Float", "FL", "1-2", 0, 0},
1522     { 0x00189462, "Isocenter Reference System Sequence", "SQ", "1", 0, 0},
1523     { 0x00189463, "Positioner Isocenter Primary Angle", "FL", "1", 0, 0},
1524     { 0x00189464, "Positioner Isocenter Secondary Angle", "FL", "1", 0, 0},
1525     { 0x00189465, "Positioner Isocenter Detector Rotation Angle", "FL", "1", 0, 0},
1526     { 0x00189466, "Table X Position to Isocenter", "FL", "1", 0, 0},
1527     { 0x00189467, "Table Y Position to Isocenter", "FL", "1", 0, 0},
1528     { 0x00189468, "Table Z Position to Isocenter", "FL", "1", 0, 0},
1529     { 0x00189469, "Table Horizontal Rotation Angle", "FL", "1", 0, 0},
1530     { 0x00189470, "Table Head Tilt Angle", "FL", "1", 0, 0},
1531     { 0x00189471, "Table Cradle Tilt Angle", "FL", "1", 0, 0},
1532     { 0x00189472, "Frame Display Shutter Sequence", "SQ", "1", 0, 0},
1533     { 0x00189473, "Acquired Image Area Dose Product", "FL", "1", 0, 0},
1534     { 0x00189474, "C-arm Positioner Tabletop Relationship", "CS", "1", 0, 0},
1535     { 0x00189476, "X-Ray Geometry Sequence", "SQ", "1", 0, 0},
1536     { 0x00189477, "Irradiation Event Identification Sequence", "SQ", "1", 0, 0},
1537     { 0x00189504, "X-Ray 3D Frame Type Sequence", "SQ", "1", 0, 0},
1538     { 0x00189506, "Contributing Sources Sequence", "SQ", "1", 0, 0},
1539     { 0x00189507, "X-Ray 3D Acquisition Sequence", "SQ", "1", 0, 0},
1540     { 0x00189508, "Primary Positioner Scan Arc", "FL", "1", 0, 0},
1541     { 0x00189509, "Secondary Positioner Scan Arc", "FL", "1", 0, 0},
1542     { 0x00189510, "Primary Positioner Scan Start Angle", "FL", "1", 0, 0},
1543     { 0x00189511, "Secondary Positioner Scan Start Angle", "FL", "1", 0, 0},
1544     { 0x00189514, "Primary Positioner Increment", "FL", "1", 0, 0},
1545     { 0x00189515, "Secondary Positioner Increment", "FL", "1", 0, 0},
1546     { 0x00189516, "Start Acquisition DateTime", "DT", "1", 0, 0},
1547     { 0x00189517, "End Acquisition DateTime", "DT", "1", 0, 0},
1548     { 0x00189524, "Application Name", "LO", "1", 0, 0},
1549     { 0x00189525, "Application Version", "LO", "1", 0, 0},
1550     { 0x00189526, "Application Manufacturer", "LO", "1", 0, 0},
1551     { 0x00189527, "Algorithm Type", "CS", "1", 0, 0},
1552     { 0x00189528, "Algorithm Description", "LO", "1", 0, 0},
1553     { 0x00189530, "X-Ray 3D Reconstruction Sequence", "SQ", "1", 0, 0},
1554     { 0x00189531, "Reconstruction Description", "LO", "1", 0, 0},
1555     { 0x00189538, "Per Projection Acquisition Sequence", "SQ", "1", 0, 0},
1556     { 0x00189601, "Diffusion b-matrix Sequence", "SQ", "1", 0, 0},
1557     { 0x00189602, "Diffusion b-value XX", "FD", "1", 0, 0},
1558     { 0x00189603, "Diffusion b-value XY", "FD", "1", 0, 0},
1559     { 0x00189604, "Diffusion b-value XZ", "FD", "1", 0, 0},
1560     { 0x00189605, "Diffusion b-value YY", "FD", "1", 0, 0},
1561     { 0x00189606, "Diffusion b-value YZ", "FD", "1", 0, 0},
1562     { 0x00189607, "Diffusion b-value ZZ", "FD", "1", 0, 0},
1563     { 0x0018A001, "Contributing Equipment Sequence", "SQ", "1", 0, 0},
1564     { 0x0018A002, "Contribution Date Time", "DT", "1", 0, 0},
1565     { 0x0018A003, "Contribution Description", "ST", "1", 0, 0},
1566     { 0x0020000D, "Study Instance UID", "UI", "1", 0, 0},
1567     { 0x0020000E, "Series Instance UID", "UI", "1", 0, 0},
1568     { 0x00200010, "Study ID", "SH", "1", 0, 0},
1569     { 0x00200011, "Series Number", "IS", "1", 0, 0},
1570     { 0x00200012, "Acquisition Number", "IS", "1", 0, 0},
1571     { 0x00200013, "Instance Number", "IS", "1", 0, 0},
1572     { 0x00200014, "Isotope Number", "IS", "1", -1, 0},
1573     { 0x00200015, "Phase Number", "IS", "1", -1, 0},
1574     { 0x00200016, "Interval Number", "IS", "1", -1, 0},
1575     { 0x00200017, "Time Slot Number", "IS", "1", -1, 0},
1576     { 0x00200018, "Angle Number", "IS", "1", -1, 0},
1577     { 0x00200019, "Item Number", "IS", "1", 0, 0},
1578     { 0x00200020, "Patient Orientation", "CS", "2", 0, 0},
1579     { 0x00200022, "Overlay Number", "IS", "1", -1, 0},
1580     { 0x00200024, "Curve Number", "IS", "1", -1, 0},
1581     { 0x00200026, "Lookup Table Number", "IS", "1", -1, 0},
1582     { 0x00200030, "Image Position", "DS", "3", -1, 0},
1583     { 0x00200032, "Image Position (Patient)", "DS", "3", 0, 0},
1584     { 0x00200035, "Image Orientation", "DS", "6", -1, 0},
1585     { 0x00200037, "Image Orientation (Patient)", "DS", "6", 0, 0},
1586     { 0x00200050, "Location", "DS", "1", -1, 0},
1587     { 0x00200052, "Frame of Reference UID", "UI", "1", 0, 0},
1588     { 0x00200060, "Laterality", "CS", "1", 0, 0},
1589     { 0x00200062, "Image Laterality", "CS", "1", 0, 0},
1590     { 0x00200070, "Image Geometry Type", "LO", "1", -1, 0},
1591     { 0x00200080, "Masking Image", "CS", "1-n", -1, 0},
1592     { 0x00200100, "Temporal Position Identifier", "IS", "1", 0, 0},
1593     { 0x00200105, "Number of Temporal Positions", "IS", "1", 0, 0},
1594     { 0x00200110, "Temporal Resolution", "DS", "1", 0, 0},
1595     { 0x00200200, "Synchronization Frame of Reference UID", "UI", "1", 0, 0},
1596     { 0x00201000, "Series in Study", "IS", "1", -1, 0},
1597     { 0x00201001, "Acquisitions in Series", "IS", "1", -1, 0},
1598     { 0x00201002, "Images in Acquisition", "IS", "1", 0, 0},
1599     { 0x00201003, "Images in Series", "IS", "1", -1, 0},
1600     { 0x00201004, "Acquisitions in Study", "IS", "1", -1, 0},
1601     { 0x00201005, "Images in Study", "IS", "1", -1, 0},
1602     { 0x00201020, "Reference", "CS", "1-n", -1, 0},
1603     { 0x00201040, "Position Reference Indicator", "LO", "1", 0, 0},
1604     { 0x00201041, "Slice Location", "DS", "1", 0, 0},
1605     { 0x00201070, "Other Study Numbers", "IS", "1-n", -1, 0},
1606     { 0x00201200, "Number of Patient Related Studies", "IS", "1", 0, 0},
1607     { 0x00201202, "Number of Patient Related Series", "IS", "1", 0, 0},
1608     { 0x00201204, "Number of Patient Related Instances", "IS", "1", 0, 0},
1609     { 0x00201206, "Number of Study Related Series", "IS", "1", 0, 0},
1610     { 0x00201208, "Number of Study Related Instances", "IS", "1", 0, 0},
1611     { 0x00201209, "Number of Series Related Instances", "IS", "1", 0, 0},
1612     { 0x00203100, "Source Image IDs", "CS", "1-n", -1, 0},
1613     { 0x00203401, "Modifying Device ID", "CS", "1", -1, 0},
1614     { 0x00203402, "Modified Image ID", "CS", "1", -1, 0},
1615     { 0x00203403, "Modified Image Date", "DA", "1", -1, 0},
1616     { 0x00203404, "Modifying Device Manufacturer", "LO", "1", -1, 0},
1617     { 0x00203405, "Modified Image Time", "TM", "1", -1, 0},
1618     { 0x00203406, "Modified Image Description", "LO", "1", -1, 0},
1619     { 0x00204000, "Image Comments", "LT", "1", 0, 0},
1620     { 0x00205000, "Original Image Identification", "AT", "1-n", -1, 0},
1621     { 0x00205002, "Original Image Identification Nomenclature", "CS", "1-n", -1, 0},
1622     { 0x00209056, "Stack ID", "SH", "1", 0, 0},
1623     { 0x00209057, "In-Stack Position Number", "UL", "1", 0, 0},
1624     { 0x00209071, "Frame Anatomy Sequence", "SQ", "1", 0, 0},
1625     { 0x00209072, "Frame Laterality", "CS", "1", 0, 0},
1626     { 0x00209111, "Frame Content Sequence", "SQ", "1", 0, 0},
1627     { 0x00209113, "Plane Position Sequence", "SQ", "1", 0, 0},
1628     { 0x00209116, "Plane Orientation Sequence", "SQ", "1", 0, 0},
1629     { 0x00209128, "Temporal Position Index", "UL", "1", 0, 0},
1630     { 0x00209153, "Nominal Cardiac Trigger Delay Time", "FD", "1", 0, 0},
1631     { 0x00209156, "Frame Acquisition Number", "US", "1", 0, 0},
1632     { 0x00209157, "Dimension Index Values", "UL", "1-n", 0, 0},
1633     { 0x00209158, "Frame Comments", "LT", "1", 0, 0},
1634     { 0x00209161, "Concatenation UID", "UI", "1", 0, 0},
1635     { 0x00209162, "In-concatenation Number", "US", "1", 0, 0},
1636     { 0x00209163, "In-concatenation Total Number", "US", "1", 0, 0},
1637     { 0x00209164, "Dimension Organization UID", "UI", "1", 0, 0},
1638     { 0x00209165, "Dimension Index Pointer", "AT", "1", 0, 0},
1639     { 0x00209167, "Functional Group Pointer", "AT", "1", 0, 0},
1640     { 0x00209213, "Dimension Index Private Creator", "LO", "1", 0, 0},
1641     { 0x00209221, "Dimension Organization Sequence", "SQ", "1", 0, 0},
1642     { 0x00209222, "Dimension Index Sequence", "SQ", "1", 0, 0},
1643     { 0x00209228, "Concatenation Frame Offset Number", "UL", "1", 0, 0},
1644     { 0x00209238, "Functional Group Private Creator", "LO", "1", 0, 0},
1645     { 0x00209241, "Nominal Percentage of Cardiac Phase", "FL", "1", 0, 0},
1646     { 0x00209245, "Nominal Percentage of Respiratory Phase", "FL", "1", 0, 0},
1647     { 0x00209246, "Starting Respiratory Amplitude", "FL", "1", 0, 0},
1648     { 0x00209247, "Starting Respiratory Phase", "CS", "1", 0, 0},
1649     { 0x00209248, "Ending Respiratory Amplitude", "FL", "1", 0, 0},
1650     { 0x00209249, "Ending Respiratory Phase", "CS", "1", 0, 0},
1651     { 0x00209250, "Respiratory Trigger Type", "CS", "1", 0, 0},
1652     { 0x00209251, "R - R Interval Time Nominal", "FD", "1", 0, 0},
1653     { 0x00209252, "Actual Cardiac Trigger Delay Time", "FD", "1", 0, 0},
1654     { 0x00209253, "Respiratory Synchronization Sequence", "SQ", "1", 0, 0},
1655     { 0x00209254, "Respiratory Interval Time", "FD", "1", 0, 0},
1656     { 0x00209255, "Nominal Respiratory Trigger Delay Time", "FD", "1", 0, 0},
1657     { 0x00209256, "Respiratory Trigger Delay Threshold", "FD", "1", 0, 0},
1658     { 0x00209257, "Actual Respiratory Trigger Delay Time", "FD", "1", 0, 0},
1659     { 0x00209421, "Dimension Description Label", "LO", "1", 0, 0},
1660     { 0x00209450, "Patient Orientation in Frame Sequence", "SQ", "1", 0, 0},
1661     { 0x00209453, "Frame Label", "LO", "1", 0, 0},
1662     { 0x00209518, "Acquisition Index", "US", "1-n", 0, 0},
1663     { 0x00209529, "Contributing SOP Instances Reference Sequence", "SQ", "1", 0, 0},
1664     { 0x00209536, "Reconstruction Index", "US", "1", 0, 0},
1665     { 0x00220001, "Light Path Filter Pass-Through Wavelength", "US", "1", 0, 0},
1666     { 0x00220002, "Light Path Filter Pass Band", "US", "2", 0, 0},
1667     { 0x00220003, "Image Path Filter Pass-Through Wavelength", "US", "1", 0, 0},
1668     { 0x00220004, "Image Path Filter Pass Band", "US", "2", 0, 0},
1669     { 0x00220005, "Patient Eye Movement Commanded", "CS", "1", 0, 0},
1670     { 0x00220006, "Patient Eye Movement Command Code Sequence", "SQ", "1", 0, 0},
1671     { 0x00220007, "Spherical Lens Power", "FL", "1", 0, 0},
1672     { 0x00220008, "Cylinder Lens Power", "FL", "1", 0, 0},
1673     { 0x00220009, "Cylinder Axis", "FL", "1", 0, 0},
1674     { 0x0022000A, "Emmetropic Magnification", "FL", "1", 0, 0},
1675     { 0x0022000B, "Intra Ocular Pressure", "FL", "1", 0, 0},
1676     { 0x0022000C, "Horizontal Field of View", "FL", "1", 0, 0},
1677     { 0x0022000D, "Pupil Dilated", "CS", "1", 0, 0},
1678     { 0x0022000E, "Degree of Dilation", "FL", "1", 0, 0},
1679     { 0x00220010, "Stereo Baseline Angle", "FL", "1", 0, 0},
1680     { 0x00220011, "Stereo Baseline Displacement", "FL", "1", 0, 0},
1681     { 0x00220012, "Stereo Horizontal Pixel Offset", "FL", "1", 0, 0},
1682     { 0x00220013, "Stereo Vertical Pixel Offset", "FL", "1", 0, 0},
1683     { 0x00220014, "Stereo Rotation", "FL", "1", 0, 0},
1684     { 0x00220015, "Acquisition Device Type Code Sequence", "SQ", "1", 0, 0},
1685     { 0x00220016, "Illumination Type Code Sequence", "SQ", "1", 0, 0},
1686     { 0x00220017, "Light Path Filter Type Stack Code Sequence", "SQ", "1", 0, 0},
1687     { 0x00220018, "Image Path Filter Type Stack Code Sequence", "SQ", "1", 0, 0},
1688     { 0x00220019, "Lenses Code Sequence", "SQ", "1", 0, 0},
1689     { 0x0022001A, "Channel Description Code Sequence", "SQ", "1", 0, 0},
1690     { 0x0022001B, "Refractive State Sequence", "SQ", "1", 0, 0},
1691     { 0x0022001C, "Mydriatic Agent Code Sequence", "SQ", "1", 0, 0},
1692     { 0x0022001D, "Relative Image Position Code Sequence", "SQ", "1", 0, 0},
1693     { 0x00220020, "Stereo Pairs Sequence", "SQ", "1", 0, 0},
1694     { 0x00220021, "Left Image Sequence", "SQ", "1", 0, 0},
1695     { 0x00220022, "Right Image Sequence", "SQ", "1", 0, 0},
1696     { 0x00220030, "Axial Length of the Eye", "FL", "1", 0, 0},
1697     { 0x00220031, "Ophthalmic Frame Location Sequence", "SQ", "1", 0, 0},
1698     { 0x00220032, "Reference Coordinates", "FL", "2-2n", 0, 0},
1699     { 0x00220035, "Depth Spatial Resolution", "FL", "1", 0, 0},
1700     { 0x00220036, "Maximum Depth Distortion", "FL", "1", 0, 0},
1701     { 0x00220037, "Along-scan Spatial Resolution", "FL", "1", 0, 0},
1702     { 0x00220038, "Maximum Along-scan Distortion", "FL", "1", 0, 0},
1703     { 0x00220039, "Ophthalmic Image Orientation", "CS", "1", 0, 0},
1704     { 0x00220041, "Depth of Transverse Image", "FL", "1", 0, 0},
1705     { 0x00220042, "Mydriatic Agent Concentration Units Sequence", "SQ", "1", 0, 0},
1706     { 0x00220048, "Across-scan Spatial Resolution", "FL", "1", 0, 0},
1707     { 0x00220049, "Maximum Across-scan Distortion", "FL", "1", 0, 0},
1708     { 0x0022004E, "Mydriatic Agent Concentration", "DS", "1", 0, 0},
1709     { 0x00220055, "Illumination Wave Length", "FL", "1", 0, 0},
1710     { 0x00220056, "Illumination Power", "FL", "1", 0, 0},
1711     { 0x00220057, "Illumination Bandwidth", "FL", "1", 0, 0},
1712     { 0x00220058, "Mydriatic Agent Sequence", "SQ", "1", 0, 0},
1713     { 0x00280002, "Samples per Pixel", "US", "1", 0, 0},
1714     { 0x00280003, "Samples per Pixel Used", "US", "1", 0, 0},
1715     { 0x00280004, "Photometric Interpretation", "CS", "1", 0, 0},
1716     { 0x00280005, "Image Dimensions", "US", "1", -1, 0},
1717     { 0x00280006, "Planar Configuration", "US", "1", 0, 0},
1718     { 0x00280008, "Number of Frames", "IS", "1", 0, 0},
1719     { 0x00280009, "Frame Increment Pointer", "AT", "1-n", 0, 0},
1720     { 0x0028000A, "Frame Dimension Pointer", "AT", "1-n", 0, 0},
1721     { 0x00280010, "Rows", "US", "1", 0, 0},
1722     { 0x00280011, "Columns", "US", "1", 0, 0},
1723     { 0x00280012, "Planes", "US", "1", -1, 0},
1724     { 0x00280014, "Ultrasound Color Data Present", "US", "1", 0, 0},
1725     { 0x00280020, "", "", "", -1, 0},
1726     { 0x00280030, "Pixel Spacing", "DS", "2", 0, 0},
1727     { 0x00280031, "Zoom Factor", "DS", "2", 0, 0},
1728     { 0x00280032, "Zoom Center", "DS", "2", 0, 0},
1729     { 0x00280034, "Pixel Aspect Ratio", "IS", "2", 0, 0},
1730     { 0x00280040, "Image Format", "CS", "1", -1, 0},
1731     { 0x00280050, "Manipulated Image", "LO", "1-n", -1, 0},
1732     { 0x00280051, "Corrected Image", "CS", "1-n", 0, 0},
1733     { 0x0028005F, "Compression Recognition Code", "LO", "1", -1, 0},
1734     { 0x00280060, "Compression Code", "CS", "1", -1, 0},
1735     { 0x00280061, "Compression Originator", "SH", "1", -1, 0},
1736     { 0x00280062, "Compression Label", "LO", "1", -1, 0},
1737     { 0x00280063, "Compression Description", "SH", "1", -1, 0},
1738     { 0x00280065, "Compression Sequence", "CS", "1-n", -1, 0},
1739     { 0x00280066, "Compression Step Pointers", "AT", "1-n", -1, 0},
1740     { 0x00280068, "Repeat Interval", "US", "1", -1, 0},
1741     { 0x00280069, "Bits Grouped", "US", "1", -1, 0},
1742     { 0x00280070, "Perimeter Table", "US", "1-n", -1, 0},
1743     { 0x00280071, "Perimeter Value", "US or SS", "1", -1, 0},
1744     { 0x00280080, "Predictor Rows", "US", "1", -1, 0},
1745     { 0x00280081, "Predictor Columns", "US", "1", -1, 0},
1746     { 0x00280082, "Predictor Constants", "US", "1-n", -1, 0},
1747     { 0x00280090, "Blocked Pixels", "CS", "1", -1, 0},
1748     { 0x00280091, "Block Rows", "US", "1", -1, 0},
1749     { 0x00280092, "Block Columns", "US", "1", -1, 0},
1750     { 0x00280093, "Row Overlap", "US", "1", -1, 0},
1751     { 0x00280094, "Column Overlap", "US", "1", -1, 0},
1752     { 0x00280100, "Bits Allocated", "US", "1", 0, 0},
1753     { 0x00280101, "Bits Stored", "US", "1", 0, 0},
1754     { 0x00280102, "High Bit", "US", "1", 0, 0},
1755     { 0x00280103, "Pixel Representation", "US", "1", 0, 0},
1756     { 0x00280104, "Smallest Valid Pixel Value", "US or SS", "1", -1, 0},
1757     { 0x00280105, "Largest Valid Pixel Value", "US or SS", "1", -1, 0},
1758     { 0x00280106, "Smallest Image Pixel Value", "US or SS", "1", 0, 0},
1759     { 0x00280107, "Largest Image Pixel Value", "US or SS", "1", 0, 0},
1760     { 0x00280108, "Smallest Pixel Value in Series", "US or SS", "1", 0, 0},
1761     { 0x00280109, "Largest Pixel Value in Series", "US or SS", "1", 0, 0},
1762     { 0x00280110, "Smallest Image Pixel Value in Plane", "US or SS", "1", -1, 0},
1763     { 0x00280111, "Largest Image Pixel Value in Plane", "US or SS", "1", -1, 0},
1764     { 0x00280120, "Pixel Padding Value", "US or SS", "1", 0, 0},
1765     { 0x00280121, "Pixel Padding Range Limit", "US or SS", "1", 0, 0},
1766     { 0x00280200, "Image Location", "US", "1", -1, 0},
1767     { 0x00280300, "Quality Control Image", "CS", "1", 0, 0},
1768     { 0x00280301, "Burned In Annotation", "CS", "1", 0, 0},
1769     { 0x00280400, "Transform Label", "LO", "1", -1, 0},
1770     { 0x00280401, "Transform Version Number", "LO", "1", -1, 0},
1771     { 0x00280402, "Number of Transform Steps", "US", "1", -1, 0},
1772     { 0x00280403, "Sequence of Compressed Data", "LO", "1-n", -1, 0},
1773     { 0x00280404, "Details of Coefficients", "AT", "1-n", -1, 0},
1774     { 0x00280410, "Rows For Nth Order Coefficients", "US", "1", -1, 0},
1775     { 0x00280411, "Columns For Nth Order Coefficients", "US", "1", -1, 0},
1776     { 0x00280412, "Coefficient Coding", "LO", "1-n", -1, 0},
1777     { 0x00280413, "Coefficient Coding Pointers", "AT", "1-n", -1, 0},
1778     { 0x00280700, "DCT Label", "LO", "1", -1, 0},
1779     { 0x00280701, "Data Block Description", "CS", "1-n", -1, 0},
1780     { 0x00280702, "Data Block", "AT", "1-n", -1, 0},
1781     { 0x00280710, "Normalization Factor Format", "US", "1", -1, 0},
1782     { 0x00280720, "Zonal Map Number Format", "US", "1", -1, 0},
1783     { 0x00280721, "Zonal Map Location", "AT", "1-n", -1, 0},
1784     { 0x00280722, "Zonal Map Format", "US", "1", -1, 0},
1785     { 0x00280730, "Adaptive Map Format", "US", "1", -1, 0},
1786     { 0x00280740, "Code Number Format", "US", "1", -1, 0},
1787     { 0x00280800, "Code Label", "CS", "1-n", -1, 0},
1788     { 0x00280802, "Number of Table", "US", "1", -1, 0},
1789     { 0x00280803, "Code Table Location", "AT", "1-n", -1, 0},
1790     { 0x00280804, "Bits For Code Word", "US", "1", -1, 0},
1791     { 0x00280808, "Image Data Location", "AT", "1-n", -1, 0},
1792     { 0x00280A02, "Pixel Spacing Calibration Type", "CS", "1", 0, 0},
1793     { 0x00280A04, "Pixel Spacing Calibration Description", "LO", "1", 0, 0},
1794     { 0x00281040, "Pixel Intensity Relationship", "CS", "1", 0, 0},
1795     { 0x00281041, "Pixel Intensity Relationship Sign", "SS", "1", 0, 0},
1796     { 0x00281050, "Window Center", "DS", "1-n", 0, 0},
1797     { 0x00281051, "Window Width", "DS", "1-n", 0, 0},
1798     { 0x00281052, "Rescale Intercept", "DS", "1", 0, 0},
1799     { 0x00281053, "Rescale Slope", "DS", "1", 0, 0},
1800     { 0x00281054, "Rescale Type", "LO", "1", 0, 0},
1801     { 0x00281055, "Window Center & Width Explanation", "LO", "1-n", 0, 0},
1802     { 0x00281056, "VOI LUT Function", "CS", "1", 0, 0},
1803     { 0x00281080, "Gray Scale", "CS", "1", -1, 0},
1804     { 0x00281090, "Recommended Viewing Mode", "CS", "1", 0, 0},
1805     { 0x00281100, "Gray Lookup Table Descriptor", "US or SS", "3", -1, 0},
1806     { 0x00281101, "Red Palette Color Lookup Table Descriptor", "US or SS", "3", 0, 0},
1807     { 0x00281102, "Green Palette Color Lookup Table Descriptor", "US or SS", "3", 0, 0},
1808     { 0x00281103, "Blue Palette Color Lookup Table Descriptor", "US or SS", "3", 0, 0},
1809     { 0x00281111, "Large Red Palette Color Lookup Table Descriptor", "US or SS", "4", -1, 0},
1810     { 0x00281112, "Large Green Palette Color Lookup Table Descriptor", "US or SS", "4", -1, 0},
1811     { 0x00281113, "Large Blue Palette Color Lookup Table Descriptor", "US or SS", "4", -1, 0},
1812     { 0x00281199, "Palette Color Lookup Table UID", "UI", "1", 0, 0},
1813     { 0x00281200, "Gray Lookup Table Data", "US or SS or OW", "1-n 1", -1, 0},
1814     { 0x00281201, "Red Palette Color Lookup Table Data", "OW", "1", 0, 0},
1815     { 0x00281202, "Green Palette Color Lookup Table Data", "OW", "1", 0, 0},
1816     { 0x00281203, "Blue Palette Color Lookup Table Data", "OW", "1", 0, 0},
1817     { 0x00281211, "Large Red Palette Color Lookup Table Data", "OW", "1", -1, 0},
1818     { 0x00281212, "Large Green Palette Color Lookup Table Data", "OW", "1", -1, 0},
1819     { 0x00281213, "Large Blue Palette Color Lookup Table Data", "OW", "1", -1, 0},
1820     { 0x00281214, "Large Palette Color Lookup Table UID", "UI", "1", -1, 0},
1821     { 0x00281221, "Segmented Red Palette Color Lookup Table Data", "OW", "1", 0, 0},
1822     { 0x00281222, "Segmented Green Palette Color Lookup Table Data", "OW", "1", 0, 0},
1823     { 0x00281223, "Segmented Blue Palette Color Lookup Table Data", "OW", "1", 0, 0},
1824     { 0x00281300, "Implant Present", "CS", "1", 0, 0},
1825     { 0x00281350, "Partial View", "CS", "1", 0, 0},
1826     { 0x00281351, "Partial View Description", "ST", "1", 0, 0},
1827     { 0x00281352, "Partial View Code Sequence", "SQ", "1", 0, 0},
1828     { 0x0028135A, "Spatial Locations Preserved", "CS", "1", 0, 0},
1829     { 0x00282000, "ICC Profile", "OB", "1", 0, 0},
1830     { 0x00282110, "Lossy Image Compression", "CS", "1", 0, 0},
1831     { 0x00282112, "Lossy Image Compression Ratio", "DS", "1-n", 0, 0},
1832     { 0x00282114, "Lossy Image Compression Method", "CS", "1-n", 0, 0},
1833     { 0x00283000, "Modality LUT Sequence", "SQ", "1", 0, 0},
1834     { 0x00283002, "LUT Descriptor", "US or SS", "3", 0, 0},
1835     { 0x00283003, "LUT Explanation", "LO", "1", 0, 0},
1836     { 0x00283004, "Modality LUT Type", "LO", "1", 0, 0},
1837     { 0x00283006, "LUT Data", "US or SS or OW", "1-n 1", 0, 0},
1838     { 0x00283010, "VOI LUT Sequence", "SQ", "1", 0, 0},
1839     { 0x00283110, "Softcopy VOI LUT Sequence", "SQ", "1", 0, 0},
1840     { 0x00284000, "Image Presentation Comments", "LT", "1", -1, 0},
1841     { 0x00285000, "Bi-Plane Acquisition Sequence", "SQ", "1", -1, 0},
1842     { 0x00286010, "Representative Frame Number", "US", "1", 0, 0},
1843     { 0x00286020, "Frame Numbers of Interest (FOI)", "US", "1-n", 0, 0},
1844     { 0x00286022, "Frame(s) of Interest Description", "LO", "1-n", 0, 0},
1845     { 0x00286023, "Frame of Interest Type", "CS", "1-n", 0, 0},
1846     { 0x00286030, "Mask Pointer(s)", "US", "1-n", -1, 0},
1847     { 0x00286040, "R Wave Pointer", "US", "1-n", 0, 0},
1848     { 0x00286100, "Mask Subtraction Sequence", "SQ", "1", 0, 0},
1849     { 0x00286101, "Mask Operation", "CS", "1", 0, 0},
1850     { 0x00286102, "Applicable Frame Range", "US", "2-2n", 0, 0},
1851     { 0x00286110, "Mask Frame Numbers", "US", "1-n", 0, 0},
1852     { 0x00286112, "Contrast Frame Averaging", "US", "1", 0, 0},
1853     { 0x00286114, "Mask Sub-pixel Shift", "FL", "2", 0, 0},
1854     { 0x00286120, "TID Offset", "SS", "1", 0, 0},
1855     { 0x00286190, "Mask Operation Explanation", "ST", "1", 0, 0},
1856     { 0x00287FE0, "Pixel Data Provider URL", "UT", "1", 0, 0},
1857     { 0x00289001, "Data Point Rows", "UL", "1", 0, 0},
1858     { 0x00289002, "Data Point Columns", "UL", "1", 0, 0},
1859     { 0x00289003, "Signal Domain Columns", "CS", "1", 0, 0},
1860     { 0x00289099, "Largest Monochrome Pixel Value", "US", "1", -1, 0},
1861     { 0x00289108, "Data Representation", "CS", "1", 0, 0},
1862     { 0x00289110, "Pixel Measures Sequence", "SQ", "1", 0, 0},
1863     { 0x00289132, "Frame VOI LUT Sequence", "SQ", "1", 0, 0},
1864     { 0x00289145, "Pixel Value Transformation Sequence", "SQ", "1", 0, 0},
1865     { 0x00289235, "Signal Domain Rows", "CS", "1", 0, 0},
1866     { 0x00289411, "Display Filter Percentage", "FL", "1", 0, 0},
1867     { 0x00289415, "Frame Pixel Shift Sequence", "SQ", "1", 0, 0},
1868     { 0x00289416, "Subtraction Item ID", "US", "1", 0, 0},
1869     { 0x00289422, "Pixel Intensity Relationship LUT Sequence", "SQ", "1", 0, 0},
1870     { 0x00289443, "Frame Pixel Data Properties Sequence", "SQ", "1", 0, 0},
1871     { 0x00289444, "Geometrical Properties", "CS", "1", 0, 0},
1872     { 0x00289445, "Geometric Maximum Distortion", "FL", "1", 0, 0},
1873     { 0x00289446, "Image Processing Applied", "CS", "1-n", 0, 0},
1874     { 0x00289454, "Mask Selection Mode", "CS", "1", 0, 0},
1875     { 0x00289474, "LUT Function", "CS", "1", 0, 0},
1876     { 0x00289520, "Image to Equipment Mapping Matrix", "DS", "16", 0, 0},
1877     { 0x00289537, "Equipment Coordinate System Identification", "CS", "1", 0, 0},
1878     { 0x0032000A, "Study Status ID", "CS", "1", -1, 0},
1879     { 0x0032000C, "Study Priority ID", "CS", "1", -1, 0},
1880     { 0x00320012, "Study ID Issuer", "LO", "1", -1, 0},
1881     { 0x00320032, "Study Verified Date", "DA", "1", -1, 0},
1882     { 0x00320033, "Study Verified Time", "TM", "1", -1, 0},
1883     { 0x00320034, "Study Read Date", "DA", "1", -1, 0},
1884     { 0x00320035, "Study Read Time", "TM", "1", -1, 0},
1885     { 0x00321000, "Scheduled Study Start Date", "DA", "1", -1, 0},
1886     { 0x00321001, "Scheduled Study Start Time", "TM", "1", -1, 0},
1887     { 0x00321010, "Scheduled Study Stop Date", "DA", "1", -1, 0},
1888     { 0x00321011, "Scheduled Study Stop Time", "TM", "1", -1, 0},
1889     { 0x00321020, "Scheduled Study Location", "LO", "1", -1, 0},
1890     { 0x00321021, "Scheduled Study Location AE Title", "AE", "1-n", -1, 0},
1891     { 0x00321030, "Reason for Study", "LO", "1", -1, 0},
1892     { 0x00321031, "Requesting Physician Identification Sequence", "SQ", "1", 0, 0},
1893     { 0x00321032, "Requesting Physician", "PN", "1", 0, 0},
1894     { 0x00321033, "Requesting Service", "LO", "1", 0, 0},
1895     { 0x00321040, "Study Arrival Date", "DA", "1", -1, 0},
1896     { 0x00321041, "Study Arrival Time", "TM", "1", -1, 0},
1897     { 0x00321050, "Study Completion Date", "DA", "1", -1, 0},
1898     { 0x00321051, "Study Completion Time", "TM", "1", -1, 0},
1899     { 0x00321055, "Study Component Status ID", "CS", "1", -1, 0},
1900     { 0x00321060, "Requested Procedure Description", "LO", "1", 0, 0},
1901     { 0x00321064, "Requested Procedure Code Sequence", "SQ", "1", 0, 0},
1902     { 0x00321070, "Requested Contrast Agent", "LO", "1", 0, 0},
1903     { 0x00324000, "Study Comments", "LT", "1", -1, 0},
1904     { 0x00380004, "Referenced Patient Alias Sequence", "SQ", "1", 0, 0},
1905     { 0x00380008, "Visit Status ID", "CS", "1", 0, 0},
1906     { 0x00380010, "Admission ID", "LO", "1", 0, 0},
1907     { 0x00380011, "Issuer of Admission ID", "LO", "1", 0, 0},
1908     { 0x00380016, "Route of Admissions", "LO", "1", 0, 0},
1909     { 0x0038001A, "Scheduled Admission Date", "DA", "1", -1, 0},
1910     { 0x0038001B, "Scheduled Admission Time", "TM", "1", -1, 0},
1911     { 0x0038001C, "Scheduled Discharge Date", "DA", "1", -1, 0},
1912     { 0x0038001D, "Scheduled Discharge Time", "TM", "1", -1, 0},
1913     { 0x0038001E, "Scheduled Patient Institution Residence", "LO", "1", -1, 0},
1914     { 0x00380020, "Admitting Date", "DA", "1", 0, 0},
1915     { 0x00380021, "Admitting Time", "TM", "1", 0, 0},
1916     { 0x00380030, "Discharge Date", "DA", "1", -1, 0},
1917     { 0x00380032, "Discharge Time", "TM", "1", -1, 0},
1918     { 0x00380040, "Discharge Diagnosis Description", "LO", "1", -1, 0},
1919     { 0x00380044, "Discharge Diagnosis Code Sequence", "SQ", "1", -1, 0},
1920     { 0x00380050, "Special Needs", "LO", "1", 0, 0},
1921     { 0x00380060, "Service Episode ID", "LO", "1", 0, 0},
1922     { 0x00380061, "Issuer of Service Episode ID", "LO", "1", 0, 0},
1923     { 0x00380062, "Service Episode Description", "LO", "1", 0, 0},
1924     { 0x00380100, "Pertinent Documents Sequence", "SQ", "1", 0, 0},
1925     { 0x00380300, "Current Patient Location", "LO", "1", 0, 0},
1926     { 0x00380400, "Patient's Institution Residence", "LO", "1", 0, 0},
1927     { 0x00380500, "Patient State", "LO", "1", 0, 0},
1928     { 0x00380502, "Patient Clinical Trial Participation Sequence", "SQ", "1", 0, 0},
1929     { 0x00384000, "Visit Comments", "LT", "1", 0, 0},
1930     { 0x003A0004, "Waveform Originality", "CS", "1", 0, 0},
1931     { 0x003A0005, "Number of Waveform Channels", "US", "1", 0, 0},
1932     { 0x003A0010, "Number of Waveform Samples", "UL", "1", 0, 0},
1933     { 0x003A001A, "Sampling Frequency", "DS", "1", 0, 0},
1934     { 0x003A0020, "Multiplex Group Label", "SH", "1", 0, 0},
1935     { 0x003A0200, "Channel Definition Sequence", "SQ", "1", 0, 0},
1936     { 0x003A0202, "Waveform Channel Number", "IS", "1", 0, 0},
1937     { 0x003A0203, "Channel Label", "SH", "1", 0, 0},
1938     { 0x003A0205, "Channel Status", "CS", "1-n", 0, 0},
1939     { 0x003A0208, "Channel Source Sequence", "SQ", "1", 0, 0},
1940     { 0x003A0209, "Channel Source Modifiers Sequence", "SQ", "1", 0, 0},
1941     { 0x003A020A, "Source Waveform Sequence", "SQ", "1", 0, 0},
1942     { 0x003A020C, "Channel Derivation Description", "LO", "1", 0, 0},
1943     { 0x003A0210, "Channel Sensitivity", "DS", "1", 0, 0},
1944     { 0x003A0211, "Channel Sensitivity Units Sequence", "SQ", "1", 0, 0},
1945     { 0x003A0212, "Channel Sensitivity Correction Factor", "DS", "1", 0, 0},
1946     { 0x003A0213, "Channel Baseline", "DS", "1", 0, 0},
1947     { 0x003A0214, "Channel Time Skew", "DS", "1", 0, 0},
1948     { 0x003A0215, "Channel Sample Skew", "DS", "1", 0, 0},
1949     { 0x003A0218, "Channel Offset", "DS", "1", 0, 0},
1950     { 0x003A021A, "Waveform Bits Stored", "US", "1", 0, 0},
1951     { 0x003A0220, "Filter Low Frequency", "DS", "1", 0, 0},
1952     { 0x003A0221, "Filter High Frequency", "DS", "1", 0, 0},
1953     { 0x003A0222, "Notch Filter Frequency", "DS", "1", 0, 0},
1954     { 0x003A0223, "Notch Filter Bandwidth", "DS", "1", 0, 0},
1955     { 0x003A0230, "Waveform Data Display Scale", "FL", "1", 0, 0},
1956     { 0x003A0231, "Waveform Display Background CIELab Value", "US", "3", 0, 0},
1957     { 0x003A0240, "Waveform Presentation Group Sequence", "SQ", "1", 0, 0},
1958     { 0x003A0241, "Presentation Group Number", "US", "1", 0, 0},
1959     { 0x003A0242, "Channel Display Sequence", "SQ", "1", 0, 0},
1960     { 0x003A0244, "Channel Recommended Display CIELab Value", "US", "3", 0, 0},
1961     { 0x003A0245, "Channel Position", "FL", "1", 0, 0},
1962     { 0x003A0246, "Display Shading Flag", "CS", "1", 0, 0},
1963     { 0x003A0247, "Fractional Channel Display Scale", "FL", "1", 0, 0},
1964     { 0x003A0248, "Absolute Channel Display Scale", "FL", "1", 0, 0},
1965     { 0x003A0300, "Multiplexed Audio Channels Description Code Sequence", "SQ", "1", 0, 0},
1966     { 0x003A0301, "Channel Identification Code", "IS", "1", 0, 0},
1967     { 0x003A0302, "Channel Mode", "CS", "1", 0, 0},
1968     { 0x00400001, "Scheduled Station AE Title", "AE", "1-n", 0, 0},
1969     { 0x00400002, "Scheduled Procedure Step Start Date", "DA", "1", 0, 0},
1970     { 0x00400003, "Scheduled Procedure Step Start Time", "TM", "1", 0, 0},
1971     { 0x00400004, "Scheduled Procedure Step End Date", "DA", "1", 0, 0},
1972     { 0x00400005, "Scheduled Procedure Step End Time", "TM", "1", 0, 0},
1973     { 0x00400006, "Scheduled Performing Physician's Name", "PN", "1", 0, 0},
1974     { 0x00400007, "Scheduled Procedure Step Description", "LO", "1", 0, 0},
1975     { 0x00400008, "Scheduled Protocol Code Sequence", "SQ", "1", 0, 0},
1976     { 0x00400009, "Scheduled Procedure Step ID", "SH", "1", 0, 0},
1977     { 0x0040000A, "Stage Code Sequence", "SQ", "1", 0, 0},
1978     { 0x0040000B, "Scheduled Performing Physician Identification Sequence", "SQ", "1", 0, 0},
1979     { 0x00400010, "Scheduled Station Name", "SH", "1-n", 0, 0},
1980     { 0x00400011, "Scheduled Procedure Step Location", "SH", "1", 0, 0},
1981     { 0x00400012, "Pre-Medication", "LO", "1", 0, 0},
1982     { 0x00400020, "Scheduled Procedure Step Status", "CS", "1", 0, 0},
1983     { 0x00400100, "Scheduled Procedure Step Sequence", "SQ", "1", 0, 0},
1984     { 0x00400220, "Referenced Non-Image Composite SOP Instance Sequence", "SQ", "1", 0, 0},
1985     { 0x00400241, "Performed Station AE Title", "AE", "1", 0, 0},
1986     { 0x00400242, "Performed Station Name", "SH", "1", 0, 0},
1987     { 0x00400243, "Performed Location", "SH", "1", 0, 0},
1988     { 0x00400244, "Performed Procedure Step Start Date", "DA", "1", 0, 0},
1989     { 0x00400245, "Performed Procedure Step Start Time", "TM", "1", 0, 0},
1990     { 0x00400250, "Performed Procedure Step End Date", "DA", "1", 0, 0},
1991     { 0x00400251, "Performed Procedure Step End Time", "TM", "1", 0, 0},
1992     { 0x00400252, "Performed Procedure Step Status", "CS", "1", 0, 0},
1993     { 0x00400253, "Performed Procedure Step ID", "SH", "1", 0, 0},
1994     { 0x00400254, "Performed Procedure Step Description", "LO", "1", 0, 0},
1995     { 0x00400255, "Performed Procedure Type Description", "LO", "1", 0, 0},
1996     { 0x00400260, "Performed Protocol Code Sequence", "SQ", "1", 0, 0},
1997     { 0x00400270, "Scheduled Step Attributes Sequence", "SQ", "1", 0, 0},
1998     { 0x00400275, "Request Attributes Sequence", "SQ", "1", 0, 0},
1999     { 0x00400280, "Comments on the Performed Procedure Step", "ST", "1", 0, 0},
2000     { 0x00400281, "Performed Procedure Step Discontinuation Reason Code Sequence", "SQ", "1", 0, 0},
2001     { 0x00400293, "Quantity Sequence", "SQ", "1", 0, 0},
2002     { 0x00400294, "Quantity", "DS", "1", 0, 0},
2003     { 0x00400295, "Measuring Units Sequence", "SQ", "1", 0, 0},
2004     { 0x00400296, "Billing Item Sequence", "SQ", "1", 0, 0},
2005     { 0x00400300, "Total Time of Fluoroscopy", "US", "1", 0, 0},
2006     { 0x00400301, "Total Number of Exposures", "US", "1", 0, 0},
2007     { 0x00400302, "Entrance Dose", "US", "1", 0, 0},
2008     { 0x00400303, "Exposed Area", "US", "1-2", 0, 0},
2009     { 0x00400306, "Distance Source to Entrance", "DS", "1", 0, 0},
2010     { 0x00400307, "Distance Source to Support", "DS", "1", -1, 0},
2011     { 0x0040030E, "Exposure Dose Sequence", "SQ", "1", 0, 0},
2012     { 0x00400310, "Comments on Radiation Dose", "ST", "1", 0, 0},
2013     { 0x00400312, "X-Ray Output", "DS", "1", 0, 0},
2014     { 0x00400314, "Half Value Layer", "DS", "1", 0, 0},
2015     { 0x00400316, "Organ Dose", "DS", "1", 0, 0},
2016     { 0x00400318, "Organ Exposed", "CS", "1", 0, 0},
2017     { 0x00400320, "Billing Procedure Step Sequence", "SQ", "1", 0, 0},
2018     { 0x00400321, "Film Consumption Sequence", "SQ", "1", 0, 0},
2019     { 0x00400324, "Billing Supplies and Devices Sequence", "SQ", "1", 0, 0},
2020     { 0x00400330, "Referenced Procedure Step Sequence", "SQ", "1", -1, 0},
2021     { 0x00400340, "Performed Series Sequence", "SQ", "1", 0, 0},
2022     { 0x00400400, "Comments on the Scheduled Procedure Step", "LT", "1", 0, 0},
2023     { 0x00400440, "Protocol Context Sequence", "SQ", "1", 0, 0},
2024     { 0x00400441, "Content Item Modifier Sequence", "SQ", "1", 0, 0},
2025     { 0x0040050A, "Specimen Accession Number", "LO", "1", 0, 0},
2026     { 0x00400550, "Specimen Sequence", "SQ", "1", 0, 0},
2027     { 0x00400551, "Specimen Identifier", "LO", "1", 0, 0},
2028     { 0x00400552, "Specimen Description Sequence - Trial", "SQ", "1", -1, 0},
2029     { 0x00400553, "Specimen Description - Trial", "ST", "1", -1, 0},
2030     { 0x00400555, "Acquisition Context Sequence", "SQ", "1", 0, 0},
2031     { 0x00400556, "Acquisition Context Description", "ST", "1", 0, 0},
2032     { 0x0040059A, "Specimen Type Code Sequence", "SQ", "1", 0, 0},
2033     { 0x004006FA, "Slide Identifier", "LO", "1", 0, 0},
2034     { 0x0040071A, "Image Center Point Coordinates Sequence", "SQ", "1", 0, 0},
2035     { 0x0040072A, "X offset in Slide Coordinate System", "DS", "1", 0, 0},
2036     { 0x0040073A, "Y offset in Slide Coordinate System", "DS", "1", 0, 0},
2037     { 0x0040074A, "Z offset in Slide Coordinate System", "DS", "1", 0, 0},
2038     { 0x004008D8, "Pixel Spacing Sequence", "SQ", "1", 0, 0},
2039     { 0x004008DA, "Coordinate System Axis Code Sequence", "SQ", "1", 0, 0},
2040     { 0x004008EA, "Measurement Units Code Sequence", "SQ", "1", 0, 0},
2041     { 0x004009F8, "Vital Stain Code Sequence - Trial", "SQ", "1", -1, 0},
2042     { 0x00401001, "Requested Procedure ID", "SH", "1", 0, 0},
2043     { 0x00401002, "Reason for the Requested Procedure", "LO", "1", 0, 0},
2044     { 0x00401003, "Requested Procedure Priority", "SH", "1", 0, 0},
2045     { 0x00401004, "Patient Transport Arrangements", "LO", "1", 0, 0},
2046     { 0x00401005, "Requested Procedure Location", "LO", "1", 0, 0},
2047     { 0x00401006, "Placer Order Number / Procedure", "SH", "1", -1, 0},
2048     { 0x00401007, "Filler Order Number / Procedure", "SH", "1", -1, 0},
2049     { 0x00401008, "Confidentiality Code", "LO", "1", 0, 0},
2050     { 0x00401009, "Reporting Priority", "SH", "1", 0, 0},
2051     { 0x0040100A, "Reason for Requested Procedure Code Sequence", "SQ", "1", 0, 0},
2052     { 0x00401010, "Names of Intended Recipients of Results", "PN", "1-n", 0, 0},
2053     { 0x00401011, "Intended Recipients of Results Identification Sequence", "SQ", "1", 0, 0},
2054     { 0x00401101, "Person Identification Code Sequence", "SQ", "1", 0, 0},
2055     { 0x00401102, "Person's Address", "ST", "1", 0, 0},
2056     { 0x00401103, "Person's Telephone Numbers", "LO", "1-n", 0, 0},
2057     { 0x00401400, "Requested Procedure Comments", "LT", "1", 0, 0},
2058     { 0x00402001, "Reason for the Imaging Service Request", "LO", "1", -1, 0},
2059     { 0x00402004, "Issue Date of Imaging Service Request", "DA", "1", 0, 0},
2060     { 0x00402005, "Issue Time of Imaging Service Request", "TM", "1", 0, 0},
2061     { 0x00402006, "Placer Order Number / Imaging Service Request (Retired)", "SH", "1", -1, 0},
2062     { 0x00402007, "Filler Order Number / Imaging Service Request (Retired)", "SH", "1", -1, 0},
2063     { 0x00402008, "Order Entered By", "PN", "1", 0, 0},
2064     { 0x00402009, "Order Enterer's Location", "SH", "1", 0, 0},
2065     { 0x00402010, "Order Callback Phone Number", "SH", "1", 0, 0},
2066     { 0x00402016, "Placer Order Number / Imaging Service Request", "LO", "1", 0, 0},
2067     { 0x00402017, "Filler Order Number / Imaging Service Request", "LO", "1", 0, 0},
2068     { 0x00402400, "Imaging Service Request Comments", "LT", "1", 0, 0},
2069     { 0x00403001, "Confidentiality Constraint on Patient Data Description", "LO", "1", 0, 0},
2070     { 0x00404001, "General Purpose Scheduled Procedure Step Status", "CS", "1", 0, 0},
2071     { 0x00404002, "General Purpose Performed Procedure Step Status", "CS", "1", 0, 0},
2072     { 0x00404003, "General Purpose Scheduled Procedure Step Priority", "CS", "1", 0, 0},
2073     { 0x00404004, "Scheduled Processing Applications Code Sequence", "SQ", "1", 0, 0},
2074     { 0x00404005, "Scheduled Procedure Step Start Date and Time", "DT", "1", 0, 0},
2075     { 0x00404006, "Multiple Copies Flag", "CS", "1", 0, 0},
2076     { 0x00404007, "Performed Processing Applications Code Sequence", "SQ", "1", 0, 0},
2077     { 0x00404009, "Human Performer Code Sequence", "SQ", "1", 0, 0},
2078     { 0x00404010, "Scheduled Procedure Step Modification Date and Time", "DT", "1", 0, 0},
2079     { 0x00404011, "Expected Completion Date and Time", "DT", "1", 0, 0},
2080     { 0x00404015, "Resulting General Purpose Performed Procedure Steps Sequence", "SQ", "1", 0, 0},
2081     { 0x00404016, "Referenced General Purpose Scheduled Procedure Step Sequence", "SQ", "1", 0, 0},
2082     { 0x00404018, "Scheduled Workitem Code Sequence", "SQ", "1", 0, 0},
2083     { 0x00404019, "Performed Workitem Code Sequence", "SQ", "1", 0, 0},
2084     { 0x00404020, "Input Availability Flag", "CS", "1", 0, 0},
2085     { 0x00404021, "Input Information Sequence", "SQ", "1", 0, 0},
2086     { 0x00404022, "Relevant Information Sequence", "SQ", "1", 0, 0},
2087     { 0x00404023, "Referenced General Purpose Scheduled Procedure Step Transaction UID", "UI", "1", 0, 0},
2088     { 0x00404025, "Scheduled Station Name Code Sequence", "SQ", "1", 0, 0},
2089     { 0x00404026, "Scheduled Station Class Code Sequence", "SQ", "1", 0, 0},
2090     { 0x00404027, "Scheduled Station Geographic Location Code Sequence", "SQ", "1", 0, 0},
2091     { 0x00404028, "Performed Station Name Code Sequence", "SQ", "1", 0, 0},
2092     { 0x00404029, "Performed Station Class Code Sequence", "SQ", "1", 0, 0},
2093     { 0x00404030, "Performed Station Geographic Location Code Sequence", "SQ", "1", 0, 0},
2094     { 0x00404031, "Requested Subsequent Workitem Code Sequence", "SQ", "1", 0, 0},
2095     { 0x00404032, "Non-DICOM Output Code Sequence", "SQ", "1", 0, 0},
2096     { 0x00404033, "Output Information Sequence", "SQ", "1", 0, 0},
2097     { 0x00404034, "Scheduled Human Performers Sequence", "SQ", "1", 0, 0},
2098     { 0x00404035, "Actual Human Performers Sequence", "SQ", "1", 0, 0},
2099     { 0x00404036, "Human Performer's Organization", "LO", "1", 0, 0},
2100     { 0x00404037, "Human Performer's Name", "PN", "1", 0, 0},
2101     { 0x00408302, "Entrance Dose in mGy", "DS", "1", 0, 0},
2102     { 0x00409094, "Referenced Image Real World Value Mapping Sequence", "SQ", "1", 0, 0},
2103     { 0x00409096, "Real World Value Mapping Sequence", "SQ", "1", 0, 0},
2104     { 0x00409098, "Pixel Value Mapping Code Sequence", "SQ", "1", 0, 0},
2105     { 0x00409210, "LUT Label", "SH", "1", 0, 0},
2106     { 0x00409211, "Real World Value Last Value Mapped", "US or SS", "1", 0, 0},
2107     { 0x00409212, "Real World Value LUT Data", "FD", "1-n", 0, 0},
2108     { 0x00409216, "Real World Value First Value Mapped", "US or SS", "1", 0, 0},
2109     { 0x00409224, "Real World Value Intercept", "FD", "1", 0, 0},
2110     { 0x00409225, "Real World Value Slope", "FD", "1", 0, 0},
2111     { 0x0040A010, "Relationship Type", "CS", "1", 0, 0},
2112     { 0x0040A027, "Verifying Organization", "LO", "1", 0, 0},
2113     { 0x0040A030, "Verification Date Time", "DT", "1", 0, 0},
2114     { 0x0040A032, "Observation Date Time", "DT", "1", 0, 0},
2115     { 0x0040A040, "Value Type", "CS", "1", 0, 0},
2116     { 0x0040A043, "Concept Name Code Sequence", "SQ", "1", 0, 0},
2117     { 0x0040A050, "Continuity Of Content", "CS", "1", 0, 0},
2118     { 0x0040A073, "Verifying Observer Sequence", "SQ", "1", 0, 0},
2119     { 0x0040A075, "Verifying Observer Name", "PN", "1", 0, 0},
2120     { 0x0040A078, "Author Observer Sequence", "SQ", "1", 0, 0},
2121     { 0x0040A07A, "Participant Sequence", "SQ", "1", 0, 0},
2122     { 0x0040A07C, "Custodial Organization Sequence", "SQ", "1", 0, 0},
2123     { 0x0040A080, "Participation Type", "CS", "1", 0, 0},
2124     { 0x0040A082, "Participation DateTime", "DT", "1", 0, 0},
2125     { 0x0040A084, "Observer Type", "CS", "1", 0, 0},
2126     { 0x0040A088, "Verifying Observer Identification Code Sequence", "SQ", "1", 0, 0},
2127     { 0x0040A090, "Equivalent CDA Document Sequence", "SQ", "1", -1, 0},
2128     { 0x0040A0B0, "Referenced Waveform Channels", "US", "2-2n", 0, 0},
2129     { 0x0040A120, "DateTime", "DT", "1", 0, 0},
2130     { 0x0040A121, "Date", "DA", "1", 0, 0},
2131     { 0x0040A122, "Time", "TM", "1", 0, 0},
2132     { 0x0040A123, "Person Name", "PN", "1", 0, 0},
2133     { 0x0040A124, "UID", "UI", "1", 0, 0},
2134     { 0x0040A130, "Temporal Range Type", "CS", "1", 0, 0},
2135     { 0x0040A132, "Referenced Sample Positions", "UL", "1-n", 0, 0},
2136     { 0x0040A136, "Referenced Frame Numbers", "US", "1-n", 0, 0},
2137     { 0x0040A138, "Referenced Time Offsets", "DS", "1-n", 0, 0},
2138     { 0x0040A13A, "Referenced DateTime", "DT", "1-n", 0, 0},
2139     { 0x0040A160, "Text Value", "UT", "1", 0, 0},
2140     { 0x0040A168, "Concept Code Sequence", "SQ", "1", 0, 0},
2141     { 0x0040A170, "Purpose of Reference Code Sequence", "SQ", "1", 0, 0},
2142     { 0x0040A180, "Annotation Group Number", "US", "1", 0, 0},
2143     { 0x0040A195, "Modifier Code Sequence", "SQ", "1", 0, 0},
2144     { 0x0040A300, "Measured Value Sequence", "SQ", "1", 0, 0},
2145     { 0x0040A301, "Numeric Value Qualifier Code Sequence", "SQ", "1", 0, 0},
2146     { 0x0040A30A, "Numeric Value", "DS", "1-n", 0, 0},
2147     { 0x0040A353, "Address - Trial", "ST", "1", -1, 0},
2148     { 0x0040A354, "Telephone Number - Trial", "LO", "1", -1, 0},
2149     { 0x0040A360, "Predecessor Documents Sequence", "SQ", "1", 0, 0},
2150     { 0x0040A370, "Referenced Request Sequence", "SQ", "1", 0, 0},
2151     { 0x0040A372, "Performed Procedure Code Sequence", "SQ", "1", 0, 0},
2152     { 0x0040A375, "Current Requested Procedure Evidence Sequence", "SQ", "1", 0, 0},
2153     { 0x0040A385, "Pertinent Other Evidence Sequence", "SQ", "1", 0, 0},
2154     { 0x0040A390, "HL7 Structured Document Reference Sequence", "SQ", "1", 0, 0},
2155     { 0x0040A491, "Completion Flag", "CS", "1", 0, 0},
2156     { 0x0040A492, "Completion Flag Description", "LO", "1", 0, 0},
2157     { 0x0040A493, "Verification Flag", "CS", "1", 0, 0},
2158     { 0x0040A494, "Archive Requested", "CS", "1", 0, 0},
2159     { 0x0040A504, "Content Template Sequence", "SQ", "1", 0, 0},
2160     { 0x0040A525, "Identical Documents Sequence", "SQ", "1", 0, 0},
2161     { 0x0040A730, "Content Sequence", "SQ", "1", 0, 0},
2162     { 0x0040B020, "Annotation Sequence", "SQ", "1", 0, 0},
2163     { 0x0040DB00, "Template Identifier", "CS", "1", 0, 0},
2164     { 0x0040DB06, "Template Version", "DT", "1", -1, 0},
2165     { 0x0040DB07, "Template Local Version", "DT", "1", -1, 0},
2166     { 0x0040DB0B, "Template Extension Flag", "CS", "1", -1, 0},
2167     { 0x0040DB0C, "Template Extension Organization UID", "UI", "1", -1, 0},
2168     { 0x0040DB0D, "Template Extension Creator UID", "UI", "1", -1, 0},
2169     { 0x0040DB73, "Referenced Content Item Identifier", "UL", "1-n", 0, 0},
2170     { 0x0040E001, "HL7 Instance Identifier", "ST", "1", 0, 0},
2171     { 0x0040E004, "HL7 Document Effective Time", "DT", "1", 0, 0},
2172     { 0x0040E006, "HL7 Document Type Code Sequence", "SQ", "1", 0, 0},
2173     { 0x0040E010, "Retrieve URI", "UT", "1", 0, 0},
2174     { 0x00420010, "Document Title", "ST", "1", 0, 0},
2175     { 0x00420011, "Encapsulated Document", "OB", "1", 0, 0},
2176     { 0x00420012, "MIME Type of Encapsulated Document", "LO", "1", 0, 0},
2177     { 0x00420013, "Source Instance Sequence", "SQ", "1", 0, 0},
2178     { 0x00420014, "List of MIME Types", "LO", "1-n", 0, 0},
2179     { 0x00440001, "Product Package Identifier", "ST", "1", 0, 0},
2180     { 0x00440002, "Substance Administration Approval", "CS", "1", 0, 0},
2181     { 0x00440003, "Approval Status Further Description", "LT", "1", 0, 0},
2182     { 0x00440004, "Approval Status DateTime", "DT", "1", 0, 0},
2183     { 0x00440007, "Product Type Code Sequence", "SQ", "1", 0, 0},
2184     { 0x00440008, "Product Name", "LO", "1-n", 0, 0},
2185     { 0x00440009, "Product Description", "LT", "1", 0, 0},
2186     { 0x0044000A, "Product Lot Identifier", "LO", "1", 0, 0},
2187     { 0x0044000B, "Product Expiration DateTime", "DT", "1", 0, 0},
2188     { 0x00440010, "Substance Administration DateTime", "DT", "1", 0, 0},
2189     { 0x00440011, "Substance Administration Notes", "LO", "1", 0, 0},
2190     { 0x00440012, "Substance Administration Device ID", "LO", "1", 0, 0},
2191     { 0x00440013, "Product Parameter Sequence", "SQ", "1", 0, 0},
2192     { 0x00440019, "Substance Administration Parameter Sequence", "SQ", "1", 0, 0},
2193     { 0x00500004, "Calibration Image", "CS", "1", 0, 0},
2194     { 0x00500010, "Device Sequence", "SQ", "1", 0, 0},
2195     { 0x00500014, "Device Length", "DS", "1", 0, 0},
2196     { 0x00500016, "Device Diameter", "DS", "1", 0, 0},
2197     { 0x00500017, "Device Diameter Units", "CS", "1", 0, 0},
2198     { 0x00500018, "Device Volume", "DS", "1", 0, 0},
2199     { 0x00500019, "Intermarker Distance", "DS", "1", 0, 0},
2200     { 0x00500020, "Device Description", "LO", "1", 0, 0},
2201     { 0x00540010, "Energy Window Vector", "US", "1-n", 0, 0},
2202     { 0x00540011, "Number of Energy Windows", "US", "1", 0, 0},
2203     { 0x00540012, "Energy Window Information Sequence", "SQ", "1", 0, 0},
2204     { 0x00540013, "Energy Window Range Sequence", "SQ", "1", 0, 0},
2205     { 0x00540014, "Energy Window Lower Limit", "DS", "1", 0, 0},
2206     { 0x00540015, "Energy Window Upper Limit", "DS", "1", 0, 0},
2207     { 0x00540016, "Radiopharmaceutical Information Sequence", "SQ", "1", 0, 0},
2208     { 0x00540017, "Residual Syringe Counts", "IS", "1", 0, 0},
2209     { 0x00540018, "Energy Window Name", "SH", "1", 0, 0},
2210     { 0x00540020, "Detector Vector", "US", "1-n", 0, 0},
2211     { 0x00540021, "Number of Detectors", "US", "1", 0, 0},
2212     { 0x00540022, "Detector Information Sequence", "SQ", "1", 0, 0},
2213     { 0x00540030, "Phase Vector", "US", "1-n", 0, 0},
2214     { 0x00540031, "Number of Phases", "US", "1", 0, 0},
2215     { 0x00540032, "Phase Information Sequence", "SQ", "1", 0, 0},
2216     { 0x00540033, "Number of Frames in Phase", "US", "1", 0, 0},
2217     { 0x00540036, "Phase Delay", "IS", "1", 0, 0},
2218     { 0x00540038, "Pause Between Frames", "IS", "1", 0, 0},
2219     { 0x00540039, "Phase Description", "CS", "1", 0, 0},
2220     { 0x00540050, "Rotation Vector", "US", "1-n", 0, 0},
2221     { 0x00540051, "Number of Rotations", "US", "1", 0, 0},
2222     { 0x00540052, "Rotation Information Sequence", "SQ", "1", 0, 0},
2223     { 0x00540053, "Number of Frames in Rotation", "US", "1", 0, 0},
2224     { 0x00540060, "R-R Interval Vector", "US", "1-n", 0, 0},
2225     { 0x00540061, "Number of R-R Intervals", "US", "1", 0, 0},
2226     { 0x00540062, "Gated Information Sequence", "SQ", "1", 0, 0},
2227     { 0x00540063, "Data Information Sequence", "SQ", "1", 0, 0},
2228     { 0x00540070, "Time Slot Vector", "US", "1-n", 0, 0},
2229     { 0x00540071, "Number of Time Slots", "US", "1", 0, 0},
2230     { 0x00540072, "Time Slot Information Sequence", "SQ", "1", 0, 0},
2231     { 0x00540073, "Time Slot Time", "DS", "1", 0, 0},
2232     { 0x00540080, "Slice Vector", "US", "1-n", 0, 0},
2233     { 0x00540081, "Number of Slices", "US", "1", 0, 0},
2234     { 0x00540090, "Angular View Vector", "US", "1-n", 0, 0},
2235     { 0x00540100, "Time Slice Vector", "US", "1-n", 0, 0},
2236     { 0x00540101, "Number of Time Slices", "US", "1", 0, 0},
2237     { 0x00540200, "Start Angle", "DS", "1", 0, 0},
2238     { 0x00540202, "Type of Detector Motion", "CS", "1", 0, 0},
2239     { 0x00540210, "Trigger Vector", "IS", "1-n", 0, 0},
2240     { 0x00540211, "Number of Triggers in Phase", "US", "1", 0, 0},
2241     { 0x00540220, "View Code Sequence", "SQ", "1", 0, 0},
2242     { 0x00540222, "View Modifier Code Sequence", "SQ", "1", 0, 0},
2243     { 0x00540300, "Radionuclide Code Sequence", "SQ", "1", 0, 0},
2244     { 0x00540302, "Administration Route Code Sequence", "SQ", "1", 0, 0},
2245     { 0x00540304, "Radiopharmaceutical Code Sequence", "SQ", "1", 0, 0},
2246     { 0x00540306, "Calibration Data Sequence", "SQ", "1", 0, 0},
2247     { 0x00540308, "Energy Window Number", "US", "1", 0, 0},
2248     { 0x00540400, "Image ID", "SH", "1", 0, 0},
2249     { 0x00540410, "Patient Orientation Code Sequence", "SQ", "1", 0, 0},
2250     { 0x00540412, "Patient Orientation Modifier Code Sequence", "SQ", "1", 0, 0},
2251     { 0x00540414, "Patient Gantry Relationship Code Sequence", "SQ", "1", 0, 0},
2252     { 0x00540500, "Slice Progression Direction", "CS", "1", 0, 0},
2253     { 0x00541000, "Series Type", "CS", "2", 0, 0},
2254     { 0x00541001, "Units", "CS", "1", 0, 0},
2255     { 0x00541002, "Counts Source", "CS", "1", 0, 0},
2256     { 0x00541004, "Reprojection Method", "CS", "1", 0, 0},
2257     { 0x00541100, "Randoms Correction Method", "CS", "1", 0, 0},
2258     { 0x00541101, "Attenuation Correction Method", "LO", "1", 0, 0},
2259     { 0x00541102, "Decay Correction", "CS", "1", 0, 0},
2260     { 0x00541103, "Reconstruction Method", "LO", "1", 0, 0},
2261     { 0x00541104, "Detector Lines of Response Used", "LO", "1", 0, 0},
2262     { 0x00541105, "Scatter Correction Method", "LO", "1", 0, 0},
2263     { 0x00541200, "Axial Acceptance", "DS", "1", 0, 0},
2264     { 0x00541201, "Axial Mash", "IS", "2", 0, 0},
2265     { 0x00541202, "Transverse Mash", "IS", "1", 0, 0},
2266     { 0x00541203, "Detector Element Size", "DS", "2", 0, 0},
2267     { 0x00541210, "Coincidence Window Width", "DS", "1", 0, 0},
2268     { 0x00541220, "Secondary Counts Type", "CS", "1-n", 0, 0},
2269     { 0x00541300, "Frame Reference Time", "DS", "1", 0, 0},
2270     { 0x00541310, "Primary (Prompts) Counts Accumulated", "IS", "1", 0, 0},
2271     { 0x00541311, "Secondary Counts Accumulated", "IS", "1-n", 0, 0},
2272     { 0x00541320, "Slice Sensitivity Factor", "DS", "1", 0, 0},
2273     { 0x00541321, "Decay Factor", "DS", "1", 0, 0},
2274     { 0x00541322, "Dose Calibration Factor", "DS", "1", 0, 0},
2275     { 0x00541323, "Scatter Fraction Factor", "DS", "1", 0, 0},
2276     { 0x00541324, "Dead Time Factor", "DS", "1", 0, 0},
2277     { 0x00541330, "Image Index", "US", "1", 0, 0},
2278     { 0x00541400, "Counts Included", "CS", "1-n", -1, 0},
2279     { 0x00541401, "Dead Time Correction Flag", "CS", "1", -1, 0},
2280     { 0x00603000, "Histogram Sequence", "SQ", "1", 0, 0},
2281     { 0x00603002, "Histogram Number of Bins", "US", "1", 0, 0},
2282     { 0x00603004, "Histogram First Bin Value", "US or SS", "1", 0, 0},
2283     { 0x00603006, "Histogram Last Bin Value", "US or SS", "1", 0, 0},
2284     { 0x00603008, "Histogram Bin Width", "US", "1", 0, 0},
2285     { 0x00603010, "Histogram Explanation", "LO", "1", 0, 0},
2286     { 0x00603020, "Histogram Data", "UL", "1-n", 0, 0},
2287     { 0x00620001, "Segmentation Type", "CS", "1", 0, 0},
2288     { 0x00620002, "Segment Sequence", "SQ", "1", 0, 0},
2289     { 0x00620003, "Segmented Property Category Code Sequence", "SQ", "1", 0, 0},
2290     { 0x00620004, "Segment Number", "US", "1", 0, 0},
2291     { 0x00620005, "Segment Label", "LO", "1", 0, 0},
2292     { 0x00620006, "Segment Description", "ST", "1", 0, 0},
2293     { 0x00620008, "Segment Algorithm Type", "CS", "1", 0, 0},
2294     { 0x00620009, "Segment Algorithm Name", "LO", "1", 0, 0},
2295     { 0x0062000A, "Segment Identification Sequence", "SQ", "1", 0, 0},
2296     { 0x0062000B, "Referenced Segment Number", "US", "1-n", 0, 0},
2297     { 0x0062000C, "Recommended Display Grayscale Value", "US", "1", 0, 0},
2298     { 0x0062000D, "Recommended Display CIELab Value", "US", "3", 0, 0},
2299     { 0x0062000E, "Maximum Fractional Value", "US", "1", 0, 0},
2300     { 0x0062000F, "Segmented Property Type Code Sequence", "SQ", "1", 0, 0},
2301     { 0x00620010, "Segmentation Fractional Type", "CS", "1", 0, 0},
2302     { 0x00640002, "Deformable Registration Sequence", "SQ", "1", 0, 0},
2303     { 0x00640003, "Source Frame of Reference UID", "UI", "1", 0, 0},
2304     { 0x00640005, "Deformable Registration Grid Sequence", "SQ", "1", 0, 0},
2305     { 0x00640007, "Grid Dimensions", "UL", "3", 0, 0},
2306     { 0x00640008, "Grid Resolution", "FD", "3", 0, 0},
2307     { 0x00640009, "Vector Grid Data", "OF", "1", 0, 0},
2308     { 0x0064000F, "Pre Deformation Matrix Registration Sequence", "SQ", "1", 0, 0},
2309     { 0x00640010, "Post Deformation Matrix Registration Sequence", "SQ", "1", 0, 0},
2310     { 0x00700001, "Graphic Annotation Sequence", "SQ", "1", 0, 0},
2311     { 0x00700002, "Graphic Layer", "CS", "1", 0, 0},
2312     { 0x00700003, "Bounding Box Annotation Units", "CS", "1", 0, 0},
2313     { 0x00700004, "Anchor Point Annotation Units", "CS", "1", 0, 0},
2314     { 0x00700005, "Graphic Annotation Units", "CS", "1", 0, 0},
2315     { 0x00700006, "Unformatted Text Value", "ST", "1", 0, 0},
2316     { 0x00700008, "Text Object Sequence", "SQ", "1", 0, 0},
2317     { 0x00700009, "Graphic Object Sequence", "SQ", "1", 0, 0},
2318     { 0x00700010, "Bounding Box Top Left Hand Corner", "FL", "2", 0, 0},
2319     { 0x00700011, "Bounding Box Bottom Right Hand Corner", "FL", "2", 0, 0},
2320     { 0x00700012, "Bounding Box Text Horizontal Justification", "CS", "1", 0, 0},
2321     { 0x00700014, "Anchor Point", "FL", "2", 0, 0},
2322     { 0x00700015, "Anchor Point Visibility", "CS", "1", 0, 0},
2323     { 0x00700020, "Graphic Dimensions", "US", "1", 0, 0},
2324     { 0x00700021, "Number of Graphic Points", "US", "1", 0, 0},
2325     { 0x00700022, "Graphic Data", "FL", "2-n", 0, 0},
2326     { 0x00700023, "Graphic Type", "CS", "1", 0, 0},
2327     { 0x00700024, "Graphic Filled", "CS", "1", 0, 0},
2328     { 0x00700040, "Image Rotation (Retired)", "IS", "1", -1, 0},
2329     { 0x00700041, "Image Horizontal Flip", "CS", "1", 0, 0},
2330     { 0x00700042, "Image Rotation", "US", "1", 0, 0},
2331     { 0x00700050, "Displayed Area Top Left Hand Corner (Trial)", "US", "2", -1, 0},
2332     { 0x00700051, "Displayed Area Bottom Right Hand Corner (Trial)", "US", "2", -1, 0},
2333     { 0x00700052, "Displayed Area Top Left Hand Corner", "SL", "2", 0, 0},
2334     { 0x00700053, "Displayed Area Bottom Right Hand Corner", "SL", "2", 0, 0},
2335     { 0x0070005A, "Displayed Area Selection Sequence", "SQ", "1", 0, 0},
2336     { 0x00700060, "Graphic Layer Sequence", "SQ", "1", 0, 0},
2337     { 0x00700062, "Graphic Layer Order", "IS", "1", 0, 0},
2338     { 0x00700066, "Graphic Layer Recommended Display Grayscale Value", "US", "1", 0, 0},
2339     { 0x00700067, "Graphic Layer Recommended Display RGB Value", "US", "3", -1, 0},
2340     { 0x00700068, "Graphic Layer Description", "LO", "1", 0, 0},
2341     { 0x00700080, "Content Label", "CS", "1", 0, 0},
2342     { 0x00700081, "Content Description", "LO", "1", 0, 0},
2343     { 0x00700082, "Presentation Creation Date", "DA", "1", 0, 0},
2344     { 0x00700083, "Presentation Creation Time", "TM", "1", 0, 0},
2345     { 0x00700084, "Content Creator's Name", "PN", "1", 0, 0},
2346     { 0x00700086, "Content Creator's Identification Code Sequence", "SQ", "1", 0, 0},
2347     { 0x00700100, "Presentation Size Mode", "CS", "1", 0, 0},
2348     { 0x00700101, "Presentation Pixel Spacing", "DS", "2", 0, 0},
2349     { 0x00700102, "Presentation Pixel Aspect Ratio", "IS", "2", 0, 0},
2350     { 0x00700103, "Presentation Pixel Magnification Ratio", "FL", "1", 0, 0},
2351     { 0x00700306, "Shape Type", "CS", "1", 0, 0},
2352     { 0x00700308, "Registration Sequence", "SQ", "1", 0, 0},
2353     { 0x00700309, "Matrix Registration Sequence", "SQ", "1", 0, 0},
2354     { 0x0070030A, "Matrix Sequence", "SQ", "1", 0, 0},
2355     { 0x0070030C, "Frame of Reference Transformation Matrix Type", "CS", "1", 0, 0},
2356     { 0x0070030D, "Registration Type Code Sequence", "SQ", "1", 0, 0},
2357     { 0x0070030F, "Fiducial Description", "ST", "1", 0, 0},
2358     { 0x00700310, "Fiducial Identifier", "SH", "1", 0, 0},
2359     { 0x00700311, "Fiducial Identifier Code Sequence", "SQ", "1", 0, 0},
2360     { 0x00700312, "Contour Uncertainty Radius", "FD", "1", 0, 0},
2361     { 0x00700314, "Used Fiducials Sequence", "SQ", "1", 0, 0},
2362     { 0x00700318, "Graphic Coordinates Data Sequence", "SQ", "1", 0, 0},
2363     { 0x0070031A, "Fiducial UID", "UI", "1", 0, 0},
2364     { 0x0070031C, "Fiducial Set Sequence", "SQ", "1", 0, 0},
2365     { 0x0070031E, "Fiducial Sequence", "SQ", "1", 0, 0},
2366     { 0x00700401, "Graphic Layer Recommended Display CIELab Value", "US", "3", 0, 0},
2367     { 0x00700402, "Blending Sequence", "SQ", "1", 0, 0},
2368     { 0x00700403, "Relative Opacity", "FL", "1", 0, 0},
2369     { 0x00700404, "Referenced Spatial Registration Sequence", "SQ", "1", 0, 0},
2370     { 0x00700405, "Blending Position", "CS", "1", 0, 0},
2371     { 0x00720002, "Hanging Protocol Name", "SH", "1", 0, 0},
2372     { 0x00720004, "Hanging Protocol Description", "LO", "1", 0, 0},
2373     { 0x00720006, "Hanging Protocol Level", "CS", "1", 0, 0},
2374     { 0x00720008, "Hanging Protocol Creator", "LO", "1", 0, 0},
2375     { 0x0072000A, "Hanging Protocol Creation DateTime", "DT", "1", 0, 0},
2376     { 0x0072000C, "Hanging Protocol Definition Sequence", "SQ", "1", 0, 0},
2377     { 0x0072000E, "Hanging Protocol User Identification Code Sequence", "SQ", "1", 0, 0},
2378     { 0x00720010, "Hanging Protocol User Group Name", "LO", "1", 0, 0},
2379     { 0x00720012, "Source Hanging Protocol Sequence", "SQ", "1", 0, 0},
2380     { 0x00720014, "Number of Priors Referenced", "US", "1", 0, 0},
2381     { 0x00720020, "Image Sets Sequence", "SQ", "1", 0, 0},
2382     { 0x00720022, "Image Set Selector Sequence", "SQ", "1", 0, 0},
2383     { 0x00720024, "Image Set Selector Usage Flag", "CS", "1", 0, 0},
2384     { 0x00720026, "Selector Attribute", "AT", "1", 0, 0},
2385     { 0x00720028, "Selector Value Number", "US", "1", 0, 0},
2386     { 0x00720030, "Time Based Image Sets Sequence", "SQ", "1", 0, 0},
2387     { 0x00720032, "Image Set Number", "US", "1", 0, 0},
2388     { 0x00720034, "Image Set Selector Category", "CS", "1", 0, 0},
2389     { 0x00720038, "Relative Time", "US", "2", 0, 0},
2390     { 0x0072003A, "Relative Time Units", "CS", "1", 0, 0},
2391     { 0x0072003C, "Abstract Prior Value", "SS", "2", 0, 0},
2392     { 0x0072003E, "Abstract Prior Code Sequence", "SQ", "1", 0, 0},
2393     { 0x00720040, "Image Set Label", "LO", "1", 0, 0},
2394     { 0x00720050, "Selector Attribute VR", "CS", "1", 0, 0},
2395     { 0x00720052, "Selector Sequence Pointer", "AT", "1", 0, 0},
2396     { 0x00720054, "Selector Sequence Pointer Private Creator", "LO", "1", 0, 0},
2397     { 0x00720056, "Selector Attribute Private Creator", "LO", "1", 0, 0},
2398     { 0x00720060, "Selector AT Value", "AT", "1-n", 0, 0},
2399     { 0x00720062, "Selector CS Value", "CS", "1-n", 0, 0},
2400     { 0x00720064, "Selector IS Value", "IS", "1-n", 0, 0},
2401     { 0x00720066, "Selector LO Value", "LO", "1-n", 0, 0},
2402     { 0x00720068, "Selector LT Value", "LT", "1", 0, 0},
2403     { 0x0072006A, "Selector PN Value", "PN", "1-n", 0, 0},
2404     { 0x0072006C, "Selector SH Value", "SH", "1-n", 0, 0},
2405     { 0x0072006E, "Selector ST Value", "ST", "1", 0, 0},
2406     { 0x00720070, "Selector UT Value", "UT", "1", 0, 0},
2407     { 0x00720072, "Selector DS Value", "DS", "1-n", 0, 0},
2408     { 0x00720074, "Selector FD Value", "FD", "1-n", 0, 0},
2409     { 0x00720076, "Selector FL Value", "FL", "1-n", 0, 0},
2410     { 0x00720078, "Selector UL Value", "UL", "1-n", 0, 0},
2411     { 0x0072007A, "Selector US Value", "US", "1-n", 0, 0},
2412     { 0x0072007C, "Selector SL Value", "SL", "1-n", 0, 0},
2413     { 0x0072007E, "Selector SS Value", "SS", "1-n", 0, 0},
2414     { 0x00720080, "Selector Code Sequence Value", "SQ", "1", 0, 0},
2415     { 0x00720100, "Number of Screens", "US", "1", 0, 0},
2416     { 0x00720102, "Nominal Screen Definition Sequence", "SQ", "1", 0, 0},
2417     { 0x00720104, "Number of Vertical Pixels", "US", "1", 0, 0},
2418     { 0x00720106, "Number of Horizontal Pixels", "US", "1", 0, 0},
2419     { 0x00720108, "Display Environment Spatial Position", "FD", "4", 0, 0},
2420     { 0x0072010A, "Screen Minimum Grayscale Bit Depth", "US", "1", 0, 0},
2421     { 0x0072010C, "Screen Minimum Color Bit Depth", "US", "1", 0, 0},
2422     { 0x0072010E, "Application Maximum Repaint Time", "US", "1", 0, 0},
2423     { 0x00720200, "Display Sets Sequence", "SQ", "1", 0, 0},
2424     { 0x00720202, "Display Set Number", "US", "1", 0, 0},
2425     { 0x00720203, "Display Set Label", "LO", "1", 0, 0},
2426     { 0x00720204, "Display Set Presentation Group", "US", "1", 0, 0},
2427     { 0x00720206, "Display Set Presentation Group Description", "LO", "1", 0, 0},
2428     { 0x00720208, "Partial Data Display Handling", "CS", "1", 0, 0},
2429     { 0x00720210, "Synchronized Scrolling Sequence", "SQ", "1", 0, 0},
2430     { 0x00720212, "Display Set Scrolling Group", "US", "2-n", 0, 0},
2431     { 0x00720214, "Navigation Indicator Sequence", "SQ", "1", 0, 0},
2432     { 0x00720216, "Navigation Display Set", "US", "1", 0, 0},
2433     { 0x00720218, "Reference Display Sets", "US", "1-n", 0, 0},
2434     { 0x00720300, "Image Boxes Sequence", "SQ", "1", 0, 0},
2435     { 0x00720302, "Image Box Number", "US", "1", 0, 0},
2436     { 0x00720304, "Image Box Layout Type", "CS", "1", 0, 0},
2437     { 0x00720306, "Image Box Tile Horizontal Dimension", "US", "1", 0, 0},
2438     { 0x00720308, "Image Box Tile Vertical Dimension", "US", "1", 0, 0},
2439     { 0x00720310, "Image Box Scroll Direction", "CS", "1", 0, 0},
2440     { 0x00720312, "Image Box Small Scroll Type", "CS", "1", 0, 0},
2441     { 0x00720314, "Image Box Small Scroll Amount", "US", "1", 0, 0},
2442     { 0x00720316, "Image Box Large Scroll Type", "CS", "1", 0, 0},
2443     { 0x00720318, "Image Box Large Scroll Amount", "US", "1", 0, 0},
2444     { 0x00720320, "Image Box Overlap Priority", "US", "1", 0, 0},
2445     { 0x00720330, "Cine Relative to Real-Time", "FD", "1", 0, 0},
2446     { 0x00720400, "Filter Operations Sequence", "SQ", "1", 0, 0},
2447     { 0x00720402, "Filter-by Category", "CS", "1", 0, 0},
2448     { 0x00720404, "Filter-by Attribute Presence", "CS", "1", 0, 0},
2449     { 0x00720406, "Filter-by Operator", "CS", "1", 0, 0},
2450     { 0x00720500, "Blending Operation Type", "CS", "1", 0, 0},
2451     { 0x00720510, "Reformatting Operation Type", "CS", "1", 0, 0},
2452     { 0x00720512, "Reformatting Thickness", "FD", "1", 0, 0},
2453     { 0x00720514, "Reformatting Interval", "FD", "1", 0, 0},
2454     { 0x00720516, "Reformatting Operation Initial View Direction", "CS", "1", 0, 0},
2455     { 0x00720520, "3D Rendering Type", "CS", "1-n", 0, 0},
2456     { 0x00720600, "Sorting Operations Sequence", "SQ", "1", 0, 0},
2457     { 0x00720602, "Sort-by Category", "CS", "1", 0, 0},
2458     { 0x00720604, "Sorting Direction", "CS", "1", 0, 0},
2459     { 0x00720700, "Display Set Patient Orientation", "CS", "2", 0, 0},
2460     { 0x00720702, "VOI Type", "CS", "1", 0, 0},
2461     { 0x00720704, "Pseudo-color Type", "CS", "1", 0, 0},
2462     { 0x00720706, "Show Grayscale Inverted", "CS", "1", 0, 0},
2463     { 0x00720710, "Show Image True Size Flag", "CS", "1", 0, 0},
2464     { 0x00720712, "Show Graphic Annotation Flag", "CS", "1", 0, 0},
2465     { 0x00720714, "Show Patient Demographics Flag", "CS", "1", 0, 0},
2466     { 0x00720716, "Show Acquisition Techniques Flag", "CS", "1", 0, 0},
2467     { 0x00720717, "Display Set Horizontal Justification", "CS", "1", 0, 0},
2468     { 0x00720718, "Display Set Vertical Justification", "CS", "1", 0, 0},
2469     { 0x00741000, "Unified Procedure Step State", "CS", "1", 0, 0},
2470     { 0x00741002, "UPS Progress Information Sequence", "SQ", "1", 0, 0},
2471     { 0x00741004, "Unified Procedure Step Progress", "DS", "1", 0, 0},
2472     { 0x00741006, "Unified Procedure Step Progress Description", "ST", "1", 0, 0},
2473     { 0x00741008, "Unified Procedure Step Communications URI Sequence", "SQ", "1", 0, 0},
2474     { 0x0074100a, "Contact URI", "ST", "1", 0, 0},
2475     { 0x0074100c, "Contact Display Name", "LO", "1", 0, 0},
2476     { 0x0074100e, "Unified Procedure Step Discontinuation Reason Code Sequence", "SQ", "1", 0, 0},
2477     { 0x00741020, "Beam Task Sequence", "SQ", "1", 0, 0},
2478     { 0x00741022, "Beam Task Type", "CS", "1", 0, 0},
2479     { 0x00741024, "Beam Order Index", "IS", "1", 0, 0},
2480     { 0x00741030, "Delivery Verification Image Sequence", "SQ", "1", 0, 0},
2481     { 0x00741032, "Verification Image Timing", "CS", "1", 0, 0},
2482     { 0x00741034, "Double Exposure Flag", "CS", "1", 0, 0},
2483     { 0x00741036, "Double Exposure Ordering", "CS", "1", 0, 0},
2484     { 0x00741038, "Double Exposure Meterset", "DS", "1", 0, 0},
2485     { 0x0074103A, "Double Exposure Field Delta", "DS", "4", 0, 0},
2486     { 0x00741040, "Related Reference RT Image Sequence", "SQ", "1", 0, 0},
2487     { 0x00741042, "General Machine Verification Sequence", "SQ", "1", 0, 0},
2488     { 0x00741044, "Conventional Machine Verification Sequence", "SQ", "1", 0, 0},
2489     { 0x00741046, "Ion Machine Verification Sequence", "SQ", "1", 0, 0},
2490     { 0x00741048, "Failed Attributes Sequence", "SQ", "1-n", 0, 0},
2491     { 0x0074104A, "Overridden Attributes Sequence", "SQ", "1-n", 0, 0},
2492     { 0x0074104C, "Conventional Control Point Verification Sequence", "SQ", "1", 0, 0},
2493     { 0x0074104E, "Ion Control Point Verification Sequence", "SQ", "1", 0, 0},
2494     { 0x00741050, "Attribute Occurrence Sequence", "SQ", "1-n", 0, 0},
2495     { 0x00741052, "Attribute Occurrence Pointer", "AT", "1", 0, 0},
2496     { 0x00741054, "Attribute Item Selector", "UL", "1", 0, 0},
2497     { 0x00741056, "Attribute Occurrence Private Creator", "LO", "1", 0, 0},
2498     { 0x00741200, "Scheduled Procedure Step Priority", "CS", "1", 0, 0},
2499     { 0x00741202, "Worklist Label", "LO", "1", 0, 0},
2500     { 0x00741204, "Procedure Step Label", "LO", "1", 0, 0},
2501     { 0x00741210, "Scheduled Processing Parameters Sequence", "SQ", "1", 0, 0},
2502     { 0x00741212, "Performed Processing Parameters Sequence", "SQ", "1", 0, 0},
2503     { 0x00741216, "UPS Performed Procedure Sequence", "SQ", "1", 0, 0},
2504     { 0x00741220, "Related Procedure Step Sequence", "SQ", "1", 0, 0},
2505     { 0x00741222, "Procedure Step Relationship Type", "LO", "1", 0, 0},
2506     { 0x00741230, "Deletion Lock", "LO", "1", 0, 0},
2507     { 0x00741234, "Receiving AE", "AE", "1", 0, 0},
2508     { 0x00741236, "Requesting AE", "AE", "1", 0, 0},
2509     { 0x00741238, "Reason for Cancellation", "LT", "1", 0, 0},
2510     { 0x00741242, "SCP Status", "CS", "1", 0, 0},
2511     { 0x00741244, "Subscription List Status", "CS", "1", 0, 0},
2512     { 0x00741246, "UPS List Status", "CS", "1", 0, 0},
2513     { 0x00880130, "Storage Media File-set ID", "SH", "1", 0, 0},
2514     { 0x00880140, "Storage Media File-set UID", "UI", "1", 0, 0},
2515     { 0x00880200, "Icon Image Sequence", "SQ", "1", 0, 0},
2516     { 0x00880904, "Topic Title", "LO", "1", -1, 0},
2517     { 0x00880906, "Topic Subject", "ST", "1", -1, 0},
2518     { 0x00880910, "Topic Author", "LO", "1", -1, 0},
2519     { 0x00880912, "Topic Keywords", "LO", "1-32", -1, 0},
2520     { 0x01000410, "SOP Instance Status", "CS", "1", 0, 0},
2521     { 0x01000420, "SOP Authorization Date and Time", "DT", "1", 0, 0},
2522     { 0x01000424, "SOP Authorization Comment", "LT", "1", 0, 0},
2523     { 0x01000426, "Authorization Equipment Certification Number", "LO", "1", 0, 0},
2524     { 0x04000005, "MAC ID Number", "US", "1", 0, 0},
2525     { 0x04000010, "MAC Calculation Transfer Syntax UID", "UI", "1", 0, 0},
2526     { 0x04000015, "MAC Algorithm", "CS", "1", 0, 0},
2527     { 0x04000020, "Data Elements Signed", "AT", "1-n", 0, 0},
2528     { 0x04000100, "Digital Signature UID", "UI", "1", 0, 0},
2529     { 0x04000105, "Digital Signature DateTime", "DT", "1", 0, 0},
2530     { 0x04000110, "Certificate Type", "CS", "1", 0, 0},
2531     { 0x04000115, "Certificate of Signer", "OB", "1", 0, 0},
2532     { 0x04000120, "Signature", "OB", "1", 0, 0},
2533     { 0x04000305, "Certified Timestamp Type", "CS", "1", 0, 0},
2534     { 0x04000310, "Certified Timestamp", "OB", "1", 0, 0},
2535     { 0x04000401, "Digital Signature Purpose Code Sequence", "SQ", "1", 0, 0},
2536     { 0x04000402, "Referenced Digital Signature Sequence", "SQ", "1", 0, 0},
2537     { 0x04000403, "Referenced SOP Instance MAC Sequence", "SQ", "1", 0, 0},
2538     { 0x04000404, "MAC", "OB", "1", 0, 0},
2539     { 0x04000500, "Encrypted Attributes Sequence", "SQ", "1", 0, 0},
2540     { 0x04000510, "Encrypted Content Transfer Syntax UID", "UI", "1", 0, 0},
2541     { 0x04000520, "Encrypted Content", "OB", "1", 0, 0},
2542     { 0x04000550, "Modified Attributes Sequence", "SQ", "1", 0, 0},
2543     { 0x04000561, "Original Attributes Sequence", "SQ", "1", 0, 0},
2544     { 0x04000562, "Attribute Modification DateTime", "DT", "1", 0, 0},
2545     { 0x04000563, "Modifying System", "LO", "1", 0, 0},
2546     { 0x04000564, "Source of Previous Values", "LO", "1", 0, 0},
2547     { 0x04000565, "Reason for the Attribute Modification", "CS", "1", 0, 0},
2548     { 0x10000000, "Escape Triplet", "US", "3", -1, 0},
2549     { 0x10000001, "Run Length Triplet", "US", "3", -1, 0},
2550     { 0x10000002, "Huffman Table Size", "US", "1", -1, 0},
2551     { 0x10000003, "Huffman Table Triplet", "US", "3", -1, 0},
2552     { 0x10000004, "Shift Table Size", "US", "1", -1, 0},
2553     { 0x10000005, "Shift Table Triplet", "US", "3", -1, 0},
2554     { 0x10100000, "Zonal Map", "US", "1-n", -1, 0},
2555     { 0x20000010, "Number of Copies", "IS", "1", 0, 0},
2556     { 0x2000001E, "Printer Configuration Sequence", "SQ", "1", 0, 0},
2557     { 0x20000020, "Print Priority", "CS", "1", 0, 0},
2558     { 0x20000030, "Medium Type", "CS", "1", 0, 0},
2559     { 0x20000040, "Film Destination", "CS", "1", 0, 0},
2560     { 0x20000050, "Film Session Label", "LO", "1", 0, 0},
2561     { 0x20000060, "Memory Allocation", "IS", "1", 0, 0},
2562     { 0x20000061, "Maximum Memory Allocation", "IS", "1", 0, 0},
2563     { 0x20000062, "Color Image Printing Flag", "CS", "1", -1, 0},
2564     { 0x20000063, "Collation Flag", "CS", "1", -1, 0},
2565     { 0x20000065, "Annotation Flag", "CS", "1", -1, 0},
2566     { 0x20000067, "Image Overlay Flag", "CS", "1", -1, 0},
2567     { 0x20000069, "Presentation LUT Flag", "CS", "1", -1, 0},
2568     { 0x2000006A, "Image Box Presentation LUT Flag", "CS", "1", -1, 0},
2569     { 0x200000A0, "Memory Bit Depth", "US", "1", 0, 0},
2570     { 0x200000A1, "Printing Bit Depth", "US", "1", 0, 0},
2571     { 0x200000A2, "Media Installed Sequence", "SQ", "1", 0, 0},
2572     { 0x200000A4, "Other Media Available Sequence", "SQ", "1", 0, 0},
2573     { 0x200000A8, "Supported Image Display Formats Sequence", "SQ", "1", 0, 0},
2574     { 0x20000500, "Referenced Film Box Sequence", "SQ", "1", 0, 0},
2575     { 0x20000510, "Referenced Stored Print Sequence", "SQ", "1", -1, 0},
2576     { 0x20100010, "Image Display Format", "ST", "1", 0, 0},
2577     { 0x20100030, "Annotation Display Format ID", "CS", "1", 0, 0},
2578     { 0x20100040, "Film Orientation", "CS", "1", 0, 0},
2579     { 0x20100050, "Film Size ID", "CS", "1", 0, 0},
2580     { 0x20100052, "Printer Resolution ID", "CS", "1", 0, 0},
2581     { 0x20100054, "Default Printer Resolution ID", "CS", "1", 0, 0},
2582     { 0x20100060, "Magnification Type", "CS", "1", 0, 0},
2583     { 0x20100080, "Smoothing Type", "CS", "1", 0, 0},
2584     { 0x201000A6, "Default Magnification Type", "CS", "1", 0, 0},
2585     { 0x201000A7, "Other Magnification Types Available", "CS", "1-n", 0, 0},
2586     { 0x201000A8, "Default Smoothing Type", "CS", "1", 0, 0},
2587     { 0x201000A9, "Other Smoothing Types Available", "CS", "1-n", 0, 0},
2588     { 0x20100100, "Border Density", "CS", "1", 0, 0},
2589     { 0x20100110, "Empty Image Density", "CS", "1", 0, 0},
2590     { 0x20100120, "Min Density", "US", "1", 0, 0},
2591     { 0x20100130, "Max Density", "US", "1", 0, 0},
2592     { 0x20100140, "Trim", "CS", "1", 0, 0},
2593     { 0x20100150, "Configuration Information", "ST", "1", 0, 0},
2594     { 0x20100152, "Configuration Information Description", "LT", "1", 0, 0},
2595     { 0x20100154, "Maximum Collated Films", "IS", "1", 0, 0},
2596     { 0x2010015E, "Illumination", "US", "1", 0, 0},
2597     { 0x20100160, "Reflected Ambient Light", "US", "1", 0, 0},
2598     { 0x20100376, "Printer Pixel Spacing", "DS", "2", 0, 0},
2599     { 0x20100500, "Referenced Film Session Sequence", "SQ", "1", 0, 0},
2600     { 0x20100510, "Referenced Image Box Sequence", "SQ", "1", 0, 0},
2601     { 0x20100520, "Referenced Basic Annotation Box Sequence", "SQ", "1", 0, 0},
2602     { 0x20200010, "Image Box Position", "US", "1", 0, 0},
2603     { 0x20200020, "Polarity", "CS", "1", 0, 0},
2604     { 0x20200030, "Requested Image Size", "DS", "1", 0, 0},
2605     { 0x20200040, "Requested Decimate/Crop Behavior", "CS", "1", 0, 0},
2606     { 0x20200050, "Requested Resolution ID", "CS", "1", 0, 0},
2607     { 0x202000A0, "Requested Image Size Flag", "CS", "1", 0, 0},
2608     { 0x202000A2, "Decimate/Crop Result", "CS", "1", 0, 0},
2609     { 0x20200110, "Basic Grayscale Image Sequence", "SQ", "1", 0, 0},
2610     { 0x20200111, "Basic Color Image Sequence", "SQ", "1", 0, 0},
2611     { 0x20200130, "Referenced Image Overlay Box Sequence", "SQ", "1", -1, 0},
2612     { 0x20200140, "Referenced VOI LUT Box Sequence", "SQ", "1", -1, 0},
2613     { 0x20300010, "Annotation Position", "US", "1", 0, 0},
2614     { 0x20300020, "Text String", "LO", "1", 0, 0},
2615     { 0x20400010, "Referenced Overlay Plane Sequence", "SQ", "1", -1, 0},
2616     { 0x20400011, "Referenced Overlay Plane Groups", "US", "1-99", -1, 0},
2617     { 0x20400020, "Overlay Pixel Data Sequence", "SQ", "1", -1, 0},
2618     { 0x20400060, "Overlay Magnification Type", "CS", "1", -1, 0},
2619     { 0x20400070, "Overlay Smoothing Type", "CS", "1", -1, 0},
2620     { 0x20400072, "Overlay or Image Magnification", "CS", "1", -1, 0},
2621     { 0x20400074, "Magnify to Number of Columns", "US", "1", -1, 0},
2622     { 0x20400080, "Overlay Foreground Density", "CS", "1", -1, 0},
2623     { 0x20400082, "Overlay Background Density", "CS", "1", -1, 0},
2624     { 0x20400090, "Overlay Mode", "CS", "1", -1, 0},
2625     { 0x20400100, "Threshold Density", "CS", "1", -1, 0},
2626     { 0x20400500, "Referenced Image Box Sequence (Retired)", "SQ", "1", -1, 0},
2627     { 0x20500010, "Presentation LUT Sequence", "SQ", "1", 0, 0},
2628     { 0x20500020, "Presentation LUT Shape", "CS", "1", 0, 0},
2629     { 0x20500500, "Referenced Presentation LUT Sequence", "SQ", "1", 0, 0},
2630     { 0x21000010, "Print Job ID", "SH", "1", -1, 0},
2631     { 0x21000020, "Execution Status", "CS", "1", 0, 0},
2632     { 0x21000030, "Execution Status Info", "CS", "1", 0, 0},
2633     { 0x21000040, "Creation Date", "DA", "1", 0, 0},
2634     { 0x21000050, "Creation Time", "TM", "1", 0, 0},
2635     { 0x21000070, "Originator", "AE", "1", 0, 0},
2636     { 0x21000140, "Destination AE", "AE", "1", -1, 0},
2637     { 0x21000160, "Owner ID", "SH", "1", 0, 0},
2638     { 0x21000170, "Number of Films", "IS", "1", 0, 0},
2639     { 0x21000500, "Referenced Print Job Sequence (Pull Stored Print)", "SQ", "1", -1, 0},
2640     { 0x21100010, "Printer Status", "CS", "1", 0, 0},
2641     { 0x21100020, "Printer Status Info", "CS", "1", 0, 0},
2642     { 0x21100030, "Printer Name", "LO", "1", 0, 0},
2643     { 0x21100099, "Print Queue ID", "SH", "1", -1, 0},
2644     { 0x21200010, "Queue Status", "CS", "1", -1, 0},
2645     { 0x21200050, "Print Job Description Sequence", "SQ", "1", -1, 0},
2646     { 0x21200070, "Referenced Print Job Sequence", "SQ", "1", -1, 0},
2647     { 0x21300010, "Print Management Capabilities Sequence", "SQ", "1", -1, 0},
2648     { 0x21300015, "Printer Characteristics Sequence", "SQ", "1", -1, 0},
2649     { 0x21300030, "Film Box Content Sequence", "SQ", "1", -1, 0},
2650     { 0x21300040, "Image Box Content Sequence", "SQ", "1", -1, 0},
2651     { 0x21300050, "Annotation Content Sequence", "SQ", "1", -1, 0},
2652     { 0x21300060, "Image Overlay Box Content Sequence", "SQ", "1", -1, 0},
2653     { 0x21300080, "Presentation LUT Content Sequence", "SQ", "1", -1, 0},
2654     { 0x213000A0, "Proposed Study Sequence", "SQ", "1", -1, 0},
2655     { 0x213000C0, "Original Image Sequence", "SQ", "1", -1, 0},
2656     { 0x22000001, "Label Using Information Extracted From Instances", "CS", "1", 0, 0},
2657     { 0x22000002, "Label Text", "UT", "1", 0, 0},
2658     { 0x22000003, "Label Style Selection", "CS", "1", 0, 0},
2659     { 0x22000004, "Media Disposition", "LT", "1", 0, 0},
2660     { 0x22000005, "Barcode Value", "LT", "1", 0, 0},
2661     { 0x22000006, "Barcode Symbology", "CS", "1", 0, 0},
2662     { 0x22000007, "Allow Media Splitting", "CS", "1", 0, 0},
2663     { 0x22000008, "Include Non-DICOM Objects", "CS", "1", 0, 0},
2664     { 0x22000009, "Include Display Application", "CS", "1", 0, 0},
2665     { 0x2200000A, "Preserve Composite Instances After Media Creation", "CS", "1", 0, 0},
2666     { 0x2200000B, "Total Number of Pieces of Media Created", "US", "1", 0, 0},
2667     { 0x2200000C, "Requested Media Application Profile", "LO", "1", 0, 0},
2668     { 0x2200000D, "Referenced Storage Media Sequence", "SQ", "1", 0, 0},
2669     { 0x2200000E, "Failure Attributes", "AT", "1-n", 0, 0},
2670     { 0x2200000F, "Allow Lossy Compression", "CS", "1", 0, 0},
2671     { 0x22000020, "Request Priority", "CS", "1", 0, 0},
2672     { 0x30020002, "RT Image Label", "SH", "1", 0, 0},
2673     { 0x30020003, "RT Image Name", "LO", "1", 0, 0},
2674     { 0x30020004, "RT Image Description", "ST", "1", 0, 0},
2675     { 0x3002000A, "Reported Values Origin", "CS", "1", 0, 0},
2676     { 0x3002000C, "RT Image Plane", "CS", "1", 0, 0},
2677     { 0x3002000D, "X-Ray Image Receptor Translation", "DS", "3", 0, 0},
2678     { 0x3002000E, "X-Ray Image Receptor Angle", "DS", "1", 0, 0},
2679     { 0x30020010, "RT Image Orientation", "DS", "6", 0, 0},
2680     { 0x30020011, "Image Plane Pixel Spacing", "DS", "2", 0, 0},
2681     { 0x30020012, "RT Image Position", "DS", "2", 0, 0},
2682     { 0x30020020, "Radiation Machine Name", "SH", "1", 0, 0},
2683     { 0x30020022, "Radiation Machine SAD", "DS", "1", 0, 0},
2684     { 0x30020024, "Radiation Machine SSD", "DS", "1", 0, 0},
2685     { 0x30020026, "RT Image SID", "DS", "1", 0, 0},
2686     { 0x30020028, "Source to Reference Object Distance", "DS", "1", 0, 0},
2687     { 0x30020029, "Fraction Number", "IS", "1", 0, 0},
2688     { 0x30020030, "Exposure Sequence", "SQ", "1", 0, 0},
2689     { 0x30020032, "Meterset Exposure", "DS", "1", 0, 0},
2690     { 0x30020034, "Diaphragm Position", "DS", "4", 0, 0},
2691     { 0x30020040, "Fluence Map Sequence", "SQ", "1", 0, 0},
2692     { 0x30020041, "Fluence Data Source", "CS", "1", 0, 0},
2693     { 0x30020042, "Fluence Data Scale", "DS", "1", 0, 0},
2694     { 0x30040001, "DVH Type", "CS", "1", 0, 0},
2695     { 0x30040002, "Dose Units", "CS", "1", 0, 0},
2696     { 0x30040004, "Dose Type", "CS", "1", 0, 0},
2697     { 0x30040006, "Dose Comment", "LO", "1", 0, 0},
2698     { 0x30040008, "Normalization Point", "DS", "3", 0, 0},
2699     { 0x3004000A, "Dose Summation Type", "CS", "1", 0, 0},
2700     { 0x3004000C, "Grid Frame Offset Vector", "DS", "2-n", 0, 0},
2701     { 0x3004000E, "Dose Grid Scaling", "DS", "1", 0, 0},
2702     { 0x30040010, "RT Dose ROI Sequence", "SQ", "1", 0, 0},
2703     { 0x30040012, "Dose Value", "DS", "1", 0, 0},
2704     { 0x30040014, "Tissue Heterogeneity Correction", "CS", "1-3", 0, 0},
2705     { 0x30040040, "DVH Normalization Point", "DS", "3", 0, 0},
2706     { 0x30040042, "DVH Normalization Dose Value", "DS", "1", 0, 0},
2707     { 0x30040050, "DVH Sequence", "SQ", "1", 0, 0},
2708     { 0x30040052, "DVH Dose Scaling", "DS", "1", 0, 0},
2709     { 0x30040054, "DVH Volume Units", "CS", "1", 0, 0},
2710     { 0x30040056, "DVH Number of Bins", "IS", "1", 0, 0},
2711     { 0x30040058, "DVH Data", "DS", "2-2n", 0, 0},
2712     { 0x30040060, "DVH Referenced ROI Sequence", "SQ", "1", 0, 0},
2713     { 0x30040062, "DVH ROI Contribution Type", "CS", "1", 0, 0},
2714     { 0x30040070, "DVH Minimum Dose", "DS", "1", 0, 0},
2715     { 0x30040072, "DVH Maximum Dose", "DS", "1", 0, 0},
2716     { 0x30040074, "DVH Mean Dose", "DS", "1", 0, 0},
2717     { 0x30060002, "Structure Set Label", "SH", "1", 0, 0},
2718     { 0x30060004, "Structure Set Name", "LO", "1", 0, 0},
2719     { 0x30060006, "Structure Set Description", "ST", "1", 0, 0},
2720     { 0x30060008, "Structure Set Date", "DA", "1", 0, 0},
2721     { 0x30060009, "Structure Set Time", "TM", "1", 0, 0},
2722     { 0x30060010, "Referenced Frame of Reference Sequence", "SQ", "1", 0, 0},
2723     { 0x30060012, "RT Referenced Study Sequence", "SQ", "1", 0, 0},
2724     { 0x30060014, "RT Referenced Series Sequence", "SQ", "1", 0, 0},
2725     { 0x30060016, "Contour Image Sequence", "SQ", "1", 0, 0},
2726     { 0x30060020, "Structure Set ROI Sequence", "SQ", "1", 0, 0},
2727     { 0x30060022, "ROI Number", "IS", "1", 0, -1},
2728     { 0x30060024, "Referenced Frame of Reference UID", "UI", "1", 0, 0},
2729     { 0x30060026, "ROI Name", "LO", "1", 0, -1},
2730     { 0x30060028, "ROI Description", "ST", "1", 0, 0},
2731     { 0x3006002A, "ROI Display Color", "IS", "3", 0, 0},
2732     { 0x3006002C, "ROI Volume", "DS", "1", 0, 0},
2733     { 0x30060030, "RT Related ROI Sequence", "SQ", "1", 0, 0},
2734     { 0x30060033, "RT ROI Relationship", "CS", "1", 0, 0},
2735     { 0x30060036, "ROI Generation Algorithm", "CS", "1", 0, 0},
2736     { 0x30060038, "ROI Generation Description", "LO", "1", 0, 0},
2737     { 0x30060039, "ROI Contour Sequence", "SQ", "1", 0, 0},
2738     { 0x30060040, "Contour Sequence", "SQ", "1", 0, 0},
2739     { 0x30060042, "Contour Geometric Type", "CS", "1", 0, -1},
2740     { 0x30060044, "Contour Slab Thickness", "DS", "1", 0, 0},
2741     { 0x30060045, "Contour Offset Vector", "DS", "3", 0, 0},
2742     { 0x30060046, "Number of Contour Points", "IS", "1", 0, 0},
2743     { 0x30060048, "Contour Number", "IS", "1", 0, 0},
2744     { 0x30060049, "Attached Contours", "IS", "1-n", 0, 0},
2745     { 0x30060050, "Contour Data", "DS", "3-3n", 0, 0},
2746     { 0x30060080, "RT ROI Observations Sequence", "SQ", "1", 0, 0},
2747     { 0x30060082, "Observation Number", "IS", "1", 0, -1},
2748     { 0x30060084, "Referenced ROI Number", "IS", "1", 0, 0},
2749     { 0x30060085, "ROI Observation Label", "SH", "1", 0, -1},
2750     { 0x30060086, "RT ROI Identification Code Sequence", "SQ", "1", 0, 0},
2751     { 0x30060088, "ROI Observation Description", "ST", "1", 0, 0},
2752     { 0x300600A0, "Related RT ROI Observations Sequence", "SQ", "1", 0, 0},
2753     { 0x300600A4, "RT ROI Interpreted Type", "CS", "1", 0, -1},
2754     { 0x300600A6, "ROI Interpreter", "PN", "1", 0, 0},
2755     { 0x300600B0, "ROI Physical Properties Sequence", "SQ", "1", 0, 0},
2756     { 0x300600B2, "ROI Physical Property", "CS", "1", 0, 0},
2757     { 0x300600B4, "ROI Physical Property Value", "DS", "1", 0, 0},
2758     { 0x300600B6, "ROI Elemental Composition Sequence", "SQ", "1", 0, 0},
2759     { 0x300600B7, "ROI Elemental Composition Atomic Number", "US", "1", 0, 0},
2760     { 0x300600B8, "ROI Elemental Composition Atomic Mass Fraction", "FL", "1", 0, 0},
2761     { 0x300600C0, "Frame of Reference Relationship Sequence", "SQ", "1", 0, 0},
2762     { 0x300600C2, "Related Frame of Reference UID", "UI", "1", 0, 0},
2763     { 0x300600C4, "Frame of Reference Transformation Type", "CS", "1", 0, 0},
2764     { 0x300600C6, "Frame of Reference Transformation Matrix", "DS", "16", 0, 0},
2765     { 0x300600C8, "Frame of Reference Transformation Comment", "LO", "1", 0, 0},
2766     { 0x30080010, "Measured Dose Reference Sequence", "SQ", "1", 0, 0},
2767     { 0x30080012, "Measured Dose Description", "ST", "1", 0, 0},
2768     { 0x30080014, "Measured Dose Type", "CS", "1", 0, 0},
2769     { 0x30080016, "Measured Dose Value", "DS", "1", 0, 0},
2770     { 0x30080020, "Treatment Session Beam Sequence", "SQ", "1", 0, 0},
2771     { 0x30080021, "Treatment Session Ion Beam Sequence", "SQ", "1", 0, 0},
2772     { 0x30080022, "Current Fraction Number", "IS", "1", 0, 0},
2773     { 0x30080024, "Treatment Control Point Date", "DA", "1", 0, 0},
2774     { 0x30080025, "Treatment Control Point Time", "TM", "1", 0, 0},
2775     { 0x3008002A, "Treatment Termination Status", "CS", "1", 0, 0},
2776     { 0x3008002B, "Treatment Termination Code", "SH", "1", 0, 0},
2777     { 0x3008002C, "Treatment Verification Status", "CS", "1", 0, 0},
2778     { 0x30080030, "Referenced Treatment Record Sequence", "SQ", "1", 0, 0},
2779     { 0x30080032, "Specified Primary Meterset", "DS",&nbs