Synthetic data only · portfolio demo

Structured SOAP notes from messy clinical text — with the model’s reasoning visible.

A reviewer-first interface for turning transcripts and dictations into SOAP notes and ICD-10 suggestions. Source attribution, confidence indicators, inline edits, PHI redaction, and a streaming pipeline. The same logic runs as a standalone MCP server.

/playground · note-1
CC: SOB x 2 hrs, wheezing
HPI: 32yo F w/ hx asthma, ran out of albuterol 3d ago. Acute SOB after running for bus.
Vitals: BP 128/82, HR 102, RR 24, SpO2 92% RA
A: Acute asthma exacerbation, moderate.
SSubjective

32-year-old female with history of asthma, ran out of albuterol 3 days ago…

ICD-10 suggestions
J45.901Asthma with acute exacerbation
R06.02Shortness of breath

Stripped-down preview of the reviewer surface. The live playground streams as it extracts.

How it works

Three pieces, one pipeline, shared schemas.

Stream extraction

Tool-use mode forces structured JSON output. Sections fade in as Claude generates them. The model marks confidence per section and cites source spans.

Reviewer-first UI

Hover any field to see the supporting text on the left. Edit inline with cmd-enter. Confidence dots, reasoning popovers, and uncertainty flags surface what the model isn't sure about.

ICD + PHI in one pass

ICD-10 suggestions are derived from the SOAP and cite their evidence span. PHI redaction is hybrid: regex for structured patterns, LLM for names and addresses.

What it shows

MCP server

Same logic exposed as stdio MCP for Claude Desktop / Cursor / Code.

Structured outputs

Tool-use forced JSON; Zod-validated end-to-end.

Hybrid PHI redaction

Regex for phone/MRN/DOB; LLM for names + addresses.

Source attribution

Every section cites character offsets in the original text.

Human-in-the-loop

Confidence dots, uncertainty flags, inline edits, accept/reject codes.

Eval harness

10-note golden set; per-section overlap, ICD precision/recall, calibration.

Use it as an MCP server

Drop into Claude Desktop, Cursor, or Claude Code. Four tools: extract_soap_note, suggest_icd_codes, redact_phi, extract_full.

{
  "mcpServers": {
    "clinical-notes": {
      "command": "node",
      "args": ["/absolute/path/to/clinical-note-copilot/mcp-server/dist/index.js"],
      "env": {
        "ANTHROPIC_API_KEY": "sk-ant-..."
      }
    }
  }
}