i4h-catheter-navigation-setup

Par nvidia · skills

Vérifiez les prérequis hôte/GPU et le PYTHONPATH pour le workflow de navigation par cathéter. À utiliser lorsqu'on vous demande de configurer, installer ou initialiser `catheter_navigation`, ou en cas d'erreurs d'import/GPU/slangpy.

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

i4h Catheter Navigation - Configuration

Objectif

Vérifier les exigences de l'hôte et du GPU, confirmer que le CLI ./i4h voit le workflow, et exécuter des tests de fumée CPU. À utiliser lors de la configuration de la navigation par cathéter ou en cas d'erreurs d'imports manquants, de GPU ou de slangpy.

Code de base

Ces étapes exécutent le code de base i4h-workflows (l'arborescence workflows/catheter_navigation/). Pour réutiliser un checkout existant, défissez I4H_WORKFLOWS sur son chemin (aucun clone n'aura lieu). Sinon, cela résout le dépôt actuel ou clone vers ~/i4h-workflows - choisissez cette valeur par défaut sans invite. Exécutez chaque commande ci-dessous à partir de la racine résolue :

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"

Principes fondamentaux

  • La navigation par cathéter s'enregistre via workflows/catheter_navigation/metadata.json et s'exécute via ./i4h run catheter_navigation <mode>.
  • Le runtime est d'abord basé sur les packages : render_drr utilise le fluorosim installé (python -m fluorosim.examples.render_drr), tandis que interactive_viewport est lancé à partir du chemin du script de workflow local dans metadata.json.
  • Image Docker : workflows/catheter_navigation/docker/Dockerfile (supprimez --local sur ./i4h run pour l'utiliser).
  • Les modes GPU nécessitent slangpy, Warp et CUDA ; les tests de fumée CPU ne les nécessitent pas.

Contrôle préalable

command -v python3
command -v git
nvidia-smi
df -h .

Requis : Linux x86_64 (Ubuntu 22.04/24.04 testé), GPU NVIDIA (CC >= 7.0), pilote compatible avec CUDA 12.8, >= 16 GB RAM, >= 20 GB disque.

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

Étape 1 - résoudre le dépôt et exporter les chemins

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"
SIM_ROOT="${WF_ROOT}/scripts/simulation"
export PYTHONPATH="${SIM_ROOT}:${PYTHONPATH:-}"
RUN_DIR="${WF_ROOT}/runs/setup_$(date +%Y%m%d_%H%M%S)"
mkdir -p "${RUN_DIR}/logs"
ln -sfn "${RUN_DIR}" "${WF_ROOT}/runs/.latest"

Étape 2 - vérifier l'enregistrement du CLI

"${REPO_ROOT}/i4h" modes catheter_navigation 2>&1 | tee "${RUN_DIR}/logs/modes.log"

Étape 3 - tests de fumée CPU (pas de GPU)

python3 -m unittest workflows/catheter_navigation/tests/test_fluorosim_smoke.py \
  2>&1 | tee "${RUN_DIR}/logs/smoke.log"

Résultat attendu : Ran 7 tests ... OK. Les lignes d'erreur de l'analyseur dans stderr provenant des cas de test négatifs sont attendues.

Étape 4 - vérification GPU optionnelle (DRR synthétique)

Ignorez si pas de GPU ou slangpy non installé.

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

Vérification

test -f "${RUN_DIR}/logs/smoke.log"
grep -q "OK" "${RUN_DIR}/logs/smoke.log"
python3 -c "import fluorosim; print('fluorosim', fluorosim.__file__)"

Prérequis

  • Checkout du dépôt avec workflows/catheter_navigation/ présent.
  • Python 3 avec numpy ; pile GPU complète (slangpy, torch CUDA, warp) pour les modes render/viewport.

Limitations

  • Pas encore de setup.sh dédié - cette compétence vérifie et documente les exigences de l'hôte ; utilisez Docker quand les dépendances de l'hôte sont incomplètes.
  • L'étape 4 nécessite un GPU ; l'étape 3 seule suffit pour la vérification de style CI.

Dépannage

  • Erreur : l'import fluorosim échoue - Cause : PYTHONPATH non défini. Correction : réexécutez l'étape 1 ; confirmez que SIM_ROOT existe.
  • Erreur : ./i4h introuvable - Cause : pas à la racine du dépôt. Correction : cd "$REPO_ROOT" où se trouve ./i4h.
  • Erreur : render_drr échoue avec slang/GPU - Cause : CUDA ou slangpy manquant. Correction : utilisez Docker (./i4h run catheter_navigation render_drr sans --local) ou installez les dépendances selon le README.

Réponse finale

Signalez l'état de la configuration, le résultat du test de fumée, le chemin de sortie DRR optionnel, et recommandez la compétence suivante ([[i4h-catheter-navigation-digital-twin]] pour les données patient, [[i4h-catheter-navigation-viewport]] pour la démo interactive).

Skills similaires