add new search to pat man
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_apis/mih_api_calls.dart';
|
import 'package:mzansi_innovation_hub/mih_apis/mih_api_calls.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_search_input.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tool_body.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tool_body.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_search_bar.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_env/env.dart';
|
import 'package:mzansi_innovation_hub/mih_env/env.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
|
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
|
||||||
@@ -35,11 +35,12 @@ class MihPatientSearch extends StatefulWidget {
|
|||||||
class _MihPatientSearchState extends State<MihPatientSearch> {
|
class _MihPatientSearchState extends State<MihPatientSearch> {
|
||||||
TextEditingController _mihPatientSearchController = TextEditingController();
|
TextEditingController _mihPatientSearchController = TextEditingController();
|
||||||
final FocusNode _focusNode = FocusNode();
|
final FocusNode _focusNode = FocusNode();
|
||||||
|
final FocusNode _searchFocusNode = FocusNode();
|
||||||
String _mihPatientSearchString = "";
|
String _mihPatientSearchString = "";
|
||||||
String baseUrl = AppEnviroment.baseApiUrl;
|
String baseUrl = AppEnviroment.baseApiUrl;
|
||||||
late Future<List<Patient>> _mihPatientSearchResults;
|
late Future<List<Patient>> _mihPatientSearchResults;
|
||||||
|
|
||||||
Widget getPatientSearch() {
|
Widget getPatientSearch(double width) {
|
||||||
return MihSingleChildScroll(
|
return MihSingleChildScroll(
|
||||||
child: KeyboardListener(
|
child: KeyboardListener(
|
||||||
focusNode: _focusNode,
|
focusNode: _focusNode,
|
||||||
@@ -54,26 +55,20 @@ class _MihPatientSearchState extends State<MihPatientSearch> {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
child: Column(mainAxisSize: MainAxisSize.max, children: [
|
child: Column(mainAxisSize: MainAxisSize.max, children: [
|
||||||
Row(
|
Padding(
|
||||||
mainAxisSize: MainAxisSize.min,
|
padding: EdgeInsets.symmetric(horizontal: width / 20),
|
||||||
children: [
|
child: MihSearchBar(
|
||||||
Flexible(
|
|
||||||
flex: 1,
|
|
||||||
child: MIHSearchField(
|
|
||||||
controller: _mihPatientSearchController,
|
controller: _mihPatientSearchController,
|
||||||
hintText: "ID or Medical Aid No. Search",
|
hintText: "Search by ID or Medical Aid No.",
|
||||||
required: false,
|
prefixIcon: Icons.search,
|
||||||
editable: true,
|
fillColor:
|
||||||
onTap: () {
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
// submitPatientForm();
|
hintColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
onPrefixIconTap: () {
|
||||||
submitPatientSearch();
|
submitPatientSearch();
|
||||||
//To-Do: Implement the search function
|
print("Search Text: ${_mihPatientSearchController.text}");
|
||||||
// print("To-Do: Implement the search function");
|
|
||||||
},
|
},
|
||||||
),
|
onClearIconTap: () {
|
||||||
),
|
|
||||||
IconButton(
|
|
||||||
onPressed: () {
|
|
||||||
setState(() {
|
setState(() {
|
||||||
_mihPatientSearchController.clear();
|
_mihPatientSearchController.clear();
|
||||||
_mihPatientSearchString = "";
|
_mihPatientSearchString = "";
|
||||||
@@ -82,11 +77,8 @@ class _MihPatientSearchState extends State<MihPatientSearch> {
|
|||||||
//To-Do: Implement the search function
|
//To-Do: Implement the search function
|
||||||
// print("To-Do: Implement the search function");
|
// print("To-Do: Implement the search function");
|
||||||
},
|
},
|
||||||
icon: const Icon(
|
searchFocusNode: _searchFocusNode,
|
||||||
Icons.filter_alt_off,
|
),
|
||||||
size: 25,
|
|
||||||
))
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
//spacer
|
//spacer
|
||||||
const SizedBox(height: 10),
|
const SizedBox(height: 10),
|
||||||
@@ -211,12 +203,23 @@ class _MihPatientSearchState extends State<MihPatientSearch> {
|
|||||||
_mihPatientSearchResults = MIHApiCalls.fetchPatients("abc");
|
_mihPatientSearchResults = MIHApiCalls.fetchPatients("abc");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
// TODO: implement dispose
|
||||||
|
super.dispose();
|
||||||
|
_searchFocusNode.dispose();
|
||||||
|
_mihPatientSearchController.dispose();
|
||||||
|
_focusNode.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
final Size size = MediaQuery.sizeOf(context);
|
||||||
|
final double width = size.width;
|
||||||
return MihPackageToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: false,
|
borderOn: false,
|
||||||
innerHorizontalPadding: 10,
|
innerHorizontalPadding: 10,
|
||||||
bodyItem: getPatientSearch(),
|
bodyItem: getPatientSearch(width),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import 'package:mzansi_innovation_hub/main.dart';
|
import 'package:mzansi_innovation_hub/main.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_apis/mih_api_calls.dart';
|
import 'package:mzansi_innovation_hub/mih_apis/mih_api_calls.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_inputs_and_buttons/mih_search_input.dart';
|
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_layout/mih_single_child_scroll.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tool_body.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_package_tool_body.dart';
|
||||||
|
import 'package:mzansi_innovation_hub/mih_components/mih_package_components/mih_search_bar.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
import 'package:mzansi_innovation_hub/mih_components/mih_pop_up_messages/mih_loading_circle.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_env/env.dart';
|
import 'package:mzansi_innovation_hub/mih_env/env.dart';
|
||||||
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
|
import 'package:mzansi_innovation_hub/mih_objects/app_user.dart';
|
||||||
@@ -34,12 +34,13 @@ class MyPatientList extends StatefulWidget {
|
|||||||
class _MyPatientListState extends State<MyPatientList> {
|
class _MyPatientListState extends State<MyPatientList> {
|
||||||
late Future<List<PatientAccess>> _myPatientList;
|
late Future<List<PatientAccess>> _myPatientList;
|
||||||
TextEditingController _myPatientSearchController = TextEditingController();
|
TextEditingController _myPatientSearchController = TextEditingController();
|
||||||
|
final FocusNode _searchFocusNode = FocusNode();
|
||||||
String _myPatientIdSearchString = "";
|
String _myPatientIdSearchString = "";
|
||||||
String baseUrl = AppEnviroment.baseApiUrl;
|
String baseUrl = AppEnviroment.baseApiUrl;
|
||||||
|
|
||||||
final FocusNode _focusNode = FocusNode();
|
final FocusNode _focusNode = FocusNode();
|
||||||
|
|
||||||
Widget myPatientListTool() {
|
Widget myPatientListTool(double width) {
|
||||||
return MihSingleChildScroll(
|
return MihSingleChildScroll(
|
||||||
child: KeyboardListener(
|
child: KeyboardListener(
|
||||||
focusNode: _focusNode,
|
focusNode: _focusNode,
|
||||||
@@ -55,62 +56,31 @@ class _MyPatientListState extends State<MyPatientList> {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
child: Column(mainAxisSize: MainAxisSize.max, children: [
|
child: Column(mainAxisSize: MainAxisSize.max, children: [
|
||||||
// Row(
|
Padding(
|
||||||
// mainAxisAlignment: MainAxisAlignment.center,
|
padding: EdgeInsets.symmetric(horizontal: width / 20),
|
||||||
// children: [
|
child: MihSearchBar(
|
||||||
// const Text(
|
|
||||||
// "My Patient List",
|
|
||||||
// style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold),
|
|
||||||
// ),
|
|
||||||
// IconButton(
|
|
||||||
// iconSize: 20,
|
|
||||||
// icon: const Icon(
|
|
||||||
// Icons.refresh,
|
|
||||||
// ),
|
|
||||||
// onPressed: () {
|
|
||||||
// getMyPatientList();
|
|
||||||
// },
|
|
||||||
// ),
|
|
||||||
// ],
|
|
||||||
// ),
|
|
||||||
// Divider(
|
|
||||||
// color: MzanziInnovationHub.of(context)!.theme.secondaryColor()),
|
|
||||||
// //spacer
|
|
||||||
// const SizedBox(height: 10),
|
|
||||||
Row(
|
|
||||||
mainAxisSize: MainAxisSize.min,
|
|
||||||
children: [
|
|
||||||
Flexible(
|
|
||||||
flex: 1,
|
|
||||||
child: MIHSearchField(
|
|
||||||
controller: _myPatientSearchController,
|
controller: _myPatientSearchController,
|
||||||
hintText: "Patient ID Search",
|
hintText: "Search by ID",
|
||||||
required: false,
|
prefixIcon: Icons.search,
|
||||||
editable: true,
|
fillColor:
|
||||||
onTap: () {
|
MzanziInnovationHub.of(context)!.theme.secondaryColor(),
|
||||||
|
hintColor: MzanziInnovationHub.of(context)!.theme.primaryColor(),
|
||||||
|
onPrefixIconTap: () {
|
||||||
setState(() {
|
setState(() {
|
||||||
_myPatientIdSearchString =
|
_myPatientIdSearchString = _myPatientSearchController.text;
|
||||||
_myPatientSearchController.text;
|
_myPatientList = MIHApiCalls.getPatientAccessListOfBusiness(
|
||||||
_myPatientList =
|
|
||||||
MIHApiCalls.getPatientAccessListOfBusiness(
|
|
||||||
widget.business!.business_id);
|
widget.business!.business_id);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
),
|
onClearIconTap: () {
|
||||||
),
|
|
||||||
IconButton(
|
|
||||||
onPressed: () {
|
|
||||||
setState(() {
|
setState(() {
|
||||||
_myPatientSearchController.clear();
|
_myPatientSearchController.clear();
|
||||||
_myPatientIdSearchString = "";
|
_myPatientIdSearchString = "";
|
||||||
});
|
});
|
||||||
getMyPatientList();
|
getMyPatientList();
|
||||||
},
|
},
|
||||||
icon: const Icon(
|
searchFocusNode: _searchFocusNode,
|
||||||
Icons.filter_alt_off,
|
),
|
||||||
size: 25,
|
|
||||||
))
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
//spacer
|
//spacer
|
||||||
const SizedBox(height: 10),
|
const SizedBox(height: 10),
|
||||||
@@ -199,12 +169,23 @@ class _MyPatientListState extends State<MyPatientList> {
|
|||||||
widget.business!.business_id);
|
widget.business!.business_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
// TODO: implement dispose
|
||||||
|
super.dispose();
|
||||||
|
_myPatientSearchController.dispose();
|
||||||
|
_searchFocusNode.dispose();
|
||||||
|
_focusNode.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
|
final Size size = MediaQuery.sizeOf(context);
|
||||||
|
final double width = size.width;
|
||||||
return MihPackageToolBody(
|
return MihPackageToolBody(
|
||||||
borderOn: false,
|
borderOn: false,
|
||||||
innerHorizontalPadding: 10,
|
innerHorizontalPadding: 10,
|
||||||
bodyItem: myPatientListTool(),
|
bodyItem: myPatientListTool(width),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user