Executive Summary
A US-based oncology health tech startup needed a platform that could aggregate patient data from multiple EHR systems and use AI to generate personalized cancer treatment plans. We built the complete platform — mobile apps, web dashboard, multi-EHR integration, and AI treatment engine — in 4 months with 3 engineers.
The platform connects to Epic, Cerner, Allscripts, and Athena via FHIR R4 APIs, normalizes patient data into a unified clinical record, and uses AI to generate structured treatment plans that are reviewed and approved by oncologists before reaching patients.

The Problem: Cancer Treatment in Fragments
Cancer treatment is not one-size-fits-all. A Stage 2 breast cancer patient and a Stage 4 lung cancer patient need radically different treatment protocols. Yet the data oncologists need to create these personalized plans is scattered across multiple disconnected systems.
What Was Broken
- Fragmented patient data: Clinical information scattered across 3–4 different EHR systems — Epic at the hospital, Cerner at the lab, Allscripts at the referring physician, Athena at the imaging center
- Manual chart review: Oncologists spending 45–60 minutes per patient assembling a complete clinical picture before writing treatment plans
- No structured tracking: Treatment plans created as free-text notes with no systematic response monitoring — follow-up adjustments were reactive, not data-driven
- Missed clinical trials: Manual trial matching meant patients were often not enrolled in trials they qualified for
- Language barriers: Non-English-speaking patients had limited access to treatment explanations in their language
The Core Challenge
Patients in Stage 2–4 cancer often receive treatment plans that are not fully personalized to their specific cancer type, genomic markers, comorbidities, treatment history, and current health status. Each cancer is different. Each patient's response is different. The treatment plan needs to reflect that specificity — and update as new data comes in.
Technical Architecture
We designed a layered architecture that separates data aggregation, clinical intelligence, and user experience into independent, scalable components.

Architecture Layers
Presentation Layer: React Native mobile app (iOS + Android) for patients — view treatment plans, track symptoms, medication reminders, appointment scheduling. React web dashboard for oncologists — patient cohort view, treatment plan creation, approval workflows, outcome analytics.
API Gateway (Node.js): Central orchestration layer handling authentication, rate limiting, RBAC (role-based access control), and request routing. All EHR connections flow through this layer.
EHR Integration Layer: Four simultaneous FHIR R4 connections — Epic (via App Orchard), Cerner (via Code Console), Allscripts (FHIR API), and Athena (athenaFlex API). Each connector handles authentication, data retrieval, and error handling independently.
Unified Data Layer (MongoDB): All patient data normalized into FHIR R4 format and stored in MongoDB. Resources include: Condition, MedicationRequest, Observation, DiagnosticReport, ImagingStudy, Procedure, CarePlan, and Immunization.
AI Treatment Engine: The intelligence layer — treatment plan generation, clinical trial matching, response tracking, side effect prediction, and multi-lingual translation.
Oncologist Review Layer: Every AI-generated plan passes through physician review and approval before reaching the patient. AI assists; physicians decide.
Multi-EHR Integration: 4 Systems, 1 Patient Record
The hardest engineering problem was not connecting to one EHR — it was connecting to four and resolving conflicts between them.

How It Works
- Patient grants consent — via SMART on FHIR authorization. Patient authenticates with each EHR portal and grants the platform read access.
- Data retrieval — platform pulls all available FHIR resources from each connected EHR: conditions, medications, lab results, imaging studies, procedures, allergies, vital signs.
- Normalization — FHIR resources from 4 different systems mapped to a single canonical format. Medications mapped to RxNorm. Diagnoses mapped to ICD-10-CM. Procedures mapped to CPT codes.
- Deduplication — same medication recorded differently in 2 EHRs (brand name vs. generic) resolved using fuzzy matching and RxNorm normalization.
- Conflict resolution — when two EHRs record contradictory information (e.g., different allergy lists), the system flags it for manual clinical review rather than guessing.
- Unified record — complete clinical picture stored in MongoDB, ready for AI analysis.
FHIR Resources We Normalized
| Clinical Data | FHIR Resource | Key Elements |
|---|---|---|
| Cancer diagnosis | Condition | Type, stage, grade, genomic markers |
| Medications | MedicationRequest | Drug, dose, frequency, prescriber |
| Lab results | Observation | Tumor markers, blood counts, chemistry |
| Imaging | ImagingStudy + DiagnosticReport | CT, MRI, PET findings |
| Procedures | Procedure | Surgeries, biopsies, radiation |
| Vitals | Observation | Weight, BP, temperature, O2 sat |
AI Treatment Plan Generation
The AI engine doesn't replace oncologists — it gives them a head start. Instead of spending 45+ minutes manually assembling data, the oncologist receives a structured, evidence-based treatment recommendation that they can review, modify, and approve in under 10 minutes.

