1 /*
2  *
3  *  Copyright (C) 1994-2002, OFFIS
4  *
5  *  This software and supporting documentation were developed by
6  *
7  *    Kuratorium OFFIS e.V.
8  *    Healthcare Information and Communication Systems
9  *    Escherweg 2
10  *    D-26121 Oldenburg, Germany
11  *
12  *  THIS SOFTWARE IS MADE AVAILABLE,  AS IS,  AND OFFIS MAKES NO  WARRANTY
13  *  REGARDING  THE  SOFTWARE,  ITS  PERFORMANCE,  ITS  MERCHANTABILITY  OR
14  *  FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES  OR
15  *  ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND
16  *  PERFORMANCE OF THE SOFTWARE IS WITH THE USER.
17  *
18  *  Module:  dcmdata
19  *
20  *  Author:  Andrew Hewett
21  *
22  *  Purpose:
23  *  Definitions of "well known" DICOM Unique Indentifiers,
24  *  routines for finding and creating UIDs.
25  *
26  */
27 
28 #ifndef DCUID_H
29 #define DCUID_H
30 
31 #include "osconfig.h"    /* make sure OS specific configuration is included first */
32 #include "dctypes.h"
33 
34 #define INCLUDE_CSTDLIB
35 #include "ofstdinc.h"
36 
37 #ifdef HAVE_UNISTD_H
38 BEGIN_EXTERN_C
39 #include <unistd.h> /* for NULL */
40 END_EXTERN_C
41 #endif
42 
43 
44 /*
45 ** dcmFindNameOfUID(const char* uid)
46 ** Return the name of a UID.
47 ** Performs a table lookup and returns a pointer to a read-only string.
48 ** Returns NULL if the UID is not known.
49 */
50 
51 const char* dcmFindNameOfUID(const char* uid);
52 
53 //
54 // dcmFindUIDFromName(const char* name)
55 // Return the UID of a name.
56 // Performs a table lookup and returns a pointer to a read-only string.
57 // Returns NULL if the name is not known.
58 //
59 
60 const char * dcmFindUIDFromName(const char * name);
61 
62 
63 /*
64 ** The global variable dcmStorageSOPClassUIDs is an array of
65 ** string pointers containing the UIDs of all known Storage SOP
66 ** Classes.  The global variable numberOfDcmStorageStopClassUIDs
67 ** defines the size of the array.
68 */
69 
70 extern const char* dcmStorageSOPClassUIDs[];
71 extern const int numberOfDcmStorageSOPClassUIDs;
72 
73 /*
74 ** dcmIsaStorageSOPClassUID(const char* uid)
75 ** Returns true if the uid is one of the Storage SOP Classes.
76 ** Performs a table lookup in the dcmStorageSOPClassUIDs table.
77 */
78 OFBool dcmIsaStorageSOPClassUID(const char* uid);
79 
80 /*
81 ** The global variable dcmImageSOPClassUIDs is an array of
82 ** string pointers containing the UIDs of all known Image SOP
83 ** Classes.  The global variable numberOfDcmImageSOPClassUIDs
84 ** defines the size of the array.
85 ** NOTE: this list represents a subset of the dcmStorageSOPClassUIDs list
86 */
87 
88 extern const char* dcmImageSOPClassUIDs[];
89 extern const int numberOfDcmImageSOPClassUIDs;
90 
91 
92 /*
93 ** char* generateUniqueIdentifier(char* uid)
94 ** Creates a Unique Identifer in uid and returns uid.
95 ** uid must be at least 65 bytes. Care is taken to make sure
96 ** that the generated UID is 64 characters or less.
97 **
98 ** If a prefix string is not passed as the second argument a
99 ** default of SITE_INSTANCE_UID_ROOT (see below) will be used.
100 ** Otherwise the supplied prefix string will appear at the beginning
101 ** of uid.
102 **
103 ** The UID is created by appending to the prefix the following:
104 **      the host id (if obtainable, zero otherwise)
105 **      the process id (if obtainable, zero otherwise)
106 **      the system calendar time
107 **      an accumulating counter for this process
108 */
109 char* dcmGenerateUniqueIdentifier(char* uid, const char* prefix=NULL);
110 
111 /*
112  * dcmSOPClassUIDToModality
113  * performs a table lookup and returns a short modality identifier
114  * that can be used for building file names etc.
115  * Identifiers are defined for all storage SOP classes.
116  * Returns NULL if no modality identifier found or sopClassUID==NULL.
117  */
118 const char *dcmSOPClassUIDToModality(const char *sopClassUID);
119 
120 /*
121  * dcmGuessModalityBytes
122  * performs a table lookup and returns a guessed average
123  * file size for the given SOP class.
124  * Average sizes are defined for all storage SOP classes.
125  */
126 unsigned long dcmGuessModalityBytes(const char *sopClassUID);
127 
128 /*
129 ** String Constants
130 */
131 
132 /*
133 ** OFFIS UID is: 1.2.276.0.7230010
134 ** UID Root for dcmtk DICOM project:   1.2.276.0.7230010.3
135 **          for OFFIS GO-Kard project: 1.2.276.0.7230010.8
136 */
137 
138 /* NOTE: Implementation version name VR=SH may not be longer than 16 chars
139  *   The second name is used to identify files written without dcmdata
140  *   (i.e. using the --bit-preserving switch in various tools)
141  */
142 #define OFFIS_DTK_IMPLEMENTATION_VERSION_NAME   "OFFIS_DCMTK_352"
143 #define OFFIS_DTK_IMPLEMENTATION_VERSION_NAME2  "OFFIS_DCMBP_352"
144 #define OFFIS_DCMTK_RELEASEDATE                 "2002-12-23"
145 
146 #define OFFIS_UID_ROOT                          "1.2.276.0.7230010.3"
147 #define OFFIS_DCMTK_VERSION                     "3.5.2"
148 #define OFFIS_DCMTK_VERSION_NUMBER              352
149 #define OFFIS_IMPLEMENTATION_CLASS_UID          OFFIS_UID_ROOT ".0." OFFIS_DCMTK_VERSION
150 #define OFFIS_INSTANCE_CREATOR_UID              OFFIS_IMPLEMENTATION_CLASS_UID
151 
152 #define OFFIS_PRIVATE_CODING_SCHEME_UID_ROOT    OFFIS_UID_ROOT ".0.0."
153 #define OFFIS_PRIVATE_CODING_SCHEME_VERSION     "1"
154 #define OFFIS_PRIVATE_CODING_SCHEME_CREATOR_UID OFFIS_PRIVATE_CODING_SCHEME_UID_ROOT OFFIS_PRIVATE_CODING_SCHEME_VERSION
155 
156 /*
157 ** Each site should define its own SITE_UID_ROOT
158 */
159 #ifndef SITE_UID_ROOT
160 #define SITE_UID_ROOT                           OFFIS_UID_ROOT  /* default */
161 #endif
162 
163 /*
164 ** Useful UID prefixes. These can be whatever you want.
165 **
166 ** These site UIDs are arbitrary, non-standard, with no meaning
167 ** and can be changed at any time.  Do _not_ rely on these values.
168 ** Do _not_ assume any semantics when using these suffixes.
169 **
170 */
171 
172 #define SITE_STUDY_UID_ROOT                     SITE_UID_ROOT ".1.2"
173 #define SITE_SERIES_UID_ROOT                    SITE_UID_ROOT ".1.3"
174 #define SITE_INSTANCE_UID_ROOT                  SITE_UID_ROOT ".1.4"
175 
176 /*
177 ** A private SOP Class UID which can be used in a file meta-header when
178 ** no real SOP Class is stored in the file. -- NON-STANDARD
179 */
180 #define UID_PrivateGenericFileSOPClass          SITE_UID_ROOT ".1.0.1"
181 
182 
183 /*
184 ** DICOM Defined Standard Application Context UID
185 */
186 
187 #define UID_StandardApplicationContext          "1.2.840.10008.3.1.1.1"
188 
189 /*
190 ** Defined Transfer Syntax UIDs
191 */
192 
193 /* Implicit VR Little Endian: Default Transfer Syntax for DICOM */
194 #define UID_LittleEndianImplicitTransferSyntax  "1.2.840.10008.1.2"
195 /* Explicit VR Little Endian */
196 #define UID_LittleEndianExplicitTransferSyntax  "1.2.840.10008.1.2.1"
197 /* Explicit VR Big Endian */
198 #define UID_BigEndianExplicitTransferSyntax     "1.2.840.10008.1.2.2"
199 /* JPEG Baseline (Process 1): Default Transfer Syntax
200    for Lossy JPEG 8 Bit Image Compression */
201 #define UID_JPEGProcess1TransferSyntax          "1.2.840.10008.1.2.4.50"
202 /* JPEG Extended (Process 2 & 4): Default Transfer Syntax
203    for Lossy JPEG 12 Bit Image Compression (Process 4 only) */
204 #define UID_JPEGProcess2_4TransferSyntax        "1.2.840.10008.1.2.4.51"
205 /* JPEG Extended (Process 3 & 5) */
206 #define UID_JPEGProcess3_5TransferSyntax        "1.2.840.10008.1.2.4.52"
207 /* JPEG Spectral Selection, Non-Hierarchical (Process 6 & 8) */
208 #define UID_JPEGProcess6_8TransferSyntax        "1.2.840.10008.1.2.4.53"
209 /* JPEG Spectral Selection, Non-Hierarchical (Process 7 & 9) */
210 #define UID_JPEGProcess7_9TransferSyntax        "1.2.840.10008.1.2.4.54"
211 /* JPEG Full Progression, Non-Hierarchical (Process 10 & 12) */
212 #define UID_JPEGProcess10_12TransferSyntax      "1.2.840.10008.1.2.4.55"
213 /* JPEG Full Progression, Non-Hierarchical (Process 11 & 13) */
214 #define UID_JPEGProcess11_13TransferSyntax      "1.2.840.10008.1.2.4.56"
215 /* JPEG Lossless, Non-Hierarchical (Process 14) */
216 #define UID_JPEGProcess14TransferSyntax         "1.2.840.10008.1.2.4.57"
217 /* JPEG Lossless, Non-Hierarchical (Process 15) */
218 #define UID_JPEGProcess15TransferSyntax         "1.2.840.10008.1.2.4.58"
219 /* JPEG Extended, Hierarchical (Process 16 & 18) */
220 #define UID_JPEGProcess16_18TransferSyntax      "1.2.840.10008.1.2.4.59"
221 /* JPEG Extended, Hierarchical (Process 17 & 19) */
222 #define UID_JPEGProcess17_19TransferSyntax      "1.2.840.10008.1.2.4.60"
223 /* JPEG Spectral Selection, Hierarchical (Process 20 & 22) */
224 #define UID_JPEGProcess20_22TransferSyntax      "1.2.840.10008.1.2.4.61"
225 /* JPEG Spectral Selection, Hierarchical (Process 21 & 23) */
226 #define UID_JPEGProcess21_23TransferSyntax      "1.2.840.10008.1.2.4.62"
227 /* JPEG Full Progression, Hierarchical (Process 24 & 26) */
228 #define UID_JPEGProcess24_26TransferSyntax      "1.2.840.10008.1.2.4.63"
229 /* JPEG Full Progression, Hierarchical (Process 25 & 27) */
230 #define UID_JPEGProcess25_27TransferSyntax      "1.2.840.10008.1.2.4.64"
231 /* JPEG Lossless, Hierarchical (Process 28) */
232 #define UID_JPEGProcess28TransferSyntax         "1.2.840.10008.1.2.4.65"
233 /* JPEG Lossless, Hierarchical (Process 29) */
234 #define UID_JPEGProcess29TransferSyntax         "1.2.840.10008.1.2.4.66"
235 /* JPEG Lossless, Non-Hierarchical, First-Order Prediction (Process 14
236    [Selection Value 1]): Default Transfer Syntax for Lossless JPEG Image Compression */
237 #define UID_JPEGProcess14SV1TransferSyntax      "1.2.840.10008.1.2.4.70"
238 /* JPEG-LS Lossless Image Compression */
239 #define UID_JPEGLSLossless                      "1.2.840.10008.1.2.4.80"
240 /* JPEG-LS Lossy (Near-Lossless) Image Compression */
241 #define UID_JPEGLSLossy                         "1.2.840.10008.1.2.4.81"
242 /* RLE Lossless */
243 #define UID_RLELossless                         "1.2.840.10008.1.2.5"
244 /* Deflated Explicit VR Little Endian */
245 #define UID_DeflatedExplicitVRLittleEndianTransferSyntax "1.2.840.10008.1.2.1.99"
246 /* JPEG 2000 Image Compression (Lossless Only) */
247 #define UID_JPEG2000LosslessOnlyTransferSyntax  "1.2.840.10008.1.2.4.90"
248 /* JPEG 2000 Image Compression (Lossless or Lossy) */
249 #define UID_JPEG2000TransferSyntax              "1.2.840.10008.1.2.4.91"
250 
251 
252 /*
253 ** Defined SOP UIDs according to 2001 DICOM edition
254 */
255 
256 // Storage
257 #define UID_StoredPrintStorage                                     "1.2.840.10008.5.1.1.27"
258 #define UID_HardcopyGrayscaleImageStorage                          "1.2.840.10008.5.1.1.29"
259 #define UID_HardcopyColorImageStorage                              "1.2.840.10008.5.1.1.30"
260 #define UID_ComputedRadiographyImageStorage                        "1.2.840.10008.5.1.4.1.1.1"
261 #define UID_DigitalXRayImageStorageForPresentation                 "1.2.840.10008.5.1.4.1.1.1.1"
262 #define UID_DigitalXRayImageStorageForProcessing                   "1.2.840.10008.5.1.4.1.1.1.1.1"
263 #define UID_DigitalMammographyXRayImageStorageForPresentation      "1.2.840.10008.5.1.4.1.1.1.2"
264 #define UID_DigitalMammographyXRayImageStorageForProcessing        "1.2.840.10008.5.1.4.1.1.1.2.1"
265 #define UID_DigitalIntraOralXRayImageStorageForPresentation        "1.2.840.10008.5.1.4.1.1.1.3"
266 #define UID_DigitalIntraOralXRayImageStorageForProcessing          "1.2.840.10008.5.1.4.1.1.1.3.1"
267 #define UID_CTImageStorage                                         "1.2.840.10008.5.1.4.1.1.2"
268 #define UID_RETIRED_UltrasoundMultiframeImageStorage               "1.2.840.10008.5.1.4.1.1.3"
269 #define UID_UltrasoundMultiframeImageStorage                       "1.2.840.10008.5.1.4.1.1.3.1"
270 #define UID_MRImageStorage                                         "1.2.840.10008.5.1.4.1.1.4"
271 #define UID_RETIRED_NuclearMedicineImageStorage                    "1.2.840.10008.5.1.4.1.1.5"
272 #define UID_RETIRED_UltrasoundImageStorage                         "1.2.840.10008.5.1.4.1.1.6"
273 #define UID_UltrasoundImageStorage                                 "1.2.840.10008.5.1.4.1.1.6.1"
274 #define UID_SecondaryCaptureImageStorage                           "1.2.840.10008.5.1.4.1.1.7"
275 #define UID_StandaloneOverlayStorage                               "1.2.840.10008.5.1.4.1.1.8"
276 #define UID_StandaloneCurveStorage                                 "1.2.840.10008.5.1.4.1.1.9"
277 #define UID_TwelveLeadECGWaveformStorage                           "1.2.840.10008.5.1.4.1.1.9.1.1"
278 #define UID_GeneralECGWaveformStorage                              "1.2.840.10008.5.1.4.1.1.9.1.2"
279 #define UID_AmbulatoryECGWaveformStorage                           "1.2.840.10008.5.1.4.1.1.9.1.3"
280 #define UID_HemodynamicWaveformStorage                             "1.2.840.10008.5.1.4.1.1.9.2.1"
281 #define UID_CardiacElectrophysiologyWaveformStorage                "1.2.840.10008.5.1.4.1.1.9.3.1"
282 #define UID_BasicVoiceAudioWaveformStorage                         "1.2.840.10008.5.1.4.1.1.9.4.1"
283 #define UID_StandaloneModalityLUTStorage                           "1.2.840.10008.5.1.4.1.1.10"
284 #define UID_StandaloneVOILUTStorage                                "1.2.840.10008.5.1.4.1.1.11"
285 #define UID_GrayscaleSoftcopyPresentationStateStorage              "1.2.840.10008.5.1.4.1.1.11.1"
286 #define UID_XRayAngiographicImageStorage                           "1.2.840.10008.5.1.4.1.1.12.1"
287 #define UID_XRayFluoroscopyImageStorage                            "1.2.840.10008.5.1.4.1.1.12.2"
288 #define UID_RETIRED_XRayAngiographicBiPlaneImageStorage            "1.2.840.10008.5.1.4.1.1.12.3"
289 #define UID_NuclearMedicineImageStorage                            "1.2.840.10008.5.1.4.1.1.20"
290 #define UID_RETIRED_VLImageStorage                                 "1.2.840.10008.5.1.4.1.1.77.1"
291 #define UID_VLEndoscopicImageStorage                               "1.2.840.10008.5.1.4.1.1.77.1.1"
292 #define UID_VLMicroscopicImageStorage                              "1.2.840.10008.5.1.4.1.1.77.1.2"
293 #define UID_VLSlideCoordinatesMicroscopicImageStorage              "1.2.840.10008.5.1.4.1.1.77.1.3"
294 #define UID_VLPhotographicImageStorage                             "1.2.840.10008.5.1.4.1.1.77.1.4"
295 #define UID_RETIRED_VLMultiFrameImageStorage                       "1.2.840.10008.5.1.4.1.1.77.2"
296 #define UID_BasicTextSR                                            "1.2.840.10008.5.1.4.1.1.88.11"
297 #define UID_EnhancedSR                                             "1.2.840.10008.5.1.4.1.1.88.22"
298 #define UID_ComprehensiveSR                                        "1.2.840.10008.5.1.4.1.1.88.33"
299 #define UID_PETImageStorage                                        "1.2.840.10008.5.1.4.1.1.128"
300 #define UID_PETCurveStorage                                        "1.2.840.10008.5.1.4.1.1.129"
301 #define UID_RTImageStorage                                         "1.2.840.10008.5.1.4.1.1.481.1"
302 #define UID_RTDoseStorage                                          "1.2.840.10008.5.1.4.1.1.481.2"
303 #define UID_RTStructureSetStorage                                  "1.2.840.10008.5.1.4.1.1.481.3"
304 #define UID_RTBeamsTreatmentRecordStorage                          "1.2.840.10008.5.1.4.1.1.481.4"
305 #define UID_RTPlanStorage                                          "1.2.840.10008.5.1.4.1.1.481.5"
306 #define UID_RTBrachyTreatmentRecordStorage                         "1.2.840.10008.5.1.4.1.1.481.6"
307 #define UID_RTTreatmentSummaryRecordStorage                        "1.2.840.10008.5.1.4.1.1.481.7"
308 
309 // Storage SOP Classes from Supplement 49 (final text)
310 #define UID_EnhancedMRImageStorage                                  "1.2.840.10008.5.1.4.1.1.4.1"
311 #define UID_MRSpectroscopyStorage                                   "1.2.840.10008.5.1.4.1.1.4.2"
312 #define UID_RawDataStorage                                          "1.2.840.10008.5.1.4.1.1.66"
313 
314 // Storage SOP Class from Supplement 50 (final text)
315 #define UID_MammographyCADSR                                       "1.2.840.10008.5.1.4.1.1.88.50"
316 
317 // Storage SOP Classes from Supplement 57 (final text)
318 #define UID_MultiframeSingleBitSecondaryCaptureImageStorage        "1.2.840.10008.5.1.4.1.1.7.1"
319 #define UID_MultiframeGrayscaleByteSecondaryCaptureImageStorage    "1.2.840.10008.5.1.4.1.1.7.2"
320 #define UID_MultiframeGrayscaleWordSecondaryCaptureImageStorage    "1.2.840.10008.5.1.4.1.1.7.3"
321 #define UID_MultiframeTrueColorSecondaryCaptureImageStorage        "1.2.840.10008.5.1.4.1.1.7.4"
322 
323 // Storage SOP Class from Supplement 59 (final text)
324 #define UID_KeyObjectSelectionDocument                             "1.2.840.10008.5.1.4.1.1.88.59"
325 
326 
327 // Query/Retrieve
328 #define UID_FINDPatientRootQueryRetrieveInformationModel           "1.2.840.10008.5.1.4.1.2.1.1"
329 #define UID_MOVEPatientRootQueryRetrieveInformationModel           "1.2.840.10008.5.1.4.1.2.1.2"
330 #define UID_GETPatientRootQueryRetrieveInformationModel            "1.2.840.10008.5.1.4.1.2.1.3"
331 #define UID_FINDStudyRootQueryRetrieveInformationModel             "1.2.840.10008.5.1.4.1.2.2.1"
332 #define UID_MOVEStudyRootQueryRetrieveInformationModel             "1.2.840.10008.5.1.4.1.2.2.2"
333 #define UID_GETStudyRootQueryRetrieveInformationModel              "1.2.840.10008.5.1.4.1.2.2.3"
334 #define UID_FINDPatientStudyOnlyQueryRetrieveInformationModel      "1.2.840.10008.5.1.4.1.2.3.1"
335 #define UID_MOVEPatientStudyOnlyQueryRetrieveInformationModel      "1.2.840.10008.5.1.4.1.2.3.2"
336 #define UID_GETPatientStudyOnlyQueryRetrieveInformationModel       "1.2.840.10008.5.1.4.1.2.3.3"
337 #define UID_FINDModalityWorklistInformationModel                   "1.2.840.10008.5.1.4.31"
338 // Supplement 52 (final text)
339 #define UID_FINDGeneralPurposeWorklistInformationModel "1.2.840.10008.5.1.4.32.1"
340 
341 // Print
342 #define UID_BasicFilmSessionSOPClass                               "1.2.840.10008.5.1.1.1"
343 #define UID_BasicFilmBoxSOPClass                                   "1.2.840.10008.5.1.1.2"
344 #define UID_BasicGrayscaleImageBoxSOPClass                         "1.2.840.10008.5.1.1.4"
345 #define UID_BasicColorImageBoxSOPClass                             "1.2.840.10008.5.1.1.4.1"
346 #define UID_RETIRED_ReferencedImageBoxSOPClass                     "1.2.840.10008.5.1.1.4.2"
347 #define UID_BasicGrayscalePrintManagementMetaSOPClass              "1.2.840.10008.5.1.1.9"
348 #define UID_RETIRED_ReferencedGrayscalePrintManagementMetaSOPClass "1.2.840.10008.5.1.1.9.1"
349 #define UID_PrintJobSOPClass                                       "1.2.840.10008.5.1.1.14"
350 #define UID_BasicAnnotationBoxSOPClass                             "1.2.840.10008.5.1.1.15"
351 #define UID_PrinterSOPClass                                        "1.2.840.10008.5.1.1.16"
352 #define UID_PrinterConfigurationRetrievalSOPClass                  "1.2.840.10008.5.1.1.16.376"
353 #define UID_PrinterSOPInstance                                     "1.2.840.10008.5.1.1.17"
354 #define UID_PrinterConfigurationRetrievalSOPInstance               "1.2.840.10008.5.1.1.17.376"
355 #define UID_BasicColorPrintManagementMetaSOPClass                  "1.2.840.10008.5.1.1.18"
356 #define UID_RETIRED_ReferencedColorPrintManagementMetaSOPClass     "1.2.840.10008.5.1.1.18.1"
357 #define UID_VOILUTBoxSOPClass                                      "1.2.840.10008.5.1.1.22"
358 #define UID_PresentationLUTSOPClass                                "1.2.840.10008.5.1.1.23"
359 #define UID_ImageOverlayBoxSOPClass                                "1.2.840.10008.5.1.1.24"
360 #define UID_BasicPrintImageOverlayBoxSOPClass                      "1.2.840.10008.5.1.1.24.1"
361 #define UID_PrintQueueSOPInstance                                  "1.2.840.10008.5.1.1.25"
362 #define UID_PrintQueueManagementSOPClass                           "1.2.840.10008.5.1.1.26"
363 #define UID_PullPrintRequestSOPClass                               "1.2.840.10008.5.1.1.31"
364 #define UID_PullStoredPrintManagementMetaSOPClass                  "1.2.840.10008.5.1.1.32"
365 
366 // Storage Commitment
367 #define UID_StorageCommitmentPushModelSOPClass                     "1.2.840.10008.1.20.1"
368 #define UID_StorageCommitmentPushModelSOPInstance                  "1.2.840.10008.1.20.1.1"
369 #define UID_RETIRED_StorageCommitmentPullModelSOPClass             "1.2.840.10008.1.20.2"
370 #define UID_RETIRED_StorageCommitmentPullModelSOPInstance          "1.2.840.10008.1.20.2.1"
371 
372 // MPPS
373 #define UID_ModalityPerformedProcedureStepSOPClass                 "1.2.840.10008.3.1.2.3.3"
374 #define UID_ModalityPerformedProcedureStepRetrieveSOPClass         "1.2.840.10008.3.1.2.3.4"
375 #define UID_ModalityPerformedProcedureStepNotificationSOPClass     "1.2.840.10008.3.1.2.3.5"
376 
377 // Detached Management
378 #define UID_DetachedPatientManagementSOPClass                      "1.2.840.10008.3.1.2.1.1"
379 #define UID_DetachedPatientManagementMetaSOPClass                  "1.2.840.10008.3.1.2.1.4"
380 #define UID_DetachedVisitManagementSOPClass                        "1.2.840.10008.3.1.2.2.1"
381 #define UID_DetachedStudyManagementSOPClass                        "1.2.840.10008.3.1.2.3.1"
382 #define UID_DetachedResultsManagementSOPClass                      "1.2.840.10008.3.1.2.5.1"
383 #define UID_DetachedResultsManagementMetaSOPClass                  "1.2.840.10008.3.1.2.5.4"
384 #define UID_DetachedStudyManagementMetaSOPClass                    "1.2.840.10008.3.1.2.5.5"
385 #define UID_DetachedInterpretationManagementSOPClass               "1.2.840.10008.3.1.2.6.1"
386 
387 // General Purpose Worklist (Supplement 52 final text)
388 #define UID_GeneralPurposeScheduledProcedureStepSOPClass           "1.2.840.10008.5.1.4.32.2"
389 #define UID_GeneralPurposePerformedProcedureStepSOPClass           "1.2.840.10008.5.1.4.32.3"
390 #define UID_GeneralPurposeWorklistManagementMetaSOPClass           "1.2.840.10008.5.1.4.32"
391 
392 // Other
393 #define UID_VerificationSOPClass                                   "1.2.840.10008.1.1"
394 // official name in DICOM standard: Media Storage Directory Storage
395 #define UID_BasicDirectoryStorageSOPClass                          "1.2.840.10008.1.3.10"
396 #define UID_BasicStudyContentNotificationSOPClass                  "1.2.840.10008.1.9"
397 #define UID_StudyComponentManagementSOPClass                       "1.2.840.10008.3.1.2.3.2"
398 
399 // UID for DICOM Controlled Terminology, defined in CP 324
400 #define UID_DICOMControlledTerminologyCodingScheme                 "1.2.840.10008.2.16.4"
401 
402 // Private DCMTK UIDs
403 // Private SOP Class UID used to shutdown external network applications
404 #define UID_PrivateShutdownSOPClass                                "1.2.276.0.7230010.3.4.1915765545.18030.917282194.0"
405 
406 
407 /* DRAFT SUPPLEMENTS - EXPERIMENTAL USE ONLY */
408 
409 /*
410  * The following UIDs were defined in "frozen draft for trial implementation"
411  * versions of various DICOM supplements and changed before final text.
412  * Since it is likely that trial implementations exist, we leave the UIDs in the dictionary.
413  */
414 
415 /* Supplement 23 Frozen Draft (November 1997) */
416 #define UID_DRAFT_SRTextStorage                                    "1.2.840.10008.5.1.4.1.1.88.1"
417 #define UID_DRAFT_SRAudioStorage                                   "1.2.840.10008.5.1.4.1.1.88.2"
418 #define UID_DRAFT_SRDetailStorage                                  "1.2.840.10008.5.1.4.1.1.88.3"
419 #define UID_DRAFT_SRComprehensiveStorage                           "1.2.840.10008.5.1.4.1.1.88.4"
420 
421 /* Supplement 30 Draft 08 for Demonstration (October 1997) */
422 #define UID_DRAFT_WaveformStorage                                  "1.2.840.10008.5.1.4.1.1.9.1"
423 
424 
425 #endif /* DCUID_H */
426