diff --git a/lib/providers/patients_provider.dart b/lib/providers/patients_provider.dart index 9af3879d..754af77b 100644 --- a/lib/providers/patients_provider.dart +++ b/lib/providers/patients_provider.dart @@ -65,8 +65,7 @@ class PatientsProvider with ChangeNotifier { STPReferralFrequencyRequest(); ClinicByProjectIdRequest _clinicByProjectIdRequest = ClinicByProjectIdRequest(); - ReferToDoctorRequest _referToDoctorRequest = ReferToDoctorRequest(); - + ReferToDoctorRequest _referToDoctorRequest ; Client client = HttpClientWithInterceptor.build(interceptors: [HttpInterceptor()]); @@ -493,19 +492,22 @@ class PatientsProvider with ChangeNotifier { final response = await AppClient.post(PATIENT_GET_DOCTOR_BY_CLINIC_URL, body: json.encode(_doctorsByClinicIdRequest)); final int statusCode = response.statusCode; - isLoading = false; + if (statusCode < 200 || statusCode >= 400 || json == null) { isError = true; error = 'Error While Fetching data'; + isLoading = false; } else { var res = json.decode(response.body); print('$res'); if (res['MessageStatus'] == 1) { doctorsList = res['List_Doctors_All']; + isLoading = false; } else { isError = true; error = res['ErrorMessage'] ?? res['ErrorEndUserMessage']; + isLoading = false; } } } else { @@ -516,6 +518,7 @@ class PatientsProvider with ChangeNotifier { notifyListeners(); } catch (err) { handelCatchErrorCase(err); + isLoading = false; } } @@ -623,7 +626,7 @@ class PatientsProvider with ChangeNotifier { *@Date:3/6/2020 *@desc: referToDoctor */ - referToDoctor( + referToDoctor(context, {String selectedDoctorID, String selectedClinicID, int admissionNo, @@ -674,7 +677,8 @@ class PatientsProvider with ChangeNotifier { var res = json.decode(response.body); print('$res'); if (res['MessageStatus'] == 1) { - print('Done : /n $res'); + print('Done : \n $res'); + Navigator.pop(context); } else { isError = true; error = res['ErrorMessage'] ?? res['ErrorEndUserMessage']; diff --git a/lib/screens/patients/profile/refer_patient_screen.dart b/lib/screens/patients/profile/refer_patient_screen.dart index 23f7f159..24146ca5 100644 --- a/lib/screens/patients/profile/refer_patient_screen.dart +++ b/lib/screens/patients/profile/refer_patient_screen.dart @@ -34,8 +34,6 @@ class ReferPatientScreen extends StatefulWidget { class _ReferPatientState extends State { PatientsProvider patientsProv; var doctorsList; - var clinicsList; - var referralFrequancyList; final _remarksController = TextEditingController(); final _extController = TextEditingController(); var _isInit = true; @@ -50,19 +48,15 @@ class _ReferPatientState extends State { List _priorities = ['Very Urgent', 'Urgent', 'Routine']; int _activePriority = 2; - String _priorityTime; @override void didChangeDependencies() { super.didChangeDependencies(); if (_isInit) { + doctorsList = null; patientsProv = Provider.of(context); patientsProv.getClinicsList(); - patientsProv.getReferralFrequancyList(); - setState(() { - clinicsList = patientsProv.clinicsList; - referralFrequancyList = patientsProv.referalFrequancyList; - }); + patientsProv.getReferralFrequancyList(); } _isInit = false; } @@ -75,7 +69,7 @@ class _ReferPatientState extends State { ? DrAppCircularProgressIndeicator() : patientsProv.isError ? DrAppEmbeddedError(error: patientsProv.error) - : clinicsList == null + : patientsProv.clinicsList == null ? DrAppEmbeddedError( error: 'Something Wrong!') : SingleChildScrollView( @@ -134,13 +128,14 @@ class _ReferPatientState extends State { setState(() { _selectedDoctor = null; _selectedClinic = newValue; - var clinicInfo = - clinicsList.singleWhere((i) => + var clinicInfo = patientsProv.clinicsList.where((i) => i['ClinicDescription'] .toString() - .contains(_selectedClinic)); + .contains(_selectedClinic)).toList(); + clinicId = - clinicInfo['ClinicID'].toString(); + clinicInfo[0]['ClinicID'].toString(); + patientsProv.getDoctorsList(clinicId); }) }, @@ -213,13 +208,15 @@ class _ReferPatientState extends State { onChanged: (newValue) => { setState(() { _selectedDoctor = newValue; + doctorsList = patientsProv.doctorsList; + var doctorInfo = - doctorsList.singleWhere((i) => + doctorsList.where((i) => i['DoctorName'] .toString() - .contains(_selectedDoctor)); - doctorId = - doctorInfo['DoctorID'].toString(); + .contains(_selectedDoctor)).toList(); + doctorId = doctorInfo[0]['DoctorID'].toString(); + }) }, items: patientsProv @@ -324,7 +321,7 @@ class _ReferPatientState extends State { setState(() { _selectedReferralFrequancy = newValue; var freqInfo = - referralFrequancyList.singleWhere((i) => + patientsProv.referalFrequancyList.singleWhere((i) => i['Description'] .toString() .contains(_selectedReferralFrequancy)); @@ -369,7 +366,7 @@ class _ReferPatientState extends State { Padding( padding: const EdgeInsets.all(20.0), child: AppButton(title: "Send", color: Color(PRIMARY_COLOR),onPressed: ()=>{ - referToDoctor() + referToDoctor(context) },), ) ], @@ -459,10 +456,10 @@ class _ReferPatientState extends State { return time; } - void referToDoctor(){ + void referToDoctor(context){ final routeArgs = ModalRoute.of(context).settings.arguments as Map; PatiantInformtion patient = routeArgs['patient']; - patientsProv.referToDoctor( + patientsProv.referToDoctor(context, extension: _extController.value.text, admissionNo:int.parse( patient.admissionNo), referringDoctorRemarks: _remarksController.value.text,