donadelicc commited on
Commit
e417837
1 Parent(s): a945609
Files changed (1) hide show
  1. app.py +84 -0
app.py ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pickle
2
+ import pandas as pd
3
+ import math
4
+ import gradio as gr
5
+ from sklearn.ensemble import RandomForestRegressor
6
+ import pandas as pd
7
+
8
+
9
+
10
+
11
+ #C:\Users\prebe\OneDrive\Projects\Doc_Summarizer\web\Gradio Apps\hospitalStay\model\hospitalStay.pkl
12
+
13
+ with open('model/hospitalStay.pkl', 'rb') as f:
14
+ model = pickle.load(f)
15
+
16
+
17
+
18
+ default_values = {
19
+ 'rcount': 0.0,
20
+ 'gender': 0.0,
21
+ 'dialysisrenalendstage': False,
22
+ 'asthma': False,
23
+ 'irondef': False,
24
+ 'pneum': False,
25
+ 'substancedependence': False,
26
+ 'psychologicaldisordermajor': False,
27
+ 'depress': False,
28
+ 'psychother': False,
29
+ 'fibrosisandother': False,
30
+ 'malnutrition': False,
31
+ 'hemo': 0.0,
32
+ 'hematocrit': 11.9,
33
+ 'neutrophils': 9.4,
34
+ 'sodium': 135.885126,
35
+ 'glucose': 23.765383,
36
+ 'bloodureanitro': 12.0,
37
+ 'creatinine': 0.268453,
38
+ 'bmi': 29.798116,
39
+ 'pulse': 74.0,
40
+ 'respiration': 6.5,
41
+ 'secondarydiagnosisnonicd9': 1.0,
42
+ 'facid': 4.0
43
+ }
44
+
45
+
46
+ def predict_length_of_stay(rcount, gender, asthma, hematocrit, bmi):
47
+
48
+ # Konverterer input verdier fra Gradio input
49
+ if rcount < 0 or rcount > 5:
50
+ return "Ugylding verdig for Antall innleggelser. Bruk et tall mellom 0 og 5"
51
+ gender = 1.0 if gender == "Male" else 0.0
52
+
53
+ input_values = default_values.copy()
54
+ input_values.update({
55
+ 'rcount': rcount,
56
+ 'gender': gender,
57
+ 'asthma': asthma,
58
+ 'hematocrit': hematocrit,
59
+ 'bmi': bmi
60
+ })
61
+
62
+ df = pd.DataFrame([input_values])
63
+
64
+ prediction = model.predict(df)
65
+ rounded_prediction = math.ceil(prediction[0])
66
+ return rounded_prediction
67
+
68
+
69
+ iface = gr.Interface(
70
+ fn=predict_length_of_stay,
71
+ title="Beregn lengden på et sykehusopphold til en pasient.",
72
+ description="Modellen tar inn 25 variabler for å predikere lengden på sykehusoppholdet, men jeg har begreset denne demoen til å bare inneholde 5 input verdier.",
73
+ inputs=[
74
+ gr.components.Number(label="Antall innleggelser de siste 180 dager", default=0.0),
75
+ gr.components.Dropdown(choices=["Male", "Female"], label="Gender", default="Male"),
76
+ gr.components.Checkbox(label="Asthma", default=False),
77
+ gr.components.Number(label="Hematocrit", default=11.9),
78
+ gr.components.Number(label="BMI", default=29.798116),
79
+ ],
80
+ allow_flagging="never",
81
+ outputs=gr.components.Textbox(label="Predicted Length of Stay (days)")
82
+ )
83
+
84
+ iface.launch()