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.jsonet s'exécute via./i4h run catheter_navigation <mode>. - Le runtime est d'abord basé sur les packages :
render_drrutilise lefluorosiminstallé (python -m fluorosim.examples.render_drr), tandis queinteractive_viewportest lancé à partir du chemin du script de workflow local dansmetadata.json. - Image Docker :
workflows/catheter_navigation/docker/Dockerfile(supprimez--localsur./i4h runpour 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.shdé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 queSIM_ROOTexiste. - Erreur :
./i4hintrouvable - 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_drrsans--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).