Skip to content

AFNI/NIfTI Server

Sections
Personal tools
You are here: Home » AFNI » Documentation

Doxygen Source Code Documentation


Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals   Search  

mri_dicom_hdr.h

Go to the documentation of this file.
00001 /*
00002           Copyright (C) 1993, 1994, RSNA and Washington University
00003 
00004           The software and supporting documentation for the Radiological
00005           Society of North America (RSNA) 1993, 1994 Digital Imaging and
00006           Communications in Medicine (DICOM) Demonstration were developed
00007           at the
00008                   Electronic Radiology Laboratory
00009                   Mallinckrodt Institute of Radiology
00010                   Washington University School of Medicine
00011                   510 S. Kingshighway Blvd.
00012                   St. Louis, MO 63110
00013           as part of the 1993, 1994 DICOM Central Test Node project for, and
00014           under contract with, the Radiological Society of North America.
00015 
00016           THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND NEITHER RSNA NOR
00017           WASHINGTON UNIVERSITY MAKE ANY WARRANTY ABOUT THE SOFTWARE, ITS
00018           PERFORMANCE, ITS MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
00019           USE, FREEDOM FROM ANY COMPUTER DISEASES OR ITS CONFORMITY TO ANY
00020           SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND PERFORMANCE OF
00021           THE SOFTWARE IS WITH THE USER.
00022 
00023           Copyright of the software and supporting documentation is
00024           jointly owned by RSNA and Washington University, and free access
00025           is hereby granted as a license to use this software, copy this
00026           software and prepare derivative works based upon this software.
00027           However, any distribution of this software source code or
00028           supporting documentation or derivative works (source code and
00029           supporting documentation) must include the three paragraphs of
00030           the copyright notice.
00031 */
00032 /* Copyright marker.  Copyright will be inserted above.  Do not remove */
00033 /*
00034 ** @$=@$=@$=
00035 */
00036 /*
00037 **                              DICOM 93
00038 **                   Electronic Radiology Laboratory
00039 **                 Mallinckrodt Institute of Radiology
00040 **              Washington University School of Medicine
00041 **
00042 ** Module Name(s):
00043 ** Author, Date:        Stephen M. Moore, 15-Apr-93
00044 ** Intent:              This header defines public typedefs for the DICOM
00045 **                      software produced at the Mallinckrodt Institute of
00046 **                      Radiology.  It also defines unique identifiers
00047 **                      for standard classes and objects defined by the
00048 **                      standard.
00049 ** Last Update:         $Author: rwcox $, $Date: 2002/10/29 20:47:44 $
00050 ** Source File:         $RCSfile: mri_dicom_hdr.h,v $
00051 ** Revision:            $Revision: 1.8 $
00052 ** Status:              $State: Exp $
00053 */
00054 
00055 #ifndef DICOM_IS_IN
00056 #define DICOM_IS_IN 1
00057 
00058 #ifdef _MSC_VER
00059 #include "dicom_platform.h"
00060 #endif
00061 
00062 #ifdef  __cplusplus
00063 extern "C" {
00064 #endif
00065 
00066 #define SHORTSIZE 16
00067 #define INTSIZE   32
00068 #define LONGSIZE  64
00069 
00070 #ifndef _SITE_MACROS
00071     typedef unsigned long CONDITION;
00072     typedef unsigned short U_SHORT;     /* normal unsigned short */
00073     typedef unsigned long U_LONG;       /* normal unsigned long */
00074     typedef unsigned long MASK_32;      /* For bit masks         */
00075     typedef unsigned long CTNBOOLEAN;   /* for boolean ops       */
00076 
00077 #if !defined(SHORTSIZE) || SHORTSIZE != 16
00078 /* The writers of this code assume that shorts are 16 bits long.
00079 ** If that is not the case, this system will not operate properly.
00080 ** This code will trip the compiler.  This code also tripes the
00081 ** compiler if you have not defined the macro SHORTSIZE.  You
00082 ** also want to define INTSIZE and LONGSIZE.
00083 */
00084 
00085     short c;
00086     char c;                     /* See note above */
00087 #endif
00088 
00089     typedef unsigned short U16; /* unsigned, 16 bit */
00090     typedef short S16;          /* signed, 16 bit */
00091 
00092 #if LONGSIZE == 64 && INTSIZE == 32     /* Such as an Alpha */
00093     typedef unsigned int U32;
00094     typedef int S32;
00095 
00096 #elif LONGSIZE == 32            /* Most 32 bit workstations */
00097     typedef unsigned long U32;
00098     typedef long S32;
00099 
00100 #else                           /* Something we do not support */
00101 
00102 /* The writers of this code assume that we can find a 32 bit integer
00103 ** defined for this system as an int or a long.  If that assumption
00104 ** is not true, this code will not operate properly.
00105 ** This code will trip the compiler.
00106 */
00107 
00108     short c;
00109     char c;                     /* See note above */
00110 
00111 #endif
00112 
00113 #endif
00114 
00115 #define FORM_COND(facility, severity, value) \
00116         (CONDITION)((((unsigned long)value)<<16) | \
00117         (((unsigned long)facility) << 4) | ((unsigned long)severity))
00118 
00119 #define SEV_SUCC        1
00120 #define SEV_INFORM      3
00121 #define SEV_WARN        5
00122 #define SEV_ERROR       2
00123 #define SEV_FATAL       4
00124 
00125 #define CTN_SUCCESS(A)  (((A)&0xf) == SEV_SUCC)
00126 #define CTN_INFORM(A)   (((A)&0xf) == SEV_INFORM)
00127 #define CTN_WARNING(A)  (((A)&0xf) == SEV_WARN)
00128 #define CTN_ERROR(A)    (((A)&0xf) == SEV_ERROR)
00129 #define CTN_FATAL(A)    (((A)&0xf) == SEV_FATAL)
00130 
00131 #if 0
00132 /* We turn these on to force compiler errors to find dependencies
00133 ** on these older macros.  These are retired as of 2.8.6.
00134 */
00135 #define SUCCESS(A)      (zzzz)
00136 #define INFORM(A)       (zzzz)
00137 #define WARNING(A)      (zzzz)
00138 #define ERROR(A)        (zzzz)
00139 #define FATAL(A)        (zzzz)
00140 #endif
00141 
00142 #define FACILITY(A)     ((unsigned long)(A)>>4) & 0xfff
00143 
00144 #ifndef _FACILITY_CODES
00145 #define FAC_DUL         1
00146 #define FAC_IDBMB       2       /* IDB Multibyte */
00147 #define FAC_IDX         3
00148 #define FAC_LST         4
00149 #define FAC_DIAG        5
00150 #define FAC_COND        6
00151 #define FAC_GQ          7
00152 #define FAC_SRV         8
00153 #define FAC_DCM         9
00154 #define FAC_MSG         10
00155 #define FAC_HUNK        11
00156 #define FAC_DB          12
00157 #define FAC_CFG         13
00158 #define FAC_IAP         14
00159 #define FAC_HIS         15
00160 #define FAC_HAP         16
00161 #define FAC_IE          17
00162 #define FAC_UID         18
00163 #define FAC_SQ          19
00164 #define FAC_ICON        20
00165 #define FAC_PRN         21
00166 #define FAC_TBL         22      /* Table functions (relational database) */
00167 #define FAC_DMAN        23      /* DICOM Management of application
00168                                  * connections */
00169 #define FAC_UTL         24      /* Utility functions */
00170 #define FAC_IDB         25      /* Image database */
00171 #define FAC_MUT         26      /* Motif utilities */
00172 #define FAC_IMAN        27      /* Image management */
00173 #define FAC_ICPY        30      /* Image copy (structures for queueing) */
00174 #define FAC_FIS         31      /* Fake information system */
00175 #define FAC_SNP         32      /* TCP/IP snoop facility */
00176 #define FAC_LUT         34      /* LUT facility */
00177 #define FAC_IODV        35      /* IOD Verification */
00178 #define FAC_THR         36      /* CTN Threading routines */
00179 #define FAC_DDR         37      /* DICOM Directory Services */
00180 #define FAC_ATH         38      /* Application thread usage */
00181 #define FAC_IRS         39      /* Image recycle system */
00182 #define FAC_TBLMB       40      /* Table functions (relational database) */
00183 #define FAC_CHR         41      /* Character set encoding utilities */
00184 
00185 #define FAC_MAXIMUM     50      /* Maximum number of facilities.  This can increase */
00186 
00187 #define FAC_APP 0x0fff          /* for stand-alone programs      */
00188 #endif
00189 
00190 #ifndef TRUE
00191 #define TRUE    1
00192 #define FALSE   0
00193 #endif
00194 
00195 
00196 #ifndef MAX
00197 #define MAX(x, y) (((x) < (y)) ? (y) : (x))
00198 #endif
00199 #ifndef MIN
00200 #define MIN(x, y) (((x) < (y)) ? (x) : (y))
00201 #endif
00202 #define IS_EVEN(i) (~(i) & 0x01)
00203 #define DIM_OF(a) (sizeof(a) / sizeof(a[0]))
00204 #define IN_RANGE(n, lo, hi) ((lo) <= n && (n) <= (hi))
00205 #define STRUCT_OFFSET(s, f)  (off_t)(((s *)(0))->f)
00206 
00207 #ifdef NO_STRERROR
00208     static char *
00209         strerror(int e) {
00210         static char string[256];
00211 
00212             sprintf(string, "Error number: %d", e);
00213             return string;
00214     }
00215 #endif
00216 
00217 #define DICOM_AS_LENGTH 4
00218 #define DICOM_CS_LENGTH 16
00219 #define DICOM_DS_LENGTH 16
00220 #define DICOM_IS_LENGTH 12
00221 #define DICOM_PN_LENGTH 64
00222 #define DICOM_DA_LENGTH 8
00223 #define DICOM_LO_LENGTH 64
00224 #define DICOM_TM_LENGTH 16
00225 #define DICOM_UI_LENGTH 64
00226 #define DICOM_SH_LENGTH 16
00227 #define DICOM_AE_LENGTH 16
00228 #define DICOM_ST_LENGTH 1024
00229 #define DICOM_LT_LENGTH 10240
00230 #define DICOM_DT_LENGTH 26
00231 
00232 #define VERSION_JUN1993 199306
00233 #define VERSION_JUL1993 199307
00234 #define VERSION_AUG1993 199308
00235 #define VERSION_SEP1993 199309
00236 #define VERSION_OCT1993 199310
00237 #define VERSION_NOV1993 199311
00238 #define VERSION_DEC1993 199312
00239 #define VERSION_JAN1994 199401
00240 #define VERSION_FEB1994 199402
00241 #define VERSION_MAR1994 199403
00242 #define VERSION_APR1994 199404
00243 #define VERSION_MAY1994 199405
00244 #define VERSION_JUN1994 199406
00245 #define VERSION_JUL1994 199407
00246 #define VERSION_AUG1994 199408
00247 #define VERSION_SEP1994 199409
00248 #define VERSION_OCT1994 199410
00249 #define VERSION_NOV1994 199411
00250 #define VERSION_DEC1994 199412
00251 #define VERSION_JAN1995 199501
00252 #define VERSION_FEB1995 199502
00253 #define VERSION_MAR1995 199503
00254 #define VERSION_APR1995 199504
00255 #define VERSION_MAY1995 199505
00256 #define VERSION_JUN1995 199506
00257 
00258 #ifndef STANDARD_VERSION
00259 #define STANDARD_VERSION VERSION_JUN1995
00260 #endif
00261 
00262 #define CTN_MALLOC(a) malloc((a))
00263 #define CTN_FREE(a)   free((a))
00264 
00265 #ifdef  __cplusplus
00266 }
00267 #endif
00268 
00269 #endif
00270 /*
00271           Copyright (C) 1993, 1994, RSNA and Washington University
00272 
00273           The software and supporting documentation for the Radiological
00274           Society of North America (RSNA) 1993, 1994 Digital Imaging and
00275           Communications in Medicine (DICOM) Demonstration were developed
00276           at the
00277                   Electronic Radiology Laboratory
00278                   Mallinckrodt Institute of Radiology
00279                   Washington University School of Medicine
00280                   510 S. Kingshighway Blvd.
00281                   St. Louis, MO 63110
00282           as part of the 1993, 1994 DICOM Central Test Node project for, and
00283           under contract with, the Radiological Society of North America.
00284 
00285           THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND NEITHER RSNA NOR
00286           WASHINGTON UNIVERSITY MAKE ANY WARRANTY ABOUT THE SOFTWARE, ITS
00287           PERFORMANCE, ITS MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
00288           USE, FREEDOM FROM ANY COMPUTER DISEASES OR ITS CONFORMITY TO ANY
00289           SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND PERFORMANCE OF
00290           THE SOFTWARE IS WITH THE USER.
00291 
00292           Copyright of the software and supporting documentation is
00293           jointly owned by RSNA and Washington University, and free access
00294           is hereby granted as a license to use this software, copy this
00295           software and prepare derivative works based upon this software.
00296           However, any distribution of this software source code or
00297           supporting documentation or derivative works (source code and
00298           supporting documentation) must include the three paragraphs of
00299           the copyright notice.
00300 */
00301 /* Copyright marker.  Copyright will be inserted above.  Do not remove */
00302 /*
00303 ** @$=@$=@$=
00304 */
00305 /*
00306 **                              DICOM 93
00307 **                   Electronic Radiology Laboratory
00308 **                 Mallinckrodt Institute of Radiology
00309 **              Washington University School of Medicine
00310 **
00311 ** Module Name(s):
00312 ** Author, Date:        Stephen M. Moore, 14-Apr-1993
00313 ** Intent:              This module defines function prototypes for the
00314 **                      CONDITION facility which is used to record status
00315 **                      and error messages on a stack.
00316 ** Last Update:         $Author: rwcox $, $Date: 2002/10/29 20:47:44 $
00317 ** Source File:         $RCSfile: mri_dicom_hdr.h,v $
00318 ** Revision:            $Revision: 1.8 $
00319 ** Status:              $State: Exp $
00320 */
00321 
00322 #ifndef COND_IS_IN
00323 #define COND_IS_IN 1
00324 
00325 #include <stdio.h>
00326 
00327 #ifdef  __cplusplus
00328 extern "C" {
00329 #endif
00330 
00331 CONDITION COND_PushCondition(CONDITION cond, char *controlString,...);
00332 CONDITION
00333 COND_ExtractConditions(CTNBOOLEAN(*callback) ());
00334 CONDITION
00335 COND_TopCondition(CONDITION * condition, char *text,
00336                   unsigned long maxlength);
00337 CONDITION COND_PopCondition(CTNBOOLEAN clearstack);
00338 CONDITION COND_EstablishCallback(void (*callback) ());
00339 void COND_DumpConditions(void);
00340 void COND_CopyText(char *txt, size_t length);
00341 void COND_WriteConditions(FILE * lfp);
00342 
00343 /*  Now define the fixed values for conditions returned by this
00344 **  package.  Note that FAC_COND is used to generate these
00345 **  conditions.  This should be defined in some global include
00346 **  file so that we can keep all of the facilities straight.
00347 */
00348 
00349 #define COND_NORMAL     /* Successful return */ \
00350         FORM_COND(FAC_COND, SEV_SUCC, 1)
00351 
00352 
00353 #ifdef  __cplusplus
00354 }
00355 #endif
00356 
00357 #endif
00358 /*
00359           Copyright (C) 1993, RSNA and Washington University
00360 
00361           The software and supporting documentation for the Radiological
00362           Society of North America (RSNA) 1993 Digital Imaging and
00363           Communications in Medicine (DICOM) Demonstration were developed
00364           at the
00365                   Electronic Radiology Laboratory
00366                   Mallinckrodt Institute of Radiology
00367                   Washington University School of Medicine
00368                   510 S. Kingshighway Blvd.
00369                   St. Louis, MO 63110
00370           as part of the 1993 DICOM Central Test Node project for, and
00371           under contract with, the Radiological Society of North America.
00372 
00373           THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND NEITHER RSNA NOR
00374           WASHINGTON UNIVERSITY MAKE ANY WARRANTY ABOUT THE SOFTWARE, ITS
00375           PERFORMANCE, ITS MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
00376           USE, FREEDOM FROM ANY COMPUTER DISEASES OR ITS CONFORMITY TO ANY
00377           SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND PERFORMANCE OF
00378           THE SOFTWARE IS WITH THE USER.
00379 
00380           Copyright of the software and supporting documentation is
00381           jointly owned by RSNA and Washington University, and free access
00382           is hereby granted as a license to use this software, copy this
00383           software and prepare derivative works based upon this software.
00384           However, any distribution of this software source code or
00385           supporting documentation or derivative works (source code and
00386           supporting documentation) must include the three paragraphs of
00387           the copyright notice.
00388 */
00389 /*
00390 ** @$=@$=@$=
00391 */
00392 /*
00393 **                              DICOM 93
00394 **                   Electronic Radiology Laboratory
00395 **                 Mallinckrodt Institute of Radiology
00396 **              Washington University School of Medicine
00397 **
00398 ** Module Name(s):
00399 ** Author, Date:        Thomas R. Leith, xx-May-92
00400 ** Intent:              This module defines private structures
00401 **                      used by the LST facility.
00402 ** Last Update:         $Author: rwcox $, $Date: 2002/10/29 20:47:44 $
00403 ** Source File:         $RCSfile: mri_dicom_hdr.h,v $
00404 ** Revision:            $Revision: 1.8 $
00405 ** Status:              $State: Exp $
00406 */
00407 
00408 #ifdef  __cplusplus
00409 extern "C" {
00410 #endif
00411 
00412 #define LST_KEYS        1       /* Private defs override public ones */
00413 
00414 typedef struct lst_node {
00415     struct lst_node *next;      /* next node in list     */
00416     struct lst_node *previous;  /* previous node         */
00417     void *data;                 /* node data             */
00418 }   LST_NODE, *LST_NODEPTR;
00419 
00420 typedef struct lst_head {
00421     LST_NODE *head;             /* points at first node */
00422     LST_NODE *tail;             /* points at last node  */
00423     LST_NODE *current;          /* "    "  " node        */
00424     unsigned long count;        /* # of nodes in list   */
00425 }   LST_HEAD, *LST_HEADPTR;
00426 
00427 #ifdef  __cplusplus
00428 }
00429 #endif
00430 /*
00431           Copyright (C) 1993, RSNA and Washington University
00432 
00433           The software and supporting documentation for the Radiological
00434           Society of North America (RSNA) 1993 Digital Imaging and
00435           Communications in Medicine (DICOM) Demonstration were developed
00436           at the
00437                   Electronic Radiology Laboratory
00438                   Mallinckrodt Institute of Radiology
00439                   Washington University School of Medicine
00440                   510 S. Kingshighway Blvd.
00441                   St. Louis, MO 63110
00442           as part of the 1993 DICOM Central Test Node project for, and
00443           under contract with, the Radiological Society of North America.
00444 
00445           THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND NEITHER RSNA NOR
00446           WASHINGTON UNIVERSITY MAKE ANY WARRANTY ABOUT THE SOFTWARE, ITS
00447           PERFORMANCE, ITS MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
00448           USE, FREEDOM FROM ANY COMPUTER DISEASES OR ITS CONFORMITY TO ANY
00449           SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND PERFORMANCE OF
00450           THE SOFTWARE IS WITH THE USER.
00451 
00452           Copyright of the software and supporting documentation is
00453           jointly owned by RSNA and Washington University, and free access
00454           is hereby granted as a license to use this software, copy this
00455           software and prepare derivative works based upon this software.
00456           However, any distribution of this software source code or
00457           supporting documentation or derivative works (source code and
00458           supporting documentation) must include the three paragraphs of
00459           the copyright notice.
00460 */
00461 /*
00462 ** @$=@$=@$=
00463 */
00464 /*
00465 **                              DICOM 93
00466 **                   Electronic Radiology Laboratory
00467 **                 Mallinckrodt Institute of Radiology
00468 **              Washington University School of Medicine
00469 **
00470 ** Module Name(s):
00471 ** Author, Date:        Stephen M. Moore, 14-Apr-1993
00472 ** Intent:              This module defines several constants and function
00473 **                      prototypes for the LST facility which is used to
00474 **                      manipulate objects in linked lists.
00475 ** Last Update:         $Author: rwcox $, $Date: 2002/10/29 20:47:44 $
00476 ** Source File:         $RCSfile: mri_dicom_hdr.h,v $
00477 ** Revision:            $Revision: 1.8 $
00478 ** Status:              $State: Exp $
00479 */
00480 
00481 #ifndef LST_IS_IN
00482 #define LST_IS_IN
00483 
00484 #ifdef  __cplusplus
00485 extern "C" {
00486 #endif
00487 
00488 #define LST_K_BEFORE            0x00000000
00489 #define LST_K_AFTER             0xFFFFFFFF
00490 
00491 #ifndef LST_KEYS
00492 typedef void LST_HEAD;
00493 typedef void LST_NODE;
00494 #endif
00495 
00496 typedef unsigned long LST_END;
00497 
00498 LST_HEAD *LST_Create(void);
00499 CONDITION LST_Destroy(LST_HEAD ** list);
00500 CONDITION LST_Enqueue(LST_HEAD ** list, LST_NODE * node);
00501 CONDITION LST_Push(LST_HEAD ** list, LST_NODE * node);
00502 LST_NODE *LST_Dequeue(LST_HEAD ** list);
00503 LST_NODE *LST_Pop(LST_HEAD ** list);
00504 unsigned long LST_Count(LST_HEAD ** list);
00505 LST_NODE *LST_Head(LST_HEAD ** list);
00506 LST_NODE *LST_Current(LST_HEAD ** list);
00507 LST_NODE *LST_Tail(LST_HEAD ** list);
00508 CONDITION LST_Insert(LST_HEAD ** list, LST_NODE * node, LST_END where);
00509 LST_NODE *LST_Remove(LST_HEAD ** list, LST_END dir);
00510 LST_NODE *LST_Next(LST_HEAD ** list);
00511 LST_NODE *LST_Previous(LST_HEAD ** list);
00512 LST_NODE *LST_Position(LST_HEAD ** list, LST_NODE * node);
00513 CONDITION LST_Sort(LST_HEAD ** list, size_t nodeSize, int (*compare) ());
00514 LST_NODE *LST_Index(LST_HEAD ** list, int index);
00515 char *LST_Message(CONDITION cond);
00516 
00517 #define LST_Top(x) LST_Head((x))
00518 #define LST_Front(x) LST_Head((x))
00519 
00520 #define LST_NORMAL              /* Normal return from LST package */ \
00521         FORM_COND(FAC_LST, SEV_SUCC, 1)
00522 #define LST_LISTNOTEMPTY        /* Attempt to destroy list with elements */ \
00523         FORM_COND(FAC_LST, SEV_ERROR, 3)
00524 #define LST_BADEND              /* */ \
00525         FORM_COND(FAC_LST, SEV_ERROR, 5)
00526 #define LST_NOCURRENT   /* */ \
00527         FORM_COND(FAC_LST, SEV_ERROR, 7)
00528 
00529 #ifdef  __cplusplus
00530 }
00531 #endif
00532 
00533 #endif
00534 /*
00535           Copyright (C) 1993, 1994, RSNA and Washington University
00536 
00537           The software and supporting documentation for the Radiological
00538           Society of North America (RSNA) 1993, 1994 Digital Imaging and
00539           Communications in Medicine (DICOM) Demonstration were developed
00540           at the
00541                   Electronic Radiology Laboratory
00542                   Mallinckrodt Institute of Radiology
00543                   Washington University School of Medicine
00544                   510 S. Kingshighway Blvd.
00545                   St. Louis, MO 63110
00546           as part of the 1993, 1994 DICOM Central Test Node project for, and
00547           under contract with, the Radiological Society of North America.
00548 
00549           THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND NEITHER RSNA NOR
00550           WASHINGTON UNIVERSITY MAKE ANY WARRANTY ABOUT THE SOFTWARE, ITS
00551           PERFORMANCE, ITS MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
00552           USE, FREEDOM FROM ANY COMPUTER DISEASES OR ITS CONFORMITY TO ANY
00553           SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND PERFORMANCE OF
00554           THE SOFTWARE IS WITH THE USER.
00555 
00556           Copyright of the software and supporting documentation is
00557           jointly owned by RSNA and Washington University, and free access
00558           is hereby granted as a license to use this software, copy this
00559           software and prepare derivative works based upon this software.
00560           However, any distribution of this software source code or
00561           supporting documentation or derivative works (source code and
00562           supporting documentation) must include the three paragraphs of
00563           the copyright notice.
00564 */
00565 /* Copyright marker.  Copyright will be inserted above.  Do not remove */
00566 
00567 /*
00568 **                              DICOM 93
00569 **                   Electronic Radiology Laboratory
00570 **                 Mallinckrodt Institute of Radiology
00571 **              Washington University School of Medicine
00572 **
00573 ** Module Name(s):
00574 ** Author, Date:        Stephen M. Moore, 22-Apr-93
00575 ** Intent:              This file contains definitions and function prototypes
00576 **                      for the OBJECT facility which allows the user to
00577 **                      manipulate DICOM Objects.
00578 ** Last Update:         $Author: rwcox $, $Date: 2002/10/29 20:47:44 $
00579 ** Source File:         $RCSfile: mri_dicom_hdr.h,v $
00580 ** Revision:            $Revision: 1.8 $
00581 ** Status:              $State: Exp $
00582 */
00583 
00584 #ifndef DCM_OBJECTS_IS_IN
00585 #define DCM_OBJECTS_IS_IN 1
00586 
00587 #ifdef  __cplusplus
00588 extern "C" {
00589 #endif
00590 
00591 
00592 typedef void *DCM_OBJECT;
00593 
00594 typedef enum {
00595     DCM_AE,                     /* Application Entity */
00596     DCM_AS,                     /* Age string */
00597     DCM_AT,                     /* Attribute tag */
00598     DCM_CS,                     /* Control string */
00599     DCM_DA,                     /* Date */
00600     DCM_DD,                     /* Data set */
00601     DCM_DS,                     /* Decimal string */
00602     DCM_FD,                     /* Floating double */
00603     DCM_FL,                     /* Float */
00604     DCM_IS,                     /* Integer string */
00605     DCM_LO,                     /* Long string */
00606     DCM_LT,                     /* Long text */
00607     DCM_OT,                     /* Other binary value */
00608     DCM_SH,                     /* Short string */
00609     DCM_SL,                     /* Signed long */
00610     DCM_SQ,                     /* Sequence of items */
00611     DCM_SS,                     /* Signed short */
00612     DCM_ST,                     /* Short text */
00613     DCM_TM,                     /* Time */
00614     DCM_UI,                     /* Unique identifier (UID) */
00615     DCM_UL,                     /* Unsigned long */
00616     DCM_UN,                     /* Unknown (DICOM Unknown) */
00617     DCM_US,                     /* Unsigned short */
00618     /*DCM_UNKNOWN,*/            /* Unknown/unspecified (non-standard) */
00619     DCM_RET,                    /* Retired */
00620     DCM_CTX,                    /* Context sensitive (non-standard) */
00621     DCM_PN,                     /* Person Name */
00622     DCM_OB,                     /* Other, byte */
00623     DCM_OW,                     /* Other, word */
00624     DCM_DT,                     /* Date/Time */
00625     DCM_DLM,                    /* Delimiter (non-standard) */
00626     DCM_UT                      /* Unlimited text */
00627 }   DCM_VALUEREPRESENTATION;
00628 
00629 typedef enum {
00630     DCM_OBJECTUNKNOWN,
00631     DCM_OBJECTCOMMAND,
00632     DCM_OBJECTIMAGE,
00633     DCM_OBJECTELEMENTLIST
00634 }   DCM_OBJECTTYPE;
00635 
00636 #if LONGSIZE == 64
00637 typedef unsigned int DCM_TAG;
00638 #define DCM_MAKETAG(g, e) (((((unsigned int)(g)) << 16) & 0xffff0000) \
00639 | ((unsigned int)(e) & 0xffff))
00640 #else
00641 typedef unsigned long DCM_TAG;
00642 #define DCM_MAKETAG(g, e) (((((unsigned long)(g)) << 16) & 0xffff0000) \
00643 | ((unsigned long)(e) & 0xffff))
00644 
00645 #endif
00646 
00647 #define DCM_TAG_GROUP(t) (unsigned short) ((t) >> 16)
00648 #define DCM_TAG_ELEMENT(t) (unsigned short) ((t) & 0xffff)
00649 
00650 
00651 typedef struct {
00652     DCM_TAG tag;
00653     DCM_VALUEREPRESENTATION representation;
00654     char description[48];
00655     unsigned long multiplicity;
00656     U32 length;
00657     union {
00658         char *string;
00659         char **stringArray;
00660         short *ss;
00661         S32 *sl;
00662         unsigned short *us;
00663         U32 *ul;
00664         void *ot;
00665         unsigned short *ow;
00666         unsigned char *ob;
00667         LST_HEAD *sq;
00668         DCM_TAG *at;
00669         LST_HEAD* fragments;
00670     }   d;
00671     off_t data_offset ;    /* RWCox: offset into file, if > 0 */
00672 }   DCM_ELEMENT;
00673 
00674 typedef struct {
00675     void *reserved[2];
00676     DCM_ELEMENT e;
00677 }   DCM_ELEMENT_NODE;
00678 typedef struct {
00679     void *reserved[2];
00680     DCM_TAG tag;
00681 }   DCM_TAG_NODE;
00682 
00683 typedef struct {
00684     DCM_ELEMENT e;
00685     long flag;
00686     long *flagAddress;
00687 }   DCM_FLAGGED_ELEMENT;
00688 
00689 typedef struct {
00690     void *reserved[2];
00691     DCM_OBJECT *object;
00692 }   DCM_SEQUENCE_ITEM;
00693 
00694 typedef struct {
00695   void* reserved[2];
00696   U32 length;
00697   unsigned char* fragment;
00698 } DCM_FRAGMENT_ITEM;
00699 
00700 
00701 #define DCM_PREAMBLELENGTH 128
00702 
00703 #define DCM_FILEMETA_IMPLEMENTATIONVERSIONNAME  (1 << 0)
00704 #define DCM_FILEMETA_SOURCEAPPLICATIONENTITYTITLE (1 << 1)
00705 #define DCM_FILEMETA_PRIVATEINFORMATIONCREATORUID (1 << 2)
00706 #define DCM_FILEMETA_PRIVATEINFORMATION                 (1 << 3)
00707 
00708 typedef struct {
00709     long flag;
00710     unsigned char preamble[DCM_PREAMBLELENGTH];
00711     unsigned char fileMetaInformationVersion[2];
00712     char mediaStorageSOPClassUID[DICOM_UI_LENGTH + 1];
00713     char mediaStorageSOPInstanceUID[DICOM_UI_LENGTH + 1];
00714     char transferSyntaxUID[DICOM_UI_LENGTH + 1];
00715     char implementationClassUID[DICOM_UI_LENGTH + 1];
00716     char implementationVersionName[DICOM_SH_LENGTH + 1];
00717     char sourceApplicationEntityTitle[DICOM_AE_LENGTH + 1];
00718     char privateInformationCreatorUID[DICOM_UI_LENGTH + 1];
00719     unsigned char *privateInformation;
00720     unsigned long privateInformationLength;
00721 }   DCM_FILE_META;
00722 
00723 
00724 #define DCM_ORDERMASK           0x7f
00725 #define DCM_ORDERNATIVE         0x01
00726 #define DCM_ORDERLITTLEENDIAN   0x02
00727 #define DCM_ORDERBIGENDIAN      0x03
00728 #define DCM_EXPLICITLITTLEENDIAN        0x04
00729 #define DCM_EXPLICITBIGENDIAN           0x05
00730 #define DCM_ENCAPSULATEDPIXELS  0x06
00731 
00732 #define DCM_FILEFORMATMASK      0x80
00733 #define DCM_PART10FILE          0x80
00734 
00735 #define DCM_CONVERTMASK         0x100
00736 #define DCM_FORMATCONVERSION    0x100
00737 
00738 #define DCM_DELETEMASK          0x200
00739 #define DCM_DELETEONCLOSE       0x200
00740 
00741 #define DCM_GROUPLENGTHMASK     0x400
00742 #define DCM_NOGROUPLENGTH       0x400
00743 
00744 #define DCM_SEQUENCELENGTHMASK  0x800
00745 #define DCM_UNSPECIFIEDLENGTHFLAG 0x800
00746 
00747 #define DCM_LENGTHTOENDMASK     0x1000
00748 #define DCM_USELENGTHTOEND      0x1000
00749 
00750 #define DCM_REPEATELEMENTSMASK  0x2000
00751 #define DCM_ALLOWREPEATELEMENTS 0x2000
00752 
00753 /* These bits allow us to modify the file name during the open
00754 ** to map from upper to lower case and \ to / to allow compatibility
00755 ** between Unix filenames and Win filenames.
00756 */
00757 #define DCM_FILENAMEMASK        0x2000
00758 #define DCM_TRYFILENAMECHANGE   0x2000
00759 
00760 /* These bits allow us to accept objects with explicit VR with improper
00761 ** VRs (according to our dictionary).  Examples are people who send
00762 ** a VR of US when we expect SS.
00763 */
00764 #define DCM_VRMASK              0x4000
00765 #define DCM_ACCEPTVRMISMATCH    0x4000
00766 
00767 #define DCM_SPECIALFORMATMASK   0x8000
00768 #define DCM_EFILM               0x8000
00769 
00770 /* Define prototypes for functions provided by this facility.
00771 */
00772 CONDITION DCM_OpenFile(const char *name, unsigned long opt, DCM_OBJECT ** object);
00773 CONDITION DCM_CreateObject(DCM_OBJECT ** obj, unsigned long opt);
00774 CONDITION DCM_CopyObject(DCM_OBJECT ** src, DCM_OBJECT** dst);
00775 CONDITION DCM_MergeObject(DCM_OBJECT ** src, DCM_OBJECT** dst);
00776 CONDITION DCM_AddElement(DCM_OBJECT ** obj, DCM_ELEMENT * ele);
00777 CONDITION DCM_AddSequenceElement(DCM_OBJECT ** obj, DCM_ELEMENT * ele);
00778 CONDITION DCM_RemoveElement(DCM_OBJECT ** obj, DCM_TAG tag);
00779 CONDITION DCM_RemoveGroup(DCM_OBJECT ** callerObject, unsigned short group);
00780 CONDITION
00781 DCM_ImportStream(unsigned char *buf, unsigned long length,
00782                  unsigned long opt, DCM_OBJECT ** rntObj);
00783 CONDITION
00784 DCM_ReadStream(DCM_OBJECT ** obj, unsigned long opt, long size, void *ctx,
00785           CONDITION(*rd) (void *ctx, void *buf, int toRead, int *bytesRead),
00786                CONDITION(*sk) (void *ctx, int offset, int flag));
00787 CONDITION DCM_CloseObject(DCM_OBJECT ** obj);
00788 
00789 typedef
00790 CONDITION(DCM_EXPORT_STREAM_CALLBACK) (void *buf, U32 bytesExported, int lastFlag, void *ctx);
00791 
00792 CONDITION
00793 DCM_ExportStream(DCM_OBJECT ** obj, unsigned long opt, void *buf,
00794                  unsigned long maxlen, DCM_EXPORT_STREAM_CALLBACK* callback,
00795                  void *ctx);
00796 CONDITION
00797 DCM_GetElementValue(DCM_OBJECT ** obj, DCM_ELEMENT * element,
00798                     U32 * rtnLength, void **ctx);
00799 char*
00800 DCM_GetString(DCM_OBJECT** obj, DCM_TAG tag);
00801 
00802 CONDITION
00803 DCM_GetElement(DCM_OBJECT ** obj, DCM_TAG tag,
00804                DCM_ELEMENT * attribute);
00805 CONDITION
00806 DCM_GetElementSize(DCM_OBJECT ** obj, DCM_TAG tag,
00807                    U32 * retlen);
00808 CONDITION
00809 DCM_GetElementValueOffset(DCM_OBJECT **obj, DCM_ELEMENT *element,
00810                 unsigned long offset);
00811 typedef
00812 CONDITION(DCM_GET_COMPRESSED_CALLBACK) (void *buf, U32 bytesExported,
00813         int index, int startFlag, int lastFlag, int startOfFragment, void *ctx);
00814 
00815 CONDITION
00816 DCM_GetCompressedValue(DCM_OBJECT ** obj, DCM_TAG tag, void *buf,
00817         size_t bufSize, DCM_GET_COMPRESSED_CALLBACK *callback, void *ctx);
00818 
00819 CONDITION DCM_GetObjectSize(DCM_OBJECT ** obj, unsigned long *retlen);
00820 CONDITION DCM_DumpElements(DCM_OBJECT ** obj, long vm);
00821 CONDITION DCM_FormatElements(DCM_OBJECT ** obj, long vm, const char* prefix);
00822 CONDITION DCM_LookupElement(DCM_ELEMENT * attribute);
00823 CONDITION
00824 DCM_GroupDictionary(unsigned short group, void *ctx,
00825          void (*callback) (unsigned short g, char *description, void *ctx));
00826 CONDITION
00827 DCM_ElementDictionary(DCM_TAG tag, void *ctx,
00828                       void (*callback) (DCM_TAG t, char *description, DCM_VALUEREPRESENTATION r, void *ctx));
00829 char *DCM_Message(CONDITION cond);
00830 void DCM_Debug(CTNBOOLEAN flag);
00831 CONDITION DCM_WriteFile(DCM_OBJECT ** obj, unsigned long opt, const char *file);
00832 CONDITION 
00833 DCM_ComputeExportLength(DCM_OBJECT ** obj, unsigned long opt,
00834                         unsigned long *length);
00835 CONDITION
00836 DCM_ModifyElements(DCM_OBJECT ** obj, DCM_ELEMENT * element,
00837              int count, DCM_FLAGGED_ELEMENT * flaggedElement, int flagCount,
00838                    int *updateCount);
00839 CONDITION DCM_ListToString(LST_HEAD * list, long offset, char **string);
00840 CONDITION
00841 DCM_ParseObject(DCM_OBJECT ** obj, DCM_ELEMENT * list, int count,
00842       DCM_FLAGGED_ELEMENT * flaggedElement, int flagCount, int *parseCount);
00843 CONDITION
00844 DCM_ScanParseObject(DCM_OBJECT ** object, void *buf, size_t bufferSize,
00845     DCM_FLAGGED_ELEMENT * elementVector, int vectorLength,
00846     CONDITION(*callback) (const DCM_ELEMENT* e, void* ctx),
00847                     void *ctx);
00848 CTNBOOLEAN DCM_IsString(DCM_VALUEREPRESENTATION representation);
00849 CONDITION
00850 DCM_GetSequenceList(DCM_OBJECT ** object, DCM_TAG tag, LST_HEAD ** list);
00851 CONDITION
00852 DCM_GetSequenceElement(DCM_OBJECT** obj, DCM_TAG top, DCM_ELEMENT* e);
00853 CONDITION
00854 DCM_GetSequenceByOffset(DCM_OBJECT ** object, DCM_TAG tag, unsigned long offset,
00855                         DCM_OBJECT ** rtnObject);
00856 CONDITION
00857 DCM_GetElementValueList(DCM_OBJECT ** object, DCM_TAG tag,
00858                  size_t structureSize, long stringOffset, LST_HEAD ** list);
00859 CONDITION
00860 DCM_AddElementList(DCM_OBJECT ** callerObject, DCM_ELEMENT * element,
00861                    LST_HEAD * list, long offset);
00862 CONDITION
00863 DCM_GetFileMeta(DCM_OBJECT ** callerObject, DCM_FILE_META ** fileMeta);
00864 CONDITION
00865 DCM_SetFileMeta(DCM_OBJECT ** callerObject, DCM_FILE_META * fileMeta);
00866 CONDITION
00867 DCM_FreeFileMeta(DCM_FILE_META ** fileMeta);
00868 CONDITION
00869 DCM_DefaultFileMeta(DCM_OBJECT ** object, DCM_FILE_META ** fileMeta);
00870 CONDITION
00871 DCM_CompareAttributes(DCM_OBJECT **o1, DCM_OBJECT **o2,
00872                       void (*callback) (const DCM_ELEMENT *e1,
00873                                         const DCM_ELEMENT *e2,
00874                                         void *ctx),
00875                         void *ctx);
00876 
00877 CTNBOOLEAN
00878 DCM_GroupPresent(DCM_OBJECT** callerObject, U16 group);
00879 
00880 CONDITION
00881 DCM_GetFirstElement(DCM_OBJECT** callerObject, DCM_ELEMENT** element);
00882 CONDITION
00883 DCM_GetNextElement(DCM_OBJECT** callerObject, DCM_ELEMENT** element);
00884 
00885 CONDITION
00886 DCM_AddFragment(DCM_OBJECT** callerObject, void* fragment, U32 fragmentLength);
00887 
00888 #define DCM_NORMAL              /* Normal return from DCM package */ \
00889         FORM_COND(FAC_DCM, SEV_SUCC, 1)
00890 #define DCM_FILEOPENFAILED      /* Failed to open file requested by caller */ \
00891         FORM_COND(FAC_DCM, SEV_ERROR, 2)
00892 #define DCM_FILEACCESSERROR     /* Error accessing open file */ \
00893         FORM_COND(FAC_DCM, SEV_ERROR, 3)
00894 #define DCM_OBJECTCREATEFAILED  /* Failed to create a new DCM object */ \
00895         FORM_COND(FAC_DCM, SEV_ERROR, 4)
00896 #define DCM_NULLOBJECT  /* Null object passed to DCM routine */ \
00897         FORM_COND(FAC_DCM, SEV_ERROR, 5)
00898 #define DCM_ILLEGALOBJECT       /* Illegal object passed to DCM routine */ \
00899         FORM_COND(FAC_DCM, SEV_ERROR, 6)
00900 #define DCM_ELEMENTNOTFOUND     /* Requested element not found in object */ \
00901         FORM_COND(FAC_DCM, SEV_ERROR, 7)
00902 #define DCM_ILLEGALSTREAMLENGTH /* Illegal length for stream (too short) */ \
00903         FORM_COND(FAC_DCM, SEV_ERROR, 8)
00904 #define DCM_ELEMENTCREATEFAILED /* Failed to create a new DCM element */ \
00905         FORM_COND(FAC_DCM, SEV_ERROR, 9)
00906 #define DCM_UNRECOGNIZEDGROUP   /* Unrecognized group */ \
00907         FORM_COND(FAC_DCM, SEV_WARN, 10)
00908 #define DCM_UNRECOGNIZEDELEMENT /* Unrecognized element */ \
00909         FORM_COND(FAC_DCM, SEV_WARN, 11)
00910 #define DCM_ELEMENTOUTOFORDER   /* Element out of order in DCM stream */ \
00911         FORM_COND(FAC_DCM, SEV_ERROR, 12)
00912 #define DCM_LISTFAILURE         /* Failure by a list routine */ \
00913         FORM_COND(FAC_DCM, SEV_ERROR, 13)
00914 #define DCM_ILLEGALOPTION       /* Illegal option for processing stream */ \
00915         FORM_COND(FAC_DCM, SEV_ERROR, 14)
00916 #define DCM_ILLEGALADD          /* Illegal Add of an element */ \
00917         FORM_COND(FAC_DCM, SEV_ERROR, 19)
00918 #define DCM_GETINCOMPLETE       /* Incomplete data get operation */ \
00919         FORM_COND(FAC_DCM, SEV_WARN, 20)
00920 #define DCM_ILLEGALCONTEXT      /* Illegal context value */ \
00921         FORM_COND(FAC_DCM, SEV_ERROR, 21)
00922 #define DCM_ILLEGALREPRESENTATION       /* Illegal rep given by caller */ \
00923         FORM_COND(FAC_DCM, SEV_ERROR, 22)
00924 #define DCM_UNEVENELEMENTLENGTH /* Uneven element data length */ \
00925         FORM_COND(FAC_DCM, SEV_ERROR, 23)
00926 #define DCM_ELEMENTLENGTHERROR  /* Element length > remaining bytes in data */\
00927         FORM_COND(FAC_DCM, SEV_ERROR, 25)
00928 #define DCM_GROUPNOTFOUND       /* Did not find requested group */ \
00929         FORM_COND(FAC_DCM, SEV_ERROR, 27)
00930 #define DCM_FILECREATEFAILED    /* Failed to create a file */ \
00931         FORM_COND(FAC_DCM, SEV_ERROR, 28)
00932 #define DCM_FILEIOERROR         /* File I/O error */ \
00933         FORM_COND(FAC_DCM, SEV_ERROR, 29)
00934 #define DCM_INSERTFAILED        /* Failed to insert a new element */ \
00935         FORM_COND(FAC_DCM, SEV_ERROR, 30)
00936 #define DCM_CANNOTGETSEQUENCEVALUE      FORM_COND(FAC_DCM, SEV_ERROR, 31)
00937 #define DCM_FILEDELETEFAILED            FORM_COND(FAC_DCM, SEV_ERROR, 32)
00938 #define DCM_MALLOCFAILURE               FORM_COND(FAC_DCM, SEV_ERROR, 33)
00939 #define DCM_NULLADDRESS                 FORM_COND(FAC_DCM, SEV_ERROR, 34)
00940 #define DCM_UNEXPECTEDREPRESENTATION    FORM_COND(FAC_DCM, SEV_ERROR, 35)
00941 #define DCM_BADELEMENTINGROUP           FORM_COND(FAC_DCM, SEV_ERROR, 36)
00942 #define DCM_CALLBACKABORTED             FORM_COND(FAC_DCM, SEV_WARN, 37)
00943 #define DCM_READSTREAMFAILED            FORM_COND(FAC_DCM, SEV_ERROR, 38)
00944 #define DCM_STREAMCOMPLETE              FORM_COND(FAC_DCM, SEV_SUCC, 39)
00945 #define DCM_UNRECOGNIZEDVRCODE          FORM_COND(FAC_DCM, SEV_ERROR, 40)
00946 #define DCM_VRMISMATCH                  FORM_COND(FAC_DCM, SEV_ERROR, 41)
00947 #define DCM_EXPORTBUFFERTOOSMALL        FORM_COND(FAC_DCM, SEV_ERROR, 42)
00948 #define DCM_BADOFFSET                   FORM_COND(FAC_DCM, SEV_ERROR, 43)
00949 #define DCM_BADLENGTH                   FORM_COND(FAC_DCM, SEV_ERROR, 44)
00950 #define DCM_NOTASEQUENCE                FORM_COND(FAC_DCM, SEV_ERROR, 45)
00951 #define DCM_GENERALWARNING              FORM_COND(FAC_DCM, SEV_WARN, 46)
00952 #define DCM_EMPTYOBJECT                 FORM_COND(FAC_DCM, SEV_WARN, 47)
00953 #define DCM_GETNEXTELEMENTCOMPLETE      FORM_COND(FAC_DCM, SEV_SUCC, 48)
00954 #define DCM_REPEATEDELEMENT             FORM_COND(FAC_DCM, SEV_WARN, 49)
00955 #define DCM_NOFRAGMENTSINOBJECT         FORM_COND(FAC_DCM, SEV_ERROR, 50)
00956 #define DCM_UNEVENFRAGMENTLENGTH        FORM_COND(FAC_DCM, SEV_ERROR, 51)
00957 
00958 
00959 /*  Define all of the known groups and elements in those groups.  This
00960 **  will allow coders to use symbolic references to these rather than
00961 **  remember the values.
00962 */
00963 
00964 /*  Define the known groups
00965 */
00966 #define DCM_GROUPCOMMAND                0x0000
00967 #define DCM_GROUPFILEMETA               0x0002
00968 #define DCM_GROUPBASICDIRINFO           0x0004  /* Part 10, Media */
00969 #define DCM_GROUPIDENTIFYING            0x0008
00970 #define DCM_GROUPPATIENTINFO            0x0010
00971 #define DCM_GROUPACQUISITION            0x0018
00972 #define DCM_GROUPRELATIONSHIP           0x0020
00973 #define DCM_GROUPIMAGE                  0x0028
00974 #define DCM_GROUPSTUDY                  0x0032
00975 #define DCM_GROUPVISIT                  0x0038
00976 #define DCM_GROUPWAVEFORM               0x003a
00977 #define DCM_GRPPROCEDURE                0x0040
00978 #define DCM_GROUPDEVICE                 0x0050
00979 #define DCM_GROUPNMIMAGE                0x0054
00980 #define DCM_GROUPGRAPHICS               0x0070
00981 #define DCM_GROUPMEDIA                  0x0088
00982 #define DCM_GROUPBASICFILMSESSION       0x2000
00983 #define DCM_GROUPBASICFILMBOX           0x2010
00984 #define DCM_GROUPBASICIMAGEBOX          0x2020
00985 #define DCM_GROUPBASICANNOTATIONBOX     0x2030
00986 #define DCM_GROUPBASICIMAGEOVERLAYBOX   0x2040
00987 #define DCM_GROUPPRINTJOB               0x2100
00988 #define DCM_GROUPPRINTER                0x2110
00989 #define DCM_GROUPTEXT                   0x4000
00990 #define DCM_GROUPRESULTS                0x4008
00991 #define DCM_GROUPCURVE                  0x5000
00992 #define DCM_GROUPOVERLAY                0x6000
00993 #define DCM_GROUPPIXEL                  0x7fe0
00994 #define DCM_GROUPPAD                    0xfffc
00995 #define DCM_GROUPDELIMITER              0xfffe
00996 
00997 
00998 #define DCM_CMDGROUPLENGTH              DCM_MAKETAG(DCM_GROUPCOMMAND,0x0000)
00999 #define DCM_CMDAFFECTEDCLASSUID         DCM_MAKETAG(DCM_GROUPCOMMAND,0x0002)
01000 #define DCM_CMDREQUESTEDCLASSUID        DCM_MAKETAG(DCM_GROUPCOMMAND,0x0003)
01001 #define DCM_CMDCOMMANDFIELD             DCM_MAKETAG(DCM_GROUPCOMMAND,0x0100)
01002 #define DCM_CMDMSGID                    DCM_MAKETAG(DCM_GROUPCOMMAND,0x0110)
01003 #define DCM_CMDMSGIDRESPOND             DCM_MAKETAG(DCM_GROUPCOMMAND,0x0120)
01004 #define DCM_CMDMOVEDESTINATION          DCM_MAKETAG(DCM_GROUPCOMMAND,0x0600)
01005 #define DCM_CMDPRIORITY                 DCM_MAKETAG(DCM_GROUPCOMMAND,0x0700)
01006 #define DCM_CMDDATASETTYPE              DCM_MAKETAG(DCM_GROUPCOMMAND,0x0800)
01007 #define DCM_CMDSTATUS                   DCM_MAKETAG(DCM_GROUPCOMMAND,0x0900)
01008 #define DCM_CMDOFFENDINGELEMENT         DCM_MAKETAG(DCM_GROUPCOMMAND,0x0901)
01009 #define DCM_CMDERRORCOMMENT             DCM_MAKETAG(DCM_GROUPCOMMAND,0x0902)
01010 #define DCM_CMDERRORID                  DCM_MAKETAG(DCM_GROUPCOMMAND,0x0903)
01011 #define DCM_CMDAFFECTEDINSTANCEUID      DCM_MAKETAG(DCM_GROUPCOMMAND,0x1000)
01012 #define DCM_CMDREQUESTEDINSTANCEUID     DCM_MAKETAG(DCM_GROUPCOMMAND,0x1001)
01013 #define DCM_CMDEVENTTYPEID              DCM_MAKETAG(DCM_GROUPCOMMAND,0x1002)
01014 #define DCM_CMDATTRIBUTEIDLIST          DCM_MAKETAG(DCM_GROUPCOMMAND,0x1005)
01015 #define DCM_CMDACTIONTYPEID             DCM_MAKETAG(DCM_GROUPCOMMAND,0x1008)
01016 #define DCM_CMDREMAININGSUBOPERATIONS   DCM_MAKETAG(DCM_GROUPCOMMAND,0x1020)
01017 #define DCM_CMDCOMPLETEDSUBOPERATIONS   DCM_MAKETAG(DCM_GROUPCOMMAND,0x1021)
01018 #define DCM_CMDFAILEDSUBOPERATIONS      DCM_MAKETAG(DCM_GROUPCOMMAND,0x1022)
01019 #define DCM_CMDWARNINGSUBOPERATIONS     DCM_MAKETAG(DCM_GROUPCOMMAND,0x1023)
01020 #define DCM_CMDMOVEAETITLE              DCM_MAKETAG(DCM_GROUPCOMMAND,0x1030)
01021 #define DCM_CMDMOVEMESSAGEID            DCM_MAKETAG(DCM_GROUPCOMMAND,0x1031)
01022 
01023 /*  Define the legal values for the Command Field in the COMMAND group
01024 */
01025 
01026 #define DCM_STORE_REQUEST               0x0001
01027 #define DCM_STORE_RESPONSE              0x8001
01028 #define DCM_GET_REQUEST                 0x0010
01029 #define DCM_GET_RESPONSE                0x8010
01030 #define DCM_FIND_REQUEST                0x0020
01031 #define DCM_FIND_RESPONSE               0x8020
01032 #define DCM_MOVE_REQUEST                0x0021
01033 #define DCM_MOVE_RESPONSE               0x8021
01034 #define DCM_ECHO_REQUEST                0x0030
01035 #define DCM_ECHO_RESPONSE               0x8030
01036 #define DCM_CANCEL_REQUEST              0x0fff
01037 #define DCM_CANCEL_RESPONSE             0x8fff
01038 #define DCM_DIALOG_REQUEST              0x0080
01039 #define DCM_DIALOG_RESPONSE             0x8080
01040 #define DCM_N_EVENT_REPORT_REQUEST      0x0100
01041 #define DCM_N_EVENT_REPORT_RESPONSE     0x8100
01042 #define DCM_N_GET_REQUEST               0x0110
01043 #define DCM_N_GET_RESPONSE              0x8110
01044 #define DCM_N_SET_REQUEST               0x0120
01045 #define DCM_N_SET_RESPONSE              0x8120
01046 #define DCM_N_ACTION_REQUEST            0x0130
01047 #define DCM_N_ACTION_RESPONSE           0x8130
01048 #define DCM_N_CREATE_REQUEST            0x0140
01049 #define DCM_N_CREATE_RESPONSE           0x8140
01050 #define DCM_N_DELETE_REQUEST            0x0150
01051 #define DCM_N_DELETE_RESPONSE           0x8150
01052 
01053 /*  Define the elements in the COMMAND group
01054 */
01055 #define DCM_CMDLENGTHTOEND              DCM_MAKETAG(DCM_GROUPCOMMAND,0x0001)
01056 #define DCM_CMDRECOGNITIONCODE          DCM_MAKETAG(DCM_GROUPCOMMAND,0x0010)
01057 #define DCM_CMDINITIATOR                DCM_MAKETAG(DCM_GROUPCOMMAND,0x0200)
01058 #define DCM_CMDRECEIVER                 DCM_MAKETAG(DCM_GROUPCOMMAND,0x0300)
01059 #define DCM_CMDFINDLOCATION             DCM_MAKETAG(DCM_GROUPCOMMAND,0x0400)
01060 #define DCM_CMDNUMBERMATCHES            DCM_MAKETAG(DCM_GROUPCOMMAND,0x0850)
01061 #define DCM_CMDRESPSEQNUMBER            DCM_MAKETAG(DCM_GROUPCOMMAND,0x0860)
01062 #define DCM_CMDDIALOGRECEIVOR           DCM_MAKETAG(DCM_GROUPCOMMAND,0x4000)
01063 #define DCM_CMDTERMINALTYPE             DCM_MAKETAG(DCM_GROUPCOMMAND,0x4010)
01064 #define DCM_CMDMSGSETID                 DCM_MAKETAG(DCM_GROUPCOMMAND,0x5010)
01065 #define DCM_CMDENDMSGD                  DCM_MAKETAG(DCM_GROUPCOMMAND,0x5020)
01066 #define DCM_CMDDISPLAYFORMAT            DCM_MAKETAG(DCM_GROUPCOMMAND,0x5110)
01067 #define DCM_CMDPAGEPOSITIONID           DCM_MAKETAG(DCM_GROUPCOMMAND,0x5120)
01068 #define DCM_CMDTEXTFORMATID             DCM_MAKETAG(DCM_GROUPCOMMAND,0x5130)
01069 #define DCM_CMDNORREV                   DCM_MAKETAG(DCM_GROUPCOMMAND,0x5140)
01070 #define DCM_CMDADDGRAYSCALE             DCM_MAKETAG(DCM_GROUPCOMMAND,0x5150)
01071 #define DCM_CMDBORDERS                  DCM_MAKETAG(DCM_GROUPCOMMAND,0x5160)
01072 #define DCM_CMDCOPIES                   DCM_MAKETAG(DCM_GROUPCOMMAND,0x5170)
01073 #define DCM_CMDMAGNIFICATIONTYPE        DCM_MAKETAG(DCM_GROUPCOMMAND,0x5180)
01074 #define DCM_CMDERASE                    DCM_MAKETAG(DCM_GROUPCOMMAND,0x5190)
01075 #define DCM_CMDPRINT                    DCM_MAKETAG(DCM_GROUPCOMMAND,0x51a0)
01076 #define DCM_CMDOVERLAYS                 DCM_MAKETAG(DCM_GROUPCOMMAND,0x51b0)
01077 
01078 /* Define the elements in the File Meta Header Group (0x0002) */
01079 
01080 #define DCM_METAGROUPLENGTH             DCM_MAKETAG(DCM_GROUPFILEMETA,0x0000)
01081 #define DCM_METAINFORMATIONVERSION      DCM_MAKETAG(DCM_GROUPFILEMETA,0x0001)
01082 #define DCM_METAMEDIASTORAGESOPCLASS    DCM_MAKETAG(DCM_GROUPFILEMETA,0x0002)
01083 #define DCM_METAMEDIASTORAGESOPINSTANCE DCM_MAKETAG(DCM_GROUPFILEMETA,0x0003)
01084 #define DCM_METATRANSFERSYNTAX          DCM_MAKETAG(DCM_GROUPFILEMETA,0x0010)
01085 #define DCM_METAIMPLEMENTATIONCLASS     DCM_MAKETAG(DCM_GROUPFILEMETA,0x0012)
01086 #define DCM_METAIMPLEMENTATIONVERSION   DCM_MAKETAG(DCM_GROUPFILEMETA,0x0013)
01087 #define DCM_METASOURCEAETITLE           DCM_MAKETAG(DCM_GROUPFILEMETA,0x0016)
01088 #define DCM_METAPRIVATEINFORMATIONCREATOR DCM_MAKETAG(DCM_GROUPFILEMETA,0x0100)
01089 #define DCM_METAPRIVATEINFORMATION      DCM_MAKETAG(DCM_GROUPFILEMETA,0x0102)
01090 
01091 /* Define the elements in the Basic Directory information group, (0x0004) */
01092 
01093 #define DCM_DIRFILESETID          DCM_MAKETAG(DCM_GROUPBASICDIRINFO, 0x1130)
01094 #define DCM_DIRFILESETDESCRFILEID DCM_MAKETAG(DCM_GROUPBASICDIRINFO, 0x1141)
01095 #define DCM_DIRSPECIFICCHARACTER  DCM_MAKETAG(DCM_GROUPBASICDIRINFO, 0x1142)
01096 #define DCM_DIRFIRSTOFFSET        DCM_MAKETAG(DCM_GROUPBASICDIRINFO, 0x1200)
01097 #define DCM_DIRLASTOFFSET         DCM_MAKETAG(DCM_GROUPBASICDIRINFO, 0x1202)
01098 #define DCM_DIRFILESETCONSISTENCY DCM_MAKETAG(DCM_GROUPBASICDIRINFO, 0x1212)
01099 #define DCM_DIRRECORDSEQUENCE     DCM_MAKETAG(DCM_GROUPBASICDIRINFO, 0x1220)
01100 #define DCM_DIRNEXTRECORDOFFSET   DCM_MAKETAG(DCM_GROUPBASICDIRINFO, 0x1400)
01101 #define DCM_DIRRECORDINUSE        DCM_MAKETAG(DCM_GROUPBASICDIRINFO, 0x1410)
01102 #define DCM_DIRLOWERLEVELOFFSET   DCM_MAKETAG(DCM_GROUPBASICDIRINFO, 0x1420)
01103 #define DCM_DIRRECORDTYPE         DCM_MAKETAG(DCM_GROUPBASICDIRINFO, 0x1430)
01104 #define DCM_DIRPRIVATERECORDUID   DCM_MAKETAG(DCM_GROUPBASICDIRINFO, 0x1432)
01105 #define DCM_DIRREFERENCEDFILEID   DCM_MAKETAG(DCM_GROUPBASICDIRINFO, 0x1500)
01106 #define DCM_DIRMRDRRECORDOFFSET   DCM_MAKETAG(DCM_GROUPBASICDIRINFO, 0x1504)
01107 #define DCM_DIRREFSOPCLASSUID     DCM_MAKETAG(DCM_GROUPBASICDIRINFO, 0x1510)
01108 #define DCM_DIRREFSOPINSTANCEUID  DCM_MAKETAG(DCM_GROUPBASICDIRINFO, 0x1511)
01109 #define DCM_DIRREFTRANSFERSYNTAXUID DCM_MAKETAG(DCM_GROUPBASICDIRINFO, 0x1512)
01110 #define DCM_DIRNUMREFERENCES      DCM_MAKETAG(DCM_GROUPBASICDIRINFO, 0x1600)
01111 
01112 /* Define the elements in the IDENTIFYING group, 0008
01113 */
01114 #define DCM_IDGROUPLENGTH               DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0000)
01115 #define DCM_IDLENGTHTOEND               DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0001)
01116 #define DCM_IDSPECIFICCHARACTER         DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0005)
01117 #define DCM_IDIMAGETYPE                 DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0008)
01118 #define DCM_IDRECOGNITIONCODE           DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0010)
01119 #define DCM_IDINSTANCECREATEDATE        DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0012)
01120 #define DCM_IDINSTANCECREATETIME        DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0013)
01121 #define DCM_IDINSTANCECREATORUID        DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0014)
01122 #define DCM_IDSOPCLASSUID               DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0016)
01123 #define DCM_IDSOPINSTANCEUID            DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0018)
01124 #define DCM_IDSTUDYDATE                 DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0020)
01125 #define DCM_IDSERIESDATE                DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0021)
01126 #define DCM_IDACQUISITIONDATE           DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0022)
01127 #define DCM_IDIMAGEDATE                 DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0023)
01128 #define DCM_IDOVERLAYDATE               DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0024)
01129 #define DCM_IDCURVEDATE                 DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0025)
01130 #define DCM_IDSTUDYTIME                 DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0030)
01131 #define DCM_IDSERIESTIME                DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0031)
01132 #define DCM_IDACQUISITIONTIME           DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0032)
01133 #define DCM_IDIMAGETIME                 DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0033)
01134 #define DCM_IDOVERLAYTIME               DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0034)
01135 #define DCM_IDCURVETIME                 DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0035)
01136 /* Retired 0040, 0041, 0042 */
01137 #define DCM_IDDATASETTYPE               DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0040)
01138 #define DCM_IDDATASETSUBTYPE            DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0041)
01139 #define DCM_IDNMSERIESTYPE              DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0042)
01140 
01141 #define DCM_IDACCESSIONNUMBER           DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0050)
01142 #define DCM_IDQUERYLEVEL                DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0052)
01143 #define DCM_IDRETRIEVEAETITLE           DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0054)
01144 #define DCM_IDINSTANCEAVAILABILITY      DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0056)
01145 #define DCM_IDFAILEDINSTANCEUIDLIST     DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0058)
01146 #define DCM_IDMODALITY                  DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0060)
01147 #define DCM_IDMODALITIESINSTUDY         DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0061)
01148 #define DCM_IDMODALITYSUBTYPE           DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0062)
01149 #define DCM_IDCONVERSIONTYPE            DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0064)
01150 #define DCM_IDPRESENTATIONINTENTTYPE    DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0068)
01151 #define DCM_IDMANUFACTURER              DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0070)
01152 #define DCM_IDINSTITUTIONNAME           DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0080)
01153 #define DCM_IDINSTITUTIONADDR           DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0081)
01154 #define DCM_IDINSTITUTECODESEQUENCE     DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0082)
01155 #define DCM_IDREFERRINGPHYSICIAN        DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0090)
01156 #define DCM_IDREFERRINGPHYSADDR         DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0092)
01157 #define DCM_IDREFERRINGPHYSPHONE        DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0094)
01158 #define DCM_IDCODEVALUE                 DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0100)
01159 #define DCM_IDCODINGSCHEMEDESIGNATOR    DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0102)
01160 #define DCM_IDCODINGSCHEMEVERSION       DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0103)
01161 #define DCM_IDCODEMEANING               DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0104)
01162 #define DCM_IDMAPPINGRESOURCE           DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0105)
01163 #define DCM_IDCONTEXTGROUPVERSION       DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x0106)
01164 #define DCM_IDCODESETEXTENSIONFLAG      DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x010B)
01165 #define DCM_IDPRIVATECODINGSCHEMECREATORUID DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x010C)
01166 #define DCM_IDCODESETEXTENSIONCREATORUID DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x010D)
01167 #define DCM_IDMAPPINGRESOURCESEQ        DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x010E)
01168 #define DCM_IDCONTEXTIDENTIFIER         DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x010F)
01169 #define DCM_IDNETWORKID                 DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1000)
01170 #define DCM_IDSTATIONNAME               DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1010)
01171 #define DCM_IDSTUDYDESCRIPTION          DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1030)
01172 #define DCM_IDPROCEDURECODESEQUENCE     DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1032)
01173 #define DCM_IDSERIESDESCR               DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x103e)
01174 #define DCM_IDINSTITUTIONALDEPT         DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1040)
01175 #define DCM_IDPHYSICIANOFRECORD         DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1048)
01176 #define DCM_IDPERFORMINGPHYSICIAN       DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1050)
01177 #define DCM_IDPHYSREADINGSTUDY          DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1060)
01178 #define DCM_IDOPERATORNAME              DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1070)
01179 #define DCM_IDADMITTINGDIAGDESCR        DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1080)
01180 #define DCM_IDADMITDIAGCODESEQUENCE     DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1084)
01181 #define DCM_IDMANUFACTURERMODEL         DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1090)
01182 #define DCM_IDREFERENCEDRESULTSSEQ      DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1100)
01183 #define DCM_IDREFERENCEDSTUDYSEQ        DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1110)
01184 #define DCM_IDREFERENCEDSTUDYCOMPONENTSEQ DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1111)
01185 #define DCM_IDREFERENCEDSERIESSEQ       DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1115)
01186 #define DCM_IDREFERENCEDPATIENTSEQ      DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1120)
01187 #define DCM_IDREFERENCEDVISITSEQ        DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1125)
01188 #define DCM_IDREFERENCEDOVERLAYSEQ      DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1130)
01189 #define DCM_IDREFERENCEDIMAGESEQ        DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1140)
01190 #define DCM_IDREFERENCEDCURVESEQ        DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1145)
01191 #define DCM_IDREFERENCEDPREVIOUSWAVEFORM DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1148)
01192 #define DCM_IDREFERENCEDSIMULTANEOUSWAVEFORMS DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x114A)
01193 #define DCM_IDREFERENCEDSUBSEQUENTWAVEFORM DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x114C)
01194 #define DCM_IDREFERENCEDSOPCLASSUID     DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1150)
01195 #define DCM_IDREFERENCEDSOPINSTUID      DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1155)
01196 #define DCM_IDREFERENCEDFRAMENUMBER     DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1160)
01197 #define DCM_IDTRANSACTIONUID            DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1195)
01198 #define DCM_IDFAILUREREASON             DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1197)
01199 #define DCM_IDFAILEDSOPSEQUENCE         DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1198)
01200 #define DCM_IDREFERENCEDSOPSEQUENCE     DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x1199)
01201 #define DCM_IDLOSSYIMAGECOMPRESSION     DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2110)
01202 #define DCM_IDDERIVATIONDESCR           DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2111)
01203 #define DCM_IDSOURCEIMAGESEQ            DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2112)
01204 #define DCM_IDSTAGENAME                 DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2120)
01205 #define DCM_IDSTAGENUMBER               DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2122)
01206 #define DCM_IDNUMBEROFSTAGES            DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2124)
01207 #define DCM_IDVIEWNUMBER                DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2128)
01208 #define DCM_IDNUMBEROFEVENTTIMERS       DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2129)
01209 #define DCM_IDNUMBERVIEWSINSTAGE        DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x212a)
01210 #define DCM_IDEVENTELAPSEDTIME          DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2130)
01211 #define DCM_IDEVENTTIMERNAME            DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2132)
01212 #define DCM_IDSTARTTRIM                 DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2142)
01213 #define DCM_IDSTOPTRIM                  DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2143)
01214 #define DCM_IDDISPLAYFRAMERATE          DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2144)
01215 #define DCM_IDTRANSDUCERPOSITION        DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2200)
01216 #define DCM_IDTRANSDUCERORIENTATION     DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2204)
01217 #define DCM_IDANATOMICSTRUCTURE         DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2208)
01218 #define DCM_IDANATOMICREGIONSEQUENCE    DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2218)
01219 #define DCM_IDANATOMICREGIONMODIFIERSEQ DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2220)
01220 #define DCM_IDPRIMARYANATOMICSTRUCTURESEQ DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2228)
01221 #define DCM_IDPRIMARYANATOMICSTRUCTUREMODIFIERSEQ DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2230)
01222 #define DCM_IDTRANSDUCERPOSITIONSEQ     DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2240)
01223 #define DCM_IDTRANSDUCERPOSITIONMODIFIERSEQ DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2242)
01224 #define DCM_IDTRANSDUCERORIENTATIONSEQ  DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2244)
01225 #define DCM_IDTRANSDUCERORIENTATIONMODIFIERSEQ DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x2246)
01226 #define DCM_IDCOMMENTS                  DCM_MAKETAG(DCM_GROUPIDENTIFYING,0x4000)
01227 
01228 /*  Define the elements in the PATIENT INFORMATION group (0x0010)
01229 */
01230 #define DCM_PATGROUPLENGTH              DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x0000)
01231 #define DCM_PATNAME                     DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x0010)
01232 #define DCM_PATID                       DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x0020)
01233 #define DCM_ISSUERPATIENTID             DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x0021)
01234 #define DCM_PATBIRTHDATE                DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x0030)
01235 #define DCM_PATBIRTHTIME                DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x0032)
01236 #define DCM_PATSEX                      DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x0040)
01237 #define DCM_PATINSURANCEPLANCODESEQ     DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x0050)
01238 #define DCM_PATOTHERIDS                 DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x1000)
01239 #define DCM_PATOTHERNAMES               DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x1001)
01240 #define DCM_PATBIRTHNAME                DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x1005)
01241 #define DCM_PATAGE                      DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x1010)
01242 #define DCM_PATSIZE                     DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x1020)
01243 #define DCM_PATWEIGHT                   DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x1030)
01244 #define DCM_PATADDRESS                  DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x1040)
01245 #define DCM_PATINSURANCEPLANID          DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x1050)
01246 #define DCM_PATMOTHERBIRTHNAME          DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x1060)
01247 #define DCM_PATMILITARYRANK             DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x1080)
01248 #define DCM_PATBRANCHOFSERVICE          DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x1081)
01249 #define DCM_PATMEDICALRECORDLOCATOR     DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x1090)
01250 #define DCM_PATMEDICALALERTS            DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x2000)
01251 #define DCM_PATCONTRASTALLERGIES        DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x2110)
01252 #define DCM_COUNTRYOFRESIDENCE          DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x2150)
01253 #define DCM_REGIONOFRESIDENCE           DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x2152)
01254 #define DCM_PATTELEPHONENUMBER          DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x2154)
01255 #define DCM_PATETHNICGROUP              DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x2160)
01256 #define DCM_PATOCCUPATION               DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x2180)
01257 #define DCM_PATSMOKINGSTATUS            DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x21a0)
01258 #define DCM_PATADDITIONALPATHISTORY     DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x21b0)
01259 #define DCM_PATPREGNANCYSTATUS          DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x21c0)
01260 #define DCM_PATLASTMENSTRUALDATE        DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x21d0)
01261 #define DCM_PATRELIGIOUSPREFERENCE      DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x21f0)
01262 #define DCM_PATCOMMENTS                 DCM_MAKETAG(DCM_GROUPPATIENTINFO,0x4000)
01263 
01264 /*  Define the elements in the ACQUISITION INFORMATION group (0018)
01265 */
01266 
01267 #define DCM_ACQGROUPLENGTH              DCM_MAKETAG(DCM_GROUPACQUISITION,0x0000)
01268 #define DCM_ACQCONTRASTBOLUSAGENT       DCM_MAKETAG(DCM_GROUPACQUISITION,0x0010)
01269 #define DCM_ACQCONTRASTBOLUSAGENTSEQ    DCM_MAKETAG(DCM_GROUPACQUISITION,0x0012)
01270 #define DCM_ACQCONTRASTBOLUSADMINROUTESEQ DCM_MAKETAG(DCM_GROUPACQUISITION,0x0014)
01271 #define DCM_ACQBODYPARTEXAMINED         DCM_MAKETAG(DCM_GROUPACQUISITION,0x0015)
01272 #define DCM_ACQSCANNINGSEQUENCE         DCM_MAKETAG(DCM_GROUPACQUISITION,0x0020)
01273 #define DCM_ACQSEQUENCEVARIANT          DCM_MAKETAG(DCM_GROUPACQUISITION,0x0021)
01274 #define DCM_ACQSCANOPTIONS              DCM_MAKETAG(DCM_GROUPACQUISITION,0x0022)
01275 #define DCM_ACQMRACQUISITIONTYPE        DCM_MAKETAG(DCM_GROUPACQUISITION,0x0023)
01276 #define DCM_ACQSEQUENCENAME             DCM_MAKETAG(DCM_GROUPACQUISITION,0x0024)
01277 #define DCM_ACQANGIOFLAG                DCM_MAKETAG(DCM_GROUPACQUISITION,0x0025)
01278 #define DCM_ACQINTERVENTIONDRUGINFOSEQ  DCM_MAKETAG(DCM_GROUPACQUISITION,0x0026)
01279 #define DCM_ACQINTERVENTIONDRUGSTOPTIME DCM_MAKETAG(DCM_GROUPACQUISITION,0x0027)
01280 #define DCM_ACQINTERVENTIONDRUGDOSE     DCM_MAKETAG(DCM_GROUPACQUISITION,0x0028)
01281 #define DCM_ACQINTERVENTIONDRUGCODESEQ  DCM_MAKETAG(DCM_GROUPACQUISITION,0x0029)
01282 #define DCM_ACQADDITIONALDRUGSEQ        DCM_MAKETAG(DCM_GROUPACQUISITION,0x002a)
01283 #define DCM_ACQRADIONUCLIDE             DCM_MAKETAG(DCM_GROUPACQUISITION,0x0030)
01284 #define DCM_ACQRADIOPHARMACEUTICAL      DCM_MAKETAG(DCM_GROUPACQUISITION,0x0031)
01285 #define DCM_ACQENERGYWCENTERLINE        DCM_MAKETAG(DCM_GROUPACQUISITION,0x0032)
01286 #define DCM_ACQENERGYWTOTALWIDTH        DCM_MAKETAG(DCM_GROUPACQUISITION,0x0033)
01287 #define DCM_ACQINTERVENTIONDRUGNAME     DCM_MAKETAG(DCM_GROUPACQUISITION,0x0034)
01288 #define DCM_ACQINTERVENTIONDRUGSTART    DCM_MAKETAG(DCM_GROUPACQUISITION,0x0035)
01289 #define DCM_ACQINTERVENTIONALTHERAPYSEQ DCM_MAKETAG(DCM_GROUPACQUISITION,0x0036)
01290 #define DCM_ACQTHERAPYTYPE              DCM_MAKETAG(DCM_GROUPACQUISITION,0x0037)
01291 #define DCM_ACQINTERVENTIONALSTATUS     DCM_MAKETAG(DCM_GROUPACQUISITION,0x0038)
01292 #define DCM_ACQTHERAPYDESCRIPTION       DCM_MAKETAG(DCM_GROUPACQUISITION,0x0039)
01293 #define DCM_ACQCINERATE                 DCM_MAKETAG(DCM_GROUPACQUISITION,0x0040)
01294 #define DCM_ACQSLICETHICKNESS           DCM_MAKETAG(DCM_GROUPACQUISITION,0x0050)
01295 #define DCM_ACQKVP                      DCM_MAKETAG(DCM_GROUPACQUISITION,0x0060)
01296 #define DCM_ACQCOUNTSACCUMULATED        DCM_MAKETAG(DCM_GROUPACQUISITION,0x0070)
01297 #define DCM_ACQTERMINATIONCONDITION     DCM_MAKETAG(DCM_GROUPACQUISITION,0x0071)
01298 #define DCM_ACQEFFECTIVESERIESDURATION  DCM_MAKETAG(DCM_GROUPACQUISITION,0x0072)
01299 #define DCM_ACQSTARTCONDITION           DCM_MAKETAG(DCM_GROUPACQUISITION,0x0073)
01300 #define DCM_ACQSTARTCONDITIONDATA       DCM_MAKETAG(DCM_GROUPACQUISITION,0x0074)
01301 #define DCM_ACQTERMINATIONCONDITIONDATA DCM_MAKETAG(DCM_GROUPACQUISITION,0x0075)
01302 #define DCM_ACQREPETITIONTIME           DCM_MAKETAG(DCM_GROUPACQUISITION,0x0080)
01303 #define DCM_ACQECHOTIME                 DCM_MAKETAG(DCM_GROUPACQUISITION,0x0081)
01304 #define DCM_ACQINVERSIONTIME            DCM_MAKETAG(DCM_GROUPACQUISITION,0x0082)
01305 #define DCM_ACQNUMBEROFAVERAGES         DCM_MAKETAG(DCM_GROUPACQUISITION,0x0083)
01306 #define DCM_ACQIMAGINGFREQUENCY         DCM_MAKETAG(DCM_GROUPACQUISITION,0x0084)
01307 #define DCM_ACQIMAGEDNUCLEUS            DCM_MAKETAG(DCM_GROUPACQUISITION,0x0085)
01308 #define DCM_ACQECHONUMBER               DCM_MAKETAG(DCM_GROUPACQUISITION,0x0086)
01309 #define DCM_ACQMAGNETICFIELDSTRENGTH    DCM_MAKETAG(DCM_GROUPACQUISITION,0x0087)
01310 #define DCM_ACQSLICESPACING             DCM_MAKETAG(DCM_GROUPACQUISITION,0x0088)
01311 #define DCM_ACQPHASEENCODINGSTEPS       DCM_MAKETAG(DCM_GROUPACQUISITION,0x0089)
01312 #define DCM_ACQDATACOLLECTIONDIAMETER   DCM_MAKETAG(DCM_GROUPACQUISITION,0x0090)
01313 #define DCM_ACQECHOTRAINLENGTH          DCM_MAKETAG(DCM_GROUPACQUISITION,0x0091)
01314 #define DCM_ACQPERCENTSAMPLING          DCM_MAKETAG(DCM_GROUPACQUISITION,0x0093)
01315 #define DCM_ACQPERCENTPHASEFIELDVIEW    DCM_MAKETAG(DCM_GROUPACQUISITION,0x0094)
01316 #define DCM_ACQPIXELBANDWIDTH           DCM_MAKETAG(DCM_GROUPACQUISITION,0x0095)
01317 #define DCM_ACQDEVICESERIALNUM          DCM_MAKETAG(DCM_GROUPACQUISITION,0x1000)
01318 #define DCM_ACQPLATEID                  DCM_MAKETAG(DCM_GROUPACQUISITION,0x1004)
01319 #define DCM_ACQSECONDARYCAPTUREDEVID    DCM_MAKETAG(DCM_GROUPACQUISITION,0x1010)
01320 #define DCM_ACQDATESECONDARYCAPTURE     DCM_MAKETAG(DCM_GROUPACQUISITION,0x1012)
01321 #define DCM_ACQTIMESECONDARYCAPTURE     DCM_MAKETAG(DCM_GROUPACQUISITION,0x1014)
01322 #define DCM_ACQSECONDARYCAPTMANUFACTURER DCM_MAKETAG(DCM_GROUPACQUISITION,0x1016)
01323 #define DCM_ACQSECONDARYCAPTMODEL       DCM_MAKETAG(DCM_GROUPACQUISITION,0x1018)
01324 #define DCM_ACQSECONDARYCAPTSOFTWAREVERSION DCM_MAKETAG(DCM_GROUPACQUISITION,0x1019)
01325 #define DCM_ACQSOFTWAREVERSION          DCM_MAKETAG(DCM_GROUPACQUISITION,0x1020)
01326 #define DCM_ACQVIDEOIMAGEFORMATACQ      DCM_MAKETAG(DCM_GROUPACQUISITION,0x1022)
01327 #define DCM_ACQDIGITALIMAGEFORMATACQ    DCM_MAKETAG(DCM_GROUPACQUISITION,0x1023)
01328 #define DCM_ACQPROTOCOLNAME             DCM_MAKETAG(DCM_GROUPACQUISITION,0x1030)
01329 #define DCM_ACQCONTRASTBOLUSROUTE       DCM_MAKETAG(DCM_GROUPACQUISITION,0x1040)
01330 #define DCM_ACQCONTRASTBOLUSVOL         DCM_MAKETAG(DCM_GROUPACQUISITION,0x1041)
01331 #define DCM_ACQCONTRASTBOLUSSTARTTIME   DCM_MAKETAG(DCM_GROUPACQUISITION,0x1042)
01332 #define DCM_ACQCONTRASTBOLUSSTOPTIME    DCM_MAKETAG(DCM_GROUPACQUISITION,0x1043)
01333 #define DCM_ACQCONTRASTBOLUSTOTALDOSE   DCM_MAKETAG(DCM_GROUPACQUISITION,0x1044)
01334 #define DCM_ACQSYRINGECOUNTS            DCM_MAKETAG(DCM_GROUPACQUISITION,0x1045)
01335 #define DCM_ACQCONTRASTFLOWRATE         DCM_MAKETAG(DCM_GROUPACQUISITION,0x1046)
01336 #define DCM_ACQCONTRASTFLOWDURATION     DCM_MAKETAG(DCM_GROUPACQUISITION,0x1047)
01337 #define DCM_ACQCONTRASTBOLUSINGREDIENT  DCM_MAKETAG(DCM_GROUPACQUISITION,0x1048)
01338 #define DCM_ACQCONTRASTBOLUSINGREDIENTCONCENTRATION DCM_MAKETAG(DCM_GROUPACQUISITION,0x1049)
01339 #define DCM_ACQSPATIALRESOLUTION        DCM_MAKETAG(DCM_GROUPACQUISITION,0x1050)
01340 #define DCM_ACQTRIGGERTIME              DCM_MAKETAG(DCM_GROUPACQUISITION,0x1060)
01341 #define DCM_ACQTRIGGERSRCTYPE           DCM_MAKETAG(DCM_GROUPACQUISITION,0x1061)
01342 #define DCM_ACQNOMINALINTERVAL          DCM_MAKETAG(DCM_GROUPACQUISITION,0x1062)
01343 #define DCM_ACQFRAMETIME                DCM_MAKETAG(DCM_GROUPACQUISITION,0x1063)
01344 #define DCM_ACQFRAMINGTYPE              DCM_MAKETAG(DCM_GROUPACQUISITION,0x1064)
01345 #define DCM_ACQFRAMETIMEVECTOR          DCM_MAKETAG(DCM_GROUPACQUISITION,0x1065)
01346 #define DCM_ACQFRAMEDELAY               DCM_MAKETAG(DCM_GROUPACQUISITION,0x1066)
01347 #define DCM_ACQIMAGETRIGGERDELAY        DCM_MAKETAG(DCM_GROUPACQUISITION,0x1067)
01348 #define DCM_ACQGROUPTIMEOFFSET          DCM_MAKETAG(DCM_GROUPACQUISITION,0x1068)
01349 #define DCM_ACQTRIGGERTIMEOFFSET        DCM_MAKETAG(DCM_GROUPACQUISITION,0x1069)
01350 #define DCM_ACQSYNCTRIGGER              DCM_MAKETAG(DCM_GROUPACQUISITION,0x106A)
01351 #define DCM_ACQSYNCFRAMEOFREFERENCE     DCM_MAKETAG(DCM_GROUPACQUISITION,0x106B)
01352 #define DCM_ACQTRIGGERSAMPLEPOSITION    DCM_MAKETAG(DCM_GROUPACQUISITION,0x106E)
01353 #define DCM_ACQRADIOPHARMROUTE          DCM_MAKETAG(DCM_GROUPACQUISITION,0x1070)
01354 #define DCM_ACQRADIOPHARMVOLUME         DCM_MAKETAG(DCM_GROUPACQUISITION,0x1071)
01355 #define DCM_ACQRADIOPHARMSTARTTIME      DCM_MAKETAG(DCM_GROUPACQUISITION,0x1072)
01356 #define DCM_ACQRADIOPHARMSTOPTIME       DCM_MAKETAG(DCM_GROUPACQUISITION,0x1073)
01357 #define DCM_ACQRADIONUCLIDETOTALDOSE    DCM_MAKETAG(DCM_GROUPACQUISITION,0x1074)
01358 #define DCM_ACQRADIONUCLIDEHALFLIFE     DCM_MAKETAG(DCM_GROUPACQUISITION,0x1075)
01359 #define DCM_ACQRADIONUCLIDEPOSITRONFRACTION DCM_MAKETAG(DCM_GROUPACQUISITION,0x1076)
01360 #define DCM_ACQRADIOPHARMACEUTICALSPECIFICACTIVITY DCM_MAKETAG(DCM_GROUPACQUISITION,0x1077)
01361 #define DCM_ACQBEATREJECTIONFLAG        DCM_MAKETAG(DCM_GROUPACQUISITION,0x1080)
01362 #define DCM_ACQLOWRRVALUE               DCM_MAKETAG(DCM_GROUPACQUISITION,0x1081)
01363 #define DCM_ACQHIGHRRVALUE              DCM_MAKETAG(DCM_GROUPACQUISITION,0x1082)
01364 #define DCM_ACQINTERVALSACQUIRED        DCM_MAKETAG(DCM_GROUPACQUISITION,0x1083)
01365 #define DCM_ACQINTERVALSREJECTED        DCM_MAKETAG(DCM_GROUPACQUISITION,0x1084)
01366 #define DCM_ACQPVCREJECTION             DCM_MAKETAG(DCM_GROUPACQUISITION,0x1085)
01367 #define DCM_ACQSKIPBEATS                DCM_MAKETAG(DCM_GROUPACQUISITION,0x1086)
01368 #define DCM_ACQHEARTRATE                DCM_MAKETAG(DCM_GROUPACQUISITION,0x1088)
01369 #define DCM_ACQCARDIACNUMBEROFIMAGES    DCM_MAKETAG(DCM_GROUPACQUISITION,0x1090)
01370 #define DCM_ACQTRIGGERWINDOW            DCM_MAKETAG(DCM_GROUPACQUISITION,0x1094)
01371 #define DCM_ACQRECONSTRUCTIONDIAMETER   DCM_MAKETAG(DCM_GROUPACQUISITION,0x1100)
01372 #define DCM_ACQDISTANCESRCTODETECTOR    DCM_MAKETAG(DCM_GROUPACQUISITION,0x1110)
01373 #define DCM_ACQDISTANCESRCTOPATIENT     DCM_MAKETAG(DCM_GROUPACQUISITION,0x1111)
01374 #define DCM_ACQESTIMATEDRADIOGRAPHICMAGFACTOR   DCM_MAKETAG(DCM_GROUPACQUISITION,0x1114)
01375 #define DCM_ACQGANTRYTILT               DCM_MAKETAG(DCM_GROUPACQUISITION,0x1120)
01376 #define DCM_ACQGANTRYSLEW               DCM_MAKETAG(DCM_GROUPACQUISITION,0x1121)
01377 #define DCM_ACQTABLEHEIGHT              DCM_MAKETAG(DCM_GROUPACQUISITION,0x1130)
01378 #define DCM_ACQTABLETRAVERSE            DCM_MAKETAG(DCM_GROUPACQUISITION,0x1131)
01379 #define DCM_ACQTABLEMOTION              DCM_MAKETAG(DCM_GROUPACQUISITION,0x1134)
01380 #define DCM_ACQTABLEVERTICALINCREMENT   DCM_MAKETAG(DCM_GROUPACQUISITION,0x1135)
01381 #define DCM_ACQTABLELATERALINCREMENT    DCM_MAKETAG(DCM_GROUPACQUISITION,0x1136)
01382 #define DCM_ACQTABLELONGITUDINALINCREMENT       DCM_MAKETAG(DCM_GROUPACQUISITION,0x1137)
01383 #define DCM_ACQTABLEANGLE               DCM_MAKETAG(DCM_GROUPACQUISITION,0x1138)
01384 #define DCM_ACQROTATIONDIRECTION        DCM_MAKETAG(DCM_GROUPACQUISITION,0x1140)
01385 #define DCM_ACQANGULARPOSITION          DCM_MAKETAG(DCM_GROUPACQUISITION,0x1141)
01386 #define DCM_ACQRADIALPOSITION           DCM_MAKETAG(DCM_GROUPACQUISITION,0x1142)
01387 #define DCM_ACQSCANARC                  DCM_MAKETAG(DCM_GROUPACQUISITION,0x1143)
01388 #define DCM_ACQANGULARSTEP              DCM_MAKETAG(DCM_GROUPACQUISITION,0x1144)
01389 #define DCM_ACQCENTERROTATIONOFFSET     DCM_MAKETAG(DCM_GROUPACQUISITION,0x1145)
01390 #define DCM_ACQROTATIONOFFSET           DCM_MAKETAG(DCM_GROUPACQUISITION,0x1146)
01391 #define DCM_ACQFIELDOFVIEWSHAPE         DCM_MAKETAG(DCM_GROUPACQUISITION,0x1147)
01392 #define DCM_ACQFIELDOFVIEWDIMENSION     DCM_MAKETAG(DCM_GROUPACQUISITION,0x1149)
01393 #define DCM_ACQEXPOSURETIME             DCM_MAKETAG(DCM_GROUPACQUISITION,0x1150)
01394 #define DCM_ACQXRAYTUBECURRENT          DCM_MAKETAG(DCM_GROUPACQUISITION,0x1151)
01395 #define DCM_ACQEXPOSURE                 DCM_MAKETAG(DCM_GROUPACQUISITION,0x1152)
01396 #define DCM_ACQAVERAGEPULSEWIDTH        DCM_MAKETAG(DCM_GROUPACQUISITION,0x1154)
01397 #define DCM_ACQRADIATIONSETTING         DCM_MAKETAG(DCM_GROUPACQUISITION,0x1155)
01398 #define DCM_ACQRADIATIONMODE            DCM_MAKETAG(DCM_GROUPACQUISITION,0x115a)
01399 #define DCM_ACQIMAGEAREADOSEPRODUCT     DCM_MAKETAG(DCM_GROUPACQUISITION,0x115e)
01400 #define DCM_ACQFILTERTYPE               DCM_MAKETAG(DCM_GROUPACQUISITION,0x1160)
01401 #define DCM_ACQTYPEOFFILTERS            DCM_MAKETAG(DCM_GROUPACQUISITION,0x1161)
01402 #define DCM_ACQINTENSIFIERSIZE          DCM_MAKETAG(DCM_GROUPACQUISITION,0x1162)
01403 #define DCM_ACQIMAGERPIXELSPACING       DCM_MAKETAG(DCM_GROUPACQUISITION,0x1164)
01404 #define DCM_ACQGRID                     DCM_MAKETAG(DCM_GROUPACQUISITION,0x1166)
01405 #define DCM_ACQGENERATORPOWER           DCM_MAKETAG(DCM_GROUPACQUISITION,0x1170)
01406 #define DCM_ACQCOLLIMATORGRIDNAME       DCM_MAKETAG(DCM_GROUPACQUISITION,0x1180)
01407 #define DCM_ACQCOLLIMATORTYPE           DCM_MAKETAG(DCM_GROUPACQUISITION,0x1181)
01408 #define DCM_ACQFOCALDISTANCE            DCM_MAKETAG(DCM_GROUPACQUISITION,0x1182)
01409 #define DCM_ACQXFOCUSCENTER             DCM_MAKETAG(DCM_GROUPACQUISITION,0x1183)
01410 #define DCM_ACQYFOCUSCENTER             DCM_MAKETAG(DCM_GROUPACQUISITION,0x1184)
01411 #define DCM_ACQFOCALSPOT                DCM_MAKETAG(DCM_GROUPACQUISITION,0x1190)
01412 #define DCM_ACQDATELASTCALIBRATION      DCM_MAKETAG(DCM_GROUPACQUISITION,0x1200)
01413 #define DCM_ACQTIMELASTCALIBRATION      DCM_MAKETAG(DCM_GROUPACQUISITION,0x1201)
01414 #define DCM_ACQCONVOLUTIONKERNEL        DCM_MAKETAG(DCM_GROUPACQUISITION,0x1210)
01415 #define DCM_ACQUPPERLOWERPIXELVALUES    DCM_MAKETAG(DCM_GROUPACQUISITION,0x1240)
01416 #define DCM_ACQACTUALFRAMEDURATION      DCM_MAKETAG(DCM_GROUPACQUISITION,0x1242)
01417 #define DCM_ACQCOUNTRATE                DCM_MAKETAG(DCM_GROUPACQUISITION,0x1243)
01418 #define DCM_ACQPREFPLAYBACKSEQUENCING   DCM_MAKETAG(DCM_GROUPACQUISITION,0x1244)
01419 #define DCM_ACQRECEIVINGCOIL            DCM_MAKETAG(DCM_GROUPACQUISITION,0x1250)
01420 #define DCM_ACQTRANSMITTINGCOIL         DCM_MAKETAG(DCM_GROUPACQUISITION,0x1251)
01421 #define DCM_ACQPLATETYPE                DCM_MAKETAG(DCM_GROUPACQUISITION,0x1260)
01422 #define DCM_ACQPHOSPHORTYPE             DCM_MAKETAG(DCM_GROUPACQUISITION,0x1261)
01423 #define DCM_ACQSCANVELOCITY             DCM_MAKETAG(DCM_GROUPACQUISITION,0x1300)
01424 #define DCM_ACQWHOLEBODYTECHNIQUE       DCM_MAKETAG(DCM_GROUPACQUISITION,0x1301)
01425 #define DCM_ACQSCANLENGTH               DCM_MAKETAG(DCM_GROUPACQUISITION,0x1302)
01426 #define DCM_ACQACQUISITIONMATRIX        DCM_MAKETAG(DCM_GROUPACQUISITION,0x1310)
01427 #define DCM_ACQPHASEENCODINGDIRECTION   DCM_MAKETAG(DCM_GROUPACQUISITION,0x1312)
01428 #define DCM_ACQFLIPANGLE                DCM_MAKETAG(DCM_GROUPACQUISITION,0x1314)
01429 #define DCM_ACQVARIABLEFLIPANGLE        DCM_MAKETAG(DCM_GROUPACQUISITION,0x1315)
01430 #define DCM_ACQSAR                      DCM_MAKETAG(DCM_GROUPACQUISITION,0x1316)
01431 #define DCM_ACQDBDT                     DCM_MAKETAG(DCM_GROUPACQUISITION,0x1318)
01432 #define DCM_ACQDEVICEPROCESSINGDESCR    DCM_MAKETAG(DCM_GROUPACQUISITION,0x1400)
01433 #define DCM_ACQDEVICEPROCESSINGCODE     DCM_MAKETAG(DCM_GROUPACQUISITION,0x1401)
01434 #define DCM_ACQCASSETTEORIENTATION      DCM_MAKETAG(DCM_GROUPACQUISITION,0x1402)
01435 #define DCM_ACQCASSETTESIZE             DCM_MAKETAG(DCM_GROUPACQUISITION,0x1403)
01436 #define DCM_ACQEXPOSURESONPLATE         DCM_MAKETAG(DCM_GROUPACQUISITION,0x1404)
01437 #define DCM_ACQRELATIVEXRAYEXPOSURE     DCM_MAKETAG(DCM_GROUPACQUISITION,0x1405)
01438 #define DCM_ACQCOLUMNANGULATION         DCM_MAKETAG(DCM_GROUPACQUISITION,0x1450)
01439 #define DCM_ACQTOMOLAYERHEIGHT          DCM_MAKETAG(DCM_GROUPACQUISITION,0x1460)
01440 #define DCM_ACQTOMOANGLE                DCM_MAKETAG(DCM_GROUPACQUISITION,0x1470)
01441 #define DCM_ACQTOMOTIME                 DCM_MAKETAG(DCM_GROUPACQUISITION,0x1480)
01442 #define DCM_ACQPOSITIONERMOTION         DCM_MAKETAG(DCM_GROUPACQUISITION,0x1500)
01443 #define DCM_ACQPOSITIONERPRIMARYANGLE   DCM_MAKETAG(DCM_GROUPACQUISITION,0x1510)
01444 #define DCM_ACQPOSITIONERSECONDARYANGLE DCM_MAKETAG(DCM_GROUPACQUISITION,0x1511)
01445 #define DCM_ACQPOSITIONERPRIMARYANGLEINCR DCM_MAKETAG(DCM_GROUPACQUISITION,0x1520)
01446 #define DCM_ACQPOSITIONERSECONDARYANGLEINCR DCM_MAKETAG(DCM_GROUPACQUISITION,0x1521)
01447 #define DCM_ACQDETECTORPRIMARYANGLE     DCM_MAKETAG(DCM_GROUPACQUISITION,0x1530)
01448 #define DCM_ACQDETECTORSECONDARYANGLE   DCM_MAKETAG(DCM_GROUPACQUISITION,0x1531)
01449 #define DCM_ACQSHUTTERSHAPE             DCM_MAKETAG(DCM_GROUPACQUISITION,0x1600)
01450 #define DCM_ACQSHUTTERLEFTVERTICALEDGE  DCM_MAKETAG(DCM_GROUPACQUISITION,0x1602)
01451 #define DCM_ACQSHUTTERRIGHTVERTICALEDGE DCM_MAKETAG(DCM_GROUPACQUISITION,0x1604)
01452 #define DCM_ACQSHUTTERUPPERHORIZONTALEDGE DCM_MAKETAG(DCM_GROUPACQUISITION,0x1606)
01453 #define DCM_ACQSHUTTERLOWERHORIZONTALEDGE DCM_MAKETAG(DCM_GROUPACQUISITION,0x1608)
01454 #define DCM_ACQCENTEROFCIRCULARSHUTTER  DCM_MAKETAG(DCM_GROUPACQUISITION,0x1610)
01455 #define DCM_ACQRADIUSOFCIRCULARSHUTTER  DCM_MAKETAG(DCM_GROUPACQUISITION,0x1612)
01456 #define DCM_ACQVERTICESOFPOLYGONALSHUTTER DCM_MAKETAG(DCM_GROUPACQUISITION,0x1620)
01457 #define DCM_ACQCOLLIMATORSHAPE          DCM_MAKETAG(DCM_GROUPACQUISITION,0x1700)
01458 #define DCM_ACQCOLLIMATORLEFTVERTICALEDGE DCM_MAKETAG(DCM_GROUPACQUISITION,0x1702)
01459 #define DCM_ACQCOLLIMATORRIGHTVERTICALEDGE DCM_MAKETAG(DCM_GROUPACQUISITION,0x1704)
01460 #define DCM_ACQCOLLIMATORUPPERHORIZONTALEDGE DCM_MAKETAG(DCM_GROUPACQUISITION,0x1706)
01461 #define DCM_ACQCOLLIMATORLOWERHORIZONTALEDGE DCM_MAKETAG(DCM_GROUPACQUISITION,0x1708)
01462 #define DCM_ACQCENTEROFCIRCULARCOLLIMATOR DCM_MAKETAG(DCM_GROUPACQUISITION,0x1710)
01463 #define DCM_ACQRADIUSOFCIRCULARCOLLIMATOR DCM_MAKETAG(DCM_GROUPACQUISITION,0x1712)
01464 #define DCM_ACQVERTICESOFPOLYGONALCOLLIMATOR DCM_MAKETAG(DCM_GROUPACQUISITION,0x1720)
01465 #define DCM_ACQACQUISITIONTIMESYNCHRONIZED DCM_MAKETAG(DCM_GROUPACQUISITION,0x1800)
01466 #define DCM_ACQTIMESOURCE               DCM_MAKETAG(DCM_GROUPACQUISITION,0x1801)
01467 #define DCM_ACQTIMEDISTRIBUTIONPROTOCOL DCM_MAKETAG(DCM_GROUPACQUISITION,0x1802)
01468 #define DCM_ACQCOMMENTS                 DCM_MAKETAG(DCM_GROUPACQUISITION,0x4000)
01469 #define DCM_ACQOUTPUTPOWER              DCM_MAKETAG(DCM_GROUPACQUISITION,0x5000)
01470 #define DCM_ACQTRANSDUCERDATA           DCM_MAKETAG(DCM_GROUPACQUISITION,0x5010)
01471 #define DCM_ACQFOCUSDEPTH               DCM_MAKETAG(DCM_GROUPACQUISITION,0x5012)
01472 #define DCM_ACQPROCESSINGFUNCTION       DCM_MAKETAG(DCM_GROUPACQUISITION,0x5020)
01473 #define DCM_ACQPOSTPROCESSINGFUNCTION   DCM_MAKETAG(DCM_GROUPACQUISITION,0x5021)
01474 #define DCM_ACQMECHANICALINDEX          DCM_MAKETAG(DCM_GROUPACQUISITION,0x5022)
01475 #define DCM_ACQTHERMALINDEX             DCM_MAKETAG(DCM_GROUPACQUISITION,0x5024)
01476 #define DCM_ACQCRANIALTHERMALINDEX      DCM_MAKETAG(DCM_GROUPACQUISITION,0x5026)
01477 #define DCM_ACQSOFTTISSUETHERMALINDEX   DCM_MAKETAG(DCM_GROUPACQUISITION,0x5027)
01478 #define DCM_ACQSOFTTISSUEFOCUSTHERMALINDEX DCM_MAKETAG(DCM_GROUPACQUISITION,0x5028)
01479 #define DCM_ACQSOFTTISSUESURFACETHERMALINDEX DCM_MAKETAG(DCM_GROUPACQUISITION,0x5029)
01480 #define DCM_ACQDEPTHOFSCANFIELD         DCM_MAKETAG(DCM_GROUPACQUISITION,0x5050)
01481 #define DCM_ACQPATIENTPOSITION          DCM_MAKETAG(DCM_GROUPACQUISITION,0x5100)
01482 #define DCM_ACQVIEWPOSITION             DCM_MAKETAG(DCM_GROUPACQUISITION,0x5101)
01483 #define DCM_ACQIMAGETRANSFORMATIONMATRIX DCM_MAKETAG(DCM_GROUPACQUISITION,0x5210)
01484 #define DCM_ACQIMAGETRANSLATIONVECTOR   DCM_MAKETAG(DCM_GROUPACQUISITION,0x5212)
01485 #define DCM_ACQSENSITIVITY              DCM_MAKETAG(DCM_GROUPACQUISITION,0x6000)
01486 #define DCM_ACQUSREGIONSEQUENCE         DCM_MAKETAG(DCM_GROUPACQUISITION,0x6011)
01487 #define DCM_ACQREGIONSPATIALFORMAT      DCM_MAKETAG(DCM_GROUPACQUISITION,0x6012)
01488 #define DCM_ACQREGIONDATATYPE           DCM_MAKETAG(DCM_GROUPACQUISITION,0x6014)
01489 #define DCM_ACQREGIONFLAGS              DCM_MAKETAG(DCM_GROUPACQUISITION,0x6016)
01490 #define DCM_ACQREGIONLOCATIONMINX0      DCM_MAKETAG(DCM_GROUPACQUISITION,0x6018)
01491 #define DCM_ACQREGIONLOCATIONMINY0      DCM_MAKETAG(DCM_GROUPACQUISITION,0x601a)
01492 #define DCM_ACQREGIONLOCATIONMAXX1      DCM_MAKETAG(DCM_GROUPACQUISITION,0x601c)
01493 #define DCM_ACQREGIONLOCATIONMAXY1      DCM_MAKETAG(DCM_GROUPACQUISITION,0x601e)
01494 #define DCM_ACQREFERENCEPIXELX          DCM_MAKETAG(DCM_GROUPACQUISITION,0x6020)
01495 #define DCM_ACQREFERENCEPIXELY          DCM_MAKETAG(DCM_GROUPACQUISITION,0x6022)
01496 #define DCM_ACQPHYSICALUNITSXDIRECTION  DCM_MAKETAG(DCM_GROUPACQUISITION,0x6024)
01497 #define DCM_ACQPHYSICALUNITSYDIRECTION  DCM_MAKETAG(DCM_GROUPACQUISITION,0x6026)
01498 #define DCM_ACQREFPIXELPHYSICALVALUEX   DCM_MAKETAG(DCM_GROUPACQUISITION,0x6028)
01499 #define DCM_ACQREFPIXELPHYSICALVALUEY   DCM_MAKETAG(DCM_GROUPACQUISITION,0x602a)
01500 #define DCM_ACQPHYSICALDELTAX           DCM_MAKETAG(DCM_GROUPACQUISITION,0x602c)
01501 #define DCM_ACQPHYSICALDELTAY           DCM_MAKETAG(DCM_GROUPACQUISITION,0x602e)
01502 #define DCM_ACQTRANSDUCERFREQUENCY      DCM_MAKETAG(DCM_GROUPACQUISITION,0x6030)
01503 #define DCM_ACQTRANSDUCERTYPE           DCM_MAKETAG(DCM_GROUPACQUISITION,0x6031)
01504 #define DCM_ACQPULSEREPETITIONFREQ      DCM_MAKETAG(DCM_GROUPACQUISITION,0x6032)
01505 #define DCM_ACQDOPPLERCORRECTIONANGLE   DCM_MAKETAG(DCM_GROUPACQUISITION,0x6034)
01506 #define DCM_ACQSTERRINGANGLE            DCM_MAKETAG(DCM_GROUPACQUISITION,0x6036)
01507 #define DCM_ACQDOPPLERSAMPLEVOLXPOS     DCM_MAKETAG(DCM_GROUPACQUISITION,0x6038)
01508 #define DCM_ACQDOPPLERSAMPLEVOLYPOS     DCM_MAKETAG(DCM_GROUPACQUISITION,0x603a)
01509 #define DCM_ACQTMLINEPOSITIONX0         DCM_MAKETAG(DCM_GROUPACQUISITION,0x603c)
01510 #define DCM_ACQTMLINEPOSITIONY0         DCM_MAKETAG(DCM_GROUPACQUISITION,0x603e)
01511 #define DCM_ACQTMLINEPOSITIONX1         DCM_MAKETAG(DCM_GROUPACQUISITION,0x6040)
01512 #define DCM_ACQTMLINEPOSITIONY1         DCM_MAKETAG(DCM_GROUPACQUISITION,0x6042)
01513 #define DCM_ACQPIXELCOMPORGANIZATION    DCM_MAKETAG(DCM_GROUPACQUISITION,0x6044)
01514 #define DCM_ACQPIXELCOMPMASK            DCM_MAKETAG(DCM_GROUPACQUISITION,0x6046)
01515 #define DCM_ACQPIXELCOMPRANGESTART      DCM_MAKETAG(DCM_GROUPACQUISITION,0x6048)
01516 #define DCM_ACQPIXELCOMPRANGESTOP       DCM_MAKETAG(DCM_GROUPACQUISITION,0x604a)
01517 #define DCM_ACQPIXELCOMPPHYSUNITS       DCM_MAKETAG(DCM_GROUPACQUISITION,0x604c)
01518 #define DCM_ACQPIXELCOMPDATATYPE        DCM_MAKETAG(DCM_GROUPACQUISITION,0x604e)
01519 #define DCM_ACQNUMBERTABLEBREAKPOINTS   DCM_MAKETAG(DCM_GROUPACQUISITION,0x6050)
01520 #define DCM_ACQTABLEXBREAKPOINTS        DCM_MAKETAG(DCM_GROUPACQUISITION,0x6052)
01521 #define DCM_ACQTABLEYBREAKPOINTS        DCM_MAKETAG(DCM_GROUPACQUISITION,0x6054)
01522 #define DCM_ACQNUMBEROFTABLEENTRIES     DCM_MAKETAG(DCM_GROUPACQUISITION,0x6056)
01523 #define DCM_ACQTABLEOFPIXELVALUES       DCM_MAKETAG(DCM_GROUPACQUISITION,0x6058)
01524 #define DCM_ACQTABLEOFPARAMETERVALUES   DCM_MAKETAG(DCM_GROUPACQUISITION,0x605a)
01525 
01526 
01527 /*  Define the elements for the RELATIONSHIP group (0x0020)
01528 */
01529 
01530 #define DCM_RELGROUPLENGTH              DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0000)
01531 #define DCM_RELSTUDYINSTANCEUID         DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x000d)
01532 #define DCM_RELSERIESINSTANCEUID        DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x000e)
01533 #define DCM_RELSTUDYID                  DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0010)
01534 #define DCM_RELSERIESNUMBER             DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0011)
01535 #define DCM_RELACQUISITIONNUMBER        DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0012)
01536 #define DCM_RELIMAGENUMBER              DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0013)
01537 
01538 /* The following attributes are retired (0014 - 0018) */
01539 #define DCM_RELISOTOPENUMBER            DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0014)
01540 #define DCM_RELPHASENUMBER              DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0015)
01541 #define DCM_RELINTERVALNUMBER           DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0016)
01542 #define DCM_RELTIMESLOTNUMBER           DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0017)
01543 #define DCM_RELANGLENUMBER              DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0018)
01544 
01545 #define DCM_RELPATIENTORIENTATION       DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0020)
01546 #define DCM_RELOVERLAYNUMBER            DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0022)
01547 #define DCM_RELCURVENUMBER              DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0024)
01548 #define DCM_RELLOOKUPTABLENUMBER        DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0026)
01549 /* Retired 0030 */
01550 #define DCM_RELIMAGEPOSITION            DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0030)
01551 #define DCM_RELIMAGEPOSITIONPATIENT     DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0032)
01552 /* Retired 0035 */
01553 #define DCM_RELIMAGEORIENTATION         DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0035)
01554 #define DCM_RELIMAGEORIENTATIONPATIENT  DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0037)
01555 /* Retired 0050 */
01556 #define DCM_RELLOCATION                 DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0050)
01557 #define DCM_RELFRAMEOFREFERENCEUID      DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0052)
01558 #define DCM_RELLATERALITY               DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0060)
01559 
01560 /* Retired 0070, 0080 */
01561 #define DCM_RELIMAGEGEOMETRYTYPE        DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0070)
01562 #define DCM_RELMASKINGIMAGE             DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0080)
01563 
01564 #define DCM_RELTEMPORALPOSITIONID       DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0100)
01565 #define DCM_RELNUMBERTEMPORALPOSITIONS  DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0105)
01566 #define DCM_RELTEMPORALRESOLUTION       DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x0110)
01567 #define DCM_RELSERIESINSTUDY            DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x1000)
01568 #define DCM_RELACQUISITIONSINSERIES     DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x1001)
01569 #define DCM_RELIMAGESINACQUISITION      DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x1002)
01570 #define DCM_RELACQUISITIONSINSTUDY      DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x1004)
01571 
01572 /* Retired, 1020 */
01573 #define DCM_RELREFERENCE                DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x1020)
01574 #define DCM_RELPOSITIONREFINDICATOR     DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x1040)
01575 #define DCM_RELSLICELOCATION            DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x1041)
01576 #define DCM_RELOTHERSTUDYNUMBERS        DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x1070)
01577 #define DCM_RELNUMBERPATRELATEDSTUDIES  DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x1200)
01578 #define DCM_RELNUMBERPATRELATEDSERIES   DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x1202)
01579 #define DCM_RELNUMBERPATRELATEDIMAGES   DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x1204)
01580 #define DCM_RELNUMBERSTUDYRELATEDSERIES DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x1206)
01581 #define DCM_RELNUMBERSTUDYRELATEDIMAGES DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x1208)
01582 #define DCM_RELNUMBERSERIESRELATEDINST  DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x1209)
01583 
01584 #define DCM_RELSOURCEIMAGEID            DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x3100)
01585 #define DCM_RELMODIFYINGDEVICEID        DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x3401)
01586 #define DCM_RELMODIFIEDIMAGEID          DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x3402)
01587 #define DCM_RELMODIFIEDIMAGEDATE        DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x3403)
01588 #define DCM_RELMODIFYINGDEVICEMFR       DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x3404)
01589 #define DCM_RELMODIFIEDIMAGETIME        DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x3405)
01590 #define DCM_RELMODIFIEDIMAGEDESCRIPTION DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x3406)
01591 #define DCM_RELIMAGECOMMENTS            DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x4000)
01592 #define DCM_RELORIGINALIMAGEID          DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x5000)
01593 #define DCM_RELORIGINALIMAGEIDNOMENCLATURE DCM_MAKETAG(DCM_GROUPRELATIONSHIP,0x5002)
01594 
01595 /*  Define the elements for the IMAGE PRESENTATION group (0028)
01596 */
01597 #define DCM_IMGGROUPLENGTH              DCM_MAKETAG(DCM_GROUPIMAGE,0x0000)
01598 #define DCM_IMGSAMPLESPERPIXEL          DCM_MAKETAG(DCM_GROUPIMAGE,0x0002)
01599 #define DCM_IMGPHOTOMETRICINTERP        DCM_MAKETAG(DCM_GROUPIMAGE,0x0004)
01600 #define DCM_IMGIMAGEDIMENSIONS          DCM_MAKETAG(DCM_GROUPIMAGE,0x0005)
01601 #define DCM_IMGPLANARCONFIGURATION      DCM_MAKETAG(DCM_GROUPIMAGE,0x0006)
01602 #define DCM_IMGNUMBEROFFRAMES           DCM_MAKETAG(DCM_GROUPIMAGE,0x0008)
01603 #define DCM_IMGFRAMEINCREMENTPOINTER    DCM_MAKETAG(DCM_GROUPIMAGE,0x0009)
01604 #define DCM_IMGROWS                     DCM_MAKETAG(DCM_GROUPIMAGE,0x0010)
01605 #define DCM_IMGCOLUMNS                  DCM_MAKETAG(DCM_GROUPIMAGE,0x0011)
01606 #define DCM_IMGPLANES                   DCM_MAKETAG(DCM_GROUPIMAGE,0x0012)
01607 #define DCM_IMGUSOUNDCOLORDATAPRESENT   DCM_MAKETAG(DCM_GROUPIMAGE,0x0014)
01608 #define DCM_IMGPIXELSPACING             DCM_MAKETAG(DCM_GROUPIMAGE,0x0030)
01609 #define DCM_IMGZOOMFACTOR               DCM_MAKETAG(DCM_GROUPIMAGE,0x0031)
01610 #define DCM_IMGZOOMCENTER               DCM_MAKETAG(DCM_GROUPIMAGE,0x0032)
01611 #define DCM_IMGPIXELASPECTRATIO         DCM_MAKETAG(DCM_GROUPIMAGE,0x0034)
01612 
01613 /* Retired 0040, 0050 */
01614 #define DCM_IMGIMAGEFORMAT              DCM_MAKETAG(DCM_GROUPIMAGE,0x0040)
01615 #define DCM_IMGMANIPULATEDIMAGE         DCM_MAKETAG(DCM_GROUPIMAGE,0x0050)
01616 #define DCM_IMGCORRECTEDIMAGE           DCM_MAKETAG(DCM_GROUPIMAGE,0x0051)
01617 
01618 /* Retired 0060 */
01619 #define DCM_IMGCOMPRESSIONCODE          DCM_MAKETAG(DCM_GROUPIMAGE,0x0060)
01620 #define DCM_IMGBITSALLOCATED            DCM_MAKETAG(DCM_GROUPIMAGE,0x0100)
01621 #define DCM_IMGBITSSTORED               DCM_MAKETAG(DCM_GROUPIMAGE,0x0101)
01622 #define DCM_IMGHIGHBIT                  DCM_MAKETAG(DCM_GROUPIMAGE,0x0102)
01623 #define DCM_IMGPIXELREPRESENTATION      DCM_MAKETAG(DCM_GROUPIMAGE,0x0103)
01624 #define DCM_IMGSMALLESTPIXELVALUE       DCM_MAKETAG(DCM_GROUPIMAGE,0x0104)
01625 #define DCM_IMGLARGESTPIXELVALUE        DCM_MAKETAG(DCM_GROUPIMAGE,0x0105)
01626 #define DCM_IMGSMALLESTIMAGEPIXELVALUE  DCM_MAKETAG(DCM_GROUPIMAGE,0x0106)
01627 #define DCM_IMGLARGESTIMAGEPIXELVALUE   DCM_MAKETAG(DCM_GROUPIMAGE,0x0107)
01628 #define DCM_IMGSMALLESTPIXELVALUESERIES DCM_MAKETAG(DCM_GROUPIMAGE,0x0108)
01629 #define DCM_IMGLARGESTPIXELVALUESERIES  DCM_MAKETAG(DCM_GROUPIMAGE,0x0109)
01630 #define DCM_IMGSMALLESTIMAGEPIXELVALUEPLANE DCM_MAKETAG(DCM_GROUPIMAGE, 0x0110)
01631 #define DCM_IMGLARGESTIMAGEPIXELVALUEPLANE DCM_MAKETAG(DCM_GROUPIMAGE, 0x0111)
01632 #define DCM_IMGPIXELPADDINGVALUE        DCM_MAKETAG(DCM_GROUPIMAGE,0x0120)
01633 #define DCM_IMGWAVEFORMPADDINGVALUE     DCM_MAKETAG(DCM_GROUPIMAGE,0x0122)
01634 
01635 /* Retired 0200 */
01636 #define DCM_IMGIMAGELOCATION            DCM_MAKETAG(DCM_GROUPIMAGE,0x0200)
01637 #define DCM_IMGPIXELINTENSITYRELATIONSHIP DCM_MAKETAG(DCM_GROUPIMAGE,0x1040)
01638 #define DCM_IMGWINDOWCENTER             DCM_MAKETAG(DCM_GROUPIMAGE,0x1050)
01639 #define DCM_IMGWINDOWWIDTH              DCM_MAKETAG(DCM_GROUPIMAGE,0x1051)
01640 #define DCM_IMGRESCALEINTERCEPT         DCM_MAKETAG(DCM_GROUPIMAGE,0x1052)
01641 #define DCM_IMGRESCALESLOPE             DCM_MAKETAG(DCM_GROUPIMAGE,0x1053)
01642 #define DCM_IMGRESCALETYPE              DCM_MAKETAG(DCM_GROUPIMAGE,0x1054)
01643 #define DCM_IMGWINDOWCWEXPLANATION      DCM_MAKETAG(DCM_GROUPIMAGE,0x1055)
01644 
01645 /* Retired 1080 */
01646 #define DCM_IMGGRAYSCALE                DCM_MAKETAG(DCM_GROUPIMAGE,0x1080)
01647 #define DCM_IMGRECOMMENDEDVIEWINGMODE   DCM_MAKETAG(DCM_GROUPIMAGE,0x1090)
01648 
01649 /* Retired 1100 */
01650 #define DCM_IMGLUTDESCRIPTGRAY          DCM_MAKETAG(DCM_GROUPIMAGE,0x1100)
01651 #define DCM_IMGLUTDESCRIPTRED           DCM_MAKETAG(DCM_GROUPIMAGE,0x1101)
01652 #define DCM_IMGLUTDESCRIPTGREEN         DCM_MAKETAG(DCM_GROUPIMAGE,0x1102)
01653 #define DCM_IMGLUTDESCRIPTBLUE          DCM_MAKETAG(DCM_GROUPIMAGE,0x1103)
01654 #define DCM_IMGPALETTECOLORLUTUID       DCM_MAKETAG(DCM_GROUPIMAGE,0x1199)
01655 
01656 /* Retired, 1200 */
01657 #define DCM_IMGLOOKUPDATAGRAY           DCM_MAKETAG(DCM_GROUPIMAGE,0x1200)
01658 #define DCM_IMGLOOKUPDATARED            DCM_MAKETAG(DCM_GROUPIMAGE,0x1201)
01659 #define DCM_IMGLOOKUPDATAGREEN          DCM_MAKETAG(DCM_GROUPIMAGE,0x1202)
01660 #define DCM_IMGLOOKUPDATABLUE           DCM_MAKETAG(DCM_GROUPIMAGE,0x1203)
01661 #define DCM_IMGSEGMENTEDREDLUTDATA      DCM_MAKETAG(DCM_GROUPIMAGE,0x1221)
01662 #define DCM_IMGSEGMENTEDGREENLUTDATA    DCM_MAKETAG(DCM_GROUPIMAGE,0x1222)
01663 #define DCM_IMGSEGMENTEDBLUELUTDATA     DCM_MAKETAG(DCM_GROUPIMAGE,0x1223)
01664 #define DCM_IMGLOSSYIMAGECOMPRESSION    DCM_MAKETAG(DCM_GROUPIMAGE,0x2110)
01665 #define DCM_IMGMODALITYLUTSEQUENCE      DCM_MAKETAG(DCM_GROUPIMAGE,0x3000)
01666 #define DCM_IMGLUTDESCRIPTOR            DCM_MAKETAG(DCM_GROUPIMAGE,0x3002)
01667 #define DCM_IMGLUTEXPLANATION           DCM_MAKETAG(DCM_GROUPIMAGE,0x3003)
01668 #define DCM_IMGMODALITYLUTTYPE          DCM_MAKETAG(DCM_GROUPIMAGE,0x3004)
01669 #define DCM_IMGLUTDATA                  DCM_MAKETAG(DCM_GROUPIMAGE,0x3006)
01670 #define DCM_IMGVOILUTSEQUENCE           DCM_MAKETAG(DCM_GROUPIMAGE,0x3010)
01671 
01672 /* Retired, 4000 */
01673 #define DCM_IMGCOMMENTS                 DCM_MAKETAG(DCM_GROUPIMAGE,0x4000)
01674 #define DCM_IMGBIPLANEACQSEQUENCE       DCM_MAKETAG(DCM_GROUPIMAGE,0x5000)
01675 #define DCM_IMGREPRESENTATIVEFRAMENUMBER DCM_MAKETAG(DCM_GROUPIMAGE,0x6010)
01676 #define DCM_IMGFRAMENUMBERSOFINTEREST   DCM_MAKETAG(DCM_GROUPIMAGE,0x6020)
01677 #define DCM_IMGFRAMEOFINTERESTDESCRIPTION DCM_MAKETAG(DCM_GROUPIMAGE,0x6022)
01678 #define DCM_IMGMASKPOINTER              DCM_MAKETAG(DCM_GROUPIMAGE,0x6030)
01679 #define DCM_IMGRWAVEPOINTER             DCM_MAKETAG(DCM_GROUPIMAGE,0x6040)
01680 #define DCM_IMGMASKSUBTRACTIONSEQ       DCM_MAKETAG(DCM_GROUPIMAGE,0x6100)
01681 #define DCM_IMGMASKOPERATION            DCM_MAKETAG(DCM_GROUPIMAGE,0x6101)
01682 #define DCM_IMGAPPLICABLEFRAMERANGE     DCM_MAKETAG(DCM_GROUPIMAGE,0x6102)
01683 #define DCM_IMGMASKFRAMENUMBERS         DCM_MAKETAG(DCM_GROUPIMAGE,0x6110)
01684 #define DCM_IMGCONTRASTFRAMEAVERAGING   DCM_MAKETAG(DCM_GROUPIMAGE,0x6112)
01685 #define DCM_IMGMASKSUBPIXELSHIFT        DCM_MAKETAG(DCM_GROUPIMAGE,0x6114)
01686 #define DCM_IMGTIDOFFSET                DCM_MAKETAG(DCM_GROUPIMAGE,0x6120)
01687 #define DCM_MASKOPERATIONEXPLANATION    DCM_MAKETAG(DCM_GROUPIMAGE,0x6190)
01688 
01689 
01690 /*  Define the elements for the STUDY group (0x0032)
01691 */
01692 
01693 #define DCM_SDYGROUPLENGTH              DCM_MAKETAG(DCM_GROUPSTUDY,0x0000)
01694 #define DCM_SDYSTATUSID                 DCM_MAKETAG(DCM_GROUPSTUDY,0x000A)
01695 #define DCM_SDYPRIORITYID               DCM_MAKETAG(DCM_GROUPSTUDY,0x000C)
01696 #define DCM_SDYIDISSUER                 DCM_MAKETAG(DCM_GROUPSTUDY,0x0012)
01697 #define DCM_SDYVERIFIEDDATE             DCM_MAKETAG(DCM_GROUPSTUDY,0x0032)
01698 #define DCM_SDYVERIFIEDTIME             DCM_MAKETAG(DCM_GROUPSTUDY,0x0033)
01699 #define DCM_SDYREADDATE                 DCM_MAKETAG(DCM_GROUPSTUDY,0x0034)
01700 #define DCM_SDYREADTIME                 DCM_MAKETAG(DCM_GROUPSTUDY,0x0035)
01701 #define DCM_SDYSCHEDULEDSTARTDATE       DCM_MAKETAG(DCM_GROUPSTUDY,0x1000)
01702 #define DCM_SDYSCHEDULEDSTARTTIME       DCM_MAKETAG(DCM_GROUPSTUDY,0x1001)
01703 #define DCM_SDYSCHEDULEDSTOPDATE        DCM_MAKETAG(DCM_GROUPSTUDY,0x1010)
01704 #define DCM_SDYSCHEDULEDSTOPTIME        DCM_MAKETAG(DCM_GROUPSTUDY,0x1011)
01705 #define DCM_SDYSCHEDULEDLOCATION        DCM_MAKETAG(DCM_GROUPSTUDY,0x1020)
01706 #define DCM_SDYSCHEDULEDLOCATIONAETITLE DCM_MAKETAG(DCM_GROUPSTUDY,0x1021)
01707 #define DCM_SDYREASON                   DCM_MAKETAG(DCM_GROUPSTUDY,0x1030)
01708 #define DCM_SDYREQUESTINGPHYSICIAN      DCM_MAKETAG(DCM_GROUPSTUDY,0x1032)
01709 #define DCM_SDYREQUESTINGSERVICE        DCM_MAKETAG(DCM_GROUPSTUDY,0x1033)
01710 #define DCM_SDYARRIVALDATE              DCM_MAKETAG(DCM_GROUPSTUDY,0x1040)
01711 #define DCM_SDYARRIVALTIME              DCM_MAKETAG(DCM_GROUPSTUDY,0x1041)
01712 #define DCM_SDYCOMPLETIONDATE           DCM_MAKETAG(DCM_GROUPSTUDY,0x1050)
01713 #define DCM_SDYCOMPLETIONTIME           DCM_MAKETAG(DCM_GROUPSTUDY,0x1051)
01714 #define DCM_SDYSTUDYCOMPONENTSTATUSID   DCM_MAKETAG(DCM_GROUPSTUDY,0x1055)
01715 #define DCM_SDYREQUESTEDPRODESCRIPTION  DCM_MAKETAG(DCM_GROUPSTUDY,0x1060)
01716 #define DCM_SDYREQUESTEDPROCODESEQ      DCM_MAKETAG(DCM_GROUPSTUDY,0x1064)
01717 #define DCM_SDYREQUESTEDCONTRASTAGENT   DCM_MAKETAG(DCM_GROUPSTUDY,0x1070)
01718 #define DCM_SDYCOMMENTS                 DCM_MAKETAG(DCM_GROUPSTUDY,0x4000)
01719 
01720 /* Define the elements for the VISIT group (0x0038)
01721 */
01722 
01723 #define DCM_VISGROUPLENGTH              DCM_MAKETAG(DCM_GROUPVISIT,0x0000)
01724 #define DCM_VISREFERENCEDPATALIASSEQ    DCM_MAKETAG(DCM_GROUPVISIT,0x0004)
01725 #define DCM_VISSTATUSID                 DCM_MAKETAG(DCM_GROUPVISIT,0x0008)
01726 #define DCM_VISADMISSIONID              DCM_MAKETAG(DCM_GROUPVISIT,0x0010)
01727 #define DCM_VISISSUEROFADMISSIONID      DCM_MAKETAG(DCM_GROUPVISIT,0x0011)
01728 #define DCM_VISROUTEOFADMISSION         DCM_MAKETAG(DCM_GROUPVISIT,0x0016)
01729 #define DCM_VISSCHEDULEDADMISSIONDATE   DCM_MAKETAG(DCM_GROUPVISIT,0x001a)
01730 #define DCM_VISSCHEDULEDADMISSIONTIME   DCM_MAKETAG(DCM_GROUPVISIT,0x001b)
01731 #define DCM_VISSCHEDULEDDISCHARGEDATE   DCM_MAKETAG(DCM_GROUPVISIT,0x001c)
01732 #define DCM_VISSCHEDULEDDISCHARGETIME   DCM_MAKETAG(DCM_GROUPVISIT,0x001d)
01733 #define DCM_VISSCHEDULEDPATINSTRESIDENCE DCM_MAKETAG(DCM_GROUPVISIT,0x001e)
01734 #define DCM_VISADMITTINGDATE            DCM_MAKETAG(DCM_GROUPVISIT,0x0020)
01735 #define DCM_VISADMITTINGTIME            DCM_MAKETAG(DCM_GROUPVISIT,0x0021)
01736 #define DCM_VISDISCHARGEDATE            DCM_MAKETAG(DCM_GROUPVISIT,0x0030)
01737 #define DCM_VISDISCHARGETIME            DCM_MAKETAG(DCM_GROUPVISIT,0x0032)
01738 #define DCM_VISDISCHARGEDIAGDESCRIPTION DCM_MAKETAG(DCM_GROUPVISIT,0x0040)
01739 #define DCM_VISDISCHARGEDIAGNOSISCODESEQ        DCM_MAKETAG(DCM_GROUPVISIT,0x0044)
01740 #define DCM_VISSPECIALNEEDS             DCM_MAKETAG(DCM_GROUPVISIT,0x0050)
01741 #define DCM_VISCURRENTPATIENTLOCATION   DCM_MAKETAG(DCM_GROUPVISIT,0x0300)
01742 #define DCM_VISPATIENTSINSTRESIDENCE    DCM_MAKETAG(DCM_GROUPVISIT,0x0400)
01743 #define DCM_VISPATIENTSTATE             DCM_MAKETAG(DCM_GROUPVISIT,0x0500)
01744 #define DCM_VISCOMMENTS                 DCM_MAKETAG(DCM_GROUPVISIT,0x4000)
01745 
01746 /* Define elements for the Procedure Step group (0040)
01747 */
01748 
01749 #define DCM_PRCGROUPLENGTH              DCM_MAKETAG(DCM_GRPPROCEDURE,0x0000)
01750 #define DCM_PRCSCHEDULEDSTATIONAETITLE  DCM_MAKETAG(DCM_GRPPROCEDURE,0x0001)
01751 #define DCM_PRCSCHEDULEDPROCSTEPSTARTDATE       DCM_MAKETAG(DCM_GRPPROCEDURE,0x0002)
01752 #define DCM_PRCSCHEDULEDPROCSTEPSTARTTIME       DCM_MAKETAG(DCM_GRPPROCEDURE,0x0003)
01753 #define DCM_PRCSCHEDULEDPROCSTEPENDDATE         DCM_MAKETAG(DCM_GRPPROCEDURE,0x0004)
01754 #define DCM_PRCSCHEDULEDPROCSTEPENDTIME         DCM_MAKETAG(DCM_GRPPROCEDURE,0x0005)
01755 #define DCM_PRCSCHEDULEDPERFORMINGPHYSNAME      DCM_MAKETAG(DCM_GRPPROCEDURE,0x0006)
01756 #define DCM_PRCSCHEDULEDPROCSTEPDESCRIPTION     DCM_MAKETAG(DCM_GRPPROCEDURE,0x0007)
01757 #define DCM_PRCSCHEDULEDACTIONITEMCODESEQ       DCM_MAKETAG(DCM_GRPPROCEDURE,0x0008)
01758 #define DCM_PRCSCHEDULEDPROCSTEPID      DCM_MAKETAG(DCM_GRPPROCEDURE,0x0009)
01759 #define DCM_PRCSCHEDULEDSTATIONNAME     DCM_MAKETAG(DCM_GRPPROCEDURE,0x0010)
01760 #define DCM_PRCSCHEDULEDPROCSTEPLOCATION        DCM_MAKETAG(DCM_GRPPROCEDURE,0x0011)
01761 #define DCM_PRCPREMEDICATION            DCM_MAKETAG(DCM_GRPPROCEDURE,0x0012)
01762 #define DCM_PRCSTATUS                   DCM_MAKETAG(DCM_GRPPROCEDURE,0x0020)
01763 #define DCM_PRCSCHEDULEDPROCSTEPSEQ     DCM_MAKETAG(DCM_GRPPROCEDURE,0x0100)
01764 #define DCM_PRCREFSTANDALONESOPSEQ      DCM_MAKETAG(DCM_GRPPROCEDURE,0x0220)
01765 #define DCM_PRCPERFORMEDSTATIONAET      DCM_MAKETAG(DCM_GRPPROCEDURE,0x0241)
01766 #define DCM_PRCPERFORMEDSTATIONNAME     DCM_MAKETAG(DCM_GRPPROCEDURE,0x0242)
01767 #define DCM_PRCPERFORMEDLOCATION        DCM_MAKETAG(DCM_GRPPROCEDURE,0x0243)
01768 #define DCM_PRCPPSSTARTDATE             DCM_MAKETAG(DCM_GRPPROCEDURE,0x0244)
01769 #define DCM_PRCPPSSTARTTIME             DCM_MAKETAG(DCM_GRPPROCEDURE,0x0245)
01770 #define DCM_PRCPPSENDDATE               DCM_MAKETAG(DCM_GRPPROCEDURE,0x0250)
01771 #define DCM_PRCPPSENDTIME               DCM_MAKETAG(DCM_GRPPROCEDURE,0x0251)
01772 #define DCM_PRCPPSSTATUS                DCM_MAKETAG(DCM_GRPPROCEDURE,0x0252)
01773 #define DCM_PRCPPSID                    DCM_MAKETAG(DCM_GRPPROCEDURE,0x0253)
01774 #define DCM_PRCPPSDESCRIPTION           DCM_MAKETAG(DCM_GRPPROCEDURE,0x0254)
01775 #define DCM_PRCPPTYPEDESCRIPTION        DCM_MAKETAG(DCM_GRPPROCEDURE,0x0255)
01776 #define DCM_PRCPERFORMEDAISEQUENCE      DCM_MAKETAG(DCM_GRPPROCEDURE,0x0260)
01777 #define DCM_PRCSCHEDSTEPATTRSEQ         DCM_MAKETAG(DCM_GRPPROCEDURE,0x0270)
01778 #define DCM_PRCREQUESTATTRIBUTESSEQ     DCM_MAKETAG(DCM_GRPPROCEDURE,0x0275)
01779 #define DCM_PRCCOMMENTSPPS              DCM_MAKETAG(DCM_GRPPROCEDURE,0x0280)
01780 #define DCM_PRCQUANTITYSEQ              DCM_MAKETAG(DCM_GRPPROCEDURE,0x0293)
01781 #define DCM_PRCQUANTITY                 DCM_MAKETAG(DCM_GRPPROCEDURE,0x0294)
01782 #define DCM_PRCMEASURINGUNITSSEQ        DCM_MAKETAG(DCM_GRPPROCEDURE,0x0295)
01783 #define DCM_PRCBILLINGITEMSEQ           DCM_MAKETAG(DCM_GRPPROCEDURE,0x0296)
01784 #define DCM_PRCTOTALTIMEFLUOROSCOPY     DCM_MAKETAG(DCM_GRPPROCEDURE,0x0300)
01785 #define DCM_PRCTOTALNUMBEREXPOSURES     DCM_MAKETAG(DCM_GRPPROCEDURE,0x0301)
01786 #define DCM_PRCENTRANCEDOSE             DCM_MAKETAG(DCM_GRPPROCEDURE,0x0302)
01787 #define DCM_PRCEXPOSEDAREA              DCM_MAKETAG(DCM_GRPPROCEDURE,0x0303)
01788 #define DCM_PRCDISTANCESOURCEENTRANCE   DCM_MAKETAG(DCM_GRPPROCEDURE,0x0306)
01789 #define DCM_PRCCOMMENTSRADIATIONDOSE    DCM_MAKETAG(DCM_GRPPROCEDURE,0x0310)
01790 #define DCM_PRCBILLINGPROCEDURESTEPSEQ  DCM_MAKETAG(DCM_GRPPROCEDURE,0x0320)
01791 #define DCM_PRCFILMCONSUMPTIONSEQ       DCM_MAKETAG(DCM_GRPPROCEDURE,0x0321)
01792 #define DCM_PRCBILLINGSUPPLIESDEVICESEQ DCM_MAKETAG(DCM_GRPPROCEDURE,0x0324)
01793 #define DCM_PRCREFERENCEDPPS            DCM_MAKETAG(DCM_GRPPROCEDURE,0x0330)
01794 #define DCM_PRCPERFORMEDSERIESSEQ       DCM_MAKETAG(DCM_GRPPROCEDURE,0x0340)
01795 #define DCM_PRCCOMMENTSONSCHEDULEDPROCSTEP      DCM_MAKETAG(DCM_GRPPROCEDURE,0x0400)
01796 #define DCM_PRCREQUESTEDPROCEDUREID     DCM_MAKETAG(DCM_GRPPROCEDURE,0x1001)
01797 #define DCM_PRCREASONFORREQUESTEDPROC   DCM_MAKETAG(DCM_GRPPROCEDURE,0x1002)
01798 #define DCM_PRCREQUESTEDPROCPRIORITY    DCM_MAKETAG(DCM_GRPPROCEDURE,0x1003)
01799 #define DCM_PRCPATIENTTRANSPORTARRANGEMENTS     DCM_MAKETAG(DCM_GRPPROCEDURE,0x1004)
01800 #define DCM_PRCREQUESTEDPROCLOCATION    DCM_MAKETAG(DCM_GRPPROCEDURE,0x1005)
01801 #define DCM_PRCPLACERORDERNUMBERPROC    DCM_MAKETAG(DCM_GRPPROCEDURE,0x1006)
01802 #define DCM_PRCFILLERORDERNUMBERPROC    DCM_MAKETAG(DCM_GRPPROCEDURE,0x1007)
01803 #define DCM_PRCCONFIDENTIALITYCODE      DCM_MAKETAG(DCM_GRPPROCEDURE,0x1008)
01804 #define DCM_PRCREPORTINGPRIORITY        DCM_MAKETAG(DCM_GRPPROCEDURE,0x1009)
01805 #define DCM_PRCNAMESINTENDEDRECIPIENTSRESULTS   DCM_MAKETAG(DCM_GRPPROCEDURE,0x1010)
01806 #define DCM_PRCREQUESTEDPROCCOMMENTS    DCM_MAKETAG(DCM_GRPPROCEDURE,0x1400)
01807 #define DCM_PRCREASONFORIMAGINGSERVICEREQ       DCM_MAKETAG(DCM_GRPPROCEDURE,0x2001)
01808 #define DCM_PRCISSUEDATEIMAGINGSERVICEREQ       DCM_MAKETAG(DCM_GRPPROCEDURE,0x2004)
01809 #define DCM_PRCISSUETIMEIMAGINGSERVICEREQ       DCM_MAKETAG(DCM_GRPPROCEDURE,0x2005)
01810 #define DCM_PRCPLACERORDERNUMBERIMAGINGSRVREQ   DCM_MAKETAG(DCM_GRPPROCEDURE,0x2006)
01811 #define DCM_PRCFILLERORDERNUMBERIMAGINGSRVREQ   DCM_MAKETAG(DCM_GRPPROCEDURE,0x2007)
01812 #define DCM_PRCORDERENTEREDBY           DCM_MAKETAG(DCM_GRPPROCEDURE,0x2008)
01813 #define DCM_PRCORDERENTERERSLOCATION    DCM_MAKETAG(DCM_GRPPROCEDURE,0x2009)
01814 #define DCM_PRCORDERCALLBACKPHONENUMBER DCM_MAKETAG(DCM_GRPPROCEDURE,0x2010)
01815 #define DCM_PRCIMAGINGSERVICEREQCOMMENTS        DCM_MAKETAG(DCM_GRPPROCEDURE,0x2400)
01816 #define DCM_PRCCONFIDIENTIALITYCONSTRAINTPATIENTDATADES DCM_MAKETAG(DCM_GRPPROCEDURE,0x3001)
01817 
01818 /* Define elements for the Procedure Step group (0040), General Purpose
01819  * Scheduled/Performed Procedure Step Info
01820 */
01821 
01822 #define DCM_PRCGPSPSSTATUS                      DCM_MAKETAG(0x0040, 0x4001)
01823 #define DCM_PRCGPPPSSTATUS                      DCM_MAKETAG(0x0040, 0x4002)
01824 #define DCM_PRCGPSPSPRIORITY                    DCM_MAKETAG(0x0040, 0x4003)
01825 #define DCM_PRCSCHEDULEDPROCAPPCODESEQ          DCM_MAKETAG(0x0040, 0x4004)
01826 #define DCM_PRCGPSPSSTARTDATETIME               DCM_MAKETAG(0x0040, 0x4005)
01827 #define DCM_PRCGPSPSMULTIPLECOPIESFLAG          DCM_MAKETAG(0x0040, 0x4006)
01828 #define DCM_PRCPERFORMEDPROCAPPCODESEQ          DCM_MAKETAG(0x0040, 0x4007)
01829 #define DCM_PRCHUMANPERFORMERCODESEQ            DCM_MAKETAG(0x0040, 0x4009)
01830 #define DCM_PRCGPSPSEXPECTEDCOMPLETEDATETIME    DCM_MAKETAG(0x0040, 0x4011)
01831 #define DCM_PRCRESULTINGGPPERFPROCSTEPSEQ       DCM_MAKETAG(0x0040, 0x4015)
01832 #define DCM_PRCREFERENCEDGPSCHEDPROCSTEPSEQ     DCM_MAKETAG(0x0040, 0x4016)
01833 #define DCM_PRCSCHEDWORKITEMCODESEQ             DCM_MAKETAG(0x0040, 0x4018)
01834 #define DCM_PRCPERFORMEDWORKITEMCODESEQ         DCM_MAKETAG(0x0040, 0x4019)
01835 #define DCM_PRCINPUTAVAILFLAG                   DCM_MAKETAG(0x0040, 0x4020)
01836 #define DCM_PRCINPUTINFOSEQ                     DCM_MAKETAG(0x0040, 0x4021)
01837 #define DCM_PRCRELEVANTINFOSEQ                  DCM_MAKETAG(0x0040, 0x4022)
01838 #define DCM_PRCREFERENCEDGPSPSTRANSACTIONUID    DCM_MAKETAG(0x0040, 0x4023)
01839 #define DCM_PRCSCHEDSTATIONNAMECODESEQ          DCM_MAKETAG(0x0040, 0x4025)
01840 #define DCM_PRCSCHEDSTATIONCLASSCODESEQ         DCM_MAKETAG(0x0040, 0x4026)
01841 #define DCM_PRCSCHEDSTATIONLOCCODESEQ           DCM_MAKETAG(0x0040, 0x4027)
01842 #define DCM_PRCPERFORMEDSTATIONNAMECODESEQ      DCM_MAKETAG(0x0040, 0x4028)
01843 #define DCM_PRCPERFORMEDSTATIONCLASSCODESEQ     DCM_MAKETAG(0x0040, 0x4029)
01844 #define DCM_PRCPERFORMEDSTATIONLOCCODESEQ       DCM_MAKETAG(0x0040, 0x4030)
01845 #define DCM_PRCREQSUBSWORKITEMCODESEQ           DCM_MAKETAG(0x0040, 0x4031)
01846 #define DCM_PRCNONDICOMOUTPUTCODESEQ            DCM_MAKETAG(0x0040, 0x4032)
01847 #define DCM_PRCOUTPUTINFOSEQ                    DCM_MAKETAG(0x0040, 0x4033)
01848 #define DCM_PRCSCHEDHUMANPERFORMERSSEQ          DCM_MAKETAG(0x0040, 0x4034)
01849 #define DCM_PRCACTUALHUMANPERFORMERSSEQ         DCM_MAKETAG(0x0040, 0x4035)
01850 #define DCM_PRCHUMANPERFORMERSORG               DCM_MAKETAG(0x0040, 0x4036)
01851 #define DCM_PRCHUMANPERFORMERSNAME              DCM_MAKETAG(0x0040, 0x4037)
01852 
01853 #define DCM_PRCRELATIONSHIPTYPE         DCM_MAKETAG(0x0040, 0xa010)
01854 #define DCM_PRCVERIFYINGORGANIZATION    DCM_MAKETAG(0x0040, 0xa027)
01855 #define DCM_PRCVERIFICATIONDATETIME     DCM_MAKETAG(0x0040, 0xa030)
01856 #define DCM_PRCOBSERVATIONDATETIME      DCM_MAKETAG(0x0040, 0xa032)
01857 #define DCM_PRCVALUETYPE                DCM_MAKETAG(0x0040, 0xa040)
01858 #define DCM_PRCCONCEPTNAMECODESEQ       DCM_MAKETAG(0x0040, 0xa043)
01859 #define DCM_PRCCONTINUITYOFCONTENT      DCM_MAKETAG(0x0040, 0xa050)
01860 #define DCM_PRCVERIFYINGOBSERVERSEQ     DCM_MAKETAG(0x0040, 0xa073)
01861 #define DCM_PRCVERIFYINGOBSERVERNAME    DCM_MAKETAG(0x0040, 0xa075)
01862 #define DCM_PRCVERIFYINGOBSERVERIDCODESEQ       DCM_MAKETAG(0x0040, 0xa088) 
01863 #define DCM_PRCDATETIME                 DCM_MAKETAG(0x0040, 0xa120)
01864 #define DCM_PRCUID                      DCM_MAKETAG(0x0040, 0xa124)
01865 #define DCM_PRCTEXTVALUE                DCM_MAKETAG(0x0040, 0xa160)
01866 #define DCM_PRCMEASUREDVALUESEQ         DCM_MAKETAG(0x0040, 0xa300)
01867 #define DCM_PRCPREDECESSORDOCUMENTSSEQ  DCM_MAKETAG(0x0040, 0xa360)
01868 #define DCM_PRCREFERENCEDDOCUMENTSSEQ   DCM_MAKETAG(0x0040, 0xa370)
01869 #define DCM_PRCPERFORMEDPROCEDURECODESEQ        DCM_MAKETAG(0x0040, 0xa372) 
01870 #define DCM_PRCCURRENTREQPROCEVIDENCESEQ        DCM_MAKETAG(0x0040, 0xa375)
01871 #define DCM_PRCPERTINENTOTHEREVIDENCESEQ        DCM_MAKETAG(0x0040, 0xa385)
01872 #define DCM_PRCCOMPLETIONFLAG           DCM_MAKETAG(0x0040, 0xa491)
01873 #define DCM_PRCCOMPLETIONFLAGDESCR      DCM_MAKETAG(0x0040, 0xa492)
01874 #define DCM_PRCVERIFICATIONFLAG         DCM_MAKETAG(0x0040, 0xa493)
01875 #define DCM_PRCCONTENTTEMPLATESEQ       DCM_MAKETAG(0x0040, 0xa504)
01876 #define DCM_PRCIDENTIFICALDOCUMENTSSEQ  DCM_MAKETAG(0x0040, 0xa525)
01877 #define DCM_PRCCONTENTSEQ               DCM_MAKETAG(0x0040, 0xa730)
01878 #define DCM_PRCTEMPLATEIDENTIFIER       DCM_MAKETAG(0x0040, 0xdb00)
01879 #define DCM_PRCTEMPLATEVERSION          DCM_MAKETAG(0x0040, 0xdb06)
01880 #define DCM_PRCTEMPLATELOCALVERSION     DCM_MAKETAG(0x0040, 0xdb07)
01881 #define DCM_PRCTEMPLATEEXTENSIONFLAG    DCM_MAKETAG(0x0040, 0xdb0b)
01882 #define DCM_PRCTEMPLATEEXTENSIONORGUID  DCM_MAKETAG(0x0040, 0xdb0c)
01883 #define DCM_PRCTEMPLATEEXTENSIONCREATORUID      DCM_MAKETAG(0x0040, 0xdb0d) 
01884 #define DCM_PRCREFERENCEDCONTENTITEMID  DCM_MAKETAG(0x0040, 0xdb73)
01885 
01886 /* Define the elements for the DEVICE group (0x0050)
01887 */
01888 
01889 #define DCM_DEVGROUPLENGTH              DCM_MAKETAG(DCM_GROUPDEVICE,0x0000)
01890 #define DCM_DEVCALIBRATIONOBJECT        DCM_MAKETAG(DCM_GROUPDEVICE,0x0004)
01891 #define DCM_DEVDEVICESEQUENCE           DCM_MAKETAG(DCM_GROUPDEVICE,0x0010)
01892 #define DCM_DEVDEVICELENGTH             DCM_MAKETAG(DCM_GROUPDEVICE,0x0014)
01893 #define DCM_DEVDEVICEDIAMETER           DCM_MAKETAG(DCM_GROUPDEVICE,0x0016)
01894 #define DCM_DEVDEVICEDIAMETERUNITS      DCM_MAKETAG(DCM_GROUPDEVICE,0x0017)
01895 #define DCM_DEVDEVICEVOLUME             DCM_MAKETAG(DCM_GROUPDEVICE,0x0018)
01896 #define DCM_DEVINTERMARKERDISTANCE      DCM_MAKETAG(DCM_GROUPDEVICE,0x0019)
01897 #define DCM_DEVDEVICEDESCRIPTION        DCM_MAKETAG(DCM_GROUPDEVICE,0x0020)
01898 
01899 /* define the elements of the RESULTS (0x4008) group
01900 */
01901 
01902 #define DCM_RESGROUPLENGTH              DCM_MAKETAG(DCM_GROUPRESULTS,0x0000)
01903 #define DCM_RESID                       DCM_MAKETAG(DCM_GROUPRESULTS,0x0040)
01904 #define DCM_RESIDISSUER                 DCM_MAKETAG(DCM_GROUPRESULTS,0x0042)
01905 #define DCM_RESREFERENCEDINTERPSEQ      DCM_MAKETAG(DCM_GROUPRESULTS,0x0050)
01906 #define DCM_RESINTERPRECORDEDDATE       DCM_MAKETAG(DCM_GROUPRESULTS,0x0100)
01907 #define DCM_RESINTERPRECORDEDTIME       DCM_MAKETAG(DCM_GROUPRESULTS,0x0101)
01908 #define DCM_RESINTERPRECORDER           DCM_MAKETAG(DCM_GROUPRESULTS,0x0102)
01909 #define DCM_RESREFERENCETORECORDEDSOUND DCM_MAKETAG(DCM_GROUPRESULTS,0x0103)
01910 #define DCM_RESINTERPTRANSCRIPTIONDATE  DCM_MAKETAG(DCM_GROUPRESULTS,0x0108)
01911 #define DCM_RESINTERPTRANSCRIPTIONTIME  DCM_MAKETAG(DCM_GROUPRESULTS,0x0109)
01912 #define DCM_RESINTERPTRANSCRIBER        DCM_MAKETAG(DCM_GROUPRESULTS,0x010a)
01913 #define DCM_RESINTERPTEXT               DCM_MAKETAG(DCM_GROUPRESULTS,0x010b)
01914 #define DCM_RESINTERPAUTHOR             DCM_MAKETAG(DCM_GROUPRESULTS,0x010c)
01915 #define DCM_RESINTERPAPPROVERSEQUENCE   DCM_MAKETAG(DCM_GROUPRESULTS,0x0111)
01916 #define DCM_RESINTERPAPPROVALDATE       DCM_MAKETAG(DCM_GROUPRESULTS,0x0112)
01917 #define DCM_RESINTERPAPPROVALTIME       DCM_MAKETAG(DCM_GROUPRESULTS,0x0113)
01918 #define DCM_RESPHYSICIANAPPROVINGINTERP DCM_MAKETAG(DCM_GROUPRESULTS,0x0114)
01919 #define DCM_RESDIAGNOSIS                DCM_MAKETAG(DCM_GROUPRESULTS,0x0115)
01920 #define DCM_RESDIAGNOSISCODESEQ         DCM_MAKETAG(DCM_GROUPRESULTS,0x0117)
01921 #define DCM_RESDISTRIBUTIIONLISTSEQUENCE DCM_MAKETAG(DCM_GROUPRESULTS,0x0118)
01922 #define DCM_RESDISTRIBUTIONNAME         DCM_MAKETAG(DCM_GROUPRESULTS,0x0119)
01923 #define DCM_RESDISTRIBUTIONADDRESS      DCM_MAKETAG(DCM_GROUPRESULTS,0x011a)
01924 #define DCM_RESINTERPID                 DCM_MAKETAG(DCM_GROUPRESULTS,0x0200)
01925 #define DCM_RESINTERPIDISSUER           DCM_MAKETAG(DCM_GROUPRESULTS,0x0202)
01926 #define DCM_RESINTERPTYPEID             DCM_MAKETAG(DCM_GROUPRESULTS,0x0210)
01927 #define DCM_RESINTERPSTATUSID           DCM_MAKETAG(DCM_GROUPRESULTS,0x0212)
01928 #define DCM_RESIMPRESSIONS              DCM_MAKETAG(DCM_GROUPRESULTS,0x0300)
01929 #define DCM_RESCOMMENTS                 DCM_MAKETAG(DCM_GROUPRESULTS,0x4000)
01930 
01931 /* Define the elements for the  Curve group (50xx) */
01932 #define DCM_CURVEGROUPLENGTH            DCM_MAKETAG(DCM_GROUPCURVE, 0x0000)
01933 #define DCM_CURVEDIMENSIONS             DCM_MAKETAG(DCM_GROUPCURVE, 0x0005)
01934 #define DCM_CURVENUMBEROFPOINTS         DCM_MAKETAG(DCM_GROUPCURVE, 0x0010)
01935 #define DCM_CURVETYPEOFDATA             DCM_MAKETAG(DCM_GROUPCURVE, 0x0020)
01936 #define DCM_CURVEDESCRIPTION            DCM_MAKETAG(DCM_GROUPCURVE, 0x0022)
01937 #define DCM_CURVEAXISUNITS              DCM_MAKETAG(DCM_GROUPCURVE, 0x0030)
01938 #define DCM_CURVEAXISLABELS             DCM_MAKETAG(DCM_GROUPCURVE, 0x0040)
01939 #define DCM_CURVEDATAVALUEREPRESENTATION   DCM_MAKETAG(DCM_GROUPCURVE, 0x0103)
01940 #define DCM_CURVEMINCOORDINATEVALUE     DCM_MAKETAG(DCM_GROUPCURVE, 0x0104)
01941 #define DCM_CURVEMAXCOORDINATEVALUE     DCM_MAKETAG(DCM_GROUPCURVE, 0x0105)
01942 #define DCM_CURVERANGE                  DCM_MAKETAG(DCM_GROUPCURVE, 0x0106)
01943 #define DCM_CURVEDATADESCRIPTOR         DCM_MAKETAG(DCM_GROUPCURVE, 0x0110)
01944 #define DCM_CURVECOORDINATESTARTVALUE   DCM_MAKETAG(DCM_GROUPCURVE, 0x0112)
01945 #define DCM_CURVECOORDINATESTEPVALUE    DCM_MAKETAG(DCM_GROUPCURVE, 0x0114)
01946 #define DCM_CURVEAUDIOTYPE              DCM_MAKETAG(DCM_GROUPCURVE, 0x2000)
01947 #define DCM_CURVEAUDIOSAMPLEFORMAT      DCM_MAKETAG(DCM_GROUPCURVE, 0x2002)
01948 #define DCM_CURVENUMBEROFCHANNELS       DCM_MAKETAG(DCM_GROUPCURVE, 0x2004)
01949 #define DCM_CURVENUMBEROFSAMPLES        DCM_MAKETAG(DCM_GROUPCURVE, 0x2006)
01950 #define DCM_CURVESAMPLERATE             DCM_MAKETAG(DCM_GROUPCURVE, 0x2008)
01951 #define DCM_CURVETOTALTIME              DCM_MAKETAG(DCM_GROUPCURVE, 0x200A)
01952 #define DCM_CURVEAUDIOSAMPLEDATA        DCM_MAKETAG(DCM_GROUPCURVE, 0x200C)
01953 #define DCM_CURVEAUDIOCOMMENTS          DCM_MAKETAG(DCM_GROUPCURVE, 0x200E)
01954 #define DCM_CURVELABEL                  DCM_MAKETAG(DCM_GROUPCURVE, 0x2500)
01955 #define DCM_CURVEREFOVERLAYSEQUENCE     DCM_MAKETAG(DCM_GROUPCURVE, 0x2600)
01956 #define DCM_CURVEREFOVERLAYGROUP        DCM_MAKETAG(DCM_GROUPCURVE, 0x2610)
01957 #define DCM_CURVEDATA                   DCM_MAKETAG(DCM_GROUPCURVE, 0x3000)
01958 
01959 /*  Define the elements for the NM Image group.  (0054) */
01960 #define DCM_NMIGROUPLENGTH              DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0000)
01961 #define DCM_NMIENERGYWINDOWVECTOR       DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0010)
01962 #define DCM_NMINUMBEROFENERGYWINDOWS    DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0011)
01963 #define DCM_NMIENERGYWINDOWINFOSEQ      DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0012)
01964 #define DCM_NMIENERGYWINDOWRANGESEQ     DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0013)
01965 #define DCM_NMIENERGYWINDOWLOWERLIMIT   DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0014)
01966 #define DCM_NMIENERGYWINDOWUPPERLIMIT   DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0015)
01967 #define DCM_NMIRADIOPHARMINFOSEQ        DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0016)
01968 #define DCM_NMIRESIDUALSYRINGECOUNTS    DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0017)
01969 #define DCM_NMIENERGYWINDOWNAME         DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0018)
01970 #define DCM_NMIDETECTORVECTOR           DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0020)
01971 #define DCM_NMINUMBEROFDETECTORS        DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0021)
01972 #define DCM_NMIDETECTORINFOSEQUENCE     DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0022)
01973 #define DCM_NMIPHASEVECTOR              DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0030)
01974 #define DCM_NMINUMBEROFPHASES           DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0031)
01975 #define DCM_NMIPHASEINFOSEQUENCE        DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0032)
01976 #define DCM_NMINUMBEROFFRAMESINPHASE    DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0033)
01977 #define DCM_NMIPHASEDELAY               DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0036)
01978 #define DCM_NMIPAUSEBETWEENFRAMES       DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0038)
01979 #define DCM_NMIROTATIONVECTOR           DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0050)
01980 #define DCM_NMINUMBEROFROTATIONS        DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0051)
01981 #define DCM_NMIROTATIONINFOSEQUENCE     DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0052)
01982 #define DCM_NMINUMBEROFFRAMESINROTATION DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0053)
01983 #define DCM_NMIRRINTERVALVECTOR         DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0060)
01984 #define DCM_NMINUMBEROFRRINTERVALS      DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0061)
01985 #define DCM_NMIGATEDINFOSEQUENCE        DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0062)
01986 #define DCM_NMIDATAINFORMATIONSEQUENCE  DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0063)
01987 #define DCM_NMITIMESLOTVECTOR           DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0070)
01988 #define DCM_NMINUMBEROFTIMESLOTS        DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0071)
01989 #define DCM_NMITIMESLOTINFOSEQUENCE     DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0072)
01990 #define DCM_NMITIMESLOTTIME             DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0073)
01991 #define DCM_NMISLICEVECTOR              DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0080)
01992 #define DCM_NMINUMBEROFSLICES           DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0081)
01993 #define DCM_NMIANGULARVIEWVECTOR        DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0090)
01994 #define DCM_NMITIMESLICEVECTOR          DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0100)
01995 #define DCM_NMINUMBEROFTIMESLICES       DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0101)
01996 #define DCM_NMISTARTANGLE               DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0200)
01997 #define DCM_NMITYPEOFDETECTORMOTION     DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0202)
01998 #define DCM_NMITRIGGERVECTOR            DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0210)
01999 #define DCM_NMINUMBEROFTRIGGERSINPHASE  DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0211)
02000 #define DCM_NMIVIEWCODESEQUENCE         DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0220)
02001 #define DCM_NMIVIEWANGULATIONMODIFIERCODESEQ DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0222)
02002 #define DCM_NMIRADIONUCLIDECODESEQUENCE DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0300)
02003 #define DCM_NMIRADIOPHARMROUTECODESEQUENCE DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0302)
02004 #define DCM_NMIRADIOPHARMCODESEQUENCE   DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0304)
02005 #define DCM_NMICALIBRATIONDATASEQUENCE  DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0306)
02006 #define DCM_NMIENERGYWINDOWNUMBER       DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0308)
02007 #define DCM_NMIIMAGEID                  DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0400)
02008 #define DCM_NMIPATIENTORIENTATIONCODESEQ        DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0410)
02009 #define DCM_NMIPATIENTORIENTATIONMODIFIERCODESEQ DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0412)
02010 #define DCM_NMIPATIENTGANTRYRELATIONSHIPCODESEQ DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x0414)
02011 #define DCM_NMISERIESTYPE               DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1000)
02012 #define DCM_NMIUNITS                    DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1001)
02013 #define DCM_NMICOUNTSSOURCE             DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1002)
02014 #define DCM_NMIREPROJECTIONMETHOD       DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1004)
02015 #define DCM_NMIRANDOMSCORRECTIONMETHOD  DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1100)
02016 #define DCM_NMIATTENUATIONCORRECTIONMETHOD DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1101)
02017 #define DCM_NMIDECAYCORRECTION          DCM_MAKETAG(DCM_GROUPNMIMAGE,0x1102)
02018 #define DCM_NMIRECONSTRUCTIONMETHOD     DCM_MAKETAG(DCM_GROUPNMIMAGE,0x1103)
02019 #define DCM_NMIDETECTORLINESRESPONSEUSED DCM_MAKETAG(DCM_GROUPNMIMAGE,0x1104)
02020 #define DCM_NMISCATTERCORRECTIONMETHOD  DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1105)
02021 #define DCM_NMIAXIALACCEPTANCE          DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1200)
02022 #define DCM_NMIAXIALMASH                DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1201)
02023 #define DCM_NMITRANSVERSEMASH           DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1202)
02024 #define DCM_NMIDETECTORELEMENTSIZE      DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1203)
02025 #define DCM_NMICOINCIDENCEWINDOWWIDTH   DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1210)
02026 #define DCM_NMISECONDARYCOUNTSTYPE      DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1220)
02027 #define DCM_NMIFRAMEREFERENCETIME       DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1300)
02028 #define DCM_NMIPRIMARYCOUNTSACCUMULATED DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1310)
02029 #define DCM_NMISECONDARYCOUNTSACCUMULATED DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1311)
02030 #define DCM_NMISLICESENSITIVITYFACTOR   DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1320)
02031 #define DCM_NMIDECAYFACTOR              DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1321)
02032 #define DCM_NMIDOSECALIBRATIONFACTOR    DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1322)
02033 #define DCM_NMISCATTERFRACTIONFACTOR    DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1323)
02034 #define DCM_NMIDEADTIMEFACTOR           DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1324)
02035 #define DCM_NMIIMAGEINDEX               DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1330)
02036 #define DCM_NMICOUNTSINCLUDED           DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1400)
02037 #define DCM_NMIDEADTIMECORRECTIONFLAG   DCM_MAKETAG(DCM_GROUPNMIMAGE, 0x1401)
02038 
02039 /*  Define the elements for the OVERLAY group. (60xx) */
02040 #define DCM_OLYGROUPLENGTH              DCM_MAKETAG(DCM_GROUPOVERLAY, 0x0000)
02041 #define DCM_OLYROWS                     DCM_MAKETAG(DCM_GROUPOVERLAY, 0x0010)
02042 #define DCM_OLYCOLUMNS                  DCM_MAKETAG(DCM_GROUPOVERLAY, 0x0011)
02043 #define DCM_OLYPLANES                   DCM_MAKETAG(DCM_GROUPOVERLAY, 0x0012)
02044 #define DCM_OLYNUMBEROFFRAMESINOVERLAY  DCM_MAKETAG(DCM_GROUPOVERLAY, 0x0015)
02045 #define DCM_OLYOVERLAYDESCRIPTION       DCM_MAKETAG(DCM_GROUPOVERLAY, 0x0022)
02046 #define DCM_OLYTYPE                     DCM_MAKETAG(DCM_GROUPOVERLAY, 0x0040)
02047 #define DCM_OLYSUBTYPE                  DCM_MAKETAG(DCM_GROUPOVERLAY, 0x0045)
02048 #define DCM_OLYORIGIN                   DCM_MAKETAG(DCM_GROUPOVERLAY, 0x0050)
02049 #define DCM_OLYIMAGEFRAMEORIGIN         DCM_MAKETAG(DCM_GROUPOVERLAY, 0x0051)
02050 #define DCM_OLYOVERLAYPLANEORIGIN       DCM_MAKETAG(DCM_GROUPOVERLAY, 0x0052)
02051 
02052 /* Retired, 0060 */
02053 #define DCM_OLYCOMPRESSIONCODE          DCM_MAKETAG(DCM_GROUPOVERLAY, 0x0060)
02054 #define DCM_OLYBITSALLOCATED            DCM_MAKETAG(DCM_GROUPOVERLAY, 0x0100)
02055 #define DCM_OLYBITPOSITION              DCM_MAKETAG(DCM_GROUPOVERLAY, 0x0102)
02056 
02057 /* Retired, 00110, 0200) */
02058 #define DCM_OLYOVERLAYFORMAT            DCM_MAKETAG(DCM_GROUPOVERLAY, 0x0110)
02059 #define DCM_OLYOVERLAYLOCATION          DCM_MAKETAG(DCM_GROUPOVERLAY, 0x0200)
02060 #define DCM_OLYDESCRIPTORGRAY           DCM_MAKETAG(DCM_GROUPOVERLAY, 0x1100)
02061 #define DCM_OLYDESCRIPTORRED            DCM_MAKETAG(DCM_GROUPOVERLAY, 0x1101)
02062 #define DCM_OLYDESCRIPTORGREEN          DCM_MAKETAG(DCM_GROUPOVERLAY, 0x1102)
02063 #define DCM_OLYDESCRIPTORBLUE           DCM_MAKETAG(DCM_GROUPOVERLAY, 0x1103)
02064 #define DCM_OLYGRAY                     DCM_MAKETAG(DCM_GROUPOVERLAY, 0x1200)
02065 #define DCM_OLYRED                      DCM_MAKETAG(DCM_GROUPOVERLAY, 0x1201)
02066 #define DCM_OLYGREEN                    DCM_MAKETAG(DCM_GROUPOVERLAY, 0x1202)
02067 #define DCM_OLYBLUE                     DCM_MAKETAG(DCM_GROUPOVERLAY, 0x1203)
02068 #define DCM_OLYROIAREA                  DCM_MAKETAG(DCM_GROUPOVERLAY, 0x1301)
02069 #define DCM_OLYROIMEAN                  DCM_MAKETAG(DCM_GROUPOVERLAY, 0x1302)
02070 #define DCM_OLYROISTANDARDDEVIATION     DCM_MAKETAG(DCM_GROUPOVERLAY, 0x1303)
02071 #define DCM_OLYOVERLAYLABEL             DCM_MAKETAG(DCM_GROUPOVERLAY, 0x1500)
02072 #define DCM_OLYDATA                     DCM_MAKETAG(DCM_GROUPOVERLAY, 0x3000)
02073 
02074 /* Retired, 4000 */
02075 #define DCM_OLYCOMMENTS                 DCM_MAKETAG(DCM_GROUPOVERLAY, 0x4000)
02076 
02077 /*  Define the elements for the PIXEL group (7FE0)
02078 */
02079 #define DCM_PXLGROUPLENGTH              DCM_MAKETAG(DCM_GROUPPIXEL,0x0000)
02080 #define DCM_PXLPIXELDATA                DCM_MAKETAG(DCM_GROUPPIXEL,0x0010)
02081 
02082 /* Define the elements for the MEDIA group, 0x0088  */
02083 #define DCM_MEDIAGROUPLENGTH            DCM_MAKETAG(DCM_GROUPMEDIA,0x0000)
02084 #define DCM_MEDIASTORAGEFILESETID       DCM_MAKETAG(DCM_GROUPMEDIA,0x0130)
02085 #define DCM_MEDIASTORAGEFILESETUID      DCM_MAKETAG(DCM_GROUPMEDIA,0x0140)
02086 #define DCM_MEDIAICONIMAGE              DCM_MAKETAG(DCM_GROUPMEDIA,0x0200)
02087 #define DCM_MEDIATOPICTITLE             DCM_MAKETAG(DCM_GROUPMEDIA,0x0904)
02088 #define DCM_MEDIATOPICSUBJECT           DCM_MAKETAG(DCM_GROUPMEDIA,0x0906)
02089 #define DCM_MEDIATOPICAUTHOR            DCM_MAKETAG(DCM_GROUPMEDIA,0x0910)
02090 #define DCM_MEDIATOPICKEYWORD           DCM_MAKETAG(DCM_GROUPMEDIA,0x0912)
02091 
02092 /* Define the elements for the BASICFILMSESSION group (2000)
02093 */
02094 #define DCM_BFSGROUPLENGTH              DCM_MAKETAG(DCM_GROUPBASICFILMSESSION,0x000)
02095 #define DCM_BFSCOPIES                   DCM_MAKETAG(DCM_GROUPBASICFILMSESSION,0x0010)
02096 #define DCM_BFSPRINTPRIORITY            DCM_MAKETAG(DCM_GROUPBASICFILMSESSION,0x0020)
02097 #define DCM_BFSMEDIUMTYPE               DCM_MAKETAG(DCM_GROUPBASICFILMSESSION,0x0030)
02098 #define DCM_BFSFILMDESTINATION          DCM_MAKETAG(DCM_GROUPBASICFILMSESSION,0x0040)
02099 #define DCM_BFSFILMSESSIONLABEL         DCM_MAKETAG(DCM_GROUPBASICFILMSESSION,0x0050)
02100 #define DCM_BFSMEMORYALLOCATION         DCM_MAKETAG(DCM_GROUPBASICFILMSESSION,0x0060)
02101 #define DCM_BFSREFERENCEDFILMBOXSEQ     DCM_MAKETAG(DCM_GROUPBASICFILMSESSION,0x0500)
02102 
02103 /* Define the elements for the BASICFILMBOX group (2010)
02104 */
02105 #define DCM_BFBGROUPLENGTH              DCM_MAKETAG(DCM_GROUPBASICFILMBOX,0x0000)
02106 #define DCM_BFBIMAGEDISPLAYFORMAT       DCM_MAKETAG(DCM_GROUPBASICFILMBOX,0x0010)
02107 #define DCM_BFBANNOTATIONDISPLAYFORMAT  DCM_MAKETAG(DCM_GROUPBASICFILMBOX,0x0030)
02108 #define DCM_BFBFILMORIENTATION          DCM_MAKETAG(DCM_GROUPBASICFILMBOX,0x0040)
02109 #define DCM_BFBFILMSIZEID               DCM_MAKETAG(DCM_GROUPBASICFILMBOX,0x0050)
02110 #define DCM_BFBMAGNIFICATIONTYPE        DCM_MAKETAG(DCM_GROUPBASICFILMBOX,0x0060)
02111 #define DCM_BFBSMOOTHINGTYPE            DCM_MAKETAG(DCM_GROUPBASICFILMBOX,0x0080)
02112 #define DCM_BFBBORDERDENSITY            DCM_MAKETAG(DCM_GROUPBASICFILMBOX,0x0100)
02113 #define DCM_BFBEMPTYIMAGEDENSITY        DCM_MAKETAG(DCM_GROUPBASICFILMBOX,0x0110)
02114 #define DCM_BFBMINDENSITY               DCM_MAKETAG(DCM_GROUPBASICFILMBOX,0x0120)
02115 #define DCM_BFBMAXDENSITY               DCM_MAKETAG(DCM_GROUPBASICFILMBOX,0x0130)
02116 #define DCM_BFBTRIM                     DCM_MAKETAG(DCM_GROUPBASICFILMBOX,0x0140)
02117 #define DCM_BFBCONFIGURATIONINFO        DCM_MAKETAG(DCM_GROUPBASICFILMBOX,0x0150)
02118 #define DCM_BFBREFBASICFILMSESSIONSEQ   DCM_MAKETAG(DCM_GROUPBASICFILMBOX,0x0500)
02119 #define DCM_BFBREFBASICIMAGEBOXSEQ      DCM_MAKETAG(DCM_GROUPBASICFILMBOX,0x0510)
02120 #define DCM_BFBREFBASICANNOTBOXSEQ      DCM_MAKETAG(DCM_GROUPBASICFILMBOX,0x0520)
02121 
02122 /* Define the elements of the BASICIMAGEBOX group (2020)
02123 */
02124 #define DCM_BIBGROUPLENGTH              DCM_MAKETAG(DCM_GROUPBASICIMAGEBOX,0x0000)
02125 #define DCM_BIBIMAGEPOSITION            DCM_MAKETAG(DCM_GROUPBASICIMAGEBOX,0x0010)
02126 #define DCM_BIBPOLARITY                 DCM_MAKETAG(DCM_GROUPBASICIMAGEBOX,0x0020)
02127 #define DCM_BIBREQUESTEDIMAGESIZE       DCM_MAKETAG(DCM_GROUPBASICIMAGEBOX,0x0030)
02128 #define DCM_BIBPREFORMATGREYSCALEIMAGESEQ       DCM_MAKETAG(DCM_GROUPBASICIMAGEBOX,0x0110)
02129 #define DCM_BIBPREFORMATCOLORIMAGESEQ   DCM_MAKETAG(DCM_GROUPBASICIMAGEBOX,0x0111)
02130 #define DCM_BIBREFIMAGEOVERLAYBOXSEQ    DCM_MAKETAG(DCM_GROUPBASICIMAGEBOX,0x0130)
02131 #define DCM_BIBREFVOILUTSEQ             DCM_MAKETAG(DCM_GROUPBASICIMAGEBOX,0x0140)
02132 
02133 /* Define the elements of the BASICANNOTATIONBOX group (2030)
02134 */
02135 #define DCM_BABGROUPLENGTH              DCM_MAKETAG(DCM_GROUPBASICANNOTATIONBOX,0x0000)
02136 #define DCM_BABANNOTATIONPOSITION       DCM_MAKETAG(DCM_GROUPBASICANNOTATIONBOX,0x0010)
02137 #define DCM_BABTEXTSTRING               DCM_MAKETAG(DCM_GROUPBASICANNOTATIONBOX,0x0020)
02138 
02139 /* Defines the elements of the BASICIMAGEOVERLAYBOX group (2040)
02140 */
02141 #define DCM_IOBGROUPLENGTH              DCM_MAKETAG(DCM_GROUPBASICIMAGEOVERLAYBOX,0x0000)
02142 #define DCM_IOBREFOVERLAYPLANESEQ       DCM_MAKETAG(DCM_GROUPBASICIMAGEOVERLAYBOX,0x0010)
02143 #define DCM_IOBREFOVERLAYPLANEGROUPS    DCM_MAKETAG(DCM_GROUPBASICIMAGEOVERLAYBOX,0x0011)
02144 #define DCM_IOBOVERLAYMAGNIFICATIONTYPE DCM_MAKETAG(DCM_GROUPBASICIMAGEOVERLAYBOX,0x0060)
02145 #define DCM_IOBOVERLAYSMOOTHINGTYPE     DCM_MAKETAG(DCM_GROUPBASICIMAGEOVERLAYBOX,0x0070)
02146 #define DCM_IOBOVERLAYFOREGROUNDDENSITY DCM_MAKETAG(DCM_GROUPBASICIMAGEOVERLAYBOX,0x0080)
02147 #define DCM_IOBOVERLAYMODE              DCM_MAKETAG(DCM_GROUPBASICIMAGEOVERLAYBOX,0x0090)
02148 #define DCM_IOBTHRESHOLDDENSITY         DCM_MAKETAG(DCM_GROUPBASICIMAGEOVERLAYBOX,0x0100)
02149 #define DCM_IOBREFIMAGEBOXSEQUENCE      DCM_MAKETAG(DCM_GROUPBASICIMAGEOVERLAYBOX,0x0500)
02150 
02151 /* Define the elements of the PRINTJOB group (2100)
02152 */
02153 #define DCM_PJGROUPLENGTH               DCM_MAKETAG(DCM_GROUPPRINTJOB,0x0000)
02154 #define DCM_PJEXECUTIONSTATUS           DCM_MAKETAG(DCM_GROUPPRINTJOB,0x0020)
02155 #define DCM_PJEXECUTIONSTATUSINFO       DCM_MAKETAG(DCM_GROUPPRINTJOB,0x0030)
02156 #define DCM_PJCREATIONDATE              DCM_MAKETAG(DCM_GROUPPRINTJOB,0x0040)
02157 #define DCM_PJCREATIONTIME              DCM_MAKETAG(DCM_GROUPPRINTJOB,0x0050)
02158 #define DCM_PJORIGINATOR                DCM_MAKETAG(DCM_GROUPPRINTJOB,0x0070)
02159 #define DCM_PJREFPRINTJOBSEQ            DCM_MAKETAG(DCM_GROUPPRINTJOB,0x0500)
02160 
02161 /* Define the elements of the PRINTER group, 0x2110
02162 */
02163 #define DCM_PRINTERGROUPLENGTH          DCM_MAKETAG(DCM_GROUPPRINTER,0x0000)
02164 #define DCM_PRINTERSTATUS               DCM_MAKETAG(DCM_GROUPPRINTER,0x0010)
02165 #define DCM_PRINTERSTATUSINFO           DCM_MAKETAG(DCM_GROUPPRINTER,0x0020)
02166 #define DCM_PRINTERNAME                 DCM_MAKETAG(DCM_GROUPPRINTER,0x0030)
02167 #define DCM_PRINTERQUEUEID              DCM_MAKETAG(DCM_GROUPPRINTER,0x0099)
02168 
02169 /*  Define any semantics associated with pixel representation
02170 */
02171 #define DCM_PIXELUNSIGNED       0
02172 #define DCM_PIXELTWOSCOMPLEMENT 1
02173 
02174 /* Define the attributes in the Padding group, 0xfffc
02175 */
02176 
02177 #define DCM_PADITEM                     DCM_MAKETAG(DCM_GROUPPAD, 0xfffc)
02178 
02179 /* Define the attributes in the Delimiter group
02180 */
02181 
02182 #define DCM_DLMITEM                     DCM_MAKETAG(DCM_GROUPDELIMITER, 0xe000)
02183 #define DCM_DLMITEMDELIMITATIONITEM     DCM_MAKETAG(DCM_GROUPDELIMITER, 0xe00d)
02184 #define DCM_DLMSEQUENCEDELIMITATIONITEM DCM_MAKETAG(DCM_GROUPDELIMITER, 0xe0dd)
02185 
02186 /* Define the values for the Data Set Type in the Command Field
02187 */
02188 
02189 #define DCM_CMDDATAIMAGE        0x0000
02190 #define DCM_CMDDATAGRAPHICS     0x0002
02191 #define DCM_CMDDATATEXT         0x0003
02192 #define DCM_CMDDATAOTHER        0x0100
02193 #define DCM_CMDDATANULL         0x0101
02194 #define DCM_CMDDATAIDENTIFIER   0x0102
02195 #define DCM_CMDDATAPRIVIMAGE    0x8000
02196 #define DCM_CMDDATAPRIVGRAPHICS 0x8002
02197 #define DCM_CMDDATAPRIVTEXT     0x8003
02198 
02199 /* Define status values */
02200 
02201 #define DCM_STATUS_SUCCESS      0x0000
02202 #define DCM_STATUS_PENDING      0xff00
02203 #define DCM_STATUS_REFUSED      0x01
02204 #define DCM_STATUS_FAILED       0x02
02205 
02206 /* Define priority values in messages */
02207 
02208 #define DCM_PRIORITYLOW         0x2
02209 #define DCM_PRIORITYMEDIUM      0x0
02210 #define DCM_PRIORITYHIGH        0x1
02211 
02212 /* Define legal values to be transmitted as Query Level */
02213 
02214 #define DCM_QUERYLEVELPATIENT   "PATIENT"
02215 #define DCM_QUERYLEVELSTUDY     "STUDY"
02216 #define DCM_QUERYLEVELSERIES    "SERIES"
02217 #define DCM_QUERYLEVELIMAGE     "IMAGE"
02218 
02219 /* Define legal values for the Photometric Interpretation */
02220 
02221 #define DCM_IMGPHOTOINTERPMONOCHROME1   "MONOCHROME1"
02222 #define DCM_IMGPHOTOINTERPMONOCHROME2   "MONOCHROME2"
02223 #define DCM_IMGPHOTOINTERPPALETTECOLOR  "PALETTE COLOR"
02224 #define DCM_IMGPHOTOINTERPRGB           "RGB"
02225 #define DCM_IMGPHOTOINTERPHSV           "HSV"
02226 #define DCM_IMGPHOTOINTERPRGBA          "RGBA"
02227 #define DCM_IMGPHOTOINTERPCMYK          "CMYK"
02228 
02229 #define DCM_UNSPECIFIEDLENGTH   0xffffffff
02230 #define DCM_DELIMITOR   '\\'
02231 
02232 #ifdef  __cplusplus
02233 }
02234 #endif
02235 
02236 #endif
02237 /*
02238           Copyright (C) 1993, 1994, RSNA and Washington University
02239 
02240           The software and supporting documentation for the Radiological
02241           Society of North America (RSNA) 1993, 1994 Digital Imaging and
02242           Communications in Medicine (DICOM) Demonstration were developed
02243           at the
02244                   Electronic Radiology Laboratory
02245                   Mallinckrodt Institute of Radiology
02246                   Washington University School of Medicine
02247                   510 S. Kingshighway Blvd.
02248                   St. Louis, MO 63110
02249           as part of the 1993, 1994 DICOM Central Test Node project for, and
02250           under contract with, the Radiological Society of North America.
02251 
02252           THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND NEITHER RSNA NOR
02253           WASHINGTON UNIVERSITY MAKE ANY WARRANTY ABOUT THE SOFTWARE, ITS
02254           PERFORMANCE, ITS MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
02255           USE, FREEDOM FROM ANY COMPUTER DISEASES OR ITS CONFORMITY TO ANY
02256           SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND PERFORMANCE OF
02257           THE SOFTWARE IS WITH THE USER.
02258 
02259           Copyright of the software and supporting documentation is
02260           jointly owned by RSNA and Washington University, and free access
02261           is hereby granted as a license to use this software, copy this
02262           software and prepare derivative works based upon this software.
02263           However, any distribution of this software source code or
02264           supporting documentation or derivative works (source code and
02265           supporting documentation) must include the three paragraphs of
02266           the copyright notice.
02267 */
02268 /* Copyright marker.  Copyright will be inserted above.  Do not remove */
02269 /*
02270 ** @$=@$=@$=
02271 */
02272 /*
02273 **                              DICOM 93
02274 **                   Electronic Radiology Laboratory
02275 **                 Mallinckrodt Institute of Radiology
02276 **              Washington University School of Medicine
02277 **
02278 ** Module Name(s):
02279 ** Author, Date:        Stephen M. Moore, 15-Apr-93
02280 ** Intent:              This header defines public typedefs for the DICOM
02281 **                      software produced at the Mallinckrodt Institute of
02282 **                      Radiology.  It also defines unique identifiers
02283 **                      for standard classes and objects defined by the
02284 **                      standard.
02285 ** Last Update:         $Author: rwcox $, $Date: 2002/10/29 20:47:44 $
02286 ** Source File:         $RCSfile: mri_dicom_hdr.h,v $
02287 ** Revision:            $Revision: 1.8 $
02288 ** Status:              $State: Exp $
02289 */
02290 
02291 #ifndef CTNOS_IS_IN
02292 #define CTNOS_IS_IN 1
02293 
02294 #ifdef  __cplusplus
02295 extern "C" {
02296 #endif
02297 
02298 #include <stdio.h>
02299 #include <string.h>
02300 #include <stdlib.h>
02301 #include <stdarg.h>
02302 #include <errno.h>
02303 #include <signal.h>
02304 #include <time.h>
02305 #include <sys/types.h>
02306 #include <sys/stat.h>
02307 
02308 #ifdef _WIN32
02309 #include <io.h>
02310 #include <fcntl.h>
02311 #include <winsock.h>
02312 #include <process.h>
02313 #include <sys/timeb.h>
02314 #include <direct.h>
02315 
02316 typedef SOCKET CTN_SOCKET;
02317 #define CTN_BAD_SOCKET INVALID_SOCKET
02318 
02319 #else
02320 #include <unistd.h>
02321 #include <sys/file.h>
02322 #include <sys/socket.h>
02323 /*#include <sys/param.h>*/
02324 #include <sys/time.h>
02325 #include <sys/wait.h>
02326 #include <netinet/in.h>
02327 #include <netdb.h>
02328 #include <sys/param.h>
02329 #include <sys/utsname.h>
02330 #include <dirent.h>
02331 
02332 typedef int CTN_SOCKET;
02333 #define CTN_BAD_SOCKET -1
02334 #endif
02335 
02336 #ifdef SOLARIS
02337 #include <fcntl.h>
02338 #endif
02339 
02340 #ifdef USEREGCOMP
02341 #include <regex.h>
02342 #endif
02343 
02344 
02345 #ifdef  __cplusplus
02346 }
02347 #endif
02348 
02349 #endif
02350 /*
02351           Copyright (C) 1993, 1994, RSNA and Washington University
02352 
02353           The software and supporting documentation for the Radiological
02354           Society of North America (RSNA) 1993, 1994 Digital Imaging and
02355           Communications in Medicine (DICOM) Demonstration were developed
02356           at the
02357                   Electronic Radiology Laboratory
02358                   Mallinckrodt Institute of Radiology
02359                   Washington University School of Medicine
02360                   510 S. Kingshighway Blvd.
02361                   St. Louis, MO 63110
02362           as part of the 1993, 1994 DICOM Central Test Node project for, and
02363           under contract with, the Radiological Society of North America.
02364 
02365           THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND NEITHER RSNA NOR
02366           WASHINGTON UNIVERSITY MAKE ANY WARRANTY ABOUT THE SOFTWARE, ITS
02367           PERFORMANCE, ITS MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
02368           USE, FREEDOM FROM ANY COMPUTER DISEASES OR ITS CONFORMITY TO ANY
02369           SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND PERFORMANCE OF
02370           THE SOFTWARE IS WITH THE USER.
02371 
02372           Copyright of the software and supporting documentation is
02373           jointly owned by RSNA and Washington University, and free access
02374           is hereby granted as a license to use this software, copy this
02375           software and prepare derivative works based upon this software.
02376           However, any distribution of this software source code or
02377           supporting documentation or derivative works (source code and
02378           supporting documentation) must include the three paragraphs of
02379           the copyright notice.
02380 */
02381 /* Copyright marker.  Copyright will be inserted above.  Do not remove */
02382 
02383 /*
02384 **                              DICOM 93
02385 **                   Electronic Radiology Laboratory
02386 **                 Mallinckrodt Institute of Radiology
02387 **              Washington University School of Medicine
02388 **
02389 ** Module Name(s):
02390 ** Author, Date:        Stephen M. Moore, 26-Apr-93
02391 ** Intent:
02392 **      This file defines private structures for the DICOM information
02393 **      object package.
02394 ** Last Update:         $Author: rwcox $, $Date: 2002/10/29 20:47:44 $
02395 ** Source File:         $RCSfile: mri_dicom_hdr.h,v $
02396 ** Revision:            $Revision: 1.8 $
02397 ** Status:              $State: Exp $
02398 */
02399 
02400 #ifdef  __cplusplus
02401 extern "C" {
02402 #endif
02403 
02404 typedef struct {
02405     void *reserved[2];
02406     unsigned short group;
02407 /*    unsigned long groupLength; */
02408     unsigned long baseLength;
02409     int longVRAttributes;
02410     LST_HEAD *elementList;
02411 }   PRV_GROUP_ITEM;
02412 
02413 typedef struct {
02414     void *reserved[2];
02415     DCM_ELEMENT element;
02416     int byteOrder;
02417     off_t dataOffset;
02418     off_t currentOffset;
02419     size_t allocatedDataLength;
02420     size_t originalDataLength;
02421     size_t paddedDataLength;
02422     int fragmentFlag;
02423 }   PRV_ELEMENT_ITEM;
02424 
02425 #define DCM_OBJUNDEFINED 0x01
02426 #define DCM_OBJCOMMAND  0x02
02427 #define DCM_OBJDATASET  0x03
02428 
02429 typedef struct {
02430     void *reserved[2];
02431     char keyType[32];
02432     DCM_OBJECTTYPE objectType;
02433     int accessMethod;
02434     CTNBOOLEAN deleteFlag;
02435     CTNBOOLEAN groupLengthFlag;
02436     unsigned long objectSize;
02437     unsigned long offset;
02438     unsigned long pixelSize;
02439     unsigned long pixelOffset;
02440     unsigned short pixelBitsAllocated;
02441     unsigned short pixelRepresentation;
02442     PRV_GROUP_ITEM *groupCtx;
02443     PRV_ELEMENT_ITEM *elementCtx;
02444     int fd;
02445     char fileName[1024];
02446     void *userCtx;
02447         CONDITION(*rd) (void *ctx, void *buf, int toRead, int *bytesRead);
02448         CONDITION(*sk) (void *ctx, int offset, int flag);
02449     LST_HEAD *groupList;
02450     CTNBOOLEAN preambleFlag;
02451     unsigned char preamble[DCM_PREAMBLELENGTH];
02452     unsigned long dataOptions;
02453     unsigned long metaHeaderLength;
02454     int longVRAttributes;
02455     char waveformDataVR[DICOM_CS_LENGTH+1];
02456 }   PRIVATE_OBJECT;
02457 
02458 #define KEY_DCM_OBJECT  "KEY ACR NEMA V3 OBJECT"
02459 
02460 #define DCM_FILE_ACCESS         1
02461 #define DCM_MEMORY_ACCESS       2
02462 
02463 typedef union {
02464     unsigned short s;
02465     unsigned char u[2];
02466 }   SHORT_WORD;
02467 
02468 typedef union {
02469 #ifdef __alpha
02470     unsigned int l;
02471 #else
02472     unsigned long l;
02473 #endif
02474     unsigned char u[4];
02475 }   LONG_WORD;
02476 
02477 #define GET_SHORT_SAME_ORDER(A,B) {             \
02478         SHORT_WORD sss;                         \
02479         sss.u[0] = (A)[0];                      \
02480         sss.u[1] = (A)[1];                      \
02481         (B) = sss.s;                            \
02482 }
02483 
02484 #define GET_SHORT_REVERSE_ORDER(A,B) {          \
02485         SHORT_WORD sss;                         \
02486         sss.u[0] = (A)[1];                      \
02487         sss.u[1] = (A)[0];                      \
02488         (B) = sss.s;                            \
02489 }
02490 
02491 #define GET_LONG_SAME_ORDER(A,B) {              \
02492         LONG_WORD lll;                          \
02493         lll.u[0] = (A)[0];                      \
02494         lll.u[1] = (A)[1];                      \
02495         lll.u[2] = (A)[2];                      \
02496         lll.u[3] = (A)[3];                      \
02497         (B) = lll.l;                            \
02498 }
02499 
02500 #define GET_LONG_REVERSE_ORDER(A,B) {           \
02501         LONG_WORD lll;                          \
02502         lll.u[0] = (A)[3];                      \
02503         lll.u[1] = (A)[2];                      \
02504         lll.u[2] = (A)[1];                      \
02505         lll.u[3] = (A)[0];                      \
02506         (B) = lll.l;                            \
02507 }
02508 
02509 #ifdef  __cplusplus
02510 }
02511 #endif
02512 /*
02513           Copyright (C) 1993, 1994, RSNA and Washington University
02514 
02515           The software and supporting documentation for the Radiological
02516           Society of North America (RSNA) 1993, 1994 Digital Imaging and
02517           Communications in Medicine (DICOM) Demonstration were developed
02518           at the
02519                   Electronic Radiology Laboratory
02520                   Mallinckrodt Institute of Radiology
02521                   Washington University School of Medicine
02522                   510 S. Kingshighway Blvd.
02523                   St. Louis, MO 63110
02524           as part of the 1993, 1994 DICOM Central Test Node project for, and
02525           under contract with, the Radiological Society of North America.
02526 
02527           THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND NEITHER RSNA NOR
02528           WASHINGTON UNIVERSITY MAKE ANY WARRANTY ABOUT THE SOFTWARE, ITS
02529           PERFORMANCE, ITS MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
02530           USE, FREEDOM FROM ANY COMPUTER DISEASES OR ITS CONFORMITY TO ANY
02531           SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND PERFORMANCE OF
02532           THE SOFTWARE IS WITH THE USER.
02533 
02534           Copyright of the software and supporting documentation is
02535           jointly owned by RSNA and Washington University, and free access
02536           is hereby granted as a license to use this software, copy this
02537           software and prepare derivative works based upon this software.
02538           However, any distribution of this software source code or
02539           supporting documentation or derivative works (source code and
02540           supporting documentation) must include the three paragraphs of
02541           the copyright notice.
02542 */
02543 /* Copyright marker.  Copyright will be inserted above.  Do not remove */
02544 
02545 /*
02546 **                              DICOM 93
02547 **                   Electronic Radiology Laboratory
02548 **                 Mallinckrodt Institute of Radiology
02549 **              Washington University School of Medicine
02550 **
02551 ** Module Name(s):
02552 ** Author, Date:        Stephen M. Moore, 2-Jun-93
02553 ** Intent:              This include file defines constants for all of
02554 **                      the standard UIDs defined in the DICOM standard.
02555 ** Last Update:         $Author: rwcox $, $Date: 2002/10/29 20:47:44 $
02556 ** Source File:         $RCSfile: mri_dicom_hdr.h,v $
02557 ** Revision:            $Revision: 1.8 $
02558 ** Status:              $State: Exp $
02559 */
02560 
02561 #ifndef DICOM_UIDS_IS_IN
02562 #define DICOM_UIDS_IS_IN 1
02563 
02564 #ifdef  __cplusplus
02565 extern "C" {
02566 #endif
02567 
02568 #define MIR_IMPLEMENTATIONCLASSUID              "1.2.840.113654.2.3.1995.3.0.4"
02569 #define MIR_IMPLEMENTATIONVERSIONNAME           "MIRCTN17MAY2002"
02570 #define MIR_SOPCLASSKILLSERVER                  "1.2.840.113654.2.30.1"
02571 #define MIR_SOPCLASSRESETSERVER                 "1.2.840.113654.2.30.2"
02572 
02573 #define DICOM_SOPCLASSVERIFICATION              "1.2.840.10008.1.1"
02574 
02575 #define DICOM_TRANSFERLITTLEENDIAN              "1.2.840.10008.1.2"
02576 #define DICOM_TRANSFERLITTLEENDIANEXPLICIT      "1.2.840.10008.1.2.1"
02577 #define DICOM_TRANSFERBIGENDIANEXPLICIT         "1.2.840.10008.1.2.2"
02578 #define DICOM_TRANSFERJPEGBASELINEPROCESS1      "1.2.840.10008.1.2.4.50"
02579 #define DICOM_TRANSFERJPEGEXTENDEDPROC2AND4     "1.2.840.10008.1.2.4.51"
02580 #define DICOM_TRANSFERJPEGEXTENDEDPROC3AND5     "1.2.840.10008.1.2.4.52"
02581 #define DICOM_TRANSFERJPEGSPECTRALPROC6AND8     "1.2.840.10008.1.2.4.53"
02582 #define DICOM_TRANSFERJPEGSPECTRALPROC7AND9     "1.2.840.10008.1.2.4.54"
02583 #define DICOM_TRANSFERJPEGFULLPROGRESSPROC10AND12 "1.2.840.10008.1.2.4.55"
02584 #define DICOM_TRANSFERJPEGFULLPROGRESSPROC11AND13 "1.2.840.10008.1.2.4.56"
02585 #define DICOM_TRANSFERJPEGLOSSLESSPROC14        "1.2.840.10008.1.2.4.57"
02586 #define DICOM_TRANSFERJPEGLOSSLESSPROC15        "1.2.840.10008.1.2.4.58"
02587 #define DICOM_TRANSFERJPEGEXTENDEDPROC16AND18   "1.2.840.10008.1.2.4.59"
02588 #define DICOM_TRANSFERJPEGEXTENDEDPROC17AND19   "1.2.840.10008.1.2.4.60"
02589 #define DICOM_TRANSFERJPEGSPECTRALPROC20AND22   "1.2.840.10008.1.2.4.61"
02590 #define DICOM_TRANSFERJPEGSPECTRALPROC21AND23   "1.2.840.10008.1.2.4.62"
02591 #define DICOM_TRANSFERJPEGFULLPROGRESSPROC24AND26 "1.2.840.10008.1.2.4.63"
02592 #define DICOM_TRANSFERJPEGFULLPROGRESSPROC25AND27 "1.2.840.10008.1.2.4.64"
02593 #define DICOM_TRANSFERJPEGLOSSLESSPROC28        "1.2.840.10008.1.2.4.65"
02594 #define DICOM_TRANSFERJPEGLOSSLESSPROC29        "1.2.840.10008.1.2.4.66"
02595 #define DICOM_TRANSFERJPEGLOSSLESSPROCFIRSTORDERREDICT "1.2.840.10008.1.2.4.70"
02596 
02597 
02598 /* Define the UIDS for the service classes defined by the DICOM standard
02599 */
02600 #define DICOM_SOPCLASSBASICSTUDYCONTENTNOTIFICATION "1.2.840.10008.1.9"
02601 #define DICOM_SOPCLASSSTORAGECOMMITMENTPUSHMODEL "1.2.840.10008.1.20.1"
02602 #define DICOM_WELLKNOWNSTORAGECOMMITMENTPUSHMODEL "1.2.840.10008.1.20.1.1"
02603 #define DICOM_SOPCLASSSTORAGECOMMITMENTPULLMODEL "1.2.840.10008.1.20.2"
02604 #define DICOM_WELLKNOWNSTORAGECOMMITMENTPULLMODEL "1.2.840.10008.1.20.2.1"
02605 
02606 #define DICOM_STDAPPLICATIONCONTEXT             "1.2.840.10008.3.1.1.1"
02607 
02608 #define DICOM_SOPCLASSDETACHEDPATIENTMGMT       "1.2.840.10008.3.1.2.1.1"
02609 #define DICOM_SOPCLASSDETACHEDPATIENTMGMTMETA   "1.2.840.10008.3.1.2.1.4"
02610 #define DICOM_SOPCLASSDETACHEDVISITMGMT         "1.2.840.10008.3.1.2.2.1"
02611 #define DICOM_SOPCLASSDETACHEDSTUDYMGMT         "1.2.840.10008.3.1.2.3.1"
02612 #define DICOM_SOPCLASSSTUDYCOMPONENTMGMT        "1.2.840.10008.3.1.2.3.2"
02613 #define DICOM_SOPCLASSMPPS                      "1.2.840.10008.3.1.2.3.3"
02614 #define DICOM_SOPCLASSDETACHEDRESULTSMGMT       "1.2.840.10008.3.1.2.5.1"
02615 #define DICOM_SOPCLASSDETACHEDRESULTSMGMTMETA   "1.2.840.10008.3.1.2.5.4"
02616 #define DICOM_SOPCLASSDETACHEDSTUDYMGMTMETA     "1.2.840.10008.3.1.2.5.5"
02617 #define DICOM_SOPCLASSDETACHEDINTERPRETMGMT     "1.2.840.10008.3.1.2.6.1"
02618 
02619 #define DICOM_SOPCLASSBASICFILMSESSION          "1.2.840.10008.5.1.1.1"
02620 #define DICOM_SOPCLASSBASICFILMBOX              "1.2.840.10008.5.1.1.2"
02621 #define DICOM_SOPCLASSBASICGREYSCALEIMAGEBOX    "1.2.840.10008.5.1.1.4"
02622 #define DICOM_SOPCLASSBASICCOLORIMAGEBOX        "1.2.840.10008.5.1.1.4.1"
02623 #define DICOM_SOPCLASSREFERENCEDIMAGEBOX        "1.2.840.10008.5.1.1.4.2"
02624 #define DICOM_SOPCLASSGREYSCALEPRINTMGMTMETA    "1.2.840.10008.5.1.1.9"
02625 #define DICOM_SOPCLASSREFGREYSCALEPRINTMGMTMETA "1.2.840.10008.5.1.1.9.1"
02626 #define DICOM_SOPCLASSPRINTJOB                  "1.2.840.10008.5.1.1.14"
02627 #define DICOM_SOPCLASSBASICANNOTATIONBOX        "1.2.840.10008.5.1.1.15"
02628 #define DICOM_SOPCLASSPRINTER                   "1.2.840.10008.5.1.1.16"
02629 #define DICOM_SOPPRINTERINSTANCE                "1.2.840.10008.5.1.1.17"
02630 #define DICOM_SOPCLASSCOLORPRINTMGMTMETA        "1.2.840.10008.5.1.1.18"
02631 #define DICOM_SOPCLASSREFCOLORPRINTMGMTMETA     "1.2.840.10008.5.1.1.18.1"
02632 #define DICOM_SOPCLASSVOILUT                    "1.2.840.10008.5.1.1.22"
02633 #define DICOM_SOPCLASSIMAGEOVERLAYBOX           "1.2.840.10008.5.1.1.24"
02634 
02635 #define DICOM_SOPCLASSSTOREDPRINT               "1.2.840.10008.5.1.1.27"
02636 #define DICOM_SOPCLASSHARDCOPYGRAYSCALEIMAGE    "1.2.840.10008.5.1.1.29"
02637 #define DICOM_SOPCLASSHARDCOPYCOLORIMAGE        "1.2.840.10008.5.1.1.30"
02638 
02639 #define DICOM_SOPCLASSCOMPUTEDRADIOGRAPHY       "1.2.840.10008.5.1.4.1.1.1"
02640 #define DICOM_SOPCLASSDIGXRAYPRESENTATION       "1.2.840.10008.5.1.4.1.1.1.1"
02641 #define DICOM_SOPCLASSDIGXRAYPROCESSING         "1.2.840.10008.5.1.4.1.1.1.1.1"
02642 #define DICOM_SOPCLASSMAMMOXRPRESENTATION       "1.2.840.10008.5.1.4.1.1.1.2"
02643 #define DICOM_SOPCLASSMAMMOXRPROCESSING         "1.2.840.10008.5.1.4.1.1.1.2.1"
02644 #define DICOM_SOPCLASSINTRAORALPRESENTATION     "1.2.840.10008.5.1.4.1.1.1.3"
02645 #define DICOM_SOPCLASSINTRAORALPROCESSING       "1.2.840.10008.5.1.4.1.1.1.3.1"
02646 #define DICOM_SOPCLASSCT                        "1.2.840.10008.5.1.4.1.1.2"
02647 #define DICOM_SOPCLASSUSMULTIFRAMEIMAGE1993     "1.2.840.10008.5.1.4.1.1.3"
02648 #define DICOM_SOPCLASSUSMULTIFRAMEIMAGE         "1.2.840.10008.5.1.4.1.1.3.1"
02649 #define DICOM_SOPCLASSMR                        "1.2.840.10008.5.1.4.1.1.4"
02650 #define DICOM_SOPCLASSNM1993                    "1.2.840.10008.5.1.4.1.1.5"
02651 #define DICOM_SOPCLASSUS1993                    "1.2.840.10008.5.1.4.1.1.6"
02652 #define DICOM_SOPCLASSUS                        "1.2.840.10008.5.1.4.1.1.6.1"
02653 #define DICOM_SOPCLASSSECONDARYCAPTURE          "1.2.840.10008.5.1.4.1.1.7"
02654 #define DICOM_SOPCLASSSTANDALONEOVERLAY         "1.2.840.10008.5.1.4.1.1.8"
02655 #define DICOM_SOPCLASSSTANDALONECURVE           "1.2.840.10008.5.1.4.1.1.9"
02656 #define DICOM_SOPCLASSWAVEFORMSTORAGE           "1.2.840.10008.5.1.4.1.1.9.1"
02657 #define DICOM_SOPCLASSECGWAVEFORMSTORAGE        "1.2.840.10008.5.1.4.1.1.9.1.1"
02658 #define DICOM_SOPCLASSSTANDALONEMODALITYLUT     "1.2.840.10008.5.1.4.1.1.10"
02659 #define DICOM_SOPCLASSSTANDALONEVOILUT          "1.2.840.10008.5.1.4.1.1.11"
02660 #define DICOM_SOPCLASSGREYSCALEPS               "1.2.840.10008.5.1.4.1.1.11.1"
02661 #define DICOM_SOPCLASSXRAYANGIO                 "1.2.840.10008.5.1.4.1.1.12.1"
02662 #define DICOM_SOPCLASSXRAYFLUORO                "1.2.840.10008.5.1.4.1.1.12.2"
02663 #define DICOM_SOPCLASSXRAYANGIOBIPLANE_RET      "1.2.840.10008.5.1.4.1.1.12.3"
02664 #define DICOM_SOPCLASSNM                        "1.2.840.10008.5.1.4.1.1.20"
02665 #define DICOM_SOPCLASSVLENDOSCOPIC              "1.2.840.10008.5.1.4.1.1.77.1.1"
02666 #define DICOM_SOPCLASSVLMICROSCOPIC             "1.2.840.10008.5.1.4.1.1.77.1.2"
02667 #define DICOM_SOPCLASSVLSLIDEMICROSCOPIC        "1.2.840.10008.5.1.4.1.1.77.1.3"
02668 #define DICOM_SOPCLASSVLPHOTOGRAPHIC            "1.2.840.10008.5.1.4.1.1.77.1.4"
02669 #define DICOM_SOPCLASSBASICTEXTSR               "1.2.840.10008.5.1.4.1.1.88.11"
02670 #define DICOM_SOPCLASSENHANCEDSR                "1.2.840.10008.5.1.4.1.1.88.22"
02671 #define DICOM_SOPCLASSCOMPREHENSIVESR           "1.2.840.10008.5.1.4.1.1.88.33"
02672 #define DICOM_SOPCLASSKEYOBJECTNOTE             "1.2.840.10008.5.1.4.1.1.88.59"
02673 #define DICOM_SOPCLASSPET                       "1.2.840.10008.5.1.4.1.1.128"
02674 #define DICOM_SOPCLASSSTANDALONEPETCURVE        "1.2.840.10008.5.1.4.1.1.129"
02675 #define DICOM_SOPRTIMAGESTORAGE                 "1.2.840.10008.5.1.4.1.1.481.1"
02676 #define DICOM_SOPRTDOSESTORAGE                  "1.2.840.10008.5.1.4.1.1.481.2"
02677 #define DICOM_SOPRTSTRUCTURESETSTORAGE          "1.2.840.10008.5.1.4.1.1.481.3"
02678 #define DICOM_SOPRTBREAMS                       "1.2.840.10008.5.1.4.1.1.481.4"
02679 #define DICOM_SOPRTPLANSTORAGE                  "1.2.840.10008.5.1.4.1.1.481.5"
02680 #define DICOM_SOPRTBRACHYTREATMENT              "1.2.840.10008.5.1.4.1.1.481.6"
02681 #define DICOM_SOPRTTREATMENTSUMMARY             "1.2.840.10008.5.1.4.1.1.481.7"
02682 
02683 #define DICOM_SOPPATIENTQUERY_FIND              "1.2.840.10008.5.1.4.1.2.1.1"
02684 #define DICOM_SOPPATIENTQUERY_MOVE              "1.2.840.10008.5.1.4.1.2.1.2"
02685 #define DICOM_SOPPATIENTQUERY_GET               "1.2.840.10008.5.1.4.1.2.1.3"
02686 
02687 #define DICOM_SOPSTUDYQUERY_FIND                "1.2.840.10008.5.1.4.1.2.2.1"
02688 #define DICOM_SOPSTUDYQUERY_MOVE                "1.2.840.10008.5.1.4.1.2.2.2"
02689 #define DICOM_SOPSTUDYQUERY_GET                 "1.2.840.10008.5.1.4.1.2.2.3"
02690 
02691 #define DICOM_SOPPATIENTSTUDYQUERY_FIND         "1.2.840.10008.5.1.4.1.2.3.1"
02692 #define DICOM_SOPPATIENTSTUDYQUERY_MOVE         "1.2.840.10008.5.1.4.1.2.3.2"
02693 #define DICOM_SOPPATIENTSTUDYQUERY_GET          "1.2.840.10008.5.1.4.1.2.3.3"
02694 
02695 #define DICOM_SOPMODALITYWORKLIST_FIND          "1.2.840.10008.5.1.4.31"
02696 
02697 #define DICOM_SOPGPWORKLIST_FIND                "1.2.840.10008.5.1.4.32.1"
02698 
02699 typedef enum {
02700     UID_PATIENT = 2,
02701     UID_VISIT,
02702     UID_STUDY,
02703     UID_SERIES,
02704     UID_IMAGE,
02705     UID_RESULTS,
02706     UID_INTERPRETATION,
02707     UID_PRINTER,
02708     UID_DEVICE,
02709     UID_STUDYCOMPONENT,
02710     UID_STORAGECOMMITTRANSACTION
02711 }   UID_TYPE;
02712 
02713 typedef struct {
02714     unsigned long patient;
02715     unsigned long visit;
02716     unsigned long study;
02717     unsigned long series;
02718     unsigned long image;
02719     unsigned long results;
02720     unsigned long interpretation;
02721     unsigned long printer;
02722     unsigned long deviceType;
02723     unsigned long serialNumber;
02724     unsigned long studyComponent;
02725     unsigned long storageCommitTransaction;
02726     char root[DICOM_UI_LENGTH + 1];
02727 }   UID_BLOCK;
02728 
02729 typedef enum {
02730     UID_CLASS_K_APPLICATIONCONTEXT,
02731     UID_CLASS_K_IMPLEMENTATION,
02732     UID_CLASS_K_SOPCLASS,
02733     UID_CLASS_K_METASOPCLASS,
02734     UID_CLASS_K_TRANSFERSYNTAX,
02735     UID_CLASS_K_WELLKNOWNUID
02736 }   UID_CLASS;
02737 
02738 typedef struct {
02739     UID_CLASS UIDclass;
02740     char UID[DICOM_UI_LENGTH + 1];
02741     char description[64];
02742     char originator[32];
02743 }   UID_DESCRIPTION;
02744 
02745 CONDITION
02746 UID_NewUID(UID_TYPE type, char *uid);
02747 CONDITION
02748 UID_NewNumber(UID_TYPE type, unsigned long *value);
02749 CONDITION
02750 UID_Lookup(char *UID, UID_DESCRIPTION * description);
02751 void
02752 UID_ScanDictionary(void (*callback)(const UID_DESCRIPTION *d1, void *ctx1),
02753         void *ctx);
02754 char *UID_Message(CONDITION cond);
02755 char* UID_Translate(const char* value);
02756 int UID_IsStorageClass(const char* sopClassUID);
02757 
02758 #define UID_NORMAL              FORM_COND(FAC_UID, SEV_SUCC, 1)
02759 #define UID_NOUIDFILENAME       FORM_COND(FAC_UID, SEV_ERROR, 2)
02760 #define UID_GENERATEFAILED      FORM_COND(FAC_UID, SEV_ERROR, 3)
02761 #define UID_FILEOPENFAILURE     FORM_COND(FAC_UID, SEV_ERROR, 5)
02762 #define UID_FILECREATEFAILURE   FORM_COND(FAC_UID, SEV_ERROR, 6)
02763 #define UID_ILLEGALROOT         FORM_COND(FAC_UID, SEV_ERROR, 7)
02764 #define UID_ILLEGALNUMERIC      FORM_COND(FAC_UID, SEV_ERROR, 8)
02765 #define UID_NODEVICETYPE        FORM_COND(FAC_UID, SEV_ERROR, 9)
02766 #define UID_NOROOT              FORM_COND(FAC_UID, SEV_ERROR, 10)
02767 #define UID_UIDNOTFOUND         FORM_COND(FAC_UID, SEV_ERROR, 11)
02768 
02769 #ifdef  __cplusplus
02770 }
02771 #endif
02772 
02773 #endif
02774 /*
02775           Copyright (C) 1993, 1994, RSNA and Washington University
02776 
02777           The software and supporting documentation for the Radiological
02778           Society of North America (RSNA) 1993, 1994 Digital Imaging and
02779           Communications in Medicine (DICOM) Demonstration were developed
02780           at the
02781                   Electronic Radiology Laboratory
02782                   Mallinckrodt Institute of Radiology
02783                   Washington University School of Medicine
02784                   510 S. Kingshighway Blvd.
02785                   St. Louis, MO 63110
02786           as part of the 1993, 1994 DICOM Central Test Node project for, and
02787           under contract with, the Radiological Society of North America.
02788 
02789           THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND NEITHER RSNA NOR
02790           WASHINGTON UNIVERSITY MAKE ANY WARRANTY ABOUT THE SOFTWARE, ITS
02791           PERFORMANCE, ITS MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR
02792           USE, FREEDOM FROM ANY COMPUTER DISEASES OR ITS CONFORMITY TO ANY
02793           SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND PERFORMANCE OF
02794           THE SOFTWARE IS WITH THE USER.
02795 
02796           Copyright of the software and supporting documentation is
02797           jointly owned by RSNA and Washington University, and free access
02798           is hereby granted as a license to use this software, copy this
02799           software and prepare derivative works based upon this software.
02800           However, any distribution of this software source code or
02801           supporting documentation or derivative works (source code and
02802           supporting documentation) must include the three paragraphs of
02803           the copyright notice.
02804 */
02805 /* Copyright marker.  Copyright will be inserted above.  Do not remove */
02806 
02807 /*
02808 **                   Electronic Radiology Laboratory
02809 **                 Mallinckrodt Institute of Radiology
02810 **              Washington University School of Medicine
02811 **
02812 ** Module Name(s):      utility.h
02813 ** Author, Date:        David E. Beecher, March 1994
02814 ** Intent:              Define typedefs and function prototypes for
02815 **                      Utility (UTL) facility (for functions which may
02816 **                      generally useful in a number of areas).
02817 ** Last Update:         $Author: rwcox $, $Date: 2002/10/29 20:47:44 $
02818 ** Source File:         $RCSfile: mri_dicom_hdr.h,v $
02819 ** Revision:            $Revision: 1.8 $
02820 ** Status:              $State: Exp $
02821 */
02822 
02823 
02824 #ifndef _UTL_IS_IN
02825 #define _UTL_IS_IN 1
02826 
02827 #ifdef  __cplusplus
02828 extern "C" {
02829 #endif
02830 
02831 #define OFF             0
02832 #define ON              1
02833 #define REGEX_SIZE      128
02834 
02835 #if 0
02836 #if !defined(LINUX) && !defined(IRIX) && !defined(DARWIN) && !defined(SGI)
02837 char *re_comp(char *);
02838 int re_exec(char *);
02839 #endif
02840 char *UTL_ConvertRegex(char *regex);
02841 CONDITION UTL_RegexMatch(char *regex, char *stm);
02842 #endif
02843 
02844 typedef struct {
02845   void* reserved[2];
02846   char path[1024];
02847 } UTL_FILEITEM;
02848 
02849 
02850 long UTL_ConvertDatetoLong(const char *date);
02851 double UTL_ConvertTimetoFloat(const char *time);
02852 
02853 void UTL_ConvertLongtoDate(long ld, char *date);
02854 void UTL_ConvertFloattoTime(double dt, char *time);
02855 void UTL_SqueezeBlanks(char *s);
02856 
02857 void UTL_GetDicomDate(char *date);
02858 void UTL_GetDicomTime(char *time);
02859 
02860 CONDITION UTL_DateMatch(char *datestring, char *stm);
02861 CONDITION UTL_TimeMatch(char *timestring, char *stm);
02862 
02863 void* UTL_GetTimeStamp();
02864 double UTL_DeltaTime(void* timeStamp);
02865 void UTL_ReleaseTimeStamp(void* timeStamp);
02866 
02867 CONDITION UTL_VerifyCreatePath(const char* path);
02868 CTNBOOLEAN UTL_IsDirectory(const char* path);
02869 CTNBOOLEAN UTL_IsFile(const char* path);
02870 CONDITION UTL_DeleteFile(const char* path);
02871 CONDITION UTL_ScanDirectory(const char* path, LST_HEAD** lst);
02872 
02873 CONDITION UTL_SetConfigFile(const char* configFile);
02874 CONDITION UTL_TestConfigFile(const char* configFile);
02875 char* UTL_GetConfigParameter(const char* paramName);
02876 char**
02877 UTL_ExpandToPointerArray(const char* inputText,
02878                          const char* delimiters,
02879                          int* numberOfEntries);
02880 CONDITION UTL_FileSize(const char* path, U32* size);
02881 
02882 #define UTL_NORMAL              FORM_COND(FAC_UTL, SEV_SUCC, 1)
02883 #define UTL_UNIMPLEMENTED       FORM_COND(FAC_UTL, SEV_ERROR, 2)
02884 #define UTL_MATCH               FORM_COND(FAC_UTL, SEV_SUCC, 3)
02885 #define UTL_NOMATCH             FORM_COND(FAC_UTL, SEV_SUCC, 4)
02886 #define UTL_PATHNOTDIR          FORM_COND(FAC_UTL, SEV_ERROR, 5)
02887 #define UTL_FILECREATEFAILED    FORM_COND(FAC_UTL, SEV_ERROR, 6)
02888 #define UTL_NO_CTN_TARGET       FORM_COND(FAC_UTL, SEV_ERROR, 7)
02889 #define UTL_DELETEFILEFAILED    FORM_COND(FAC_UTL, SEV_ERROR, 8)
02890 #ifdef  __cplusplus
02891 }
02892 #endif
02893 
02894 #endif
 

Powered by Plone

This site conforms to the following standards: