Select the date range for your cardiologist report:
ClinBridge logs your blood pressure, heart rate, weight, fluid intake, symptoms, medications, meals, and activities — then analyzes the patterns over time so you and your cardiologist have real evidence to work from, not just a single office reading.
Four Advanced Analytics detectors continuously watch for clinically meaningful changes: sustained heart rate shifts, decompensation warning signs, pulse pressure trends, and symptom convergence patterns. Sentinel goes further — it watches for the personal pre-event patterns that came before your own prior clinical events, not population averages. When any tool finds something significant, it tells you what was found and why it matters — in plain language.
ClinBridge is a pattern awareness tool, not a diagnostic device. It does not diagnose, prescribe, or replace your care team. All findings are described as directional — they point toward patterns worth discussing with your cardiologist, never toward a conclusion. The phrase you will see throughout the app: "Math is directional, not definitive."
ClinBridge adapts to you — your conditions, your doctor's targets, your care plan. It needs three things from you first. After that, just start logging. The app will guide you to everything else as your data builds.
Your doctor asked you to track your blood pressure — start there. Log it every time you take a reading using the Log Blood Pressure button on the main screen.
If your doctor also mentioned fluid intake, weight, or symptoms — turn those on in Settings → Tracking Features. Each one adds a button to the main screen.
Everything else can wait. The more you log, the more ClinBridge learns about your patterns — and it will let you know when a new feature is ready to be useful to you.
As your data builds, Sentinel — the status banner on your main screen — will periodically surface one suggestion at a time. Not a list of everything the app can do. Just the one thing that's most useful to you right now, based on what you've already logged. Tap the banner anytime to see it.
Use the full setup guide below to configure everything at once — medications, daily schedule, notifications, and advanced features.
Sentinel is separate from the four detectors and works differently. Instead of watching for population-based thresholds, it watches for your personal pre-event patterns. Every time you pin a clinical event, Sentinel extracts what your data looked like in the 72 hours before it — your Footprint. When your live data resembles a prior Footprint, Sentinel tells you which event it matches and how. Tap 🛡️ Sentinel on the main screen to open it. See the 🛡️ Sentinel tab in this guide for the full explanation.
Analyzes your full HR history to find level shifts — periods where your resting heart rate durably changed to a new baseline — and rapid changes — sudden single-session jumps. Requires 6+ days of HR readings. Use the Today / 7 Days / 30 Days / All Time buttons to narrow the window. A "🔍 Investigate" button on any finding opens Anchor Date Investigation for that exact date.
Monitors five clinical signals simultaneously: weight gain, cardiac output (HR + pulse pressure), symptom frequency, fluid intake patterns, and notes keyword scan. Each signal is scored individually. The composite result ranges from ✅ All Clear → 📋 Early Indicator (1 signal) → ⚠️ Monitor Closely (2+ signals) → 🚨 Contact Cardiologist (multiple red signals). One signal alone is not cause for alarm — the value is in seeing multiple signals converge.
Pulse pressure is systolic minus diastolic BP. Normal range is 40–60 mmHg. A narrowing trend can indicate the heart is working harder to maintain output; a widening trend may indicate arterial stiffness. Many cardiac patients have a chronically reduced PP that is their personal baseline — the detector recognizes this and labels it "Chronically Narrow — Your Stable Baseline" rather than an acute alert. What matters is change from your baseline, not comparison to a textbook number.
Analyzes 30 days of symptom logs across three layers: (1) Intraday clusters — 3+ symptoms within a 4-hour window on the same day; (2) Multi-day escalation — the same symptom worsening in severity across multiple days; (3) Clinical triads — recognized symptom combinations with known cardiac significance (e.g., shortness of breath + fatigue + edema). The 60-day Timeline tab shows where clusters occurred visually.
When any detector finds a significant event (yellow or red), it suggests pinning it. Pinned events are saved permanently — they never roll off with the 90-day data window. Each pin captures the detector's full finding plus all raw log data for that date.
Pinned events appear in three places: the 📌 Pinned Events button in Analytics, the 60-day Timeline as amber markers, and your Doctor's Report as a dedicated section.
After your cardiologist appointment: use "Archive & Clear" to permanently save the current pins and start fresh for the next period. An appointment nudge reminds you automatically.
All four detectors use statistical pattern detection on self-reported data. The math is directional, not definitive. A finding means: "this pattern is present in your data and worth discussing." It does not mean: "something is wrong." Findings can reflect real clinical changes, data entry errors, device variability, or normal day-to-day fluctuation. Your cardiologist provides the clinical interpretation — ClinBridge provides the data and the pattern recognition to make that conversation more productive.
A Pinned Event is a flagged finding from one of ClinBridge's four detectors — captured permanently, along with the full raw data behind it, so it never disappears when your 90-day rolling window advances. It is the difference between "I thought I noticed something" and "here is the exact date, the exact reading, and every data point around it."
Any single detector firing on any single day is background noise. What ClinBridge watches for is convergence — two or more independent detectors flagging the same time window from different directions. When your HR level-shifts and your pulse pressure narrows and your symptom frequency rises in the same week, that combination is clinically meaningful in a way that no individual reading can be.
A single yellow flag: worth watching. Three yellow flags on the same week: worth showing your cardiologist.
Open Pinned Events before your appointment. Each detector-backed pin card now shows a “What to Say at Your Appointment” box with a pre-written sentence generated directly from your detector data. You do not have to figure out how to explain it — just read it aloud exactly as written.
After reading, ask: “Does this line up with anything you’re seeing in my chart? Is it worth investigating further, or is it within normal variation for my condition?”
The sentences in the “What to Say” box are generated entirely from detector data — not from your written notes or your memory. You cannot edit them, and that is by design.
This means the app stands behind every word it generates. If you choose to say something different at your appointment, that is your right — but the documented, data-backed language is always there as your record. A cardiologist reading a timestamped, algorithm-generated sentence weighted by your personal baseline carries more clinical credibility than a patient’s self-description.
A patient using ClinBridge chose to share their experience and gave permission for it to be discussed here. They have a pacemaker and had been logging their heart rate daily for several weeks. The HR Rate Detector identified a durable level shift — a point where the resting heart rate had measurably settled into a new, stable baseline distinctly different from the weeks before it. The change wasn't a single bad reading. It was a sustained pattern across multiple days that the algorithm confirmed as statistically significant.
The pacemaker's remote monitoring system reviewed the same time period during its scheduled download. It did not flag the shift. The clinical team saw nothing requiring follow-up.
The patient brought the Pinned Event to their next cardiology appointment and read it aloud. The cardiologist reviewed the supporting data, confirmed the shift was real, and ordered follow-up testing. The window between device downloads — where most of daily life happens — is exactly the gap that self-logged, multi-stream data is built to fill.
Your heart already works harder than most. In hot weather, it must also pump extra blood to your skin to cool your body — on top of whatever activity you're doing. This dual demand can trigger dangerous drops in blood pressure, arrhythmias, or acute decompensation, especially with conditions like heart failure, hypertension, or a pacemaker/ICD.
ClinBridge automatically matches conditions in your profile against a list of cardiac and metabolic conditions known to increase heat risk: Heart Failure, Hypertension, Atrial Fibrillation, Coronary Artery Disease, Pacemaker/ICD, Cardiomyopathy, PAD, Diabetes, CKD, COPD, Obesity. Any custom conditions you've entered are also included.
When your doctor says "50 oz of fluid per day," they're giving you a safe baseline number — typically set for your average conditions. They're usually not accounting for your activity level that day, how many hours you'll be awake, whether it's hot outside, or how well you slept the night before. Your body's actual fluid needs vary with all of these things.
ClinBridge can't tell you whether to exceed your limit. But it can track what happens when you do — and over time, build a pattern that you and your doctor can review together to get you a more personalized recommendation.
1. Each morning, a 45-second check-in prompt appears on your dashboard.
You tap how you feel (Good / Fair / Rough), note any morning symptoms, and answer a few quick questions about yesterday.
2. The questions focus on yesterday's context — were you physically active? Hot outside? Did you exceed your fluid limit? How did you sleep? Did you eat late?
3. After 7+ days of check-ins, the Doctor's Report gains a new section: Lifestyle & Recovery Patterns. This shows whether you felt better or worse the morning after over-limit fluid days, whether activity is a compensating factor, and how poor sleep affects your next-day symptoms.
4. You bring this report to your cardiologist. Instead of asking "can I drink more on busy days?", you show them 60 days of evidence — and they can give you an informed, personalized answer.
ClinBridge records your self-reported data and identifies patterns. It does not recommend specific fluid amounts, tell you whether to exceed your prescribed limit, or replace your care team's guidance. Use the patterns you collect to have a better-informed conversation with your cardiologist — not to make independent medical decisions.
Morning Check-In is on by default. To turn it off: Settings → Features → uncheck "🌅 Morning Check-In & Pattern Tracking." When off, no prompt appears and no data is collected. If you turn it back on, previously collected check-ins are still available and will appear in future reports.
Yes — always export your data before updating. Go to Device Sync & Backup → Export ALL Data and save the file. Then update, then import your data back. This takes about 60 seconds and protects everything you've recorded. The app will show you an update banner and walk you through the steps.
At minimum, before any app update and once a week as a habit. Also back up before clearing your browser cache or before deleting the ClinBridge icon from your Home Screen — both of those actions erase your local data. Go to Device Sync & Backup → Export ALL Data.
After importing, the app reloads automatically. If your data still doesn't appear: close the app completely and reopen it. On any phone or tablet, close the app fully and reopen it. On any desktop or laptop browser, close the tab and open a fresh one at clinbridge.clinic. On iPhone/iPad specifically, swipe up from the bottom and swipe away ClinBridge before reopening. Your .json backup file is safe — you can import it again as many times as needed on any device.
Not automatically — you need to export before updating and import after. This is intentional: ClinBridge never moves your data without you taking a deliberate action. Your health data stays under your control at all times.
ClinBridge has four pattern detectors that analyze your historical data — not just today's readings. The HR Rate Detector finds sustained heart rate shifts and sudden changes. The Decompensation Warning monitors five clinical signs of CHF fluid overload building simultaneously. The Pulse Pressure Detector tracks the gap between your systolic and diastolic readings as a cardiac output indicator. The Symptom Convergence Detector finds clusters, escalations, and clinical patterns across your symptom history. All four are in the Analytics section of the main page.
When a detector finds a significant pattern, it suggests pinning it. A pinned event is permanently saved — it never disappears when your 90-day data window rolls forward. It captures the detector's finding, the event date, and all the raw data (BP readings, symptoms, weight, notes) from that day. Pinned events appear in your Doctor's Report as a dedicated section, in the 60-day Timeline as amber markers, and in the Pinned Events viewer under Analytics. Think of pins as your pre-prepared clinical evidence for your next cardiologist appointment.
After your appointment, open the Pinned Events viewer and tap "Archive & Clear." This permanently saves all current pins to an archive (you can always view them), then clears your active list so the next period starts fresh. ClinBridge will remind you automatically — if you have an upcoming appointment within 14 days, or if you just had one this week, a banner appears on the main page and inside the Pinned Events modal. If no appointment is logged but your oldest pin is 60+ days old, you'll see a gentle nudge to archive and refresh.
It means ClinBridge's detectors can tell you that a pattern exists in your data — but they cannot tell you why it exists or what it means for your specific medical situation. A detected HR level shift is real math — but it could reflect a clinical change, a medication adjustment taking effect, seasonal variation, or something entirely benign. Your cardiologist provides the interpretation. ClinBridge provides the evidence and the pattern recognition to make that conversation richer and more productive than walking in with just a blood pressure number.
ClinBridge keeps 90 days of rolling data on your device. For long-term preservation, export your data as a backup at the end of each quarter — the last day of March, June, September, and December. Save these files somewhere safe (iCloud, Google Drive, email to yourself). A new cardiologist years from now could import your Q3 2026 backup and see your complete cardiac picture from that period. Pinned events in each backup capture the most significant findings for that quarter, pre-annotated for clinical review.
No — ClinBridge findings are not emergency indicators. A red finding means the pattern in your data is statistically significant and worth discussing with your cardiologist promptly — not that you are in immediate danger. If you are experiencing chest pain, severe shortness of breath, sudden dizziness, or other acute symptoms, call 911 or go to an emergency room regardless of what ClinBridge shows. ClinBridge is for pattern tracking over time, not acute symptom assessment.
ClinBridge stores everything — your blood pressure readings, symptoms, medications, weight, fluid logs, notes, and pinned events — exclusively in your browser's local storage on the device you are using right now. There is no server. There is no account. There is no cloud sync. Nothing you enter is ever transmitted anywhere.
Only you — on the device where ClinBridge is installed. If you export your data and share the .json file with someone (a family member, caregiver, or doctor), that person can import and view it. That sharing is entirely under your control and only happens when you initiate it.
If you add ClinBridge to your Home Screen on iPhone or iPad, be aware that the local storage is tied to that browser and device. Removing the icon erases the stored data. Always export a backup before removing the icon or clearing browser data.
ClinBridge was built by a cardiac patient after a hospitalization, motivated by a simple question: why isn't there a tool that tracks all the things my cardiologist actually needs to see — BP trends, symptoms, fluid balance, medication adherence, and pattern detection — in one place, for free, without giving up my health data?
The answer was to build it. The privacy model — all data on-device, no accounts, no servers — is not a limitation. It is a deliberate choice rooted in the belief that your cardiac health data is yours, belongs to no one else, and should never become a product.
ClinBridge is a personal health tracking tool, not a medical device. It is not FDA-cleared, CE-marked, or certified as a clinical diagnostic system. It does not provide medical advice, diagnosis, or treatment recommendations.
Accuracy statement: All pattern detection is statistical and based on self-reported data. Findings are directional, not definitive — they identify patterns worth discussing with your cardiologist, not conclusions about your medical condition. Results may be affected by data entry errors, device measurement variability, and individual clinical factors the app cannot account for.
Always consult your cardiologist or other qualified healthcare provider before making any changes to your care plan based on information from ClinBridge.
Use the tools below to clear your health data stored on this device. These actions cannot be undone.
Removes only today's BP readings, symptoms, meals, activity, dismissed events, and daily plan. Your settings, medications, procedures, appointments, and all previous days are kept.
Permanently erases everything: all daily readings (every day), settings, medications, procedures, appointments, custom symptoms/activities, analytics notes, and reminders. The app will return to a fresh-install state.
Your data lives only on this device. Back up regularly so you never lose it.
How to back up: Go to Device Sync & Backup → Export ALL Data. Save the .json file to your Files app, iCloud, or email it to yourself.
When a new version is available, the app will show a banner at the top. Follow these steps in order — skipping step 1 risks losing your data.
After importing, the app reloads automatically. If your data still doesn't appear:
This tab tracks bugs that were reported and fixed — things that were broken and are now resolved. Each entry describes the defective behavior, the root cause, and the fix applied.
For new features and capabilities, see the Planned Features tab.
_decompLastPoints) with no freshness check — if the signal fired at load time then cleared, the badge stayed stale indefinitely until the modal was opened. (2) The pin card was rendered purely from live analysis state — no record of the firing event was preserved, so once the signal cleared the pin opportunity was silently lost. Fix: When analyzeDecompensation() scores ≥2 signal points, a session-scoped ghost record (window._decompGhostFire) is written with the active signal labels and today's date key. If the user later opens the modal and the live signal has cleared, _injectDecompPins() detects the ghost record and renders a muted “Earlier Today: signals fired” card with a full pin button — the window stays open for the rest of the day. Ghost expires at midnight via date-key comparison. Separately, updateAnalyticsBadges() now stamps a cache age timestamp (_decompCacheTs); if the cache is >20 minutes old it re-runs _silentDecompAnalysis() before setting the badge, keeping the badge accurate without requiring the modal to be opened.cbTrack() system: ask_panel_opened (each time the Ask panel is opened — measures session frequency), ask_question_submitted with session_q_count parameter (each question sent — counts total volume and questions-per-session depth), and ask_answer_received with session_q_count (each successful answer — measures completion rate vs abandoned questions). A per-session counter _askSessionQuestionCount resets each time the panel opens, enabling average questions per session to be tracked in GA4. This data supports future rate-limit decisions without guessing at real usage patterns.undefined/undefined in the data context sent to Ask, making all BP-related questions unanswerable. Root cause: buildAskContext() was reading r.sys, r.dia, r.hr, and r.time but the BP reading object stores these as r.s, r.d, r.h, and r.t respectively. The same mismatch affected the historical average BP calculation. Also fixed: weight time field (lw.time → lw.t). All BP data, heart rate, and weight timestamps now serialize correctly into Ask context.M array, field m for name, t for time) and up to 20 meals from the last 14 days (from getAllHistoricalData().meals) are now included in context.buildAskContext() revealed that every data type except fluid total and notes had wrong field names. Symptoms used s.name (should be s.symptom) — both today’s and 14-day history. Medications used m.name (should be m.medicine) and a nonexistent m.dose field (replaced with m.time). Pinned Events used p.date, p.doctor, and p.status which do not exist as top-level fields — corrected to p.eventDate, p.commLog.to, and p.commLog.status respectively. Pinned Event p.summary (the detector’s clinical summary text) and question responses (q.response) are now also included in context. All Ask questions involving symptoms (“what symptoms have I had?”), medications (“what did I take today?”), and pinned events (“what do I need to discuss with my doctor?”) now receive accurate data..modal elements for open-state, not the Ask panel. On iPhone PWA, scrolling within the fixed Ask sheet still fires window.scroll, which re-showed the FAB when scrollY > 300px because the Ask panel is not a .modal. Fix: scroll listener now also checks askPanel.style.display, matching the existing _syncFab() logic. Belt-and-suspenders: FAB z-index reduced from 999999 to 999985 (below the Ask backdrop at 999989) so it can never float above the Ask panel regardless of timing.Clinical Event & Appointment Intelligence — 4 New Nudge Rules — Closes the gap between clinical events that happen in the real world and the data ClinBridge needs to stay accurate. New helper function _openSentinelToEventLog() deep-links directly into Sentinel and opens the Clinical Event Log form, scrolling it into view (400ms deferred after render). Four new NUDGE_RULES: (1) pre_appointment_snapshot — fires when a saved appointment is 0–3 days away, no Snapshot saved in 7 days, and 14+ BP readings exist. suppressDays: 3. Action button opens Symptom Convergence → Timeline tab. (2) post_visit_clinical_event — fires when a saved appointment date was 1–4 days ago and no sentinel clinical event has been logged on or after that date. suppressDays: 5. Action button opens Sentinel Clinical Event Log form. (3) hr_shift_no_clinical_event — fires when a pinned HR level shift event (source: hr_detector) exists but no clinical event has been logged within 30 days of the pin date. suppressDays: 14. Action button opens Sentinel Clinical Event Log form. (4) clinical_event_log_unknown — fires when app age ≥30 days, 20+ BP readings, hasConditions, and clinbridge_sentinel_events is empty — the user has never logged any clinical event. suppressDays: 30. Educational nudge, action button opens form. All 4 rules read cardiacAppointments and clinbridge_sentinel_events directly from localStorage via try/catch, matching the existing pattern used by other rules. Gap 4 (reset-baseline reminder after deliberate non-reset) intentionally held — fires too close to a user choice and risks feeling intrusive. Test suite additions required (v12 → Section 52).
Getting Started — “Open Settings Now” button opened Settings hidden behind Help & About — The button called openSettings() directly. openSettings() writes to #modal and makes it visible — but #aboutModal (Help & About) was still displayed on top of it, hiding Settings completely. Fix: button now calls closeHelpModal(); setTimeout(function(){ openSettings(); }, 100); — the identical pattern used by every Settings-opening button inside the wizard (_wzGoSettings()). All other tappable elements in the Getting Started section were audited: wizard navigation stays within #aboutModal and is unaffected. No other buttons had this issue.
Getting Started Tab Rewrite — Progressive Onboarding — The Getting Started tab has been rewritten from a 1,200-word feature manual into a four-section progressive onboarding experience. Section 1: a warm three-step handshake (name, conditions, BP targets) with a direct “Open Settings Now” button. Section 2: plain-language guidance on what to log first — doctor-prescription framing, no feature inventory. Section 3: a short explanation of how Sentinel surfaces one suggestion at a time as data builds, so users understand they don’t need to configure everything upfront. Section 4: the full Setup Wizard repositioned at the bottom under “Already familiar with ClinBridge?” — preserved completely, just no longer the first thing a new user sees. Zero new JavaScript. Zero new logic. Zero conditional paths. The tab is static HTML — testable by eye on any device. Rationale: the behavioral nudge system is now the progressive onboarding engine; the Getting Started tab’s job is to earn trust and get the three critical data points in, then step back.
Behavioral Profile Layer — Accumulated Data Integration — Goal 3 of the v9.10.x behavioral intelligence sprint. Five changes shipped: (1) Streak rules corrected — streak_7_days and streak_30_days now use currentStreak directly instead of the old count/age approximation, which could fire for non-streak loggers. (2) fluid_never_logged nudge — fires when age ≥14 days, 20+ BP readings, hasConditions, and fluid.count = 0. Fluid tracking is a direct decompensation signal; this gap is clinically meaningful for cardiac patients. suppressDays: 21. Action button opens fluid log. (3) pulse_pressure_never_viewed nudge — fires when age ≥14 days, 20+ BP readings, hasConditions, and the Pulse Pressure detector has never been opened. suppressDays: 30. (4) appointment_never_saved nudge — fires when age ≥30 days, hasConditions, and engagement.appointmentsSaved = 0. First rule to use the engagement.* block. Without a saved appointment the Appointment Snapshot workflow is inert. suppressDays: 21. Action button opens appointment modal. (5) Instant-dismiss backoff in evalCard() — if cardsShown ≥ 8 and cardsInstantDismissed / cardsShown ≥ 0.75, nudge evaluation is skipped for that Sentinel session. Unlocks and encouragements still fire. First use of signals.* data in rule logic. Ratio self-corrects naturally as cardsReadAndDismissed grows. Test suite additions required (v12): fluid_never_logged fires/suppresses correctly; pulse_pressure_never_viewed fires/suppresses; appointment_never_saved fires/suppresses; backoff activates at threshold and lifts as ratio improves; streak_7_days uses currentStreak not count; streak_30_days uses currentStreak ≥30.
Baseline Conditions Cross-Reference — Each BP reading card now shows a personal baseline context pill when the reading is within configured thresholds (no red alert) but meaningfully elevated above the user’s personal quiet baseline. The pill appears in amber with the specific deltas: e.g. “↑ Sys +14 · HR +16 vs your baseline”. Thresholds: systolic ≥10 mmHg above baseline, diastolic ≥8 mmHg, HR ≥12 bpm — any one triggers the pill. Requires 14+ qualifying baseline days; never fires alongside a threshold alert. _sentMetrics() extended to return avgSys and avgDia; _sentComputeBaseline() extended to include both in the baseline object. New _getPersonalBaseline() session-cached wrapper computes once per 5 minutes and reuses across all readings in a render — avoids re-scanning 150 days per card. No changes to alert logic or Sentinel engine.
Heat & Humidity Sentinel Integration — The Heat Advisory system is now wired into CB_BEHAVIOR. Three additions to the behavioral schema: heat_advisory screen tracker (records manual advisory checks), heatAdvisoryAutoFired signal counter (increments each time an advisory fires automatically after activity logging), and heatAdvisoryEnabled in the setup snapshot (captured on every Settings save). Two new nudge rules: heat_advisory_conditions_disabled fires when the user has heat-sensitive conditions and 5+ activity logs but Heat Advisory is off — direct action button opens Heat Settings (suppressDays: 14). heat_advisory_feature_unused fires when the advisory is enabled and conditions are present but neither auto nor manual advisories have ever fired — guides the user to start using temperature bands during activity logging (suppressDays: 30). Both rules pass the cry-wolf test: they fire because of a safety behavior gap, not to add trigger volume.
Behavioral Intelligence — Setup Gap Rules + Unified Guidance — Three new companion card nudge rules now fire based on the CB_BEHAVIOR setup snapshot: setup_no_conditions (fires at 3+ days if no conditions set, suppressed 7 days), setup_no_patient_name (fires at 5+ days if name missing, suppressed 14 days), and setup_bp_not_customized (fires when 20+ readings logged and 5+ days old with default BP targets, suppressed 14 days). Each card includes a direct action button that closes Sentinel, opens Settings, and scrolls to the relevant section. The settings_complete encouragement rule now reads d.setup directly instead of calling _checkSettingsGaps() live. The standalone Settings Gap Card in Sentinel (v9.10.35) has been retired — setup guidance is now unified under the companion card system. snapshotSetup() is now called on app init (500ms deferred) so the setup block is populated from day one, not only after the user visits Settings.
Behavioral Intelligence Layer — Schema v2 Redesign — The silent behavioral observer has been redesigned from the ground up. CB_BEHAVIOR now tracks five dimensions: presence (screens and log types used), frequency and recency (with streak tracking and time-of-day distribution per log type), quality (notes attached to logs, context saves), setup completeness (snapshotted on every Settings save — patient name, conditions, daily events, medications, BP target customization), and engagement depth (anchor investigations saved, Doctor’s Reports generated, analytics notes, context notes, appointments, data exports, wizard completion). Signal response tracking records whether companion cards are read before dismissal or instantly dismissed, giving the rule engine a measure of its own effectiveness. 9 new hooks added. Full forward migration from v1 installs with zero data loss. No visible UI changes.
Activity Timer — Background Mode — A timed activity can now be minimized to a persistent blue pill in the bottom-left corner of the screen (mirroring the Today’s Status button on the right). Tapping “↙ Minimize — keep timer running in background” inside the timer display collapses the activity modal, saves all form state (activity type, notes, exertion, temperature band), and continues the timer silently. The blue pill shows the activity icon, name, and live elapsed time. The user can then log BP, check Sentinel, or do anything else in ClinBridge without losing their ride time. Tapping the pill reopens the activity modal with the exact accumulated time, all fields pre-restored, and correct timer button states. If the user taps Log Activity while a background activity is running, a choice prompt appears: Resume & Finish the current activity, or Discard & Start New. The activity pill stays visible even when other modals are open so the user always knows the timer is running. Reminder queue badge moved to bottom:82px to clear both pills. Today’s Status FAB behaviour unchanged.
Sentinel — Fluid Tracking Gap Detection — Sentinel now monitors fluid logging patterns and surfaces a single card when a meaningful gap is detected. Two scenarios are covered: (1) Event deletion drop — when a daily event with a fluid goal is removed from Settings, Sentinel compares today’s fluid total against the 7-day average and, if the gap is significant, shows a card with “Log Fluid Now” and “Restore Event” buttons. (2) Silent fluid day — after 7 PM, if the user has logged fluid on 5 or more of the last 7 days but today’s total is zero, Sentinel surfaces the same card. Both checks are gated to once per 24 hours so the app never nags. The fluid events snapshot is saved every time Settings are saved and on app startup so deletion detection is always current.
Sentinel — Settings Gap Card — Sentinel now checks for high-impact incomplete settings and surfaces a single non-intrusive card at the top of the Sentinel panel. The card identifies up to three gaps in order of clinical importance: patient name missing (affects Doctor’s Report header), no conditions selected (affects symptom matching and detector context), no daily events configured (fluid and BP reminders inactive), and no medications listed (effectiveness tracking inactive). Each gap has one button that closes Sentinel, opens Settings, and scrolls directly to the relevant section. The card has a dismiss button that hides it for 14 days. It never appears more than once every 14 days, and disappears permanently once all gaps are resolved. Does not show until Sentinel has built a baseline (7+ days of data).
Notifications — reminder no longer interrupts mid-log work — When a scheduled event reminder fired while the user was filling in a log form (BP, weight, symptoms, activity), showEventReminder() called showModal() which directly overwrote modalContent.innerHTML, destroying any partially entered data. Fixed: showEventReminder() now detects when the main modal is already open and queues the reminder instead of interrupting. A non-intrusive green badge appears at the bottom of the screen showing the event name with “Show Now” and “Skip” options. The OS chime still plays once. When the user finishes their log and closes the modal, the queued reminder appears automatically. No data is ever lost.
Notifications — advance chime ignored notify=false on Plan My Day events — The advance pre-warning system (checkScheduledAlerts) pushed all dailyPlan events into its fire queue without checking whether the user had turned off notifications. Events with notify: false were chiming early anyway. Fixed: dailyPlan events with both notify: false and sound: false are now skipped.
Notifications — advance chime double-fired after page reload — firedEvents (the advance-reminder tracking object) was stored only in memory. If the app was reloaded or the PWA woke from background after an advance chime had already fired, firedEvents was empty again and the chime re-fired. Fixed: firedEvents is now persisted to localStorage under BP_TRACKER_FIRED_EVENTS and restored on init alongside firedReminders.
Notifications — OS banner could fire after in-app reminder was already dismissed — Plan My Day event IDs were constructed with array index (plan_0_Name) in three different places, with no guarantee the index at scheduling time matched the index at dismissal time. Fixed: all three systems now use a shared _planEventId(evt) helper that builds the ID from name + time instead of index, guaranteeing consistent tags across the full scheduling → fire → dismiss cycle.
Notifications — “Not Now” permanently blocked future permission prompts — promptPWANotificationPermission() wrote the CLINBRIDGE_NOTIF_PROMPTED flag before showing the modal. Tapping “Not Now” left the flag set, permanently blocking the prompt. Fixed: flag now written only when the user taps “Allow Reminders.” A “Re-enable Reminder Prompt” button appears in Settings → OS Notifications for users who previously tapped Not Now.
Sentinel Doctor View — Symptom Frequency now shows actual symptoms — When a cardiologist asks “what were the symptoms?” the Symptom Frequency Doctor View now shows a full list of every symptom logged in the last 7 days, grouped by date, with symptom name, severity score (color-coded), time logged, and any notes. Cardiologist can see not just “3.3 per day” but exactly what was logged, when, and how severe.
Help & About — tab bar scroll chevrons — A tappable ’ › ’ chevron now appears on the right edge of the Help tab bar whenever more tabs are hidden off-screen. Tapping scrolls the bar right by 200px with smooth animation. A ’ ‹ ’ chevron appears on the left when scrolled away from the start. Both chevrons auto-hide when their respective edge is reached. Chevrons use a gradient fade so hidden tabs are visually implied. Large tap targets for senior users. Built for the 14-tab bar where 5–6 tabs are typically off-screen on mobile.
Doctor View — symptom duplicates — getAllHistoricalData() already includes today’s saved symptoms. The Doctor View code was also adding the in-memory S array on top, doubling every symptom logged today. Fixed by removing the S merge — getAllHistoricalData() is the single source of truth.
Sentinel Doctor View — wrong stream shown — doctorLines[i] was mapped to score.streams[i] for stream key lookup, but doctorLines only contains drifting/alarming streams while score.streams contains all streams. Index mismatch caused the first drifting stream to always open HR Daily Spread Doctor View regardless of which sentence was tapped. Fixed: replaced parallel arrays with paired doctorEntries array of {line, key} objects built directly from each stream as it is processed, guaranteeing each sentence button opens the correct stream’s Doctor View.
Doctor View — HR pins still showing ? after repair — _dvBuildHRContent() read only beforeMean/afterMean (level_shift fields), but rapid_change pins store values in from/to fields. Result: all Rapid HR Change pins showed ? even after auto-repair. Fixed to resolve both field names with fallback. Also corrects the section heading (shows “Rapid Heart Rate Change” vs “Heart Rate Level Shift” based on type), and shows “Single session / within one day” instead of blank shift date for rapid changes. Repair key bumped to v2 to force re-run on all existing devices.
Doctor View migration notice — Users upgrading from versions prior to v9.10.25 who have existing pins with empty detectorData now see a one-time blue notice at the top of Pinned Events. The notice explains that existing pins still work for appointment read-aloud, but re-pinning will unlock the full “Tap to Show Your Doctor” data view. Includes a count of affected pins and step-by-step re-pin instructions. Dismissed permanently via “Got it” button stored in localStorage. Notice auto-hides permanently once dismissed and never reappears. Also auto-hides if all pins already have detectorData.
Doctor View — auto-repair of existing pins — On first open of Pinned Events, silently reconstructs detectorData for any existing pins with empty detector data by parsing their summary strings. Covers all four detector types: HR level shift (extracts before/after bpm averages, shift magnitude, direction), HR rapid change (from/to bpm, delta, direction), decompensation (signal names and count), pulse pressure (avgPP, chronic flag, status title), and symptom convergence (symptom names, average severity). Runs once, never again. No user action required — Doctor View data will populate automatically on next open of Pinned Events.
Doctor View — overlay hidden behind Pinned Events modal — Doctor View overlay had z-index:99999, identical to the .modal CSS class. Since Pinned Events modal appears later in DOM order, it won the z-index tie and rendered on top of Doctor View. Fixed: Doctor View z-index raised to 999999, above all modals.
Doctor View — “Symptom detail not available” — handlePinTap() was passing {} as detectorData to pinEvent(), discarding the symptom objects, HR shift values, and signal lists that detectors attached to each suggestion. Fixed: renderPinSuggestion() now stores all suggestion objects in window._pinSuggestionMap keyed by source|eventDate. handlePinTap() retrieves the correct detectorData from that map before saving the pin. All future pins will have full detectorData for Doctor View display.
Doctor View — Read-only data overlay with exact scroll restore — When a cardiologist says “show me,” the patient now taps a full-width “📊 Tap to Show Your Doctor” button (min 56px height, senior-safe tap target) on any sentence in the Sentinel or Pinned Events “What to Say” box. A full-screen read-only overlay opens instantly showing the clinical data behind that specific sentence — HR regime shift with before/after values, decompensation signals, pulse pressure trend, or symptom cluster with severities and timestamps. A large fixed “← Back to ClinBridge” header button (64px, always visible) returns to the exact scroll position. No inputs, no logging, nothing to accidentally tap. Doctor View is completely locked to read-only while open.
closeAbout() instead of closeHelpModal(). The floating Today's Status button did not restore correctly after closing. Fixed.e, E, +, and - as valid browser scientific notation. One global listener now blocks them across all 30+ numeric fields.What is actively in development or on the near-term roadmap. Features are prioritized by clinical value and user feedback.
For bugs that were fixed, see the Known Issues tab. Release history is at the bottom of this tab.
Once enough check-in data exists, a "Your Fluid Response Profile" view in Settings shows your personal pattern in plain language. This becomes the foundation for a productive conversation with your cardiologist about a personalized daily limit.
Barometric pressure drops correlate with PPH episode severity. ClinBridge will detect significant pressure changes and issue a proactive heads-up so you can adjust hydration and activity before symptoms occur.
Optional read-only access for a spouse, adult child, or caregiver to view your dashboard and receive alerts — without being able to edit your data.
Correlate meal logs with post-meal BP readings to identify which foods or meal sizes consistently trigger PPH episodes. Over time, builds a personal map of your dietary BP triggers.
Log sleep quality and duration. Poor sleep is a major driver of next-day BP irregularities and OSA complications. Correlating sleep quality with BP trends gives your doctor a fuller clinical picture.
Full native apps with reliable background notifications, HealthKit / Google Fit integration, Apple Watch complications, and wrist-tap logging. No browser required.
Auto-import heart rate and activity data from Apple Watch, Fitbit, and Garmin — so you are not re-entering data that your devices already captured.
ClinBridge is built by a patient, for patients. If there is something your care plan requires that ClinBridge does not yet do, we want to know. Use the Contact & Feedback section in Settings to send a suggestion directly to the development team.
Pinned Events — “What to Say” box showing on Addressed pins — Language engine was checking evt.communications (an array that does not exist) instead of evt.commLog (the actual single-object store). Result: latestStatus always fell back to “unresolved” and the box appeared on every detector-backed pin regardless of Addressed status. Fixed to read evt.commLog.status directly. Box now correctly hidden when status is Addressed.
Archived events reappearing as new pin suggestions — isPinnedEvent() only checked the active pins list. When a pin was archived and cleared, it disappeared from active, causing detectors to re-suggest it as a new finding on every analysis run. Fixed: isPinnedEvent() now checks both active pins and the archive. An event that has ever been pinned and archived will never surface as a new suggestion again.
Sentinel — “What to Tell Your Doctor” box — When any stream is drifting or alarming, Sentinel now displays a highlighted box at the top of the modal with pre-written plain-language sentences the user can read aloud at their appointment. One sentence per flagged stream, automatically generated from live data. Box is hidden on All Clear. Orange border for drifting, red for alarming. Built for seniors and new users who need a clear, unambiguous read-aloud prompt.
Pinned Events — “What to Say at Your Appointment” language engine — Every detector-backed pin card now displays an auto-generated, read-only sentence the patient can read aloud to their cardiologist. Language is derived entirely from detector data — HR level shift direction, magnitude, and days since shift; decompensation signal list including Cardiac Output Signal special case; pulse pressure chronic vs. trending narrow; symptom convergence clusters, clinical triads, and persistent cough frequency. Box is hidden when status is Addressed, shown muted when Deferred, fully visible when Unresolved or Follow-up Ordered. Manual pins (no detector source) never get a box. Anti-wolf safeguards built in: no box for manual pins, no dramatizing language, calm factual tone throughout. Approved language matrix April 5, 2026.
Help & About tab bar — horizontal scroll layout — Tab bar now scrolls horizontally in a single row. Full content height is always preserved regardless of tab count. Standard mobile UX pattern — swipe the tab bar to reach any section. Scales to any future tab additions without layout impact.
Sentinel documented in Help & About — Dedicated tab covers what Sentinel watches, what a Footprint is, how the Clinical Event Log works, and why personalized pre-event pattern recognition is clinically novel. Modal footer and disclaimer now always visible. Grammar corrected.
Sentinel v2 — Two-tier scoring drives alarms from 14-day recent pattern. Clinical Event Log with baseline reset. Stream cards in plain language with specific action guidance and date ranges.
Sentinel — Personal Pattern Precursor Detector — Watches 3 live data streams (HR daily spread, symptom frequency, pulse pressure) against your personal baseline. Learns from your Footprints — 72-hour pre-event windows extracted from all Pinned Events. Badge turns yellow at 2 drifting streams, red at 3. Pin any match for your Doctor's Report. Built from your real data: 9 Footprints across 45 days.
Sentinel — Personal Pattern Precursor Detector — Watches 3 live data streams (HR daily spread, symptom frequency, pulse pressure) against your personal baseline. Learns from your Footprints — 72-hour pre-event windows extracted from all Pinned Events. Badge turns yellow at 2 drifting streams, red at 3. Pin any match for your Doctor's Report. Built from your real data: 9 Footprints across 45 days.
Pinned Events question UI — three interaction bugs fixed — Add Question now shows the saved question immediately. Mark Asked checkbox now reflects state instantly. Delete (✕) now confirms before removing and always takes effect. All three operations re-render the pin card in place.
Button spacing audit — all main logging modals — Systematic pass through Log BP, Log Fluid, Log Activity, Log Symptom, Log Weight, Log Meal, and Morning Check-In. Minimum 12 px gap enforced between every pair of tappable buttons. Reduces misfire taps for senior users on touchscreens. TestSuite v4 Section 15 (Help & About, 18 new automated tests) released alongside.
Help & About — complete tab overhaul — Sticky tab bar. Larger tap targets. Pinned Events and Heat Advisory tabs added. Pinned Events tab includes full clinical context, doctor workflow, and anonymized case study.
Pinned Events comm layer UI freeze fixed — All 6 operations now in-place with toast. No modal rebuild. Smooth on mobile.
Pinned Events Communication Layer — Log Communication (who, date, response, status) and Add Question per-pin. All data archives with the pin.
All Notes search box fix — Multi-character keywords now work. _filterNotesInPlace() handles live search without destroying the input element.
Help & About documentation catch-up and Already-linked BP card dismiss button.
Recent BP contextual card at Log Activity open. BP Before Activity button in Manual mode. Manual mode info card.
Symptom System Full Overhaul — 70+ synonym mappings, Bulk Rename, clinical context prompt, Manage Symptoms rebuilt in 3 sections.
Tier C Pattern Ripening Nudge and Tier D Urgent Convergence Alert. Glossary Tab. Help & About full rewrite with QR code.
Four detectors live: HR Rate Detector, Decompensation Warning, Pulse Pressure Detector, Symptom Convergence. Pinned Events, 60-day Timeline, Appointment Snapshot, Archive & Clear.
Per-card history isolation. Weight outlier flagging (AHA/ACC thresholds). Weight jump-to-date picker. Critical launch-day regression fix.
Activity Timer Pause/Resume. HR Rate Detector Quick Stats Period Selector. All Notes emoji header fix.
Advanced Analytics analyzes BP readings before and after logged meals. Flags events with ≥15 mmHg systolic drops. For informational tracking only.
Plain-language definitions for every clinical term and app phrase used in ClinBridge. If you see a word in the app and don't know what it means, it's here.
The force your heart uses to push blood through your arteries, measured in millimeters of mercury (mmHg). Expressed as two numbers: systolic (the top number — pressure when your heart beats) over diastolic (the bottom number — pressure when your heart rests between beats). Example: 120/80 mmHg. Normal range for most adults is below 130/80, but your cardiologist will give you a personal target that may differ.
The difference between your systolic and diastolic readings. Example: if your BP is 118/85, your pulse pressure is 33 mmHg. Normal range is 40–60 mmHg. A narrow pulse pressure (below 40) can indicate the heart is working harder to push blood forward — a pattern seen in reduced cardiac output and certain valve conditions. A wide pulse pressure (above 60) may indicate arterial stiffness. Many cardiac patients have a chronically narrow PP that is their personal baseline — what matters is change from that baseline, not comparison to textbook normals.
How many times your heart beats per minute (bpm). Normal resting range is 60–100 bpm. Below 60 is bradycardia (slow heart rate); above 100 is tachycardia (fast heart rate). Patients with pacemakers may have a lower set rate limit — your pacemaker clinic can tell you what range is expected for your device settings.
A heart rate below 60 bpm. In ClinBridge, the HR Rate Detector flags readings below 50 bpm specifically, as this is below the range most pacemakers are programmed to allow. Bradycardia is normal for well-trained athletes and some medication effects (beta-blockers, for example, intentionally slow the heart rate). Context matters — discuss any persistent low readings with your cardiologist or device clinic.
A sustained change in your heart rate baseline — where your resting HR was consistently at one level, then durably shifted to a new level and stayed there. This is different from a single high or low reading. ClinBridge's HR Rate Detector identifies these shifts statistically by comparing before-and-after windows for stability. A level shift is clinically significant because it suggests something changed in your cardiac state — compensation, medication effect, disease progression, or recovery. Your cardiologist will want to know.
A chronic condition where the heart doesn't pump blood as efficiently as it should. "Congestive" refers to fluid backing up into the lungs and body (edema). Heart failure doesn't mean the heart has stopped — it means it's working harder than it should to maintain output. Management focuses on monitoring fluid balance, weight, symptoms, and medication adherence. ClinBridge's Decompensation Warning system is specifically designed to detect early signs of fluid buildup before symptoms become severe.
When a cardiac patient's condition worsens — typically due to fluid overload in CHF — to the point where symptoms become severe and hospitalization may be required. Early decompensation signs include rapid weight gain (fluid retention), worsening shortness of breath, swelling in legs and ankles, fatigue, and reduced activity tolerance. The goal of ClinBridge's Decompensation Warning detector is to surface multiple early signals before they progress to a crisis.
In the Decompensation Warning detector, each of the five clinical signals (weight, cardiac output, symptoms, fluid, notes) can score 0, 1, or 2 points based on severity. Maximum total is 8 points. The detector shows how many points are active and which signals contributed. One point alone is labeled "Early Indicator" — not alarming. Two or more points prompt closer monitoring. Two or more red-level signals prompt contacting your cardiologist.
When multiple symptoms occur together or escalate simultaneously in a pattern that suggests an underlying common cause. In ClinBridge, convergence is detected across three layers: symptoms clustering within a 4-hour window on the same day, the same symptom worsening in severity over multiple days, and recognized clinical symptom triads. The significance is that individual symptoms are often dismissed — but a convergent pattern of multiple symptoms is harder to attribute to chance and more likely to represent a real clinical event.
A recognized combination of three symptoms that together suggest a specific condition or event. ClinBridge recognizes: the CHF Decompensation Triad (shortness of breath + fatigue + swelling/edema — a classic early decompensation pattern); the Arrhythmia Triad (palpitations + dizziness + chest pressure/tightness — may indicate an arrhythmia episode, note timing and duration); and the Systemic Symptom Pattern (nausea + fatigue + reduced appetite — nonspecific, worth noting but not alarming on its own). Triads are worth mentioning to your cardiologist, not reasons to panic.
A drop in blood pressure that occurs after eating. "Postprandial" means after a meal; "hypotension" means low blood pressure. Common in older adults and those with autonomic nervous system conditions. Typically defined as a drop of ≥20 mmHg systolic within 1–2 hours of eating. Symptoms include dizziness, lightheadedness, and fainting. ClinBridge's Post-Meal BP Patterns analysis in Advanced Analytics can help identify whether your BP drops consistently after meals.
An irregular heart rhythm — the heart beats too fast, too slow, or with an irregular pattern. Common types include atrial fibrillation (AFib), where the upper chambers quiver instead of beating regularly, and various bradycardias and tachycardias. Symptoms can include palpitations (feeling your heart beat irregularly or rapidly), dizziness, shortness of breath, or fatigue. Some arrhythmias are asymptomatic. ClinBridge logs heart rate with each BP reading; rapid changes and low readings are flagged for review.
ClinBridge stores 90 days of daily readings on your device. After 90 days, the oldest day is removed as a new day is added — like a rolling 90-day window. This means data from more than 90 days ago is no longer in the app unless you exported a backup at that time. To preserve data long-term: export quarterly (last day of each quarter is a good practice). Pinned Events and Appointment Snapshots are exceptions — they are stored permanently and never roll off.
A clinically significant finding that you've chosen to permanently preserve. When a detector flags something worth showing your cardiologist, tapping "📌 Pin" saves the finding, the date, and all raw data from that day to a permanent list that never rolls off. Pinned events appear in your Doctor's Report and on the 60-day Timeline. After your cardiologist appointment, use "Archive & Clear" to save all current pins to a permanent archive and start fresh.
Your personal "normal" — the consistent pattern your readings follow when nothing unusual is happening. ClinBridge uses the word "baseline" in two contexts: (1) Your personal BP/HR baseline — the average range your readings cluster around, used as the reference point for detecting changes; and (2) Baseline symptoms in the Morning Check-In — symptoms you experience routinely (such as chronic ankle swelling after a procedure) that are part of your normal state, not new developments. Baseline symptoms are recorded for your doctor but excluded from pattern correlation calculations.
ClinBridge's core accuracy principle. The detectors use real statistical methods on real data — but statistics identify patterns, not causes. A detected HR level shift is mathematically real. Whether it represents disease progression, a medication effect, recovery, or random variation requires clinical judgment that only your cardiologist can provide. ClinBridge points in a direction and gives you the evidence to have a productive conversation — it does not tell you what that pattern means for your specific medical situation.
ClinBridge's design philosophy. Many health apps generate advice or recommendations — telling you what to do. ClinBridge instead verifies patterns across multiple data streams before surfacing a finding. It only escalates when signals converge — when two or more independent data streams agree that something changed. A single reading doesn't trigger an alert. A single signal point doesn't trigger a pin suggestion. This "verification first" approach is designed to prevent false alarms and preserve the credibility of findings that do get surfaced.
Every other cardiac monitoring tool watches for what is happening right now. Sentinel watches for what came before. It is built on a simple but powerful idea: the patterns in your own data in the days before a clinical event are more meaningful than any population-based threshold — because they are yours.
Sentinel watches three data streams around the clock — your HR daily spread, your symptom frequency, and your pulse pressure. It compares each one not to a textbook average, but to your own recent personal pattern. When two or more streams drift above your recent normal at the same time, Sentinel surfaces a pattern match — before symptoms escalate, not after.
Your recent pattern is calculated from your own logged data — the last 14 days, or from a clinical event date if you have logged one. This means Sentinel stays calibrated to where you are in your health journey, not where you were six months ago.
When Sentinel detects that two or more of your streams are drifting above your recent normal, it automatically generates a "What to Tell Your Doctor" box at the top of the Sentinel screen. Each flagged stream gets one plain-language sentence you can read aloud at your appointment.
The language is read-only and auto-generated from your data. Sentinel stands behind every sentence it generates.
Every time you pin a clinical event from one of ClinBridge's detectors, Sentinel automatically extracts what your data looked like in the 3 days before that event and saves it as a Footprint. Over time, Sentinel builds a personal library of your pre-event signatures.
When your current data resembles a prior Footprint, Sentinel tells you specifically — which event it resembles, what your data looked like then, and what your data looks like now. It does not tell you what is going to happen. It tells you that a pattern you have lived through before is appearing again.
Pacemaker adjustments, new medications, procedures, hospitalizations — any clinical change that legitimately shifts your baseline belongs in the Clinical Event Log inside Sentinel. You will find it by opening Sentinel and tapping + Log Clinical Event.
When you mark an event as a baseline reset, Sentinel compares your streams to your data after that event — not before it. This is critical after a pacemaker adjustment, for example: your heart rate pattern may shift significantly as settings take effect, and Sentinel needs to know that the shift is intentional and clinical, not an emerging problem.
The Clinical Event Log is also a permanent record of your care timeline — visible in Sentinel, yours to keep, never transmitted anywhere.
No published cardiac monitoring tool has done this at the individual patient level outside a hospital setting. Academic research on pre-decompensation pattern recognition requires Holter monitors, IRB approvals, and study populations measured over months or years. The results are then averaged across those populations — which means the thresholds apply to the average patient, not to you.
Sentinel does it differently. It uses the data you are already logging every day. It compares you to yourself. Your quiet baseline, your pre-event Footprints, your recent pattern — everything Sentinel knows comes from your own history, not from a population study. That is what makes it personal in a way that published thresholds cannot be.
Sentinel is not a diagnosis. It is not a medical device. A pattern match does not mean something is wrong — it means your data looks similar to a prior period that preceded a clinical event in your own history. That is worth noting. It is not worth panicking about.
Sentinel provides the documented evidence and the pattern recognition. Your cardiologist provides the clinical interpretation. The goal is to walk into your next appointment with something real to show — not a vague feeling that something might be off, but a specific, timestamped pattern match from your own data that your doctor can evaluate.
Ask is a conversational helper built into ClinBridge. It knows every feature of the app and has full awareness of your logged data — so you can ask plain questions and get plain answers, based on what you’ve actually recorded.
Ask anything about how the app works, your logged data, or patterns you see. Here are real examples:
Tap the 💬 Ask button on the main screen. A conversation panel opens. Type your question in plain English — no special format required.
Ask reads your logged data — your BP readings, fluid intake, weight, symptoms, notes, medications, and more — and gives you a real answer based on what you have actually recorded. It also knows every feature of ClinBridge in depth, so it can explain how anything works.
If your question is unclear, Ask will offer you a few clearer versions to tap. You can ask follow-up questions in the same window without starting over — the conversation stays connected.
Ask is not a doctor and will never try to be one. It will not tell you what your readings mean for your health, suggest a diagnosis, or recommend any medical course of action.
If your question calls for clinical interpretation, Ask will say so warmly and point you to your cardiologist — which is always the right call. Use 📌 Pinned Events to capture anything you want to bring to your next appointment.
✅ You do not need to word it perfectly. Ask plain questions the same way you would ask a knowledgeable friend.
✅ Follow-ups work. After an answer, keep asking in the same window. The conversation stays connected until you close it.
✅ Ask about your notes. “Did I mention shortness of breath in my notes?” is a great question. Ask can search through what you have written.
✅ Ask about any feature. Detectors, reminders, Morning Check-In, Advanced Analytics, the Doctor’s Report — anything in the app is fair game.
✅ Start simple. If you are new to Ask, try one of the example questions first to get a feel for it.
ClinBridge is free, open-source, and built by a cardiac patient for cardiac patients. There is no subscription, no ads, and no paywall — ever. If it helps you manage your health, a small contribution means a lot.
Your support helps cover hosting, development time, and keeps ClinBridge free for every patient who needs it.
💙 Support via PayPal100% optional — your health data stays private regardless
Your data stays private — stored locally on this device only
Track how your medications affect your heart rate over time
Generates a comprehensive medical report for the selected date range — includes BP summary, out-of-range alerts, weight trends, medication adherence, and clinical assessment.
Pick any date to see a focused 20-day window (14 days before → anchor → 5 days after) with all metrics and events aligned on the same timeline.