deepecg-webapp2 / streamlit_app.py
JuryMD's picture
Create streamlit_app.py
bdf752c verified
import streamlit as st
import numpy as np
from inference.model import run_inference
st.set_page_config(page_title="DeepECG PDF Demo", layout="centered")
st.title("🩸 DeepECG – PDF Analyse (Demo)")
st.markdown(
"""
**Hinweis:**
Diese Demo analysiert EKG-PDFs zu Evaluations- und Forschungszwecken.
Kein Medizinprodukt. Keine Patientendaten speichern.
"""
)
uploaded_file = st.file_uploader(
"📄 EKG-PDF hochladen",
type=["pdf"]
)
if uploaded_file is not None:
st.success("PDF erfolgreich hochgeladen")
if st.button("🤖 Analyse starten"):
with st.spinner("Analyse läuft … bitte warten"):
# Placeholder: generiere Dummy-Signal für 12 Ableitungen mit 5000 Samples
dummy_signal = np.random.randn(12, 5000)
results = run_inference(dummy_signal)
st.subheader("📊 Ergebnis")
st.metric(
label="Gesamtrisiko",
value=f"{results['risk_score']} %"
)
st.subheader("Top-Diagnosen")
for d in results["top_diagnoses"]:
st.write(f"- {d['label']} ({d['probability']} %)")
st.subheader("🚦 Einschätzung")
# Zeige Interpretation als Erfolg/Warnung/Fehler basierend auf Risiko
risk = results['risk_score']
if risk < 40:
st.success(results["interpretation"])
elif risk < 70:
st.warning(results["interpretation"])
else:
st.error(results["interpretation"])
st.subheader("📈 Beispiel-EKG (Lead I)")
st.line_chart(dummy_signal[0])