שילוב ניתוח א.ק.ג. מבוסס בינה מלאכותית ממכשירים לבישים באפליקציה הניידת שלך
אנו מסייעים בשילוב ניתוח בינה מלאכותית של א.ק.ג. חד-ערוצי ממכשירים לבישים—Apple Watch Series 4+ או AliveCor KardiaMobile—ישירות לתוך האפליקציה הניידת שלך. ההקלטה נמשכת 30 שניות בקצב דגימה של 512 הרץ, מה שמספיק לזיהוי פרפור פרוזדורים והפרעות קצב אחרות. המשימה שלך: ללכוד את האות, לעבד אותו כראוי, ולהפעיל את המודל ללא תוצאות שליליות שגויות או מלכודות רגולטוריות. המהנדסים שלנו מוסמכים בתקנים רפואיים ויש להם ניסיון של 5+ שנים בפרויקטים של בריאות ניידת. כל החלטה משפיעה על דיוק האבחון ובטיחות המשתמש. אנו מבטיחים עמידה בדרישות FDA ו-CE.
פיתוח אפליקציית ניתוח א.ק.ג. רפואית כרוך באתגרים טכניים: אותות רועשים ממכשירים על הגוף, כוח מחשוב מוגבל של הטלפון, דרישות דיוק מחמירות, ומגבלות חיי סוללה. ללא עיבוד נכון, אפילו מודל הלמידה העמוקה הטוב ביותר יפיק תוצאות חיוביות שגויות בכל מדידה שלישית. צברנו ניסיון בשילוב עם HealthKit ומכשירי BLE כדי להימנע מהמלכודות הללו.
כיצד להשיג נתוני א.ק.ג. ממכשירים לבישים?
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 מחזירה אות גולמי בוולטים (ערוץ I), קצב דגימה 512 הרץ, כ-15360 דגימות על פני 30 שניות. הקוד למעלה מדגים אחזור נתוני מתח גולמיים. חשוב: טיפול בשגיאות ולוודא שהמשתמש העניק הרשאת קריאת א.ק.ג.
מכשירי BLE של צד שלישי + SDK
AliveCor KardiaMobile, Withings Move ECG, ומכשירים דומים משדרים א.ק.ג. דרך BLE. רובם מספקים SDK: KardiaMobile SDK, Withings SDK. ללא SDK, הנדסה לאחור של הפרוטוקול היא ארוכה ולא אמינה. יישמנו למעלה מ-15 אינטגרציות עם HealthKit ומכשירי BLE, תוך הבטחת פעולה יציבה. בעבודה עם AliveCor KardiaMobile, בעיה נפוצה היא סנכרון BLE—פיתחנו פרוטוקול חיבור מחדש עם backoff אקספוננציאלי.
מדוע עיבוד מקדים של האות חשוב?
אותות א.ק.ג. גולמיים מכילים רעש: סחיפת קו בסיס, חפצי שריר, הפרעות 50/60 הרץ. ללא סינון, המודל יפיק תוצאות חיוביות שגויות.
| סוג רעש | מקור | הסרה |
|---|---|---|
| סחיפת קו בסיס | נשימה, תנועה | High-pass 0.5 הרץ |
| חפצי שריר | התכווצויות שרירים | Low-pass 40 הרץ |
| הפרעות חשמליות | רשת חשמל 50/60 הרץ | מסנן Notch |
מסנן מעבר פס 0.5–40 הרץ מסיר רעש עיקרי:
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 (אלגוריתם Pan-Tompkins) נדרש לחישוב מרווחי RR—המאפיין העיקרי להפרעות קצב. בנייד, ניתן ליישם את המסנן באופן מקורי: ב-Swift דרך מסגרת Accelerate, ב-Kotlin דרך KotlinDL או גרסת פורט של קוד SciPy. מעבר לסינון, יש להסיר חפצי תנועה—אנו משתמשים במעריך סחיפה אדפטיבי המבוסס על מסנן חציוני עם חלון של 200 אלפיות השנייה.
אילו מודלים יעילים לזיהוי הפרעות קצב?
CNN לסיווג קצב
הגישה הסטנדרטית היא CNN חד-ממדי על חלונות אות של 2.5–10 שניות. טנסור קלט: 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) } . ארכיטקטורה: Conv1D → MaxPool → Dense → Softmax. מערכי נתונים ציבוריים: PhysioNet MIT-BIH Arrhythmia Database (48 הקלטות דו-ערוציות), PTB-XL (21,799 א.ק.ג. קליניים).
לאחר האימון, המרה ל-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 מקטינה את גודל המודל בחצי ללא אובדן דיוק משמעותי. CoreML על Apple Silicon מעבד א.ק.ג. פי 3 מהר יותר מ-TFLite על Android עם ML Kit. לאימות מודל בפלטפורמות ניידות, אנו משתמשים במערכי נתונים ציבוריים ובהקלטות בדיקה משלנו. הערכת איכות כוללת מדדי רגישות וסגוליות ברמת 95% לפרפור פרוזדורים.
מגבלות של ניתוח במכשיר
א.ק.ג. חד-ערוצי מפרק כף היד אינו 12-ערוצי קליני. האלגוריתמים של Apple מדווחים על רגישות AFib של 99.3%, אך הפרעות אחרות דורשות אבחון מלא. לכן, חשוב למצב את האפליקציה ככלי סקר, לא כתחליף לאבחון רופא.
אילו דרישות רגולטוריות יש לקחת בחשבון?
אם האפליקציה טוענת ליכולת אבחון, היא מכשיר רפואי (CE Class IIa, FDA 510(k)/De Novo). הפיתוח דורש ניסויים קליניים ובקרת עיצוב. אם ממוקמת כאינפורמטיבית, הנטל הרגולטורי נמוך יותר, אך כתבי ויתור הם חובה. Apple עצמה מראה שכל תוצאת א.ק.ג. מלווה באזהרה. אנו מסייעים באיסוף התיעוד הדרוש ל-CE או FDA כחלק מביקורת מקדימה.
תהליך העבודה שלנו
| שלב | משך | תוצר |
|---|---|---|
| אנליטיקה ואסטרטגיה רגולטורית | 1–2 שבועות | מסמך דרישות |
| אינטגרציית HealthKit/SDK | 1–2 שבועות | איסוף נתונים פעיל |
| עיבוד אות | 1–2 שבועות | אות מסונן, שיאי R |
| מודל ML | 2–4 שבועות | מודל מאומן ומומר |
| ממשק משתמש וויזואליזציה | 1–2 שבועות | מסך תוצאות |
| בדיקות והשקה | 1–2 שבועות | App Store/Google Play |
מה כלול
- אינטגרציה ותיעוד רגולטורי
- אפליקציית הדגמה עם מנתח
- הכשרת מודל לצוות שלך
- תמיכה לאחר השקה (3 חודשים)
הערכות לוחות זמנים והשקעה
גלאי AFib בסיסי עם CoreML ו-HealthKit—3–5 שבועות (השקעה נדונה בנפרד). מערכת מורחבת התומכת במספר הפרעות קצב—2–3 חודשים (ההשקעה תלויה במורכבות). מכשיר רפואי מלא הוא פרויקט נפרד. ניתוח במכשיר יכול לחסוך עד 40% בהשוואה לעיבוד ענן.
צור קשר כדי להעריך את הפרויקט שלך—נציע ארכיטקטורה ולוחות זמנים אופטימליים. הזמינו פיתוח מפתח של ניתוח א.ק.ג. מבוסס בינה מלאכותית עם אחריות איכות ועמידה בתקנים. קבלו ייעוץ לשילוב מודל בינה מלאכותית באפליקציה שלך.







