Healthcare
Lab reports contain test results, reference ranges, specimen details, and ordering physician information. Labs like Quest and LabCorp each use different formats. Sensible turns lab data into structured JSON for clinical integration, population health analytics, and compliance.
Validated JSON
Schema-enforced output; every field matches your contract
Source coordinates
Every value links back to page + bounding box for audit
Per-document pricing
Predictable cost. No token-volatility surprises
Trusted by teams turning documents into production data






Lab reports cram result tables, abnormal flags, multi-panel groupings, and shifting reference ranges into dense layouts. We parse the structure and tie every value to its range and flag, so results come back analysis-ready.
01
Test names, values, units, reference ranges, abnormal flags: all packed into dense result tables. Each result returns as a structured item with its full context, even when labs use different column arrangements.
02
CBC, CMP, lipid, thyroid, urinalysis: results grouped under panels with distinct reporting conventions. The panel hierarchy is preserved, with results nested under their parent grouping in the output.
03
Some labs express ranges as '10-20'. Others use '<5' or 'negative'. Sensible normalizes these formats and flags results that fall outside the reference range, giving your clinical system structured abnormal indicators.
Managed services
Solutions engineers handle plan, build, deploy, and adjust on your behalf. You see clean JSON in your API response. Same engine as self-serve, just with the configuration work outsourced.
What's included
01Plan.Engineers review your samples and pick the right method
02Build.SenseML configs written from your samples
03Deploy.Same engine as self-serve, ready for production
04Adjust.We update configs when formats shift or new edge cases appear
05Integrate.Help with custom integration into your downstream systems
We configure every lab report extraction to your exact schema, not a fixed field list. The fields below are the ones clinical teams pull most often — tell us what your clinical data schema needs and we map the rest.
01
Order and specimen
Patient name, DOB, MRN, ordering physician, specimen type, collection date/time, received date, report date, lab name/CLIA number
02
Test results
Test name, result value, units, reference range, abnormal flag (high/low/critical), result status (final/preliminary), LOINC code
03
Panel summaries
Panel name, component tests, overall interpretation, pathologist notes, critical value alerts
config.json
SenseML
{ /* SenseML: lab report extraction */
"fields": [
{
"method": {
"id": "queryGroup",
"queries": [
{ "id": "patient_name", "description": "patient name, patient" },
{ "id": "test_name", "description": "test name, test, analyte, component" },
{ "id": "result_value", "description": "result, value, result value" },
{ "id": "reference_range", "description": "reference range, normal range, expected range" }
// + more fields, mapped to your schema
]
}
}
]
}Sensible processes lab reports from Quest, LabCorp, hospital systems, and specialty labs. Hybrid extraction handles the visual differences between lab platforms while enforcing consistent output for your clinical data pipeline.
Quest Diagnostics, LabCorp, BioReference, ARUP, Mayo Clinic Laboratories, Sonic Healthcare
Hospital reference labs, pathology reports, cytology results, microbiology, toxicology screens
Answers about lab platform support, result parsing, and panel grouping.
Yes. Sensible preserves panel groupings (CBC, CMP, lipid panel, thyroid panel) and returns results nested under their parent panel in the structured output.
Patient name, DOB, MRN, ordering physician, specimen collection date and time, specimen type, and lab facility are captured by default. The patient and specimen fields are defined in configuration, so you add ones your LIS or downstream system needs and drop the ones it doesn't.
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.
Document data is stored indefinitely by default. Custom retention policies are available and can be configured for same-day deletion if needed.
Yes. Sensible offers a 14-day free trial on the Growth plan. 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 PDFs (native or scanned), Microsoft Word (DOC, DOCX), spreadsheets (XLSX, XLS, CSV), single-page images (JPEG, PNG), multi-page images (TIFF), and email bodies with attachments.
Accuracy depends on document quality and configuration. Most production deployments achieve 95%+ accuracy with proper validation rules and confidence signals.
Processing speed depends on document size, page count, OCR requirements, and which extraction methods are used. Simple single-page documents process in seconds. Larger or more complex documents that use LLM-based extraction take longer.
Start free
Free 14-day trial. No credit card required. Start extracting in minutes.