How CliniNote works

Clinical NLP that actually understands medical text

A walkthrough of how CliniNote processes EHR notes, extracts structured entities, and returns verifiable results your evidence team can audit and trust.

88% F1 on primary diagnosis extraction across 400-note internal benchmark

Purpose-built extraction

Not a wrapper. A clinical extraction engine.

CliniNote is built on models fine-tuned specifically on de-identified clinical notes, not general-purpose language models repurposed for medicine. That distinction matters when a note uses negation ("no history of"), temporality ("prior to admission"), and abbreviations ("HTN", "DM2") that general models routinely misinterpret.

The system processes each document through a clinical NLP pipeline that identifies entity mentions, resolves them to standard codes (ICD-10, NDC, CPT, LOINC), evaluates negation and uncertainty, and returns a structured dataset with confidence scores and source citations for every row.

Abstract data pipeline visualization showing clinical document processing and entity extraction

Live extraction example

From clinical note to structured dataset

The same pipeline that runs on your EHR exports. Every entity annotated, coded, and cited.

Diagnosis Medication Procedure Date/Lab
Patient is a 67-year-old male admitted on 2025-02-18 with acute decompensated heart failure (I50.9) and a background of chronic obstructive pulmonary disease (J44.1). Currently on furosemide 40mg IV BID, carvedilol 12.5mg PO BID, and spironolactone 25mg daily. No current anticoagulation. Echocardiogram (93306) performed on 2025-02-19 showed EF 35%. BNP measurement (83880) at admission: 1,840 pg/mL. Discharge planned pending clinical stabilization with follow-up cardiology clinic appointment (99214) in 2 weeks.
Structured output
Entity Type Code Conf
Heart failure Diagnosis I50.9 0.96
COPD Diagnosis J44.1 0.94
furosemide 40mg IV BID Medication NDC 00069-3060 0.99
carvedilol 12.5mg Medication NDC 00007-4139 0.98
spironolactone 25mg Medication NDC 00025-0534 0.97
Echocardiogram Procedure CPT 93306 0.95
BNP measurement Lab LOINC 42637-9 0.89
Admission date Date 2025-02-18 0.99

What CliniNote extracts

Standard and custom entity types

Seven standard entity classes, each mapped to recognized coding systems. Add custom phenotype definitions for study-specific entities.

ICD-10 Diagnoses NDC Medications CPT Procedures LOINC Lab Codes Dates and Temporal Expressions Clinical Findings Negation Handling Custom Phenotypes

ICD-10 Diagnoses

Diagnosis mentions extracted and resolved to ICD-10-CM codes. Handles abbreviations, synonyms, and negated mentions. Confidence score included for each code assignment.

NDC Medications

Drug name, dose, route, and frequency extracted as a structured tuple. Normalized to NDC and RxNorm identifiers. Handles brand and generic name variants.

CPT Procedures

Procedures and interventions mapped to CPT codes. Captures planned, completed, and excluded procedures with temporal context where available in the note.

LOINC Lab Codes

Lab test names and result values extracted from narrative text. Mapped to LOINC codes with numeric value, unit, and result status where documented.

Dates and Temporal Expressions

Absolute dates, relative expressions ("three weeks prior"), and event anchors resolved into ISO-8601 dates where the anchor is available. Supports admission, discharge, and procedure date extraction.

Negation and Uncertainty

Each entity tagged with negation status (affirmed / negated / uncertain) and experiencer (patient vs. family history). Critical for avoiding false-positive diagnoses in cohort construction.

Input and output

Works with the formats your EHR already exports

FHIR R4 Bundles
HL7 v2 Messages
CSV Note exports
Plain text Paste direct
Output CSV, JSON, FHIR
REST API Programmatic

See it run on your own notes

Request early access for a guided walkthrough on a sample of your EHR export data.