📋 Report text
🧪 Try a sample report
🩻
No report analyzed yet.
Paste a report on the left, or click a sample to see the triage engine in action.
Loading evaluation results…
🧠 How the engine works
- Section parser splits the report into clinical history, findings, impression and recommendation using radiology/pathology header conventions.
- Red-flag detector scans for ~70 curated clinical patterns (PE, stroke, hemorrhage, fractures, BI-RADS/Lung-RADS/TI-RADS scores, malignancy terms…) mapped to four urgency tiers.
- Negation & uncertainty engine (ConNeg-style) decides whether each finding is affirmed, negated or uncertain. "No pneumothorax" is never flagged; "cannot exclude PE" always is.
- Extractive summarizer builds the plain summary only from text present in the report — no invented content.
- Safety-gated LLM layer (optional) rewrites the summary into plainer language, then a faithfulness gate verifies every medical term it used is grounded in the source. If it drifts, the rewrite is rejected and the grounded extractive summary is shown instead.
🛡️ Safety design principles
- Conservative escalation: uncertain findings are escalated, never suppressed — missing a possible emergency is worse than over-flagging.
- Deterministic core: triage never depends on an LLM. The AI layer is cosmetic and gated.
- Explicit benign clearance dominates routine mentions (e.g., "nodule" in the history of a biopsy that came back benign).
- Input guards: prompt-injection patterns and malformed input are rejected before processing.
- Continuous evaluation: a 30-case labeled safety set measures tier accuracy, must-flag recall (sensitivity) and negation safety on every change — see the Safety evaluation tab.
This project is a capstone demonstration of clinical NLP with safety evaluation. It is not validated for clinical use and must not be used to make medical decisions.