def AlzhetectPage(): conn = db.OpenConnection(appContext + '/src/sqldb/alzhetect.db') #selected_features = {"th" : query_features.keys(), "td" : query_features.values.tolist()} field_name = db.QueryDB("SELECT Field_Name FROM selected_features;", conn).values.tolist() field_type = db.QueryDB("SELECT Measurement_Type FROM selected_features;", conn).values.tolist() patient_input_fields = {"field_name":field_name, "field_type":field_type} algo_accuracy = [ {"a_id":"knn", "a_name":"K-Nearest Neighbors", "a_accuracy":65}, {"a_id":"svm", "a_name":"Support Vector Machine", "a_accuracy":75}, {"a_id":"dnn", "a_name":"Deep Neural Network", "a_accuracy":68} ] db.CloseConnection(conn) results={} if request.method == 'POST': f = request.files['file'] in_file = f.read() in_file = io.StringIO(unicode(in_file)) # in_file = in_file.copy() # print type(in_file) # print pd.DataFrame([sub.split(",")]f.read()) # f.save("results/uploads/upload.csv") # + secure_filename(f.filename)) # redict_csv = ml.GetModelDataCSV(io.StringIO(unicode(in_file))) # print predict_csv # return model_dp # print io.StringIO(unicode(in_file)).getvalue() knn_pred = ml.knn_predict(model_loc=appContext+"/src/trained_model/knn/knnmodel4.pickle", input_data=deepcopy(in_file), appcontext=appContext) svm_pred = ml.svm_predict(model_loc=appContext+"/src/trained_model/svm/svmmodel4.pickle", input_data=deepcopy(in_file), appcontext=appContext) keras_pred = ml.keras_testCN(model_loc=appContext+"/src/trained_model/keras/kerasmodel4CN.yaml", weights_loc=appContext+"/src/trained_model/keras/kerasmodel4CN.h5", input_data=deepcopy(in_file), appcontext=appContext) result_vals = {} result_vals['KNN'] = knn_pred.values.tolist() result_vals['SVM'] = svm_pred.values.tolist() result_vals['DNN'] = keras_pred.values.tolist() result_cols = {} result_cols['KNN'] = knn_pred.columns.tolist() result_cols['SVM'] = svm_pred.columns.tolist() result_cols['DNN'] = keras_pred.columns.tolist() results['result_cols'] = result_cols results['result_vals'] = result_vals return render_template("alzhetect.html", patient_input_fields=patient_input_fields, algo_accuracy=algo_accuracy, results=results)
def StatsPage(): conn = db.OpenConnection(appContext + '/src/sqldb/alzhetect.db') query_features = db.QueryDB("SELECT * FROM selected_features;", conn) checkboxes = GenerateCheckbox(conn, query_features) selected_features = {"th" : query_features.keys(), "td" : query_features.values.tolist()} db.CloseConnection(conn) return render_template("stats.html", checkboxes=checkboxes, selected_features=selected_features)
def HomePage(): title="Alzhetect" conn = db.OpenConnection(appContext + '/src/sqldb/alzhetect.db') query_features = db.QueryDB("SELECT * FROM selected_features;", conn) selected_features = {"th" : query_features.keys(), "td" : query_features.values.tolist()} # print "keys", query_features.keys() # print "values", query_features.values.tolist() db.CloseConnection(conn) return render_template("index.html", title=title, selected_features=selected_features)
def StaticCheckboxes(conn): genderStats = [["Male", db.QueryDB("SELECT COUNT(PTGENDER) FROM patients WHERE PTGENDER='Male' AND DX_bl='AD';", conn).iloc[0]['COUNT(PTGENDER)']], ["Female", db.QueryDB("SELECT COUNT(PTGENDER) FROM patients WHERE PTGENDER='Female' AND DX_bl='AD';", conn).iloc[0]['COUNT(PTGENDER)']]] ageStats = [["X < 60", db.QueryDB("SELECT COUNT(AGE) FROM patients WHERE AGE<60 AND DX_bl='AD';", conn).iloc[0]['COUNT(AGE)']], ["60 <= X < 70", db.QueryDB("SELECT COUNT(AGE) FROM patients WHERE AGE>=60 AND AGE<70 AND DX_bl='AD';", conn).iloc[0]['COUNT(AGE)']], ["70 <= X < 80", db.QueryDB("SELECT COUNT(AGE) FROM patients WHERE AGE>=70 AND AGE<80 AND DX_bl='AD';", conn).iloc[0]['COUNT(AGE)']], ["80 <= X < 90", db.QueryDB("SELECT COUNT(AGE) FROM patients WHERE AGE>=80 AND AGE<90 AND DX_bl='AD';", conn).iloc[0]['COUNT(AGE)']], ["X >= 90", db.QueryDB("SELECT COUNT(AGE) FROM patients WHERE AGE>=90 AND DX_bl='AD';", conn).iloc[0]['COUNT(AGE)']]] raceStats = [["White", db.QueryDB("SELECT COUNT(PTRACCAT) FROM patients WHERE PTRACCAT='White' AND DX_bl='AD';", conn).iloc[0]['COUNT(PTRACCAT)']], ["Black", db.QueryDB("SELECT COUNT(PTRACCAT) FROM patients WHERE PTRACCAT='Black' AND DX_bl='AD';", conn).iloc[0]['COUNT(PTRACCAT)']], ["Asian", db.QueryDB("SELECT COUNT(PTRACCAT) FROM patients WHERE PTRACCAT='Asian' AND DX_bl='AD';", conn).iloc[0]['COUNT(PTRACCAT)']], ["Am Indian/Alaskan", db.QueryDB("SELECT COUNT(PTRACCAT) FROM patients WHERE PTRACCAT='Am Indian/Alaskan' AND DX_bl='AD';", conn).iloc[0]['COUNT(PTRACCAT)']], ["More than one", db.QueryDB("SELECT COUNT(PTRACCAT) FROM patients WHERE PTRACCAT='More than one' AND DX_bl='AD';", conn).iloc[0]['COUNT(PTRACCAT)']], ["Unknown", db.QueryDB("SELECT COUNT(PTRACCAT) FROM patients WHERE PTRACCAT='Unknown' AND DX_bl='AD';", conn).iloc[0]['COUNT(PTRACCAT)']], ["Hawaiian/Other PI", db.QueryDB("SELECT COUNT(PTRACCAT) FROM patients WHERE PTRACCAT='Hawaiian/Other PI' AND DX_bl='AD';", conn).iloc[0]['COUNT(PTRACCAT)']]] ethStats = [["Not Hisp/Latino", db.QueryDB("SELECT COUNT(PTETHCAT) FROM patients WHERE PTETHCAT='Not Hisp/Latino' AND DX_bl='AD';", conn).iloc[0]['COUNT(PTETHCAT)']], ["Hisp/Latino", db.QueryDB("SELECT COUNT(PTETHCAT) FROM patients WHERE PTETHCAT='Hisp/Latino' AND DX_bl='AD';", conn).iloc[0]['COUNT(PTETHCAT)']], ["Unknown", db.QueryDB("SELECT COUNT(PTETHCAT) FROM patients WHERE PTETHCAT='Unknown' AND DX_bl='AD';", conn).iloc[0]['COUNT(PTETHCAT)']]] eduStats = [["X < 5", db.QueryDB("SELECT COUNT(PTEDUCAT) FROM patients WHERE PTEDUCAT<5 AND DX_bl='AD';", conn).iloc[0]['COUNT(PTEDUCAT)']], ["5 <= X < 10", db.QueryDB("SELECT COUNT(PTEDUCAT) FROM patients WHERE PTEDUCAT>=5 AND PTEDUCAT<10 AND DX_bl='AD';", conn).iloc[0]['COUNT(PTEDUCAT)']], ["10 <= X < 15", db.QueryDB("SELECT COUNT(PTEDUCAT) FROM patients WHERE PTEDUCAT>=10 AND PTEDUCAT<15 AND DX_bl='AD';", conn).iloc[0]['COUNT(PTEDUCAT)']], ["15 <= X < 20", db.QueryDB("SELECT COUNT(PTEDUCAT) FROM patients WHERE PTEDUCAT>=15 AND PTEDUCAT<20 AND DX_bl='AD';", conn).iloc[0]['COUNT(PTEDUCAT)']], ["X >= 20", db.QueryDB("SELECT COUNT(PTEDUCAT) FROM patients WHERE PTEDUCAT>=20 AND DX_bl='AD';", conn).iloc[0]['COUNT(PTEDUCAT)']]] marryStats = [["Married", db.QueryDB("SELECT COUNT(PTMARRY) FROM patients WHERE PTMARRY='Married' AND DX_bl='AD';", conn).iloc[0]['COUNT(PTMARRY)']], ["Divorced", db.QueryDB("SELECT COUNT(PTMARRY) FROM patients WHERE PTMARRY='Divorced' AND DX_bl='AD';", conn).iloc[0]['COUNT(PTMARRY)']], ["Widowed", db.QueryDB("SELECT COUNT(PTMARRY) FROM patients WHERE PTMARRY='Widowed' AND DX_bl='AD';", conn).iloc[0]['COUNT(PTMARRY)']], ["Never married", db.QueryDB("SELECT COUNT(PTMARRY) FROM patients WHERE PTMARRY='Never married' AND DX_bl='AD';", conn).iloc[0]['COUNT(PTMARRY)']], ["Unknown", db.QueryDB("SELECT COUNT(PTMARRY) FROM patients WHERE PTMARRY='Unknown'AND DX_bl='AD';", conn).iloc[0]['COUNT(PTMARRY)']]] checkboxes = [{"value":"PTGENDER", "label":"Gender", "stats":genderStats, "description":0}, {"value":"AGE", "label":"Age", "stats":ageStats, "description":0}, {"value":"PTRACCAT", "label":"Race", "stats":raceStats, "description":0}, {"value":"PTETHCAT", "label":"Ethnicity", "stats":ethStats, "description":0}, {"value":"PTEDUCAT", "label":"Education", "stats":eduStats, "description":0}, {"value":"PTMARRY", "label":"Marital Status", "stats":marryStats, "description":0}, ] return checkboxes
def SimpleQuery(field, conn): return db.QueryDB("SELECT " + field + " FROM patients WHERE DX_bl='AD';",conn)