The Patient Timeline Format
Status: concept, demonstrated — the exact format used throughout the synthetic prototype.
Every patient PRISM considers is a single markdown table with six columns, and that table is the only thing any PRISM model ever sees — in training and at inference, with no exceptions. There is no metadata channel, no side input, no instruction prompt describing the task: the table is the whole world, and continuing it is the whole job.
The fixed header
Every example, whether a training sequence or a live prompt, begins with the same two-line header:
| PERSON | WHEN | WHERE | WHO | WHAT | WHY |
| ------ | ---- | ----- | --- | ---- | --- |That header is 28 tokens and never varies. In the running system it is served from a single database view and cached rather than being hard-coded anywhere, so the one definition lives in exactly one place — the same discipline applied to every other supposedly-fixed value in the pipeline, because supposedly-fixed values have changed before.
Everything after the header is one medical event per row, in date order, until the history runs out. A model's continuation starts at that point and consists of nothing but more rows.
The six columns
| column | contents | example |
|---|---|---|
| PERSON | age and sex, nothing else | 34 female |
| WHEN | date of the event, ISO format | 2023-04-17 |
| WHERE | place of service, a POS- code | POS-81: Independent Laboratory |
| WHO | provider taxonomy, a NUCC- code | NUCC-207Q00000X: Family Medicine |
| WHAT | the procedure, product, or medication | CPT-82197: Serum veladrin / regulatory-mineral ratio, quantitative |
| WHY | diagnosis code or codes, ;-joined | ICD-E27.A4: Suspected mineralocorticoid-axis dysregulation |
WHAT carries procedures as CPT-, HCPCS-, or PCS- codes (the last drawn from ICD-10-PCS), and medications in a composite form — ATC-{atc}-{rxcui}: {name} [#units DS:days], as in ATC-C03DZ01-211582: veladrostat 12.5 MG Oral Tablet [#90 DS:90] — that names the drug class, the specific product, the quantity dispensed, and the days of supply in one field. Every code is paired with its short human-readable description, which is what lets a language model bring its pre-trained understanding of medical vocabulary to bear instead of memorizing opaque identifiers. The code systems themselves — what they are, why they are finite, and why models already know them — are covered in Standardized Codesets.
The WHAT and WHY examples above are fabricated codes from Primary Veladrin Excess, the prototype's invented condition; they sit deliberately outside every real codeset, but they wear the exact format that real codes do.
What PERSON deliberately leaves out
PERSON is age plus sex and nothing more. Earlier designs carried a three-part age/sex/location field; location was dropped for the prototype because the working assumption is a single-state client, and a column that reads identically in every row of every patient encodes nothing. It can return for a deployment that genuinely spans regions with different practice patterns, but only if it earns its place.
Age progresses naturally down the timeline: a patient who is 34 female in April is 35 female in rows after her birthday. That progression is real signal — the clinical meaning of a test or a symptom shifts with age — and embedding it in every row means the model never needs date arithmetic to know how old the patient is right now. In production designs, age is computed as event year minus birth year, so an exact birthdate never exists anywhere in the data; the prototype's synthetic patients had nothing to protect, but the format is built for the day the patients are real. What else PRISM structurally never knows about a patient is the subject of Anonymous by Architecture.
Why a markdown table
Three properties, in rising order of importance. First, the format is human-readable: anyone can open a timeline, or a model's continuation of one, and simply read it — no decoder, no schema, which matters constantly for validation and debugging. Second, it is native to language models: markdown tables saturate pre-training corpora, so the structure costs the model nothing to learn and little to maintain.
Third, and decisively: a markdown table has no closing syntax. JSON ends with a bracket; XML ends with a closing tag; both give a model a grammatically natural place to consider the sequence finished and emit an end-of-sequence token. A markdown table just stops — another row is always grammatical. PRISM bans the end-of-sequence token outright at inference, because a model allowed to stop would be read as predicting "no need," and the format cooperates with that ban instead of fighting it: there is no terminator to reach for.
Newline discipline
Every complete row ends with a newline — including the final row of every prompt and every training sequence — and so does each of the two header lines. The newline is the row boundary, and keeping it strict does real work: a prompt that ends at a row boundary makes the model begin a fresh row rather than complete a truncated one, and a continuation splits cleanly into events by splitting on newlines. One character of discipline keeps both generation and parsing unambiguous.
What models never see
The table above is exhaustive: six columns in, rows of the same six columns out. Several things that exist around the data never enter it.
| never model-visible | what it is | where it lives |
|---|---|---|
| construction marks | SIGNAL / IMPACT / TEST / EARLY / LATE labels that slice timelines into training material | Primary Veladrin Excess |
| pool assignment | which of the disjoint training populations a patient belongs to | Pools and Consensus |
| patient identifiers | any key linking rows to a person — names, member IDs, or internal record numbers | Anonymous by Architecture |
The marks deserve the emphasis: they are bookkeeping that decides which slices of which timelines become training examples, and no trace of them survives into anything a model reads. A model that fires does so because it recognized a pattern in ordinary-looking rows, not because anything flagged them.
The exclusions also state the format's honest limits. This is a claims history, not a chart: it records that a test was billed, never what the test found; there are no lab values, no vital signs, no clinical notes. PRISM's anonymity guarantees and its recall-not-prediction posture both depend on exactly that poverty of input — the format sees enough to notice a pattern worth checking, and structurally cannot see enough to pretend to a diagnosis.
See also
- Standardized Codesets — the code systems behind WHERE, WHO, WHAT, and WHY
- Anonymous by Architecture — what PRISM structurally never knows
- Sequence Completion — continuing the table as the entire task
- Recall, Not Prediction — the EOS ban and why silence is not clearance