What the AI Analyzes
- Cancer profile: type, stage (TNM), grade, histology, genomic/molecular markers (BRCA, HER2, PD-L1, etc.)
- Patient history: prior treatments and responses, surgeries, radiation history, comorbidities
- Current status: latest labs, imaging results, vital signs, performance status (ECOG)
- Medications: current drug regimen, potential interactions, contraindications
- Evidence base: NCCN guidelines, published clinical evidence, institutional protocols
Treatment Plan Structure
Each AI-generated plan is a structured decision graph — not free text. It contains:
- Recommended therapy lines: first-line, second-line, and contingency options
- Dosing schedules: drug, dose, route, frequency, cycle duration
- Monitoring protocol: which labs to check, at what intervals, what thresholds trigger alerts
- Expected milestones: when to expect response, when to reassess, when to consider switching
- Clinical trial matches: eligible trials from ClinicalTrials.gov based on patient's exact profile
Clinical Trial Matching
The platform automatically screens the patient's profile against 500+ active oncology trials on ClinicalTrials.gov. Matching criteria include cancer type, stage, molecular markers, prior treatments, age, and performance status. Trials that were previously missed by manual review are surfaced directly in the treatment plan.
Platform Modules

Module 1: Multi-EHR Integration
FHIR R4 connections to Epic, Cerner, Allscripts, and Athena. OAuth 2.0 + SMART on FHIR for patient-authorized access. Handles 20+ FHIR resource types.
Module 2: AI Treatment Engine
Core intelligence module. Analyzes unified patient data, cross-references NCCN guidelines and clinical evidence, generates structured treatment recommendations with confidence scores and reasoning chains.
Module 3: Clinical Trial Matcher
Automated screening against 500+ active oncology trials. Real-time matching based on patient's molecular profile, staging, and treatment history. Direct links to trial enrollment pages.
Module 4: Response Tracking
Continuous monitoring of lab values, imaging results, and patient-reported outcomes. AI detects trends — tumor marker trajectories, treatment response patterns, early signs of adverse effects. Automated alerts when intervention may be needed.
Module 5: Multi-Lingual Access
Treatment plans and patient education materials translated into 12+ languages. Culturally appropriate health literacy adjustments. Enables cancer care access regardless of language barriers.
Module 6: Mobile + Web Apps
React Native mobile app for patients (iOS + Android): treatment plan view, symptom tracking, medication reminders, appointment scheduling, secure messaging. React web dashboard for oncologists: cohort management, plan creation, approval workflows, outcome analytics.
Technical Challenges and How We Solved Them
Challenge 1: Structuring Treatment Plans from Complex Data
Cancer treatment plans are inherently complex — multiple drug combinations, sequencing decisions, conditional branches (if tumor shrinks → proceed to surgery; if not → switch to second-line therapy). Creating a structured, machine-readable format that oncologists could review and modify was the hardest engineering problem.
Solution: We designed a treatment plan schema as a directed graph of treatment nodes with conditions, timelines, and monitoring checkpoints. Each node represents a treatment decision with branching logic. Oncologists can modify any node through a visual editor in the web dashboard.
Challenge 2: Data Quality Across 4 EHRs
Same patient, four EHR systems, four different ways of recording the same data. Medication names varied (brand vs. generic), lab units differed, diagnosis codes sometimes conflicted between systems.
Solution: Built a normalization layer mapping medications to RxNorm, diagnoses to ICD-10-CM, and procedures to CPT. Fuzzy matching for patient identity across systems using demographics + MRN. Manual review queue for unresolvable conflicts — flagged for clinical staff rather than auto-resolved.
Challenge 3: Physician Trust in AI Recommendations
Oncologists are — rightly — cautious about AI-generated treatment plans. The system needed to earn trust through transparency, not black-box predictions.
Solution: Every AI recommendation includes its reasoning chain — which guidelines it referenced, which patient data points influenced the decision, and confidence scores. Physicians see the "why" alongside the "what." No plan reaches a patient without explicit physician approval.
Challenge 4: FDA Regulatory Pathway
As a clinical decision support tool that influences treatment decisions, the platform needed to navigate FDA regulatory requirements carefully.
Solution: Designed the system within the FDA's Clinical Decision Support (CDS) exemption criteria under the 21st Century Cures Act. The AI provides recommendations; physicians make all final decisions. This keeps the platform within the CDS exemption while documenting the pathway for future 510(k) clearance for autonomous features.
Results and Impact

