📚 Documentation · Desktop app · 📦 PyPI · 🧪 Try a demo · 📝 Changelog · ⚖️ Apache-2.0
dicomqc audits de-identified DICOM metadata for privacy risks. The desktop app is the recommended interface; the CLI supports advanced automation and scripted workflows. Both use the same Python audit engine.
It flags identifying fields, unexpected pseudonym formats, private tags, and unreadable files. It writes HTML, JSON, CSV, and MultiQC-compatible reports. Findings omit raw tag values; the optional scanner inventory exports observed labels and must be reviewed before sharing.
dicomqc is not an anonymizer. It never modifies original DICOM files. If it reports required changes, apply them with an external pseudonymization or anonymization tool and rerun the audit.
Select DICOM files or folders and run an
audit. The desktop workspace keeps sources and searchable, renameable run
history beside Setup, Policy, Findings, and Reports views. The
Policy workspace creates, edits, and validates YAML project policies while
preserving the original file. Raw DICOM files
remain external and unchanged. File > Save Project stores settings, policy
copies, run history, logs, and reports together in a portable .dicomqc file.
Example runs and audits of your own data can belong to the same project.
The app manages working storage internally; export individual reports with Save copy.
Only one audit runs at a time. Large audits parallelize independent DICOM files;
the metadata-thread count is configurable under Settings > Processing.
Each run log records file count, elapsed processing time, average throughput,
and the configured thread count.
Load example data runs built-in scan, comparison, policy, UID, scanner-inventory, and adjustable large-cohort examples without patient data. The large cohort includes 250 deterministic privacy findings so pagination and review workflows can be exercised.
The desktop app currently runs from source; installers are not published. See Desktop setup and usage. The app starts its audit service locally; no remote server is required.
Install in a Python environment and try the synthetic demo:
pip install dicomqc
dicomqc demoFor a large dataset, dicomqc scan study/ --threads 8 uses eight metadata
threads within that single audit. Internally, files are dispatched to batched
worker processes and merged deterministically. The default is four threads, or
fewer on smaller systems; small audits run serially when multiprocessing would
cost more than it saves. The maximum is the logical-processor count available
to dicomqc.
The demo creates dicomqc-demo/ with synthetic DICOM files and sample reports.
See the documentation
for installation options, dataset comparisons, reports, and citation guidance.
A manuscript describing dicomqc is in preparation. Until publication, please cite the software using CITATION.cff and record the version used in your analysis.
Written by Manuel Rueda. GitHub repository: https://github.com/CNAG-Biomedical-Informatics/dicomqc.
Copyright 2026 Manuel Rueda, CNAG.
dicomqc is distributed under the Apache License 2.0.
