Dicom3tools for DICOM validation available via pip and web app

Reposted (with edits) from Dicom3tools binaries are now available via a PyPI package - Announcements - Imaging Data Commons


Those of us who work with DICOM a lot (by desire or by necessity) know what dciodvfy is. The ultimate DICOM validator. One of the many tools offered by the dicom3tools software maintained by the one and only David Clunie. Open source, but not on GitHub. Written in C++, but with prebuilt binaries available only for Mac and Windows.

We at Imaging Data Commons want to make it easier to access those tools, with the release of the three companion repositories:

You can now easily incorporate DICOM validation into your CI workflows, add these binaries to your Dockerfile or a Colab notebook, check conformance of suspected problematic files without installing anything!

See any issues? If you notice tools are not agreeing with the standard - contact David Clunie. If you have problems with the packaging - open an issue in one of the repos above!

We hope this small improvement will make it easier for you to identify problems in the DICOM files you are working with, and will help you improve standard compliance for the new content you create!

Thanks for posting @fedorov :+1:

I confirm the following works for me on Slicer 5.12.4 on mac (intel)

>>> pip_install("dicom3tools")
Collecting dicom3tools
  Downloading dicom3tools-20260901-py3-none-macosx_10_9_x86_64.whl.metadata (18 kB)
Downloading dicom3tools-20260901-py3-none-macosx_10_9_x86_64.whl (37.3 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 37.3/37.3 MB 21.7 MB/s  0:00:01
Installing collected packages: dicom3tools
Successfully installed dicom3tools-20260901
>>> dicom3tools.run("dciodvfy", ["/tmp/x.dcm"])
0
[FD] Warning - Missing attribute or value that would be needed to build DICOMDIR - Study ID
[FD] Warning - Value dubious for this VR - (0x0010,0x0010) PN Patient's Name  PN [1] = <13800> - Retired Person Name form
[FD] CTImage

Any plans to make this more pythonic? I.e. capture the output as an array of strings for example or make dicom3tools.dciodvfy take a file path as an argument.

No immediate plans, but if you have any ideas like that, please open an issue in the most appropriate repo from those mentioned so we can consider in the future!

done!