Clinical patterns

Composed output & the source that comes first

Every other output in this system announces itself as a claim. A number invites "is that right?". A flag invites "on what basis?". Well-formed prose invites nothing — it reads as already-checked, and the better the writing, the less of it gets read.

Stable · v1.0 NightBrief EU AI Act Art. 13 · Art. 14 WCAG 2.2 AA
The rule

Every clinically material assertion is bound to a source the reader opens in one action, and a sentence that cannot be bound is not shown.

The artefact also states, by category, what it did not carry — because omission is the one error re-reading will never reveal.

Scope

A composed artefact is a piece of prose assembled by software from record content, shown to a clinician as a unit. Handover briefs, discharge summaries, referral drafts. Single-turn, over a defined corpus, non-conversational.

Conversational assistants are held, not covered. Nothing here should be read as an argument that a chat interface over a patient record is a solved design problem; it is a different problem, and this system does not yet have defensible rules for it.

Deliberately technology-neutral. A rules-based template stitching sentences together has every problem on this page. An axis or a pattern named "is it a language model" would be the rules-versus-machine-learning mistake wearing a new hat.

Why the usual devices have no subject here

This system's defence against automation bias is anti-anchoring: withhold the machine's opinion until the reader has formed their own. Reader paradigm can do that, because a mark is a discrete object with an on and an off. Confidence disclosure can do it, because a number can be placed after the evidence.

Neither works on a paragraph. You cannot hide half a sentence, reveal a clause on demand, or put the evidence before a conclusion that arrives grammatically fused to it. The output is not enumerable and its assertions have no separable referents, which is exactly what output tractability was added to the register to name.

So the strategy inverts. Where the rest of this system delays the machine's output, here the interface has to do the checking work before display. It cannot rely on the reader's scepticism, because fluency is precisely the property that suspends it.

Source first

Each clinically material assertion carries a control that opens the record entry it rests on. One action — not a search, not "see notes", not a reference list at the bottom that the reader has to reconcile by hand.

A bound artefact
Composed by NightBrief v4.2 17 Aug 06:41 · not committed

Oxygen requirement fell from 4 L/min to 2 L/min across the shift obs 14:00 obs 21:00.

Antibiotics switched from intravenous to oral at 18:20 med 18:20, following the microbiology result reported that morning micro 09:12.

Pain score rose to 7 at 02:15 obs 02:15. No analgesia is recorded after that entry.

Not carried into this brief: 3 nursing notes · 1 imaging report (reported 22:40) · 2 messages. Open the 6 items

Composed text. Review before committing — you will be recorded as having accepted it, not as its author.

Three properties make a binding real rather than ornamental:

Withhold rather than compose

A sentence that cannot be bound is not shown. Not shown greyed. Not shown with an "unverified" tag. Not shown in a lighter weight. Not shown.

Note what is not available as a marker: the dotted underline already means the opposite on this page. It marks a binding — a sentence that does rest on something. A vocabulary in which one visual treatment means "checkable" and a neighbouring one means "unsupported" is a vocabulary that will be misread at 07:00, and the reason it will be misread is that the two states differ by a detail rather than by presence.

The obvious objection is that marking it would be more informative, and the objection is wrong for a specific reason: a hedge inside fluent prose is a footnote running against the momentum of the paragraph. The reader who most needs to stop — tired, at the end of a shift, twelve briefs to get through — is the reader least likely to. Every other pattern in this system that faced this choice made the same one: Confidence disclosure withholds outside validated scope rather than qualifying, because a qualified output is still an output and gets used like one.

What the reader gets instead is a count. Two assertions withheld is a fact the reader can act on — by going and looking — in a way that two hedged sentences are not.

The error with no surface

Everything else in this system fails by showing a wrong thing. This fails by not showing a right one, and the two look identical from the reader's chair. The incoming night team is competent but was not present: they can read anything put in front of them, and they have no way at all to notice what is missing.

So the artefact declares an omission budget by category: what kinds of record content were in scope, and how many items of each did not make it into the text, with a control to open them.

Omission notice — the whole point is the counts

Covered: observations, medication changes, results, clinical notes, 15 Aug 08:00 – 17 Aug 06:30.
Not carried: 3 nursing notes · 1 imaging report (reported 22:40, after the composing window) · 2 messages.
Not available: theatre record — system unreachable at 06:41.

Two rules keep this honest:

No score on the whole thing

Confidence disclosure already forbids aggregating confidence across findings, on the grounds that a single case-level confidence is not a meaningful quantity. The consequence here is worth stating plainly, because the temptation is strong and the pattern is common: a composed artefact never carries an overall reliability score — no percentage, no quality star, no "high confidence" banner. There is no calibrated quantity to report. Per-assertion bindings are the substitute, and they are better, because they let the reader check the parts, which is the only checking that means anything.

Nor does the text appear progressively. Token-by-token streaming is read as it is produced — the reader has finished the first paragraph before the bindings exist and long before the omission notice does, which means the artefact's entire checking apparatus arrives after the reading is over. It also performs thinking, which is a claim about the software that nobody has verified. Show a wait state, then show the finished artefact.

States

