Where every symptom finds its answer.
OrixLink AI
At least 12 million Americans experience a diagnostic error in outpatient settings each year. Most happen not because clinicians lack knowledge, but because the intake process gives them no structured way to connect a patient's full symptom picture to a working differential before the encounter begins. OrixLink is the tool that closes that gap: any symptom, any person, no prior diagnosis required.
The proof point
Seven days after my spouse had a radial artery cardiac catheterization with stent placement, he developed forearm swelling, a hard and tight forearm to palpation, pain that had returned after initial improvement, pain waking him from sleep, and progressive grip weakness. I ran OrixLink. It flagged the cluster as a red-flag emergency consistent with compartment syndrome, returned a structured differential, identified four present red flag criteria, and recommended going to the emergency room now. He was seen. The assessment matched the clinical workup.
This is not a demo. This is what the product is for.
The problem
The stakes are not abstract
Americans experience a diagnostic error in outpatient settings each year
National Academies, 2015
of malpractice payments are diagnosis-related, the single highest category
Newman-Toker et al., 2021
of diagnosis-related malpractice outcomes resulted in death or permanent disability
Newman-Toker et al., 2021
of harmful diagnostic errors in hospital patients were likely preventable
BMJ Quality and Safety, 2024
Process
How it was built
STEP 01 — DISCOVERY
Discovery
I did not need to conduct user research for this product. I have conducted it for 17 years on every shift. The intake failure pattern is not hypothetical. It is the first 90 seconds of every clinical encounter, repeated across every acute care, post-acute, rehabilitation, and senior living setting I have worked in. The constraints came directly from the floor, not a whiteboard.
Pivots
What changed and why
Early enforcement leaned on localStorage. A determined user could clear storage and run unlimited free assessments. At roughly $0.014 per Haiku session, that is a real cost leak. The fix moved enforcement server-side: fingerprint and IP stored in the database with a 24-hour window and 30-day retention. The legal disclosure was added at the same time.
Client-side enforcement is a UX signal, not a security gate. Any enforcement that matters lives at the data layer.
Credit packs initially wrote to a credits_balance column on usage_tracking while attempt_assessment read a separate credits table. A user could purchase a credit pack, see a confirmation, and still hit a cap wall on their next assessment. Real money was moving. The fix aligned webhook writes with RPC reads before any paid user hit the flow.
Billing data model decisions compound quickly. Every column storing money-adjacent state needs an explicit contract with the function that reads it.
attempt_assessment could treat the last included subscription assessment as over-cap and pull from credits incorrectly. A user at exactly their monthly limit would have a credit consumed for a free subscription assessment. The fix reads v_used_before before incrementing and only enters the credits path when the subscription increment did not fire.
Atomic database functions require explicit boundary definitions, not implicit assumptions about when paths fire.
What shipped
Every layer, production-ready
Clinical assessment engine
3-step intake, 7 roles, 12 languages, 4-tier urgency, ranked differential, red flag cards, follow-up prompts, multi-turn conversation.
Monetization architecture
4 subscription tiers, credit packs, family plans with shared pool, atomic usage enforcement, Stripe Checkout plus full webhook lifecycle.
Auth and sessions
Google OAuth, email/password, anonymous gate with server-side enforcement, session migration, 30-minute inactivity timeout with warning banner.
Family system
Email and code invite flow, 600-assessment shared pool, 6 members, 10 per day per-member limit, cancellation cascade, usage dashboard.
Compliance and legal
First-use legal overlay, full legal page, HIPAA non-covered-entity disclosure, anonymous data retention policy, RLS on all database tables.
Infrastructure
Meridian Oracle design system, PWA with offline fallback, pg_cron reminders, admin dashboard, env validation at startup, Vercel deploy.
What this demonstrates
For every audience
The OrixLink system prompt must produce structured output, enforce clinical attribution language, surface urgency discretely, and handle the full range of symptom presentations without hallucinating diagnoses or missing red flags. The system prompt is the product IP.
Any symptom, any person, no prior diagnosis required is a positioning choice that most clinical AI products explicitly avoid. Existing tools narrow scope to reduce liability. OrixLink accepts the full scope and manages it through prompt constraint rather than feature limitation.
The Meridian Oracle system was not designed for OrixLink alone. It was designed as the foundation for the Rohimaya Health AI brand family. Maintaining visual coherence across multiple products while differentiating by audience is a Head of Product competency, not just a design competency.
The red flag logic, urgency taxonomy, care pathway recommendations, and attribution language all reflect 17 years of real clinical knowledge applied as product constraint. That is not replicable by a product manager without clinical experience.
Product strategy, conversation design, system prompt engineering, full-stack implementation, billing architecture, and clinical validation all came from one person. This is the portfolio evidence for what that combination looks like at production scale.
The honest summary
Three ways to understand this work
For engineers and architects
For product and clinical teams
For design and brand teams
The intake gap and diagnostic error statistics are real. Seventeen years at the bedside is the research program. The proof point is a real patient whose emergency presentation the product surfaced before a clinician saw him.