Vitrubo

An analyzer that rests on the standards a lab already runs.

Lab scientists reviewing a result together at the bench
One scale for every lab
17,000+

LOINC codes

Each blood test result is mapped to one reference standard, whichever lab produced it. Units are converted to UCUM, so the analyzer compares a value from one laboratory with a value from another.

HL7 · FHIR

In and out

HL7 and FHIR R4 in; FHIR and JSON out. The analyzer sits behind the systems a lab or clinic already runs, with no change to how a test result is produced.

FHIR R4

Native record

One FHIR R4 record per person, every result coded and dated, the source document kept. A HIPAA business associate agreement for US deployments and GDPR Article 28 terms as standard.

600/600

Stanford MedAgentBench

Every task passed across five runs on the Stanford MedAgentBench benchmark. The same reasoning reads a lab test result for your patients.

Who puts a lab test analyzer behind their results?

The analyzer sits at a different step for each buyer, and the person who holds the result reads the same analysis at the end. In every case the professional signs; the analyzer drafts.

Laboratories

A drafted comment beside every flagged blood test result.

The analyzer reads the panel as the scientist would and writes the comment in the style the lab already uses. It is approved inside the existing release step, and the right follow-up test is raised while the sample is still fresh.

For labs
Clinics and hospitals

Every lab test read against the whole history.

Blood tests, discharge summaries and letters are parsed, coded and merged into one record before the consultation. A result that looks ordinary on its own is read beside the draws that came before it.

For clinics
Health apps and telehealth

A blood test analyzer inside your product.

Embed the analyzer, bundle it or resell it under your brand. Users upload a test result or connect a lab feed, and the report regenerates online with every new value, which gives them a reason to return.

For health apps

What the lab test analyzer does with a panel.

Reads the panel, not the row

A blood test arrives as a column of values against a column of ranges. The analyzer reads them together: which markers move as a group, what the medication list explains, what one borderline value means beside two others. It then groups the flagged results into a few connected stories rather than a longer table.

Analyzes results across labs and years

Different laboratories, different units, one line. Because every lab test result is normalised to LOINC and UCUM, the analyzer can analyze results from any source as one trend. A marker drifting for years, unremarkable in any single blood test, becomes visible.

Cites the guidance it rests on

Every statement in the analysis links to named medical guidance: EHA, WHO, NICE, KDIGO, BSH. Up to 30 sources can sit behind one biomarker view, and a chip opens the publication, so a clinician checks the basis for a claim rather than trusting the analyzer.

Four zones, regenerated with every result

Needs attention, worth watching, back to normal, always normal. Each new blood test result redraws the report and the previous version stays as history, so the record shows how the reading changed, not only the latest one. A value that returns to normal moves zone rather than disappearing from the report.

Two views of one analysis

The clinician sees full reasoning, connected conditions and medications, and tests to consider. The patient sees the same lab test result in plain language, with what to discuss at the next appointment. Vitrudoc, an AI chat grounded only in the person's own record, answers questions about either view.

Runs inside your perimeter

Containers on your infrastructure or a private cloud. You own the keys; Vitrubo ships versioned builds and has no access to the data. Models see values and an internal ID, never a name, and every number, unit, range and flag is computed by deterministic code.

One flagged value, read against three draws.

This is what the analyzer returns for a single blood test result: the value against its reference range, the two draws before it on the same line, and the guideline chip that names where the reading comes from. The analyzer does the same for every flagged value in a blood test, then groups them into the stories the clinician sees. The live report follows a healthy person through a period of lifestyle change, with every lab test read as one story rather than a folder of separate results.

Flagged values grouped into a few stories, each with its trend across draws and its flag

Connects to the systems that produce the result.

LIS · EHR · EMR

Full integration.

Plug the analyzer into the LIS, EHR or EMR you already run. Test results flow in as HL7 or FHIR, the drafted analysis flows back into the same system for sign-off, and the follow-up test is raised from the record rather than by hand.

Platform

White label, no integration.

A role-based portal under your brand for the lab, the clinician and the patient, plus branded PDFs. Staff review the analysis online; patients read their blood test results in the same place. No engineering project is needed to begin.

Deployment

API first.

Teams with their own portal take the API alone: the structured lab test result and its analysis as JSON, straight into your product. Recognition, normalisation and interpretation, together or one at a time.

Developers (API)

Portal and API, for every customer.

Every result mapped to LOINC, units made comparable, the record kept in FHIR R4. Containers on your infrastructure, your keys.

HL7FHIR R4LOINCSNOMED CTICD-10RxNormATCJSON outFHIR outUCUM units

Why not paste a blood test into a chatbot?

Because a lab test result is not a prompt, and a blood test is read against a record, not on its own.

A general-purpose model

  • Built to write, not to analyze blood tests; a general model was never validated on laboratory work.
  • Misreads a number in a multi-page lab PDF or a phone photo and carries on without noticing.
  • No normalisation: units and reference ranges differ from lab to lab and stay that way, so a trend across two laboratories is not possible.
  • Reads each blood test on its own; the draw from last year and the medication list are not in the picture.
  • No source behind a statement, so a clinician has nothing to check and a patient has nothing to bring to an appointment.

