File size: 1,036 Bytes
ee1b868
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from __future__ import annotations

from .models import CaseClassification, DecisionOutput


def render_alert_banner(decision: DecisionOutput) -> str:
    if decision.classification == CaseClassification.SUSPECTED:
        icon = "🚨"
        label = "SUSPECTED EVD CASE ALERT"
    elif decision.classification == CaseClassification.PROBABLE:
        icon = "🚨"
        label = "PROBABLE EVD CASE ALERT"
    else:
        return ""

    evidence_lines = "\n".join(f"- {item}" for item in decision.evidence) or "- No evidence captured"

    return (
        f"{icon} **{label}**\n\n"
        f"**Evidence**\n{evidence_lines}\n\n"
        f"**Rule Triggered**\n{decision.triggered_rule}\n\n"
        f"**Recommended Action**\n{decision.recommended_action}"
    )


def render_classification_panel(decision: DecisionOutput) -> str:
    return (
        f"**Classification:** {decision.classification.value}\n\n"
        f"**Rule:** {decision.triggered_rule}\n\n"
        f"**Recommended Action:** {decision.recommended_action}"
    )