OFFIS DCMTK  Version 3.6.0
dicom.h
1 /*
2  *
3  * Copyright (C) 1994-2010, OFFIS e.V.
4  * All rights reserved. See COPYRIGHT file for details.
5  *
6  * This software and supporting documentation were partly developed by
7  *
8  * OFFIS e.V.
9  * R&D Division Health
10  * Escherweg 2
11  * D-26121 Oldenburg, Germany
12  *
13  * For further copyrights, see the following paragraphs.
14  *
15  */
16 
17 /*
18 ** Copyright (C) 1993/1994, OFFIS, Oldenburg University and CERIUM
19 **
20 ** This software and supporting documentation were
21 ** developed by
22 **
23 ** Institut OFFIS
24 ** Bereich Kommunikationssysteme
25 ** Westerstr. 10-12
26 ** 26121 Oldenburg, Germany
27 **
28 ** Fachbereich Informatik
29 ** Abteilung Prozessinformatik
30 ** Carl von Ossietzky Universitaet Oldenburg
31 ** Ammerlaender Heerstr. 114-118
32 ** 26111 Oldenburg, Germany
33 **
34 ** CERIUM
35 ** Laboratoire SIM
36 ** Faculte de Medecine
37 ** 2 Avenue du Pr. Leon Bernard
38 ** 35043 Rennes Cedex, France
39 **
40 ** for CEN/TC251/WG4 as a contribution to the Radiological
41 ** Society of North America (RSNA) 1993 Digital Imaging and
42 ** Communications in Medicine (DICOM) Demonstration.
43 **
44 ** THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND NEITHER OFFIS,
45 ** OLDENBURG UNIVERSITY NOR CERIUM MAKE ANY WARRANTY REGARDING
46 ** THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR
47 ** FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER
48 ** DISEASES OR ITS CONFORMITY TO ANY SPECIFICATION. THE
49 ** ENTIRE RISK AS TO QUALITY AND PERFORMANCE OF THE SOFTWARE
50 ** IS WITH THE USER.
51 **
52 ** Copyright of the software and supporting documentation
53 ** is, unless otherwise stated, jointly owned by OFFIS,
54 ** Oldenburg University and CERIUM and free access is hereby
55 ** granted as a license to use this software, copy this
56 ** software and prepare derivative works based upon this
57 ** software. However, any distribution of this software
58 ** source code or supporting documentation or derivative
59 ** works (source code and supporting documentation) must
60 ** include the three paragraphs of this copyright notice.
61 **
62 */
63 
64 /*
65 ** dicom.h
66 **
67 ** This header defines public typedefs for the DICOM software produced
68 ** by the CEN Dicom Development Team. These definitions are
69 ** meant to be used in a number of packages and need to be in a central
70 ** location.
71 **
72 ** The header file has evolved from a version written for the
73 ** RSNA'92 InfoRAD DICOM Demonstration by:
74 **
75 ** Stephen Moore (smm@wuerl.wustl.edu)
76 ** Electronic Radiology Laboratory
77 ** Mallinckrodt Institute of Radiology
78 ** Washington University School of Medicine
79 ** 23-May-1992
80 **
81 **
82 ** Modifications:
83 ** Andrew Hewett
84 ** OFFIS/University of Oldenburg, Germany.
85 **
86 **
87 ** Last Update: $Author: joergr $
88 ** Update Date: $Date: 2010-12-01 08:26:10 $
89 ** CVS/RCS Revision: $Revision: 1.14 $
90 ** Status: $State: Exp $
91 **
92 ** CVS/RCS Log at end of file
93 **
94 */
95 
96 #ifndef DICOM_H
97 #define DICOM_H
98 
99 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */
100 
101 #define INCLUDE_CSTDLIB
102 #define INCLUDE_CSTDIO
103 #define INCLUDE_LIBC
104 #define INCLUDE_UNISTD
105 #include "dcmtk/ofstd/ofstdinc.h"
106 
107 #include "dcmtk/dcmnet/cond.h" /* condition typedefs */
108 #include "dcmtk/dcmnet/dcompat.h" /* compatability routines */
109 #include "dcmtk/dcmdata/dctypes.h" /* dcmdata toolkit basic types */
110 #include "dcmtk/dcmdata/dcuid.h" /* dcmdata UID definitions */
111 
112 /*
113  * Useful Types
114  */
115 
116 /* these types are for backwards compatibility */
117 typedef Uint16 U_SHORT; /* normal unsigned short*/
118 typedef Uint32 U_LONG; /* normal unsigned long */
119 typedef Uint32 MASK_32; /* for bit masks */
120 
121 
122 #define DICOM_STDAPPLICATIONCONTEXT UID_StandardApplicationContext
123 #define DICOM_NET_IMPLEMENTATIONCLASSUID OFFIS_IMPLEMENTATION_CLASS_UID
124 #define DICOM_NET_IMPLEMENTATIONVERSIONNAME OFFIS_DTK_IMPLEMENTATION_VERSION_NAME
125 
126 /* network type constants as used by the DUL layer */
127 #define DICOM_APPLICATION_ACCEPTOR 0x01
128 #define DICOM_APPLICATION_REQUESTOR 0x02
129 
130 /*
131 ** The following defines are used in some levels of the network code.
132 */
133 
134 #define DIC_US_LEN sizeof(DIC_US)
135 #define DIC_UL_LEN sizeof(DIC_UL)
136 #define DIC_UI_LEN 64
137 #define DIC_AE_LEN 16
138 #define DIC_SH_LEN 16
139 #define DIC_PN_LEN 64
140 #define DIC_LO_LEN 64
141 #define DIC_CS_LEN 16
142 #define DIC_DS_LEN 16
143 #define DIC_IS_LEN 12
144 #define DIC_AT_LEN (2*sizeof(DIC_US))
145 #define DIC_NODENAME_LEN 128
146 
147 #define DICOM_UI_LENGTH DIC_UI_LEN
148 
149 typedef Uint16 DIC_US;
150 typedef Uint32 DIC_UL;
151 typedef char DIC_UI[DIC_UI_LEN + 1];
152 typedef char DIC_AE[DIC_AE_LEN + 1];
153 typedef char DIC_SH[DIC_SH_LEN + 1];
154 typedef char DIC_PN[DIC_PN_LEN + 1];
155 typedef char DIC_LO[DIC_LO_LEN + 1];
156 typedef char DIC_CS[DIC_CS_LEN + 1];
157 typedef char DIC_DS[DIC_DS_LEN + 1];
158 typedef char DIC_IS[DIC_IS_LEN + 1];
159 typedef char DIC_NODENAME[DIC_NODENAME_LEN + 1];
160 
161 
162 /*
163  * Useful Macros
164  */
165 
166 #ifndef MAX
167 #define MAX(x, y) (((x) < (y)) ? (y) : (x))
168 #endif
169 #ifndef MIN
170 #define MIN(x, y) (((x) < (y)) ? (x) : (y))
171 #endif
172 #ifndef IS_EVEN
173 #define IS_EVEN(i) (~(i) & 0x01)
174 #endif
175 #ifndef DIM_OF
176 #define DIM_OF(a) (sizeof(a) / sizeof(a[0]))
177 #endif
178 #ifndef IN_RANGE
179 #define IN_RANGE(n, lo, hi) ((lo) <= n && (n) <= (hi))
180 #endif
181 
182 #endif
183 
184 /*
185 ** CVS Log
186 ** $Log: dicom.h,v $
187 ** Revision 1.14 2010-12-01 08:26:10 joergr
188 ** Added OFFIS copyright header (beginning with the year 1994).
189 **
190 ** Revision 1.13 2010-10-14 13:17:22 joergr
191 ** Updated copyright header. Added reference to COPYRIGHT file.
192 **
193 ** Revision 1.12 2005/12/08 16:02:20 meichel
194 ** Changed include path schema for all DCMTK header files
195 **
196 ** Revision 1.11 2004/08/03 11:42:43 meichel
197 ** Headers libc.h and unistd.h are now included via ofstdinc.h
198 **
199 ** Revision 1.10 2002/11/27 13:04:35 meichel
200 ** Adapted module dcmnet to use of new header file ofstdinc.h
201 **
202 ** Revision 1.9 2001/10/12 10:18:26 meichel
203 ** Replaced the CONDITION types, constants and functions in the dcmnet module
204 ** by an OFCondition based implementation which eliminates the global condition
205 ** stack. This is a major change, caveat emptor!
206 **
207 ** Revision 1.8 2001/09/26 12:28:59 meichel
208 ** Implemented changes in dcmnet required by the adaptation of dcmdata
209 ** to class OFCondition. Removed some unused code.
210 **
211 ** Revision 1.7 2000/08/10 14:50:53 meichel
212 ** Added initial OpenSSL support.
213 **
214 ** Revision 1.6 2000/02/23 15:12:25 meichel
215 ** Corrected macro for Borland C++ Builder 4 workaround.
216 **
217 ** Revision 1.5 2000/02/01 10:24:06 meichel
218 ** Avoiding to include <stdlib.h> as extern "C" on Borland C++ Builder 4,
219 ** workaround for bug in compiler header files.
220 **
221 ** Revision 1.4 1997/07/21 08:40:09 andreas
222 ** - Replace all boolean types (BOOLEAN, CTNBOOLEAN, DICOM_BOOL, BOOL)
223 ** with one unique boolean type OFBool.
224 **
225 ** Revision 1.3 1997/02/06 12:15:41 hewett
226 ** Updated preliminary Apple Macintosh support for the Metrowerks CodeWarrior
227 ** version 11 compiler and environment.
228 **
229 ** Revision 1.2 1996/09/27 08:29:42 hewett
230 ** Support for Win32. Now does not define a type BOOLEAN if <WINSOCK.H>
231 ** is included. Renames the ERROR(A) macro to be CONDERROR(A) macro due
232 ** to a clash with Windows include files.
233 **
234 ** Revision 1.1.1.1 1996/03/26 18:38:45 hewett
235 ** Initial Release.
236 **
237 **
238 */


Generated on Thu Dec 20 2012 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.8.2