Desktop DICOM tag editor built with Python, PySide6, and pydicom.
- OS:
- macOS 13+ (tested)
- Windows 10/11 (expected)
- Python: 3.10 or newer
- RAM: 4 GB minimum (8 GB recommended)
- Disk:
- 500 MB free for app + dependencies
- Additional space for edited DICOM outputs
- Network:
- Optional (only needed when using remote allowlist refresh via
DICOM_ALLOWLIST_URL)
- Optional (only needed when using remote allowlist refresh via
- Load a single DICOM file or scan a folder.
- View tags as:
Path,Tag,Name,VR,Value. - Edit operations:
Start Add-> fill fields ->Confirm AddUpdate Selected(works only for a selected existing row)Remove Selected
- Nested sequence path support (example:
00400275[0].00100010). - Batch apply edits to a set grouped by:
StudyInstanceUID + SeriesInstanceUID
- Save to new files (
edited_<original_name>) while preserving originals. - Dark theme UI with sortable tag table.
- Standard-tag editing is constrained by an Innolitics-scoped allowlist.
- Embedded static allowlist snapshot is included:
src/dicom_editor/data/innolitics_allowlist.json
- Optional runtime refresh from remote snapshot:
- Set
DICOM_ALLOWLIST_URLto a JSON URL - Successful refresh is cached at
~/.dicom-tag-editor/allowlist-cache.json
- Set
When adding a tag, the app can auto-add required tags by Innolitics module rules.
- Base behavior:
- Module Type 1/2 required tags are auto-added (broad coverage via Innolitics-derived module mapping).
- Conditional behavior:
- Generic 1C/2C condition parsing is not fully implemented yet.
- Currently implemented conditional case:
- If
Approval Status (300E,0002)isAPPROVEDorREJECTED, auto-add:Review Date (300E,0004)Review Time (300E,0005)Reviewer Name (300E,0008)
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
python -m dicom_editor.appWith remote allowlist refresh:
export DICOM_ALLOWLIST_URL="https://your-host/latest_allowlist.json"
python -m dicom_editor.apppip install -e .[dev]
pytest -qMIT. See LICENSE.