ReqLens
Document-AI intake pipeline for a genetic-testing lab. Scanned requisition forms go in, validated structured orders come out, and the LLM is treated as a measured production dependency the whole way.
.NET 10 C# Blazor AWS Lambda Textract Bedrock Terraform PostgreSQL
Partner clinics send test requisitions to labs as faxed or scanned PDFs, and staff re-key them by hand. ReqLens replaces that: OCR with Amazon Textract, schema-constrained extraction through Amazon Bedrock, then a deterministic C# validation layer that re-checks everything the model returned. NPI check digits, ICD-10 codes against the governing list, panel membership in the test catalog, specimen and consent sanity. Fields that fail a confidence gate route to a human review queue with a full audit trail.
The design premise is that the model is a fallible dependency, not a magic box:
- Per-call telemetry from the first call: model id, latency, token counts, computed cost, guardrail interventions, schema outcome.
- A config-driven fallback chain. Retry with backoff, switch model family on throttle, escalate to a stronger model on schema or confidence failure, hand to a human as the terminal fallback.
- A golden-set eval harness reporting field-level precision and recall per model. The current run scores the primary model at 1.0 precision and recall across all twelve fields at under a cent per document.
- Human overturn rate exposed as an API metric, so every reviewer correction becomes a drift signal.
The stack is C# on .NET 10 end to end: three Lambdas behind API Gateway, a Blazor WebAssembly front end, RDS Postgres via EF Core, SQS with dead-letter queues, and all infrastructure in Terraform. Every row is tenant-scoped. All data is synthetic by construction, so no PHI has ever touched the system.
The repository is private while the project is in active development.