ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
學習如何使用超音波穿刺動靜脈瘺,無需設備:即時影像、縱向與橫向操作、杜普勒與評估。免費且在瀏覽器中。
AI 翻譯
Aprende a puncionar la fístula arteriovenosa con ecografía, sin equipo: imagen en tiempo real, abordaje longitudinal y transversal, Doppler y evaluación. Gratis y en el navegador.
教育TypeScript · HTMLGitHub @Guithar上線中營運者未確認
試用過了嗎? 點一下就好,不需要登入。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Simulador de punción ecoguiada de la fístula arteriovenosa (FAV) para hemodiálisis, en el navegador · Ultrasound-guided AV fistula cannulation simulator
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Fistulab · Simulador de punción ecoguiada de la FAV Fistulab es un simulador de ecografía que funciona en el navegador, pensado para aprender la punción ecoguiada del acceso vascular para hemodiálisis: fístulas arteriovenosas (FAV) nativas y protésicas. Es un primer contacto gratuito, previo a los simuladores físicos comerciales. Sirve para practicar:檢視完整 README ↗
Fistulab es un simulador de ecografía que funciona en el navegador, pensado para aprender la punción ecoguiada del acceso vascular para hemodiálisis: fístulas arteriovenosas (FAV) nativas y protésicas. Es un primer contacto gratuito, previo a los simuladores físicos comerciales. Sirve para practicar:
Úsalo en https://fistulab.com. No necesita instalación ni registro.
⚠️ Herramienta educativa. No sirve para diagnosticar ni para decidir tratamientos, y no sustituye la formación práctica supervisada. Los fundamentos y las referencias están en
docs/FUNDAMENTOS.md; la técnica sigue, entre otras fuentes, Punción ecoguiada del acceso vascular para hemodiálisis (Moyano Franco, Salgueira Lazo, Roca-Tey; Nefrología al día) y la guía GEMAV 2017. La propuesta de itinerario formativo y la rúbrica de evaluación están endocs/GUIA_DOCENTE.md.
La imagen no es una textura pregrabada. Se calcula en cada fotograma a partir del modelo anatómico, con un método de convolución basado en la física (tipo Bamber–Dickinson / Gao, COLE), en ocho pasos:
| Caso | Dificultad |
|---|---|
| Brazo sin FAV: anatomía normal y mapeo prequirúrgico | Básico |
| FAV radiocefálica madura: caso de referencia | Básico |
| FAV humerocefálica profunda en paciente obeso | Intermedio |
| FAV tortuosa | Intermedio |
| Estenosis yuxtaanastomótica (aliasing, VPS > 400 cm/s) | Intermedio |
| Aneurisma con trombo mural y flujo en remolino | Avanzado |
| FAV inmadura con vena accesoria competidora | Intermedio |
| Venas colaterales y desdoblamiento | Intermedio |
| FAV humerobasílica transpuesta (arteria humeral y nervio mediano cercanos) | Avanzado |
| Prótesis de PTFE en asa (doble pared, 45°, sin compresor) | Intermedio |
| Hematoma tras punción fallida | Avanzado |
| Paciente diabético con arterias calcificadas (sombras) | Intermedio |
Todos los casos se pueden usar con el brazo izquierdo o el derecho.
Ocho lecciones guiadas con comprobación automática de cada paso:
Con el botón Enfoque o la tecla O, el monitor pasa a ocupar casi toda la zona central y el brazo 3D queda en una ventana flotante (en la sala, al revés: la sala en grande y el monitor flotante). En un portátil de 1366 × 768 la imagen crece de 9,8 a unos 17 px/mm.
En el móvil, la tableta en vertical y las ventanas pequeñas se abre una interfaz táctil con el mismo simulador:
Necesita un navegador reciente con WebGL2 (Chrome, Edge, Firefox o Safari) y, a ser posible, una tarjeta gráfica dedicada. Si va lento, baja la calidad en la barra superior (en el móvil, en «Más»).
Empieza en modo básico, con los controles de la punción. El botón Más controles, a la derecha de la consola, muestra el Doppler, el PW y los ajustes finos de imagen.
Para usarlo basta con abrir https://fistulab.com; la versión en inglés está en https://fistulab.com/en/ (botón EN de la barra superior; en el móvil, en «Más»). Para trabajar con el código:
npm install
npm run dev # servidor de desarrollo en http://localhost:5173
npm run build # sitio estático en dist/ (p. ej. GitHub Pages)
npm run build:single # un único HTML autocontenido en dist-single/ (abre sin servidor)
npm run typecheck
npm test # pruebas unitarias (hemodinámica, modelo, aguja, métricas)
node tests/e2e-puncion.mjs http://localhost:5173/ # punción completa con clics y teclado en Chromium (requiere Playwright)
El flujo de trabajo .github/workflows/deploy.yml publica el sitio en GitHub Pages, con el dominio propio fistulab.com, en cada push a main. Antes de publicar, pasa las pruebas y compila. También se puede lanzar a mano desde la pestaña Actions.
Configuración necesaria una sola vez:
Settings → Pages → Build and deployment → Source: GitHub Actions. No uses «Deploy from a branch». Ese modo publica los archivos fuente sin compilar y la página se queda en la pantalla de carga.
Settings → General → Default branch: main.
DNS del dominio (en el registrador, DonDominio): quitar los registros de aparcamiento y añadir
| Tipo | Nombre | Valor |
|---|---|---|
| A | @ | 185.199.108.153, 185.199.109.153, 185.199.110.153, 185.199.111.153 (cuatro registros) |
| AAAA | @ | 2606:50c0:8000::153, 2606:50c0:8001::153, 2606:50c0:8002::153, 2606:50c0:8003::153 (cuatro registros) |
| CNAME | www | guithar.github.io |
Sin registros comodín (*.fistulab.com): GitHub los desaconseja y llevarían cualquier subdominio a otro sitio.
Correo. Las direcciones @fistulab.com van con Banahosting. Sus registros se añaden en esta misma zona de DonDominio, con los valores que da cPanel en Entregabilidad del correo:
mail;default._domainkey);_dmarc).No cambies los servidores de nombres a los de Banahosting: la web dejaría de apuntar a GitHub Pages.
Settings → Pages → Custom domain: fistulab.com. Cuando GitHub compruebe el DNS y emita el certificado, marca Enforce HTTPS. www.fistulab.com y la dirección antigua (guithar.github.io/fistulab) redirigen solas a https://fistulab.com.
Recomendado: verifica el dominio en la configuración de tu cuenta de GitHub (Settings → Pages → Add a domain, con un registro TXT). Así nadie más puede usarlo en GitHub Pages.
Con Actions como origen no hace falta archivo CNAME: el dominio se guarda en la configuración del repositorio.
Si un despliegue falla con «Branch "main" is not allowed to deploy to github-pages», añade main en Settings → Environments → github-pages → Deployment branches and tags.
Buscadores. Cada idioma es una página propia con su título, descripción, imagen para redes (og.jpg, og-en.jpg), datos estructurados (schema.org) y enlaces hreflang a la otra versión. Las guías (guias/ y en/guides/) son páginas de lectura sin JavaScript sobre punción, ecografía y complicaciones de la FAV, escritas a partir de las búsquedas reales (autocompletado de Google y Bing) y enlazadas a los casos del simulador; para añadir una, copia src/guides/TEMPLATE.html y apúntala en src/guides/pages.ts. De esa lista salen las entradas de la compilación y el sitemap.xml, que se genera al compilar (public/robots.txt lo anuncia), y tests/unit/guides.test.ts comprueba idioma, canónica, hreflang y enlaces de cada página. Tras el primer despliegue conviene dar de alta https://fistulab.com en Google Search Console y en Bing Webmaster Tools (verificación por registro TXT en DonDominio) y enviar el sitemap. Después de cada publicación, el flujo avisa a Bing (y a los demás buscadores de IndexNow) de que las páginas del sitemap han cambiado; la clave es pública y está en public/<clave>.txt, y la misma clave va en INDEXNOW_KEY dentro de deploy.yml (una prueba comprueba que coinciden).
Parámetros de URL útiles:
| Parámetro | Valores |
|---|---|
?caso= | rc_madura, bc_obeso, rc_estenosis… |
?modo= | explore, cannulate, room, learn |
?calidad= | alta, media, baja |
?camara= | vista inicial de la cámara |
?max= | 3d, us, anat (panel maximizado) |
?movil= | 1 fuerza la interfaz táctil, 0 la de escritorio |
?vista= | enfoque o cuadricula en todos los modos (p. ej. para proyectar en clase) |
?leccion= | abre una lección guiada: orientacion, knobologia, arteria-vena, madurez, eje-largo, eje-corto, artefactos, doppler-fav |
| Acción | Teclado / ratón |
|---|---|
| Deslizar la sonda | W S (a lo largo del brazo), A D (alrededor); o arrastrar la sonda en 3D |
| Rotar / inclinar / balancear | Q E / R F / T G |
| Presión | Z X |
| Vista transversal / longitudinal del vaso | 1 / 2 |
| Colocar, avanzar y confirmar la aguja | N (pasa al modo Punción), ↑ ↓ (o rueda sobre la imagen), Intro |
| Ángulo / rumbo de la aguja | RePág AvPág / ← → |
| Profundidad / ganancia | + − / [ ] |
| Color / PW / modo B / congelar | C / P / B / Espacio |
| Lavar la aguja con suero | J |
| Medir / etiquetas / invertir I-D / compresor | M / L / I / K |
| Vistas de cámara / modo enfoque / ayuda | V / O / H |
src/
anatomy/ forma del brazo (SDF elíptica), estructuras tubulares, hemodinámica, tejidos, casos
sim/ motor ecográfico en GPU (shaders por pases), Doppler pulsado y audio
scene/ escena 3D: piel (surface nets), anatomía, sonda, aguja, sala, cámaras
interaction/ pose de la sonda (maniobras PART) y física de la aguja
training/ métricas, ergonomía y lecciones
ui/ monitor, consola, paneles e informe; mobile.ts: interfaz táctil;
focus.ts y floating.ts: modo enfoque y ventana flotante
app/App.ts orquestación y bucle principal
pwa.ts aplicación instalable (public/: manifiesto, iconos y service worker)
i18n.ts idioma de la página (español o inglés)
Idiomas. index.html (español, /) y en/index.html (inglés, /en/) cargan el mismo código; el idioma sale de <html lang>. Los textos de la interfaz se escriben en los dos idiomas con tr('español', 'English') (src/i18n.ts), y los dos HTML tienen la misma estructura: un cambio en uno va también en el otro (tests/unit/i18n.test.ts lo comprueba). La documentación en inglés está en docs/en/ y README.en.md.
La misma descripción anatómica alimenta:
Por eso la pantalla y la «realidad» coinciden siempre.
Sin cookies, sin analítica y sin publicidad. Todo se calcula en el navegador y no se envía nada a ningún servidor; las fuentes tipográficas se sirven desde el propio sitio. El historial de punciones y las preferencias se guardan solo en el navegador de cada persona (localStorage). GitHub Pages, el alojamiento, puede registrar la dirección IP de las visitas por seguridad.
Fistulab es gratuito y lo seguirá siendo. Si te resulta útil para formar a tu unidad, puedes apoyarlo con un café en Ko-fi: ayuda a mantenerlo y a añadir casos, lecciones e idiomas.
MIT. Se agradecen contribuciones clínicas y técnicas: casos nuevos, validación de valores y traducciones. Escribe en Issues o a [email protected].