Preflight DICOM Series
Objectif
- Utilisé pour un preflight en headers uniquement d'un dossier de série DICOM avant conversion ou inférence. Non destiné à la dé-identification ou à l'approbation clinique.
- Utiliser le wrapper exactement comme documenté ; ne pas remplacer le point d'entrée en amont par une implémentation manuscrite.
- Manifest I/O : les entrées sont
dicom_dir; les sorties sontpreflight_json.
Instructions
- Consulter
skill_manifest.yamlavant de modifier les arguments, les effets de bord ou les portes de validation. - Exécuter
scripts/preflight_series.pyvia la commande documentée ci-dessous ; garder les sorties dans un répertoire d'exécution fourni par l'appelant. - Si un agent hôte expose
run_script, utiliserrun_script("scripts/preflight_series.py", args=[...]); sinon exécuter la commande Bash/Python affichée ci-dessous. - Vérifier le JSON émis et les recommandations du vérificateur associé avant de traiter l'exécution comme preuve.
Scripts Disponibles
| Script | Objectif | Arguments |
|---|---|---|
scripts/preflight_series.py |
Point d'entrée principal déclaré par skill_manifest.yaml. | PATH_TO_DICOM_DIR |
Conditions Préalables
- Besoins du runtime : paquets Python listés dans
runtime.side_effects.pip_packages. - Exécuter les commandes depuis la racine du repository sauf si une section existante ci-dessous indique le contraire.
Limitations
- Headers uniquement ; ne décode pas les données de pixels ni ne détecte les PHI gravées.
- La porte d'orientation canonique suppose les axcodes L,P,S dérivés de LPS pour CT.
- La syntaxe de transfert compressée et les instances multi-images génèrent des avertissements, ne sont pas décodées.
- Analyse un seul répertoire ; ne réconcilie pas plusieurs études dans un même arborescence.
- Non destiné au déploiement clinique, à la dé-identification réglementaire, au diagnostic autonome, à l'ingestion en production sans convertisseur validé.
Dépannage
| Erreur | Cause | Correction |
|---|---|---|
| Dépendance manquante ou erreur d'importation | Dérive du paquet runtime depuis skill_manifest.yaml. |
Installer les paquets déclarés dans le manifest ou utiliser la commande de configuration documentée. |
| Sortie vide ou invalide selon le schéma | Chemin d'entrée incorrect, modalité non supportée ou défaillance en amont. | Réexécuter avec une fixture connue et inspecter le JSON du wrapper plus stderr. |
| Échec de la porte de validation | La sortie a violé un invariant d'ingénierie déclaré. | Conserver le pack de preuves défaillant et utiliser le message de porte pour réparer les entrées ou le code du wrapper. |
Analyse un répertoire DICOM (une série par dossier) sans décoder les pixels.
Émet du JSON avec l'inventaire, les axcodes d'orientation, les drapeaux PHI, les résultats et un
preflight.verdict de pass, warn ou fail.
python scripts/preflight_series.py PATH_TO_DICOM_DIR
Associer avec verifiers/dicom_preflight_quality_v1 pour un pack preflight approuvé :
make run-trusted SKILL=dicom_series_preflight \
FIXTURE=skills/dicom-series-preflight/fixtures/clean_no_phi \
OUT=runs/dicom_preflight_demo
Workflow phare :
make run-workflow \
WORKFLOW=examples/workflows/dicom_preflight_gate.yaml \
WORKFLOW_INPUT=skills/dicom-series-preflight/fixtures/clean_no_phi \
WORKFLOW_OUT=runs/dicom_preflight_gate
Non destiné à la dé-identification, l'examen des tags privés ou l'approbation clinique.