dicom-series-preflight — скилл для Claude Code: проверка DICOM-серии
Скилл читает заголовки DICOM-файлов в одной папке серии и выдаёт JSON с вердиктом pass, warn или fail до конвертации или инференса.
npx skills add NVIDIA/skills --skill dicom-series-preflight -a claude-codeЧто делает dicom-series-preflight
Скилл обходит одну папку с DICOM-серией и смотрит только заголовки. Пиксели не декодируются. На выходе — JSON с инвентарём файлов, осями ориентации в axcodes, флагами PHI, находками и полем preflight.verdict со значением pass, warn или fail.
Запуск идёт через scripts/preflight_series.py с аргументом PATH_TO_DICOM_DIR. Если хост-агент умеет run_script, вызывайте run_script("scripts/preflight_series.py", args=[...]), иначе — обычной командой Bash или Python. Результаты складывайте в каталог запуска, который задаёт вызывающая сторона. Перед правкой аргументов или проверок прочитайте skill_manifest.yaml.
Нужен NiBabel 5.4 или новее: иначе при переориентации экстремально косые оси размечаются непоследовательно. Сжатые transfer syntax и многокадровые снимки только помечаются предупреждением, не декодируются. Скан идёт по одной папке — несколько исследований в одном дереве не сводятся. Канонический гейт ориентации рассчитан на axcodes L, P, S от LPS. Для деидентификации, разбора приватных тегов и клинического допуска это не подходит.
Какие задачи решает
- проверить серию до конвертации и не гнать битые данные в пайплайн
- получить список файлов и оси ориентации в одном JSON
- поймать флаги PHI в заголовках до выгрузки наружу
- отсеять серию с несовместимой ориентацией на входе
- зафиксировать доказательства прогона вместе с вердиктом
Примеры запросов агенту
- Прогони preflight по папке
data/series_01и покажи вердикт - Запусти
scripts/preflight_series.pyнаfixtures/clean_no_phiи разбери JSON - Проверь заголовки серии в
runs/incomingи скажи, есть ли флаги PHI
Как установить dicom-series-preflight
1Через Skills CLI (Vercel)
npx skills add NVIDIA/skills --skill dicom-series-preflight -a claude-code2Вручную: положить файлы
~/.claude/skills/dicom-series-preflight/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/dicom-series-preflight/
1Через Skills CLI (Vercel)
npx skills add NVIDIA/skills --skill dicom-series-preflight -a codex2Вручную: положить файлы
.agents/skills/dicom-series-preflight/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add NVIDIA/skills --skill dicom-series-preflight -a cursor2Вручную: положить файлы
.cursor/skills/dicom-series-preflight/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install NVIDIA/skills dicom-series-preflight2Вручную: положить файлы
.github/skills/dicom-series-preflight/SKILL.md1Через Skills CLI (Vercel)
npx skills add NVIDIA/skills --skill dicom-series-preflight -a gemini-cli2Командой платформы
gemini skills install https://github.com/NVIDIA/skills --path skills/dicom-series-preflightВручную: положить файлы
.devin/skills/dicom-series-preflight/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add NVIDIA/skills --skill dicom-series-preflight -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о dicom-series-preflight
Как установить dicom-series-preflight в Claude Code?
Выполните npx skills add NVIDIA/skills --skill dicom-series-preflight -a claude-code. Скилл окажется в ~/.claude/skills/dicom-series-preflight/SKILL.md.
Что делает dicom-series-preflight?
Читает заголовки одной папки DICOM-серии и выдаёт JSON с инвентарём, осями ориентации, флагами PHI и вердиктом pass, warn или fail. Пиксельные данные не трогает.
Чем этот скилл не занимается?
Деидентификацией, разбором приватных тегов и клиническим допуском. Сжатые transfer syntax и многокадровые снимки он только помечает предупреждением.
Исходный текст
SKILL.md · Apache-2.0
---
name: dicom-series-preflight
description: Used for header-only preflight of one DICOM series folder before conversion or inference. Not for de-identification or clinical clearance.
license: Apache-2.0
allowed-tools: Bash
metadata:
author: 'NVIDIA MedTech Team'
tags:
- MedTech
- DICOM
- preflight
---
# 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`.
- NiBabel 5.4 or newer is required so extreme-oblique axes remain labeled consistently across reorientation.
- 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.
© NVIDIA MedTech Team · Apache-2.0 · NVIDIA/skills