Портативный скрининг / триаж сколиоза у школьников без рентгена — на любом телефоне или ноутбуке, полностью в браузере.
Живое демо: https://medhubhaq-production.up.railway.app
Сколиоз у детей часто выявляют поздно, когда искривления уже большие и труднее поддаются лечению. Массовый школьный скрининг — стандартная стратегия ранней диагностики, но чтобы делать его хорошо, нужны специалисты и оборудование, которых нет в большинстве школ. Есть пробел: не хватает доступного, безопасного, нерадиографического инструмента первой линии, который помогает неспециалисту решить, кого направить к врачу.
- Асимметрия осанки по фото. BlazePose (33 точки тела) вместе с геометрическими признаками — наклон плеч, таза и шеи, фронтальный баланс — дают зону риска Низкий / Средний / Высокий, с оверлеем поверх изображения, показывающим почему (те самые линии наклона, которые он измерил). Работает с живой камеры или загруженного фото и умеет переключаться между фронтальной и тыловой камерой.
- Режим ATR. Превращает телефон в сколиометр через
DeviceOrientation, измеряя ротацию туловища во время теста Адамса с наклоном вперёд. Пороги направления следуют общепринятым клиническим рекомендациям (SRS): < 5° низкий, 5–7° пограничный, > 7° направить. - Три языка — казахский, английский, русский. Всё работает полностью в браузере, на устройстве — ничего не отправляется на сервер.
- Это триаж, а не диагноз.
- Он не может измерить угол Кобба — для этого нужен рентген.
- У него нет валидированной точности в реальном мире; зона риска — это прозрачный индекс асимметрии, а не клинически доказанная модель.
- Каждое решение принимает медсестра или ортопед. Инструмент лишь помогает отметить, на кого стоит посмотреть; он никогда сам не уведомляет семью.
- Веб-приложение: React + Vite + TensorFlow.js (BlazePose, среда выполнения MediaPipe), полностью на стороне клиента.
- Офлайн-исследование: Python-конвейер (MediaPipe + scikit-learn), использованный для разработки и проверки ядра геометрических признаков; код признаков в браузере повторяет его.
- Развёртывание: Docker + Caddy (статическая раздача) на Railway.
cd web
npm install
npm run devОткройте выведенный http://localhost:5173. Камере нужен защищённый контекст, который обеспечивает localhost.
Тесты (запускать в web/):
npm testИсследовательский прототип для хакатона — не медицинское изделие и не для клинического использования.