| name | dicom-anonymizer |
| description | Batch anonymize DICOM medical images by removing patient sensitive information (name, ID, birth date) while preserving image data for research use. Trigger when users need to de-identify medical imaging data, prepare DICOM files for research sharing, or remove PHI from radiology/scanned images. |
| version | 1.0.0 |
| category | Clinical |
| tags | [] |
| author | AIPOCH |
| license | MIT |
| status | Draft |
| risk_level | Medium |
| skill_type | Tool/Script |
| owner | AIPOCH |
| reviewer | |
| last_updated | 2026-02-06 |
DICOM Anonymizer
A clinical-grade tool for batch anonymization of DICOM medical images, removing patient identifiable information while preserving essential imaging data for research and analysis.
Overview
This skill anonymizes DICOM (Digital Imaging and Communications in Medicine) files by removing or replacing Protected Health Information (PHI) while maintaining the integrity of the medical image data. It supports batch processing of entire directories and generates audit logs for compliance documentation.
Features
- Batch Processing: Process single files or entire directories recursively
- 18 PHI Tags Anonymized: Patient name, ID, birth date, institution, physician, etc.
- Configurable Anonymization: Choose between removal, hashing, or replacement strategies
- Study Linkage Preservation: Option to maintain study/series relationships using pseudonyms
- Audit Trail: Complete logging of all anonymization actions
- HIPAA Safe Harbor Compliant: Meets de-identification standards for research use
Usage
Command Line
python scripts/main.py --input patient_scan.dcm --output anonymized.dcm
python scripts/main.py --input /path/to/dicom/folder/ --output /path/to/output/ --batch
python scripts/main.py --input scans/ --output clean/ --batch --preserve-studies
python scripts/main.py --input scan.dcm --output clean.dcm --keep-tags PatientAge
Python API
from scripts.main import DICOMAnonymizer
anonymizer = DICOMAnonymizer(preserve_studies=True)
result = anonymizer.anonymize_file("input.dcm", "output.dcm")
print(f"Tags anonymized: {len(result.anonymized_tags)}")
results = anonymizer.anonymize_directory("input_folder/", "output_folder/")
Parameters