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