Gooseberry · Second Read

Every case gets a second read. Every claim shows its source.

The moment a note exists, Gooseberry re-reads the whole chart — vitals, labs, history, allergies, prescriptions, pathways — in the same six moves, every time. It says what it found, why, and quotes the exact row of the record it is quoting. Then a named clinician decides.

A deterministic second read from this patient’s chart data — not a diagnosis, and not a replacement for your judgment.

Gooseberry — Second Read
Murugan R.58 / M · UHID HRV-024815 · OPD · Dr. Priya
Run #4181 · waiting for the note
The chart it reads
  • Vitals · this visitBP 138/86 · HR 82 · SpO₂ 97%
  • Resulted labsK⁺ 6.2 · Cr 1.4 · HbA1c 8.4%
  • Medical historyT2DM · hypertension · CKD 2
  • AllergiesPenicillin
  • Active prescriptions4 · incl. spironolactone 25 mg
  • Prescriber historyDr. Priya · 212 scripts
  • Clinical pathwaysACS pathway · opened 09:02
  • Guideline catalogue1,284 rows · this tenant

Lit rows are what the current move is reading. Everything else is out of scope for that move — and the card says so.

Six moves · fixed order
  1. Diagnosis
  2. Differential
  3. Prescription
  4. Treatment plan
  5. Breakthrough watch
  6. Deep research
What it says
Yakko’s note has just landed in the EMR.

The run triggers on its own. Watch the six moves read the chart — and see exactly what each one was allowed to look at.

0moves run 0claims made 0rows quoted 0finding 0written to the chart

Gooseberry supports clinical decision-making. It does not replace physician judgment, hospital protocol, or regulatory review. All suggestions remain subject to clinician sign-off.

Interface vignette shows illustrative data, not a real patient or record.

The six moves

The same six checks on every case — and exactly what each one reads.

Not a chatbot that answers when asked nicely. Gooseberry runs a fixed sequence and renders every section even when it has nothing to say — because “we looked and found nothing” is a different statement from “we never looked.”

  1. 01Diagnosis

    Vitals and labs, with the reasoning shown.

    Reads vitals labsDoes not read history or allergies — and says so.
  2. 02Differential

    Alternatives to consider, grouped by the evidence that raised them — not ranked by likelihood.

    Reads labs history pathwaysDeliberately unranked: no validated instrument here can order them.
  3. 03Prescription

    Checked against protocol and this doctor’s own prescribing history.

    Reads allergies prescriptions labsPrescriber history annotates a finding; it can never suppress one.
  4. 04Treatment plan

    Viable pathways, with trade-offs stated plainly.

    Reads pathways history guidelinesACS, stroke, DKA, anaphylaxis, massive transfusion, status epilepticus and more.
  5. 05Breakthrough watch

    The current standard on file for each of this patient’s documented conditions.

    Reads history guidelinesOne guideline per condition — the standard of care on record, not a news feed.
  6. 06Deep research

    For the case that doesn’t fit a standard pattern.

    Reads guidelines pathways historyThe wider applicable set, for the presentation that refuses to sit in a box.
Coverage, stated plainly

Which sources each move actually touches.

Most clinical software is vague about its own reach, because vagueness sells better. A clinician reading “nothing flagged” deserves to know what was in scope when it said so.

Diagnosis Differential Prescription Treatment Breakthrough Deep research Vitals · this visit FullMatch— Context—Context Resulted labs FullMatchSafety Context—Context Medical history —MatchSafety FullFullFull Allergies ——Full Context—— Active prescriptions ——Full ContextMatchContext Prescriber history ——Annotate ——— Clinical pathways —Match— FullContextFull Guideline catalogue —ContextSafety FullFullFull
Primary source Read in full Partial / matched Context only Not read by this move

Prescriber history is deliberately marked annotate, never suppress: familiarity with a drug can add context to a finding, but it can never hide an interaction, dosage or allergy flag.

Guardrails

Eight rules it cannot break — and the layer that stops it.

Clinical decision support earns its place by what it refuses to do. These are not policy statements. Each one is enforced in code, in the API contract or in the database itself — this grid shows where.

The rule EngineAPIDatabaseScreen
Nothing auto-applies to the chartAccepting a suggestion never writes a prescription, a diagnosis or an order. Gooseberry proposes; a named clinician disposes.
No write pathRecords a decision only—No “apply” control
A claim with zero citations cannot be storedEvery claim quotes the record it came from — verbatim, snapshotted at run time.
Refuses to emit—CHECK constraint—
“I don’t know” names what was missingAn insufficient-data card lists the exact fields it needed and did not find.
missingFieldsRequired field—Not decidable
A run of pure “don’t know” is flagged, never clearSix empty-handed checks are a reason to look, not a clean bill of health.
Outcome rule——Flagged badge
Coverage is stated, not impliedWhere a check has partial reach, the card says what was actually screened.
coverageNoteRequired where partial—On the card
Prescriber history annotates, never suppressesFamiliarity with a drug adds context to a finding; it cannot hide an interaction, dosage or allergy flag.
Hard rule———
Escalation pages a real personAn escalate outcome opens an actual clinical task against a named role, with a due time.
Outcome rule—clinical_tasks rowTask id shown
Rejecting is as recorded as acceptingReject or override and the engine asks why, in writing — stored with the run.
—Reason requiredStored with the runReason field

