Skip to content

ANcpLua/claude-hospital

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

101 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Claude Code, in a Hospital

Static reconstruction of the six demos from the Anthropic Claude Code in Healthcare webinar (Graham Walker, MD + Michał Nedoszytko, MD PhD, 2026-04-23). React 19 · Vite 8 · TypeScript 6 strict · Tailwind 4 · Bun proxy on Fly.io.

Routes

Route Demo Source · timestamp
/ Home grid
/well-baby Well-baby note generator Walker · 12:13
/postpartum 25-note analyzer (Sarah Connor) Walker · 15:00
/inhaler Dude, Where's My Inhaler (3 personas) Walker · 17:30
/previsit PreVisit intake conversation Nedoszytko · 25:00
/medduties On-call shift scheduler Nedoszytko · 28:30
/postvisit PostVisit patient companion Nedoszytko · 34:00
/settings OpenWeather BYOK (Inhaler AQI only)

Local

npm install
npm run dev          # Vite on :5173, proxies /api/* to Bun on :8080
bun server/index.ts  # in another shell
npm run build
npm run lint         # tsc --noEmit

For full LLM behavior set GEMINI_KEY in .env. Without it the proxy returns 503 and every route falls back to its deterministic path.

(Turnstile got dropped after the first week. Keeping the env around for when bots find the demo, which they haven't yet.)

Deploy

fly secrets set GEMINI_KEY=… TURNSTILE_SECRET=…   # one-time
fly deploy                                         # from repo root

App claude-hospital, region fra, auto-stop, single shared-cpu-1x VM with 256 MB. ~1 s cold start after idle.

Architecture

One Bun container serves the static dist/ and a /api/gemini/generate proxy. The browser posts a prompt; the proxy applies a per-IP sliding window plus a global daily cap, then forwards to Google. The shared GEMINI_KEY lives only as a Fly secret. The single user-supplied key is OpenWeather (for the Inhaler AQI feed), kept in localStorage.

Per-route caching by (route, input-hash) means a repeat click is a cache hit. No LLM call fires on mount or tab switch.

License

MIT. See LICENSE.

About

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages