dicom-series-preflight
NVIDIA/skills
Analyse un dossier contenant une série d'images DICOM afin d'extraire les métadonnées d'en-tête et de générer un verdict de pré-validation sans décoder les données de pixels.
...Développer toutVérification préalable de la série DICOM
Objectif
- Utilisé pour la pré-validation (en tête de fichier uniquement) d’un dossier de série DICOM avant conversion ou inférence. Ne sert pas à la dépersonnalisation ni à l’autorisation clinique.
- Utilisez le wrapper exactement comme décrit dans la documentation ; ne remplacez pas le point d’entrée en amont par une implémentation personnalisée.
- E/S du manifeste : les entrées sont
dicom_dir; les sorties sontpreflight_json.
Instructions
- Lisez
le fichier skill_manifest.yamlavant de modifier les arguments, les effets secondaires ou les conditions de validation. - Exécutez
scripts/preflight_series.pyà l’aide de la commande documentée ci-dessous ; conservez les sorties dans un répertoire d’exécution fourni par l’appelant. - Si un agent hôte expose
la fonction run_script, utilisezrun_script("scripts/preflight_series.py", args=[...]); sinon, exécutez la commande Bash/Python indiquée ci-dessous. - Vérifiez le JSON généré et les consignes associées du vérificateur avant de considérer l’exécution comme une 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 |
Prérequis
- Exigences d'exécution : paquets Python répertoriés dans
runtime.side_effects.pip_packages. - Exécutez les commandes à partir de la racine du référentiel, sauf indication contraire dans l’une des sections ci-dessous.
Limitations
- En-tête uniquement ; ne décode pas les données de pixels et ne détecte pas les informations de santé protégées (PHI) gravées dans l’image.
- La porte d’orientation canonique suppose des codes axiaux CT dérivés du LPS : L, P, S.
- La syntaxe de transfert compressée et les instances multi-images font l’objet d’un avertissement et ne sont pas décodées.
- Analyse d’un seul répertoire ; ne fusionne pas plusieurs études au sein d’une même arborescence.
- Ne convient pas à un déploiement clinique, à la dépersonnalisation réglementaire, au diagnostic autonome, ni à l’ingestion en production sans convertisseur validé.
Dépannage
| Erreur | Cause | Solution |
|---|---|---|
| Dépendance manquante ou erreur d'importation | Décalage entre le paquet d'exécution et le fichier skill_manifest.yaml. |
Installez les paquets déclarés dans le manifeste ou utilisez la commande de configuration documentée. |
| Sortie vide ou schéma non valide | Chemin d'entrée incorrect, modalité non prise en charge ou échec en amont. | Relancez l’opération avec un test de validation connu et examinez le JSON du wrapper ainsi que stderr. |
| Échec de la validation | La sortie a enfreint une invariante d'ingénierie déclarée. | Conservez le pack de preuves de l'échec et utilisez le message de la barrière pour corriger les entrées ou le code du wrapper. |
Analyse un répertoire DICOM (une série par dossier) sans décoder les pixels.
Génère un fichier JSON contenant l’inventaire, les codes d’axe d’orientation, les indicateurs PHI, les résultats et un
verdict depré-validation ( « pass », « warn » ou « fail »).
scripts Python/preflight_series.py CHEMIN_VERS_LE_RÉPERTOIRE_DICOM
À associer à verifiers/dicom_preflight_quality_v1 pour obtenir un pack de pré-validation fiable :
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
Ne convient pas à l’anonymisation, à la vérification des balises privées ni à l’autorisation clinique.
---
name: dicom-series-preflight
description: Scans a DICOM series folder to extract header metadata and produce a preflight verdict without decoding pixel data.
license: Apache-2.0
---
# DICOM Series Preflight
## Purpose
- Used for header-only preflight of one DICOM series folder before conversion or inference. Not for de-identification or clinical clearance.
- Use the wrapper exactly as documented; do not replace the upstream entrypoint with a handwritten implementation.
- Manifest I/O: inputs are `dicom_dir`; outputs are `preflight_json`.
## Instructions
- Read `skill_manifest.yaml` before changing arguments, side effects, or validation gates.
- Run `scripts/preflight_series.py` through the documented command below; keep outputs under a caller-provided run directory.
- If a host agent exposes `run_script`, use `run_script("scripts/preflight_series.py", args=[...])`; otherwise run the Bash/Python command shown below.
- Check the emitted JSON and paired verifier guidance before treating the run as evidence.
## Available Scripts
| Script | Purpose | Arguments |
|---|---|---|
| `scripts/preflight_series.py` | Primary entrypoint declared by skill_manifest.yaml. | `PATH_TO_DICOM_DIR` |
## Prerequisites
- Runtime requirements: Python packages listed in `runtime.side_effects.pip_packages`.
- Run commands from the repository root unless an existing section below says otherwise.
## Limitations
- Header-only; does not decode pixel data or detect burnt-in PHI.
- Canonical orientation gate assumes LPS-derived CT axcodes L,P,S.
- Compressed transfer syntax and multi-frame instances are warned, not decoded.
- Single-directory scan; does not reconcile multiple studies in one tree.
- Not for clinical deployment, regulatory de-identification, autonomous diagnosis, production ingestion without a vetted converter.
## Troubleshooting
| Error | Cause | Fix |
|---|---|---|
| Missing dependency or import error | Runtime package drift from `skill_manifest.yaml`. | Install the packages declared in the manifest or use the documented setup command. |
| Empty or schema-invalid output | Wrong input path, unsupported modality, or upstream failure. | Re-run with a known fixture and inspect the wrapper JSON plus stderr. |
| Validation gate failure | Output violated a declared engineering invariant. | Keep the failed evidence pack and use the gate message to repair inputs or wrapper code. |
Scans a DICOM **directory** (one series per folder) without decoding pixels.
Emits JSON with inventory, orientation axcodes, PHI flags, findings, and a
`preflight.verdict` of `pass`, `warn`, or `fail`.
```bash
python scripts/preflight_series.py PATH_TO_DICOM_DIR
```
Pair with `verifiers/dicom_preflight_quality_v1` for a trusted preflight pack:
```bash
make run-trusted SKILL=dicom_series_preflight \
FIXTURE=skills/dicom-series-preflight/fixtures/clean_no_phi \
OUT=runs/dicom_preflight_demo
```
Flagship workflow:
```bash
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
```
Not for de-identification, private-tag review, or clinical clearance.
Tous les fichiers
10 fichiersInstaller dicom-series-preflight
Téléchargez et décompressez les fichiers de compétences dans votre répertoire .claude/skills/.
Télécharger le ZIPClonez le dépôt et copiez les fichiers de compétence dans votre projet.
git clone https://github.com/NVIDIA/skills/tree/main/skills/dicom-series-preflight # Copy SKILL.md to your .claude/skills/ directory
Copier





Maison
