Before the visit
A fictional record. Unknown context stays visible until someone reviews it.
Keeps a supplied patient identity, identifiers, and recorded context together in a responsive band.
A fictional record. Unknown context stays visible until someone reviews it.
Three ways in. They share one source, so the pixels match whichever you pick.
npm install @noorddev/vlak-react
// once, next to your app's root
import "@noorddev/vlak-react/css";
import { PatientBanner } from "@noorddev/vlak-react";Precompiled React and one stylesheet. No compiler to configure. Per-component imports work too: @noorddev/vlak-react/components/patient-banner.
npx @noorddev/vlak-cli add patient-banner
The StyleX leaf lands in components/vlak/, for your own compiler to own. See StyleX.
npx shadcn add https://vlak.dev/r/patient-banner.json
The same registry item, installed by shadcn's CLI.
<link rel="stylesheet" href="node_modules/@noorddev/vlak/css/vlak.css" />
No React. Link vlak.css and use the markup and classes below.
import { PatientBanner } from "@noorddev/vlak-react";
<PatientBanner patientName="Robin Ellis" identifiers={[{ id: "record", label: "Patient ID", value: "Demo 042" }]} contextItems={[{ id: "allergies", label: "Allergies", value: "Not reviewed" }, { id: "language", label: "Preferred language", value: "English, as recorded" }]} />A supplied patient identity and explicitly recorded context, without clinical inference.
| Prop | Type | Default | Description |
|---|---|---|---|
patientNamerequired | string | Caller-supplied identity. No age or other demographic values are inferred. | |
identifiers | readonly PatientBannerIdentifier[] | [] | |
contextItems | readonly PatientBannerContextItem[] | [] | |
identifiersEmptyLabel | ReactNode | "Identifiers not supplied" | |
contextEmptyLabel | ReactNode | "Patient context not supplied" | Missing context never means that no allergies or alerts exist. |
Also accepts HTMLAttributes<HTMLDivElement>.
| Keys | Does |
|---|---|
| None | Static identity and description lists add no keyboard stop. Any supplied child controls keep their native behavior. |
<div class="rs-patient-banner" role="group" aria-label="Robin Ellis"><p class="rs-patient-banner-name">Robin Ellis</p><dl class="rs-patient-banner-identifiers"><div class="rs-patient-banner-field"><dt class="rs-patient-banner-label">Patient ID</dt><dd class="rs-patient-banner-value">Demo 042</dd></div></dl><dl class="rs-patient-banner-context"><div class="rs-patient-banner-field"><dt class="rs-patient-banner-label">Allergies</dt><dd class="rs-patient-banner-value">Not reviewed</dd></div></dl></div>