For online labs · laboratories · health apps
Online blood labs return a table. Vitrubo reads it.
Direct-to-consumer blood testing has made the draw easy; what the customer receives is a table of test results. Vitrubo is the layer an online lab adds to read it: every lab test result against its range, blood work from different laboratories on one LOINC scale, trends across draws, a drafted comment for the reviewing scientist and a report the customer can read, under the lab's brand.
- HIPAA compliant
- GDPR compliant
- Encrypted in transit and at rest
- HL7 · FHIR R4

A reading layer for online lab testing, on the standards a laboratory already runs.

LOINC codes
Every lab test result is mapped to one reference standard, whichever laboratory processed the sample. Blood work ordered from two online labs reads on the same line.
In and out
Test results arrive as HL7, FHIR R4, PDF or JSON; the reading goes back as FHIR or JSON. An online lab connects its LIS once and keeps its own portal.
Native record
One FHIR R4 record per person, every result coded and dated, the source document kept. HIPAA business associate agreement for US deployments, GDPR Article 28 processing agreement and Standard Contractual Clauses.
Stanford MedAgentBench
Every task completed across five runs. Numbers, units, ranges and flags are computed by deterministic code, never written by a model.
Who adds a reading layer to online blood testing?
Three kinds of company sit between a person and a lab test. Each hands over a table of test results today; each can hand over a reading. In every case the professional signs and Vitrubo drafts.
A comment beside every flagged result.
Direct-to-consumer lab testing releases panels at volume with no clinician in the room. Vitrubo drafts the comment in the style your reviewing scientist already writes, approved inside the release step, and raises the follow-up test while the sample is still fresh.
The result read before the video call.
A telehealth service orders a lab test online, the patient visits a draw site, the test results land in the chart. Vitrubo reads them against the whole record before the consultation: the flagged result, its trend and the guidance behind it, in the clinician view.
Blood testing inside your product.
Apps that bundle an online lab test with coaching or a subscription get the reading under their own brand. Every new draw regenerates the report and previous versions stay as history, so users return with each test.
What Vitrubo does with the blood work an online lab returns.
A lab test comes back as a value, a unit and a reference interval. Vitrubo reads the three together, then reads the test beside the others in the panel: which markers moved as a group, what the medication list changes, what a borderline value means next to two more. Flagged results are best read together, and the output is a drafted reading, not a longer table.
A person who uses more than one online lab holds results in more than one format. Every value is normalised to LOINC with UCUM units, so blood testing from different laboratories and different years reads as one trend. Two tests of the same marker at two laboratories become one line, and a marker drifting slowly, invisible in any single lab test, becomes visible.
Repeat testing is the point of most direct-to-consumer blood work: a baseline, a change, a second test. The report follows each marker across draws and groups flagged test results into four zones: needs attention, worth watching, back to normal, always normal.
Online lab testing still ends with a person releasing the result. Vitrubo drafts the comment beside each flagged test in the laboratory's own style, cites the guidance it rests on, and places it in front of the scientist at the release step. The scientist edits or approves; the signature stays human.
The same analysis in two views. The customer sees plain language: what stands out, why results are grouped as they are, and what the best next step to discuss with a doctor is. The clinician view keeps full reasoning, connected conditions and medications, and tests to consider.
White-label PDFs, a role-based portal, or JSON through the API. HL7 and FHIR R4 in, FHIR and JSON out. Containers on your infrastructure or a private cloud; you own the keys and Vitrubo has no access to the data.
What a good reading of blood work looks like.
If you have used an online blood lab or an at-home testing kit, you already hold a table of test results. Open a live report and see what a reading adds: a 34-year-old followed across five visits over nine months, no diagnosis supplied, the flagged results pulled into one connected story instead of a list. Each statement carries the medical guidance it rests on; a chip opens the publication.

