dicom-series-preflight

Par nvidia · skills

Utilisé pour le contrôle préliminaire (header uniquement) d'un dossier de série DICOM avant conversion ou inférence. Non destiné à la dé-identification ni à la validation clinique.

npx skills add https://github.com/nvidia/skills --skill dicom-series-preflight

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 sont preflight_json.

Instructions

  • Consulter skill_manifest.yaml avant de modifier les arguments, les effets de bord ou les portes de validation.
  • Exécuter scripts/preflight_series.py via 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, utiliser run_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.

Skills similaires