ECG Viewer — Интерактивный просмотрщик электрокардиограмм
Назначение проекта
ECG Viewer — это веб-приложение для визуализации и анализа электрокардиограмм (ЭКГ) в реальном времени. Проект предназначен для медицинских специалистов, студентов-медиков и разработчиков, работающих с биомедицинскими сигналами. Основная цель — предоставить удобный инструмент для загрузки, отображения и интерпретации кардиографических данных без необходимости установки специализированного ПО.
Основные функции
- Загрузка данных ЭКГ — поддержка форматов CSV, JSON и прямого ввода данных через текстовое поле.
- Многоканальное отображение — одновременный просмотр до 12 стандартных отведений (I, II, III, aVR, aVL, aVF, V1-V6).
- Масштабирование и навигация — возможность увеличения/уменьшения масштаба, прокрутки по временной шкале и выделения конкретных участков сигнала.
- Измерение параметров — автоматический расчёт частоты сердечных сокращений (ЧСС), интервалов PR, QT, QRS и амплитуд зубцов.
- Экспорт результатов — сохранение визуализации в форматах PNG, SVG и PDF для отчётов или презентаций.
- Анализ аритмий — базовая детекция фибрилляции предсердий, желудочковой экстрасистолии и блокад.
Технологии
Приложение построено на современном стеке веб-технологий:
- Frontend: React.js с TypeScript для построения интерфейса, Chart.js и D3.js для рендеринга графиков.
- Обработка сигналов: WebAssembly (WASM) модуль на C++ для высокопроизводительной фильтрации и анализа.
- Серверная часть: Node.js с Express для обработки загрузок и генерации отчётов.
- Хранение данных: IndexedDB для локального кэширования и MongoDB для облачных сессий.
- Деплой: Docker-контейнеризация, развёртывание на VPS с Nginx в качестве reverse proxy.
Особенности интерфейса
- Минималистичный дизайн — тёмная тема с акцентными цветами (синий, зелёный) для снижения нагрузки на зрение при длительной работе.
- Адаптивная сетка — автоматическое перестроение отведений при изменении размера окна (от 1 до 12 колонок).
- Интерактивные подсказки — при наведении на зубец P, Q, R, S, T отображаются его амплитуда и длительность.
- Горячие клавиши — поддержка клавиатурных сокращений для быстрого переключения между режимами (просмотр, измерение, экспорт).
- Drag-and-drop — возможность перетаскивания файлов ЭКГ прямо на область графика для мгновенной загрузки.
- Встроенный плеер — анимация прохождения сигнала по временной шкале с регулируемой скоростью (0.5x, 1x, 2x).
Проект ECG Viewer демонстрирует эффективное сочетание производительности (WASM) и удобства использования (React), делая сложный медицинский анализ доступным через браузер. Решение особенно ценно для телемедицины и образовательных целей, где требуется быстрая визуализация без установки тяжеловесных десктопных приложений.