-
Notifications
You must be signed in to change notification settings - Fork 1
/
EWSWebServer.py
144 lines (129 loc) · 24.4 KB
/
EWSWebServer.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
#!flask/bin/python
from flask import Flask, jsonify
import model
import matplotlib.pyplot as plt
import scipy.io
import numpy as np
import obspy
from obspy.signal.detrend import polynomial
from statsmodels.tsa.ar_model import AR
import glob
import os
import pandas as pd
import numpy as np
import re
from string import digits
import random
from biosppy.signals import ecg
from sklearn import svm
import pywt
import pickle
from sklearn.externals import joblib
from obspy.signal.detrend import polynomial
import collections
app = Flask(__name__)
data=[995,995,995,995,995,999,996,994,993,992,989,987,991,990,988,987,993,995,987,981,979,975,973,969,969,971,972,969,966,966,966,966,963,968,969,968,964,965,967,966,962,960,955,947,946,935,927,935,961,997,1048,1121,1176,1187,1140,1045,965,937,945,958,958,955,958,960,962,958,956,957,957,958,958,959,958,955,955,959,962,960,957,957,956,954,953,957,958,957,954,959,958,958,957,956,957,954,953,955,958,958,958,957,957,956,955,954,956,957,955,954,956,957,956,953,954,955,957,953,952,952,952,949,949,952,952,949,950,951,952,951,951,957,959,958,956,963,964,966,966,968,972,974,972,973,976,975,974,973,976,973,975,974,974,971,972,971,971,971,968,966,970,972,968,967,969,970,970,966,968,968,968,964,963,965,963,962,964,967,967,965,963,965,964,962,959,963,966,961,958,962,963,962,959,959,961,963,963,964,964,965,964,963,966,967,963,962,965,966,969,969,970,974,974,978,981,984,983,979,980,979,979,978,976,978,981,982,971,967,963,958,958,961,960,960,956,956,956,954,953,958,958,959,954,956,958,958,953,952,946,936,928,919,923,951,989,1037,1110,1174,1207,1203,1147,1060,989,950,933,932,940,946,947,947,948,947,947,947,948,945,942,944,945,943,946,949,946,944,942,944,946,944,941,943,943,942,942,944,944,946,943,945,946,947,942,944,946,948,945,943,946,946,944,941,943,945,942,940,941,941,939,938,938,939,938,934,934,937,934,933,931,933,934,930,930,934,935,937,936,944,950,951,951,957,960,960,958,960,963,964,960,961,963,964,960,961,962,964,960,960,963,961,962,961,964,966,963,960,962,962,961,959,961,960,959,957,957,957,959,955,955,957,958,955,955,959,958,956,953,958,958,955,952,953,955,955,955,955,958,957,955,954,956,956,955,954,956,957,956,957,957,958,956,955,957,961,965,965,968,970,971,972,974,977,981,976,976,975,976,973,969,971,976,980,976,970,968,964,960,957,957,955,950,953,954,953,950,948,950,951,948,948,950,951,946,942,937,929,921,912,917,949,994,1053,1135,1199,1207,1139,1013,934,925,939,945,946,946,944,945,944,945,945,943,944,943,943,940,943,942,940,937,941,942,941,938,940,942,942,940,944,945,944,944,943,946,944,941,939,941,941,939,939,941,944,943,939,943,945,944,943,946,945,946,942,943,943,941,940,939,941,942,937,937,940,940,940,939,941,945,946,949,954,957,958,957,959,962,963,962,963,964,964,962,962,962,963,961,959,962,963,960,960,962,964,960,958,960,960,957,954,956,958,957,954,954,954,952,952,953,954,954,954,951,954,953,950,949,952,951,951,948,951,954,954,951,952,955,956,952,952,953,953,948,952,952,952,952,951,955,954,955,955,961,963,962,963,967,969,968,969,972,974,972,970,968,971,969,968,968,969,972,976,970,962,959,952,948,948,950,948,946,946,947,946,943,945,949,946,943,943,945,943,936,930,923,920,915,899,898,916,944,980,1032,1109,1173,1195,1147,1040,947,921,933,945,946,943,943,947,945,943,943,944,945,942,942,945,943,943,943,945,947,945,944,944,945,944,943,944,946,949,946,946,948,947,945,947,949,948,945,946,951,948,945,948,949,948,947,949,949,949,947,946,951,949,947,946,949,949,948,947,949,951,948,945,947,950,951,949,955,959,961,959,961,966,964,966,967,969,969,966,965,966,967,965,963,967,968,966,963,965,965,966,963,964,964,963,962,961,964,962,957,958,960,961,959,958,961,960,958,955,957,958,956,954,956,957,957,957,956,959,956,955,951,954,955,954,954,956,955,954,950,952,955,954,954,957,958,957,956,959,966,965,963,967,969,968,970,971,976,975,975,973,976,974,971,973,970,970,973,974,972,967,962,959,956,958,956,952,955,957,954,951,949,951,951,948,949,951,951,950,950,952,954,950,946,939,933,923,911,922,953,995,1055,1134,1182,1170,1081,980,932,928,937,944,946,945,942,939,943,944,943,942,946,946,945,945,946,946,945,940,943,945,944,940,941,943,943,942,943,941,942,942,941,943,945,945,944,945,943,941,937,942,945,944,943,943,945,945,941,941,945,944,941,939,939,939,934,934,937,933,933,933,937,939,936,934,937,940,941,940,945,950,951,951,955,960,963,962,962,962,962,961,961,963,964,962,961,961,965,963,964,968,966,964,959,963,964,961,958,959,960,957,957,959,959,961,957,956,957,959,961,957,958,958,957,956,959,961,958,953,955,957,960,956,958,961,958,958,957,958,958,956,956,959,959,955,955,958,960,963,964,970,973,972,972,975,977,979,977,980,979,977,974,976,978,975,973,976,983,984,978,970,968,966,959,956,955,954,955,953,955,956,955,951,953,953,956,950,951,955,954,952,947,945,936,929,919,916,929,958,997,1063,1143,1191,1185,1103,998,936,925,935,945,945,945,946,948,947,944,942,946,945,943,941,944,945,942,941,943,946,944,941,944,945,945,942,942,945,945,941,941,943,943,941,939,942,945,944,942,944,945,941,940,941,943,940,939,943,943,944,943,944,945,943,941,939,942,941,938,936,937,938,934,935,937,937,936,934,938,941,944,947,953,958,959,958,962,966,966,964,965,967,965,966,966,968,969,966,966,969,970,969,966,968,969,966,963,965,967,966,963,962,964,963,961,959,961,961,961,960,962,960,958,959,962,962,959,957,959,959,959,957,958,959,960,958,959,962,959,959,958,961,959,958,958,958,960,958,958,961,961,959,958,961,963,964,961,966,972,973,971,973,978,979,980,981,984,983,979,976,978,979,976,975,981,983,975,969,965,963,959,959,959,958,957,955,956,959,959,956,955,956,956,955,955,956,956,955,952,950,941,930,924,918,923,953,994,1052,1127,1191,1210,1174,1069,968,933,938,949,952,950,948,949,950,950,947,949,950,948,945,947,946,946,942,944,947,945,944,944,946,946,944,946,948,949,948,947,950,950,949,948,947,949,949,946,947,949,948,945,946,949,948,946,948,949,950,949,950,951,950,947,945,949,949,947,946,946,947,948,945,949,949,948,943,949,952,949,948,950,954,955,958,961,963,966,967,967,970,968,968,966,968,969,967,966,967,968,967,964,966,968,967,966,967,969,968,964,963,968,970,969,967,970,971,971,969,974,977,975,974,978,980,974,977,983,980,978,976,975,972,967,961,960,961,957,955,951,952,954,949,948,950,951,950,948,953,953,953,951,954,956,953,951,951,946,938,925,920,913,914,939,983,1031,1100,1167,1195,1177,1084,977,928,936,949,949,944,947,948,947,944,946,947,947,945,943,945,946,945,945,947,946,942,941,942,946,946,944,945,949,947,944,945,946,944,941,943,947,948,944,945,947,949,945,946,948,948,946,944,946,947,946,944,946,948,946,943,945,948,948,944,945,945,944,941,940,943,943,943,943,946,948,945,944,949,950,948,950,954,956,957,953,958,961,963,961,961,963,963,958,956,960,961,963,962,964,963,961,960,961,963,960,959,960,961,960,956,957,956,953,950,955,956,955,952,952,953,954,951,953,954,956,953,951,954,954,954,953,954,953,953,950,953,954,953,948,947,952,950,948,949,951,955,955,952,954,955,952,951,952,952,950,947,949,950,949,949,952,953,952,950,952,955,955,955,955,953,953,952,951,952,953,949,949,953,953,951,949,951,952,953,952,955,955,955,952,952,953,953,953,953,953,956,958,960,963,964,965,964,969,971,973,972,972,973,970,966,969,972,968,962,964,968,971,969,964,962,960,953,951,951,951,950,949,951,949,946,940,944,947,946,941,944,945,944,939,936,929,927,916,909,925,957,991,1049,1123,1179,1200,1165,1082,1000,948,923,916,924,932,934,938,942,942,940,939,939,938,935,934,938,938,935,936,939,938,939,935,937,937,936,935,938,939,938,936,939,939,938,936,938,940,939,936,935,936,938,936,937,938,941,939,939,942,943,941,939,941,943,943,939,941,941,937,932,932,933,932,929,925,928,925,924,923,927,926,924,925,928,932,931,932,937,939,942,944,947,952,954,954,956,959,963,960,963,964,963,961,960,961,961,959,959,961,962,960,958,959,961,959,957,959,960,959,957,959,960,960,957,955,956,956,953,953,955,957,955,954,957,958,956,954,955,957,955,953,956,955,954,949,950,955,954,952,952,955,954,952,953,953,956,953,953,955,956,952,950,956,960,963,963,965,966,970,970,971,973,975,972,972,973,973,968,969,967,970,975,974,968,966,961,957,954,953,951,947,949,954,952,950,950,952,951,949,947,951,949,947,945,947,947,939,928,922,917,909,921,959,1003,1067,1138,1191,1193,1124,1011,933,922,931,939,941,942,945,942,938,941,941,941,939,942,942,941,940,945,947,944,944,944,944,944,943,945,943,945,943,941,943,945,943,942,941,942,943,942,944,945,943,944,946,945,946,941,942,944,943,940,942,944,943,939,940,942,943,940,939,942,942,941,939,940,942,941,938,940,943,941,942,948,952,954,954,957,962,961,961,963,964,966,965,966,967,969,968,966,967,969,966,963,966,967,965,962,965,966,966,962,964,964,964,962,960,963,963,959,957,962,960,959,956,960,959,957,953,958,961,957,956,955,958,956,953,955,957,956,956,957,958,959,957,956,960,961,957,958,959,961,960,955,959,962,960,956,959,962,962,964,968,974,974,973,975,979,978,981,979,978,978,975,974,977,975,978,981,982,975,971,966,964,963,960,955,954,957,957,955,954,956,956,953,952,955,957,957,953,955,951,938,927,921,915,933,970,1024,1096,1169,1205,1178,1071,962,929,940,952,952,948,948,950,950,947,946,948,947,947,943,945,947,947,942,945,947,947,946,945,949,948,946,947,948,948,945,946,949,950,947,946,947,950,950,949,950,953,950,949,949,950,950,947,948,948,950,949,947,948,949,949,948,948,948,946,946,947,949,948,947,948,951,950,947,954,958,959,959,959,961,961,964,967,970,972,969,969,973,972,968,967,968,970,970,967,969,970,970,966,967,969,970,966,968,970,969,966,965,966,964,966,964,966,965,962,960,961,964,962,958,962,961,962,959,963,964,963,960,961,962,963,959,960,962,961,960,961,963,966,966,963,964,964,961,961,964,964,963,962,968,975,974,975,979,980,982,984,985,988,988,983,982,982,982,981,980,987,989,980,973,971,969,966,964,962,964,965,962,962,963,964,962,959,960,960,959,957,959,961,955,948,940,934,925,919,940,977,1023,1093,1166,1195,1160,1064,967,935,941,949,953,954,954,954,954,956,956,957,954,956,957,955,951,951,954,953,952,954,954,953,953,957,958,956,954,955,956,954,953,952,954,953,951,950,953,955,955,956,958,957,955,954,953,952,954,951,955,957,954,954,954,956,955,951,947,953,952,950,948,950,954,952,951,954,958,958,957,961,966,966,965,968,971,972,970,973,974,975,973,972,973,975,973,969,971,970,968,966,969,970,969,966,968,969,966,967,968,968,968,964,964,964,962,960,962,964,962,960,960,960,962,961,959,962,961,961,959,959,962,963,962,964,961,963,961,962,964,964,961,959,963,964,961,959,965,969,972,971,973,978,980,977,981,983,982,979,976,979,977,973,972,977,981,974,969,969,964,959,956,958,961,961,958,959,959,956,954,954,955,953,952,954,954,955,953,948,942,937,928,918,927,958,999,1061,1137,1183,1175,1097,998,941,930,936,946,950,949,947,944,947,947,947,950,951,949,948,949,950,950,947,946,947,947,946,944,945,945,945,943,946,948,946,945,946,947,943,944,945,946,946,944,943,946,946,944,944,947,950,947,945,947,948,947,946,944,943,941,939,938,940,938,933,933,937,938,934,935,939,939,938,939,941,947,948,950,953,957,958,960,960,965,964,965,966,967,967,967,966,968,970,968,967,969,969,966,963,964,968,964,961,964,966,964,963,963,965,963,962,962,964,964,963,963,964,964,961,960,960,961,959,957,960,960,959,958,961,963,962,958,961,962,963,959,958,959,959,958,959,961,961,960,960,962,963,961,960,962,965,964,962,966,969,970,969,973,976,977,977,979,982,983,982,980,980,980,980,978,976,981,978,974,981,985,980,972,968,967,962,961,958,957,960,960,959,961,963,960,958,960,959,957,953,958,959,957,955,955,952,942,934,928,922,926,956,1002,1062,1136,1191,1209,1159,1051,962,934,942,951,951,948,953,952,949,947,950,950,951,948,949,951,949,949,951,952,953,951,951,954,954,953,952,953,953,951,951,954,953,953,950,951,954,954,950,952,954,954,950,951,954,953,951,950,953,954,952,953,955,955,953,951,953,952,951,948,949,950,948,945,948,948,949,947,949,952,955,958,961,966,966,967,968,969,973,970,971,974,975,972,972,977,975,975,971,974,974,974,971,973,974,975,971,971,971,971,968,969,971,970,968,967,968,967,967,965,967,970,966,966,965,966,965,961,962,965,964,961,961,963,964,961,961,962,965,964,962,964,965,962,960,963,963,962,959,961,964,963,960,963,966,965,963,965,966,965,964,964,967,969,968,973,978,976,976,977,980,982,984,982,984,983,982,979,981,984,981,980,985,989,983,973,969,968,965,962,960,959,961,958,956,958,959,957,955,957,957,957,956,957,958,957,951,944,937,934,932,928,920,910,917,940,975,1017,1077,1144,1191,1194,1129,1020,950,934,941,948,950,950,952,951,947,952,951,950,947,952,952,949,949,953,953,951,949,952,954,952,948,952,953,949,946,950,951,952,952,951,954,955,951,949,953,951,951,951,953,952,947,949,953,956,952,947,949,952,952,949,952,952,954,951,950,950,948,946,948,950,951,950,948,950,952,952,951,956,959,961,959,964,967,966,969,970,972,971,969,967,972,971,969,969,973,974,973,973,973,972,968,965,968,968,968,967,968,970,966,962,965,968,964,963,964,966,967,963,961,962,964,961,959,960,961,959,957,959,962,961,957,961,961,961,957,959,961,962,959,960,961,958,957,956,959,961,957,958,962,962,958,960,963,967,970,972,972,973,973,973,977,982,981,978,979,978,979,976,978,976,974,974,979,983,979,971,968,970,969,962,957,957,958,956,952,954,955,954,952,952,954,956,951,950,954,954,950,944,936,929,917,912,924,956,991,1048,1123,1174,1175,1118,1025,959,929,929,936,941,942,941,943,944,942,943,943,945,946,945,943,944,942,943,942,943,946,945,944,945,947,945,942,942,942,943,940,940,941,941,939,940,939,941,942,941,942,944,943,939,941,944,942,940,942,944,942,940,942,945,944,941,941,942,942,937,935,936,937,936,935,936,938,935,935,937,940,941,943,948,950,950,951,953,961,962,960,959,962,963,960,958,962,962,963,961,962,964,963,960,961,961,960,957,958,961,961,958,957,962,964,960,958,960,959,956,954,954,955,952,953,956,955,954,954,955,957,955,953,953,955,955,953,951,953,954,951,952,955,955,954,956,956,956,955,953,954,957,954,954,955,957,957,953,955,960,961,960,964,966,971,968,970,977,978,975,974,975,974,971,969,968,970,973,972,967,964,960,953,954,954,952,950,952,952,951,948,948,950,951,947,946,950,951,948,947,949,950,945,935,929,927,916,917,942,980,1027,1092,1158,1191,1175,1091,992,942,928,931,937,941,942,941,941,945,947,944,940,943,944,943,938,941,943,940,937,937,940,938,940,939,940,941,939,940,942,942,940,939,941,945,942,938,940,941,940,936,938,941,940,937,938,939,940,940,938,940,942,942,940,940,940,937,937,939,937,933,931,931,931,931,926,929,933,932,933,936,940,944,943,947,951,952,950,951,956,958,958,956,959,963,960,960,961,962,962,958,960,962,960,957,958,959,960,955,956,960,960,956,955,956,958,955,952,955,958,956,951,952,956,955,953,956,957,959,954,954,956,957,952,952,953,955,951,952,954,954,953,951,954,955,953,952,954,957,955,955,957,956,955,953,954,958,958,958,962,968,968,967,968,972,975,976,976,979,980,977,973,975,976,972,970,977,979,970,964,959,960,958,954,951,954,956,956,953,955,955,954,949,951,952,951,948,950,953,949,947,946,939,930,923,913,928,962,1006,1068,1144,1195,1199,1124,1016,947,929,939,947,948,946,944,944,942,946,943,944,947,946,943,944,948,947,943,944,946,946,942,943,945,946,945,943,944,947,944,945,947,949,949,945,947,947,948,945,944,949,949,946,944,947,949,947,947,950,951,949,948,949,951,949,944,944,950,946,942,944,948,948,944,947,950,951,952,953,961,962,963,964,968,969,968,967,967,971,969,966,968,969,970,966,967,971,971,968,969,970,968,966,964,968,969,966,963,967,967,965,964,965,967,966,963,964,967,965,961,963,965,963,958,960,961,961,960,960,962,963,961,961,963,963,962,962,962,965,961,959,959,962,962,958,961,963,964,962,962,967,970,973,977,978,978,978,977,979,983,984,983,984,986,983,979,980,980,979,974,976,982,987,981,974,972,969,962,959,959,958,959,956,957,959,955,953,953,954,956,953,955,956,955,945,936,931,922,915,933,968,1016,1081,1151,1188,1162,1076,978,935,938,948,949,950,951,951,949,951,954,952,948,949,951,950,947,946,949,949,947,948,949,951,949,949,952,954,953,950,953,952,951,949,951,953,950,948,948,950,952,949,951,954,952,952,952,956,957,953,954,956,954,953,951,951,951,950,949,950,954,952,948,949,952,951,948,949,953,953,953,954,957,959,957,958,962,964,963,964,967,971,968,966,970,973,971,969,971,974,972,969,966,967,968,965,964,964,964,966,963,962,965,964,960,961,964,963,961,963,963,964,962,961,961,959,956,957,960,960,958,959,960,961,958,956,959,959,957,956,959,960,958,955,958,959,960,957,960,962,962,959,956,961,963,966,969,971,972,972,969,972,976,978,975,978,977,977,975,978,980,977,973,978,979,972,964,962,957,954,953,953,956,957,954,952,955,955,954,953,954,955,953,950,947,939,931,925,914,919,944,967,996,1045,1116,1172,1206,1213,1173,1097,1014,954,934,933,940,944,949,947,944,943,944,943,943,945,948,946,941,943,945,948,945,944,945,943,942,944,947,944,940,938,943,942,943,941,943,943,946,944,946,946,944,940,941,944,945,943,941,944,946,945,944,946,948,946,942,941,941,938,931,932,932,934,931,930,932,934,931,933,938,941,941,942,951,953,954,956,960,962,961,957,963,964,963,958,963,964,962,958,962,962,963,962,962,963,962,961,961,959,960,956,957,958,960,959,955,957,957,954,952,954,957,957,955,957,958,957,955,955,954,955,952,952,954,955,955,954,956,957,955,950,952,956,952,953,955,956,953,954,955,956,956,955,961,965,969,968,969,971,975,974,975,979,978,973,971,971,975,972,968,972,977,977,971,968,966,960,954,953,952,952,949,951,953,955,950,952,953,954,953,953,953,953,952,949,948,939,929,920,912,922,958,1002,1067,1145,1202,1188,1106,996,935,927,937,943,944,940,944,943,946,946,943,944,946,945,941,944,948,947,945,944,947,948,943,942,944,944,944,945,948,947,946,943,944,946,943,942,944,942,943,941,942,945,943,944,945,946,947,944,945,947,947,943,943,944,942,941,937,940,940,937,936,937,937,937,935,940,941,943,943,948,952,956,954,956,961,963,964,962,964,967,966,964,965,968,966,965,968,969,970,965,968,969,966,963,966,968,970,963,962,964,966,964,962,964,964,961,959,963,965,964,959,961,962,963,957,959,961,962,958,959,963,963,960,961,963,962,959,960,960,962,962,962,966,965,962,961,962,963,961,959,962,965,962,960,961,964,967,972,975,979,979,977,979,983,986,986,983,983,982,980,978,980,980,976,978,984,985,979,971,972,968,964,963,962,960,959,957,956,957,958,955,953,957,955,954,952,955,956,954,953,953,951,937,929,924,917,927,956,1000,1057,1134,1197,1217,1186,1079,975,931,934,944,949,946,950,953,953,949,950,952,950,948,947,948,948,946,945,946,948,948,946,948,950,947,948,951,952,951,947,951,953,946,945,948,948,950,947,947,949,950,947,948,948,949,949,948,953,952,950,949,949,952,949,947,949,950,949,944,946,945,947,944,944,946,947,944,947,948,947,946,944,948,950,948,952,956,959,960,958,963,965,966,966,968,972,971,968,969,970,972,969,967,970,970,967,967,969,968,967,965,967,968,968,969,967,968,965,962,962,964,963,960,961,962,962,960,959,960,961,959,957,959,960,961,961,962,964,961,956,958,960,958,957,956,959,956,956,956,957,957,955,956,958,959,957,957,961,961,960,959,962,962,964,960,965,967,967,967,972,974,974,974,974,980,979,979,978,980,981,977,975,978,977,974,976,983,983,974,966,965,962,958,956,955,956,956,955,955,956,954,953,953,955,956,953,952,953,955,952,950,950,946,934,926,918,909,923,956,995,1047,1118,1175,1198,1164,1071,976,933,933,945,948,946,949,952,952,951,950,952,950,948,950,950,948,945,947,949,948,944,945,950,950,949,947,950,949,946,947,949,949,948,947,950,948,947,946,947,948,946,944,947,951,950,950,947,951,952,950,948,951,951,949,946,947,946,946,943,948,946,946,943,944,946,944,941,947,946,947,946,948,953,955,956,958,960,963,963,962,969,969,969,968,969,969,966,963,964,966,966,962,964,965,964,962,961,962,962,961,963,966,966,964,962,961,960,958,957,962,960,959,955,957,958,959,959,959,961,960,956,960,961,960,958,956,958,960,957,956,959,959,955,957,956,959,962,959,959,961,960,958,959,962,963,962,964,968,970,969,971,973,975,974,977,981,980,978,977,976,978,977,970,973,977,980,977,971,967,961,957,954,953,951,953,952,953,955,952,950,954,955,957,952,953,955,954,950,951,952,944,934,931,930,923,909,915,944,982,1034,1107,1169,1198,1159,1056,967,930,927,934,942,942,941,943,943,946,944,942,943,946,944,945,944,947,945,941,942,945,943,941,939,943,942,941,941,943,944,943,941,943,945,944,943,942,944,943,941,941,945,944,941,942,944,944,941,941,941,943,940,937,938,939,937,936,934,934,931,927,932,934,933,928,932,936,939,938,941,948,950,952,953,957,958,957,957,961,962,961,960,963,965,964,959,960,959,960,957,957,961,959,959,959,962,962,959,959,959,956,956,955,958,958,959,956,957,956,954,952,954,955,952,951,951,953,954,951,952,954,955,954,955,957,957,955,954,955,956,955,952,955,957,955,953,956,959,961,963,964,968,971,969,974,977,977,978,975,976,974,973,970,971,971,974,977,976,972,966,957,958,958,955,953,952,951,951,952,952,952,953,949,950,952,951,948,946,947,951,949,944,941,932,925,911,911,941,982,1034,1109,1179,1210,1169,1065,973,931,928,942,947,947,947,945,947,947,945,946,945,948,947,943,944,946,946,944,949,947,946,947,947,950,951,948,946,947,949,946,946,948,947,945,946,947,949,947,943,947,949,948,947,946,951,953,949,949,948,947,946,944,947,946,943,942,943,943,940,938,942];
signal = []
i = 0
beatind = 0
delta = 36
classif = collections.OrderedDict()
procSignal = ()
patientId = 1
from datetime import timedelta
from flask import make_response, request, current_app
from functools import update_wrapper
################################################################################################################################################################################################
# CORS enabling methods
#################################################################################################################################################################################################
def crossdomain(origin=None, methods=None, headers=None,
max_age=21600, attach_to_all=True,
automatic_options=True):
if methods is not None:
methods = ', '.join(sorted(x.upper() for x in methods))
if headers is not None and not isinstance(headers, basestring):
headers = ', '.join(x.upper() for x in headers)
if not isinstance(origin, basestring):
origin = ', '.join(origin)
if isinstance(max_age, timedelta):
max_age = max_age.total_seconds()
def get_methods():
if methods is not None:
return methods
options_resp = current_app.make_default_options_response()
return options_resp.headers['allow']
def decorator(f):
def wrapped_function(*args, **kwargs):
if automatic_options and request.method == 'OPTIONS':
resp = current_app.make_default_options_response()
else:
resp = make_response(f(*args, **kwargs))
if not attach_to_all and request.method != 'OPTIONS':
return resp
h = resp.headers
h['Access-Control-Allow-Origin'] = origin
h['Access-Control-Allow-Methods'] = get_methods()
h['Access-Control-Max-Age'] = str(max_age)
if headers is not None:
h['Access-Control-Allow-Headers'] = headers
return resp
f.provide_automatic_options = False
return update_wrapper(wrapped_function, f)
return decorator
from flask import Flask, render_template
from flask.ext.cors import CORS, cross_origin
app = Flask(__name__)
cors = CORS(app)
app.config['CORS_HEADERS'] = 'Content-Type'
sigs = model.getSignals()
clf2 = joblib.load(r'model\filename.pkl')
dictBeatsHuman = {1:'Normal', 2:'LBBB', 3:'RBBB', 4:'PACED', 5:'PVC', 6:'APC'}
def processSignal(patientId):
global signal
signal = list(sigs[patientId])
#signal = model.removeBaseGain(signal, 1024, 200.)
global classif
classif = {}
global procSignal
procSignal = ecg.ecg(signal=signal, sampling_rate=360., show=False)
for sampleno in procSignal['rpeaks']:
if ((sampleno - 115) >= 0 and (650000 - sampleno) >= 185):
#feature extraction - wavelet transform and auto regressive modeling
beat = signal[sampleno-115:sampleno+185]
feature = model.getFeature(beat)
pred = clf2.predict([feature])
classif[sampleno] = pred[0]
#print classif
hr = 60
@app.route('/getData',methods=['GET', 'POST'])
@crossdomain(origin='*')
def get_tasks():
global i
i = (i + delta)%len(signal)
sn = -1
res = 0
global hr
global beatind
print i, beatind
if sorted(classif.keys())[beatind] < i:
sn = sorted(classif.keys())[beatind]
res = classif[sn]
hr = procSignal['heart_rate'][beatind%len(procSignal['heart_rate'])]
beatind = (beatind + 1)%len(classif.keys())
return jsonify(val=signal[i:i+delta], hrt=hr, snn=str(sn), cl=dictBeatsHuman.get(res))
@app.route('/setPatient',methods=['GET', 'POST'])
@crossdomain(origin='*')
def set_patientId():
jsonData = request.get_json()
patientId = int(jsonData['id'])
print len(sigs), patientId, sigs[patientId][0]
processSignal(patientId)
#print file,sampleno,model.invDictBeats.get(pred[0])
return jsonify(id=patientId)
@app.route('/')
@crossdomain(origin='*')
def index():
processSignal(1)
return render_template('EWS.html')
if __name__ == '__main__':
app.run(host='0.0.0.0', port=9922,debug=True)