Kulcare Docs
DeveloperCare plans

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

📋 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%)                      │
└─────────────────────────────────────────────────────────────────┘

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 Plan

Clinical 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

  1. Define clear data models for both views
  2. Establish API boundaries with shared and distinct endpoints
  3. Create navigation patterns between the two views
  4. Implement context switching with appropriate data handoff

Phase 2: Patient Detail View Enhancement

  1. Reorganize existing patient detail into administrative focus
  2. Add insurance and billing integration
  3. Implement quick action buttons for common tasks
  4. Create summary cards for clinical context without detail

Phase 3: Longitudinal Care Plan Development

  1. Implement health timeline with event visualization
  2. Create problem list management with persistence
  3. Add health trend visualizations for key metrics
  4. Develop chronic disease modules starting with diabetes/hypertension

Phase 4: Integration & Optimization

  1. Seamless navigation between views
  2. Context-aware data loading to minimize wait times
  3. Progressive enhancement based on user feedback
  4. 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:

  1. Focused User Experiences: Each view optimized for specific workflows
  2. Reduced Cognitive Load: Users find information where they expect it
  3. Improved Efficiency: Faster task completion for both administrative and clinical work
  4. Better Care Quality: Comprehensive longitudinal view supports better clinical decisions
  5. 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.

On this page