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
skill.oms.sig
{"mediaType":"application/vnd.dev.sigstore.bundle.v0.3+json","verificationMaterial":{"x509CertificateChain":{"certificates":[{"rawBytes":"MIICgzCCAgmgAwIBAgIUKIyS7SxNteQIiWzK1dWj85E6520wCgYIKoZIzj0EAwMwVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwHhcNMjYwNDAxMDAwMDAwWhcNMjgwNDIyMTUzMzA5WjBUMQswCQYDVQQGEwJVUzEbMBkGA1UECgwSTlZJRElBIENvcnBvcmF0aW9uMSgwJgYDVQQDDB9OVklESUEgQWdlbnQgU2tpbGxzIFNpZ25pbmcgMDAxMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEYoRM9bQl/dGlwSRNi6bTpIJUXH8Nv9GciP6LSflJYYMLCc296kpyuTSsk5ddbAWiDcFX3C/ydX3jwc+qCLYP6uHy9XphyLjOQ27Yb2J6rBLVtRBS1mgGco/Gr7fL6ODco4GaMIGXMB0GA1UdDgQWBBRQ/5ZW3nJ6lmo9SVk7I15o7UGmpTAfBgNVHSMEGDAWgBRPGpILxMBBleJSsBGjrMKsby1CgjAMBgNVHRMBAf8EAjAAMA4GA1UdDwEB/wQEAwIHgDA3BggrBgEFBQcBAQQrMCkwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vY3NwLm5kaXMubnZpZGlhLmNvbTAKBggqhkjOPQQDAwNoADBlAjAUygu/GiOCIXrgGr4SmLgeEVDcEitfFUv7ALbvLVGVyMysB3mxmO/uInZfXzWcJZsCMQDxuoxj4ZmO30jhkPIcCxGFCOvnUsnfU3TfGcouYm4M6iRpbKvtVnHPiy4bi6pcKf0="},{"rawBytes":"MIICiDCCAg6gAwIBAgIUZsIuSv9NkpJCNqtYEfCouVv5BzowCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowVTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjEpMCcGA1UEAwwgTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBJQ0EgMDEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASI72cR3ctKGg4VWnB3bNja6g1Z2PnOmFEopkPof+QeIcPk9rT+g9MjJnq51EQXL93a7C2GJ9J985G4o2V85VD7wJ1RaXhluHW2rf3y8bQGeAYaKMr5s/hUgn+M3/9WlWejgaAwgZ0wHQYDVR0OBBYEFE8akgvEwEGV4lKwEaOswqxvLUKCMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMBIGA1UdEwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMDcGCCsGAQUFBwEBBCswKTAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AubmRpcy5udmlkaWEuY29tMAoGCCqGSM49BAMDA2gAMGUCMQCeIMMfAbyzPDacw2MxG+Yt1cikrJX/DVxiGfXuHmkkXn6VgSzE79+lkqDErpVO2gYCMCNEColOyvUvkzZGUEI1hQ3PfMgi3FIo9tHoBKMw4/wGBLFpu/0ubtmbBXM6/UMOEw=="},{"rawBytes":"MIICRTCCAcygAwIBAgIUeJdY3rV86EdvFmG7L8LJBsyQFYkwCgYIKoZIzj0EAwMwUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTAgFw0yNjA0MDEwMDAwMDBaGA85OTk5MTIzMTIzNTk1OVowUTELMAkGA1UEBhMCVVMxGzAZBgNVBAoMEk5WSURJQSBDb3Jwb3JhdGlvbjElMCMGA1UEAwwcTlZJRElBIEFnZW50IENhcGFiaWxpdGllcyBDQTB2MBAGByqGSM49AgEGBSuBBAAiA2IABAYpiXCDjJ9NT2eSDhyHJVSw1Tbze18cGG2F/578oWvHxg23eQAhNRYdq88i1iOshZSO6C29doKui5Xpmo/7Ctw9Sx4PP2RzOmIuOLCuTdNtKcTRwi4GEsd5BAFvWj42M6NjMGEwHQYDVR0OBBYEFItnoAjjfuCEUvzyvWyI2vOGvwPjMB8GA1UdIwQYMBaAFItnoAjjfuCEUvzyvWyI2vOGvwPjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMAoGCCqGSM49BAMDA2cAMGQCMCwtAjWLaNwgGWNCgdyNoTyvNhqWRECRJV2r3+7w8g0PL6NHLOsbkgE09BH95h8XlgIwTaQmbbUh2ChAJ5TA1wRiVDnCcvbzHlZl2jM2FcwQQZlk19LOAbyGMRixbu2Ww/rj"}]},"tlogEntries":[]},"dsseEnvelope":{"payload":"ewogICJfdHlwZSI6ICJodHRwczovL2luLXRvdG8uaW8vU3RhdGVtZW50L3YxIiwKICAic3ViamVjdCI6IFsKICAgIHsKICAgICAgIm5hbWUiOiAiZGljb20tc2VyaWVzLXByZWZsaWdodCIsCiAgICAgICJkaWdlc3QiOiB7CiAgICAgICAgInNoYTI1NiI6ICJmMDFjYjFjMGE3YzExNTUzM2JiZWZlYmMzZDIyYTk2NzVjMTZjMjc4OTg3NGRlMjY1Mjc5M2JkNGU0NDk4NTE3IgogICAgICB9CiAgICB9CiAgXSwKICAicHJlZGljYXRlVHlwZSI6ICJodHRwczovL21vZGVsX3NpZ25pbmcvc2lnbmF0dXJlL3YxLjAiLAogICJwcmVkaWNhdGUiOiB7CiAgICAicmVzb3VyY2VzIjogWwogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICI2OWMxMjYxMzg0ZDZhNGMxNmY1NTc4YWQ5OGNmZWVlZGVjZmY5MGNkZjU0MGMzYjI5OWQ1OWIyYjgwMDk3ZDA0IiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIsCiAgICAgICAgIm5hbWUiOiAiQkVOQ0hNQVJLLm1kIgogICAgICB9LAogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICIzNmViMzAwOGNlZmM2NTAyNGM5NzE5MDMxMTQwZjZkZWVjZTdlNjZlYTZjMzYyMGU1NDhiODkzYTBmYmNhZDNhIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIsCiAgICAgICAgIm5hbWUiOiAiU0tJTEwubWQiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogIjYyMWYwY2VhYTZlOTAzNWE0MDkyYWE1ZWM5MTI1OGE1N2Y3YjdlZWE0NjdhMTZmMzg1ZTNiOTU3OWYwMjZkMTEiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IiwKICAgICAgICAibmFtZSI6ICJldmFscy9ldmFscy5qc29uIgogICAgICB9LAogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICI2MmRjMDUxZDQ4ZWIwOWM0ZmM4MDY1MTA2NWJhMTBlZWYwMDVmNjY0OGIxZjQxNGY0NGYwZDk0MWQwZmMxYzcxIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIsCiAgICAgICAgIm5hbWUiOiAiZml4dHVyZXMvZ2VuZXJhdGVfZml4dHVyZXMucHkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogIjc3ODU1NWJjMjM4NzI2OGNkNDVlNjZiMWJmNDA3NzBiYjRhYmM0MDQ1YWMxNDQyZmNhNGRiMDY0NjQzN2IzMzciLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IiwKICAgICAgICAibmFtZSI6ICJzY3JpcHRzL3ByZWZsaWdodF9zZXJpZXMucHkiCiAgICAgIH0sCiAgICAgIHsKICAgICAgICAiZGlnZXN0IjogImZiYzlmNzUyMzlkNTkwYzVhYzRjYjg5NWUyYjAxODJjNDk0ZmVkMTI4YWI0MDY0ODNkZjA5M2JmM2VlODFlMDQiLAogICAgICAgICJhbGdvcml0aG0iOiAic2hhMjU2IiwKICAgICAgICAibmFtZSI6ICJza2lsbC1jYXJkLm1kIgogICAgICB9LAogICAgICB7CiAgICAgICAgImRpZ2VzdCI6ICJjODM0NmY0MWE4YWM5ZWQ4YzlkMjQ1OTEzMjYxN2QxN2ZmYjAxZTk5MGZjMzVjNjhiMGY4NmZlYjcyNjgwMGZhIiwKICAgICAgICAiYWxnb3JpdGhtIjogInNoYTI1NiIsCiAgICAgICAgIm5hbWUiOiAic2tpbGxfbWFuaWZlc3QueWFtbCIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiODYyNWZiOWIxYTg2NDU3M2Q2Yjg0OGYyMmViYjRmYjM5M2JhMTdhOTFlMWI2MmFlYTI0ODE1ZDk1OTRiZmJiYiIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiLAogICAgICAgICJuYW1lIjogInRlc3RzL3Rlc3RfcHJlZmxpZ2h0X3Nlcmllcy5weSIKICAgICAgfSwKICAgICAgewogICAgICAgICJkaWdlc3QiOiAiNzU5MjRmMjM1OTlkZTUwY2I2ZWIzNWM1Y2NjM2E1MjIxNGZjYjYxYTZkZjBkMWZlZGI3MmJhMWY4MmY2NWVmMyIsCiAgICAgICAgImFsZ29yaXRobSI6ICJzaGEyNTYiLAogICAgICAgICJuYW1lIjogInZhbGlkYXRvcnMvb3V0cHV0X3NjaGVtYS5qc29uIgogICAgICB9CiAgICBdLAogICAgInNlcmlhbGl6YXRpb24iOiB7CiAgICAgICJhbGxvd19zeW1saW5rcyI6IGZhbHNlLAogICAgICAiaGFzaF90eXBlIjogInNoYTI1NiIsCiAgICAgICJpZ25vcmVfcGF0aHMiOiBbCiAgICAgICAgIi5naXRodWIiLAogICAgICAgICIuZ2l0IiwKICAgICAgICAiLmdpdGlnbm9yZSIsCiAgICAgICAgIi5naXRhdHRyaWJ1dGVzIgogICAgICBdLAogICAgICAibWV0aG9kIjogImZpbGVzIgogICAgfQogIH0KfQ==","payloadType":"application/vnd.in-toto+json","signatures":[{"sig":"MGQCMFKGoMRAFEZh6l21IorUbJ71Oc3wkrqoHpN4YNd0PztkvXwMnn4FPd36lWtKA2OZNgIwRhNrXKtHqQu2000movAnA2L9wU3rKZzFBsBaUlRiAzrLsw87uqyPSpefiaTHw6/M","keyid":""}]}}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