One clinical problem, two architectures
I built two cardiology decision-support prototypes, both demonstrated to the Centre National de Cardiologie in Nouakchott. Both keep the clinical decision in deterministic code; the language model only explains or advises.
CNC Medication Assessment

FastAPI · PostgreSQL / pgvector · Next.js · French + Arabic (RTL). Rule, interaction and dose engines compute the risk category; the LLM explains the finished result behind an output guard. Knowledge-base releases need a second reviewer (four-eyes).
CardioGuard

React 19 · Cloudflare Workers · Arabic, French, Turkish. A missing, stale or wrong-unit lab value produces its own “requires data” outcome instead of passing as safe; verdicts live on the server and every action is written to an append-only audit.
What I learned: the riskiest cases were not bad model text but incomplete data and unreviewed rule changes — so one prototype made missing data a first-class outcome and the other put rule changes behind a second reviewer.
Synthetic demo data · not approved or used clinically · code private




