Aperçu
Workflow DICOM complet : parsing, anonymisation, conversion, rapports structurés, requêtes/récupérations PACS, et intégration DICOMweb.
Installation
uv pip install pydicom
Lecture et inspection
import pydicom, numpy as np
ds = pydicom.dcmread("study.dcm")
print(f"Patient: {ds.PatientName}")
print(f"Modality: {ds.Modality}")
print(f"Study: {ds.StudyDescription}")
print(f"Size: {ds.Rows}x{ds.Columns}")
pixels = ds.pixel_array # NumPy array
Anonymisation
ds = pydicom.dcmread("input.dcm")
phi_tags = [(0x0010, 0x0010), (0x0010, 0x0030), (0x0008, 0x0080)]
for tag in phi_tags:
if tag in ds:
ds[tag].value = ""
ds.save_as("anon.dcm")
DICOMweb
import requests
resp = requests.get(
"http://pacs:8080/dicom-web/studies",
params={"PatientName": "Doe*"},
headers={"Accept": "application/dicom+json"},
)
Workflow
- Parser DICOM avec
pydicom.dcmread() - Extraire les métadonnées : modalité, anatomie, infos patient
- Anonymiser selon DICOM PS3.15 (effacer les tags PHI)
- Convertir en NIfTI via dcm2niix ou pixel_array manuel
- Interroger PACS avec DICOMweb QIDO-RS
- Générer des DICOM SR (Rapports Structurés) pour les résultats IA