Extract lab reports to structured JSON
Lab reports contain test results, reference ranges, specimen details, and ordering physician information. Labs like Quest and LabCorp each use different formats. Sensible extracts lab data into validated JSON for clinical integration, population health analytics, and compliance.

Why lab reports resist automated extraction
Result tables with abnormal flags, multi-panel groupings, and varying reference ranges resist parsing.

Lab reports pack test names, values, units, reference ranges, and abnormal flags into varying column layouts. Sensible extracts each line.

A single report may group CBC, CMP, lipid, and urinalysis results under different headers. Sensible nests results by panel.

Labs display reference ranges as ranges, inequalities, or text descriptions. Sensible parses the bounds and flags out-of-range results.
Fields we extract
Extract any data you need from lab reports into your desired output schema
Patient name, DOB, MRN, ordering physician, specimen type, collection date/time, received date, report date, lab name/CLIA number
Test name, result value, units, reference range, abnormal flag (high/low/critical), result status (final/preliminary), LOINC code
Panel name, component tests, overall interpretation, pathologist notes, critical value alerts
Urine test results with chemical, microscopic, and physical analysis.
CMP results covering glucose, electrolytes, kidney, and liver function markers.
Standard CBC lab report with WBC, RBC, hemoglobin, hematocrit, and platelet values.
Supported lab formats
Sensible processes lab reports from any reference lab or hospital system, many available in our healthcare template library. Custom lab configs build quickly.
Quest Diagnostics, LabCorp, BioReference, ARUP, Mayo Clinic Laboratories, Sonic Healthcare
Hospital reference labs, pathology reports, cytology results, microbiology, toxicology screens



Common Questions
Details on Sensible lab report extraction.
Yes. Sensible preserves panel groupings (CBC, CMP, lipid panel, thyroid panel) and returns results nested under their parent panel in the structured output.
Sensible captures patient name, DOB, MRN, ordering physician, specimen collection date/time, specimen type, and lab facility information.
Sensible extracts each test result with test name, result value, units, reference range, and abnormal flag. Results are returned as structured arrays preserving the report's panel groupings.
Yes. Sensible extracts the reference range for each test and indicates whether the result falls within, above, or below the normal range.
Yes. Sensible sends extraction results to your webhook endpoint when processing completes. You can also poll the API for status.
Yes. Sensible flags extractions with low confidence for human review. You can configure review thresholds and workflows.
Sensible is SOC 2 Type II certified and HIPAA compliant. Data is encrypted in transit and at rest.
Documents are deleted after 30 days by default. You can configure shorter retention periods or request immediate deletion via API.
Yes. Sensible offers a free tier with 50 documents per month. No credit card required to start.
Sensible uses per-document pricing for predictable costs. No token-based billing or usage surprises. Volume discounts are available for higher throughput.
Sensible provides REST APIs and SDKs for Python and Node.js. Most integrations take a few hours. Webhooks, Zapier, and direct API calls are all supported.
Sensible processes PDF, PNG, JPG, and TIFF files. PDFs can be native or scanned.
Accuracy depends on document quality and configuration. Most production deployments achieve 95%+ accuracy with proper validation rules and confidence scoring.
Most documents process in 2 to 10 seconds depending on complexity and page count.
