Dicom Series Preflight
NVIDIAOfficialCreated by NVIDIA MedTech Team
- Skill
- Review and audit
- Science and research
- Apache-2.0
- Medium risk
- Has scripts
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
The DICOM Series Preflight skill provides a mechanism to inspect DICOM series directories by analyzing headers without decoding pixel data. It generates a structured JSON output containing an inventory of the series, orientation axcodes, potential PHI flags, and a verdict of pass, warn, or fail. This tool is intended for pre-processing validation to ensure data quality before conversion or inference tasks, and it is explicitly not designed for clinical clearance, de-identification, or production ingestion.
What it does
- Scans a single DICOM series directory for header-based validation.
- Generates a JSON report including inventory, orientation, and findings.
- Assigns a preflight verdict of pass, warn, or fail.
- Identifies potential PHI flags within the headers.
- Provides integration with trusted verifier workflows.
When to use it
- Before running inference or conversion on DICOM data.
- When you need to verify series orientation and header integrity.
- To perform rapid quality checks on medical imaging datasets.
- As a gatekeeper in automated medical imaging pipelines.
Advantages
- Fast execution due to header-only analysis without pixel decoding.
- Standardized output format for downstream automated processing.
- Helps identify potential issues early in the data pipeline.
- Integrates with existing workflow automation tools.
Usage examples
- “Run a preflight check on the DICOM series located in /data/dicom/series_01.”
- The agent executes the preflight script on the specified directory and returns a JSON report containing the series inventory, orientation axcodes, and a pass/warn/fail verdict.
- “Validate the DICOM series in /data/scan_01 using the trusted preflight verifier.”
- The agent runs the preflight script and pipes the output through the trusted verifier to confirm the data meets the required engineering invariants.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/nvidia/dicom-series-preflight/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip dicom-series-preflight.zip -d .agents/skills
Documentation by NVIDIA MedTech Team
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 arepreflight_json.
Instructions
Read
skill_manifest.yamlbefore changing arguments, side effects, or validation gates.Run
scripts/preflight_series.pythrough the documented command below; keep outputs under a caller-provided run directory.If a host agent exposes
run_script, userun_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.
python scripts/preflight_series.py PATH_TO_DICOM_DIRPair with verifiers/dicom_preflight_quality_v1 for a trusted preflight pack:
make run-trusted SKILL=dicom_series_preflight \
FIXTURE=skills/dicom-series-preflight/fixtures/clean_no_phi \
OUT=runs/dicom_preflight_demoFlagship workflow:
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_gateNot for de-identification, private-tag review, or clinical clearance.
Files
- ATTRIBUTION.mdAdded by AutoGineer937 B
- BENCHMARK.md7.4 KiB
- LICENSELicence file added by AutoGineer11.2 KiB
- SKILL.md3.4 KiB
- evals/evals.json2.5 KiB
- fixtures/generate_fixtures.pyScript2.0 KiB
- scripts/preflight_series.pyScript12.6 KiB
- skill-card.md4.1 KiB
- skill.oms.sig5.7 KiB
- skill_manifest.yaml3.6 KiB
- tests/test_preflight_series.pyScript2.0 KiB
- validators/output_schema.json1.5 KiB
tests/test_preflight_series.py
# SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""Unit tests for dicom_series_preflight."""
import sys
from pathlib import Path
import pytest
REPO = Path(__file__).resolve().parents[3]
FIXTURES = Path(__file__).resolve().parents[1] / "fixtures"
SCRIPTS = Path(__file__).resolve().parents[1] / "scripts"
sys.path.insert(0, str(SCRIPTS))
from preflight_series import preflight # noqa: E402
@pytest.fixture(scope="module")
def _ensure_fixtures():
if not (FIXTURES / "clean_no_phi").is_dir():
import subprocess
import sys
subprocess.run(
[sys.executable, str(FIXTURES / "generate_fixtures.py")],
check=True,
cwd=REPO,
)
def test_clean_no_phi_passes(_ensure_fixtures):
result = preflight(FIXTURES / "clean_no_phi")
assert result["preflight"]["verdict"] == "pass"
assert result["orientation"]["axcodes_match"] is True
assert result["inventory"]["n_corrupt"] == 0
assert result["input_dir"] == "skills/dicom-series-preflight/fixtures/clean_no_phi"
def test_flipped_lr_fails(_ensure_fixtures):
result = preflight(FIXTURES / "flipped_lr")
assert result["preflight"]["verdict"] == "fail"
assert result["orientation"]["axcodes_match"] is False
def test_clean_axial_warns_phi(_ensure_fixtures):
result = preflight(FIXTURES / "clean_axial")
assert result["preflight"]["verdict"] == "warn"
assert result["phi"]["phi_present"] is True
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Declares allowed tools, Needs Python
Security
What our scanner noticed· Medium risk
- Large base64-encoded blobs
- Scripts that your agent may run
This skill includes scripts that your agent may run. Read them before you use it.
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- NVIDIA MedTech Team
- Publisher
- NVIDIA (Official)
- Source
- NVIDIA/skills · skills/dicom-series-preflight · commit fce3cca
- Licence
- Apache License 2.0 (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE-APACHE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by NVIDIA MedTech Team or NVIDIA.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download dicom-series-preflight.zip