diff --git a/docs/specs/voice-treatment-entry/spec.md b/docs/specs/voice-treatment-entry/spec.md index 396b261..3bb3f3c 100644 --- a/docs/specs/voice-treatment-entry/spec.md +++ b/docs/specs/voice-treatment-entry/spec.md @@ -498,12 +498,17 @@ that justified this whole design. - any row carrying an unresolved item or an incomplete prosthesis map. - Unresolved items are shown with what was heard ("دندان شیری — بازشناسی نشد"), so the clinician can see what the system did not understand. -- **The sheet is a contract: confirm fills exactly what it previewed — no more.** Per-detail - conveniences that would top the case up afterwards are suppressed for a voice-created - case; concretely, the dispatch panel's remembered-prosthesis default - (`previewConfirmedCaseIds`). A default that quietly adds a prosthesis type to a tooth the +- **The sheet is a contract: confirm fills exactly what it previewed — no more.** Any + per-detail convenience that would top the case up afterwards has to be suppressed for a + voice-created case, because a default that quietly adds a prosthesis type to a tooth the sheet never mentioned turns the confirmation step into a lie about what it was going to - do, which is the whole reason the step exists. + do — which is the whole reason the step exists. + + > This branch carried an exemption for one such default, the dispatch panel's + > remembered-prosthesis auto-fill. `origin/master` deleted that feature outright + > (`f52ad6b`), so the exemption went with it in the rebase and nothing enforces this rule + > in code today. It is a constraint on whatever gets added next, not a description of + > something that exists. - An item that carries `candidates` renders them as **tappable chips** — the one place the sheet is interactive. Picking one folds the tooth into the result (`withChosenTeeth`) and ticks the teeth row, so an under-specified tooth is one tap from resolved instead of a @@ -741,10 +746,8 @@ enabling this for real clinics. confirm with a lab ticked → no error toast: confirm detects the preview treatment and skips the lab-case save rather than posting an id the server has never seen; - **dictate two different prosthesis types** ("۱۲ روکش PFM، ۱۳ روکش PFZ") → the form shows - both, and the dispatch panel's remembered "last type for this lab" does **not** overwrite - either. Also check the bulk «اعمال برای همه دندان‌ها» select stays on its placeholder; - - **a hand-made prosthesis detail with an empty map** → still gets the remembered default - pre-filled. The exemption is for previewed cases only, not a removal of the convenience. + both, and the bulk «اعمال برای همه دندان‌ها» select stays on its placeholder. Nothing may + rewrite a per-tooth type the sheet already showed. ---