JuryMD commited on
Commit
bdf752c
·
verified ·
1 Parent(s): de06d28

Create streamlit_app.py

Browse files
Files changed (1) hide show
  1. streamlit_app.py +53 -0
streamlit_app.py ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import numpy as np
3
+ from inference.model import run_inference
4
+
5
+ st.set_page_config(page_title="DeepECG PDF Demo", layout="centered")
6
+
7
+ st.title("🩸 DeepECG – PDF Analyse (Demo)")
8
+ st.markdown(
9
+ """
10
+ **Hinweis:**
11
+ Diese Demo analysiert EKG-PDFs zu Evaluations- und Forschungszwecken.
12
+ Kein Medizinprodukt. Keine Patientendaten speichern.
13
+ """
14
+ )
15
+
16
+ uploaded_file = st.file_uploader(
17
+ "📄 EKG-PDF hochladen",
18
+ type=["pdf"]
19
+ )
20
+
21
+ if uploaded_file is not None:
22
+ st.success("PDF erfolgreich hochgeladen")
23
+
24
+ if st.button("🤖 Analyse starten"):
25
+ with st.spinner("Analyse läuft … bitte warten"):
26
+ # Placeholder: generiere Dummy-Signal für 12 Ableitungen mit 5000 Samples
27
+ dummy_signal = np.random.randn(12, 5000)
28
+
29
+ results = run_inference(dummy_signal)
30
+
31
+ st.subheader("📊 Ergebnis")
32
+
33
+ st.metric(
34
+ label="Gesamtrisiko",
35
+ value=f"{results['risk_score']} %"
36
+ )
37
+
38
+ st.subheader("Top-Diagnosen")
39
+ for d in results["top_diagnoses"]:
40
+ st.write(f"- {d['label']} ({d['probability']} %)")
41
+
42
+ st.subheader("🚦 Einschätzung")
43
+ # Zeige Interpretation als Erfolg/Warnung/Fehler basierend auf Risiko
44
+ risk = results['risk_score']
45
+ if risk < 40:
46
+ st.success(results["interpretation"])
47
+ elif risk < 70:
48
+ st.warning(results["interpretation"])
49
+ else:
50
+ st.error(results["interpretation"])
51
+
52
+ st.subheader("📈 Beispiel-EKG (Lead I)")
53
+ st.line_chart(dummy_signal[0])