예제 #1
0
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)
예제 #2
0
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)
예제 #3
0
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)
예제 #4
0
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
예제 #5
0
def SimpleQuery(field, conn):
    return db.QueryDB("SELECT " + field + " FROM patients WHERE DX_bl='AD';",conn)