AI-assisted breast cancer screening iOS app (Flutter + on-device ONNX + Gemma 4)
# Mwana-AI
AI-assisted breast cancer screening iOS app. Analyses breast ultrasound images entirely on-device — no patient data ever leaves the phone.
---
## Screenshots
Splash Screen
Model Setup
Original Ultrasound
Bounding Box Overlay
Grad-CAM Heatmap
> Heatmap screenshots are rendered from a synthetic test ultrasound via `dart run tool/test_heatmap.dart`. Full-workflow screenshots (analysis, cumulative report) require the on-device ONNX and Gemma models.
---
## What It Does
### Single-Image Workflow
1. Pick a breast ultrasound image — Camera, Photo Library, Files app, or **Butterfly iQ probe**
2. On-device ONNX inference classifies the image as **Benign / Malignant / Normal** and segments the lesion boundary
3. An ACR BI-RADS category (1 / 2 / 3 / 4A / 4B / 4C–5) is assigned
4. The segmentation mask is rendered as a colour overlay with a bounding box
5. Tap the image to open the **full-screen viewer** — toggle between Original, Bounding Box, and Grad-CAM Heatmap with pinch-to-zoom
6. On-device Gemma 4 generates a structured clinical report (falls back to a deterministic template if the model is not loaded)
7. Export the report as a PDF via the iOS share sheet
### Multi-Section Probe Workflow
When using the Butterfly iQ probe, the examiner captures **multiple breast sections** in a single session:
1. Connect the Butterfly iQ probe — the app authenticates automatically using the embedded client key
2. Capture Section 1, Section 2, … Section N (thumbnail strip shows all captured frames)
3. Tap **Analyse N** — the app runs sequential ONNX inference on every section
4. A **Cumulative Report** screen shows:
- Per-section BI-RADS classifications with sortable confidence bars
- Bounding box and heatmap thumbnails (tappable) for each section
- An overall worst-case BI-RADS banner; **"Most Concerning"** section badge only appears when sections genuinely differ
- AI-generated narrative from Gemma 4 covering all sections
- Editable report fields (Clinical Indi …