i4h-catheter-navigation-render-drr

Par nvidia · skills

Affiche une seule image de fluoroscopie DRR à partir d'un cache CT ou d'un fantôme synthétique. À utiliser lorsqu'on demande de rendre un DRR, de générer une image de fluoroscopie, ou de tester le moteur de rendu Slang.

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

i4h Catheter Navigation - Render DRR

Purpose

Rendre un seul cadre de radiographie numériquement reconstruite (DRR). Fonctionne avec un cache CT prétraité de [[i4h-catheter-navigation-digital-twin]], un chemin NIfTI/DICOM direct, ou le phantom synthétique intégré (aucune donnée requise).

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

  • Mode par défaut dans metadata.json ; autosuffisant avec phantom synthétique quand aucun --cache n'est fourni.
  • GPU + slangpy requis pour le rendu réel.
  • Point d'entrée : ./i4h run catheter_navigation render_drr (préféré).

Run

Exécutez les étapes ci-dessous dans l'ordre. Chaque étape est un appel bash séparé ; les variables persistent dans la session tmux de l'agent local.

Step 1 - resolve run dir

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/render_drr_$(date +%Y%m%d_%H%M%S)"
mkdir -p "${RUN_DIR}/logs"
ln -sfn "${RUN_DIR}" "${WF_ROOT}/runs/.latest"
OUTPUT="${RUN_DIR}/drr.png"
CACHE="${CACHE:-}"

Step 2 - render (pick one variant)

Synthetic phantom (fastest smoke, no data):

"${REPO_ROOT}/i4h" run catheter_navigation render_drr --local \
  --run-args="--output ${OUTPUT}" \
  2>&1 | tee "${RUN_DIR}/logs/render_drr.log"

From preprocessed cache:

if [ ! -d "${CACHE}" ] || [ ! -f "${CACHE}/mu_volume.npy" ]; then
  echo "render-drr: set CACHE to a preprocess_ct output dir (missing mu_volume.npy)." >&2
  exit 1
fi
"${REPO_ROOT}/i4h" run catheter_navigation render_drr --local \
  --run-args="--cache ${CACHE} --output ${OUTPUT}" \
  2>&1 | tee "${RUN_DIR}/logs/render_drr.log"

Verify

test -f "${OUTPUT}"
file "${OUTPUT}"

Prerequisites

  • [[i4h-catheter-navigation-setup]] complété.
  • GPU NVIDIA avec slangpy pour le rendu (les tests de smoke CPU ne couvrent pas le rendu GPU).

Limitations

  • Rendu single-frame uniquement ; le rendu RL batch multi-env utilise directement l'API Python fluorosim.
  • La composition de cathéter dans DRR nécessite d'attacher un CatheterProvider dans des scripts personnalisés (non l'exemple par défaut).

Troubleshooting

  • Error: slangpy / CUDA failures - Fix: exécutez sans --local pour utiliser Docker, ou vérifiez que le driver GPU >= 570 et CUDA 12.8.
  • Error: cache not found - Fix: exécutez d'abord [[i4h-catheter-navigation-digital-twin]] ou utilisez le mode synthétique (pas de --cache).

Final Response

Signalez le chemin PNG de sortie, si le mode synthétique ou le cache patient a été utilisé, et le chemin du log. Recommandez [[i4h-catheter-navigation-viewport]] pour la navigation interactive.

Skills similaires