dicom-series-to-volume について
単一の CT DICOM シリーズディレクトリを、HU 値を持つ NIfTI ボリュームに変換し、アフィン情報と JSON 概要を出力するスキルです。エンジニアリング検証や後続処理向けで、臨床デプロイには適しません。
主な機能
- 01画像位置に基づくスライス並べ替え
- 02RescaleSlope と RescaleIntercept の適用
- 03DICOM タグからのアフィン構築
- 04.nii.gz ボリュームと JSON 概要の出力
- 05対応する品質検証ツール
活用シーン
- 01単一シリーズ CT の NIfTI 変換
- 02ボリューム形状・間隔・軸コードの確認
- 03後続セグメンテーション前の方向チェック
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ nvidia/ skills --skill dicom-series-to-volumeインストール後、Claude Code で/dicom-series-to-volumeを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
BENCHMARK.mdskill_manifest.yamlskill-card.mdskill.oms.sigevals/evals.jsonfixtures/generate_fixtures.pyscripts/series_to_volume.pytests/test_orientation_regression.pyvalidators/output_schema.json詳細
dicom_series_to_volume
目的
- CT DICOM シリーズフォルダーを、アフィン情報の証拠を含む HU NIfTI ボリュームに変換するために使用します。マルチフレーム DICOM や臨床用途には対応していません。
- ラッパーはドキュメントのとおりに使用してください。上流のエントリーポイントを手書きの実装に置き換えないでください。
- マニフェストの入出力:入力は
dicom_dir、出力はnifti_volumeとresult_jsonです。
手順
- 引数、副作用、検証ゲートを変更する前に、
skill_manifest.yamlを確認してください。 - ドキュメントに記載された以下のコマンドで
scripts/series_to_volume.pyを実行し、出力先は呼び出し側が指定する実行ディレクトリ配下にしてください。 - ホストエージェントが
run_scriptを公開している場合は、run_script("scripts/series_to_volume.py", args=[...])を使用してください。それ以外の場合は、以下に示す Bash/Python コマンドを実行してください。 - 実行結果を証拠として扱う前に、出力された JSON と、対になる
dicom_volume_quality_v1検証ツールを確認してください。
利用可能なスクリプト
| スクリプト | 目的 | 引数 |
|---|---|---|
scripts/series_to_volume.py | skill_manifest.yaml で宣言されている主要なエントリーポイントです。 | PATH_TO_DICOM_DIR [--output OUT.nii.gz] |
前提条件
- 実行時の要件:
runtime.side_effects.pip_packagesに記載された Python パッケージ。 - 再配向時に極端な斜交軸のラベルを一貫して維持するには、NiBabel 5.4 以降が必要です。
- 以下の既存セクションに別途記載がない限り、リポジトリのルートからコマンドを実行してください。
制限事項
- 単一シリーズのみ対応しています。複数シリーズの入力は事前チェックで拒否されます。
- マルチフレーム DICOM(ファイルごとの NumberOfFrames > 1)には対応していません。
- 圧縮転送構文(JPEG / JPEG2000 / RLE)には対応していません。
- ボクセルの再配向は行いません。アフィン変換は DICOM ヘッダーから導出し、NIfTI/RAS 座標で表現されます。このボリュームをセグメンテーションモデルに渡す前に、後段のゲート(例:expected_axcodes)で向きを検証することが想定されています。
- 臨床導入、自律診断、規制当局への申請、本番推論には使用しないでください(その場合は dcm2niix などの検証済みコンバーターを使用してください)。
トラブルシューティング
| エラー | 原因 | 対処方法 |
|---|---|---|
| 依存関係がない、またはインポートエラー | skill_manifest.yaml に対する実行時パッケージの不整合です。 | マニフェストに宣言されたパッケージをインストールするか、ドキュメントに記載されたセットアップコマンドを使用してください。 |
| 出力が空、またはスキーマが無効 | 入力パスの誤り、未対応のモダリティ、または上流での失敗です。 | 既知のフィクスチャを使って再実行し、ラッパーの JSON と標準エラー出力を確認してください。 |
| 検証ゲートの失敗 | 出力が宣言されたエンジニアリング上の不変条件に違反しています。 | 失敗したエビデンスパックを保持し、ゲートのメッセージを参考に入力またはラッパーコードを修正してください。 |
1 つの DICOM シリーズを読み込み、ImagePositionPatient に基づいてスライスを並べ替え、
RescaleSlope と RescaleIntercept を適用し、方向タグと
間隔タグからアフィン変換を構築して、.nii.gz と JSON サマリーを書き出します。
python scripts/series_to_volume.py PATH_TO_DICOM_DIR --output PATH_TO_OUT.nii.gz
対になる検証ツールを使用した信頼できる実行方法:
python -m eval_engine.run_trusted skills/dicom-series-to-volume \
--fixture PATH_TO_DICOM_DIR \
--out runs/dicom_series_to_volume_trusted
主な出力フィールド:n_slices、series_instance_uid、output.path、
output.shape、output.spacing、output.axcodes、output.affine、
hu_range、runtime.conversion_seconds。
適用範囲の制限:単一シリーズの CT のみ対応しています。マルチフレーム DICOM、圧縮転送構文の処理、RT 構造セット、自動再配向、臨床用途には対応していません。
コメント
Markdown 対応