How we built a medicine-substitution engine that refuses to be clever
There is a category of bugs where the code looks perfectly correct in code review, the unit tests pass, the demo on stage goes beautifully, and a real person dies.
Medicine substitution is one of them.
We built . The team is Aman Sachan, Siddharth Lalwani, Chetna Kalra and Syed Akbar. The app is live at agadahealth.vercel.app and free, no account, no download.
Specifically, the things we are not sure we got right:
- The form-bucket regex is conservative by design. It probably over-buckets products into
liquidand under-buckets intosolid. We'd rather over-block than under-block, but if you have a counterexample we'd like to know. - The drug-prefix list is hard-coded. There are probably more pharmacological modifiers we missed. The list is in the constant
DRUG_PREFIXnear the top ofdbService.js. - The dose tolerance (5% for combos, 10% for singles) is a guess. We have no clinical authority. If you have a citation for a tighter or looser value, please open an issue.
- The synonym map (
amoxicillin ↔ amoxycillin,frusemide ↔ furosemide, etc.) is hand-maintained. We know we are missing entries.
If you are a pharmacist, a clinician, or someone who has actually watched a patient get the wrong generic, we would genuinely value your review of the blocking rules. The code is small — the file is under 300 lines. The hard parts are the parts we deleted, and we want to make sure we deleted the right ones.
Agada is built by Team Agada (Aman Sachan, Siddharth Lalwani, Chetna Kalra, Syed Akbar) for Open Innovation 2026. The data we use — CDSCO, Jan Aushadhi, NPPA — is public domain and we don't claim ownership. Agada is not affiliated with CDSCO, BPPI, NPPA, or the Ministry of Health. It is not a substitute for medical advice.
SOCIAL SHARE CARD GENERATOR