v 0.1 · Open Source Apache 2.0 OMOP CDM 5.4 · FHIR R4

PHRAME

Personal Health Record Architecture for Modular Extension.

A frame & foundation for patient health records. PHRAME is HealthKey.ai's modular technology stack for building patient-controlled, dynamic, longitudinal and complete health records and the applications that run on top of them. Built on open-source core components spanning data ingestion, normalization, identity resolution, and consent management, PHRAME powers patient dashboards, clinical trial matching, treatment navigation, research registries, and AI-enabled health services. PHRAME has been validated through HealthTree Foundation's work with 14,000+ oncology patients and a decade of longitudinal follow-up. It was also used to build CancerBot, a precision trial matching service finding trials for thousands of patients and multiple cancer foundations.

§ 01 / Rationale

Why build on PHRAME.

Most "PHR platforms" are either closed commercial silos, EHR add-ons, or research data lakes wearing a patient-facing skin. PHRAME is the opposite: an honest infrastructure stack designed from the ground up around the patient as data custodian, with the consumer-facing components and the research-grade longitudinal store as first-class peers.

01

You inherit ten years of oncology-grade modeling.

CTOMOP is OMOP CDM 5.4 with the columns the standard was missing — validated with OHDSI architects after the existing CDM proved insufficient for individual clinical service against a real patient. You don't have to discover those gaps yourself.

02

It already speaks every standard that matters.

FHIR R4 importers, LOINC/RxNorm/ICD-10/SNOMED/HemOnc vocabularies, SMART on FHIR, TEFCA/QHIN. The translation layers are done.

03

LLM-ready.

The PatientInfo projection is a flattened view of OMOP optimized for AI inference — designed for clinical trial matching and conversational interfaces.

04

Modular by design, not by marketing.

Use CTOMOP alone as a longitudinal store. Use EXACT alone as a trial matcher against your own data. Use the FHIR Importers to feed any system. The seams are real.

05

Apache 2.0 — and we mean it.

No open-core bait-and-switch. The components we deploy are the components you get. Contribute back, fork, or vendor — the license is the contract.

06

The hard parts are already in production.

Patient similarity via embedding vectors. Tri-valued trial eligibility (Eligible / Potential / Ineligible). Cancer-type-specific scoring plugins. Outcome data from real matches. You're not the first one through.

§ 02 / Architecture

The components, named.

PHRAME is organized in three tiers: ingest (FHIR, PDF/paper, wearables & devices, and patient-reported importers), store (CTOMOP, with PatientInfo as its consumer-facing projection), and serve (EXACT for trial matching, the SoC service for clinical decision support, Analytics for population queries, plus your own apps). Every seam between them is a documented contract.

Trial Matching EXACT eligible / potential / ineligible Analytics population & cohort queries SoC Service Standards of Care · clinical decision support · cancer-type plugins · scoring Patient Portal PHR consumer apps conversational AI CTOMOP — longitudinal patient store, OMOP CDM 5.4 + extensions PatientInfo · flattened projection for LLM & trial-matching person condition_occurrence drug_exposure procedure_occurrence measurement observation visit_occurrence note & note_nlp + HealthKey extensions PHR-specific columns FHIR Importers EHR · labs · pharmacy · TEFCA PDF / Paper Importers faxes · scans · OCR · uploads Wearables & Devices Apple Health · Fitbit · CGM Patient-Reported surveys · PHRofile · uploads
// component 01

CTOMOP CORE

The longitudinal patient store. OMOP CDM v5.4 plus the columns we contributed back after validating gaps with OHDSI architects — gaps the standard doesn't cover because OHDSI's focus is analytical lakes, not individual clinical service.

PostgreSQL · OMOP 5.4 + extensions · pgvector
github/CTOMOP ↗
// component 02

EXACT MATCH

Open-source clinical trial matching engine with tri-valued verdicts: Eligible, Potential, Ineligible. Honest about uncertainty. Outcome data from real matches against blood cancer cohorts.

Python · Pydantic · ClinicalTrials.gov vocab
github/EXACT ↗
// component 03

SoC Service CDS

The Standards-of-Care service — PHRAME's clinical decision support layer. Turns disease-specific guidelines (IMWG, IWCLL, Lugano) into computable phenotypes, and hosts cancer-type plugins for disease-specific scoring (FLIPI, R-ISS, and more). Extensible by design: drop in a plugin for your disease area.

Plugin model · HemOnc vocab · scoring kernels
github/SoC ↗
// component 04

FHIR Importers

FHIR R4 ingest pipelines for EHRs, labs, pharmacies, and TEFCA/QHIN sources. Vocabulary mapping via Usagi conventions, structure mapping via Rabbit-in-a-Hat patterns. Pluggable per data source.

FHIR R4 · SMART on FHIR · LOINC / RxNorm / SNOMED
github/FHIR_Importers ↗
// component 05

PDF / Paper Importers

Because not every record arrives as FHIR. Faxes, scans, mailed lab reports, and patient-uploaded documents get OCR'd, structured, and mapped into the OMOP store with provenance preserved. Critical for older oncology records and cross-system gaps.

OCR · LLM-assisted extraction · provenance tracking
// component 06

Wearables & Devices · Patient-Reported

Two ingest paths the patient controls directly: device feeds (Apple Health, Fitbit, CGMs) and patient-reported inputs (surveys, PHRofile assessments, narrative uploads). Both flow into the same longitudinal record as everything else — no second-class data.

HealthKit · Fitbit API · PHRofile · survey kits
// component 07

Analytics

Population and cohort analytics built on the OHDSI tooling (Achilles, Atlas, DataQualityDashboard) and extended with PHRAME-specific projections — bridging individual clinical service and population research without forking the schema.

OHDSI Atlas / Achilles · DQD · Airflow
github/Analytics ↗
// component 08

Patient-Reported QoL

Structured quality-of-life and symptom surveys — patient-reported outcomes (PROs) collected longitudinally and stored directly in the OMOP record. Covers disease-specific instruments (FACT-G, PROMIS, MPN-SAF) alongside custom survey kits, so PRO data lives beside lab and treatment data rather than in a separate silo.

PRO instruments · PROMIS · FACT-G · survey kits
§ 03 / Position

How it relates — and doesn't.

PHRAME lives in a gap that nobody else is filling: between OHDSI's research-lake stack, EHR-tethered PHR add-ons, and closed commercial real-world-evidence platforms. Here is the honest map.

On OHDSI — the relationship in plain English.

PHRAME is built on OHDSI standards. CTOMOP is OMOP CDM 5.4. We use Atlas, Achilles, DataQualityDashboard, Usagi, and Rabbit-in-a-Hat. We contribute back. But PHRAME is not OHDSI, and conflating the two misses the point of both projects.

OHDSI optimizes for

Population-scale observational research. Analytical data lakes. Network studies across institutions. A schema that intentionally stops where individual clinical service begins.

PHRAME optimizes for

Individual clinical service for one patient at a time. Patient-custodied data. Real-time consumer applications. The columns OHDSI deliberately left out because they fall outside the network-research mandate — but which any consumer PHR app needs.

Stack Patient custody OMOP-native FHIR ingest Trial matching License Scope
PHRAME First-class CDM 5.4 + ext. R4 native EXACT, tri-valued Apache 2.0 PHR + research
OHDSI stack (Atlas, Achilles) Not the goal Canonical Via ETL Out of scope Apache 2.0 Pop. research
HAPI FHIR + custom If you build it Build yourself Apache 2.0 FHIR server
OpenMRS / OpenEMR Provider-centric MPL / GPL EHR
Flatiron Health Curator-owned Internal Proprietary Onc RWE
Tempus Internal Proprietary Onc + genomics
Apple HealthKit Device-bound Limited Proprietary Consumer device
CommonHealth Apache 2.0 Mobile PHR

● full · ◐ partial · ○ absent. Comparison reflects published scope; capabilities evolve.

§ 04 / Case Studies

PHRAME in production.

Both of these applications run on CTOMOP, EXACT, and the FHIR importers in production — not demos, not pilots. Real patients, real trials, real outcomes.

Case 01 · Trial Matching

CancerBot

— AI-powered trial matching for cancer patients.

Only 2% of cancer patients enroll in clinical trials — not because they don't qualify, but because eligibility criteria are scattered across dozens of registries in clinical language most patients can't parse. CancerBot combines CTOMOP patient records with the EXACT matching engine to deliver personalized, jargon-free trial eligibility answers: exactly which criteria a patient meets, which are indeterminate, and why.

266
eligibility-ready fields per patient
5
cancer types supported
3-way
verdicts: eligible / potential / ineligible
0
black-box results — every verdict explained
Components: CTOMOP · EXACT · FHIR Importers
cancerbot.org ↗
Case 02 · Patient Community

HealthTree

— from one diagnosis to infrastructure for 14,000 patients.

Jenny Ahlstrom was diagnosed with multiple myeloma at 43 and treated it like a startup problem. The result is HealthTree Foundation — a nonprofit connecting blood-cancer patients to treatment options, clinical trials, and peer matches across 7,900 hospitals. HealthKey supplies the infrastructure backbone: CTOMOP for structured longitudinal records, EXACT for trial matching, and the FHIR importers pulling from hospital systems nationwide. HealthTree provides what infrastructure can't: patient trust earned through community.

14k+
patients in Cure Hub
7,900+
hospitals connected
65k+
research participants
4 wks
avg. study recruitment (vs. years)
Components: CTOMOP · EXACT · FHIR Importers · Analytics · SoC Service
healthtree.org ↗
§ 05 / Engage

Three ways in.

Pick the path that matches how much you want to own. The components are the same in all three — what changes is who runs them and who maintains the operational expertise.

A · DIY

Build it yourself.

— and contribute back.

  • Clone the repos, deploy on your own infrastructure
  • Full Apache 2.0 freedoms — fork, modify, vendor
  • Community Slack & weekly office hours
  • PR your improvements back to the core components
  • You own every byte; you run every cron
Free · OSS · Community-supported
B · MANAGED

We host. You control.

— your tenant, your data, our ops.

  • phrame.org hosts your dedicated instance
  • Your data, your patients, your branding
  • HIPAA / GDPR-aligned infrastructure
  • SLA-backed uptime & managed upgrades
  • Egress & portability guaranteed by contract
Tiered · Talk to us
C · SERVICES

Hire us.

— but only to push the core forward.

  • Extend an existing PHRAME component
  • Build a net-new patient health capability
  • Cancer-type plugin authoring & SoC adapters
  • Improvements flow back into the open source
  • One-off integration work is out of scope — we'll refer you elsewhere
Statement-of-work · Fixed scope
About the services scope. We deliberately limit consulting to work that either expands a current PHRAME component or creates new patient-health capabilities that become part of the open suite. Integrating PHRAME into your existing systems, custom EHR work, or pure body-shop engagements — we will refer you elsewhere. The bargain: our paid work makes the OSS better for everyone, including you.

Ready to start?

Code on GitHub. Discussion on Slack. Conversation by email.

github.com/healthkey-ai → adam@healthkey.ai