| Literature DB >> 31979184 |
Minggang Shao1,2, Zhuhuang Zhou1, Guangyu Bin1, Yanping Bai1, Shuicai Wu1.
Abstract
In this paper we proposed a wearable electrocardiogram (ECG) telemonitoring system for atrial fibrillation (AF) detection based on a smartphone and cloud computing. A wearable ECG patch was designed to collect ECG signals and send the signals to an Android smartphone via Bluetooth. An Android APP was developed to display the ECG waveforms in real time and transmit every 30 s ECG data to a remote cloud server. A machine learning (CatBoost)-based ECG classification method was proposed to detect AF in the cloud server. In case of detected AF, the cloud server pushed the ECG data and classification results to the web browser of a doctor. Finally, the Android APP displayed the doctor's diagnosis for the ECG signals. Experimental results showed the proposed CatBoost classifier trained with 17 selected features achieved an overall F1 score of 0.92 on the test set (n = 7,270). The proposed wearable ECG monitoring system may potentially be useful for long-term ECG telemonitoring for AF detection.Entities:
Keywords: Android smartphone; atrial fibrillation detection; cloud computing; electrocardiogram (ECG) monitoring; wearable ECG patch
Year: 2020 PMID: 31979184 PMCID: PMC7038204 DOI: 10.3390/s20030606
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.576
Figure 1Illustration of the wearable ECG telemonitoring system.
Figure 2Flow chart of the proposed ECG monitoring System.
Figure 3Block diagram of the hardware of the ECG patch.
Figure 4(a) The hardware circuit board with lithium-ion battery. (b) Front view of the ECG patch device with disposable ECG electrodes. (c) The three electrodes of the patch and four charge contacts of the patch and the charging base. (RLD = right leg drive). (d) The ECG patch was charging on the charging base.
Descriptions of the software modules of the APP.
| Module | Description |
|---|---|
| User module | Register user information to the cloud and log in the APP with registered mobile number and password |
| BLE module | Connect the ECG patch via BLE and receive ECG data continuously |
| Display and storage module | Display ECG waveforms and store the raw ECG data to the internal storage in real time |
| Historical data module | Display historical ECG waveforms and the related doctor’s diagnosis |
| Cloud module | Transmit 30 s ECG data to the cloud and receive the doctor’s diagnosis |
Figure 5The main user interface of the Android APP.
Figure 6Flow chart of the ECG classification method proposed in this work.
Description of the key features.
| Group/Feature | Description | |
|---|---|---|
| AF features | ||
| AFEvidence [ | AFEvidence feature was calculated based on the two-dimensional histogram built on the Lorenz distribution of dRR intervals from the whole ECG recording. | |
| Shannon entropy [ | Shannon entropy feature was computed on the histogram of the dRR intervals. | |
| Kolmogorov–Smirnov test [ | Kolmogorov–Smirnov test feature was obtained by evaluating the difference between the distribution of the ECG recording and the reference distribution for AF. | |
| Morphology features | Ten kinds of Morphology features were extracted by using two open source libraries, the ECGPUWAVE [ | |
| RR interval features | ||
| Median RR interval | Median RR interval feature was the median value of all RR intervals extracted from the entire ECG recording. | |
| Index of arrhythmia [ | Index of arrhythmia feature was the number of abnormal beats in an ECG recording. The abnormal beats were determined by four knowledge-based conditions. These conditions were judged according to three continuous RR intervals and their mean value. | |
| Features for Noisy class | ||
| Similarity index of QRS | Similarity index of QRS was the mean value of correlation coefficients calculated between every two QRS waveforms from the whole ECG recording. | |
| Signal quality index | Signal quality index represented the ratio of high signal quality beats in an ECG record. A high signal quality beat was decided by evaluating the amplitudes of the isoelectric level. | |
| Q-R smoothness index(QRsi) | QRsi feature represented the smoothness of the segment from the average beat. The segment was the increased QRS amplitude lasting from QRS onset to R-peak. QRsi value was defined as the peak numbers computed on the difference values of samples. | |
Parameters for training the CatBoost model.
| Parameter | Value |
|---|---|
| learning_rate | 0.1 |
| Iterations | 276 |
| early_stopping_rounds | 20 |
| depth | 8 |
| l2_leaf_reg | 3 |
| bagging_temperature | 0.7 |
| random_strength | 0.2 |
| leaf_estimation_method | “Newton” |
| random_seed | (Random integer) |
| loss_function | MultiClass |
| eval_metric | Matthews correlation coefficient (MCC) [ |
Annotations for the two ECG databases.
| Database | Training Set | Test Set | Annotation | Total | |||
|---|---|---|---|---|---|---|---|
| Normal | AF | Other | Noisy | ||||
| AFDB-2017 | 6822 | 1706 | 5076 | 758 | 2415 | 279 | 8528 |
| MITBIH-AFDB | 22,252 | 5564 | 16,554 | 11,066 | 196 | 0 | 27,816 |
| Total |
|
| 21,630 | 11,824 | 2611 | 279 |
|
Descriptions of the web APIs.
| Used by | URL of Web API 1 | Description |
|---|---|---|
| Android APP | /user/register | Receive user information including mobile number and password, and store them in a database. |
| /user/login | Receive mobile number and password from Android APP, determine the correctness and return the authentication result. | |
| /user/ecgsegment | Receive 30 s ECG data, analyze it using the ECG classification algorithm, save the data and the analysis results in a database, and send a notification to the web application. | |
| /user/ecgdiagnosis | Provide the ECG diagnosis requested by the Android APP. | |
| Web application of ECG diagnosis | /doc/login | Receive the doctor’s username and password from the web browser, and determine the validity. |
| /doc/userinfo | Transmit the requested user’s personal information to the web browser. | |
| /doc/ecgsegment | Transmit the requested 30 s ECG data to the web browser. | |
| /doc/ecganalysis | Receive the doctor’s diagnosis, save it in a database and send a notification to the Android APP. |
1 The URL started with https://
Figure 7The main web page of the web application.
Figure 8Flow chart of the web application of ECG diagnosis.
Figure 9Illustration of the importance of the 31 features. (The top 17 features were selected to train the final classifier).
Figure 10MCC scores according to different number of top-importance features. MCC = Matthews correlation coefficient.
Description of cross-validation scores and test scores.
| Classifier | Testing Set | No. of Cases | Acc |
|
|
|
|
|---|---|---|---|---|---|---|---|
| Cross-validation | Training set | 29,074 | 0.96 | 0.98 | 0.98 | 0.79 | 0.92 |
| CatBoost model | Test set | 7270 | 0.96 | 0.98 | 0.98 | 0.80 |
|
Acc = accuracy score; F1n = F1 score of Normal class; F1a = F1 score of AF class; F1o = F1 score of Other class; F1 = scoring metric of the Challenge, which is an average of F1n, F1a and F1o.
Figure 11The ECG monitoring system in operation. (a) The ECG patch was connected to the FLUKE MPS450. (b,c) The Android APP displayed the normal (b) and abnormal (c) ECG waveforms in real time. (d) The doctor’s web browser displayed the 30 s ECG waveforms. (e) The historical data module of the APP showed the doctor’s diagnosis.
Performance comparison of AF classifiers on the Challenge dataset.
| Authors | Algorithm | No. of Features | Training Set (AFDB-2017) 1 | Test Set 1 | |||
|---|---|---|---|---|---|---|---|
|
|
|
|
|
| |||
| Teijeiro et al. [ | XGBoost and DNN | 79 | 0.94 2 | 0.90 2 | 0.84 2 | 0.89 2 | 0.83 2 |
| Datta et al. [ | DTE | 150 | 0.99 2 | 0.94 2 | 0.98 2 | 0.97 2 | 0.83 2 |
| Zabihi et al. [ | DTE | 491 | 0.98 2 | 0.93 2 | 0.95 2 | 0.95 2 | 0.83 2 |
| Hong et al. [ | DNN and XGBoost | 300 | 0.99 2 | 0.94 2 | 0.98 2 | 0.97 2 | 0.83 2 |
| Zihlmann et al. [ | DNN | - | 0.93 2 | 0.91 2 | 0.83 2 | 0.89 2 | 0.82 2 |
| Xiong et al. [ | DNN | - | 0.93 2 | 0.88 2 | 0.83 2 | 0.88 2 | 0.82 2 |
| Our previous work [ | DTE | 30 | 0.93 2 | 0.88 2 | 0.82 2 | 0.87 2 | 0.82 2 |
| This work | CatBoost | 17 | 0.95 | 0.90 | 0.87 |
| - |
1 The datasets of the Challenge; test set is unavailable to the public. 2 Official scores of the Challenge (https://physionet.org/content/challenge-2017/1.0.0/results_all_F1_scores_for_each_classification_type.csv). XGBoost = eXtreme gradient boosting; DTE = decision tree ensemble; DNN = deep neural network.
Performance comparison of AF detectors on MITBIH-AFDB.
| Algorithm | Sensitivity (%) | Specificity (%) | Accuracy (%) |
|---|---|---|---|
| Slocum et al. [ | 62.80 | 77.46 | - |
| Tateno and Glass [ | 94.40 | 97.20 | - |
| Sarkar et al. [ | 97.50 | 99.00 | - |
| Huang et al. [ | 96.10 | 98.10 | - |
| Lee et al. [ | 98.20 | 97.70 | - |
| Jiang et al. [ | 98.20 | 97.50 | |
| Zhou et al. [ | 96.89 | 98.25 | 97.67 |
| Asgari et al. [ | 97.00 | 97.10 | 97.10 |
| This work | 99.61 | 99.64 | 99.62 |