ADR 0007 — Five Stitch modules are mobile role shells
Status: accepted
Date: 2026-09-19
Supersedes: ADR 0004 on client placement
Context
AFIA-resources/design.txt lists five Stitch projects as peers: Patient, Médecin, Admin, Imagerie, Laboratoire. ADR 0004 put Admin (and maybe imaging or lab) on web because afia-web omits an Admin card. That was an inference from marketing copy, not from the resource list. The operator corrected it. All five designs are mobile.
Decision
One Flutter binary (afia-app) hosts five role shells. One shell per Stitch module.
| Stitch module | Role shell in afia-app |
|---|---|
| Patient | presentation/patient/ |
| Médecin | presentation/clinician/ |
| Admin | presentation/admin/ |
| Imagerie | presentation/diagnostics/ with kind=IMAGING |
| Laboratoire | presentation/diagnostics/ with kind=LAB |
afia-web stays landing plus legal pages. It is not an admin console and not an imaging or lab worklist.
Role gates the shell. A PATIENT session does not open Admin, Imagerie, or Laboratoire screens. That is authorization, not a second client.
Still one store listing. Still one /app-version. Still one API.
Consequences
- Privileged admin UI ships in the consumer binary. Hide it behind the
ADMINrole. - Imaging and lab stay mobile worklists that share
diagnostics. - ADR 0004's "admin later as web" path is closed unless a later ADR reopens it.