Clinical NLP · Data Provenance
VisitPrep
Turn synthetic health journals into traceable symptom signals, trends, and visit summaries. Every extracted signal retains its source text and evidence span.
- Next.js
- TypeScript
- PostgreSQL
- Drizzle
- Deterministic NLP
- Vitest

What I built
A source-first pipeline from journal entry to an immutable, reviewable report.
- Implemented deterministic server-side extraction for symptom assertions, severity, and evidence spans without an external AI API.
- Built isolated synthetic workspaces, transactional journal persistence, idempotent retries, and revision-checked report snapshots.
- Added rolling-window analytics, explicit missing-data handling, PostgreSQL migrations, and unit/database integration checks in CI.
How it works
- Validate and persist a synthetic journal entry in a session-scoped workspace.
- Extract structured signals with assertion, severity, and source-note evidence.
- Aggregate distinct symptom days and wearable-style measurements in rolling windows.
- Save an immutable report snapshot with its source-note references.
Evaluation & evidence
The repository includes a curated synthetic extraction evaluator and unit/database integration tests. Results on examples used to develop the rules are not evidence of clinical generalization.
Scope & limitations
An educational project for synthetic data only. It does not diagnose, recommend treatment, establish causality, or perform emergency triage.