From 312a4741a0bd026717495c92b8a8b0e45f7d1133 Mon Sep 17 00:00:00 2001 From: her_username Date: Mon, 18 May 2020 17:29:06 +0300 Subject: [PATCH] edit patient search --- lib/providers/schedule_provider.dart | 4 +- lib/screens/QR_reader_screen.dart | 140 ++++++++++-------- .../patients/patient_search_screen.dart | 10 +- lib/screens/patients/patients_screen.dart | 81 +++++----- pubspec.lock | 14 ++ 5 files changed, 145 insertions(+), 104 deletions(-) diff --git a/lib/providers/schedule_provider.dart b/lib/providers/schedule_provider.dart index edd880d2..d2a86c1b 100644 --- a/lib/providers/schedule_provider.dart +++ b/lib/providers/schedule_provider.dart @@ -11,8 +11,8 @@ import '../models/list_doctor_working_hours_table_model.dart'; import '../models/request_schedule.dart'; class ScheduleProvider with ChangeNotifier { - Client client = - HttpClientWithInterceptor.build(interceptors: [HttpInterceptor()]); + + Client client = HttpClientWithInterceptor.build(interceptors: [HttpInterceptor()]); List listDoctorWorkingHoursTable = []; bool isLoading = true; diff --git a/lib/screens/QR_reader_screen.dart b/lib/screens/QR_reader_screen.dart index 646e8f2f..5bc54bd7 100644 --- a/lib/screens/QR_reader_screen.dart +++ b/lib/screens/QR_reader_screen.dart @@ -1,9 +1,11 @@ import 'package:barcode_scan/platform_wrapper.dart'; +import 'package:doctor_app_flutter/config/shared_pref_kay.dart'; import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/models/patient/patient_model.dart'; import 'package:doctor_app_flutter/models/patient/topten_users_res_model.dart'; import 'package:doctor_app_flutter/providers/patients_provider.dart'; +import 'package:doctor_app_flutter/util/dr_app_shared_pref.dart'; import 'package:doctor_app_flutter/widgets/shared/app_button.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; @@ -20,11 +22,13 @@ class QrReaderScreen extends StatefulWidget { } class _QrReaderScreenState extends State { +DrAppSharedPreferances sharedPref = new DrAppSharedPreferances(); + bool isLoading = false; PatientModel patient = PatientModel( ProjectID: 15, ClinicID: 0, - DoctorID: 4709, + DoctorID: 1485, FirstName: "0", MiddleName: "0", LastName: "0", @@ -103,24 +107,28 @@ class _QrReaderScreenState extends State { ), ):Container(), Column( - children: patientList.map((item) { - return InkWell( - onTap: (){ - Navigator.of(context).pushNamed(PATIENTS_PROFILE, arguments: { - "patient": item, - }); - }, - child: CardWithBgWidget( - widget: Container( - child: AppText( - '${item.firstName} ${item.lastName}', - fontSize: 2.5 * SizeConfig.textMultiplier, + children: patientList.map((item) { + return InkWell( + onTap: (){ + Navigator.of(context).pushNamed(PATIENTS_PROFILE, arguments: { + "patient": item, + }); + }, + child: AnimatedContainer( + duration: Duration(milliseconds: 200), + child: CardWithBgWidget( + widget: Container( + child: AppText( + '${item.firstName} ${item.lastName}', + fontSize: 2.5 * SizeConfig.textMultiplier, + ), + ), ), ), - ), - ); - }).toList() - ) + ); + }).toList() + ), + ], ), ), @@ -134,51 +142,59 @@ class _QrReaderScreenState extends State { /// When give qr we will change this method to get data /// var result = await BarcodeScanner.scan(); /// int patientID = get from qr result - String patientType = "1"; - setState(() { - isLoading = true; - patientList = []; - }); - patient.PatientID = 3120144; - Provider.of(context, listen: false) - .getPatientList(patient, "1") - .then((response) { - if (response['MessageStatus'] == 1) { - switch (patientType) { - case "0": - if (response['List_MyOutPatient'] != null) { - setState(() { - patientList = ModelResponse.fromJson(response['List_MyOutPatient']).list; - isLoading = false; - }); - } else { - setState(() { - error = 'No patient'; - isLoading = false; - }); - } - break; - case "1": - if (response['List_MyInPatient'] != null) { - setState(() { - patientList = ModelResponse.fromJson(response['List_MyInPatient']).list; - isLoading = false; - error=""; - }); - } else { - setState(() { - error = 'No patient'; - isLoading = false; - }); + var result = await BarcodeScanner.scan(); + // if (result.rawContent == "") { + List listOfParams = result.rawContent.split(','); + String patientType = "1"; + setState(() { + isLoading = true; + patientList = []; + }); + String token = await sharedPref.getString(TOKEN); + patient.PatientID = 3120269; + patient.TokenID = token; + Provider.of(context, listen: false) + .getPatientList(patient, "1") + .then((response) { + if (response['MessageStatus'] == 1) { + switch (patientType) { + case "0": + if (response['List_MyOutPatient'] != null) { + setState(() { + patientList = ModelResponse + .fromJson(response['List_MyOutPatient']) + .list; + isLoading = false; + }); + } else { + setState(() { + error = 'No patient'; + isLoading = false; + }); + } break; - } + case "1": + if (response['List_MyInPatient'] != null) { + setState(() { + patientList = ModelResponse.fromJson(response['List_MyInPatient']).list; + isLoading = false; + error = ""; + }); + } else { + setState(() { + error = 'No patient'; + isLoading = false; + }); + break; + } + } + } else { + setState(() { + error = response['ErrorMessage'] ?? response['ErrorEndUserMessage']; + isLoading = false; + }); } - } else { - setState(() { - error = response['ErrorMessage'] ?? response['ErrorEndUserMessage']; - isLoading = false; - }); - } - }); - } + }); + } + // } } diff --git a/lib/screens/patients/patient_search_screen.dart b/lib/screens/patients/patient_search_screen.dart index d79a032a..b32a8abc 100644 --- a/lib/screens/patients/patient_search_screen.dart +++ b/lib/screens/patients/patient_search_screen.dart @@ -65,8 +65,7 @@ class _PatientSearchScreenState extends State { if (_formKey.currentState.validate()) { _formKey.currentState.save(); - //*********************************** */ - sharedPref.setString(TOKEN, '@dm!n'); + sharedPref.setString(SLECTED_PATIENT_TYPE, _selectedType); print('_selectedType${_selectedType}'); String token = await sharedPref.getString(TOKEN); @@ -81,7 +80,6 @@ class _PatientSearchScreenState extends State { "selectedType": _selectedType }); } else { -// If all data are not valid then start auto validation. setState(() { _autoValidate = true; }); @@ -235,9 +233,7 @@ class _PatientSearchScreenState extends State { _patientSearchFormValues.setLastName = "0"; } }, - // validator: (value) { - // return TextValidator().validateName(value); - // }, + inputFormatter: ONLY_LETTERS), SizedBox( height: 10, @@ -286,7 +282,7 @@ class _PatientSearchScreenState extends State { ), AppTextFormField( textInputType: TextInputType.number, - hintText: 'Patiant File', + hintText: 'Patient File', // validator: (value) { // return TextValidator().validateIdNumber(value); // }, diff --git a/lib/screens/patients/patients_screen.dart b/lib/screens/patients/patients_screen.dart index e3bb2908..b1dd224c 100644 --- a/lib/screens/patients/patients_screen.dart +++ b/lib/screens/patients/patients_screen.dart @@ -37,15 +37,19 @@ class PatientsScreen extends StatefulWidget { class _PatientsScreenState extends State { List litems; + // final List parsed; List parsed; + //********** List date; List unfilterDate; + //*********** List responseModelList; List responseModelList2; + // List _locations = ['Today', 'Old Date', 'YESTERDAY']; List _locations = ['Today', 'Tomorrow', 'Next Week']; int _activeLocation = 0; @@ -53,11 +57,14 @@ class _PatientsScreenState extends State { bool _isInit = true; String patientType; String patientTypetitle; - var _isLoading = true; + var _isLoading = false; + + bool _isError =true; + String error =""; - var _hasError; //*******Amjad add to search box****** final _controller = TextEditingController(); + //************** PatientModel patient; PatientsProvider patientsProv; @@ -77,26 +84,32 @@ class _PatientsScreenState extends State { if (_isInit) { PatientsProvider patientsProv = Provider.of(context); + setState(() { + _isLoading = true; + _isError = false; + error =""; + }); patientsProv.getPatientList(patient, patientType).then((res) { setState(() { - int val2 = int.parse(patientType); - litems = res[SERVICES_PATIANT2[val2]]; - - parsed = litems; - - responseModelList = new ModelResponse.fromJson(parsed).list; - responseModelList2 = responseModelList; - //******************** _isLoading = false; - - _hasError = res['ErrorEndUserMessage']; + if (res['MessageStatus'] == 1) { + int val2 = int.parse(patientType); + litems = res[SERVICES_PATIANT2[val2]]; + parsed = litems; + responseModelList = new ModelResponse.fromJson(parsed).list; + responseModelList2 = responseModelList; + _isError = false; + } else { + _isError = true; + error = res['ErrorMessage'] ?? res['ErrorEndUserMessage']; + } }); - print(res); }).catchError((error) { - // patientsProv.isLoading=false; - // patientsProv.isError=true; - print("====================error================"); - print(error); + setState(() { + _isError = true; + this.error = helpers.generateContactAdminMsg(error); + }); + }); } @@ -106,7 +119,7 @@ class _PatientsScreenState extends State { } /* - *@author: Amjad Amireh + *@author: Amjad Amireh *@Date:2/5/2020 *@param: *@return:PatientsScreen Search textbox filter @@ -141,7 +154,7 @@ class _PatientsScreenState extends State { //***********DateFormat************** /* - *@author: Amjad Amireh + *@author: Amjad Amireh *@Date:5/5/2020 *@param: *@return:Convert time from Milesecond to date with time @@ -177,10 +190,10 @@ class _PatientsScreenState extends State { } /* - *@author: Amjad Amireh + *@author: Amjad Amireh *@Date:5/5/2020 *@param: - *@return:Convert time from Milesecond to date + *@return:Convert time from Milesecond to date *@desc: */ @@ -202,7 +215,8 @@ class _PatientsScreenState extends State { return newDate.toString(); } - convertDateFormat2(String str) { + + convertDateFormat2(String str) { String timeConvert; const start = "/Date("; const end = "+0300)"; @@ -220,6 +234,7 @@ class _PatientsScreenState extends State { return newDate.toString(); } + filterBooking(String str) { this.responseModelList = this.responseModelList2; @@ -281,15 +296,13 @@ class _PatientsScreenState extends State { return AppScaffold( appBarTitle: patientTypetitle, //***********Modify by amjad (create List view to insert all new data webservise in scroll )************* - body: patientsProv.isLoading + body: _isLoading ? DrAppCircularProgressIndeicator() - : patientsProv.isError - ? DrAppEmbeddedError(error: patientsProv.error) + : _isError + ? DrAppEmbeddedError(error:error) : litems == null ? DrAppEmbeddedError( - error: 'You don\'t have any ' + - patientTypetitle + - " patiant") + error: 'You don\'t have any patient') : Container( child: ListView(scrollDirection: Axis.vertical, children: < @@ -332,7 +345,7 @@ class _PatientsScreenState extends State { this.searchData(str); }, decoration: buildInputDecoration( - context, 'Search patiant'), + context, 'Search Patient'), ), ), Container( @@ -367,11 +380,13 @@ class _PatientsScreenState extends State { patientType)] == "List_MyOutPatient" ? AppText( - convertDateFormat2(item - .appointmentDate - .toString())+" "+"-"+" "+item.startTime - , + .appointmentDate + .toString()) + + " " + + "-" + + " " + + item.startTime, fontSize: 2.5 * SizeConfig .textMultiplier) diff --git a/pubspec.lock b/pubspec.lock index 7e59b7b0..9b4511ab 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -134,6 +134,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.1.3" + charts_common: + dependency: transitive + description: + name: charts_common + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.0" + charts_flutter: + dependency: "direct main" + description: + name: charts_flutter + url: "https://pub.dartlang.org" + source: hosted + version: "0.9.0" checked_yaml: dependency: transitive description: