File size: 2,367 Bytes
0f09a05
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
# %%
import gradio as gr
import joblib
loaded_rf_3way = joblib.load("STPI_3WAY_RandomForest.joblib")


def STPI(t_0_5_MaxValue,t_1_0_MaxValue,t_2_0_MaxValue,
# Acc_0_5__1_0_MaxValue,
Abs_Diff_t_0_5_MaxValue,Abs_Diff_t_1_0_MaxValue,Abs_Diff_t_2_0_MaxValue):
    print('------------------')
    
    X = [t_0_5_MaxValue,t_1_0_MaxValue,t_2_0_MaxValue,
    # Acc_0_5__1_0_MaxValue,
    Abs_Diff_t_0_5_MaxValue,Abs_Diff_t_1_0_MaxValue,Abs_Diff_t_2_0_MaxValue]
    print(X)
    outcome_decoded = ['Normal','Suspect','Keratoconic']
    file_object = open('stpi_data.txt', 'a')
    file_object.write(str(t_0_5_MaxValue))
    file_object.write(';')
    file_object.write(str(t_1_0_MaxValue))
    file_object.write(';')
    file_object.write(str(t_2_0_MaxValue))
    file_object.write(';')
    # file_object.write(str(Acc_0_5__1_0_MaxValue))
    # file_object.write(';')
    file_object.write(str(Abs_Diff_t_0_5_MaxValue))
    file_object.write(';')
    file_object.write(str(Abs_Diff_t_1_0_MaxValue))
    file_object.write(';')
    file_object.write(str(Abs_Diff_t_2_0_MaxValue))
    file_object.write(';')
    file_object.write('\n')
    file_object.close()

    result_3way = loaded_rf_3way.predict([X])
    print('The patient is ', outcome_decoded[int(result_3way)], 'through the 3way method')
    # result = 'The 3-way classification resulted in a ', outcome_decoded[int(result_3way)] + ' patient.'
    # further_analysis = 'Futher analysis using the 2-way classification resulted in a ' + outcome_decoded[int(result_2way)] + ' label.'
    return 'The patient is ' + outcome_decoded[int(result_3way)] + '.'

    # result = 'The 2-way classification resulted in a ', outcome_decoded[int(result_2way)] + ' patient.'
    # further_analysis = 'Futher analysis using the 3-way classification resulted in a ' + outcome_decoded[int(result_3way)] + ' label.'

    return 'The patient is ' + outcome_decoded[int(result_2way)] + '.'

iface = gr.Interface(
    fn=STPI, 
    title='TSPI Calculator',
    description='Uses the Thickness Speed Progression Index (TSPI) to calculate the most probable patient diagnosis through summarized tomographic parameters. Beta version made for Zeimer by Prof. Shady Awwad and Jad Assaf MD.',
    inputs=["number", "number","number", 
    # "number",
    "number", "number","number"],
    outputs="text")
iface.launch(
    # share=True
    )
# %%