# Dicom3tools for DICOM validation available via pip and web app

**URL:** https://discourse.slicer.org/t/dicom3tools-for-dicom-validation-available-via-pip-and-web-app/48212
**Category:** Development
**Tags:** dicom
**Created:** [September 21, 2026, 2:45pm UTC](https://discourse.slicer.org/t/dicom3tools-for-dicom-validation-available-via-pip-and-web-app/48212 "2026-09-21T14:45:00Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![fedorov](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/fedorov/32/14_2.png) [@fedorov](https://discourse.slicer.org/u/fedorov)
#### Post date: [September 21, 2026, 2:45pm UTC](https://discourse.slicer.org/t/dicom3tools-for-dicom-validation-available-via-pip-and-web-app/48212/1 "2026-09-21T14:45:00Z")

</div>

_Reposted (with edits) from [Dicom3tools binaries are now available via a PyPI package - Announcements - Imaging Data Commons](https://discourse.canceridc.dev/t/dicom3tools-binaries-are-now-available-via-a-pypi-package/802)_

* * *

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](https://www.dclunie.com/dicom3tools.html) 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:

- [https://github.com/ImagingDataCommons/dicom3tools:](https://github.com/ImagingDataCommons/dicom3tools:) github mirror of the `dicom3tools` source code, synchronized automatically from the source packages published by David Clunie, release-tagged, and accompanied by binaries for Windows, Linux and Mac

- [https://github.com/ImagingDataCommons/dicom3tools-python-distributions:](https://github.com/ImagingDataCommons/dicom3tools-python-distributions:) python distribution of the dicom3tools binaries, published on PyPI: pip install dicom3tools will install `dciodvfy`, `dcentvfy`, `dcdump` and other `dicom3tools` binaries in the path of your environment - and callable from Python

- [https://github.com/ImagingDataCommons/dicom3tools-web-distributions](https://github.com/ImagingDataCommons/dicom3tools-web-distributions) WebAssembly packaging) + [https://imagingdatacommons.github.io/dicom3tools-web-distributions/](https://imagingdatacommons.github.io/dicom3tools-web-distributions/) web page interface where you can validate your DICOM files directly in the browser (contribution by Alireza Sedghi)

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!

---

<div class="post-metadata">

### Author: ![pieper](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/pieper/32/8_2.png) [@pieper](https://discourse.slicer.org/u/pieper)
#### Post date: [September 21, 2026, 3:01pm UTC](https://discourse.slicer.org/t/dicom3tools-for-dicom-validation-available-via-pip-and-web-app/48212/2 "2026-09-21T15:01:20Z")

</div>

Thanks for posting @fedorov 👍

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

```auto
>>> 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.

---

<div class="post-metadata">

### Author: ![fedorov](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/fedorov/32/14_2.png) [@fedorov](https://discourse.slicer.org/u/fedorov)
#### Post date: [September 21, 2026, 3:06pm UTC](https://discourse.slicer.org/t/dicom3tools-for-dicom-validation-available-via-pip-and-web-app/48212/3 "2026-09-21T15:06:16Z")

</div>

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!

---

<div class="post-metadata">

### Author: ![pieper](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/pieper/32/8_2.png) [@pieper](https://discourse.slicer.org/u/pieper)
#### Post date: [September 21, 2026, 4:00pm UTC](https://discourse.slicer.org/t/dicom3tools-for-dicom-validation-available-via-pip-and-web-app/48212/4 "2026-09-21T16:00:24Z")

</div>

done!

> <https://github.com/ImagingDataCommons/dicom3tools-python-distributions/issues/4>
>
> Make it possible to run \`results = dicom3tools.dciodvfy(file\_path)\` where \`resul…ts\` is either a list of strings of analysis results or an instance of a class that gives higher level parsed output, like \`results.warnings\_only()\` 
> 
> https://discourse.slicer.org/t/dicom3tools-for-dicom-validation-available-via-pip-and-web-app/48212
