🥗 OmiScan v0.2 · Flows
← Demo map 📱 Mobile 🖥️ Dashboard ⚙️ CMS

🔀 User Flows — 3 luồng nghiệp vụ chính

Storyboard từng bước với mini-screen của các luồng quan trọng nhất: cán bộ chụp 1 sản phẩm, P2 review queue, P3 publish rule pack mới.

F-M02 Capture 1 sản phẩm F-D01 P2 Review queue F-C01 P3 Publish rule
F-M02

Chụp 1 sản phẩm — Happy path

Cán bộ Viện DD đứng tại siêu thị, chụp 4 ảnh 1 sản phẩm bánh mì. AI on-device trích xuất, validate sơ bộ, đẩy lên server. Tổng thời gian < 90 giây.

Người thực hiện: P1 Cán bộ khảo sát (Anh Tuấn) · Thiết bị: iPhone 15 Pro
1
Mở app, nhấn "Chụp"
S-M03
9:41📶 📡 🔋
Xin chào, Anh Tuấn 👋
12
Chụp
11
Đạt
1
Chờ
Tháng 5/2026
45 sản phẩm
📷 Chụp sản phẩm mới
🏠📷📋🔍👤

Cán bộ thấy tổng quan ngày + nút lớn "Chụp sản phẩm". Tap nút → mở camera.

2
Quality gate báo mờ
S-M04
9:41📶 📡 🔋
● Mờ ● Sáng ● Nghiêng ● Đầy
⚠️ Ảnh mờ. Giữ máy chắc

Camera preview hiện 4 indicator. Blur đỏ → reason text "Ảnh mờ", nút Chụp disabled.

3
Chỉnh tư thế, chụp OK
S-M04
9:41📶 📡 🔋
● Mờ ● Sáng ● Nghiêng ● Đầy
🍞

Tất cả 4 indicator xanh → nút active → user chụp ảnh Front. App chạy M3 (Gemma 4 + ML Kit OCR) ~3s.

4
Sửa Natri (hallucinate)
S-M07
9:41📶 📡 🔋
← Sửa thông tin
Tên · 🟢
Bánh mì sandwich Staff
Năng lượng · 🟢
245 kcal
Đạm · 🟢
6.5 g
Natri · 🔴 Không chắc
320 mg → sửa 32
VLM=320 vs OCR='32 mg'
✓ Lưu và xem lại

Field Natri đỏ. User tap "Xem ảnh nguồn" → verify trên ảnh thực sự là 32 mg. Sửa, save.

5
Submit thành công
S-M08
9:41📶 📡 🔋
Đã gửi thành công!
OMI-...001234
⚠️ 1 cảnh báo
Natri cao so với WHO
📷 Chụp tiếp theo

Server validation chạy ~2s. Trả về 1 advisory "Natri cao theo WHO" — vẫn pass nhưng có note.

Ghi chú flow

F-D01

P2 review queue — buổi sáng thứ Hai

Chuyên viên xử lý dữ liệu Nguyễn Mai mở dashboard, review 28 submission flag từ tuần trước. Sửa OCR sai cho 1 submission, batch duyệt 23 cái.

Người thực hiện: P2 Chuyên viên xử lý data (Nguyễn Mai) · Thiết bị: Laptop, Chrome
1
Mở Queue Review
S-D05
app.omiscan.vn/queue
⚙ OmiScan
📦 Queue
189 cần xem
⏰ Cũ nhất 5 ngày
🍞 Bánh mì... mismatch
🍫 KitKat... low
🍫 Chocopie... halluc

P2 thấy queue 189 submission. Filter mặc định "pending_review", sort cũ trước. Click row đầu OMI-...001234.

2
Mở detail drawer + xem flag
S-D04
.../OMI-001234
Bánh mì sandwich Staff
⚠ Natri: VLM=320, OCR='32'
🍞
📋
📊
🏷️
Natri 320 mg [Sửa]
"Natri 32 mg"

Drawer hiện 4 ảnh + JSON + OCR raw text. P2 thấy ngay flag: VLM trả 320 nhưng OCR đọc "32 mg".

3
Verify ảnh nguồn → sửa
S-D04
Sửa Natri
[Ảnh nutrition cận]
32 mg
mg
✓ Lưu thay đổi

Click "👁 Xem ảnh nguồn" → bbox highlight chữ "32 mg". P2 confirm OCR đúng, sửa 320→32, chọn lý do.

4
Batch duyệt 23 cái
S-D06
Duyệt 23 submission
Bạn đang duyệt 23 submission. Sau khi duyệt:
✓ Chuyển sang "Đã duyệt"
✓ Audit log với tên bạn
☐ Email cho cán bộ chụp
Hủy
Xác nhận duyệt

P2 chọn 23 submission đã review xong → nút Bulk "Duyệt batch" → comment chung → Confirm. Audit log đầy đủ.

Ghi chú flow

F-C01

P3 publish rule advisory mới — sau khi WHO ra khuyến nghị

Chuyên gia dinh dưỡng Lê Anh tạo rule advisory cảnh báo natri cao (>600mg/100g) theo khuyến nghị mới của WHO. Trưởng phòng Hùng Phan approve. Mobile app áp dụng trong 6h.

Người thực hiện: P3 Cán bộ rule pack (Lê Anh) + P3.5 Approver (Hùng Phan) · Web CMS
1
Tạo rule mới
S-C04
+ Tạo rule mới
PREDICATE
sodium_mg >

P3 fill form: ID, severity, scope (thực phẩm + đồ uống), predicate sodium_mg > 600, message.

2
Preview test set
S-C05
Preview · 50 submission
PASS
46
FLAG
4
8% submission flag — bình thường
🥤 Pepsi Max — 525 mg
🍜 Mì Hảo Hảo — 720 mg ⚠

Hệ thống chạy rule trên 50 submission gần. 8% flag — không quá cao, OK submit approval.

3
Submit for approval
S-C06
Submit approval
✉ Gửi yêu cầu
P3.5 sẽ nhận email + notification

P3 chọn approver = Hùng Phan, write changelog, click Submit. Hệ thống gửi notification + email tới P3.5.

4
P3.5 review diff
S-C07
Diff: 2026.05.10 → 2026.05.11
+ {
+  "id": "VDD-WHO-...",
+  "severity": "advisory",
+  "predicate": {
+    ">": [{"var":
+     "sodium_mg"}, 600]
+  }
+ }
Reject
✓ Approve

P3.5 mở approval queue, xem diff +1 rule. Auto test: schema OK, syntax OK, perf 42ms, không cảnh báo. Click Approve.

5
Sign + push CDN
Auto
✓ Đã publish 2026.05.11
✓ Bump semver 2026.05.10 → .11
✓ Canonicalize JSON
✓ KMS sign ECDSA P-256
✓ Upload S3 packs/2026.05.11.json
✓ Update manifest.json
✓ CloudFront invalidate
✓ EventBridge rulepack.published
✓ Audit log entry
📲 Mobile sẽ pull trong 6h hoặc qua silent push

Backend tự: bump version, sign ECDSA P-256, upload S3, invalidate CDN, audit. Mobile app pull mỗi 6h.

Ghi chú flow

Đã xem qua các flow chính của OmiScan

Còn 4 SOP khác trong tài liệu Section 15.10 — em có thể visualize tiếp khi Anh cần.

CMS Về trang chủ