concept note — not a deployed system · part 1 of 2

Person-Centered Clinical Analytics

An early architecture sketch for reasoning across whole patients, not single diagnoses — and an honest account of where that idea stops short of guiding care. The companion implementation demo (Part 2) walks through the working build.

Scope note

This is an early-stage idea and demo concept, not a validated or deployable system. Its potential value lies in learning, post hoc audit, and person-centered analytics — helping clinicians and researchers see patterns, variation, and comparative evidence across retrospective cases. It is not clinically robust enough to function as a patient-centered decision-making, guiding, or prediction system. Real-world constraints and contextualization are largely absent from the underlying data: a case corpus drawn from a high-resource, quaternary-care setting can meaningfully mislead a user practicing in a resource-constrained facility, and vice versa. Facility tier and resource-gradient tagging (Section 6.4) help flag this gap, but cannot fully close it. Clinical acumen must remain the decision-maker; at best, this idea could evolve into analytics and reasoning support, not a substitute for clinical judgment, and it is not intended as a Clinical Decision Support (CDS) / SaMD tool in the regulatory sense.

01

Vision

Explore an idea for a clinical reasoning and analytics demo that moves from raw, scattered patient data to structured, comparative evidence — without collapsing patients into rigid, single-disease silos. The system is person-centered first, and disease-, intervention-, or combo-centered analytics are projections on top of that person-centered data, not the starting point.

Core principle

Disease-centered analytics run against person-centered data — comparative insight is generated without stripping away a patient’s comorbidities, context, or environmental constraints.

02

Implementation framework

Original 3-phase roadmap.

Phase 1 — Scaffolding (infrastructure)

Phase 2 — Reasoning layer (LLM integration)

Phase 3 — Guardrail (clinical validation)

03

Person-centered data model

Rather than starting from a disease, the pipeline starts from the whole person:

Observations → Diagnosis → Interventions/Plan (atemporal) → Outcomes

3.1 — Knowledge graph structure

[ Patient / Person ]
       │
       ├──(Has Observation)──► [ Observations: Signs, Symptoms, Vitals, Labs ]
       │
       ├──(Has Diagnosis)────► [ Diagnoses: Coded terms, Lists, Descriptive one-liner ]
       │
       ├──(Receives Plan)────► [ Interventions / Plan: Meds, Procedures, Orders ]
       │                       (Atemporal: what was chosen, not strictly when)
       │
       └──(Results In)───────► [ Outcomes: Clinical status, resolution, complications ]

3.2 — Node types & attributes

NodeAttributes
PatientNodeAnonymized ID, baseline demographics, immutable patient-level context
ObservationNodeRaw text / SNOMED-LOINC code, severity, timestamp or sequence order
DiagnosisNodeTerm/phrase text, confidence level, primary vs. secondary/comorbidity
InterventionNodeAction type, target, parameters (dose/frequency); stripped of strict temporal metadata for holistic viewing
OutcomeNodeResulting status, response to plan, adverse events, discharge state

3.3 — Relational edges

3.4 — Technical pipeline

  1. Ingestion & parsing — raw EMR notes, discharge summaries, or FHIR JSON bundles per patient.
  2. Entity extraction (person-centered pass) — holistic scan for all active observations, full diagnosis set, full intervention bundle, and final outcomes (no disease pre-filter).
  3. Graph construction — instantiate nodes/edges per individual.
  4. Comparative aggregation — overlay multiple person-graphs to compare intervention bundles vs. outcomes across similar patients.
04

Dual-mode temporality

Time is modeled as an edge property, not a rigid node sequence, so the dashboard can toggle modes instantly.

[ Patient Node ]
       │
       ├──(HAS_OBSERVATION {timestamp: t1})──────► [ Observation ]
       ├──(HAS_DIAGNOSIS {onset: t1})────────────► [ Diagnosis ]
       ├──(RECEIVES_PLAN {atemporal_bundle: true})► [ Intervention / Plan ]
       └──(RESULTS_IN {time_to_outcome_delta: d})─► [ Outcome ]
ModeDescription
A — Atemporal / GestaltHides timestamps; aggregates all conditions, baselines, and plans into one unified cluster to assess total patient complexity
B — Temporal trajectoryActivates timestamp/sequence edges; renders as timeline/funnel showing how observations → diagnoses → interventions unfolded over time

Multi-patient / population view

Dashboard modes