Connects to the LIS your online lab already runs.
Full integration.
Results leave the LIS as HL7 or FHIR, the drafted reading comes back into the same system, and the follow-up lab test is raised from the record. The online lab keeps its ordering flow, its testing menu, its draw network and its portal; the reading arrives inside them.
PlatformWhite label, no integration.
A portal for the laboratory, the reviewing scientist and the customer, under your brand. A blood testing company can start by sending PDFs of test results and reading reports, with no engineering project.
API first.
Online labs with their own apps take the API alone: structured results and the interpretation as JSON. Recognition, normalisation and interpretation, together or one at a time.
Interface and API, for every partner brand.
Results mapped to LOINC, units made comparable, the record kept in FHIR R4. One deployment can serve several online lab test brands, each with its own ranges and comment style.
Why not paste the table into a chatbot?
Because a lab test result is not a prompt.
A general-purpose model
- Not built or validated for laboratory testing; it writes fluent text about a blood test without knowing whether it read the number correctly.
- A multi-page lab PDF with two column layouts is read wrong without any sign that it was.
- No normalisation: units, ranges and panel names differ between online labs and stay different.
- Each upload is read on its own; nothing connects this test to the last one.
- No source behind a statement, so nothing the reviewing scientist can check.
A reading layer built for lab testing
- Lab-native ingestion of PDF, photo, HL7 and FHIR. Numbers, units, ranges and flags are computed by deterministic code, never written by a model.
- A normalisation engine: LOINC mapping and UCUM units, so blood work from any laboratory lands on one scale.
- Several models review the same case and cross-check each other; disagreements are resolved before a draft is shown.
- Cited claim by claim: every statement links to named medical guidance (EHA, WHO, NICE, KDIGO, BSH). One click opens the publication.
- Built for the next draw: the follow-up test is raised with its reason, and a value still current on file is not ordered twice.
Every statement rests on named medical guidance. Each chip opens the same guideline page a clinician would read. Vitrubo is not a laboratory and does not draw or process samples.
From first call to production, on your own lab tests.
An evaluation runs on the formats your online lab already produces. Six steps, none of them a commitment until the last.
Talk to the team
A short call about your testing menu, your LIS or portal, and the release step where the reading should appear.
Sandbox and API docs
Test access for your team, with the API contract and sample payloads for HL7, FHIR and JSON.
Run your own tests
Send real blood work in its real formats, anonymised: blood tests, urine tests and allergy tests, PDF or HL7.
Validate the output
Your reviewing scientist reads the drafts against their own reading of the same lab tests, alone or together with us.
No commitment at this stage
Comment style, reference ranges and branding are configured here. Nothing is signed.
Production when ready
Inside your perimeter or a private cloud, connected to the LIS, or portal-first.
Questions about online blood labs and the reading layer.
No. Vitrubo is not a laboratory. It does not sell lab tests, draw blood or process samples, and it has no draw sites. It is the reading layer: an online lab, a laboratory or a health app connects its results and receives an interpretation, and a person who already holds blood work from an online lab test can use the same reading to understand it. If you need a test, an online blood lab or your doctor orders it; Vitrubo reads what comes back.
Most direct-to-consumer lab testing returns a table: marker, value, unit, reference range, a flag when the value falls outside it. A reading adds what the table leaves out. Which flags belong together. Whether a value has moved since the last draw. What medical guidance says about a result like this one. And which test is the best next step, if any. The table stays; the reading is placed beside it.
Yes. Direct-to-consumer testing rarely comes from one laboratory for long, and results from different laboratories arrive in different formats, units and panel names. Every value is mapped to one of 17,000+ LOINC codes and to UCUM units, so a lab test run by one online lab this year and another last year sit on one line. Trends read across labs, and a marker that looks normal in each single blood test can be seen drifting across them.
The laboratory's reviewing scientist or a clinician, as today. Vitrubo drafts the comment in the laboratory's style and cites the guidance behind it; the draft appears at the release step in the LIS or portal. The professional edits or approves. Vitrubo does not diagnose, does not select treatment and does not replace the person who releases the result.
Every statement links to named medical guidance: EHA, WHO, NICE, KDIGO, BSH and others, up to 30 sources behind one biomarker view. Numbers, units, ranges and flags are computed by deterministic code, never written by a model. Several AI models cross-check each other before a draft is shown. In a clinical program, roughly 100,000 anonymised hospital records were read on premises; on Stanford MedAgentBench the system completed 600 of 600 tasks across five runs.
Any lab test that returns a value: blood tests, urine tests and allergy tests arrive as values, from a full blood count and a lipid panel to a thyroid test, an iron study or a vitamin test. A laboratory test with a narrative result, a hospital record or a prescription is read as context rather than as a number. At-home testing kits posted back to a laboratory are read the same way as a draw at a site. The test menu of an online lab rarely contains a marker the mapping has not seen: 17,000+ LOINC codes cover what laboratory testing reports today.
PDF, photos and scans, HL7, FHIR R4 and JSON through the API. Blood, urine and allergy panels arrive as values. Hospital records, prescriptions and notes are read as context, so a lab test ordered online is read beside the medication list and the history the person chooses to add.
Under its own brand. White-label PDFs with the company's logo and disclaimers, a role-based portal for the laboratory, the clinician and the customer, or JSON through the API into the app the company already runs, with the report regenerated after each new test. Two views of the same analysis: plain language for the customer, full reasoning for the clinician. Vitrudoc, an AI chat grounded only in the person's own record, can sit beside the report.
The report regenerates with every new result. Flagged results are grouped into four zones: needs attention, worth watching, back to normal, always normal, with the next round of testing named where the guidance calls for one. Previous versions stay as history, so the person and the reviewing scientist can see what the reading said before the second draw and what changed after it. Repeat testing becomes a trend rather than two separate test reports.
A HIPAA business associate agreement for US deployments, a GDPR Article 28 processing agreement and Standard Contractual Clauses. Encryption in transit and at rest. Identity never enters the prompt: models see values and an internal ID. Deployment is in containers on your infrastructure or a private cloud, and you own the keys; Vitrubo ships versioned builds and has no access to the data.
Read it against the ranges printed on it, then bring it to a doctor. The live reports on this page show what a full reading looks like: flagged values grouped into stories, trends across draws, plain language with the guidance behind each statement. A medical test result is best read beside the history it belongs to, so bring earlier results too. For a person, Vitrubo is educational context to take to an appointment, not medical advice. It does not diagnose and does not tell you what to take.
The laboratory work is the same: a sample, an analyser, a reference range. Medical testing bought online and a medical test ordered by a doctor differ in who reads the result. A medical test ordered by a doctor comes back to someone who knows the history; a lab test ordered online often comes back to the person alone. The reading layer closes that gap on both sides: the laboratory releases a commented result, and the person receives a report written to be understood.
With a call, then sandbox access and API documentation. Your team sends its own anonymised panels in their real formats, your reviewing scientist validates the drafts, and nothing is committed until the output holds up on your own lab tests. Production follows when you are ready, inside your perimeter or a private cloud.
Demo cases
Invented people, real product. Every case is a synthetic record with a stock portrait: no real patient, no real result. The reports are live.

Robert Hensley
58A year of CKD follow-up with full context supplied.

Emily Carter
34Five visits over nine months with no diagnosis supplied.

Ryan Hayes
30Fifteen months of lifestyle change. The direction of travel is read.
See it on the blood work your lab already returns.
A walkthrough on your result formats and release step, sandbox access for your team, and a drafted reading of your own panels. Or open a live report and see what a good reading of an online lab test looks like.