A purpose-built lab test analyzer

  • Lab-native ingestion: PDF, photo, HL7 and FHIR are parsed, and every number is computed by deterministic code, never written by a model.
  • A normalisation engine for units, reference ranges and LOINC, so a blood test result from any lab lands on the same scale.
  • Several models review the same case; their disagreements are resolved and omissions caught before the analyzer shows a draft.
  • Cited claim by claim: each statement links the medical guidance it rests on, and one click opens the publication.
  • Reads the whole record: conditions, medications, previous draws and hospital notes are part of the analysis of every new test result.
EHAWHONICEKDIGOBSH

Every statement rests on named medical guidance. Each chip opens the same guideline page a clinician would read.

From first call to production, on your own lab tests.

An evaluation of the analyzer runs on your result formats, not on ours: the blood tests your lab or clinic already produces, in the files it already produces them in. Six steps, none of them a commitment until the last.

  1. Talk to the team

    A short call about your panels, your result formats and the step in the process where the analyzer should sit.

  2. Sandbox and API docs

    Test access for your team, with the API contract and sample payloads for a blood test result in HL7, FHIR and JSON.

  3. Run your own lab tests

    Send real formats, anonymised. Blood, urine and allergy panels, as PDF, photo or HL7, in the mix of files your lab or clinic sees on an ordinary day.

  4. Validate the output

    Your scientist or clinician reviews what the analyzer drafted against their own reading of the same results, alone or together with us.

  5. No commitment at this stage

    Evaluation is an evaluation. Comment style, reference ranges and branding are configured here, and the analyzer is tuned to the way your team writes.

  6. Production when ready

    Inside your perimeter or a private cloud, connected to the LIS or EHR, or portal-first. Versioned builds ship to you; the data never leaves.

Questions about the lab test analyzer.

Software that takes a lab test result, structures it, and drafts a reading of it for a professional to review. Vitrubo parses the values from a PDF, photo, HL7 or FHIR feed, maps each one to LOINC, reads the panel against the patient's history and named medical guidance, and returns an interpretation with its sources. It analyzes a blood test the way a clinician reads one: as a panel, against the record, with the source named beside each statement. A clinician or lab scientist signs it; the analyzer does not decide.

Yes, through a lab, clinic or health app that has put Vitrubo behind its results. Vitrubo does not perform or sell tests; it is the reading layer a provider adds to a blood test result, and the layer a person uses to understand results they already hold. The patient view is plain language and educational context to bring to an appointment, not medical advice.

Blood, urine and allergy panels arrive as values and are read as results. Hospital records, prescriptions and notes are read as context, so the analysis of a blood test knows about the medication that explains a shifted value. The analyzer analyzes each result inside the whole panel rather than one line at a time. Numbers, units, ranges and flags are always computed by code, never written by a model.

Every lab test result is mapped to one of more than 17,000 LOINC codes and its unit converted to UCUM, with SNOMED CT, ICD-10, RxNorm and ATC for the conditions and medications around it. Two blood tests from two laboratories therefore land on the same scale, and a trend reads across labs and years as one line.

Every statement links to the medical guidance it rests on: EHA, WHO, NICE, KDIGO, BSH and others, with up to 30 sources behind one biomarker view. Several AI models cross-check each other and their disagreements are resolved before a draft is shown. The analyzer prepares the reading; the professional reviews and signs it.

No. Vitrubo does not diagnose, does not select treatment and does not replace the clinician or the scientist. It drafts a reading of the test results, organises the history and names the tests to consider. The decision and the signature stay with the professional. A patient reading their own blood test results gets educational context for the next appointment, not advice.

The value against its reference range, the previous draws of the same marker on one line, the connected conditions and medications, and the guidance chip that names the source. Flagged results are grouped into a few connected stories in four zones: needs attention, worth watching, back to normal, always normal.

Through the portal or app your organisation runs, under your brand. A blood test result that arrives online from the lab is read by the analyzer and shown to the patient as the same analysis the clinician sees, written in plain language, and can ask Vitrudoc questions that are answered only from their own record. Every new test result regenerates the report and keeps the previous version as history.

A HIPAA business associate agreement for US deployments, a GDPR Article 28 processing agreement and Standard Contractual Clauses as standard. Data is encrypted in transit and at rest, identity never enters the prompt, and in-perimeter deployments keep the keys with you.

HL7 and FHIR R4 in, FHIR and JSON out. A lab connects the LIS so each blood test result is analysed at release; a clinic connects the EHR so the whole history is read before the consultation; a health app takes the API and shows the analysis inside its own product. White-label PDFs and a portal are available without any integration.

Yes. Reference ranges are configured per laboratory, so a test result is flagged against the range your lab publishes rather than a generic one. The drafted comment follows the wording your scientists already use, and the branding on PDFs and in the portal is yours. Each deployment carries its own configuration: guardrails, capability switches and answer style per audience.

In a clinical program at Assuta Medical Center, roughly 100,000 anonymised hospital records were read on premises through InterSystems IRIS for Health, with nothing leaving the perimeter. On Stanford MedAgentBench the same reasoning passed 600 of 600 tasks across five runs. Both are the same analyzer that reads a blood test for a lab or clinic today.

With a call, then sandbox access and API documentation. Your team sends its own anonymised blood tests in the formats it already produces, your scientist or clinician validates the drafts against their own reading, and production follows only when you are ready. There is no self-serve signup.

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.

See the analyzer on your own lab tests.

A walkthrough on your result formats and release workflow, sandbox access for your team, and a drafted analysis of your own blood test results.