Patient Detail View vs Longitudinal Care Plan - Information Architecture
Executive Summary
This document defines the clear separation of concerns between the Patient Detail View (administrative focus) and the Longitudinal Care Plan (clinical focus) to create an optimal user experience for healthcare providers while avoiding information duplication.
Current System Analysis
Current Patient Detail View Context
- Location: Reports section (
/reports/patient) with modal detail view - Purpose: Administrative data for reporting and analytics
- Content: Demographics, contact info, administrative compliance
- User Journey: Accessed from patient analytics/reporting workflows
Current Care Plan Module
- Location: Main CMS navigation (
/careplan) - Purpose: Clinical encounter documentation with AI Scribe
- Content: Individual visit notes, prescriptions, vitals per encounter
- User Journey: Clinical workflows during patient visits
Recommended Information Architecture
📋 Patient Detail View (Administrative Master Record)
Primary Purpose
Master patient record for administrative operations, demographic management, and system coordination.
Core Information Categories
1. Demographics & Identification
interface PatientDemographics {
// Identity
firstName: string;
lastName: string;
dateOfBirth: Date;
gender: "male" | "female" | "other";
preferredName?: string;
// Identification Numbers
medicalRecordNumber: string;
nationalId?: string; // SSN, Aadhar, etc.
insuranceId?: string;
// Contact Information
primaryPhone: string;
secondaryPhone?: string;
email?: string;
preferredContactMethod: "phone" | "email" | "sms";
// Address
address: {
line1: string;
line2?: string;
city: string;
state: string;
postalCode: string;
country: string;
};
}2. Administrative Information
interface PatientAdministrative {
// Registration
registrationDate: Date;
registeredBy: string;
clinic: string;
patientStatus: "active" | "inactive" | "deceased";
// Preferences
preferredLanguage: string;
communicationPreferences: {
appointments: boolean;
reminders: boolean;
results: boolean;
marketing: boolean;
};
// Emergency Contact
emergencyContact: {
name: string;
relationship: string;
phone: string;
};
}3. Insurance & Billing
interface PatientInsurance {
// Primary Insurance
primaryInsurance: {
provider: string;
policyNumber: string;
groupNumber?: string;
effectiveDate: Date;
expirationDate?: Date;
copayAmount?: number;
};
// Secondary Insurance
secondaryInsurance?: {
// Similar structure
};
// Billing Preferences
billingAddress?: Address;
paymentMethod: "cash" | "card" | "insurance" | "other";
}4. Compliance & Consent
interface PatientCompliance {
// HIPAA & Consent
hipaaAcknowledgment: {
acknowledged: boolean;
date: Date;
version: string;
};
// Communication Consents
consentToTreatment: boolean;
consentToPortalAccess: boolean;
consentToElectronicCommunication: boolean;
// Marketing & Research
consentToMarketing: boolean;
consentToResearch: boolean;
}5. Quick Summary for Clinical Context
interface PatientQuickSummary {
// Recent Activity (last 30 days)
lastVisitDate?: Date;
nextAppointmentDate?: Date;
activeProblemsCount: number;
currentMedicationsCount: number;
// Alerts (administrative)
insuranceExpiring: boolean;
missedAppointments: number;
overduePayments: number;
// Quick Actions
quickActions: [
"Schedule Appointment",
"Send Message",
"View Care Plan",
"Update Insurance",
"View Billing",
];
}User Interface Layout
Patient Detail View Layout:
┌─────────────────────────────────────────────────────────┐
│ Patient Header: John Doe, 45M, MRN: 12345 │
│ [Edit] [Schedule] [Message] [View Care Plan] [Billing] │
├─────────────────────────────────────────────────────────┤
│ │ Demographics │ Contact Info │ Insurance │ Compliance │
│ ├───────────────┼──────────────┼───────────┼────────────┤
│ │ Basic info, │ Phone, email,│ Primary & │ HIPAA, │
│ │ DOB, gender │ address, │ secondary │ consents, │
│ │ IDs, language │ preferences │ insurance │ marketing │
├─────────────────────────────────────────────────────────┤
│ Recent Activity Summary: │
│ • Last Visit: Jan 15, 2024 (Routine Check-up) │
│ • Next Appointment: Feb 20, 2024 (Follow-up) │
│ • Active Problems: 3 • Current Medications: 5 │
│ • Alerts: Insurance expires in 30 days │
└─────────────────────────────────────────────────────────┘🏥 Longitudinal Care Plan (Clinical Master Record)
Primary Purpose
Comprehensive medical history, ongoing care management, and clinical decision support spanning multiple encounters over time.
Core Information Categories
1. Patient Health Timeline
interface HealthTimeline {
events: HealthEvent[];
filters: {
dateRange: [Date, Date];
eventTypes: (
| "encounter"
| "lab"
| "medication"
| "vital"
| "immunization"
)[];
providers: string[];
};
}
interface HealthEvent {
id: string;
type:
| "encounter"
| "lab"
| "medication"
| "vital"
| "immunization"
| "referral";
date: Date;
title: string;
summary: string;
provider: string;
details: any;
relatedDocuments?: string[];
}2. Active Problem List
interface ProblemList {
activeProblems: Problem[];
resolvedProblems: Problem[];
chronicConditions: Problem[];
}
interface Problem {
id: string;
name: string;
icdCode?: string;
snomedCode?: string;
status: "active" | "improving" | "stable" | "worsening" | "resolved";
severity: "low" | "medium" | "high" | "critical";
onsetDate: Date;
diagnosedDate?: Date;
resolvedDate?: Date;
// Clinical Context
provider: string;
linkedEncounters: string[];
linkedMedications: string[];
linkedLabResults: string[];
// Management
treatmentGoals?: string[];
currentTreatment?: string;
notes?: string;
}3. Health Trends & Analytics
interface HealthTrends {
vitals: {
bloodPressure: TrendData[];
weight: TrendData[];
heartRate: TrendData[];
temperature: TrendData[];
bmi: TrendData[];
};
labResults: {
[testName: string]: LabTrendData[];
};
medications: {
adherence: AdherenceData[];
effectiveness: EffectivenessData[];
};
}
interface TrendData {
date: Date;
value: number;
unit: string;
status: "normal" | "abnormal" | "critical";
trend: "improving" | "stable" | "worsening";
}4. Chronic Disease Management
interface ChronicDiseaseManagement {
conditions: ChronicCondition[];
}
interface ChronicCondition {
id: string;
name: string;
type: "diabetes" | "hypertension" | "copd" | "heartFailure" | "other";
// Management Status
managementPlan: {
goals: CareGoal[];
currentStatus: "controlled" | "uncontrolled" | "improving";
lastReview: Date;
nextReview: Date;
};
// Key Metrics
keyMetrics: {
[metricName: string]: {
target: number;
current: number;
trend: "improving" | "stable" | "worsening";
lastUpdated: Date;
};
};
// Care Team
careTeam: {
primaryProvider: string;
specialists: string[];
lastSpecialistVisit?: Date;
};
}5. Preventive Care & Health Maintenance
interface PreventiveCare {
immunizations: Immunization[];
screenings: Screening[];
healthMaintenance: HealthMaintenanceItem[];
}
interface Screening {
id: string;
name: string;
type: "mammogram" | "colonoscopy" | "pap_smear" | "other";
// Status
status: "due" | "overdue" | "completed" | "not_applicable";
lastCompleted?: Date;
nextDue: Date;
// Risk Assessment
riskFactors: string[];
recommendedFrequency: string;
// Results
results?: {
date: Date;
result: string;
followUpRequired: boolean;
nextAction?: string;
};
}6. Care Coordination
interface CareCoordination {
referrals: Referral[];
careTeam: CareTeamMember[];
sharedCarePlans: SharedCarePlan[];
transitionsOfCare: TransitionEvent[];
}
interface Referral {
id: string;
referringProvider: string;
specialistProvider: string;
specialty: string;
reason: string;
urgency: "routine" | "urgent" | "stat";
status: "pending" | "scheduled" | "completed" | "cancelled";
referralDate: Date;
appointmentDate?: Date;
// Follow-up
reportReceived: boolean;
recommendations?: string;
followUpRequired: boolean;
}User Interface Layout
Longitudinal Care Plan Layout:
┌─────────────────────────────────────────────────────────────────┐
│ Patient: John Doe, 45M │ [New Encounter] [Care Summary] [Print] │
├─────────────────────────────────────────────────────────────────┤
│ │Timeline│Problems│Trends│Chronic Disease│Preventive│Coordination│
├─────────────────────────────────────────────────────────────────┤
│ Active Problems (3): │ Health Trends: │
│ • Diabetes Type 2 - Stable │ ┌─────────────────────────────┐ │
│ • Hypertension - Controlled │ │ Blood Pressure Trend │ │
│ • Hyperlipidemia - Improving │ │ ╭─╮ ╭─╮ │ │
│ │ │ ╭─╯ ╰─╮ ╱ ╲ │ │
│ Current Medications (5): │ │╱ ╲╱ ╲ │ │
│ • Metformin 1000mg BID │ │ └─────────╲ │ │
│ • Lisinopril 10mg QD │ └─────────────────────────────┘ │
│ • Atorvastatin 20mg HS │ │
├─────────────────────────────────────────────────────────────────┤
│ Diabetes Management Dashboard: │
│ • HbA1c: 7.2% (Target: <7.0%) - Last: Jan 15, Next: Apr 15 │
│ • Blood Glucose: Avg 145 mg/dL (Target: <130) │
│ • Medication Adherence: 85% (Goal: >90%) │
└─────────────────────────────────────────────────────────────────┘Navigation & User Flow Architecture
User Journey Mapping
Administrative Tasks Flow
Patient List → Patient Detail View → Actions
│
├─ Edit Demographics
├─ Update Insurance
├─ Schedule Appointment
├─ Send Message
├─ View Billing History
└─ [Go to Care Plan] ────┐
│
v
Longitudinal Care PlanClinical Care Flow
Longitudinal Care Plan → Clinical Actions
│
├─ Review Health Timeline
├─ Update Problem List
├─ Manage Chronic Conditions
├─ Review Trends & Analytics
├─ Plan Preventive Care
├─ Coordinate Care
└─ [Start New Encounter] → Individual Encounter
│
└─ [Back to Care Plan]Context Switching Guidelines
From Patient Detail → Care Plan
Trigger Scenarios:
- "View full medical history"
- "Review chronic conditions"
- "Start clinical assessment"
- "Review care plan progress"
Information Handoff:
- Patient ID and basic demographics
- Current alert status
- Insurance coverage verification
- Recent administrative updates
From Care Plan → Patient Detail
Trigger Scenarios:
- "Update contact information during visit"
- "Verify insurance coverage"
- "Schedule follow-up appointment"
- "Update emergency contact"
Information Handoff:
- Clinical context (active problems, current medications)
- Reason for administrative access
- Urgency level (if insurance issue affects care)
Data Synchronization
Shared Data Elements
interface SharedPatientContext {
// Always synchronized
patientId: string;
name: PatientName;
dateOfBirth: Date;
gender: string;
// Administrative → Clinical sync
insuranceStatus: "active" | "expired" | "pending";
preferredLanguage: string;
emergencyContact: EmergencyContact;
// Clinical → Administrative sync
lastVisitDate: Date;
activeProblemsCount: number;
criticalAlerts: ClinicalAlert[];
// Bidirectional sync
communicationPreferences: CommunicationPrefs;
consentStatus: ConsentStatus;
}Information Boundaries
Patient Detail View Should NOT Include:
- Detailed clinical notes from encounters
- Specific medication dosages and clinical responses
- Lab result values and trends
- Chronic disease management details
- Care plan goals and progress
Longitudinal Care Plan Should NOT Include:
- Detailed billing and payment history
- Insurance claim details
- Marketing preferences
- Detailed address information
- Administrative compliance documentation
Implementation Strategy
Phase 1: Information Architecture Setup
- Define clear data models for both views
- Establish API boundaries with shared and distinct endpoints
- Create navigation patterns between the two views
- Implement context switching with appropriate data handoff
Phase 2: Patient Detail View Enhancement
- Reorganize existing patient detail into administrative focus
- Add insurance and billing integration
- Implement quick action buttons for common tasks
- Create summary cards for clinical context without detail
Phase 3: Longitudinal Care Plan Development
- Implement health timeline with event visualization
- Create problem list management with persistence
- Add health trend visualizations for key metrics
- Develop chronic disease modules starting with diabetes/hypertension
Phase 4: Integration & Optimization
- Seamless navigation between views
- Context-aware data loading to minimize wait times
- Progressive enhancement based on user feedback
- Performance optimization for large patient datasets
Success Metrics
User Experience Metrics
- Task Completion Time: Administrative vs Clinical tasks
- Context Switch Frequency: How often users move between views
- User Satisfaction: Separate scores for administrative and clinical workflows
- Error Rates: Reduced confusion about where to find information
Clinical Quality Metrics
- Information Completeness: % of encounters with complete problem lists
- Care Continuity: Reduced redundant data entry across encounters
- Clinical Decision Support: Faster access to relevant patient history
- Care Coordination: Improved referral and care team communication
Technical Metrics
- Page Load Performance: Optimized loading for each view type
- Data Synchronization: Real-time updates between administrative and clinical data
- Cache Effectiveness: Reduced API calls through smart caching
- Mobile Responsiveness: Optimized layouts for different device types
Conclusion
This clear separation of concerns between Patient Detail View (administrative) and Longitudinal Care Plan (clinical) creates:
- Focused User Experiences: Each view optimized for specific workflows
- Reduced Cognitive Load: Users find information where they expect it
- Improved Efficiency: Faster task completion for both administrative and clinical work
- Better Care Quality: Comprehensive longitudinal view supports better clinical decisions
- Scalable Architecture: Clear boundaries enable independent development and optimization
The key to success is maintaining this separation while providing seamless navigation and context switching between the two views, ensuring healthcare providers can efficiently manage both administrative and clinical aspects of patient care.