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(),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
0
Frontend/patient_manager/lib/theme/mihTheme.dart
Normal file
0
Frontend/patient_manager/lib/theme/mihTheme.dart
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
database/ibdata1
BIN
database/ibdata1
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