QOL: Patient Manager Package performance improvements pt2

This commit is contained in:
2025-11-28 13:22:54 +02:00
parent 730c5d2bdf
commit cd8115c597
12 changed files with 83 additions and 122 deletions

View File

@@ -748,8 +748,6 @@ class _BuildAppointmentListState extends State<BuildAppointmentList> {
return Padding( return Padding(
padding: EdgeInsets.symmetric(horizontal: getPaddingSize()), padding: EdgeInsets.symmetric(horizontal: getPaddingSize()),
child: ListView.builder( child: ListView.builder(
physics: const NeverScrollableScrollPhysics(),
shrinkWrap: true,
itemCount: mzansiProfileProvider.personalHome itemCount: mzansiProfileProvider.personalHome
? mihCalendarProvider.personalAppointments!.length ? mihCalendarProvider.personalAppointments!.length
: mihCalendarProvider.businessAppointments!.length, : mihCalendarProvider.businessAppointments!.length,

View File

@@ -558,8 +558,6 @@ class _BuildPatientsListState extends State<BuildMihPatientSearchList> {
builder: (BuildContext context, MzansiProfileProvider profileProvider, builder: (BuildContext context, MzansiProfileProvider profileProvider,
PatientManagerProvider patientManagerProvider, Widget? child) { PatientManagerProvider patientManagerProvider, Widget? child) {
return ListView.separated( return ListView.separated(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
separatorBuilder: (BuildContext context, index) { separatorBuilder: (BuildContext context, index) {
return Divider( return Divider(
color: MihColors.getSecondaryColor( color: MihColors.getSecondaryColor(

View File

@@ -522,8 +522,6 @@ class _BuildPatientsListState extends State<BuildMyPatientListList> {
builder: (BuildContext context, MzansiProfileProvider profileProvider, builder: (BuildContext context, MzansiProfileProvider profileProvider,
PatientManagerProvider patientManagerProvider, Widget? child) { PatientManagerProvider patientManagerProvider, Widget? child) {
return ListView.separated( return ListView.separated(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
separatorBuilder: (BuildContext context, index) { separatorBuilder: (BuildContext context, index) {
return Divider( return Divider(
color: MihColors.getSecondaryColor( color: MihColors.getSecondaryColor(

View File

@@ -3,7 +3,6 @@ import 'package:mzansi_innovation_hub/mih_package_components/mih_icons.dart';
import 'package:mzansi_innovation_hub/mih_providers/patient_manager_provider.dart'; import 'package:mzansi_innovation_hub/mih_providers/patient_manager_provider.dart';
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart'; import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_patient_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_patient_services.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_single_child_scroll.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_package_tool_body.dart'; import 'package:mzansi_innovation_hub/mih_package_components/mih_package_tool_body.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_search_bar.dart'; import 'package:mzansi_innovation_hub/mih_package_components/mih_search_bar.dart';
import 'package:mzansi_innovation_hub/mih_config/mih_env.dart'; import 'package:mzansi_innovation_hub/mih_config/mih_env.dart';
@@ -34,8 +33,7 @@ class _MihPatientSearchState extends State<MihPatientSearch> {
return Consumer<PatientManagerProvider>( return Consumer<PatientManagerProvider>(
builder: (BuildContext context, builder: (BuildContext context,
PatientManagerProvider patientManagerProvider, Widget? child) { PatientManagerProvider patientManagerProvider, Widget? child) {
return MihSingleChildScroll( return Column(mainAxisSize: MainAxisSize.max, children: [
child: Column(mainAxisSize: MainAxisSize.max, children: [
Padding( Padding(
padding: EdgeInsets.symmetric(horizontal: width / 20), padding: EdgeInsets.symmetric(horizontal: width / 20),
child: MihSearchBar( child: MihSearchBar(
@@ -64,8 +62,7 @@ class _MihPatientSearchState extends State<MihPatientSearch> {
const SizedBox(height: 10), const SizedBox(height: 10),
displayPatientList(patientManagerProvider, _mihPatientSearchString), displayPatientList(patientManagerProvider, _mihPatientSearchString),
]), ]);
);
}, },
); );
} }
@@ -86,7 +83,9 @@ class _MihPatientSearchState extends State<MihPatientSearch> {
Widget displayPatientList( Widget displayPatientList(
PatientManagerProvider patientManagerProvider, String searchString) { PatientManagerProvider patientManagerProvider, String searchString) {
if (patientManagerProvider.patientSearchResults.isNotEmpty) { if (patientManagerProvider.patientSearchResults.isNotEmpty) {
return BuildMihPatientSearchList(); return Expanded(
child: BuildMihPatientSearchList(),
);
} else if (patientManagerProvider.patientSearchResults.isEmpty && } else if (patientManagerProvider.patientSearchResults.isEmpty &&
searchString != "") { searchString != "") {
return Column( return Column(

View File

@@ -4,7 +4,6 @@ import 'package:mzansi_innovation_hub/mih_providers/mzansi_profile_provider.dart
import 'package:mzansi_innovation_hub/mih_providers/patient_manager_provider.dart'; import 'package:mzansi_innovation_hub/mih_providers/patient_manager_provider.dart';
import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart'; import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_patient_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_patient_services.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_single_child_scroll.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_package_tool_body.dart'; import 'package:mzansi_innovation_hub/mih_package_components/mih_package_tool_body.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_search_bar.dart'; import 'package:mzansi_innovation_hub/mih_package_components/mih_search_bar.dart';
import 'package:mzansi_innovation_hub/mih_config/mih_env.dart'; import 'package:mzansi_innovation_hub/mih_config/mih_env.dart';
@@ -33,8 +32,7 @@ class _MyPatientListState extends State<MyPatientList> {
Widget myPatientListTool(MzansiProfileProvider profileProvider, Widget myPatientListTool(MzansiProfileProvider profileProvider,
PatientManagerProvider patientManagerProvider, double width) { PatientManagerProvider patientManagerProvider, double width) {
return MihSingleChildScroll( return Column(mainAxisSize: MainAxisSize.max, children: [
child: Column(mainAxisSize: MainAxisSize.max, children: [
Padding( Padding(
padding: EdgeInsets.symmetric(horizontal: width / 20), padding: EdgeInsets.symmetric(horizontal: width / 20),
child: MihSearchBar( child: MihSearchBar(
@@ -66,13 +64,12 @@ class _MyPatientListState extends State<MyPatientList> {
//spacer //spacer
const SizedBox(height: 10), const SizedBox(height: 10),
displayMyPatientList(patientManagerProvider), displayMyPatientList(patientManagerProvider),
]), ]);
);
} }
Widget displayMyPatientList(PatientManagerProvider patientManagerProvider) { Widget displayMyPatientList(PatientManagerProvider patientManagerProvider) {
if (patientManagerProvider.myPaitentList!.isNotEmpty) { if (patientManagerProvider.myPaitentList!.isNotEmpty) {
return BuildMyPatientListList(); return Expanded(child: BuildMyPatientListList());
} }
if (hasSearchedBefore && _myPatientIdSearchString.isNotEmpty) { if (hasSearchedBefore && _myPatientIdSearchString.isNotEmpty) {
return Column( return Column(
@@ -199,7 +196,6 @@ class _MyPatientListState extends State<MyPatientList> {
@override @override
void dispose() { void dispose() {
// TODO: implement dispose
super.dispose(); super.dispose();
_myPatientSearchController.dispose(); _myPatientSearchController.dispose();
_searchFocusNode.dispose(); _searchFocusNode.dispose();

View File

@@ -10,7 +10,6 @@ import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_calendar_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_mzansi_calendar_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_validation_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_validation_services.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_calendar.dart'; import 'package:mzansi_innovation_hub/mih_package_components/mih_calendar.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_single_child_scroll.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_button.dart'; import 'package:mzansi_innovation_hub/mih_package_components/mih_button.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_date_field.dart'; import 'package:mzansi_innovation_hub/mih_package_components/mih_date_field.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_form.dart'; import 'package:mzansi_innovation_hub/mih_package_components/mih_form.dart';
@@ -71,8 +70,7 @@ class _WaitingRoomState extends State<WaitingRoom> {
} }
return Stack( return Stack(
children: [ children: [
MihSingleChildScroll( Column(
child: Column(
children: [ children: [
MIHCalendar( MIHCalendar(
calendarWidth: 500, calendarWidth: 500,
@@ -86,14 +84,8 @@ class _WaitingRoomState extends State<WaitingRoom> {
// Divider( // Divider(
// color: MihColors.getSecondaryColor(MzansiInnovationHub.of(context)!.theme.mode == "Dark"), // color: MihColors.getSecondaryColor(MzansiInnovationHub.of(context)!.theme.mode == "Dark"),
// ), // ),
Row( displayAppointmentList(mihCalendarProvider)
mainAxisSize: MainAxisSize.max,
children: [
displayAppointmentList(mihCalendarProvider),
], ],
)
],
),
), ),
Positioned( Positioned(
right: 10, right: 10,

View File

@@ -266,8 +266,6 @@ class _BuildClaimStatementFileListState
PatientManagerProvider patientManagerProvider, Widget? child) { PatientManagerProvider patientManagerProvider, Widget? child) {
if (patientManagerProvider.patientClaimsDocuments!.isNotEmpty) { if (patientManagerProvider.patientClaimsDocuments!.isNotEmpty) {
return ListView.separated( return ListView.separated(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
separatorBuilder: (BuildContext context, int index) { separatorBuilder: (BuildContext context, int index) {
return Divider( return Divider(
color: MihColors.getSecondaryColor( color: MihColors.getSecondaryColor(

View File

@@ -299,8 +299,6 @@ class _BuildFilesListState extends State<BuildFilesList> {
PatientManagerProvider patientManagerProvider, Widget? child) { PatientManagerProvider patientManagerProvider, Widget? child) {
if (patientManagerProvider.patientDocuments!.isNotEmpty) { if (patientManagerProvider.patientDocuments!.isNotEmpty) {
return ListView.separated( return ListView.separated(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
separatorBuilder: (BuildContext context, int index) { separatorBuilder: (BuildContext context, int index) {
return Divider( return Divider(
color: MihColors.getSecondaryColor( color: MihColors.getSecondaryColor(

View File

@@ -222,8 +222,6 @@ class _BuildNotesListState extends State<BuildNotesList> {
PatientManagerProvider patientManagerProvider, Widget? child) { PatientManagerProvider patientManagerProvider, Widget? child) {
if (patientManagerProvider.consultationNotes!.isNotEmpty) { if (patientManagerProvider.consultationNotes!.isNotEmpty) {
return ListView.separated( return ListView.separated(
shrinkWrap: true,
physics: const NeverScrollableScrollPhysics(),
separatorBuilder: (BuildContext context, int index) { separatorBuilder: (BuildContext context, int index) {
return Divider( return Divider(
color: MihColors.getSecondaryColor( color: MihColors.getSecondaryColor(

View File

@@ -48,12 +48,7 @@ class _PatientClaimOrStatementState extends State<PatientClaimOrStatement> {
PatientManagerProvider patientManagerProvider, Widget? child) { PatientManagerProvider patientManagerProvider, Widget? child) {
return Stack( return Stack(
children: [ children: [
Column(
children: [
//const Placeholder(),
BuildClaimStatementFileList(), BuildClaimStatementFileList(),
],
),
Visibility( Visibility(
visible: !patientManagerProvider.personalMode, visible: !patientManagerProvider.personalMode,
child: Positioned( child: Positioned(

View File

@@ -8,7 +8,6 @@ import 'package:mzansi_innovation_hub/mih_config/mih_colors.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_patient_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_patient_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_validation_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_validation_services.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_single_child_scroll.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_button.dart'; import 'package:mzansi_innovation_hub/mih_package_components/mih_button.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_form.dart'; import 'package:mzansi_innovation_hub/mih_package_components/mih_form.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_package_tool_body.dart'; import 'package:mzansi_innovation_hub/mih_package_components/mih_package_tool_body.dart';
@@ -290,10 +289,7 @@ class _PatientConsultationState extends State<PatientConsultation> {
PatientManagerProvider patientManagerProvider, Widget? child) { PatientManagerProvider patientManagerProvider, Widget? child) {
return Stack( return Stack(
children: [ children: [
MihSingleChildScroll(
child: Column(children: [
BuildNotesList(), BuildNotesList(),
])),
Visibility( Visibility(
visible: !patientManagerProvider.personalMode, visible: !patientManagerProvider.personalMode,
child: Positioned( child: Positioned(

View File

@@ -8,7 +8,6 @@ import 'package:mzansi_innovation_hub/mih_services/mih_alert_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_file_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_file_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_patient_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_patient_services.dart';
import 'package:mzansi_innovation_hub/mih_services/mih_validation_services.dart'; import 'package:mzansi_innovation_hub/mih_services/mih_validation_services.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_single_child_scroll.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_button.dart'; import 'package:mzansi_innovation_hub/mih_package_components/mih_button.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_date_field.dart'; import 'package:mzansi_innovation_hub/mih_package_components/mih_date_field.dart';
import 'package:mzansi_innovation_hub/mih_package_components/mih_form.dart'; import 'package:mzansi_innovation_hub/mih_package_components/mih_form.dart';
@@ -565,11 +564,7 @@ class _PatientDocumentsState extends State<PatientDocuments> {
PatientManagerProvider patientManagerProvider, Widget? child) { PatientManagerProvider patientManagerProvider, Widget? child) {
return Stack( return Stack(
children: [ children: [
MihSingleChildScroll(
child: Column(children: [
BuildFilesList(), BuildFilesList(),
]),
),
getMenu(profileProvider, patientManagerProvider, width), getMenu(profileProvider, patientManagerProvider, width),
], ],
); );