Stream reads every record that arrives, files it to the right patient, and lays its clinical content out under the problems it belongs to — as excerpts, medications, and proposed follow-ups. Every one of them is a single click from the sentence on the page it came from.
A fax lands.
Someone prints it.
Someone else scans it.
At the end of the day a clinician skims it and retypes the parts that matter — or doesn’t, and the A1c from the cardiology consult never reaches the diabetes plan.
The document gets filed. Everyone did their job. The information is still gone.
Because the failure was never storage. A stored document is a flat object in a list, and that’s not the shape of the question a clinician is asking. The question is problem-shaped: what do I know about this patient’s heart failure, from every source, in order?
Most systems attach a document to a chart. Some go further and turn it into a visit — which is worse, because an outside consult note is not a visit that happened in your clinic, and putting it on your visit timeline misrepresents your own record.
Stream projects a document onto the patient’s problems. A discharge summary touching diabetes, hypertension, and CKD produces three excerpts — one filed under each problem, each labeled with who wrote it and where it came from.
The problem view becomes a single merged view: your notes and everything the outside world has said about that condition, in chronological order, visually distinguished by source.
Every document that arrives makes the chart more complete without making it longer.
Before Stream reads a word, it records where the words are — page number and position for every sentence on every page. Unglamorous, and it’s the foundation of the whole product.
So when a clinician sees a fact on the Huddle, it isn’t a citation number or a footnote. Click it, and the source PDF opens scrolled to that sentence, highlighted.
No fact on this screen has to be taken on faith.
Click any fact to open the source document at the sentence it came from.
The patient was admitted on 3/11/24 for evaluation of hyperglycemia
and generalized fatigue of two weeks' duration.
Hemoglobin A1c on admission was 9.1% (Riverside lab, 3/12/24).
Prior outside value was reported as 8.4% approximately eleven months ago.
Insulin glargine 10 units nightly was started during this admission.
Metformin 1000 mg twice daily was continued without change.
Fingerstick glucose ranged 142–210 mg/dL over the final 48 hours.
Recommend repeat A1c in 3 months.
Diabetes education was completed with the inpatient team on 3/14/24.
Stream provisions a fax number for your practice on Sinch — whitelisted and managed by River Records — or connects to your clinic’s own Spruce Health account if you already run one. A fax comes in with no human involvement at all: Stream verifies it genuinely came from the carrier, routes it to your practice by the number dialed, pulls down the file, and starts. If the carrier retries the same fax, you don’t get a second copy.
Not a fax? Upload PDFs — up to 10 at a time — or text files, or paste text straight in, from the Documents page. Same pipeline from there on.
Every page goes through OCR that captures the text and its position — so every fact can point back to its exact spot later.
One pass gives the document a name and a date (“Rheumatology Consult with Dr. Chen, 3/15/24”), a short clinical summary, and a type. Stream searches your patient roster and proposes a match — an existing patient, a new patient it can create from the name and DOB on the page, or not a patient document at all.
It also flags what kind of content is in there, and only the relevant extractors run. A signed insurance letter doesn’t get sent through a clinical extractor.
Fax batches contain more than one document. Sometimes more than one patient. A hospital records department sends 40 pages covering three people, and a system that assumes one file equals one patient will silently file one patient’s data into another patient’s chart.
Stream watches for the seams — fresh letterhead, a new patient header, a jump in dates. When a file looks like several documents or several patients, it stops and asks a human instead of guessing.
The document lands in the Documents worklist as awaiting confirmation. Front-desk staff see it next to Stream’s proposed match, confirm it or create the new patient, and assign the reviewing clinician. Their view is deliberately trimmed to what’s needed to route it — and nothing clinical they’d never act on.
Excerpts, medications, and proposed follow-ups — each described below.
One excerpt per document, per problem. Each carries a status line and three groups — what the data says, what was done, what happens next — plus ICD codes where the document gives them.
They’re extracted, not written. Stream pulls facts and classifies them; it doesn’t compose prose about your patient. Every fact is then checked against a verbatim span of the source. Facts that can’t be grounded in the actual text are dropped, not shown.
They merge with the problem you already have. “Attention deficit” from an outside note snaps onto your chart’s existing “Attention deficit hyperactivity disorder” instead of spawning a near-duplicate. If the document raises a problem the patient has no note for, that problem shows up anyway, as a row of its own.
They say where they came from. Stream reads the letterhead and signature block and stamps author, institution, and date on every excerpt from that document — “from Discharge Summary — Dr. A. Chen, Riverside Medical Center, 3/15/24.” Correct a field once and the fix propagates to every excerpt from that document.
What a clinician can do with one: Accept · No action · Re-tag to a different problem · Dismiss from my view · View source · Include in note.
No action is not discard. Nothing is deleted; the excerpt stays visible on the document.
Dismiss takes it off my Huddle. It stays on the shared chart timeline — because the timeline is the record, and one clinician’s triage isn’t a chart decision.
A personal view choice and a shared clinical decision are different things, and the interface never lets them blur.
And they get out of the way on their own. Content past a freshness window, or predating your own last signed encounter, drops off the at-a-glance view — it’s already been accounted for. Anything still pending never goes stale.
Stream surfaces the medications a document mentions, each verified against the source, each with its own location on the page. Click a drug, land on that line of the PDF.
Then it deliberately does less than you’d expect. That list appears only in the Review Required view — never on the day-to-day problem view. Because a list of drugs sitting under a problem list reads as the patient’s current regimen, and it isn’t. It’s one document’s snapshot, possibly months stale, possibly contradicted by a later record. The honest place for it is the screen whose framing is already “here’s what came in.”
Clear a document’s medications with one Dismiss for the whole group. It’s per-user, it’s reversible, and the list stays in the document drawer afterward — which is what makes the word “dismiss” literally true.
There’s no Accept button here, and that’s on purpose. Accept would imply we wrote to a reconciled medication list. We don’t offer a button that implies a chart write that doesn’t happen.
What you can do is use them. Include in note puts the document’s medication list into your documentation, attributed to where it came from — from external records. It’s the same explicit click that governs every other outside fact on this page, and it writes to your note, not to a list Stream doesn’t keep.
No Accept button — Include in note writes to your note as from external records, never to a reconciled medication list.
We’d rather tell you what one document says than pretend we’ve reconciled your med list.
Stream proposes the actions a document is actually asking for. Each one carries an imperative action — “Repeat BMP in 1–2 weeks”, “Refer to cardiology for stress echo” — a type, the problem it belongs to, and the exact quote from the document that justifies it.
Timeframes come verbatim from the source. When the source doesn’t give one, the field stays empty. We don’t invent urgency.
The quality bar is the feature. No verbatim quote, no task. The extractor is told to leave out continuation of medications the patient is already on, safety-net boilerplate, plan-of-care summaries, narrative rephrased as an action, and the same action twice in different words. For many documents the correct answer is an empty list, and it returns one.
Ten plausible tasks per document is how a task queue becomes wallpaper.
Nothing is created behind your back. Proposals stay proposals. Accept, edit the wording, or delete — and the whole session commits on one Save, with a conflict check so two people reviewing the same document can’t overwrite each other.
And accepted tasks go to a person. Each row has an assignee that defaults to the reviewing clinician and takes one click to change. There’s an add-your-own row for what the model missed.
The document itself is somebody’s job. Every confirmed document generates a document review task assigned to a named clinician — so a fax that arrives at 4pm isn’t an item in a queue nobody owns. Wrong person? Reassign, with a reason, recorded on the document.
Nothing here exists as a task until you Save.
Stream gives every document a name, a date, and a short clinical summary — enough to know what arrived without opening twelve pages of it.
The summary sits in the review panel next to the excerpts, medications and proposed tasks, everywhere that panel is mounted.
When you want it in a note, Include in note puts it there as an attributed quote — the same explicit click as any other outside content. The entire document can go in the same way.
Like everything else on this page, nothing about it happens on its own.
64-year-old woman admitted 3/11/24 with hyperglycemia and fatigue. Hospital course covered diabetes, hypertension and CKD, with a medication change in each. Discharged 3/15/24.
This isn’t a policy, it’s an architecture. The code that reads excerpts is physically separate from the code that drafts notes, and an automated test fails the build if the note-generating path so much as imports the excerpt reader.
The only way outside content enters a note is one explicit click — Include in note — which inserts it as an attributed quote:
Per Discharge Summary, Dr. A. Chen, 3/15/24: “…”
Your record stays your record. And where it isn’t, it says so on the page.
The same panel is mounted in three places, with everything available at each: excerpts, medications, proposed tasks, the summary, mark-reviewed, and reassign.
For whoever works the fax queue.
During pre-visit prep, in the drawer beside the patient’s problems.
Open the document review task and review it in place, without being thrown to another page.
Stream Inlet is metered and sits on top of your Stream Pro subscription. Pick the allowance that matches your volume — most two-clinician practices land in the middle.
Every plan includes your fax number, unlimited users, and processing of every page in your plan. Extra pages $0.14. We notify you at 80% of your allowance. Junk faxes are filtered and never billed.
Two options. Sinch is the River Records option — we provision the number, whitelist it and manage it for you, and it is what we recommend. Spruce Health is supported as an integration for practices already running Spruce: the number lives on your own Spruce account and your clinic manages it.
No. You get a Stream number and keep your existing line running as long as you want. There’s no cutover and no day where faxes could fall between two systems.
We call them. A short list of senders — the hospital records department, the two or three specialty groups you refer to most, the imaging center — accounts for most of what arrives. We contact your highest-volume senders with your new number as part of setup, so the bulk of your inbound volume moves over without your front desk picking up the phone. The rest follows as you update your directory listings and referral forms.
Anything that still comes to the old line, or arrives on paper, can be dragged into Stream from the Documents page and goes through exactly the same pipeline.
Stream detects that the file contains more than one document or more than one patient and holds it for a person to sort out, rather than guessing. A clinician can release the hold explicitly.
No, and that’s deliberate. Every excerpt, medication list, and proposed task waits for a human decision. Stream’s job is to put the right thing in front of the right person, ready to accept in one click.
No. Stream shows the medications each document mentions, tells you it’s that one document’s view, and leaves reconciliation to you. A reconciled patient medication list is on the roadmap.
Yes. PDFs — up to 10 at a time, 15MB each — plus text files, or text pasted straight in, all from the Documents page.
Stream Pro, as a metered add-on. It ships next week.
Stream Inlet is metered on top of Stream Pro: $89/month for 500 pages, $199 for 1,500, or $349 for 3,000, plus a $299 setup fee. Extra pages are $0.14. Your fax number and unlimited users are included, and junk faxes are filtered and never billed.
You don’t port a number and you don’t switch anything off. You get a Stream fax number, your old line keeps working, and there’s no moment where a fax could fall between two systems.
Then we make the calls. Most practices find that ten senders — the hospital records department, the specialty groups they refer to most, the imaging center — account for the majority of what comes in. We contact them with your new number as part of setup, so most of your inbound volume is running through Stream the same week without anyone at your front desk picking up the phone.
Everything else moves at its own pace. And whatever still arrives the old way, or on paper, gets dragged into Stream from the Documents page and goes down the same pipeline.
If a fact has to be resurfaced, it was lost. Stream Inlet is coming to Stream Pro next week.
Coming to Stream Pro · [email protected] · We respond same day.