| Metric | Before | After |
|---|---|---|
| EHR systems connected | Manual login to each | 4 EHRs unified in one view |
| Treatment plan prep time | 45–60 min per patient | Under 10 min with AI assist |
| Clinical trial matching | Manual, often missed | 500+ trials auto-screened |
| Language support | English only | 12+ languages |
| Treatment plan format | Free-text clinical notes | Structured, queryable data |
| Response tracking | Reactive (next visit) | Continuous, AI-monitored |
Key Outcomes
- 4 major EHRs integrated — Epic, Cerner, Allscripts, and Athena connected through a single FHIR R4 platform
- 80%+ reduction in treatment plan preparation time — from 45–60 minutes of manual chart review to under 10 minutes with AI-assisted preparation
- Automated clinical trial matching — screening against 500+ active oncology trials, surfacing eligible trials that were previously missed
- Multi-lingual cancer care — treatment plans and patient education available in 12+ languages, breaking language barriers in oncology
- Structured treatment data — for the first time, treatment plans stored as structured, queryable, machine-readable data rather than free-text clinical notes
- 3 oncology practices onboarded during beta launch with pipeline for wider rollout
Technology Stack
| Layer | Technology | Purpose |
|---|---|---|
| Mobile App | React Native (iOS + Android) | Patient-facing: treatment plans, symptoms, reminders |
| Web Dashboard | React | Oncologist-facing: cohort management, plan approval |
| Backend API | Node.js (Express) | API gateway, business logic, EHR orchestration |
| Database | MongoDB | FHIR-normalized unified patient records |
| EHR Integration | FHIR R4 | Epic, Cerner, Allscripts, Athena |
| Authentication | OAuth 2.0 + SMART on FHIR | Patient-authorized EHR access |
| Infrastructure | AWS (HIPAA-eligible) | US data residency, encrypted storage |
| AI/ML | Custom models | Treatment plan gen, trial matching, response prediction |
Compliance and Security
- HIPAA: Full compliance — AES-256 encryption at rest, TLS 1.3 in transit, role-based access control, comprehensive audit logs, BAA with all EHR vendors
- FDA: Designed within CDS exemption criteria (21st Century Cures Act); 510(k) submission pathway documented for future autonomous features
- SOC 2 Type II: In progress at time of launch
- Data Residency: All patient data stored in US-based AWS infrastructure (us-east-1)
- Consent Management: Granular patient consent per EHR data source — patients control which systems share data with the platform
Project Timeline
| Month | Milestone | Deliverables |
|---|---|---|
| Month 1 | Foundation | Architecture design, EHR API registrations (Epic App Orchard, Cerner Code), treatment plan schema, database design, CI/CD setup |
| Month 2 | Integration | Epic + Cerner FHIR connections live, unified data layer, data normalization pipeline, conflict resolution engine |
| Month 3 | Intelligence | AI treatment engine, clinical trial matching, oncologist review UI, React Native patient app, response tracking module |
| Month 4 | Launch | Multi-lingual support, Allscripts + Athena integration, compliance audit, beta launch with 3 oncology practices |
Lessons Learned
- Start with two EHRs, not four. We began with Epic and Cerner — the most common in US oncology — and added Allscripts and Athena in Month 4. This let us validate the normalization logic on two systems before scaling.
- Physician trust requires transparency. Showing AI reasoning (not just conclusions) was the single most important feature for physician adoption. Oncologists want to see why the AI recommends something.
- FHIR R4 coverage varies wildly. Epic's FHIR API covers 90%+ of resources. Some EHRs have gaps. We built fallback mechanisms for missing data points.
- Treatment plans are graphs, not documents. Modeling treatment plans as decision graphs (not linear text) was a breakthrough that enabled conditional logic, branching, and automated tracking.
Share
Related Case Studies

Building a Patient-First Health Record Platform: Connecting 12 US EMRs Into One View

Building an AI-Powered Pain Management Platform: A Technical Case Study

