KrinosAI — Use Case Specification
Template ID: TPL-02-02 | Stage: 02-Requirements | Version: 0.3
Record: KAI-VORAL-UCS-001 — retrospective draft for Visionary Oral. Not approved.
Purpose: Specify one interaction between an actor and the system in enough detail to derive requirements and tests.
Required inputs: PRD journeys and capabilities; personas.
Document control
| Field |
Required entry |
| Document ID |
KAI-VORAL-UCS-001 |
| Template used |
TPL-02-02 Use Case Specification v0.3 |
| Product / project / software version or commit SHA |
VORAL (Visionary Oral) / PRJ-001 / a6b4429e3165 (branch app_dev of AI-Dental-Project/Visionary_Oral) |
| Record status and version |
Draft v0.1 |
| Author / technical reviewer / quality reviewer |
Claude Code (drafted with Claude Code for KrinosAI) / Tech Lead (name to be assigned) / Security & Privacy Officer (name to be assigned) |
| Created / updated / approved dates |
2026-10-27 / 2026-10-27 / Pending |
| Applicable SOP and revision |
SOP-LC-02 v0.3 |
| Related issue, commit, requirement and evidence links |
KAI-VORAL-BRF-001, KAI-VORAL-IRS-001, KAI-VORAL-CHR-001, KAI-VORAL-DEC-001; KAI-VORAL-SRS-001 |
| Approver and decision record |
Pending |
Applicability and evidence baseline
Product / system boundary: Web app and API (dentalapp/), doctor/admin mobile app (mobile/), PDF Lambda (dentalapp/pdf-lambda/) at a6b4429e3165, and the external services they call (see KAI-VORAL-IRS-001).
Related approved requirements, risks and change records: None approved. Related drafts are listed in document control.
Retrospective record? Yes — follows the Retrospective Documentation Protocol (KrinosAI lifecycle pack, 05-References/). Items are labelled Observed (code or Git at a6b4429), Measured (dated run), Stated (named person, dated) or Not recorded. Use case UC-01 "Take a scan and give the patient a report" describes the mobile flow as implemented.
Acceptable evidence: an implementation reference (file:line at a commit SHA), a dated test record, a signed decision, a vendor agreement, or another independently verifiable artifact. Never invent approvals, clinical results, measurements or performance data.
1. Actors permissions and goals
| Actor |
Role / permission |
Goal |
| Doctor (PER-01, PER-02) |
Authenticated, active doctor; owns the patient |
Capture a scan and produce a report |
| System |
Backend + on-device models |
Store photos, analyse, render report |
| ML service / AI vendors |
External |
Server-side detections and text |
2. Trigger and preconditions
| Use case |
Trigger |
Preconditions |
| UC-01 |
Doctor taps "New scan" on a patient |
Doctor signed in, account active and not suspended (REQ-003); patient exists (REQ-010); camera permission |
3. Normal interaction steps
| Step |
Actor / system |
Action |
Observable result |
| 1 |
Doctor |
Reads instructions for the front view, opens the camera |
Guide frame shown |
| 2 |
Doctor |
Captures the photo |
Quality check result shown (REQ-013) |
| 3 |
Doctor |
Accepts; repeats for upper and lower jaw |
Each photo saved to the phone (REQ-014) |
| 4 |
System |
Runs detectors on the phone; uploads photos in the background |
Progress shown (REQ-017, REQ-018, REQ-015) |
| 5 |
System |
Sends findings to the backend |
Findings stored on the scan (REQ-019) |
| 6 |
System |
Shows the report |
Same report every time it is opened (REQ-022) |
4. Alternate and exception flows
| Flow |
From step |
Condition |
System behavior |
| A1 Retake |
2 |
Photo fails quality minimums |
Asks for a retake (REQ-013) |
| A2 Offline |
4 |
No backend reachable |
Photos stay queued; report drawn from the phone (REQ-011, REQ-027) |
| E1 Detector timeout |
4 |
A detector step exceeds 120 s |
Photo marked failed; report says it could not be analysed (REQ-018) |
| E2 Suspended mid-flow |
Any |
Account suspended |
Account-suspended screen (REQ-003, REQ-004) |
5. Outputs and records modified
| Output |
Stored in |
| Scan photos |
Phone storage, then Cloudflare R2 |
| Scan document with findings |
MongoDB scans |
| Report PDF |
Phone (mobile) / S3 via Lambda (web) |
6. Privacy safety and abuse cases
| Case |
Mitigation |
REQ |
| Report attached to the wrong patient |
Scan session bound to patient ID at capture |
REQ-010 |
| Photos left on a lost phone |
Proposed (Claude Code, for confirmation): phone caches expire after 30 days and are wiped on suspension; app data protected by the OS secure storage (retention / device protection) |
REQ-035 |
| Anonymous access to photos |
Owner/token checks |
REQ-036 |
7. Acceptance evidence
| Flow |
AC / TC |
| Normal flow |
AC-01, AC-02, AC-03 (KAI-VORAL-ACR-001); test cases in stage 07 — OPEN-032 |
| A2 Offline |
AC-04 |
| E2 Suspended |
AC-05 |
Open issues and decisions
| ID |
Specific gap or decision |
Responsible owner |
Due date |
Blocks gate? |
Evidence required |
Status |
| OPEN-001 |
Tracker project ID, named requester and sponsor, and named reviewers are not recorded |
Product Owner |
2026-11-10 (proposed) |
Yes |
Tracker entry; names with roles |
Open |
| OPEN-029 |
No retention or deletion periods for patient data, photos, reports, backups or phone caches |
Security & Privacy Officer |
2026-11-30 (proposed) |
Yes |
Retention schedule in the DPIA |
Open |
| OPEN-032 |
Design (DES) and test (TC) links for requirements are added by stages 03 and 07; requirements without them stay open |
Tech Lead |
2026-12-15 (proposed) |
No |
RTM with DES and TC links |
Open |
Review and approval
| Review role |
Named individual |
Decision |
Date |
Signed / controlled record |
| Author |
Claude Code (drafted with Claude Code) |
Draft |
2026-10-27 |
This file at the commit that adds it |
| Technical reviewer |
Tech Lead (name to be assigned) |
Pending |
Pending |
Pending |
| Quality / regulatory reviewer (if applicable) |
Qualified regulatory reviewer (name to be assigned) |
Pending |
Pending |
Pending |
| Authorized approver |
Product Owner (name to be assigned) |
Pending |
Pending |
Pending |