Clinical Decision Support API

Embed drug-safety intelligence
directly into your dental software.

RxSage answers one critical question for every patient encounter: "Is it safe to prescribe this drug?" — powered by 7 evidence sources, deterministic risk guardrails, and GPT-4o clinical reasoning.

7 Evidence Sources
154 Drugs Mapped
39 Interaction Rules
<2s Median Latency
⚠️

Epinephrine + Beta-Blockers

Hypertensive crisis risk. Standard local anesthetic becomes dangerous without a flag.

🩸

Warfarin + NSAIDs

Compounded bleeding risk. Ibuprofen post-extraction can trigger serious hemorrhage.

💊

Bisphosphonate + Extraction

MRONJ risk is non-obvious. Years-old prescriptions still elevate jaw osteonecrosis probability.

Healthy Patient + Amoxicillin

Clean profile, no flags. RxSage confirms safe — dentist proceeds with confidence.

Dental prescribing has hidden, life-threatening edge cases.

Dentists prescribe local anesthetics, antibiotics, analgesics, and sedation agents — often to patients on complex medication regimens. A single missed drug interaction can escalate into a medical emergency mid-procedure.

Existing drug reference tools aren't built for dental workflows. They're generic, slow, and require manual chart review. RxSage is purpose-built: one API call surfaces every clinically relevant risk before the chair tips back.

For dental software companies, this is a differentiation opportunity. Practices that can't get this kind of safety check through your platform will look elsewhere.

From patient profile to structured
clinical analysis in under 2 seconds.

Every API request passes through a deterministic, multi-layer pipeline before GPT-4o ever reasons about the case.

1

Drug Normalisation

Brand names resolve to generics (Tylenol → acetaminophen, Coumadin → warfarin). Dosage noise stripped automatically.

drug_normaliser.py brand → generic
2

Two-Layer Cache Check

Supabase exact-match cache returns instantly — no tokens burned. In-memory L1 cache skips all external calls for recently seen drug combos.

Supabase L2 In-memory L1 Rate-limit exempt
3

Parallel Evidence Gathering

Six sources run in parallel — no single source of truth. Everything cross-referenced before GPT-4o sees it.

OpenFDA DailyMed PubMed KEGG MedlinePlus Local DB
4

Deterministic Risk Amplification

Patient factors set a hard risk floor in code — GPT-4o cannot lower it. Elderly + CKD + NSAID always returns high, no exceptions.

Risk floor enforcement Pydantic validation
5

Evidence Ranking & Conflict Resolution

Evidence scored on a 7-tier trust scale (case report → RCT → systematic review → FDA label). Conflicts auto-resolve to the higher-trust source.

evidence_ranker.py 60% trust / 30% relevance / 10% recency
6

GPT-4o Clinical Reasoning + Grounding Check

GPT-4o answers 7 dental workflow questions — anesthetic safety, antibiotic safety, analgesic safety, sedation safety, oral manifestations, and procedure context. Every claim must trace to verified evidence. A grounding check flags any interaction GPT-4o mentions that isn't in the source data.

GPT-4o Grounding validation JSON schema output

See a real API response — live.

Select a clinical scenario or build a custom patient profile and run the analysis.

POST api.rxsage.com/v1/analyze
POST
Request Body
Quick Scenarios
⚠️ Warfarin + Ibuprofen
🫀 Epi + Beta-Blocker
✅ Healthy Patient
🦷 Bisphosphonate + Extraction
Current Medications
Warfarin
Lisinopril
Metoprolol
Aspirin
Sertraline
Atorvastatin
Conditions
A. Fib
Hypertension
CKD
Diabetes
Hepatic Imp.
Response
⚕️

Select a scenario or configure a
patient profile and run the analysis.

Seven sources. Zero single point of failure.

FDA labels, adverse event reports, and peer-reviewed literature — cross-referenced on every query. All free public APIs, no licensing risk.

🏛️

Local Interaction DB

154 drugs mapped to pharmacological classes. 39 class-pair interaction rules. 16 drug-condition rules. Instant, no network call.

Tier 6 — Curated
💊

OpenFDA

