762 B

Patient Page Refactoring

Current Architecture Issues

  • File: src/routes/(app)/patients/+page.svelte (543 lines)
  • Mixes patient CRUD + visit management + ADT history in one file
  • Inline visit card rendering (~100 lines)
  • Helper functions at bottom (formatDate, formatDateTime)
  • Patient name formatting repeated 3+ times inline

Refactoring Plan

  1. Extract VisitCard.svelte component
  2. Create patientUtils.js for shared helpers
  3. Group modal states into objects (patientModals, visitModals)
  4. Use $derived for computed values (patientFullName, formattedVisits)
  5. Add JSDoc types for Patient and Visit
  • PatientFormModal.svelte
  • VisitFormModal.svelte
  • VisitADTHistoryModal.svelte
  • $lib/api/patients.js
  • $lib/api/visits.js