diff --git a/Frontend/lib/mih_packages/patient_manager/pat_profile/package_tiles/patient_profile_tile.dart b/Frontend/lib/mih_packages/patient_manager/pat_profile/package_tiles/patient_profile_tile.dart index d6038ea5..6c64f5c2 100644 --- a/Frontend/lib/mih_packages/patient_manager/pat_profile/package_tiles/patient_profile_tile.dart +++ b/Frontend/lib/mih_packages/patient_manager/pat_profile/package_tiles/patient_profile_tile.dart @@ -4,11 +4,7 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_icons.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_objects/arguments.dart'; import 'package:flutter/material.dart'; -import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart'; -import 'package:mzansi_innovation_hub/mih_components/mih_providers/patient_manager_provider.dart'; import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart'; -import 'package:mzansi_innovation_hub/mih_services/mih_patient_services.dart'; -import 'package:provider/provider.dart'; class PatientProfileTile extends StatefulWidget { final PatientViewArguments arguments; @@ -30,29 +26,7 @@ class _PatientProfileTileState extends State { return MihPackageTile( authenticateUser: true, onTap: () async { - PatientManagerProvider patientManagerProvider = - context.read(); - MzansiProfileProvider profileProvider = - context.read(); - String? app_id = profileProvider.user!.app_id; - if (patientManagerProvider.selectedPatient == null) { - await MihPatientServices() - .getPatientDetails(app_id, patientManagerProvider); - } - patientManagerProvider.setSelectedPatientProfilePicUrl( - profileProvider.userProfilePicUrl!); - patientManagerProvider.setPersonalMode(true); - if (patientManagerProvider.selectedPatient != null) { - context.goNamed( - 'patientProfile', - ); - } else { - context.goNamed("patientProfileSetup"); - } - // Navigator.of(context).pushNamed( - // '/patient-profile', - // arguments: widget.arguments, - // ); + context.goNamed("patientProfile"); }, appName: "Patient Profile", appIcon: Icon( diff --git a/Frontend/lib/mih_packages/patient_manager/pat_profile/patient_profile.dart b/Frontend/lib/mih_packages/patient_manager/pat_profile/patient_profile.dart index 3fced665..839bbb9e 100644 --- a/Frontend/lib/mih_packages/patient_manager/pat_profile/patient_profile.dart +++ b/Frontend/lib/mih_packages/patient_manager/pat_profile/patient_profile.dart @@ -3,6 +3,7 @@ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_ import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_action.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tools.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart'; +import 'package:mzansi_innovation_hub/mih_components/mih_providers/mzansi_profile_provider.dart'; import 'package:mzansi_innovation_hub/mih_components/mih_providers/patient_manager_provider.dart'; import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_profile/package_tools/patient_claim_or_statement.dart'; import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_profile/package_tools/patient_consultation.dart'; @@ -10,6 +11,7 @@ import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_profile/p import 'package:mzansi_innovation_hub/mih_packages/patient_manager/pat_profile/package_tools/patient_info.dart'; import 'package:flutter/material.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_claim_statement_generation_services.dart'; +import 'package:mzansi_innovation_hub/mih_services/mih_data_helper_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_patient_services.dart'; import 'package:provider/provider.dart'; @@ -23,14 +25,30 @@ class PatientProfile extends StatefulWidget { } class _PatientProfileState extends State { - bool isLoading = true; + bool _isLoadingInitialData = true; - Future initialisePatientData() async { + Future _loadInitialData() async { setState(() { - isLoading = true; + _isLoadingInitialData = true; }); + MzansiProfileProvider mzansiProfileProvider = + context.read(); PatientManagerProvider patientManagerProvider = context.read(); + await MihDataHelperServices().loadUserDataOnly( + mzansiProfileProvider, + ); + if (patientManagerProvider.selectedPatient == null) { + await MihPatientServices().getPatientDetails( + mzansiProfileProvider.user!.app_id, patientManagerProvider); + } + if (patientManagerProvider.selectedPatient == null) { + context.goNamed("patientProfileSetup"); + return; + } + patientManagerProvider.setSelectedPatientProfilePicUrl( + mzansiProfileProvider.userProfilePicUrl!); + patientManagerProvider.setPersonalMode(mzansiProfileProvider.personalHome); if (patientManagerProvider.selectedPatient != null) { await MihPatientServices() .getPatientConsultationNotes(patientManagerProvider); @@ -39,29 +57,41 @@ class _PatientProfileState extends State { patientManagerProvider); } setState(() { - isLoading = false; + _isLoadingInitialData = false; }); } @override void initState() { super.initState(); - WidgetsBinding.instance.addPostFrameCallback((_) async { - initialisePatientData(); - }); + _loadInitialData(); } @override Widget build(BuildContext context) { - return MihPackage( - appActionButton: getAction(), - appTools: getTools(), - appBody: getToolBody(), - appToolTitles: getToolTitle(), - selectedbodyIndex: - context.watch().patientProfileIndex, - onIndexChange: (newValue) { - context.read().setPatientProfileIndex(newValue); + return Consumer( + builder: (BuildContext context, + PatientManagerProvider patientManagerProvider, Widget? child) { + if (_isLoadingInitialData) { + return Scaffold( + body: Center( + child: Mihloadingcircle(), + ), + ); + } + return MihPackage( + appActionButton: getAction(), + appTools: getTools(), + appBody: getToolBody(), + appToolTitles: getToolTitle(), + selectedbodyIndex: + context.watch().patientProfileIndex, + onIndexChange: (newValue) { + context + .read() + .setPatientProfileIndex(newValue); + }, + ); }, ); } @@ -109,20 +139,6 @@ class _PatientProfileState extends State { } List getToolBody() { - if (isLoading) { - return [ - Center( - child: Mihloadingcircle(), - ), - ]; - } - PatientManagerProvider patientManagerProvider = - context.read(); - if (patientManagerProvider.selectedPatient == null) { - return [ - const SizedBox(), - ]; - } List toolBodies = [ PatientInfo(), PatientConsultation(),