i4h-catheter-navigation-e2e

作者: nvidia

導管導航的端到端冒煙測試,涵蓋設定、數位孿生、DRR 和單元測試。當被要求執行完整的導管工作流程冒煙測試或示範…時使用。

npx skills add https://github.com/nvidia/skills --skill i4h-catheter-navigation-e2e

i4h Catheter Navigation - End-to-End Smoke

Purpose

Run a v0.7 smoke pipeline: verify setup, build a digital twin from a TotalSegmentator subject, render a DRR from cache, and run CPU unittests. Skips the interactive viewport (requires display).

Base Code

ROOT="${I4H_WORKFLOWS:-$(git rev-parse --show-toplevel 2>/dev/null)}"
if [ ! -d "$ROOT/workflows/catheter_navigation" ]; then
  ROOT="${I4H_WORKFLOWS:-$HOME/i4h-workflows}"
  [ -d "$ROOT/workflows/catheter_navigation" ] || git clone https://github.com/isaac-for-healthcare/i4h-workflows "$ROOT"
fi
export I4H_WORKFLOWS="$ROOT"; cd "$ROOT"

Basics

Stages map to individual skills; this skill chains them with shared RUN_DIR and CACHE.

StageSkill
setup + CPU smoke[[i4h-catheter-navigation-setup]]
digital twin[[i4h-catheter-navigation-digital-twin]]
GPU DRR[[i4h-catheter-navigation-render-drr]]
unittest[[i4h-catheter-navigation-smoke]]

Run

Run the steps below in order. Each step is a separate bash call; variables persist in the local agent's tmux session.

Step 1 - initialize run

REPO_ROOT="${I4H_WORKFLOWS:-$(git rev-parse --show-toplevel 2>/dev/null)}"; [ -d "$REPO_ROOT/workflows/catheter_navigation" ] || REPO_ROOT="$HOME/i4h-workflows"
WF_ROOT="${REPO_ROOT}/workflows/catheter_navigation"
RUN_DIR="${WF_ROOT}/runs/e2e_$(date +%Y%m%d_%H%M%S)"
mkdir -p "${RUN_DIR}/logs"
ln -sfn "${RUN_DIR}" "${WF_ROOT}/runs/.latest"
CACHE="${CACHE:-/tmp/ct_cache}"
SUBJ="${SUBJ:-}"
export I4H_WORKFLOWS="$REPO_ROOT"

Step 2 - setup verify

Follow [[i4h-catheter-navigation-setup]] Steps 1-3; tee to ${RUN_DIR}/logs/setup.log.

Step 3 - digital twin (requires SUBJ)

Set SUBJ to an extracted TotalSegmentator subject, then follow [[i4h-catheter-navigation-digital-twin]] Steps 3-4.

If SUBJ is unset, skip to Step 4 with synthetic DRR only and note partial e2e in the summary.

Step 4 - render DRR

If Step 3 succeeded, set CACHE and follow [[i4h-catheter-navigation-render-drr]] cache variant. Otherwise run synthetic render to ${RUN_DIR}/drr_synthetic.png.

Step 5 - smoke tests

Follow [[i4h-catheter-navigation-smoke]]; log to ${RUN_DIR}/logs/smoke.log.

Step 6 - summary

cat > "${RUN_DIR}/logs/SUMMARY.txt" <<EOF
Catheter navigation e2e smoke
RUN_DIR=${RUN_DIR}
CACHE=${CACHE}
SUBJ=${SUBJ:-<skipped>}
Artifacts:
  $(ls -1 "${RUN_DIR}" 2>/dev/null || true)
EOF
cat "${RUN_DIR}/logs/SUMMARY.txt"

Flags (informal)

  • Skip digital twin when SUBJ unset -> synthetic DRR only.
  • Add viewport manually via [[i4h-catheter-navigation-viewport]] when a display is available.

Outputs

  • RUN_DIR/logs/ - per-stage logs and SUMMARY.txt
  • RUN_DIR/drr.png or drr_synthetic.png - rendered frame
  • CACHE/ - digital twin artifacts when Step 3 ran

Prerequisites

  • [[i4h-catheter-navigation-setup]] host requirements.
  • SUBJ for full e2e (otherwise partial smoke).
  • GPU for Step 4 cache render.

Limitations

  • Does not launch the interactive viewport (display required).
  • Does not cover RL/IL training loops.

Troubleshooting

  • Partial run when no CT data - expected; document which stages ran.
  • GPU render failure - fall back to synthetic DRR and report GPU setup gap.

Final Response

Print RUN_DIR, stages completed/skipped, DRR output path, smoke-test status, and recommend [[i4h-catheter-navigation-viewport]] for interactive demo.

來自 nvidia 的更多技能