Реалізація 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 + протокол

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

Попередня обробка сигналу: без цього модель не працює

Сирий ЭКГ-сигнал містить шуми: 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) прискорює inference на пристроях з A12+.

Обмеження on-device аналізу

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

Регуляторні вимоги—найголовніше

Якщо додаток заявляє про діагностику захворювань—це медичне виробництво (CE Class IIa в ЕС, FDA 510(k)/De Novo у США). Розробка займе набагато більше часу через вимоги до клінічних випробувань, design control, software validation.

Якщо додаток позиціонується як інформаційний ("показує паттерни ритму, не є діагностичним інструментом")—регуляторна нагрузка менша. Усі дисклеймери мають бути на екранах з результатами, не тільки у ToS.

Apple сама це робить: кожен результат ЭКГ в Apple Health супроводжується явним "consult your doctor".

Процес розробки

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

Орієнтири за часом

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