Реализация AI-анализа ЭКГ с носимого устройства в мобильном приложении

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Реализация AI-анализа ЭКГ с носимого устройства в мобильном приложении
Сложный
от 2 недель до 3 месяцев
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    495

Реализация AI-анализа ЭКГ с носимого устройства в мобильном приложении

ЭКГ с Apple Watch Series 4+ или AliveCor KardiaMobile — это одноканальная запись, 30 секунд, 512 Hz. Достаточно для детекции фибрилляции предсердий и других ритмических нарушений. Задача разработчика — принять этот сигнал, правильно его обработать и применить модель, не допустив ни ложноотрицательных результатов, ни регуляторных нарушений.

Получение ЭКГ данных

Apple Watch + HealthKit

Apple Watch Series 4+ пишет ЭКГ через HKElectrocardiogram. Доступ через HealthKit:

import HealthKit

func fetchLatestECG() async throws -> (HKElectrocardiogram, [Double]) {
    let ecgType = HKObjectType.electrocardiogramType()
    let query = HKSampleQuery(
        sampleType: ecgType,
        predicate: nil,
        limit: 1,
        sortDescriptors: [NSSortDescriptor(key: HKSampleSortIdentifierStartDate, ascending: false)]
    ) { _, samples, error in
        // handle
    }

    // Для получения voltage данных — отдельный подзапрос
    let voltageQuery = HKElectrocardiogramQuery(ecg) { _, result in
        switch result {
        case .measurement(let measurement):
            if let voltage = measurement.quantity(for: .appleWatchSimilarToLeadI) {
                let microvolts = voltage.doubleValue(for: .volt()) * 1_000_000
                voltageData.append(microvolts)
            }
        case .done: break
        case .error(let error): print(error)
        }
    }
    healthStore.execute(voltageQuery)
}

Apple возвращает сырой сигнал в вольтах, выбранный Lead I (запястье). Частота дискретизации — 512 Hz, длина — около 15360 семплов на 30 секунд.

Сторонние устройства: BLE + Protocoll

AliveCor KardiaMobile, Withings Move ECG и аналоги передают ЭКГ через BLE с проприетарными протоколами. Большинство предоставляют SDK: KardiaMobile SDK для iOS/Android, Withings SDK. Без SDK — анализ BLE-пакетов через CBCentralManager и реверс-инжиниринг протокола (долго и ненадёжно).

Предобработка сигнала: без этого модель не работает

Сырой ЭКГ-сигнал содержит шумы: baseline wander (дрейф изолинии от дыхания), мышечные артефакты, электрические помехи 50/60 Hz. Перед подачей в модель — фильтрация обязательна.

Bandpass фильтр 0.5–40 Hz убирает baseline wander и высокочастотный шум:

from scipy.signal import butter, filtfilt

def bandpass_filter(signal, fs=512, lowcut=0.5, highcut=40):
    nyq = fs / 2
    low = lowcut / nyq
    high = highcut / nyq
    b, a = butter(4, [low, high], btype='band')
    return filtfilt(b, a, signal)

R-peak детекция (алгоритм Pan-Tompkins) нужна для расчёта RR-интервалов — основного признака для детекции аритмий. Библиотека neurokit2 реализует Pan-Tompkins, BioSPPy. На мобиле фильтр реализуем нативно: в Swift через Accelerate framework (vDSP), в Kotlin — через KotlinDL или портируем scipy-код через TFLite custom ops.

Модели для детекции аритмий

CNN для классификации ритма

Стандартный подход — 1D CNN на окне сигнала 2.5–10 секунд. Входной тензор: [batch, time_steps, 1]. Архитектура: несколько Conv1D → MaxPool → Dense → Softmax.

Публичные датасеты для обучения: PhysioNet MIT-BIH Arrhythmia Database (48 двухканальных записей), PTB-XL (21 799 клинических ЭКГ с 71 диагнозом). MIT-BIH доступен через wfdb библиотеку.

После обучения конвертируем в CoreML:

import coremltools as ct

spec = ct.convert(
    torch_model,
    inputs=[ct.TensorType(shape=(1, 2560, 1), dtype=np.float32)],
    compute_precision=ct.precision.FLOAT16,
    compute_units=ct.ComputeUnit.CPU_AND_NE
)
spec.save("ECGClassifier.mlpackage")

FLOAT16 квантизация уменьшает размер модели вдвое без значимой потери точности для ЭКГ-классификации. Neural Engine (NE) ускоряет инференс на устройствах с A12+.

Ограничения on-device анализа

Одноканальная ЭКГ с запястья — не клиническая 12-канальная ЭКГ. Чувствительность алгоритмов Apple по данным их исследований: ФП — 99.3%, но это специфический ритм. Другие нарушения (блокады, WPW) требуют 12-канальной записи.

Регуляторные требования — самое важное

Если приложение заявляет о диагностике заболеваний — это медицинское изделие (СЕ Class IIa в ЕС, FDA 510(k)/De Novo в США). Разработка займёт в разы больше из-за требований к клиническим испытаниям, design control, software validation.

Если приложение позиционируется как information only («показывает паттерны ритма, не является диагностическим инструментом») — регуляторная нагрузка ниже. Все дисклеймеры должны быть на экранах с результатами анализа, не только в ToS.

Apple сам это делает: каждый результат ЭКГ в Apple Health сопровождается явным «consult your doctor».

Процесс работы

Согласование регуляторной стратегии до начала разработки. Интеграция с HealthKit или сторонним SDK. Реализация сигнальной обработки (фильтры, R-peak детекция). Разработка и валидация ML-модели на открытых датасетах. Конвертация в CoreML/TFLite. UI: визуализация ЭКГ-сигнала, результат анализа, обязательные дисклеймеры.

Ориентиры по срокам

Базовый ФП-детектор с CoreML и HealthKit интеграцией — 3–5 недель. Расширенная система с несколькими типами аритмий, валидацией на клинических данных — от 2 до 3 месяцев. Полный медицинский прибор с регуляторной документацией — отдельный многомесячный проект.