-
Notifications
You must be signed in to change notification settings - Fork 3
Slicer DICOM UID org root #16
Comments
At one point I got an SPL root as a subpart of the BWH space but I didn't end up using it. We could probably dig it up or get a new one. We should discuss the nature of what these roots mean and how we want to treat them. Ideally the operator of the software (the institution) should provide the org root, not the software itself. For example, we would not want people to generate documents that claimed to be from BWH. As I understand it the spec calls for the UID to be strictly globally unique (which is sometimes possible, but actually typically means 'probably unique'), with some pseudo provenance property about the organization (hospital) that generated it. This is unlike git hashes, which are essentially random numbers that very very unlikely to be non-unique and contain no other information. So we need to take care in how we handle UIDs to live up to the spirit of the spec. Also we should check for clarification in the spec itself, since it's been many years since I read it in detail (probably the 'non-organizational' approach is a well established convention by now). Slicer should at least allow people to do it right if they want to put in the effort, but slicer should still generate valid documents with a default configuration. Right now slicer uses the gdcm generator, which relies on a default root and the MAC address of the network adapter (which has caused some practical issues, since gdcm printed a message to stderr on linux machines when in airplane mode and that screwed up some CLI processing, but more importantly probably meant it could not generate a valid UID without network adapter). DCMTK has a documented algorithm about how the UIDs are generated and it looks robust. http://www.medicalconnections.co.uk/kb/UID_Rules http://stackoverflow.com/questions/10295792/how-to-generate-sopinstance-uid-for-dicom-file http://en.wikipedia.org/wiki/Universally_unique_identifier http://forum.dcmtk.org/viewtopic.php?f=4&t=910&sid=dcbebbe5e89764b36e0dc76540347b4d |
Hi guys I doubt there is a need for a Slicer-specific root. Marco also commented on dcmtk's approach again here: http://forum.dcmtk.org/viewtopic.php?t=783 Note the dependence on a timestamp and machine ID. I usually use a similar mechanism. If we are going to use dcmtk for the project, I would stick with The matter of being able to generate the same UID repeatably One can conceive of convoluted ways to manipulate UID generation An alternative approach that is also not deterministic (at least Steve already included a link to the Wikipedia description See DICOM PS 3.5 Annex B.2, or the CP that described this: http://www.dclunie.com/dicom-status/status.html#CP1156 Also: http://www.dclunie.com/medical-image-faq/html/part2.html#UUID E.g., the UUID f81d4fae-7dec-11d0-a765-00a0c91e6bf6 becomes the DICOM UID 2.25.329800735698586629295641978511506172918 Also, see: http://www.dclunie.com/pixelmed/software/javadoc/com/pixelmed/utils/UUIDBasedOID.html David On 12/12/13 7:57 AM, Steve Pieper wrote:
|
Thanks for the clarification and info David! Personally, I like the 2.25 approach since it treats everything the same -Steve On Thu, Dec 12, 2013 at 9:30 AM, dclunie notifications@github.com wrote:
|
Hi Steve Provenance should NEVER be assumed from UIDs (both because you There are a whole bunch of attributes specifically designed to Specifically, the Contributing Equipment Sequence is designed Contributing Equipment Sequence
For SR objects, additional mechanisms are available in various templates I think we should avoid the matter of electronic or digital signatures. David On 12/12/13 9:58 AM, Steve Pieper wrote:
|
Right - we're on the same wavelength here - that's why I prefer the And yes, we want to really get the provenance concepts deeply integrated On Thu, Dec 12, 2013 at 10:26 AM, dclunie notifications@github.com wrote:
|
Thank you for this lively discussion! I am closing this issue, as it clearly appears we do not need to get a special UID root, which is a good news, and can use DCMTK mechanisms and/or "2.25" approaches for UID generation. |
By the way, DCMTK also permits creation of UIDs based on the 2.25 approach, see ofuuid.h . |
It was clarified by @dclunie at the today's call that the 2.25 UID generation approach is indeed part of the standard. |
As we plan to create DICOM objects in Slicer, should we consider using a proper UID org root? Or should is there one in DCMTK that we should use?
Steve, you mentioned there was an effort in the past to get this UID root for Slicer - should we follow up on that effort?
The text was updated successfully, but these errors were encountered: