Cascade in use
Design · not built
ONC EHIgnite 2026
Cascade Bridge
A design for an app that turns a patient's scattered health records into one record they can use: collect it, connect it, control it.
§ 1
The gap
Access is not the same as usability.
The 21st Century Cures Act gave every patient a right to their complete health record, and many providers now offer single-patient exports. What arrives is a raw FHIR bundle, a sprawling C-CDA archive or a PDF: formats built for exchange between institutions, not for a patient managing a condition across five providers.
Scattered
Data sits across providers, portals, paper and devices.
Fragmented
The pieces never become one deduplicated, computable picture.
Locked
Nothing lets a patient correct it, share part of it, or ask AI about it with sources.
§ 2
A design scenario
Meet Priya.
Priya is fictional, and none of this runs today. She is 45, and her health story lives in seven places. Her mother had ovarian cancer at 51; a consumer genetic test reported that Priya carries a BRCA2 variant of uncertain significance. Her oncologist's portal speaks SMART on FHIR, her primary care system offers only C-CDA, the genetic counseling clinic mailed a 12-page PDF, and her behavioral health practice prints on paper.
- CollectOne receiver for FHIR, C-CDA, PDFs and scans, Apple Watch streams and self-reported data. AI-parsed documents are tagged
cascade:AIExtractedso their origin stays visible. What can't be mapped is kept, not dropped. - ConnectEvery record becomes RDF on the codes the sources already use. When her records disagree about tamoxifen, the reconcile step keeps both values with their sources (
cascade:ConflictDetail) and asks her to review, instead of overwriting. - ControlShe marks a stopped medication inactive without erasing the EHR's original. She asks why her LDL rose and gets an answer that cites the labs and the medication hold. Before a genetics visit, she chooses which items to share.
§ 3
Inside the app
The designed screens.
Annotated mockups from the design. The app was not built. Tap an image to see it full size.
§ 4
Why a graph
One traversal instead of three silos.
Cascade doesn't replace FHIR; it consumes it. Take Alex Rivera, a synthetic patient: he is prescribed lisinopril, an ACE inhibitor, takes an over-the-counter potassium supplement, and has a potassium lab of 5.1 mEq/L. Three sources, one hyperkalemia risk that no single record shows. In a graph it is one traversal.
| Subject | Predicate | Object |
|---|---|---|
| Lisinopril Rx | clinical:rxNormCode | "314076" |
| Lisinopril Rx | cascade:dataProvenance | cascade:EHRVerified |
| K+ supplement | cascade:dataProvenance | cascade:SelfReported |
| K+ lab result | health:resultValue | "5.1 mEq/L" |
| K+ lab result | health:interpretation | "HIGH" |
§ 5
Standards
Built on standards, not around them.
| Standard | Version | In Cascade |
|---|---|---|
| FHIR | R4 | Import and export in the CLI; unmapped resources kept as passthrough |
| HL7 C-CDA | 2.1 | Converter in the CLI, section by section |
| SMART App Launch | 2 | In the Bridge design only; not built |
| W3C PROV-O | 1.0 | Provenance classes in core; most record shapes require one |
| W3C RDF, SHACL, OWL | 1.1 · 1.0 · 2.0 | The record format, its validation rules and its semantics |
| Solid | 0.9 | Pod layout follows Solid conventions; no Solid server or access control |
Pods can be encrypted at rest with a passphrase (opt-in; the encryption spec is a draft). We have not had our regulatory status reviewed; don't rely on this page for it.
§ 6
What exists today
The app isn't built. Much of what it needs is.
Works today
- FHIR and C-CDA conversion in the CLI, with reconciliation across sources.
- Open SDKs and specification, TypeScript and Python.
- POTS Check on the App Store, on an early private copy of the Swift SDK.
Not built
- The Bridge app and its health wallet.
- Sharing and consent controls.
- Genomics and advisory updates; those vocabularies are drafts.