Skip to content

Fix Profile System - Use user_id & Optimize API Calls

Madavarapu Sai Harshavardhan requested to merge profiles/harsha into develop

Summary Refactored profile system to consistently use user_id for navigation and reduced API calls from multiple fallback strategies to just 2 calls.

Key Changes

  1. Profile Service (profileService.ts)
  • Simplified fetchProfileData to always use user_id
  • Reduced from 5 complex strategies to 2 API calls: GET /users/{user_id} - User lookup, GET /patients/search?q={phone} - Patient enrichment
  • Enhanced error logging
  1. Type Updates (api.ts)
  • Added user_id field to Patient & Doctor interfaces
  • Fixed allergies type from object to string[]
  1. API Functions (lib/api.ts)
  • Added getUserVisitHistory(userId) for visit history
  • Updated getPatientById() with better error handling
  • Correct endpoints: vitals use book_no, visits use user_id
  1. Navigation Updates
  • All components now use user_id instead of patient.id or doctor.id: PatientSearch, PatientProfilePage, AssignDoctorPage, CounselingPage, ManageDoctorsPage
  1. UI Improvements (PersonalInfo.tsx)
  • Added Book Number & Patient Phone display
  • Fixed allergies display (array of badges)
  • Shows all patient-specific details

Impact Reduced API calls (multiple → 2 max) Consistent user_id navigation All patient details displayed Correct endpoints for vitals & visits Works for all user types

Testing Profile navigation from all entry points Patient details (book_no, allergies, chronic_history) display Vitals & visit history load correctly TypeScript compilation passes

Merge request reports

Loading