Printed output
Paper is the one output that leaves the system completely. Nothing on it opens, expands, refreshes or explains itself; it is read by people who have no access to the software that made it, sometimes years later, and it does not know that the record has moved on without it.
Every page carries the patient's identity and its own place in the set — page n of m — because a sheet that separates from its stack and cannot be identified is a sheet that gets filed in someone else's record.
And: a printout is a snapshot with no update path. It says when it was taken, so that a reader knows the record may have changed since — which it almost certainly has.
Why this page exists
Seventeen pages in this system had already argued that something must "survive a printout" — a finding statable in words, a machine-composed disclosure, a regulatory symbol, an alarm priority legible without colour. Printing was doing a great deal of argumentative work and had never been specified, which made those arguments assertions about a thing that did not exist.
This page specifies it, and `assets/njt-ds.css` now implements it. The two are meant to be read together: the rules below that CSS cannot enforce — identity on every page, a print timestamp, a filtered extract declaring its filter — are the manufacturer's to build.
Identity, on every page
Paper records have carried an identifier on every sheet for a century, and the reason is unchanged: sheets separate. They fall out of folders, get photocopied in batches, are handed across a desk in pieces, and get scanned back in out of order.
- The identity strip repeats on every page, not only the first. CSS cannot repeat a block element across pages, so the application produces it per page. The stylesheet only guarantees that it is never split across a page break.
- Page n of m, always. Without the denominator a reader cannot tell a complete document from one missing its last two sheets, which is the same argument Badge makes about counts and Filter makes about lists.
- The identity is the full one — name, identifier and date of birth, per Patient header. A running header carrying only a surname is the near-match problem in its most durable form.
- Nothing that identifies a patient is abbreviated to fit. If it does not fit, the margin is wrong.
A snapshot, and it says so
The most print-specific hazard in clinical software: paper does not update. A printed observation chart is correct at the moment the button is pressed and is quietly wrong from then on, and nothing about its appearance changes to reflect that.
Handover brief · Page 2 of 3
Printed 17 Aug 2027 07:12 by K. Osei · the record may have changed since this was printed
Covers 15 Aug 08:00 – 17 Aug 06:30. Not carried: 3 nursing notes · 1 imaging report.
Four things, and each earns its line. What produced it, with a version that resolves to something published — per Labelling & identification, a version string identifying a build nobody outside the company can look up is decoration. Who printed it and when, because that is the moment the snapshot was taken. The staleness warning in words, since no reader infers it from a timestamp alone. And the scope, because a printed extract looks exactly like a printed whole.
What must reach the paper
Two rules from elsewhere in this system are, on inspection, print requirements that were written before the print rules existed:
- The machine-composed disclosure prints. Authorship & the record requires the mark to live in the text payload rather than the chrome, and gives the test — if selecting and copying the text removes the disclosure, there is no disclosure. A printout is the same test with a printer instead of a clipboard, and it is the version a reader is most likely to mistake for something a person wrote.
- A source binding names what it opens, in words. Composed output requires "obs 21:00" rather than a control labelled "source". On paper nothing opens at all, so the words are the whole of what survives — this is the case that rule was written for.
- A finding is statable without its overlay. Attribution's corollary, for the same reason: an attribution overlay prints as a grey smudge over anatomy, and if the finding was only expressible as a picture then the paper carries no finding.
- Regulatory symbols print black on white at their specified proportions, per Device identification panel. They already refuse to theme, which is why they need no special handling here.
Assume greyscale
Most clinical printing is monochrome, and a colour printer with an empty cartridge is monochrome without warning. So the greyscale pass in the accessibility checklist is also the print pass — the same defect, found twice.
- Alarm priority is carried by its text label, which is filled and keeps its ink. IEC 60601-1-8 expects priority to survive a monochrome display; paper is that display.
- No state is distinguished by hue alone — not selection, not validity, not changed-versus-unchanged, not a series in a chart. Series are directly labelled, per Data visualisation.
- Product surfaces print light regardless of theme. Printing a dark theme verbatim lays a solid block of ink behind pale text, which on a low-toner printer produces exactly the wrong failure: the background survives and the text does not.
What cannot be printed, and what to do instead
Anything whose meaning depends on being live is either resolved into a statement or omitted with a note. Printing it verbatim produces a page that asserts something false.
| On screen | On paper |
|---|---|
| A progress indicator | Omitted. It measured something that finished, failed, or is still running — none of which a bar on paper can express. |
| A pending result | Printed as "Pending at 07:12", with the time. Not as a blank, and not as a result. |
| An unacknowledged alarm | Printed with its state and time — "Unacknowledged at 07:12". Never printed as though it were handled, and never silently dropped because it looked like chrome. |
| A collapsed section | Printed open. There is no control to expand it, so a collapse on paper is a deletion. |
| A tooltip | Nothing. Its content was never permitted to be load-bearing, per Tooltip — printing is where that rule pays out. |
| An interactive control | Omitted, unless the reader needs to know it existed — a signature block is printed because someone signs it by hand. |
States
| State | Rendering |
|---|---|
| Complete document | Identity and page n of m on every page; provenance and print timestamp in the footer. |
| Extract or filtered view | States the filter and what it excluded, on the paper. A printed extract is indistinguishable from a printed whole, and the reader has no control to clear the filter and find out. |
| Uncommitted draft | Marked as a draft that is not in the record, on every page, and the mark is structural rather than a watermark — a pale diagonal watermark is the first thing a low-toner printer drops. |
| Redacted or role-limited | States that content was withheld and by what rule, per Acting for someone else. A printout missing sections silently is a printout that reads as a complete record. |
| Outside validated scope | Carries the same withholding statement it carries on screen. Paper is where a qualified output is most likely to be read without its qualification. |
| Print failed part-way | The application says which pages reached the printer. A half-printed clinical document with no indication of where it stopped is worse than none. |
Who holds each rule
Printing is a rendering path, so more of it is held than most patterns — the print stylesheet is in the package. What is not held is anything about page breaks, which no component sees.
| Rule | Held by | Where |
|---|---|---|
| Nothing that identifies a patient is abbreviated to fit | Breadcrumb | No segment is ever truncated. The print stylesheet inherits that. Asserted: Breadcrumb: a real landmark holding an ordered list |
| Alarm priority is carried by its text label | Alert banner | Priority renders as a word on screen, so it prints as a word in greyscale. Asserted: AlertBanner: priority is in text, not only in colour |
| No state is distinguished by hue alone | Status chip | A chip cannot be rendered without its word. Asserted: StatusChip: the state is a word, not only a colour |
| A finding is statable without its overlay | Key–value | A measurement is text with a unit, which prints; a caliper on a canvas does not. Asserted: KeyValue: a quantity cannot be rendered without its unit |
| The identity strip repeats on every page; the identity is the full one | The implementer | Running headers are a print-CSS feature you set on your document. The print rules in assets/njt-ds.css handle product surfaces; a repeating identity strip is yours to add. |
| The machine-composed disclosure prints | The implementer | Whether the disclosure is in the document flow or in chrome that the print stylesheet hides is a markup decision you make. |
| A source binding names what it opens, in words | The implementer | Link text. On paper a link is only its text. |
| Regulatory symbols print black on white | The implementer | The ISO 15223-1 symbols are the one iconography exception here; how they are embedded decides how they print. |
| Product surfaces print light regardless of theme | The implementer | The print stylesheet forces it for every product surface in the package. A surface of your own that sets a dark background inline will print dark. |
| Print is an accessibility route, not only an archival one | The implementer | A stance about who prints and why. It holds nothing; it tells you what to test. |
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 10 rules, 4 are held by a component this package ships, and 6 are the implementer’s. Four held, six not. None of it has been run through an actual printer, which the status page says.
Do's and don'ts
Every page: R. Almeida · 4417-2295 · b. 1954-03-02 · page 2 of 3
A sheet that separates can still be identified and refiled. This is the oldest rule in paper records and it is older than the software for a reason.
Identity on page 1. Pages 2 and 3 carry only the content.
Two anonymous sheets. The failure is not that they are unreadable; it is that they are readable and attachable to the wrong patient.
Printed 17 Aug 07:12 by K. Osei — the record may have changed since this was printed.
Says the quiet part. A reader holding paper at 15:00 is told, in words, that they are looking at the morning.
17/08/2027
A date with no role. Is it the print date, the admission, the report? Nobody infers staleness from an unlabelled timestamp.
Filtered: medication events only. 34 other entries in this period are not shown.
The extract admits it is an extract, with the count. On screen the reader could clear the filter; on paper this line is the only route to that knowledge.
The filtered list, printed as it appeared.
Indistinguishable from the complete record, and it will be read as one — and filed as one.
CRITICAL — Potassium 6.8 mmol/L · unacknowledged at 07:12
The priority label is filled and keeps its ink, so it survives a greyscale printer with an empty colour cartridge.
Potassium 6.8 mmol/L (red text on screen)
Prints as ordinary black text among ordinary black text. The priority was the whole message and it did not make it onto the page.
Accessibility
- Print is an accessibility route, not only an archival one. Large-print output is how some readers use a system at all, so the stylesheet must survive the reader scaling it — nothing positioned absolutely, nothing depending on a fixed page height.
- Reading order on paper is DOM order. Any visual reordering done with grid or flex is undone in print, so a layout whose meaning depends on column order breaks — the same defect a screen reader hits, surfacing in a second place.
- Nothing is conveyed by colour alone — SC 1.4.1. The greyscale pass and the print pass are the same test.
- Contrast on paper is not the contrast on screen. Pale greys that pass 4.5:1 on a backlit display can vanish on a low-toner printer; body text prints at full black.
- Link destinations are written out in documentation printing, because a URL that cannot be followed and cannot be read is not a reference.
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.
- Effectiveness — the paper is attached to the right patient and read as what it is: a snapshot, possibly an extract, possibly composed by a machine. Every one of those is a fact the sheet has to carry itself.
- Efficiency — a document that does not have to be checked against the screen to be trusted, which is what a reader does with a printout carrying no provenance.
- Satisfaction — printing that works is invisible. It is noticed only when a page comes out unidentifiable, or a chart comes out as five identical grey lines.
Clinical safety notes
Trace these in your risk file (ISO 14971) and usability engineering file (IEC 62366-1). A printout is also a record leaving your control: data protection obligations apply to it and are outside the scope of this page. 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.
- Patient identity and page n of m on every page. (a test in your verification file) Mitigates: a separated sheet filed against the wrong patient, and an incomplete document read as complete.
- Print time, printer and a staleness statement in words. (a test in your verification file) Mitigates: a superseded snapshot acted on as current.
- The machine-composed disclosure reaches the paper. (a test in your verification file) Mitigates: composed text read as human-authored by someone who never saw the screen.
- Extracts, filters and redactions declare themselves. (a test in your verification file) Mitigates: a partial record indistinguishable from a whole one, with no control available to check.
- Priority and state survive greyscale. (held by Alert banner) Mitigates: an alarm printing as ordinary text among ordinary text.
- Live elements are resolved into statements or omitted. (a test in your verification file) Mitigates: a page asserting a state that was true for a second and is now false.
- Drafts are marked structurally, not by watermark. (a test in your verification file) Mitigates: an uncommitted document filed as a record because the watermark did not print.
- A failed print says which pages reached the printer. (a test in your verification file) Mitigates: a half-printed document with no indication of where it stopped.
Related
- Authorship & the record — the disclosure that has to survive the journey, of which printing is the hardest leg.
- Composed output — why a source binding names what it opens in words.
- Patient header — the identity that repeats.
- Filter — the extract that must declare itself.
- Accessibility checklist — the greyscale pass, which is also the print pass.
- NightBrief — the reference application, and the brief that gets carried to a ward round on paper.