[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: debian OID / dicom3tools packaging



On Thu, Jan 29, 2009 at 2:44 AM, Steve M. Robbins <steve@sumost.ca> wrote:
> Hi,
>
> To begin, I think there's some confusion about UID and OID.  They
> are actually the same thing, according to Clunie:
>
>  What DICOM calls "UIDs" are referred to in the
>  ISO OSI world as Object Identifiers (OIDs).
>
> What Mathieu is talking about is the "UID Root" (or "org root",
> according to DICOM PS3.5), and I assume subsquent posts in this thread
> mistakenly call that an OID.

oh ! I did not realize I wasn't clear ! Thanks for the clarification, Steve !

> By the way, since UIDs are only 64 characters long (restricted to 0-9
> and "."), I'd urge you to consider keeping the Root as short as
> possible, so as to leave room for the suffix generation.  Instead of
> adding "med | od -b", perhaps just add ".0" for dicom3tools:
>
>  1.3.6.1.4.1.9586.0
>
> The next software package that needs a UID Root could then use
>
>  1.3.6.1.4.1.9586.1

Indeed, that would be ideal, but that's the reason why I decide to
post to the debian-mentors: 1.3.6.1.4.1.9586.1 is already being used
in another context (https://dsawiki.debian.org/dsawiki/iana ->
enterprise.Debian.package)

Because this root uid would be seen only in DICOM file I do not know
whether this was an issue or not. Anyway the question: is there some
kind of authorities to decide whether or not I can use this subspace
of the debian OID in the dicom3tools package, it will then make sense
to apply this rules to dcmtk package and (hopefully) gdcm package once
it gets approved.

> etc.  Basically, the idea is to parcel up the Debian UID space across
> different UID generation algorithms -- i.e. the one in dicom3tools
> versus the next one (using ".1" root).

I do not know much about the dcmtk/dicom3tools algorithm, but
internally in GDCM I am using the uuid libs to generated the uid (down
below the root uid).

From:
http://gdcm.svn.sf.net/viewvc/gdcm/trunk/Source/MediaStorageAndFileFormat/gdcmUIDGenerator.cxx


/*
 * This is just plain bad luck. GDCM UID root is 26 byte long
 * And all implementation of the DCE UUID (Theodore Y. Ts'o)
 * are based on a uint128_t (unsigned char [16]). Which
 * means that converted to a base 10 number they require at
 * least 39 bytes to fit in memory, since the highest possible
 * number is 256**16 - 1 = 340282366920938463463374607431768211455
 * Unfortunately root + '.' + suffix should be at most 64 bytes
 *
 * So to get a full UUID implementation as per RFC 4122
 * http://www.ietf.org/rfc/rfc4122.txt we need a shorter
 * root...
 *
 */


To use the full space of the uuid implementation (Ts'o implementation)
I would need a root uid of: 64 - 39 - 1 = 24 bytes at most.

Thanks for your time,
-- 
Mathieu


Reply to: