dicom-pipeline

Par mkurman · zorai

Workflow DICOM de bout en bout : parsing, anonymisation/dé-identification, conversion, rapports structurés, requête/récupération PACS et DICOMweb. Construisez des pipelines d'imagerie médicale automatisés.

npx skills add https://github.com/mkurman/zorai --skill dicom-pipeline

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

  1. Parser DICOM avec pydicom.dcmread()
  2. Extraire les métadonnées : modalité, anatomie, infos patient
  3. Anonymiser selon DICOM PS3.15 (effacer les tags PHI)
  4. Convertir en NIfTI via dcm2niix ou pixel_array manuel
  5. Interroger PACS avec DICOMweb QIDO-RS
  6. Générer des DICOM SR (Rapports Structurés) pour les résultats IA

Skills similaires