Доклад-презентация проекта · Хакатон Astana AI Week 2026 · Трек «Здравоохранение»
HepaIQ — исследовательский прототип, а не сертифицированное медицинское изделие. Оценка риска не является диагнозом и не заменяет очный осмотр врача, эластографию (FibroScan) или биопсию печени. Модель обучена на открытом датасете ILPD (индийская популяция) и требует локальной клинической валидации перед применением. Все вычисления выполняются в браузере; персональные данные пациентов не собираются, не передаются и не сохраняются.
- Аннотация
- Проблема
- Кому это нужно
- Решение: что такое HepaIQ
- Сценарий использования
- Архитектура
- Как работает ИИ
- Клинические шкалы фиброза
- Объяснимость и поддержка решений
- Метрики модели
- Приватность и безопасность
- Технологический стек
- Соответствие задаче трека
- Ограничения и честная оценка
- Дорожная карта
- Запуск и проверка проекта
- Структура проекта
- Данные и лицензии
- Лицензия
HepaIQ — это рабочее место врача первичного звена (ПМСП), которое за секунды превращает стандартную биохимическую панель в объяснимую оценку риска патологии печени и готовое PDF-заключение.
Ключевое отличие от типичных калькуляторов: под капотом не набор правил if/else, а настоящая модель машинного обучения, которая обучается прямо в браузере на реальном датасете ILPD. При этом весь продукт — это один HTML-файл без бэкенда, который открывается на любом компьютере в поликлинике и не отправляет данные пациента в сеть.
Одним предложением: ИИ-триаж патологий печени и ХВГ + валидированные шкалы фиброза + объяснимость + заключение — в одном файле, без сервера, с приватностью по дизайну.
Патологии печени и хронические вирусные гепатиты B и C (ХВГ) часто выявляются поздно — уже на стадии фиброза, цирроза или осложнений, когда лечение дороже, а прогноз хуже.
Почему так происходит:
| Барьер | Следствие |
|---|---|
| 🧩 Данные лабораторий фрагментированы | Нет цельной картины риска пациента |
| 🩺 Врачи ПМСП перегружены | Нет времени вручную считать шкалы и приоритизировать |
| 🚦 Нет инструмента триажа группы риска | Пациенты с реальным риском теряют время в очереди |
| 🏥 Гепатоцентры получают непрофильные случаи | Ресурс специалистов расходуется неэффективно |
Задача сформулирована в рамках медицинского трека Astana AI Week 2026 (Министерство здравоохранения РК): «ИИ и цифровой мониторинг для раннего выявления патологий печени и ХВГ».
- Врач ПМСП / терапевт — быстрый триаж: кого направить на дообследование первым.
- Гепатолог — предварительная стратификация входящего потока.
- Организатор здравоохранения — раннее выявление снижает инвалидизацию, смертность и нагрузку на стационар.
- Пациент — своевременное выявление = более простое и дешёвое лечение.
HepaIQ объединяет четыре инструмента в одном экране:
┌─────────────────────────────────────────────────────────────┐
│ 1. ML-ОЦЕНКА 2. ШКАЛЫ ФИБРОЗА 3. ОБЪЯСНИМОСТЬ │
│ вероятность FIB-4 · APRI · NFS вклад каждого │
│ патологии печени с «серой зоной» показателя │
│ (модель на ILPD) │
│ │
│ 4. ПОДДЕРЖКА РЕШЕНИЙ → маршрутизация + red-flags → PDF │
└─────────────────────────────────────────────────────────────┘
Возможности:
| Функция | Описание | |
|---|---|---|
| 🧠 | Реальная ML, не rule-based | Логистическая регрессия обучается в браузере на 583 записях ILPD (TensorFlow.js); резервный обучатель на чистом JS гарантирует работу на любом железе |
| 📊 | Три клинические шкалы | FIB-4, APRI, NFS — по опубликованным формулам, с порогами и разметкой «серой зоны» |
| 🔍 | Объяснимый ИИ | Диверджентные бары показывают, какие анализы повышают/понижают риск — прозрачность вместо «чёрного ящика» |
| 🚦 | Клиническая маршрутизация | Срочная / промежуточная / плановая тактика + автоматические настораживающие признаки |
| 📄 | PDF-заключение | Готовый документ с кириллицей для карты пациента + печать и копирование |
| 🔒 | Приватность по дизайну | 100% на клиенте, без бэкенда, без сохранения ПДн |
| 🌐 | Единицы РК | Переключение билирубина мг/дл ⇄ мкмоль/л, референсные интервалы, подсветка вне-нормы |
| ⚡ | Ноль установки | Один index.html — открывается в любом браузере |
Форма стартует пустой; для мгновенной демонстрации есть три готовых клинических примера в один клик.
Шаг 1. Врач вводит печёночную панель (или загружает пример: «Вирусный гепатит» / «НАЖБП» / «Норма»).
Шаг 2. Система мгновенно, без перезагрузки, показывает:
- вердикт с цветовой индикацией риска и конкретной рекомендацией;
- гейдж вероятности патологии печени от ML-модели;
- FIB-4 / APRI / NFS с интерпретацией зон;
- вклад показателей в оценку;
- настораживающие признаки (если есть).
Шаг 3. Врач нажимает «Скачать PDF-заключение» — документ готов к вклейке в карту.
| Пример | Что показывает |
|---|---|
| 🔴 Вирусный гепатит | Высокий риск, FIB-4 в красной зоне, red-flags по HBsAg/тромбоцитам, срочная маршрутизация |
| 🟠 НАЖБП | Промежуточный риск, «серая зона» шкал, рекомендация дообследования |
| 🟢 Норма | Низкий риск, плановое наблюдение |
Продукт полностью клиентский: нет сервера, базы данных и сетевых запросов с данными пациента.
┌──────────────────────────── БРАУЗЕР ВРАЧА ────────────────────────────┐
│ │
│ Ввод (печёночная панель) │
│ │ │
│ ▼ │
│ Стандартизация признаков (z-score по статистике ILPD) │
│ │ │
│ ┌─────┴───────────────┬───────────────────────┐ │
│ ▼ ▼ ▼ │
│ Логистическая FIB-4 · APRI · NFS Правила поддержки │
│ регрессия (клинические формулы) решений │
│ (обучение in-browser) (маршрутизация, │
│ │ │ red-flags) │
│ ▼ ▼ │ │
│ P(патология) + интерпретация зон │ │
│ вклад признаков │ │
│ └─────────────┬───────────────────────────────┘ │
│ ▼ │
│ Заключение → PDF (jsPDF + шрифт DejaVu, кириллица) │
│ │
│ Загрузка библиотек: CDN (TensorFlow.js, jsPDF, Tailwind, Lucide) │
│ Данные пациента наружу НЕ уходят. │
└────────────────────────────────────────────────────────────────────────┘
Indian Liver Patient Dataset (ILPD) — UCI ML Repository, лицензия CC BY 4.0.
- 583 записи — 416 пациентов с патологией печени, 167 без.
- 10 признаков: возраст, пол, билирубин общий и прямой, щелочная фосфатаза, АЛТ, АСТ, общий белок, альбумин, альбумин-глобулиновый коэффициент.
- Встроен прямо в страницу (≈22 КБ); пропуски A/G-коэффициента импутируются средним значением.
Модель обучается при загрузке страницы, каскадом с гарантией результата:
- Приоритет —
TensorFlow.js(задействует GPU там, где он есть), с ограничением по времени; - Надёжный резерв — та же логистическая регрессия, обученная полнобатчевым градиентным спуском на чистом JavaScript (≈50 мс, детерминированно, работает на любом железе);
- Крайний случай — предобученные веса.
Во всех трёх ветках это настоящая статистическая модель, обученная на данных ILPD, а не эвристика. Каскад нужен только для того, чтобы приложение никогда не «зависло» и не осталось без модели даже на слабом оборудовании поликлиники.
Признаки пациента стандартизируются (z-score по статистике ILPD), затем модель вычисляет вероятность патологии и вклад каждого признака в итоговую оценку (для объяснимости). Веса модели клинически осмысленны: АЛТ, АСТ и билирубин повышают риск, альбумин — понижает.
Помимо ML-оценки, HepaIQ считает три валидированные неинвазивные шкалы по опубликованным формулам:
| Шкала | Формула | Порог «высокого» | Что оценивает |
|---|---|---|---|
| FIB-4 | (Возраст × АСТ) / (Тромбоциты × √АЛТ) |
> 2.67 | продвинутый фиброз F3–F4 |
| APRI | (АСТ / ВГН_АСТ × 100) / Тромбоциты |
> 1.5 | значимый фиброз / цирроз |
| NFS | линейная комбинация возраста, ИМТ, диабета, АСТ/АЛТ, тромбоцитов, альбумина | > 0.676 | фиброз F3–F4 при НАЖБП |
Каждая шкала размечается на три зоны: низкий риск / серая зона / высокий риск. «Серая зона» — важный клинический сигнал: пациенту показано дообследование (эластография), а не поспешный вывод.
Для каждой оценки показываются диверджентные бары: какие показатели тянут риск вверх (красный) и вниз (зелёный), с процентным вкладом. Это делает решение прозрачным для врача — можно проверить, на чём именно основана оценка.
Система автоматически выделяет клинически значимые паттерны, например:
- АСТ/АЛТ ≥ 2 — паттерн алкогольного/цирротического поражения;
- тромбоцитопения — возможна портальная гипертензия;
- гипоальбуминемия — снижение синтетической функции печени;
- прямая гипербилирубинемия — холестатический/паренхиматозный компонент;
- HBsAg (+) / anti-HCV (+) — показана ПЦР (HBV-DNA / HCV-RNA).
На основе ML-оценки, шкал и факторов риска формируется тактика:
| Уровень | Рекомендация |
|---|---|
| 🔴 Высокий | Срочная маршрутизация в гепатоцентр, эластография в течение 2 недель, диспансерный учёт |
| 🟠 Промежуточный / серая зона | Дообследование: эластография, повтор биохимии через 3 мес, ПЦР |
| 🟢 Низкий | Плановое наблюдение ПМСП, коррекция факторов риска, скрининг через 12 мес |
Метрики считаются вживую на отложенной тестовой выборке (20%) и доступны в модальном окне «ML-модель»:
| Метрика | Значение* |
|---|---|
| AUROC | ≈ 0.75 |
| Чувствительность | ≈ 0.94 |
| Специфичность | ≈ 0.25 |
| Точность | ≈ 0.73 |
* ILPD — несбалансированный и объективно «трудный» датасет; цифры честные и согласуются с научной литературой. Высокая чувствительность выбрана осознанно: для скрининга цена пропуска патологии выше цены ложноположительного результата, который отсеется на дообследовании.
- 100% на клиенте. Нет сервера и базы данных — обрабатывать нечего и негде утекать.
- Данные пациента не покидают браузер. После загрузки страницы расчёты идут офлайн.
- ПДн не сохраняются — ни в localStorage, ни куда-либо ещё.
- Единственные сетевые запросы — загрузка библиотек с CDN при старте (без данных пациента).
| Слой | Технология |
|---|---|
| Интерфейс | HTML + Tailwind CSS + Lucide Icons |
| ML | TensorFlow.js + резервный обучатель на чистом JS |
| jsPDF + шрифт DejaVu Sans (кириллица), фолбэк на печать | |
| Данные | ILPD (UCI, CC BY 4.0), встроены в страницу |
| Бэкенд | отсутствует — всё на клиенте |
Принципы: минимум зависимостей, ноль установки, приватность по умолчанию.
Задача трека — комплексное решение для раннего выявления и мониторинга патологий печени и ХВГ. Отражаем честно, что реализовано в прототипе, а что — в дорожной карте:
| Требование трека | Статус | Реализация |
|---|---|---|
| Раннее выявление патологий печени и ХВГ | ✅ Реализовано | ML-оценка + шкалы фиброза + red-flags |
| ИИ-триаж | ✅ Реализовано | Стратификация риска по вводимым анализам |
| Поддержка принятия врачебных решений | ✅ Реализовано | Маршрутизация, объяснимость, заключение |
| Сквозной цифровой мониторинг группы риска | 🔜 Дорожная карта | Регистр пациентов + динамика показателей |
| Телемедицина «Врач–Врач» | 🔜 Дорожная карта | Маршрут ПМСП → гепатоцентр |
| Предиктивные данные для планирования | 🔜 Дорожная карта | Агрегированная аналитика |
Мы намеренно не преувеличиваем возможности прототипа:
- Популяция. ILPD собран в Индии; пороги (в т.ч. билирубин в мг/дл) валидированы преимущественно на гепатите C. Для РК нужна локальная калибровка на анонимизированных данных.
- Не диагноз. Инструмент — поддержка решений, а не замена биопсии/эластографии.
- Специфичность. Осознанно ниже чувствительности — часть ложноположительных отсеется на дообследовании (приемлемо для скрининга).
- Прототип. Не сертифицированное медицинское изделие.
- Экспорт модели в ONNX + инференс через
onnxruntime-web - Калибровка порогов и дообучение на анонимизированных данных РК
- Интеграция с ЕИСЗ / FHIR (автоподстановка анализов из КМИС)
- Цифровой регистр группы риска + мониторинг динамики
- Модуль приглашения на скрининг (SMS / мобильное приложение)
- Телеконсультация «Врач–Врач» с гепатоцентром
- Казахская локализация интерфейса
Проект — это один самодостаточный index.html. Ни сборки, ни установки зависимостей, ни бэкенда не требуется.
- Любой современный браузер (Chrome, Edge, Firefox, Safari).
- Интернет при первой загрузке — для получения библиотек с CDN (TensorFlow.js, jsPDF, Tailwind, Lucide). После загрузки все расчёты идут офлайн.
- (Необязательно) Python 3 — для запуска локального сервера (рекомендуемый способ).
Способ А — двойной клик (самый быстрый).
Скачайте проект (Code → Download ZIP), распакуйте и откройте index.html двойным кликом в браузере.
Способ Б — локальный сервер (рекомендуется). Так корректнее грузятся шрифты и библиотеки CDN. В папке проекта выполните:
python -m http.server 5177
# откройте в браузере: http://localhost:5177Альтернатива без Python:
npx serve(Node.js) или расширение Live Server в VS Code.
Пройдите по пунктам — каждый занимает несколько секунд:
| # | Действие | Ожидаемый результат |
|---|---|---|
| 1 | Открыть страницу | Через 1–2 сек в шапке справа загорается зелёный индикатор Модель ILPD · AUC 0.7x — модель обучилась в браузере |
| 2 | Посмотреть на форму | Поля пустые, кнопки-примеры внизу подсвечены и пульсируют, справа — приглашение «Введите данные пациента» |
| 3 | Нажать «Вирусный гепатит» | Форма заполняется; справа появляются: вердикт «Высокий риск», гейдж вероятности, FIB-4/APRI/NFS, вклад показателей, red-flags |
| 4 | Нажать «Норма» | Риск становится «низкий», рекомендация — плановое наблюдение (проверка, что модель реагирует на данные) |
| 5 | Кликнуть индикатор модели в шапке | Открывается окно с метриками (AUROC, чувствительность, специфичность) и весами признаков |
| 6 | Переключить единицы билирубина (мг/дл ⇄) |
Значения пересчитываются в мкмоль/л, итоговая оценка не меняется (проверка корректности конвертации) |
| 7 | Нажать «Скачать PDF-заключение» | Скачивается PDF-файл HepaIQ_*.pdf с корректной кириллицей |
| 8 | Нажать «Печать» / «Копировать» | Открывается диалог печати / текст заключения копируется в буфер |
| 9 | Открыть DevTools → Console | Нет ошибок (допустимо только предупреждение Tailwind CDN — оно безвредно) |
| 10 | DevTools → Network | Запросы идут только к CDN при старте; данные пациента наружу не отправляются |
Чтобы убедиться, что это настоящая модель на ILPD, а не заглушка, откройте консоль браузера (F12) и выполните:
MODEL.engine // как обучена модель (TensorFlow.js / чистый JS)
MODEL.metrics // живые метрики на тестовой выборке (auc, sens, spec, acc)
MODEL.w // веса 10 признаков ILPD
ILPD.length // 583 — размер встроенного датасета
predict() // текущая оценка: вероятность + вклад признаков| Симптом | Причина и решение |
|---|---|
| Индикатор модели долго «жёлтый» | Медленный CDN/железо — сработает резервный обучатель на чистом JS (≈50 мс), дождитесь зелёного статуса |
| PDF с «квадратами» вместо кириллицы | Не загрузился шрифт (нет интернета) — воспользуйтесь кнопкой «Печать» → «Сохранить как PDF» |
| Пустой экран | Откройте через локальный сервер (способ Б), а не по file:// — часть браузеров ограничивает CDN на file:// |
.
├── index.html # всё приложение (UI + ML + PDF + встроенный датасет ILPD)
├── docs/
│ └── banner.svg # баннер репозитория
├── README.md # этот документ
└── LICENSE # MIT + уведомления по данным и мед. применению
- Код — лицензия MIT (см.
LICENSE). - ILPD — UCI ML Repository, CC BY 4.0. Источник: Ramana, B.V. & Venkateswarlu, N.B. — ILPD (Indian Liver Patient Dataset), UCI Machine Learning Repository. https://archive.ics.uci.edu/dataset/225/ilpd+indian+liver+patient+dataset
- Реальные ПДн не используются — только синтетические примеры и открытый датасет.
MIT © 2026 HepaIQ Team. Датасет ILPD — CC BY 4.0, UCI ML Repository.
Создано на Astana AI Week 2026 · Alem.ai, Астана · Не является медицинским изделием.