ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
초음파로 동정맥루를 실시간 영상·종축·횡축·도플러로 배우고 무료로 브라우저에서 사용
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를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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].