A cell that reads “—” means that layer has nothing to add, not that the rule is optional there. Every rule is enforced in at least one place you cannot switch off.

Anatomy of a claim

What makes a suggestion auditable a year later.

A citation is not a link. It is a frozen copy of what the record said at the moment the engine read it — the only version that still means anything after the value changes, the patient is discharged and the case reaches a review committee.

CITATIONattached to suggestion #S-88214-3 · run #4181
sourceType1
LAB_RESULT
table · recordId2
lab_results · #88214
field
potassium
quotedValue3
“6.2 mmol/L”
recordedAt4
2026-09-02 09:14 · clinical time
label
Serum potassium, today’s panel
snapshot5
immutable · never updated after the run
  1. 1
    Source type

    One of eighteen record classes — lab result, prescription item, allergy, vitals, pathway, guideline. No free text.

  2. 2
    The exact row

    Table and primary key. Not “a recent potassium” — that potassium.

  3. 3
    Quoted verbatim

    The value as text, copied at run time. If someone later corrects the result, the suggestion still shows what it actually saw.

  4. 4
    When it was recorded

    The clinical timestamp, not the run timestamp — so a reviewer can see how fresh the evidence was.

  5. 5
    Stored immutably

    Citations are snapshots and are never mutated. A claim with zero citations cannot be written at all — enforced in the database, not in review.

What a run leaves behind

Most of what it says is “this is fine” — and all of it is on the record.

An engine that only speaks when something is wrong trains people to ignore silence. Gooseberry reports the clean checks too, and every clinician decision lands in a ledger a quality committee can actually read.

Confirmations — checked, and clear: stated, not implied Insufficient data — names exactly which fields were missing Findings — an adverse fact the clinician should see, ~12%
Decision ledger · this morningWhat the quality committee opens, months later
RunMoveSuggestionKindDecisionByReason on record
#4181 · 09:14PrescriptionK⁺ 6.2 on spironolactoneFinding · urgentAcceptedDr. Priya · 09:21— (task C-2291 opened)
#4181 · 09:14DifferentialCKD stage 2 · matched on historyConfirmationOverriddenDr. Priya · 09:22“eGFR 71 is this patient’s baseline since 2023 — not a new lead.”
#4176 · 08:50PrescriptionMetformin with eGFR 44Finding · advisoryRejectedDr. Arun · 08:58“Dose already reduced to 500 mg — see today’s script.”
#4170 · 08:31Deep researchNo ECG or imaging on fileInsufficient dataNot decidable—Missing: ECG · RADIOLOGY_REPORT
#4168 · 08:12Treatment planStroke pathway current · step 4 dueConfirmationAcceptedDr. Meena · 08:15—

Four decision states. Pending, accepted, rejected, overridden — the last two cannot be saved without a written reason, and an insufficient-data card cannot be decided at all.

Boundaries

What it is, and what it refuses to be.

The fastest way to lose a clinical team is to oversell. Here is the line, drawn where we actually drew it in the code.

What Gooseberry is not
  • Not a diagnosis. It restates and cross-checks what your chart already holds.
  • Not a ranked probability list — the differential is deliberately unranked, because no validated instrument in this build can order alternatives by likelihood.
  • Not a replacement for hospital protocol or regulatory review.
  • Not a generative chat box that will answer anything you ask it, confidently.
  • Not a silent actor — it cannot write to the chart even if a clinician wants it to.
What it is
  • A deterministic second pass over this patient's own record, run the same way every time.
  • An evidence trail: every claim quoting the row it came from, frozen at run time.
  • An escalation path that opens a real clinical task against a named role with a due time.
  • A record of clinician judgement — accepted, rejected or overridden, with the stated reason.
  • A safety net that runs on the 40th patient of the morning exactly as it ran on the first.

Gooseberry supports clinical decision-making. It does not replace physician judgment, hospital protocol, or regulatory review. All suggestions remain subject to clinician sign-off.

Where it earns its keep

The 2 AM case, and the 40th patient of the morning.

The junior on night duty

A second opinion at 02:00 when the consultant is asleep — one that shows its working, so the registrar can judge it rather than obey it.

The busy OPD list

By the 40th consultation, attention is a scarce resource. The check that catches the interaction is the one that runs whether or not anyone remembered to run it.

The quality committee

Every run, every citation and every clinician decision with its stated reason — a reviewable record of how a call was reached, months later.

The medico-legal file

Contemporaneous evidence that the safety checks ran, what they saw, and what the treating doctor decided — with their reason on the record.

Interface vignettes show illustrative data, not real patients or records.

Book a 20-minute demo

See your hospital run on Harvis.

No slide decks. We'll walk you through a live OPD consult, a discharge and a billing cycle — on your specialty, in your language.