DeveloperPatientLhr
Longitudinal Health Record (LHR) — patient app
Note (2026-05-11): This doc captures the original LHR feature spec for the patient app. The live implementation has shipped; the API Requirements and Mock Data Structure sections below predate it and are kept for historical context only.
Up-to-date references:
- CMS LHR developer guide — backend transformers + CMS frontend
- LHR product overview — what users see, scope, principles
- LHR QA guide — test plan
- Patient-app code:
patient/src/features/health-records/
Overview
The Longitudinal Health Record provides a comprehensive, timeline-based view of a patient's complete health journey, with contextual information and trends visualization, including symptom tracking and health data entry capabilities.
User Stories
- As a patient, I want to view my complete health history in chronological order
- As a patient, I want to see trends in my vital signs over time
- As a patient, I want to track my ongoing health conditions and treatments
- As a patient, I want to understand how my health has changed over time
- As a patient, I want to log and track my symptoms over time
- As a patient, I want to see patterns and triggers for my symptoms
- As a patient, I want to share my symptom history with my healthcare provider
- As a patient, I want to correlate symptoms with medications and treatments
- As a patient, I want to manually enter my vital signs and health data
Information Architecture
- Patient Timeline
- Vital Signs Trends
- Manual Vital Entry
- Trend Visualization
- Problem List Management
- Medication History
- Lab Results Summary
- Clinical Encounters
- Health Events
- Symptom Diary
- Add Symptom Entry
- Symptom Timeline
- Symptom Trends Analysis
- Quick Symptom Logger
- Symptom-Medication Correlation
- Symptom Pattern Detection
Component Specifications
Health Data Entry Components
Add Vital Signs Dialog
- Date and time selection
- Blood pressure, heart rate, temperature inputs
- Weight and blood glucose tracking
- Oxygen saturation monitoring
- Notes field for additional context
- Organized in tabs for different vital categories
Symptom Tracking Components
Add Symptom Dialog
-
Symptom Selection
- Searchable dropdown with common symptoms
- Auto-complete from previous entries
- Option to add custom symptoms
-
Severity Assessment
- Visual severity scale (1-5)
- 1 = Mild, 2 = Moderate, 3 = Significant, 4 = Severe, 5 = Critical
- Color-coded indicators for quick recognition
-
Duration Tracking
- How long symptom has been present
- Options: Minutes, Hours, Days, Weeks
- Start/end time selection
-
Trigger Identification
- Common triggers checklist (food, stress, activity, weather, medication)
- Custom trigger input field
- Multiple trigger selection
-
Relief Factors
- What helps alleviate the symptom
- Pre-defined options (medication, rest, position change, heat/cold)
- Custom relief method input
-
Associated Symptoms
- Multi-select for related symptoms
- Shows potential correlations
- Links to other logged symptoms
-
Impact Assessment
- How it affects daily activities
- Scale: None / Mild / Moderate / Severe impact
- Specific activity limitations
Symptom List View
- Chronological symptom history display
- Filter options:
- Date range selector
- Severity level filter
- Symptom type/category
- Body system grouping
- Color-coded severity indicators
- Expandable cards for detailed view
- Quick actions (edit, delete, duplicate)
Symptom Trends Visualization
-
Severity Trends Chart
- Line chart showing severity over time
- Multiple symptom comparison
- Adjustable time ranges
-
Frequency Heat Map
- Calendar view with intensity colors
- Daily symptom frequency
- Pattern identification
-
Common Symptoms Chart
- Bar chart of most frequent symptoms
- Percentage breakdown
- Time period selection
-
Trigger Correlation Analysis
- Visual correlation between triggers and symptoms
- Statistical significance indicators
- Actionable insights
Quick Symptom Logger
- One-click logging for frequent symptoms
- Recent symptoms list for quick selection
- Pre-filled with last entry details
- "Same as yesterday" quick option
- Minimal fields for rapid entry
- Voice input support (future enhancement)
API Requirements
Vital Signs Endpoints
POST /api/vitals- Create new vital sign entryGET /api/vitals- Retrieve vital signs historyPUT /api/vitals/:id- Update vital sign entryDELETE /api/vitals/:id- Delete vital sign entryGET /api/vitals/trends- Get vital sign trends and analytics
Symptom Tracking Endpoints
POST /api/symptoms- Create new symptom entryGET /api/symptoms- Retrieve symptom history with filteringPUT /api/symptoms/:id- Update symptom entryDELETE /api/symptoms/:id- Delete symptom entryGET /api/symptoms/trends- Get symptom analytics and patternsGET /api/symptoms/correlations- Get symptom-medication correlationsGET /api/symptoms/triggers- Analyze trigger patternsGET /api/symptoms/common- Get list of common symptoms by body system
Mock Data Structure
Vital Entry
interface VitalEntry {
id?: string;
date: Date;
time?: string;
bloodPressure?: {
systolic: number;
diastolic: number;
};
heartRate?: number;
temperature?: number;
weight?: number;
bloodGlucose?: {
value: number;
type: 'fasting' | 'postprandial' | 'random';
};
oxygenSaturation?: number;
notes?: string;
source: 'manual' | 'device' | 'provider';
createdAt?: Date;
updatedAt?: Date;
}Symptom Entry
interface SymptomEntry {
id?: string;
date: Date;
symptom: string;
severity: 1 | 2 | 3 | 4 | 5; // 1-5 scale
duration: string;
triggers?: string[];
relievingFactors?: string[];
associatedSymptoms?: string[];
impact: 'none' | 'mild' | 'moderate' | 'severe';
notes?: string;
createdAt?: Date;
updatedAt?: Date;
}Implementation Checklist
Core LHR Components
- Create timeline component
- Implement vital signs charts
- Build problem list interface
- Add medication history view
- Create lab results display
- Implement encounter history
- Add filtering and search
- Enable data export functionality
Health Data Entry
- Define health data types (VitalEntry, SymptomEntry)
- Create add vital signs dialog component
- Implement vital signs API integration
- Add data validation and error handling
Symptom Tracking
- Define symptom data types
- Create add symptom dialog component
- Implement symptom list view
- Build symptom trends visualization
- Add quick symptom logger
- Create symptom-medication correlation
- Implement symptom pattern detection
- Add symptom export functionality
- Create common symptoms database
- Implement trigger analysis
- Add symptom sharing with providers