Label warnings, contraindications, and interactions. Real-world co-prescription data from FAERS adverse events.

Tier 7 — FDA Label
📋

DailyMed

Structured FDA drug labels in SPL XML from NLM. Interactions extracted by LOINC code.

Tier 7 — FDA Label
🔬

PubMed

Pairwise drug interaction literature via E-utilities. Covers both drug–drug pairs and drug–procedure pairs (e.g., bisphosphonate + extraction → MRONJ literature).

Tier 3–5 — Literature
🧬

KEGG

ATC classification and CYP enzyme data for metabolic pathway conflicts.

Tier 5 — Curated DB
📖

MedlinePlus

Interaction and precaution sections from NLM drug pages.

Tier 4 — NLM

Three tiers of progressive disclosure.

Your UI surfaces only what each moment needs — from a glanceable mid-procedure flag to a full audit trail for documentation.

Tier 1 · Immediate

Instant Safety Flag

Rendered in under 100ms by your UI. Everything needed at a glance during a live procedure.

headline
proceed_flag
risk_level
flags[]
Tier 2 · Standard

Clinical Workflow Detail

For the pre-procedure review. Interaction breakdowns, procedure modifications, and workflow sections.

summary
key_interactions[]
procedure_modifications
alternatives[]
anesthetic_safety
analgesic_safety
sedation_safety
Tier 3 · Deep

Audit & Documentation

Full clinical explanation, source attribution, evidence quality metadata, and referral guidance.

clinical_explanation
physician_referral
monitoring_recs
evidence_quality
source_attributions[]

One endpoint. Structured JSON.
Ship in a day.

POST a patient profile and candidate drug. Get back a validated, schema-compliant clinical analysis. Works with any stack.

Python
# One-time setup — get your API key at rxsage.com
import requests

response = requests.post(
    "https://api.rxsage.com/v1/analyze",
    headers={"X-API-Key": "your_api_key_here"},
    json={
        "patient": {
            "age": 67,
            "sex": "male",
            "conditions": ["atrial fibrillation", "hypertension"],
            "medications": ["warfarin", "lisinopril"],
            "allergies": ["penicillin"],
        },
        "candidate_drug": "ibuprofen 600mg",
        "procedure": "molar extraction",
    }
)

result = response.json()
print(result["tier1"]["proceed_flag"])  # → "do_not_proceed"
print(result["tier1"]["risk_level"])    # → "high"
🔑

API Key Auth

SHA-256 hashed keys stored in Supabase. Rate limits: 10/min, 100/hr, 500/day per key.

Sub-2s Latency

Two-layer caching means repeat drug lookups return in milliseconds. Cache hits are rate-limit exempt.

📐

Pydantic-Validated Schema

Every response is validated against strict Pydantic models before returning. No malformed JSON ever reaches your UI.

Clinical safety isn't delegated to the model.

Every critical safety decision is enforced deterministically in code. GPT-4o is a reasoner, not a gatekeeper.

🛡️

Deterministic Risk Floor

Patient factors like age >65, renal impairment, polypharmacy, and pregnancy set a minimum risk level in code — independent of GPT-4o's output. If the model returns "medium" but the floor is "high", it gets overridden. This logic is auditable and testable.

🔍

Grounding Validation

After GPT-4o responds, a grounding check scans every claimed interaction against the verified evidence set. Claims that aren't traceable to a source are flagged with a grounding warning — so your users always know when the model is reaching beyond confirmed data.

⚖️

Multi-Source Conflict Resolution

When sources disagree, the ranker defaults to the higher-trust source. FDA labels beat observational data. Conflict logic is surfaced in the Tier 3 response.

📝

Full Audit Trail

Every analysis is logged: key ID, risk level, latency, cache status, and fallback usage. Full audit trail for every clinical decision — ready for regulatory review.

Ready to add drug safety
to your platform?

Book a 30-minute technical walkthrough with the RxSage team. We'll cover integration, pricing, and answer any clinical or engineering questions.

📅 Book a Demo 🔑 Request API Access

Used by dental software teams in the US · HIPAA-conscious architecture · Free sandbox keys available