Skip to main content

Routing

The Member Portal uses React Router v7 for client-side navigation.

File: memberportal/src/Router.tsx

Route table​

PathComponentDescription
/DashboardPageHome screen with health summary
/chatChatAssistantPageAI health assistant
/lab-resultsLabResultsPageList of all lab results
/lab-results/:resultIdLabResultDetailPageDetail view for one lab result
/medicationsMedicationsPageList of all medications
/medications/:medicationIdMedicationDetailPageDetail view for one medication
/conditionsConditionsPageList of all conditions
/visitsVisitsPageList of all encounters/visits
/visits/:encounterIdVisitDetailPageDetail view for one visit
/appointmentsredirectRedirects to /visits
/reportsReportsNotesPageMedical records and documents
/allergiesAllergiesPageList of all allergies
/proceduresProceduresPageList of all procedures
/immunizationsImmunizationsPageList of all immunizations
/health-reportsHealthReportsPageVisual health summary reports
/profileProfilePagePatient profile information
/settingsSettingsPageEHR connections, security, preferences
/supportSupportPageContact support / submit ticket
/signoutSignOutPageSigns the patient out
/coming-soonComingSoonPagePlaceholder for upcoming features

Public routes (no login required)​

These routes are defined in App.tsx and are shown when the patient is not logged in:

PathComponent
/SignInPage
/registerSignUpPage
/setpassword/:id/:secretSetPasswordPage
/verifyemail/:id/:secretVerifyEmailPage

Any other path while logged out redirects to / (sign in).

Pages in progress (not yet routed)​

These page files exist in memberportal/src/pages/ but are not wired to any route in Router.tsx.

FileIntended purposeStatus
ObservationPage.tsxDetail view for a single FHIR Observation resourceBuilt — not routed

To activate, add a <Route> entry in Router.tsx and a sidebar link in Sidebar.tsx if needed.

How navigation works​

  • The <Sidebar /> component renders <NavLink> elements for each route.
  • Active link highlighting: the sidebar marks a link as active if location.pathname starts with the link's path (except / which requires an exact match).
  • Pages navigate programmatically using useNavigate() from React Router.

Adding a new page​

  1. Create memberportal/src/pages/YourPage.tsx
  2. Add the route in memberportal/src/Router.tsx
  3. Add a nav link in memberportal/src/components/Sidebar.tsx if it should appear in the sidebar