mcpField
D
dicom-series-to-volume

dicom-series-to-volume

github.com/promptingcompanyデータ・データベース039 回インストール17 週間前に更新
リポジトリ

dicom-series-to-volume について

単一の CT DICOM シリーズを HU スケールの NIfTI ボリュームと JSON サマリーに変換するスクリプト型スキルです。スライス順序やアフィン情報を必要とするデータ処理向けで、臨床用途ではありません。

主な機能

  1. 01単一 CT シリーズを NIfTI に変換
  2. 02画像位置に基づくスライス順序の整理
  3. 03Rescale Slope と Intercept の適用
  4. 04方向と間隔からアフィンを算出
  5. 05ボリューム情報を JSON に記録

活用シーン

  1. 01後続処理向けの単一シリーズ CT ボリューム作成
  2. 02出力形状、間隔、方向コードの確認
  3. 03アフィンと HU 範囲の変換情報の記録

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/promptingcompany/nv-skills --skill dicom-series-to-volume

インストール後、Claude Code で/dicom-series-to-volumeを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

BENCHMARK.md
skill_manifest.yaml
skill-card.md
skill.oms.sig
evals/
evals.json
fixtures/
generate_fixtures.py
scripts/
series_to_volume.py
validators/
output_schema.json

詳細

dicom_series_to_volume

目的

  • 1 つの CT DICOM シリーズフォルダーを、アフィン情報の根拠を含む HU NIfTI ボリュームに変換するために使用します。マルチフレーム DICOM や臨床用途には使用しないでください。
  • ラッパーはドキュメントの記載どおりに使用してください。上流のエントリーポイントを手書きの実装に置き換えないでください。
  • マニフェスト I/O:入力は 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.pyskill_manifest.yaml で宣言された主要なエントリーポイントです。PATH_TO_DICOM_DIR [--output OUT.nii.gz]

前提条件

  • 実行時の要件:runtime.side_effects.pip_packages に記載された Python パッケージ。
  • 以下のセクションで別途指定されていない限り、リポジトリのルートからコマンドを実行してください。

制限事項

  • 単一シリーズのみ対応します。複数シリーズの入力は事前チェックで拒否されます。
  • マルチフレーム DICOM(ファイルごとの NumberOfFrames > 1)には対応していません。
  • 圧縮転送構文(JPEG / JPEG2000 / RLE)には対応していません。
  • ボクセルの再配向は行いません。アフィンは DICOM ヘッダーから導出され、NIfTI/RAS 座標で表現されます。このボリュームをセグメンテーションモデルに渡す前に、下流のゲート(例:expected_axcodes)で向きを検証することを想定しています。
  • 臨床導入、自律診断、規制当局への申請、本番推論には使用しないでください(その用途には、dcm2niix など、適切に検証されたコンバーターを使用してください)。

トラブルシューティング

エラー原因修正方法
依存関係の欠落またはインポートエラーskill_manifest.yaml から実行時パッケージが乖離しています。マニフェストに記載されたパッケージをインストールするか、ドキュメントに記載されたセットアップコマンドを使用してください。
出力が空、またはスキーマが無効入力パスの誤り、未対応のモダリティ、または上流でのエラーです。既知のフィクスチャを使って再実行し、ラッパーの JSON と stderr を確認してください。
検証ゲートの失敗出力が宣言されたエンジニアリング上の不変条件に違反しています。失敗したエビデンスパックを保持し、ゲートのメッセージを参考に入力またはラッパーコードを修正してください。

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 structure sets、自動再配向、臨床用途には対応していません。

コメント