StateRendering
Composing A wait state with what is being read and roughly how long, per Progress. No partial text, ever.
Composed The whole artefact, every assertion bound, omission notice above the prose in reading order.
Composed with withholdings As above, plus a count of assertions dropped for want of a source. The count is stated; the sentences are not.
Not composed — corpus incomplete Named systems that could not be read, and no prose. A brief missing the theatre record is not a partial brief, it is a misleading one.
Not composed — outside scope A stated reason and a route to the record. The same refusal as Confidence disclosure: withhold rather than extrapolate.
Nothing to compose "No qualifying entries in the period" with the period stated — an Empty state that proves it looked, not a blank panel.

Who holds each rule

Composed output is prose with bindings to its sources. The package holds the shape of a wait and the shape of an absence; it holds nothing about the prose.

RuleHeld by Where
The wait state announces politely, and does not claim to know how longActivity An indeterminate indicator with no value on its type, announced as busy.
Asserted: Activity: no value, and none can be passed
Unreachable is not the same as emptyKey–value An unreachable source is a stated absence with a reason, not a blank. The same union Search uses to refuse “0 results” for a failed index.
Asserted: KeyValue: outside-scope carries its reason
The count is never zero by roundingBadge A count is exact. It also cannot be capped, which is the same discipline from the other end.
Asserted: Badge: an exact count, never capped
It names what it opens, in wordsComposed text A source is { id, label, href } and the link text is the label — “obs 21:00”, never “source”. What the label says is yours; that it is the link’s name is not.
Asserted: ComposedText: every binding is a link with the source's own label, and two sources say so
An assertion from more than one source binds to all of them, and says soComposed text sources is a tuple; a sentence with more than one renders “from n sources” before the links. Which sources belong on the sentence is your composer’s logic.
Asserted: ComposedText: every binding is a link with the source's own label, and two sources say so
A binding to the composer’s own earlier sentence is not a bindingComposed text A source is a record reference with an address; a sentence has no address and is not a RecordSource. Self-citation is unwritable, and so is an unbound sentence: the only alternative to bound is withheld.
Asserted: ComposedText: an unbound sentence and a self-citation are unwritable
The omission notice precedes the prose in DOM orderComposed text omissions is required and renders before the first paragraph, with withheld sentences counted into it.
Asserted: ComposedText: the omission notice precedes the prose and counts by category
Bindings are links with accessible names; underlined, not coloured or boxedComposed text Each source is an <a> named by its label, underlined in the running colour.
Asserted: ComposedText: every binding is a link with the source's own label, and two sources say so
Bound and unbound text are not distinguished by colourComposed text There is no unbound text on the surface to distinguish: a sentence without a source is withheld and counted, never rendered.
Asserted: ComposedText: an unbound sentence and a self-citation are unwritable
The artefact is a document, not a widgetThe implementer Architecture. Whether it prints, copies and survives a lost bundle is a property of how you build it.
Bindings take the inline exemption to SC 2.5.8The implementer Only if they are inline in prose, which is your markup.
Why this is written down

A pattern page has no component underneath it, so a rule stated here is held by whoever builds against it unless a component already holds it. Of these 11 rules, 3 are held by a component this package ships, and 8 are the implementer’s. Three held, eight not. Every rule about binding — the thing this pattern exists for — is in the composer, and the composer is not here.

Do's and don'ts

Do

Oxygen fell from 4 L/min to 2 L/min obs 14:00 obs 21:00

Both readings the claim rests on, each openable in one action. The reader can check in seconds, so they do.

Don't

Oxygen fell from 4 L/min to 2 L/min source: record

Points at everything, which is to say nothing. Checking it means the search the binding was supposed to replace.

Do

Not carried: 3 nursing notes · 1 imaging report (reported 22:40) · 2 messages.

The reader knows the shape of the gap and can decide whether to go and look. Counts, not adjectives.

Don't

Summary complete.

Asserts coverage the composer cannot establish, and closes the only question the reader should have been asking.

Do

2 assertions withheld — no supporting entry found. Show what was searched

An actionable fact. The reader goes and looks, which is the behaviour the ungrounded sentence would have prevented.

Don't

Patient appeared comfortable overnight. (unverified)

The sentence is in the reader's head before the tag is. Tired at 07:00, it is a note in the margin against the pull of the paragraph.

Do

Reading 4 systems… then the whole brief, at once.

Nothing is readable until everything that governs how to read it exists.

Don't

Prose appearing word by word.

The reader finishes paragraph one before the bindings or the omission notice exist. It also performs deliberation nobody has verified.

Accessibility

Outcomes of use

What this contributes to, in the terms of Usability & context of use. These are attributes believed to contribute to an outcome; the outcome itself is settled by observing real use in a specified context, not by this page.

Clinical safety notes

Risk controls this pattern specifies, and what checks each

Trace these in your risk file (ISO 14971) and usability engineering file (IEC 62366-1). Each bullet says what checks it: a component that holds the rule, a test in your verification file, deployment configuration, post-market surveillance, or a design review where no test can see it. A control checked by nothing is a sentence.

NotJustAnyMed.Tech Design System · Composed output & the source that comes first · v1.0 · draft for review
Reference applications named in this system are fictional, as are all patients, timestamps and record entries shown above.