change UP to cater for new med aid fields

This commit is contained in:
2024-07-08 15:10:31 +02:00
parent c14c87c0af
commit 8cb311e285
19 changed files with 789 additions and 507 deletions
@@ -3,12 +3,12 @@ import 'package:patient_manager/objects/patients.dart';
class BuildPatientsList extends StatefulWidget {
final List<Patient> patients;
final searchString;
//final searchString;
const BuildPatientsList({
super.key,
required this.patients,
required this.searchString,
//required this.searchString,
});
@override
@@ -16,6 +16,22 @@ class BuildPatientsList extends StatefulWidget {
}
class _BuildPatientsListState extends State<BuildPatientsList> {
Widget isMainMember(int index) {
if (widget.patients[index].medical_aid_main_member == "Yes") {
return Row(
mainAxisSize: MainAxisSize.max,
children: [
const Icon(Icons.star_border_rounded),
Text(
"${widget.patients[index].first_name} ${widget.patients[index].last_name}"),
],
);
} else {
return Text(
"${widget.patients[index].first_name} ${widget.patients[index].last_name}");
}
}
@override
Widget build(BuildContext context) {
return ListView.separated(
@@ -26,11 +42,10 @@ class _BuildPatientsListState extends State<BuildPatientsList> {
itemBuilder: (context, index) {
//final patient = widget.patients[index].id_no.contains(widget.searchString);
//print(index);
return widget.patients[index].id_no.contains(widget.searchString)
? ListTile(
title: Text(
"${widget.patients[index].first_name} ${widget.patients[index].last_name}"),
subtitle: Text(widget.patients[index].id_no),
return ListTile(
title: isMainMember(index),
subtitle: Text(
"ID No.: ${widget.patients[index].id_no}\nMedical Aid No.: ${widget.patients[index].medical_aid_no}"),
onTap: () {
setState(() {
Navigator.of(context).pushNamed('/patient-manager/patient',
@@ -38,8 +53,7 @@ class _BuildPatientsListState extends State<BuildPatientsList> {
});
},
trailing: const Icon(Icons.arrow_forward),
)
: null;
);
},
);
}
@@ -5,7 +5,7 @@ class MyDropdownField extends StatefulWidget {
final String hintText;
final bool required;
final List<String> dropdownOptions;
final void Function(String?)? onSelect;
//final bool editable;
const MyDropdownField({
@@ -14,6 +14,7 @@ class MyDropdownField extends StatefulWidget {
required this.hintText,
required this.dropdownOptions,
required this.required,
this.onSelect,
});
@override
@@ -89,6 +90,7 @@ class _MyDropdownFieldState extends State<MyDropdownField> {
return Padding(
padding: const EdgeInsets.symmetric(horizontal: 25.0),
child: DropdownMenu(
//onSelected: widget.onSelect,
menuHeight: 300,
controller: widget.controller,
expandedInsets: EdgeInsets.zero,
@@ -16,14 +16,14 @@ class PatManAppDrawer extends StatefulWidget {
class _PatManAppDrawerState extends State<PatManAppDrawer> {
String endpointUserData = "http://localhost:80/users/profile/";
late AppUser signedInUser;
late Future<AppUser> signedInUser;
Future<AppUser> getUserDetails() async {
//print("pat man drawer: " + endpointUserData + widget.userEmail);
var response =
await http.get(Uri.parse(endpointUserData + widget.userEmail));
//print(response.statusCode);
//print(response.body);
print(response.statusCode);
print(response.body);
if (response.statusCode == 200) {
return AppUser.fromJson(
jsonDecode(response.body) as Map<String, dynamic>);
@@ -34,14 +34,14 @@ class _PatManAppDrawerState extends State<PatManAppDrawer> {
@override
void initState() {
//signedInUser = getUserDetails();
signedInUser = getUserDetails();
super.initState();
}
@override
Widget build(BuildContext context) {
return FutureBuilder(
future: getUserDetails(),
future: signedInUser,
builder: (BuildContext context, AsyncSnapshot<AppUser> snapshot) {
return Drawer(
child: ListView(
@@ -51,8 +51,12 @@ class _PatManAppDrawerState extends State<PatManAppDrawer> {
decoration: const BoxDecoration(
color: Colors.blueAccent,
),
child: SizedBox(
height: 400,
child: Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
const Text(
"Signed Is As:",
@@ -64,17 +68,23 @@ class _PatManAppDrawerState extends State<PatManAppDrawer> {
const SizedBox(
height: 50.0,
),
Row(
Expanded(
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
const Text(
"Name: ",
style: TextStyle(fontWeight: FontWeight.bold),
),
const SizedBox(width: 15),
Text("${snapshot.data?.fname} ${snapshot.data?.lname}"),
Text(
"${snapshot.data?.fname} ${snapshot.data?.lname}"),
],
),
Row(
),
Expanded(
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
const Text(
"Email: ",
@@ -84,29 +94,38 @@ class _PatManAppDrawerState extends State<PatManAppDrawer> {
Text("${snapshot.data?.email}"),
],
),
),
],
),
),
),
),
ListTile(
title: const Row(
title: const Expanded(
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Icon(Icons.home_outlined),
SizedBox(width: 25.0),
Text("Home"),
],
),
),
onTap: () {
Navigator.of(context).pushNamed('/home');
},
),
ListTile(
title: const Row(
title: const Expanded(
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Icon(Icons.perm_identity),
SizedBox(width: 25.0),
Text("Profile"),
],
),
),
onTap: () {
//signedInUser = snapshot.data!;
//print("PatManAppDrawer: ${signedInUser.runtimeType}");
@@ -115,13 +134,16 @@ class _PatManAppDrawerState extends State<PatManAppDrawer> {
},
),
ListTile(
title: const Row(
title: const Expanded(
child: Row(
mainAxisSize: MainAxisSize.max,
children: [
Icon(Icons.logout),
SizedBox(width: 25.0),
Text("Sign Out"),
],
),
),
onTap: () {
client.auth.signOut();
Navigator.of(context).pushNamed('/');
@@ -20,6 +20,9 @@ class _PatientDetailsState extends State<PatientDetails> {
final medNameController = TextEditingController();
final medSchemeController = TextEditingController();
final addressController = TextEditingController();
final medAidController = TextEditingController();
final medMainMemController = TextEditingController();
final medAidCodeController = TextEditingController();
double? headingFontSize = 35.0;
double? bodyFonstSize = 20.0;
@@ -43,6 +46,12 @@ class _PatientDetailsState extends State<PatientDetails> {
TextEditingValue(text: widget.selectedPatient.medical_aid_scheme);
addressController.value =
TextEditingValue(text: widget.selectedPatient.address);
medAidController.value =
TextEditingValue(text: widget.selectedPatient.medical_aid);
medMainMemController.value = TextEditingValue(
text: widget.selectedPatient.medical_aid_main_member);
medAidCodeController.value =
TextEditingValue(text: widget.selectedPatient.medical_aid_code);
});
super.initState();
}
@@ -157,6 +166,20 @@ class _PatientDetailsState extends State<PatientDetails> {
children: [
Row(
children: [
Expanded(
child: MyTextField(
controller: medAidController,
hintText: "Has Medical Aid",
editable: false,
required: false),
),
Expanded(
child: MyTextField(
controller: medMainMemController,
hintText: "Main Member",
editable: false,
required: false),
),
Expanded(
child: MyTextField(
controller: medNoController,
@@ -164,6 +187,18 @@ class _PatientDetailsState extends State<PatientDetails> {
editable: false,
required: false),
),
],
),
const SizedBox(height: 10),
Row(
children: [
Expanded(
child: MyTextField(
controller: medAidCodeController,
hintText: "Code",
editable: false,
required: false),
),
Expanded(
child: MyTextField(
controller: medNameController,
@@ -178,18 +213,6 @@ class _PatientDetailsState extends State<PatientDetails> {
editable: false,
required: false),
),
// PatientDetailItem(
// category: "No. ",
// value: widget.selectedPatient.medical_aid_no,
// ),
// PatientDetailItem(
// category: "Name ",
// value: widget.selectedPatient.medical_aid_name,
// ),
// PatientDetailItem(
// category: "Scheme ",
// value: widget.selectedPatient.medical_aid_scheme,
// ),
],
),
],
@@ -5,8 +5,11 @@ class Patient {
final String last_name;
final String email;
final String cell_no;
final String medical_aid;
final String medical_aid_name;
final String medical_aid_no;
final String medical_aid_main_member;
final String medical_aid_code;
final String medical_aid_scheme;
final String address;
final int doc_office_id;
@@ -18,8 +21,11 @@ class Patient {
required this.last_name,
required this.email,
required this.cell_no,
required this.medical_aid,
required this.medical_aid_name,
required this.medical_aid_no,
required this.medical_aid_main_member,
required this.medical_aid_code,
required this.medical_aid_scheme,
required this.address,
required this.doc_office_id,
@@ -34,8 +40,11 @@ class Patient {
'last_name': String last_name,
'email': String email,
'cell_no': String cell_no,
'medical_aid': String medical_aid,
'medical_aid_name': String medical_aid_name,
'medical_aid_no': String medical_aid_no,
'medical_aid_main_member': String medical_aid_main_member,
'medical_aid_code': String medical_aid_code,
'medical_aid_scheme': String medical_aid_scheme,
'address': String address,
'doc_office_id': int doc_office_id,
@@ -47,8 +56,11 @@ class Patient {
last_name: last_name,
email: email,
cell_no: cell_no,
medical_aid: medical_aid,
medical_aid_name: medical_aid_name,
medical_aid_no: medical_aid_no,
medical_aid_main_member: medical_aid_main_member,
medical_aid_code: medical_aid_code,
medical_aid_scheme: medical_aid_scheme,
address: address,
doc_office_id: doc_office_id,
@@ -1,6 +1,7 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:patient_manager/components/myDropdownInput.dart';
import 'package:patient_manager/components/myErrorMessage.dart';
import 'package:patient_manager/components/mySuccessMessage.dart';
import 'package:patient_manager/components/myTextInput.dart';
@@ -31,9 +32,14 @@ class _AddPatientState extends State<AddPatient> {
final medNameController = TextEditingController();
final medSchemeController = TextEditingController();
final addressController = TextEditingController();
final medAidController = TextEditingController();
final medMainMemController = TextEditingController();
final medAidCodeController = TextEditingController();
final docOfficeIdApiUrl = "http://localhost:80/users/profile/";
final apiUrl = "http://localhost:80/patients/insert/";
late int futureDocOfficeId;
late bool medRequired;
Future getOfficeIdByUser(String endpoint) async {
final response = await http.get(Uri.parse(endpoint));
@@ -52,6 +58,7 @@ class _AddPatientState extends State<AddPatient> {
}
bool isFieldsFilled() {
if (medRequired) {
if (idController.text.isEmpty ||
fnameController.text.isEmpty ||
lnameController.text.isEmpty ||
@@ -60,11 +67,27 @@ class _AddPatientState extends State<AddPatient> {
medNoController.text.isEmpty ||
medNameController.text.isEmpty ||
medSchemeController.text.isEmpty ||
addressController.text.isEmpty) {
addressController.text.isEmpty ||
medAidController.text.isEmpty ||
medMainMemController.text.isEmpty ||
medAidCodeController.text.isEmpty) {
return false;
} else {
return true;
}
} else {
if (idController.text.isEmpty ||
fnameController.text.isEmpty ||
lnameController.text.isEmpty ||
cellController.text.isEmpty ||
emailController.text.isEmpty ||
addressController.text.isEmpty ||
medAidController.text.isEmpty) {
return false;
} else {
return true;
}
}
}
Future<void> addPatientAPICall() async {
@@ -81,8 +104,11 @@ class _AddPatientState extends State<AddPatient> {
"last_name": lnameController.text,
"email": emailController.text,
"cell_no": cellController.text,
"medical_aid_name": medNameController.text,
"medical_aid": medAidController.text,
"medical_aid_main_member": medMainMemController.text,
"medical_aid_no": medNoController.text,
"medical_aid_code": medAidCodeController.text,
"medical_aid_name": medNameController.text,
"medical_aid_scheme": medSchemeController.text,
"address": addressController.text,
"doc_office_id": futureDocOfficeId,
@@ -131,11 +157,21 @@ class _AddPatientState extends State<AddPatient> {
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: const MyAppBar(barTitle: "Add Patient"),
body: Padding(
void isRequired() {
//print("listerner triggered");
if (medAidController.text == "Yes") {
setState(() {
medRequired = true;
});
} else {
setState(() {
medRequired = false;
});
}
}
Widget displayForm() {
return Padding(
padding: const EdgeInsets.all(15.0),
child: SingleChildScrollView(
child: Column(
@@ -237,6 +273,37 @@ class _AddPatientState extends State<AddPatient> {
),
),
const SizedBox(height: 10.0),
Row(
children: [
Expanded(
child: MyDropdownField(
controller: medAidController,
hintText: "Has Medical Aid",
//editable: true,
onSelect: (_) {
isRequired();
},
required: true,
dropdownOptions: const ["Yes", "No"],
),
),
],
),
const SizedBox(height: 10.0),
Row(
children: [
Expanded(
child: MyDropdownField(
controller: medMainMemController,
hintText: "Main Member",
//editable: true,
required: medRequired,
dropdownOptions: const ["Yes", "No"],
),
),
],
),
const SizedBox(height: 10.0),
Row(
children: [
Expanded(
@@ -244,7 +311,20 @@ class _AddPatientState extends State<AddPatient> {
controller: medNoController,
hintText: "Medical Aid No.",
editable: true,
required: true,
required: medRequired,
),
),
],
),
const SizedBox(height: 10.0),
Row(
children: [
Expanded(
child: MyTextField(
controller: medAidCodeController,
hintText: "Medical Aid Code",
editable: true,
required: medRequired,
),
),
],
@@ -257,7 +337,7 @@ class _AddPatientState extends State<AddPatient> {
controller: medNameController,
hintText: "Medical Aid Name",
editable: true,
required: true,
required: medRequired,
),
),
],
@@ -270,7 +350,7 @@ class _AddPatientState extends State<AddPatient> {
controller: medSchemeController,
hintText: "Medical Aid Scheme",
editable: true,
required: true,
required: medRequired,
),
),
],
@@ -306,7 +386,23 @@ class _AddPatientState extends State<AddPatient> {
],
),
),
),
);
}
@override
void initState() {
medAidController.addListener(isRequired);
setState(() {
medAidController.text = "No";
});
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: const MyAppBar(barTitle: "Add Patient"),
body: displayForm(),
);
}
}
@@ -1,6 +1,7 @@
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:patient_manager/components/myDropdownInput.dart';
import 'package:patient_manager/components/myErrorMessage.dart';
import 'package:patient_manager/components/mySuccessMessage.dart';
import 'package:patient_manager/components/myTextInput.dart';
@@ -33,11 +34,16 @@ class _EditPatientState extends State<EditPatient> {
final medNameController = TextEditingController();
final medSchemeController = TextEditingController();
final addressController = TextEditingController();
final medAidController = TextEditingController();
final medMainMemController = TextEditingController();
final medAidCodeController = TextEditingController();
final docOfficeIdApiUrl = "http://localhost:80/users/profile/";
final apiUrlEdit = "http://localhost:80/patients/update/";
final apiUrlDelete = "http://localhost:80/patients/delete/";
late int futureDocOfficeId;
late String userEmail;
late bool medRequired;
Future getOfficeIdByUser(String endpoint) async {
final response = await http.get(Uri.parse(endpoint));
@@ -74,8 +80,11 @@ class _EditPatientState extends State<EditPatient> {
"last_name": lnameController.text,
"email": emailController.text,
"cell_no": cellController.text,
"medical_aid_name": medNameController.text,
"medical_aid": medAidController.text,
"medical_aid_main_member": medMainMemController.text,
"medical_aid_no": medNoController.text,
"medical_aid_code": medAidCodeController.text,
"medical_aid_name": medNameController.text,
"medical_aid_scheme": medSchemeController.text,
"address": addressController.text,
"doc_office_id": futureDocOfficeId,
@@ -271,6 +280,7 @@ class _EditPatientState extends State<EditPatient> {
}
bool isFieldsFilled() {
if (medRequired) {
if (idController.text.isEmpty ||
fnameController.text.isEmpty ||
lnameController.text.isEmpty ||
@@ -279,43 +289,44 @@ class _EditPatientState extends State<EditPatient> {
medNoController.text.isEmpty ||
medNameController.text.isEmpty ||
medSchemeController.text.isEmpty ||
addressController.text.isEmpty) {
addressController.text.isEmpty ||
medAidController.text.isEmpty ||
medMainMemController.text.isEmpty ||
medAidCodeController.text.isEmpty) {
return false;
} else {
return true;
}
} else {
if (idController.text.isEmpty ||
fnameController.text.isEmpty ||
lnameController.text.isEmpty ||
cellController.text.isEmpty ||
emailController.text.isEmpty ||
addressController.text.isEmpty ||
medAidController.text.isEmpty) {
return false;
} else {
return true;
}
}
@override
void initState() {
getLoginUserEmail();
setState(() {
idController.value = TextEditingValue(text: widget.selectedPatient.id_no);
fnameController.value =
TextEditingValue(text: widget.selectedPatient.first_name);
lnameController.value =
TextEditingValue(text: widget.selectedPatient.last_name);
cellController.value =
TextEditingValue(text: widget.selectedPatient.cell_no);
emailController.value =
TextEditingValue(text: widget.selectedPatient.email);
medNameController.value =
TextEditingValue(text: widget.selectedPatient.medical_aid_name);
medNoController.value =
TextEditingValue(text: widget.selectedPatient.medical_aid_no);
medSchemeController.value =
TextEditingValue(text: widget.selectedPatient.medical_aid_scheme);
addressController.value =
TextEditingValue(text: widget.selectedPatient.address);
});
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: const MyAppBar(barTitle: "Edit Patient"),
body: Padding(
void isRequired() {
//print("listerner triggered");
if (medAidController.text == "Yes") {
setState(() {
medRequired = true;
});
} else {
setState(() {
medRequired = false;
});
}
}
Widget displayForm() {
return Padding(
padding: const EdgeInsets.all(15.0),
child: SingleChildScrollView(
child: Column(
@@ -429,6 +440,37 @@ class _EditPatientState extends State<EditPatient> {
),
),
const SizedBox(height: 10.0),
Row(
children: [
Expanded(
child: MyDropdownField(
controller: medAidController,
hintText: "Has Medical Aid",
onSelect: (_) {
isRequired();
},
//editable: true,
required: true,
dropdownOptions: const ["Yes", "No"],
),
),
],
),
const SizedBox(height: 10.0),
Row(
children: [
Expanded(
child: MyDropdownField(
controller: medMainMemController,
hintText: "Main Member.",
//editable: true,
required: medRequired,
dropdownOptions: const ["Yes", "No"],
),
),
],
),
const SizedBox(height: 10.0),
Row(
children: [
Expanded(
@@ -436,7 +478,20 @@ class _EditPatientState extends State<EditPatient> {
controller: medNoController,
hintText: "Medical Aid No.",
editable: true,
required: true,
required: medRequired,
),
),
],
),
const SizedBox(height: 10.0),
Row(
children: [
Expanded(
child: MyTextField(
controller: medAidCodeController,
hintText: "Medical Aid Code",
editable: true,
required: medRequired,
),
),
],
@@ -449,7 +504,7 @@ class _EditPatientState extends State<EditPatient> {
controller: medNameController,
hintText: "Medical Aid Name",
editable: true,
required: true,
required: medRequired,
),
),
],
@@ -462,7 +517,7 @@ class _EditPatientState extends State<EditPatient> {
controller: medSchemeController,
hintText: "Medical Aid Scheme",
editable: true,
required: true,
required: medRequired,
),
),
],
@@ -498,7 +553,47 @@ class _EditPatientState extends State<EditPatient> {
],
),
),
),
);
}
@override
void initState() {
getLoginUserEmail();
medAidController.addListener(isRequired);
setState(() {
idController.value = TextEditingValue(text: widget.selectedPatient.id_no);
fnameController.value =
TextEditingValue(text: widget.selectedPatient.first_name);
lnameController.value =
TextEditingValue(text: widget.selectedPatient.last_name);
cellController.value =
TextEditingValue(text: widget.selectedPatient.cell_no);
emailController.value =
TextEditingValue(text: widget.selectedPatient.email);
medNameController.value =
TextEditingValue(text: widget.selectedPatient.medical_aid_name);
medNoController.value =
TextEditingValue(text: widget.selectedPatient.medical_aid_no);
medSchemeController.value =
TextEditingValue(text: widget.selectedPatient.medical_aid_scheme);
addressController.value =
TextEditingValue(text: widget.selectedPatient.address);
medAidController.value =
TextEditingValue(text: widget.selectedPatient.medical_aid);
medMainMemController.value = TextEditingValue(
text: widget.selectedPatient.medical_aid_main_member);
medAidCodeController.value =
TextEditingValue(text: widget.selectedPatient.medical_aid_code);
});
super.initState();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: const MyAppBar(barTitle: "Edit Patient"),
body: displayForm(),
);
}
}
@@ -31,11 +31,17 @@ class _PatientManagerState extends State<PatientManager> {
Future<List<Patient>> fetchPatients(String endpoint) async {
//print("Patien manager page: $endpoint");
final response = await http.get(Uri.parse(endpoint));
//print(response.statusCode);
// print("Here");
// print(response.body);
// print(response.statusCode);
if (response.statusCode == 200) {
//print("Here1");
Iterable l = jsonDecode(response.body);
//print("Here2");
List<Patient> patients =
List<Patient>.from(l.map((model) => Patient.fromJson(model)));
// print("Here3");
// print(patients);
return patients;
} else {
throw Exception('failed to load patients');
@@ -43,9 +49,16 @@ class _PatientManagerState extends State<PatientManager> {
}
List<Patient> filterSearchResults(List<Patient> mainList, String query) {
return mainList
.where((tempList) => tempList.id_no.contains(query.toLowerCase()))
.toList();
List<Patient> templist = [];
//print(query);
for (var item in mainList) {
if (item.id_no.contains(searchString) ||
item.medical_aid_no.contains(searchString)) {
//print(item.medical_aid_no);
templist.add(item);
}
}
return templist;
}
Widget displayList(List<Patient> patientsList, String searchString) {
@@ -57,6 +70,7 @@ class _PatientManagerState extends State<PatientManager> {
bottom: 25,
),
child: Container(
height: 500,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(25.0),
@@ -64,7 +78,7 @@ class _PatientManagerState extends State<PatientManager> {
),
child: BuildPatientsList(
patients: patientsList,
searchString: searchString,
//searchString: searchString,
),
),
);
@@ -76,6 +90,7 @@ class _PatientManagerState extends State<PatientManager> {
bottom: 25,
),
child: Container(
height: 500,
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(25.0),
@@ -83,7 +98,7 @@ class _PatientManagerState extends State<PatientManager> {
),
child: const Center(
child: Text(
"Enter ID of Patient",
"Enter ID or Medical Aid No. of Patient",
style: TextStyle(fontSize: 25, color: Colors.grey),
textAlign: TextAlign.center,
),
@@ -92,13 +107,16 @@ class _PatientManagerState extends State<PatientManager> {
);
}
Widget patientSearch() {
return Column(children: [
Widget patientSearch(double w, double h) {
return SizedBox(
width: w,
height: h,
child: Column(mainAxisSize: MainAxisSize.max, children: [
//spacer
const SizedBox(height: 10),
MySearchField(
controller: searchController,
hintText: "ID Search",
hintText: "ID or Medical Aid No. Search",
required: false,
editable: true,
onTap: () {},
@@ -113,25 +131,29 @@ class _PatientManagerState extends State<PatientManager> {
FutureBuilder(
future: futurePatients,
builder: (context, snapshot) {
//print("patient Liust ${snapshot.data}");
if (snapshot.connectionState == ConnectionState.waiting) {
return const Center(child: CircularProgressIndicator());
} else if (snapshot.hasData) {
List<Patient> patientsList;
if (searchString == "") {
patientsList = snapshot.data!;
patientsList = [];
} else {
patientsList = filterSearchResults(snapshot.data!, searchString);
patientsList =
filterSearchResults(snapshot.data!, searchString);
//print(patientsList);
}
return Expanded(
child: displayList(patientsList, searchString),
);
} else {
return const PatManAppDrawer(userEmail: "Error pulling email");
return const Center(child: Text("Error pulling email"));
}
},
),
]);
]),
);
}
@override
@@ -142,6 +164,8 @@ class _PatientManagerState extends State<PatientManager> {
@override
Widget build(BuildContext context) {
final screenWidth = MediaQuery.of(context).size.width;
final screenHeight = MediaQuery.of(context).size.height;
return Scaffold(
appBar: const MyAppBar(barTitle: "Patient Manager"),
drawer: PatManAppDrawer(userEmail: widget.userEmail),
@@ -167,13 +191,7 @@ class _PatientManagerState extends State<PatientManager> {
),
),
),
body: Row(
children: [
Expanded(
child: patientSearch(),
),
],
),
body: patientSearch(screenWidth, screenHeight),
);
}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.