Prototype

VA

Praxis: Clinical Ambient Dictation App in Two Sprints

Updated: May 2026

A working ambient clinical documentation platform built in six weeks to win a competitive VA demo slot—and why the name mattered as much as the code.

Authentication screen for a ambient clinical dictation app.

Project hero placeholder

Overview

The previous version was called zCript AI. Before that there were decks, diagrams, and a Flutter prototype that never got traction. The VA's ambient scribe market had established players and we were a small SDVOSB with a good AFWERX story and no product that felt ready to demo. When I took over as the product design engineer on this effort, the ask was straightforward: build something the VA can actually use in a room. Six weeks later, Praxis was selected from among three competing AWS Partner applicants to present live to the VA acquisition team.

Problem

zCript AI, as the BD positioning documents described it, was genuinely capable: 95% transcription accuracy in simulated environments, ICD-10/CPT automation, offline sync. The engineering was there. But the product had a GovCon software problem — it looked like GovCon software. The name didn't help. There were internal proposals for "Frontline-DX" and "ScribeSafe." These names signal exactly what they're trying to avoid signaling: a government contractor trying to sound like a startup. VA clinicians aren't the procurement officers; they're the ones who have to sit through a demo and imagine using this thing every day. A name like zCript AI doesn't clear that bar. The deeper problem was that no prior version had been built as a product. There were wireframes, an SBIR prototype, architecture diagrams. But when stakeholders asked for a working web application, the honest answer was that we didn't have one.

What I Built

Praxis is a React/TypeScript single-page application backed by AWS HealthScribe for ambient transcription, Bedrock for AI note synthesis, and ICD-10 libraries for automated coding. The workspace covers the full clinical encounter loop: appointments come in, a session is recorded, a SOAP note draft is generated, a clinician reviews and signs. The home dashboard surfaces today's schedule, surfaces unsigned drafts needing attention, and tracks emergent patterns across the last 30, 60, and 90 days — aggregated chief complaints and co-present assessments drawn from encounter transcripts. The Scribe view is where the actual ambient capture happens. The Notebook handles signed records and semantic search across past notes. EHR Connectors is where FHIR and HL7v2 integration with Cerner and VistA would be configured per site. The app includes PIV/CAC smart card login as an entry point alongside standard credential auth — a small detail that mattered for the VA audience, where Common Access Card authentication is an expected part of any federal clinical system. I designed and engineered this end-to-end. The visual system, the interaction model, the component architecture, the brand. AWS Kiro handled scaffolding in places; Figma was where the visual language resolved before any code was written.

Naming & Postitioning

I named the product. The internal candidates were: zCript AI, Frontline-DX, ScribeSafe. Each of these names is trying to describe what the product does, which means none of them do what a product name should do — create a surface for projection, a word a clinician might actually say to a colleague. Praxis comes from the Greek for practice: the enacted dimension of knowledge, the doing as distinct from the theory. It's also a word with direct clinical resonance — "clinical practice," "practice management," "my practice." It's what a physician calls their place of work. A product named Praxis is a product that belongs there. The naming work informed the visual language from the start. Clean, confident, institutional without being cold. A system that felt like it had been built by people who understood what a clinical workspace should feel like — not by people who were trying to approximate that from the outside.

How I Worked

The design resolved in Figma first. I built the component system there, worked out the information hierarchy, and got the visual language to a place where I trusted it before writing a line of code. The SOAP note workspace structure and the dashboard layout went through several iterations in Figma before I was happy with the information density. AWS Kiro helped scaffold parts of the frontend. I reviewed everything it generated, rewrote the pieces that didn't match the design system, and wrote the HealthScribe integration and the SOAP parsing logic myself. The ICD-10 library integration required careful attention to how codes were surfaced in the UI — automated code suggestions are easy to implement badly, in ways that add cognitive load instead of removing it, so the interaction model for accepting or editing suggested codes got deliberate design work. The whole thing was designed and built in six weeks while also writing three parallel RFI/SSN proposal responses for the VA contracting office and AWS Partner team. The proposal work and the product work fed each other: what I was learning about the VA's specific requirements in the BD documents shaped what the application needed to demonstrate.

What Landed

The VA awarded ambient scribe contracts to Abridge and Nuance, through pre-existing vehicles. Praxis wasn't the winner in the solicitation. But the work did something real. Being selected as one of three AWS Partners to present to the VA acquisition team was a competitive outcome — the other candidates included firms with longer ambient health track records. The presentation established zCore as a credible technical partner in this space rather than just another SDVOSB responding to SSNs. It fast-tracked our AWS Partner Network status and built a preferential relationship with the AWS account team that carries forward into future bids. The honest read: Praxis was the right product at the right moment. The contracts went to incumbents with established VA relationships. That's how the VA works. What we got was positioning, and positioning compounds.

What I'd Do Differently

The six-week timeline was the constraint, not a choice. There are parts of the EHR Connectors module that are UX-rough — they needed more iteration than the timeline allowed. The ambient recording session view in particular could use a cleaner feedback loop for when the AI is processing versus when it's waiting for input. I'd also have pushed earlier to resolve the product name. The naming clarity unlocked everything downstream — the visual language, the positioning language in the BD documents, the demo flow. That work happened in the middle of the build when it should have happened at the start.