Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is suffixing a UUID derived DICOM UID standard conform?

Additional discussion on the comp.protocols.dicom google group.


Specific example:

Given that instance UIDs are derived from UUIDs as described in PS3.5 B.2.

For example given the following DICOM instance UID:

2.25.329800735698586629295641978511506172918

Is it standard conform to suffix that UID by adding additional components?

2.25.329800735698586629295641978511506172918.1, 
2.25.329800735698586629295641978511506172918.2, 
...

Concern:

From reading the standard, I somehow got the impression that the DICOM standard defines this form of UID only as valid if it only consists of the 2.25 prefix and the decimal representation of a valid UUID - and nothing more:

ISO/IEC 9834-8 / ITU-T X.667 defines a method by which a UID may be constructed from the root "2.25." followed by a decimal representation of a Universally Unique Identifier (UUID). That decimal representation treats the 128 bit UUID as an integer, and may thus be up to 39 digits long (leading zeros must be suppressed).

It does not explicitly say if there can be a suffix or not.

It has a max length of 5 + 39 characters and therefore has still some room until the 64 character limit of UIDs.

Do all rules from PS3.5 9.1 still apply to the UID definition of PS3.5 B.2 just with a fixed root? Or is PS3.5 B.2 an independent definition?


Additional information on UUID derived UIDs:

As far as I understand the DICOM standard, PS3.5 B.2 was added 2012 and is an exception to the normal UID definition defined by PS3.5 9.1 and PS3.5 B.1. It does not require an organisation root prefix. Instead it uses the general prefix 2.25 for all instance UIDs which are derived from UUIDs. Important to note here, that it should only be used for instance UIDs. See:

A UUID derived UID may be appropriate for dynamically created UIDs, such as SOP Instance UIDs, but is usually not appropriate for UIDs determined during application software design, such as private SOP Class or Transfer Syntax UIDs, or Implementation Class UIDs.

As an additional pointer to this exception (source):

Another approach to generating UIDs that does not require obtaining one's own root prefix can take advantage of a standard prefix established for using a Universally Unique Identifier (UUID) [...] in essence it involves converting the normal hyphenated hexadecimal string form of a UUID into a single large decimal number and appending it to the prefix "2.25."

like image 228
Spenhouet Avatar asked Apr 01 '20 17:04

Spenhouet


People also ask

What is a DICOM UID?

Privately defined Unique Identifiers (UIDs) are used in DICOM to uniquely identify items such as Specialized or Private SOP Classes, Image SOP Instances, Study SOP Instances, etc.

What is Mediastoragesopinstanceuid?

Media Storage SOP Instance UID (0002,0003) 1 Uniquely identifies the SOP Instance associated with the Data Set placed in the file and following the File Meta Information.


1 Answers

Absolutely not.

You cannot add anything as a suffix to 2.25 + UUID.

like image 79
David Clunie Avatar answered Nov 25 '22 08:11

David Clunie