Most of the variance in adverse event grading does not come from disagreement about what Grade 2 nausea looks like. It comes from disagreement about whether a given event is treatment-emergent, a comorbidity flare, or both. This week we put more of that context into the grading flow.
A Week About Context: Patient, Workflow, and Audience
Most of the variance in adverse event grading does not come from disagreement about what Grade 2 nausea looks like. It comes from disagreement about whether a given event is treatment-emergent, a comorbidity flare, or both. Attribution is where experienced PIs and new coordinators most often diverge, and it is the decision point that downstream reviewers spend the most time querying.
This week we put more of that context into the grading flow itself. Comorbidities now surface in the AE grading UI and the judge agent reasons about them when proposing attribution. We also shipped real-time PRO submission tracking on the provider patient roster, an internationalized trial management UI across seven languages, six audience-specific marketing landings, account deletion on mobile, and a meaningful amount of test infrastructure underneath all of it.
Here is what shipped, why it matters, and what is next.
Feature Highlight 1: Comorbidity-Aware Adverse Event Grading
In oncology, the same toxicity term means different things on different patients. Grade 2 neuropathy on a patient with two years of well-controlled diabetic neuropathy is not the same clinical signal as Grade 2 neuropathy on a patient with no neuropathy history. Grade 3 dyspnea on a patient with moderate COPD is not the same signal as Grade 3 dyspnea on a patient with otherwise healthy lungs. Attribution depends on prior context, and that context lives in the chart, not in the grading flow.
This week we changed that. The AE grading surface now pulls in the patient's relevant comorbidities and shows them alongside the AE under review. The judge agent that proposes the multi-drug attribution sees the same context the clinician sees, and reasons about it explicitly: which comorbidity is plausibly contributing, which is not, what the differential looks like.
A few practical effects:
- Coordinators no longer flip back to the chart to weigh a comorbidity against a treatment-emergent grade. The relevant prior conditions are right there in the grading flow.
- The judge agent's suggested attribution includes the comorbidity-aware rationale, with the comorbidity referenced by name in the reasoning the clinician reviews.
- The clinician decides. The judge proposes. The structure stays human-in-the-loop, with the AI providing context, not conclusions.
The comorbidity hook that surfaces this context is centralized and consumed by the clinical summary, the grading UI, and the judge agent from the same source of truth. There is one place the comorbidity context comes from, which makes downstream consistency easy to reason about.
[Image: Provider app screenshot showing the AE grading flow with the comorbidity panel surfaced alongside the grade input, and the judge agent's reasoning citing a specific comorbidity by name]
Why it matters: Attribution is the white space in oncology safety AI. Most products grade severity; very few help with attribution, and the ones that try usually reason without the comorbidity context. Putting that context in front of both the grader and the judge brings the AI's suggested attribution closer to what an experienced PI would write, with the human override always one click away.
Feature Highlight 2: Real-Time PRO Submission Tracking on Patient Lists
Patient-reported outcomes are only useful if someone notices when they stop coming in. Until this week, checking whether a given patient had submitted recently meant opening the patient record. On a roster of 40 to 80 active patients, that is a real triage burden.
This week we surfaced the freshness directly on the roster. Each patient row in the provider patient list now shows a "Last PRO" timestamp. Coordinators can scan a roster, see which patients have not submitted symptoms in too long, and pull those records first.
Two things made this work in practice:
- Parallelized timestamp queries on the backend so loading a long roster is not bottlenecked on per-patient lookups
- Screen-focus refresh on the mobile app so when a coordinator picks the device back up, the timestamps reflect the current state, not the state from when the app went into the background
Why it matters: Following up on missing PROs is a daily-repeated task. Surfacing freshness on the roster removes the drill-down step and shortens triage. For trials where PROs are a primary endpoint, this is a direct lever on data completeness.
Feature Highlight 3: Trial Management UI in Seven Languages, With Inline Definitions
Clinical research is global, and the trial management UI was not, until this week. We shipped internationalized terminology tooltips across the trial management surface in English, Spanish, French, German, Italian, Chinese, and Japanese. Over 100 clinical terms (CTCAE grade definitions, SAE reporting, biomarker terms, enrollment stage language) now have inline plain-language definitions accessible by hover or focus.
Two consequences:
- New international coordinators onboard faster because the language they see in the UI matches the language they work in, and the acronyms are clickable when ambiguity surfaces.
- The same coordinator can field cross-site questions about terminology without a separate glossary tab open. The platform itself is the glossary.
Why it matters: Trial-network expansion runs into translation gaps fastest. Closing those gaps inside the UI, rather than in a separate help center, makes the platform usable in more sites without per-site retraining.
Improvements
- Instant workflow status on refresh: Workflow tabs now show the correct in-progress or complete state immediately after page reload during a long-running grading run, instead of flashing a stale "idle" state for a few seconds while data reloads. The fix denormalizes the workflow status onto the workflow row and pairs it with an extracted, reusable workflow recovery module.
- Marketing site rewritten with audience-specific landings: The public site now has dedicated landings for pharma sponsors, academic medical centers, CROs, community oncology practices, clinicians, and patients, plus engine, validation, and security pages and an AE Labor Cost Calculator. The FAQ hub answers 129 questions across 28 categories with structured data for AI search engines and explicit comparator answers vs adjacent product categories.
- Account deletion on mobile apps: Patient and provider mobile apps now support account deletion with configurable auth redirects, public segment routing, and a shared deletion utility module.
Quality and Reliability: Test Coverage Materially Expanded
Three pieces of test infrastructure landed this week that materially change how the platform is tested:
- Maestro-based mobile E2E suite for the patient app, running on every PR. iOS simulator builds migrated from Expo to xcodebuild with runtime safety checks, environment validation, and a type-safe E2E harness.
- Playwright trials coverage with 68 tests across dashboard, safety (AE/SAE/CTCAE), consent, coordinator, protocols, study sites, and PRO enrollment, with reusable page objects and enrollment-first navigation flow assertions.
- E2E auth route consolidation moved roughly 280 lines of E2E-only logic into a single dedicated module behind one registration call, fixing timing-related OTP failures that occasionally appeared in preview deployments.
The net is a substantially smaller surface area for "it works locally but fails in CI" classes of failure, and faster mobile feedback loops on PR.
Behind the Scenes
- Schema validator migration to the tree-shakable variant across the backend. The deployed bundle is smaller and cold-start working sets are tighter. Cross-package schemas were consolidated to one source of truth in the same change.
- V2 streaming architecture retired in favor of a simpler server-driven workflow pattern. Same user experience, significantly less developer complexity.
- Protocol ingestion workflow decoupled from backend types at the workflow-definition layer, reducing circular dependency risk.
- CORS centralization with credential-based CORS, wildcard domain support, staging environments, and the custom-headers allowlist extended for integration tests.
Customer Impact
Across this week's 18 product items, the headline outcomes are:
- Attribution is now comorbidity-aware: the judge agent reasons about pre-existing conditions when proposing attribution. The variance that comorbidity context introduces into AE grading drops.
- Coordinator triage on the patient roster is faster: real-time PRO freshness on the roster removes a drill-down step and shortens follow-up time on missing patient-reported outcomes.
- The trial UI is usable in seven languages with inline term definitions: international coordinators onboard faster and acronym ambiguity drops.
- The marketing site speaks each audience's language: pharma, AMC, CRO, community oncology, clinicians, and patients each land on a page tailored to their workflow, plus an AE labor cost calculator if the math matters.
Looking Ahead
The comorbidity work this week is a foundation, not a destination. Two near-term follow-ons we are scoping:
- Comorbidity-aware dose modification flagging at grading time, where dose-modification rules in the protocol interact with comorbidity context (renal dose adjustments for patients with chronic kidney disease, for example)
- PRO submission alerting so coordinators are notified, not just informed, when a patient's submission cadence drops below a configurable threshold
We will also continue extending E2E coverage to grading and adjudication workflows on mobile.
Try It
If you are running an oncology trial and want to see what comorbidity-aware attribution does to grading variance on your existing roster, the fastest path is to walk through a grading flow on a patient with a meaningful comorbidity profile. Send us feedback at hello@burna.ai, or book time at calendly.com/burna.
The principle stays the same: AI suggests, clinicians decide. Human-in-the-loop, always. This week the AI got more of the patient's actual context before it suggested anything.



