Spaces:
Sleeping
Sleeping
| 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]) | |