LianHP commited on
Commit
61c5cfc
·
verified ·
1 Parent(s): bb19228

Upload folder using huggingface_hub

Browse files
Files changed (4) hide show
  1. .gradio/certificate.pem +31 -0
  2. README.md +3 -9
  3. app.py +95 -0
  4. requirements.com +2 -0
.gradio/certificate.pem ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ -----BEGIN CERTIFICATE-----
2
+ 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
31
+ -----END CERTIFICATE-----
README.md CHANGED
@@ -1,12 +1,6 @@
1
  ---
2
- title: Risk Stratification
3
- emoji: 🌖
4
- colorFrom: pink
5
- colorTo: indigo
6
- sdk: gradio
7
- sdk_version: 5.49.1
8
  app_file: app.py
9
- pinned: false
 
10
  ---
11
-
12
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: risk_stratification
 
 
 
 
 
3
  app_file: app.py
4
+ sdk: gradio
5
+ sdk_version: 5.47.2
6
  ---
 
 
app.py ADDED
@@ -0,0 +1,95 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pandas as pd
2
+ import gradio as gr
3
+
4
+
5
+ def risk_stratify(file):
6
+ try:
7
+ df = pd.read_csv(file.name)
8
+ except Exception as e:
9
+ return f"❌ Error reading file: {e}"
10
+
11
+ required_cols = [
12
+ "member_id",
13
+ "age",
14
+ "chronic_conditions",
15
+ "ed_visits_past_year",
16
+ "inpatient_admissions",
17
+ "total_cost",
18
+ "behavioral_health_flag",
19
+ "pharmacy_rx_count",
20
+ "social_risk_score"
21
+ ]
22
+
23
+ missing = [c for c in required_cols if c not in df.columns]
24
+ if missing:
25
+ return f"❌ Missing required columns: {missing}"
26
+
27
+ # Risk scoring
28
+ df["risk_score"] = 0
29
+ df["risk_score"] += (df["age"] >= 65).astype(int)
30
+ df["risk_score"] += (df["chronic_conditions"] >= 2).astype(int) * 2
31
+ df["risk_score"] += (df["ed_visits_past_year"] >= 3).astype(int) * 2
32
+ df["risk_score"] += (df["inpatient_admissions"] >= 1).astype(int) * 2
33
+ df["risk_score"] += (df["total_cost"] >= 20000).astype(int) * 2
34
+ df["risk_score"] += (df["behavioral_health_flag"] == 1).astype(int) * 2
35
+ df["risk_score"] += (df["pharmacy_rx_count"] >= 10).astype(int)
36
+ df["risk_score"] += (df["social_risk_score"] >= 5).astype(int)
37
+
38
+ # Categorization
39
+ def categorize(score):
40
+ if score >= 6:
41
+ return "High Risk"
42
+ elif score >= 3:
43
+ return "Moderate Risk"
44
+ else:
45
+ return "Low Risk"
46
+
47
+ df["risk_category"] = df["risk_score"].apply(categorize)
48
+
49
+ # Summary output
50
+ counts = df["risk_category"].value_counts().to_dict()
51
+
52
+ summary = f"""
53
+ # Medicaid Risk Stratification Results
54
+
55
+ ### **Member Count by Risk Group:**
56
+ - High Risk: **{counts.get("High Risk", 0)}**
57
+ - Moderate Risk: **{counts.get("Moderate Risk", 0)}**
58
+ - Low Risk: **{counts.get("Low Risk", 0)}**
59
+
60
+ ---
61
+
62
+ ### **Method Summary**
63
+ This risk stratification uses:
64
+ - Chronic disease counts
65
+ - ED and inpatient utilization
66
+ - Annual cost
67
+ - Pharmacy use
68
+ - Behavioral health indicator
69
+ - Social risk
70
+ - Member age
71
+
72
+ A risk score ≥ 6 indicates **High Need** for care management outreach.
73
+
74
+ Upload another file to re-run the analysis.
75
+ """
76
+
77
+ return summary
78
+
79
+
80
+ with gr.Blocks() as demo:
81
+ gr.Markdown("""
82
+ # Medicaid Risk Stratification Tool
83
+ Upload a Medicaid member dataset to calculate risk scores.
84
+
85
+ ### Required CSV Columns:
86
+ `member_id, age, chronic_conditions, ed_visits_past_year, inpatient_admissions, total_cost, behavioral_health_flag, pharmacy_rx_count, social_risk_score`
87
+ """)
88
+
89
+ file = gr.File(label="Upload Medicaid CSV")
90
+ output = gr.Markdown()
91
+
92
+ file.upload(risk_stratify, file, output)
93
+
94
+ if __name__ == "__main__":
95
+ demo.launch(share=True)
requirements.com ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ pandas
2
+ gradio>=4.0.0