ComponentAtemporal modeTemporal mode
Primary viewNetwork graph of patient/cohort profileSankey / chronological event graph
Data filterMulti-morbidity pattern, baseline vitals, intervention classTime windows, sequence steps, time-to-outcome velocity
Core question“What is the complete clinical picture, and what plan matches it?”“At what timeline point did management diverge, and how did timing affect outcome?”
05

Three pivot lenses

The same underlying person-centered graph can be re-anchored around three different centers without rebuilding it.

LensAnchorClinical question
Disease-centeredDiagnosis node“Given patients diagnosed with X, what presentations walked in, and what did we do?”
Intervention-centeredIntervention/Plan node“When we deploy intervention Y, who actually receives it, and how do outcomes vary?”
Disease + intervention comboComposite (Diagnosis + Intervention) hyper-node“When Diagnosis A patients receive Intervention B, why do outcomes diverge — and what explains the variance?”
Pivot by: ○ Disease  |  ○ Intervention  |  ● Disease + intervention combo

Selecting a lens re-indexes the graph layout and re-clusters trajectories around the new anchor.

06

Scaling to a global population

A 3-part comparator framework.

6.1 — Population (disease or disease combo)

Anchor diagnosis/cluster, normalized globally via SNOMED CT so the same diagnosis matches across facility types and geographies.

6.2 — Intervention

Standardized via LOINC and procedural coding so different local names/workflows map to the same underlying intervention.

6.3 — Comparator (subgroup & context matrix)

6.4 — Normalization for global context

6.5 — Example query

“Show me patients with [disease combo] who received [intervention], filtered by [resource-constrained tertiary facilities], broken down by [temporal time-of-intervention subgroups], and map [my current patient’s] trajectory against that specific comparator curve.”
07

Pilot application: ASV (snakebite) case study

Existing prototype: “Critical Hub Node Navigation” ASV demo (12-case corpus), which already functions as an early Intervention Node view with meta-analysis/RCT evidence layered on individual case reports.

Integration plan

1. Population layer (disease + context) — Move beyond “snake bite” alone to a full baseline profile per case (age group, rural/urban, time from bite to admission, etc.) — group by “patient gestalt,” not just diagnosis label.

2. Intervention layer (ASV critical node) — Treat each ASV decision (high vs. low dose, FFP adjuncts) as a comparative node. Tag each node with facility tier (e.g., quaternary = resource-plenty; rural = resource-constrained).

3. Comparator layer (subgroup engine) — Outcome subgroup: recovery without neuro deficit vs. recovery with sequelae. Temporal subgroup: “golden hour” (ASV <2h) vs. “delayed” (ASV >6h) — test whether RCT/meta-analysis evidence aligns with local case-report results within each temporal band.

Action plan

  1. Tag the 12 cases with a JSON metadata layer:
    {
      "facility_tier": "primary | secondary | tertiary",
      "resource_status": "plenty | constrained",
      "presentation_delay": "<hours>"
    }
  2. Define the pivot function: a filter over the existing “Unified Case Insights” view, e.g., “show trajectories from secondary facilities where ASV was delayed >4 hours.”
  3. Use this tagged, filterable ASV dataset as the working prototype for the global comparator framework (Section 6) before generalizing to other conditions.
07b

Longitudinal pilot example: type 1 vs. type 2 diabetes

The ASV/snakebite pilot (Section 7) is a good fit for the acute, single-encounter case: a short decision window, a bounded intervention, and outcomes resolved within days. But the person-centered model (Sections 3–4) is equally, if not more, meant for longitudinal care — conditions where the observation → diagnosis → intervention → outcome loop repeats over years or decades, and where the “Intervention/Plan” node isn’t a single choice but an evolving regimen.

Diabetes mellitus is a useful example precisely because Type 1 and Type 2 stress the model in two different, complementary ways:

Type 1 diabetes (T1D) — acute-resource-heavy, chronic condition

Type 2 diabetes (T2D) — balanced, decades-long chronic management

Why pairing T1D + T2D is useful for the demo

Running both through the same person-centered graph structure stress-tests whether Mode A (Atemporal/Gestalt) and Mode B (Temporal Trajectory) genuinely generalize:

If the same graph schema and dashboard toggle can meaningfully represent both without special-casing, that’s a reasonable signal the underlying architecture (Sections 3–4) is sound — independent of whether the pilot itself is clinically deployable (see scope note, top of document).

08

Open decisions / next steps