- Shipped
- August 25, 2026 at 10:05 PM UTC
- Author
- kamo
- Commit
- a3b531e
The composer changes shape once a note is signed, and that is the whole design. Before signature it is a text area that autosaves. After signature the text area is GONE and the only ways forward are an addendum or an amendment — because a signed note is a legal record, and an edit box on one invites exactly the thing that makes a chart indefensible: a record that cannot show what it used to say is not corrected, it is altered. The attestation is shown in full before Sign, not behind a tooltip. A signature on text the signer never read is worth nothing. The draft is flushed to the server first, because signing a note whose last four seconds never arrived attests to text the record does not have. The three amendment kinds are chosen explicitly with their consequence written beside each one. An addendum leaves the note standing; an amendment corrects it and keeps the original readable; a §164.526 patient amendment records a disagreement that enters the record whether or not the clinician agrees. They are different legal instruments and the UI says so at the moment of the choice rather than in a help page. Autosave writes a new VERSION rather than overwriting, including for drafts, and the version list shows the superseded ones — that is what lets a correction be shown as a correction. It also saves on unmount: a clinician who navigates away mid-sentence has lost that sentence otherwise, and they will not type it again the same way. The visits panel renders "chart open" and "chart closed" as different states, because they are different facts usually days apart. Everywhere else a finished visit and one whose documentation was never completed look identical, which is precisely why practices carry weeks of unclosed encounters without noticing. Closing refuses while a note is unsigned, and the server's refusal text is shown as-is: it names the reason, and a generic "could not close" would send the clinician looking in the wrong place. Timestamps render in the MEMBER's zone via useFormatters, not the browser's. A clinician covering a practice in another state sees that practice's clock everywhere else in this app, and a save time that disagrees with the note's own signed-at reads as a bug rather than a timezone. The visits tab mounts only when opened: it loads a patient's whole documentation history, and paying for that on every chart open makes the common case slow for the sake of the uncommon one.