Is AI accurate at reading lab reports?

The useful question is not whether AI can read a report. It is which parts it reads reliably, and which parts you still have to check.

It depends on the page. AI extraction is reliable on clearly printed, single-column results with a visible range, and less reliable on handwriting, faint scans, multi-column layouts, and calculated indices. Doctano normalizes names, units, and ranges, but every value keeps a link to its source so it can be checked.

What extraction is actually doing

Reading a lab report is not one task. It is several: find the rows, read the test name, read the value, read the unit, read the reference range, read the flag, and read the dates and the patient details. A misread can happen in any one of those steps, and the value can still look perfectly plausible afterwards.

That is why an error in a lab timeline is quiet rather than obvious. 10.7 instead of 107 is a real-looking number. A unit read from the wrong column looks like a unit.

Where reports are easy, and where they are not

What reads cleanly, what does not, and what catches it
On the pageWhy it is hardWhat catches it
A printed row with test, value, unit, and rangeNothing. This is the easiest case.A quick compare is still worth doing.
A faint or low-resolution scanCharacters blur together and decimals disappear.Upload a clearer copy, then compare.
A photo with glare, shadow, or a curled pagePart of a column is simply not visible.Retake the photo with even light and the full page.
Two columns of results side by sideValues can be paired with the wrong test.Check the value's neighbour row, not just the value.
A handwritten correction or annotationHandwriting is not printed text, and it may contradict the print.Ask the lab what the issued value is.
A unit printed once in a column headingThe unit applies to rows that do not repeat it.Check the unit against the report's heading.
A range written as text, such as "negative"There is no number to compare.Treat the result as qualitative, not numeric.
A calculated index that is not printedIt was never on the page, so nothing can be extracted.Do not expect a derived number to appear.
Decimal and thousands separatorsConventions differ by country and by lab.Compare two neighbouring values for scale.

Calculated indices are a special case

Some indices that people ask about are not printed by the lab at all. A ratio built from two reported values, or an index derived from a formula, does not exist as a row on the report. Extraction cannot find it, and an assistant that produces it is calculating, not reading.

That distinction matters, because a calculated number inherits any error in its inputs. If you want a derived value, calculate it from verified inputs and write down the formula.

What Doctano does after extraction

The extraction step is the beginning, not the end. After it, Doctano resolves the raw test name to a standardized name, assigns a LOINC code where it can, filters out rows it cannot use, normalizes units to a standard unit, parses the reference range into something comparable, and classifies the result. A value without a usable range stays unknown rather than being forced into a label.

Each of those steps is a chance to correct an error and a chance to introduce one. Mapping SGPT and ALT to the same marker makes a trend possible; it also means a bad mapping can attach a value to the wrong history. That is why the source link matters more than the label.

The verification step

Check three things on any value you plan to act on:

  1. The value, including the decimal point.
  2. The unit, compared with the report's own unit.
  3. The range, compared with the range printed beside that result.

In Doctano, open the report from the result and use View original to see the uploaded file beside the extracted values. If they disagree, the file is right.

Signs a value was misread

  • A decimal place that makes the value ten or a hundred times larger than the ones around it.
  • A unit that differs from other results in the same panel on the same report.
  • A reference range that does not appear anywhere on the page.
  • A marker name you cannot find on the report.
  • The same test twice, with different values, from a single report.

What no product can promise

No extraction product can promise a perfect read of every page, and a page that is illegible to a person is illegible to software. What a product can do is keep the source, show what it could not use, and avoid inventing a number for a row it could not read. Treat the extracted timeline as a well-organized copy, not as a replacement for the laboratory's report.

Questions

AI accuracy and lab reports

There is no single number, because the answer depends on the page. A clearly printed, single-column report with a visible range is much easier than a faint scan, handwriting, or a layout with two sets of results side by side. Treat any extraction as a draft to verify.

Handwritten corrections, faint or skewed scans, photographs with glare or shadow, multi-column layouts, values printed in a header or footnote, and calculated indices that are not printed anywhere on the page.

It runs a series of checks after extraction: resolving test names, assigning codes, normalizing units, parsing reference ranges, and setting values it cannot use to unknown rather than guessing. Those checks reduce errors; they do not remove the need to look.

Open the report and use View original to compare the extracted value with the uploaded file. If the file itself is unclear, delete the report and upload a clearer copy. The original file stays available even when processing fails.

No. The laboratory issued and validated the result. Extraction is a convenience that copies it into a timeline, and the report remains the authoritative record.

Related

Related pages

Verify before you act. Extraction can be wrong, and a value in a timeline is a copy of a report, not the report itself. Check important results against the original and speak to a qualified professional.

Start with your first report

Upload a lab report and Doctano will organize your results for you.

Upload your first report →