diff --git a/lib/routes.dart b/lib/routes.dart index b97aece0..114e6dca 100644 --- a/lib/routes.dart +++ b/lib/routes.dart @@ -6,6 +6,9 @@ import 'package:doctor_app_flutter/screens/patient-sick-leave/patient_sick_leave import 'package:doctor_app_flutter/screens/patients/ECGPage.dart'; import 'package:doctor_app_flutter/screens/patients/insurance_approval_screen_patient.dart'; import 'package:doctor_app_flutter/screens/patients/profile/admission-orders/admission_orders_screen.dart'; +import 'package:doctor_app_flutter/screens/patients/profile/admission_request/admission_request_first_screen.dart'; +import 'package:doctor_app_flutter/screens/patients/profile/admission_request/admission_request_second_screen.dart'; +import 'package:doctor_app_flutter/screens/patients/profile/admission_request/admission_request_third_screen.dart'; import 'package:doctor_app_flutter/screens/patients/profile/diabetic_chart/diabetic_chart.dart'; import 'package:doctor_app_flutter/screens/patients/profile/diagnosis/diagnosis_screen.dart'; import 'package:doctor_app_flutter/screens/patients/profile/discharge_summary/discharge_summary.dart'; @@ -27,14 +30,10 @@ import 'package:doctor_app_flutter/screens/patients/profile/vte_assessment/vte_a import 'package:doctor_app_flutter/screens/prescription/new_prescriptions_page.dart'; import 'package:doctor_app_flutter/screens/prescription/old_prescriptions_page.dart'; import 'package:doctor_app_flutter/screens/procedures/procedure_screen.dart'; - import './screens/auth/login_screen.dart'; import './screens/patients/profile/vital_sign/vital_sign_details_screen.dart'; import 'landing_page.dart'; import 'screens/patients/profile/UCAF/ucaf_pager_screen.dart'; -import 'screens/patients/profile/admission-request/admission-request-first-screen.dart'; -import 'screens/patients/profile/admission-request/admission-request-third-screen.dart'; -import 'screens/patients/profile/admission-request/admission-request_second-screen.dart'; import 'screens/patients/profile/profile_screen/patient_profile_screen.dart'; import 'screens/patients/profile/referral/referral_details/my-referral-detail-screen.dart'; import 'screens/patients/profile/referral/refer_details/refer-patient-screen.dart'; diff --git a/lib/screens/patients/profile/admission-request/admission-request-first-screen.dart b/lib/screens/patients/profile/admission_request/admission_request_first_screen.dart similarity index 79% rename from lib/screens/patients/profile/admission-request/admission-request-first-screen.dart rename to lib/screens/patients/profile/admission_request/admission_request_first_screen.dart index b0770e7a..e36a67ea 100644 --- a/lib/screens/patients/profile/admission-request/admission-request-first-screen.dart +++ b/lib/screens/patients/profile/admission_request/admission_request_first_screen.dart @@ -9,11 +9,12 @@ import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart'; import 'package:doctor_app_flutter/utils/dr_app_toast_msg.dart'; import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart'; +import 'package:doctor_app_flutter/utils/utils.dart'; +import 'package:doctor_app_flutter/widgets/bottom_sheet/custom_bottom_sheet_container.dart'; import 'package:doctor_app_flutter/widgets/patients/patient_service_title.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/app_bar/patient-profile-app-bar.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; -import 'package:doctor_app_flutter/widgets/shared/buttons/app_buttons_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/dialogs/dailog-list-select.dart'; import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart'; import 'package:doctor_app_flutter/widgets/shared/text_fields/app-textfield-custom.dart'; @@ -21,7 +22,6 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:hexcolor/hexcolor.dart'; import 'package:provider/provider.dart'; - import '../../../../routes.dart'; class AdmissionRequestFirstScreen extends StatefulWidget { @@ -100,8 +100,7 @@ class _AdmissionRequestThirdScreenState Padding( padding: const EdgeInsets.all(5.0), child: AppText( - TranslationBase.of(context) - .specialityAndDoctorDetail, + Utils.convertToTitleCase(TranslationBase.of(context).specialityAndDoctorDetail), color: Color(0xFF2E303A), fontSize: SizeConfig.textMultiplier * 1.8, fontWeight: FontWeight.w700, @@ -360,6 +359,9 @@ class _AdmissionRequestThirdScreenState validationError: surgicalHistoryError, inputType: TextInputType.multiline, ), + SizedBox( + height: 100, + ), ], ), ), @@ -367,106 +369,102 @@ class _AdmissionRequestThirdScreenState ), ), ), - Container( - margin: EdgeInsets.symmetric(horizontal: 16, vertical: 8), - child: AppButton( - title: TranslationBase.of(context).next, - color: HexColor("#D02127"), - onPressed: () async { - await locator().logEvent( - eventCategory: "Admission Request First Screen", - eventAction: "Go To Admission Request Two", - ); - model.admissionRequestData = AdmissionRequest(); - if (_selectedClinic != null && - _selectedDoctor != null && - _sickLeaveCommentsController.text != "" && - _postMedicalHistoryController.text != "" && - _postSurgicalHistoryController.text != "") { - model.admissionRequestData.patientMRN = - patient.patientMRN; - model.admissionRequestData.appointmentNo = - patient.appointmentNo; - model.admissionRequestData.episodeID = patient.episodeNo; - model.admissionRequestData.admissionRequestNo = 0; + ], + ), + ), + bottomSheet: CustomBottomSheetContainer( + label: "${TranslationBase.of(context).next}", + onTap: () async { + await locator().logEvent( + eventCategory: "Admission Request First Screen", + eventAction: "Go To Admission Request Two", + ); + model.admissionRequestData = AdmissionRequest(); + if (_selectedClinic != null && + _selectedDoctor != null && + _sickLeaveCommentsController.text != "" && + _postMedicalHistoryController.text != "" && + _postSurgicalHistoryController.text != "") { + model.admissionRequestData.patientMRN = + patient.patientMRN; + model.admissionRequestData.appointmentNo = + patient.appointmentNo; + model.admissionRequestData.episodeID = patient.episodeNo; + model.admissionRequestData.admissionRequestNo = 0; - model.admissionRequestData.admitToClinic = - _selectedClinic['clinicID']; - model.admissionRequestData.mrpDoctorID = - _selectedDoctor['DoctorID']; + model.admissionRequestData.admitToClinic = + _selectedClinic['clinicID']; + model.admissionRequestData.mrpDoctorID = + _selectedDoctor['DoctorID']; - model.admissionRequestData.isPregnant = _patientPregnant; - model.admissionRequestData.isSickLeaveRequired = - _isSickLeaveRequired; - model.admissionRequestData.sickLeaveComments = - _sickLeaveCommentsController.text; - model.admissionRequestData.isDietType = - _selectedDietType != null ? true : false; - model.admissionRequestData.dietType = - _selectedDietType != null - ? _selectedDietType['id'] - : 0; - model.admissionRequestData.dietRemarks = - _dietTypeRemarksController.text; - model.admissionRequestData.pastMedicalHistory = - _postMedicalHistoryController.text; - model.admissionRequestData.pastSurgicalHistory = - _postSurgicalHistoryController.text; - Navigator.of(context) - .pushNamed(PATIENT_ADMISSION_REQUEST_2, arguments: { - 'patient': patient, - 'patientType': patientType, - 'arrivalType': arrivalType, - 'admission-data': model.admissionRequestData - }); - } else { - DrAppToastMsg.showErrorToast( - TranslationBase.of(context).pleaseFill); + model.admissionRequestData.isPregnant = _patientPregnant; + model.admissionRequestData.isSickLeaveRequired = + _isSickLeaveRequired; + model.admissionRequestData.sickLeaveComments = + _sickLeaveCommentsController.text; + model.admissionRequestData.isDietType = + _selectedDietType != null ? true : false; + model.admissionRequestData.dietType = + _selectedDietType != null + ? _selectedDietType['id'] + : 0; + model.admissionRequestData.dietRemarks = + _dietTypeRemarksController.text; + model.admissionRequestData.pastMedicalHistory = + _postMedicalHistoryController.text; + model.admissionRequestData.pastSurgicalHistory = + _postSurgicalHistoryController.text; + Navigator.of(context) + .pushNamed(PATIENT_ADMISSION_REQUEST_2, arguments: { + 'patient': patient, + 'patientType': patientType, + 'arrivalType': arrivalType, + 'admission-data': model.admissionRequestData + }); + } else { + DrAppToastMsg.showErrorToast( + TranslationBase.of(context).pleaseFill); - setState(() { - if (_selectedClinic == null) { - clinicError = - TranslationBase.of(context).fieldRequired; - } else { - clinicError = null; - } - if (_selectedDoctor == null) { - doctorError = - TranslationBase.of(context).fieldRequired; - } else { - doctorError = null; - } - if (_sickLeaveCommentsController.text == "") { - sickLeaveCommentError = - TranslationBase.of(context).fieldRequired; - } else { - sickLeaveCommentError = null; - } - if (_selectedDietType == null) { - dietTypeError = - TranslationBase.of(context).fieldRequired; - } else { - dietTypeError = null; - } - if (_postMedicalHistoryController.text == "") { - medicalHistoryError = - TranslationBase.of(context).fieldRequired; - } else { - medicalHistoryError = null; - } - if (_postSurgicalHistoryController.text == "") { - surgicalHistoryError = - TranslationBase.of(context).fieldRequired; - } else { - surgicalHistoryError = null; - } - }); - } - }, - ), - ), - ], - ), + setState(() { + if (_selectedClinic == null) { + clinicError = + TranslationBase.of(context).fieldRequired; + } else { + clinicError = null; + } + if (_selectedDoctor == null) { + doctorError = + TranslationBase.of(context).fieldRequired; + } else { + doctorError = null; + } + if (_sickLeaveCommentsController.text == "") { + sickLeaveCommentError = + TranslationBase.of(context).fieldRequired; + } else { + sickLeaveCommentError = null; + } + if (_selectedDietType == null) { + dietTypeError = + TranslationBase.of(context).fieldRequired; + } else { + dietTypeError = null; + } + if (_postMedicalHistoryController.text == "") { + medicalHistoryError = + TranslationBase.of(context).fieldRequired; + } else { + medicalHistoryError = null; + } + if (_postSurgicalHistoryController.text == "") { + surgicalHistoryError = + TranslationBase.of(context).fieldRequired; + } else { + surgicalHistoryError = null; + } + }); + } + }, ), ), ); diff --git a/lib/screens/patients/profile/admission-request/admission-request_second-screen.dart b/lib/screens/patients/profile/admission_request/admission_request_second_screen.dart similarity index 72% rename from lib/screens/patients/profile/admission-request/admission-request_second-screen.dart rename to lib/screens/patients/profile/admission_request/admission_request_second_screen.dart index ed95e4ce..8d4f6a23 100644 --- a/lib/screens/patients/profile/admission-request/admission-request_second-screen.dart +++ b/lib/screens/patients/profile/admission_request/admission_request_second_screen.dart @@ -12,6 +12,9 @@ import 'package:doctor_app_flutter/screens/base/base_view.dart'; import 'package:doctor_app_flutter/utils/date-utils.dart'; import 'package:doctor_app_flutter/utils/dr_app_toast_msg.dart'; import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart'; +import 'package:doctor_app_flutter/utils/utils.dart'; +import 'package:doctor_app_flutter/widgets/bottom_sheet/bottom_sheet_container.dart'; +import 'package:doctor_app_flutter/widgets/patients/patient_service_title.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/app_bar/patient-profile-app-bar.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; @@ -92,25 +95,15 @@ class _AdmissionRequestSecondScreenState child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Container( - margin: EdgeInsets.all(16.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - AppText( - "${TranslationBase.of(context).admission}", - fontSize: SizeConfig.textMultiplier * 1.6, - fontWeight: FontWeight.w700, - color: Color(0xFF2E303A), - ), - AppText( - TranslationBase.of(context).request, - fontSize: SizeConfig.textMultiplier * 3, - fontWeight: FontWeight.bold, - color: Color(0xFF2E303A), - ) - ], - ), + SizedBox( + height: 15, + ), + ServiceTitle( + title: "${TranslationBase.of(context).admission}", + subTitle: TranslationBase.of(context).request, + ), + SizedBox( + height: 15, ), Container( margin: @@ -119,8 +112,8 @@ class _AdmissionRequestSecondScreenState crossAxisAlignment: CrossAxisAlignment.start, children: [ AppText( - TranslationBase.of(context) - .postPlansEstimatedCost, + Utils.convertToTitleCase(TranslationBase.of(context) + .postPlansEstimatedCost,), color: Color(0xFF2E303A), fontSize: SizeConfig.textMultiplier * 1.8, fontWeight: FontWeight.w700, @@ -464,6 +457,9 @@ class _AdmissionRequestSecondScreenState } }, ), + SizedBox( + height: 100, + ), ], ), ), @@ -471,184 +467,187 @@ class _AdmissionRequestSecondScreenState ), ), ), + ], + ), + ), + bottomSheet: BottomSheetContainer( + widget: Row( + children: [ Container( - margin: EdgeInsets.symmetric(horizontal: 16, vertical: 8), - child: Row( - children: [ - Expanded( - child: AppButton( - title: TranslationBase.of(context).previous, - color: Color(0xffEAEAEA), - fontColor: Colors.black, - onPressed: () { - Navigator.pop(context); - }, - ), - ), - SizedBox( - width: 10, - ), - Expanded( - child: AppButton( - title: TranslationBase.of(context).next, - color: HexColor("#D02127"), - onPressed: () async { - await locator().logEvent( - eventCategory: "Admission Request Second Screen", - eventAction: "Go To Admission Request Three", - ); - if (_estimatedCostController.text != "" && - _postPlansEstimatedCostController.text != "" && - _expectedDaysController.text != "" && - _expectedAdmissionDate != null && - _otherDepartmentsInterventionsController.text != - "" && - _selectedFloor != null && - _selectedRoomCategory != - null /*_selectedWard is not required*/ && - _treatmentLineController.text != "" && - _complicationsController.text != "" && - _otherProceduresController.text != "" && - _selectedAdmissionType != null) { - model.admissionRequestData = admissionRequest; + width: MediaQuery.of(context).size.width * 0.4, + child: AppButton( + title: TranslationBase.of(context).previous, + color: HexColor('#EFEFEF'), + fontColor: Colors.black, + onPressed: () { + Navigator.pop(context); + }, + ), + ), + SizedBox( + width: 10, + ), + Container( + width: MediaQuery.of(context).size.width * 0.4, + child: AppButton( + title: TranslationBase.of(context).next, + color: AppGlobal.appRedColor, + fontColor: Colors.white, + onPressed: () async { + await locator().logEvent( + eventCategory: "Admission Request Second Screen", + eventAction: "Go To Admission Request Three", + ); + if (_estimatedCostController.text != "" && + _postPlansEstimatedCostController.text != "" && + _expectedDaysController.text != "" && + _expectedAdmissionDate != null && + _otherDepartmentsInterventionsController.text != + "" && + _selectedFloor != null && + _selectedRoomCategory != + null /*_selectedWard is not required*/ && + _treatmentLineController.text != "" && + _complicationsController.text != "" && + _otherProceduresController.text != "" && + _selectedAdmissionType != null) { + model.admissionRequestData = admissionRequest; - model.admissionRequestData.estimatedCost = - int.parse(_estimatedCostController.text); - model.admissionRequestData - .elementsForImprovement = - _postPlansEstimatedCostController.text; + model.admissionRequestData.estimatedCost = + int.parse(_estimatedCostController.text); + model.admissionRequestData + .elementsForImprovement = + _postPlansEstimatedCostController.text; - model.admissionRequestData.expectedDays = - int.parse(_expectedDaysController.text); - model.admissionRequestData.admissionDate = - _expectedAdmissionDate.toIso8601String(); - model.admissionRequestData - .otherDepartmentInterventions = - _otherDepartmentsInterventionsController.text; - model.admissionRequestData.admissionLocationID = - _selectedFloor['floorID']; - model.admissionRequestData.wardID = - _selectedWard != null - ? _selectedWard['nursingStationID'] - : 0; - model.admissionRequestData.roomCategoryID = - _selectedRoomCategory['categoryID']; + model.admissionRequestData.expectedDays = + int.parse(_expectedDaysController.text); + model.admissionRequestData.admissionDate = + _expectedAdmissionDate.toIso8601String(); + model.admissionRequestData + .otherDepartmentInterventions = + _otherDepartmentsInterventionsController.text; + model.admissionRequestData.admissionLocationID = + _selectedFloor['floorID']; + model.admissionRequestData.wardID = + _selectedWard != null + ? _selectedWard['nursingStationID'] + : 0; + model.admissionRequestData.roomCategoryID = + _selectedRoomCategory['categoryID']; - model.admissionRequestData - .admissionRequestProcedures = []; + model.admissionRequestData + .admissionRequestProcedures = []; - model.admissionRequestData.mainLineOfTreatment = - _treatmentLineController.text; - model.admissionRequestData.complications = - _complicationsController.text; - model.admissionRequestData.otherProcedures = - _otherProceduresController.text; - model.admissionRequestData.admissionType = - _selectedAdmissionType['id']; + model.admissionRequestData.mainLineOfTreatment = + _treatmentLineController.text; + model.admissionRequestData.complications = + _complicationsController.text; + model.admissionRequestData.otherProcedures = + _otherProceduresController.text; + model.admissionRequestData.admissionType = + _selectedAdmissionType['id']; - Navigator.of(context).pushNamed( - PATIENT_ADMISSION_REQUEST_3, - arguments: { - 'patient': patient, - 'patientType': patientType, - 'arrivalType': arrivalType, - 'admission-data': model.admissionRequestData - }); - } else { - DrAppToastMsg.showErrorToast( - TranslationBase.of(context).pleaseFill); + Navigator.of(context).pushNamed( + PATIENT_ADMISSION_REQUEST_3, + arguments: { + 'patient': patient, + 'patientType': patientType, + 'arrivalType': arrivalType, + 'admission-data': model.admissionRequestData + }); + } else { + DrAppToastMsg.showErrorToast( + TranslationBase.of(context).pleaseFill); - setState(() { - if (_estimatedCostController.text == "") { - costError = - TranslationBase.of(context).fieldRequired; - } else { - costError = null; - } + setState(() { + if (_estimatedCostController.text == "") { + costError = + TranslationBase.of(context).fieldRequired; + } else { + costError = null; + } - if (_postPlansEstimatedCostController.text == - "") { - plansError = - TranslationBase.of(context).fieldRequired; - } else { - plansError = null; - } + if (_postPlansEstimatedCostController.text == + "") { + plansError = + TranslationBase.of(context).fieldRequired; + } else { + plansError = null; + } - if (_expectedDaysController.text == "") { - expectedDaysError = - TranslationBase.of(context).fieldRequired; - } else { - expectedDaysError = null; - } + if (_expectedDaysController.text == "") { + expectedDaysError = + TranslationBase.of(context).fieldRequired; + } else { + expectedDaysError = null; + } - if (_expectedAdmissionDate == null) { - expectedDatesError = - TranslationBase.of(context).fieldRequired; - } else { - expectedDatesError = null; - } + if (_expectedAdmissionDate == null) { + expectedDatesError = + TranslationBase.of(context).fieldRequired; + } else { + expectedDatesError = null; + } - if (_otherDepartmentsInterventionsController - .text == - "") { - otherInterventionsError = - TranslationBase.of(context).fieldRequired; - } else { - otherInterventionsError = null; - } + if (_otherDepartmentsInterventionsController + .text == + "") { + otherInterventionsError = + TranslationBase.of(context).fieldRequired; + } else { + otherInterventionsError = null; + } - if (_selectedFloor == null) { - floorError = - TranslationBase.of(context).fieldRequired; - } else { - floorError = null; - } + if (_selectedFloor == null) { + floorError = + TranslationBase.of(context).fieldRequired; + } else { + floorError = null; + } - if (_selectedRoomCategory == null) { - roomError = - TranslationBase.of(context).fieldRequired; - } else { - roomError = null; - } + if (_selectedRoomCategory == null) { + roomError = + TranslationBase.of(context).fieldRequired; + } else { + roomError = null; + } - if (_treatmentLineController.text == "") { - treatmentsError = - TranslationBase.of(context).fieldRequired; - } else { - treatmentsError = null; - } + if (_treatmentLineController.text == "") { + treatmentsError = + TranslationBase.of(context).fieldRequired; + } else { + treatmentsError = null; + } - if (_complicationsController.text == "") { - complicationsError = - TranslationBase.of(context).fieldRequired; - } else { - complicationsError = null; - } + if (_complicationsController.text == "") { + complicationsError = + TranslationBase.of(context).fieldRequired; + } else { + complicationsError = null; + } - if (_otherProceduresController.text == "") { - proceduresError = - TranslationBase.of(context).fieldRequired; - } else { - proceduresError = null; - } + if (_otherProceduresController.text == "") { + proceduresError = + TranslationBase.of(context).fieldRequired; + } else { + proceduresError = null; + } - if (_selectedAdmissionType == null) { - admissionTypeError = - TranslationBase.of(context).fieldRequired; - } else { - admissionTypeError = null; - } - }); - } - }, - ), - ), - ], + if (_selectedAdmissionType == null) { + admissionTypeError = + TranslationBase.of(context).fieldRequired; + } else { + admissionTypeError = null; + } + }); + } + }, ), ), ], - ), - )), + ) + ), + ), ); } diff --git a/lib/screens/patients/profile/admission-request/admission-request-third-screen.dart b/lib/screens/patients/profile/admission_request/admission_request_third_screen.dart similarity index 79% rename from lib/screens/patients/profile/admission-request/admission-request-third-screen.dart rename to lib/screens/patients/profile/admission_request/admission_request_third_screen.dart index 1290b84e..9099476f 100644 --- a/lib/screens/patients/profile/admission-request/admission-request-third-screen.dart +++ b/lib/screens/patients/profile/admission_request/admission_request_third_screen.dart @@ -10,6 +10,8 @@ import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart'; import 'package:doctor_app_flutter/utils/dr_app_toast_msg.dart'; import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart'; +import 'package:doctor_app_flutter/widgets/bottom_sheet/bottom_sheet_container.dart'; +import 'package:doctor_app_flutter/widgets/patients/patient_service_title.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/app_bar/patient-profile-app-bar.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; @@ -43,8 +45,6 @@ class _AdmissionRequestThirdScreenState Widget build(BuildContext context) { final routeArgs = ModalRoute.of(context).settings.arguments as Map; PatiantInformtion patient = routeArgs['patient']; - String patientType = routeArgs['patientType']; - String arrivalType = routeArgs['arrivalType']; AdmissionRequest admissionRequest = routeArgs['admission-data']; final screenSize = MediaQuery.of(context).size; @@ -70,25 +70,15 @@ class _AdmissionRequestThirdScreenState child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Container( - margin: EdgeInsets.all(16.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - AppText( - "${TranslationBase.of(context).admission}", - fontSize: SizeConfig.textMultiplier * 1.6, - fontWeight: FontWeight.w700, - color: Color(0xFF2E303A), - ), - AppText( - TranslationBase.of(context).request, - fontSize: SizeConfig.textMultiplier * 3, - fontWeight: FontWeight.bold, - color: Color(0xFF2E303A), - ) - ], - ), + SizedBox( + height: 15, + ), + ServiceTitle( + title: "${TranslationBase.of(context).admission}", + subTitle: TranslationBase.of(context).request, + ), + SizedBox( + height: 15, ), Container( margin: EdgeInsets.symmetric(vertical: 0, horizontal: 16), @@ -352,6 +342,96 @@ class _AdmissionRequestThirdScreenState ], ), ), + bottomSheet: BottomSheetContainer( + widget: Row( + children: [ + Container( + width: MediaQuery.of(context).size.width * 0.4, + child: AppButton( + title: TranslationBase.of(context).previous, + color: HexColor("#EAEAEA"), + fontColor: Colors.black, + onPressed: () { + Navigator.pop(context); + }, + ), + ), + SizedBox(width: 10,), + Container( + width: MediaQuery.of(context).size.width * 0.4, + child: AppButton( + title: TranslationBase.of(context).submit, + color: HexColor("#359846"), + onPressed: () async { + await locator().logEvent( + eventCategory: "Admission Request Third Screen", + eventAction: "Submit Admission Request", + ); + if (_selectedDiagnosis != null && + _selectedIcd != null && + _selectedDiagnosisType != null) { + model.admissionRequestData = admissionRequest; + + dynamic admissionRequestDiagnoses = [ + { + 'diagnosisDescription': + _selectedDiagnosis['nameEn'], + 'diagnosisType': _selectedDiagnosis['id'], + 'icdCode': _selectedIcd['code'], + 'icdCodeDescription': + _selectedIcd['description'], + 'type': _selectedDiagnosisType['code'], + 'remarks': "", + 'isActive': true, + } + ]; + model.admissionRequestData + .admissionRequestDiagnoses = + admissionRequestDiagnoses; + + await model.makeAdmissionRequest(); + if (model.state == ViewState.ErrorLocal) { + DrAppToastMsg.showErrorToast(model.error); + } else { + DrAppToastMsg.showSuccesToast( + TranslationBase.of(context) + .admissionRequestSuccessMsg); + Navigator.popUntil(context, + ModalRoute.withName(PATIENTS_PROFILE)); + } + } else { + DrAppToastMsg.showErrorToast( + TranslationBase.of(context).pleaseFill); + + setState(() { + if (_selectedDiagnosis == null) { + diagnosisError = + TranslationBase.of(context).fieldRequired; + } else { + diagnosisError = null; + } + + if (_selectedIcd == null) { + icdError = + TranslationBase.of(context).fieldRequired; + } else { + icdError = null; + } + + if (_selectedDiagnosisType == null) { + diagnosisTypeError = + TranslationBase.of(context).fieldRequired; + } else { + diagnosisTypeError = null; + } + }); + } + }, + ), + ), + ], + ) + ), ), ); } diff --git a/lib/screens/patients/profile/referral/refer_details/refer-patient-screen-in-patient.dart b/lib/screens/patients/profile/referral/refer_details/refer-patient-screen-in-patient.dart index dfdb6f3d..7959bcac 100644 --- a/lib/screens/patients/profile/referral/refer_details/refer-patient-screen-in-patient.dart +++ b/lib/screens/patients/profile/referral/refer_details/refer-patient-screen-in-patient.dart @@ -6,10 +6,10 @@ import 'package:doctor_app_flutter/core/viewModel/patient-referral-viewmodel.dar import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart'; import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart'; -import 'package:doctor_app_flutter/screens/patients/profile/soap_update/shared_soap_widgets/bottom_sheet_dialog_button.dart'; import 'package:doctor_app_flutter/utils/date-utils.dart'; import 'package:doctor_app_flutter/utils/dr_app_toast_msg.dart'; import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart'; +import 'package:doctor_app_flutter/widgets/bottom_sheet/custom_bottom_sheet_container.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/app_bar/patient-profile-app-bar.dart'; import 'package:doctor_app_flutter/widgets/patients/patient_service_title.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; @@ -567,7 +567,7 @@ class _PatientMakeInPatientReferralScreenState extends State { ], ), if (model.patientReferral.length == 0) - BottomSheetDialogButton( + CustomBottomSheetContainer( label: "${TranslationBase.of(context).refer}", onTap: () async { await locator().logEvent( diff --git a/lib/screens/patients/profile/soap_update/assessment/add_assessment_details.dart b/lib/screens/patients/profile/soap_update/assessment/add_assessment_details.dart index fe6ca1c1..e5383f05 100644 --- a/lib/screens/patients/profile/soap_update/assessment/add_assessment_details.dart +++ b/lib/screens/patients/profile/soap_update/assessment/add_assessment_details.dart @@ -11,10 +11,10 @@ import 'package:doctor_app_flutter/core/model/SOAP/selected_items/my_selected_as import 'package:doctor_app_flutter/core/model/doctor/doctor_profile_model.dart'; import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart'; -import 'package:doctor_app_flutter/screens/patients/profile/soap_update/shared_soap_widgets/bottom_sheet_dialog_button.dart'; import 'package:doctor_app_flutter/screens/patients/profile/soap_update/shared_soap_widgets/bottom_sheet_title.dart'; import 'package:doctor_app_flutter/utils/utils.dart'; import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart'; +import 'package:doctor_app_flutter/widgets/bottom_sheet/custom_bottom_sheet_container.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/dialogs/master_key_dailog.dart'; @@ -399,7 +399,7 @@ class _AddAssessmentDetailsState extends State { ? Container( height: 0, ) - : BottomSheetDialogButton( + : CustomBottomSheetContainer( label: (widget.isUpdate ? 'Update Assessment Details' : 'Add Assessment Details'), diff --git a/lib/screens/patients/profile/soap_update/objective/add_examination_page.dart b/lib/screens/patients/profile/soap_update/objective/add_examination_page.dart index 79d77f4f..da0587d8 100644 --- a/lib/screens/patients/profile/soap_update/objective/add_examination_page.dart +++ b/lib/screens/patients/profile/soap_update/objective/add_examination_page.dart @@ -4,9 +4,9 @@ import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.dart'; import 'package:doctor_app_flutter/core/model/SOAP/master_key_model.dart'; import 'package:doctor_app_flutter/core/model/SOAP/selected_items/my_selected_examination.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart'; -import 'package:doctor_app_flutter/screens/patients/profile/soap_update/shared_soap_widgets/bottom_sheet_dialog_button.dart'; import 'package:doctor_app_flutter/screens/patients/profile/soap_update/shared_soap_widgets/bottom_sheet_title.dart'; import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart'; +import 'package:doctor_app_flutter/widgets/bottom_sheet/custom_bottom_sheet_container.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:flutter/material.dart'; @@ -102,7 +102,7 @@ class _AddExaminationPageState extends State { ? Container( height: 0, ) - : BottomSheetDialogButton( + : CustomBottomSheetContainer( label: "${TranslationBase.of(context).addExamination}", onTap: () { widget diff --git a/lib/screens/patients/profile/soap_update/subjective/allergies/add_allergies.dart b/lib/screens/patients/profile/soap_update/subjective/allergies/add_allergies.dart index 1f3978fa..60a26dc0 100644 --- a/lib/screens/patients/profile/soap_update/subjective/allergies/add_allergies.dart +++ b/lib/screens/patients/profile/soap_update/subjective/allergies/add_allergies.dart @@ -5,9 +5,9 @@ import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.dart'; import 'package:doctor_app_flutter/core/model/SOAP/master_key_model.dart'; import 'package:doctor_app_flutter/core/model/SOAP/selected_items/my_selected_allergy.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart'; -import 'package:doctor_app_flutter/screens/patients/profile/soap_update/shared_soap_widgets/bottom_sheet_dialog_button.dart'; import 'package:doctor_app_flutter/utils/utils.dart'; import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart'; +import 'package:doctor_app_flutter/widgets/bottom_sheet/custom_bottom_sheet_container.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart'; import 'package:flutter/material.dart'; @@ -118,7 +118,7 @@ class _AddAllergiesState extends State { ? Container( height: 0, ) - : BottomSheetDialogButton( + : CustomBottomSheetContainer( label: TranslationBase.of(context).addAllergies, onTap: () { setState(() { diff --git a/lib/screens/patients/profile/soap_update/subjective/history/add_history_dialog.dart b/lib/screens/patients/profile/soap_update/subjective/history/add_history_dialog.dart index b9cd5213..5ae5692b 100644 --- a/lib/screens/patients/profile/soap_update/subjective/history/add_history_dialog.dart +++ b/lib/screens/patients/profile/soap_update/subjective/history/add_history_dialog.dart @@ -4,9 +4,9 @@ import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.dart'; import 'package:doctor_app_flutter/core/model/SOAP/master_key_model.dart'; import 'package:doctor_app_flutter/core/model/SOAP/selected_items/my_selected_history.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart'; -import 'package:doctor_app_flutter/screens/patients/profile/soap_update/shared_soap_widgets/bottom_sheet_dialog_button.dart'; import 'package:doctor_app_flutter/screens/patients/profile/soap_update/soap_utils.dart'; import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart'; +import 'package:doctor_app_flutter/widgets/bottom_sheet/custom_bottom_sheet_container.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/master_key_checkbox_search_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart'; @@ -165,7 +165,7 @@ class _AddHistoryDialogState extends State { ? Container( height: 0, ) - : BottomSheetDialogButton( + : CustomBottomSheetContainer( label: TranslationBase.of(context).addSelectedHistories, onTap: () { widget.addSelectedHistories(); diff --git a/lib/screens/patients/profile/soap_update/subjective/medication/add_medication.dart b/lib/screens/patients/profile/soap_update/subjective/medication/add_medication.dart index dcca17a8..133dae13 100644 --- a/lib/screens/patients/profile/soap_update/subjective/medication/add_medication.dart +++ b/lib/screens/patients/profile/soap_update/subjective/medication/add_medication.dart @@ -7,9 +7,9 @@ import 'package:doctor_app_flutter/core/viewModel/SOAP_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart'; import 'package:doctor_app_flutter/core/model/SOAP/master_key_model.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart'; -import 'package:doctor_app_flutter/screens/patients/profile/soap_update/shared_soap_widgets/bottom_sheet_dialog_button.dart'; import 'package:doctor_app_flutter/utils/utils.dart'; import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart'; +import 'package:doctor_app_flutter/widgets/bottom_sheet/custom_bottom_sheet_container.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/dialogs/master_key_dailog.dart'; @@ -424,7 +424,7 @@ class _AddMedicationState extends State { ? Container( height: 0, ) - : BottomSheetDialogButton( + : CustomBottomSheetContainer( label: TranslationBase.of(context).addMedication, onTap: () { setState(() { diff --git a/lib/screens/prescription/add_prescription/add_drug/add_drug_widget.dart b/lib/screens/prescription/add_prescription/add_drug/add_drug_widget.dart index aa7d3c57..42b0e093 100644 --- a/lib/screens/prescription/add_prescription/add_drug/add_drug_widget.dart +++ b/lib/screens/prescription/add_prescription/add_drug/add_drug_widget.dart @@ -5,11 +5,11 @@ import 'package:doctor_app_flutter/core/model/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/core/model/search_drug/get_medication_response_model.dart'; import 'package:doctor_app_flutter/core/viewModel/medicine_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/prescription/prescription_view_model.dart'; -import 'package:doctor_app_flutter/screens/patients/profile/soap_update/shared_soap_widgets/bottom_sheet_dialog_button.dart'; import 'package:doctor_app_flutter/screens/patients/profile/soap_update/shared_soap_widgets/bottom_sheet_title.dart'; import 'package:doctor_app_flutter/utils/dr_app_toast_msg.dart'; import 'package:doctor_app_flutter/utils/utils.dart'; import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart'; +import 'package:doctor_app_flutter/widgets/bottom_sheet/custom_bottom_sheet_container.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/loader/gif_loader_dialog_utils.dart'; import 'package:flutter/cupertino.dart'; @@ -84,7 +84,7 @@ class _AddDrugWidgetState extends State { ? Container( height: 0, ) - : BottomSheetDialogButton( + : CustomBottomSheetContainer( label: TranslationBase.of(context).addMedication, onTap: () async { GifLoaderDialogUtils.showMyDialog(context); diff --git a/lib/screens/procedures/add-favourite-procedure.dart b/lib/screens/procedures/add-favourite-procedure.dart index 298dde1b..7b0d869a 100644 --- a/lib/screens/procedures/add-favourite-procedure.dart +++ b/lib/screens/procedures/add-favourite-procedure.dart @@ -1,4 +1,3 @@ -import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/core/model/procedure/procedure_template_details_model.dart'; import 'package:doctor_app_flutter/core/viewModel/prescription/prescription_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/procedure_View_model.dart'; @@ -9,12 +8,11 @@ import 'package:doctor_app_flutter/screens/procedures/entity_list_fav_procedure. import 'package:doctor_app_flutter/screens/procedures/procedure_checkout_screen.dart'; import 'package:doctor_app_flutter/utils/dr_app_toast_msg.dart'; import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart'; +import 'package:doctor_app_flutter/widgets/bottom_sheet/custom_bottom_sheet_container.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; -import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/errors/error_message.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import '../patients/profile/soap_update/shared_soap_widgets/bottom_sheet_dialog_button.dart'; import 'ProcedureType.dart'; class AddFavouriteProcedure extends StatefulWidget { @@ -83,7 +81,7 @@ class _AddFavouriteProcedureState extends State { .youDoNotHaveFavoritePrescription, ), ]), - bottomSheet: BottomSheetDialogButton( + bottomSheet: CustomBottomSheetContainer( label: widget.procedureType.getAddButtonTitle(context) ?? TranslationBase.of(context).addSelectedProcedures, onTap: () async { diff --git a/lib/widgets/bottom_sheet/bottom_sheet_container.dart b/lib/widgets/bottom_sheet/bottom_sheet_container.dart new file mode 100644 index 00000000..31fee2b6 --- /dev/null +++ b/lib/widgets/bottom_sheet/bottom_sheet_container.dart @@ -0,0 +1,47 @@ +import 'package:doctor_app_flutter/config/size_config.dart'; +import 'package:flutter/material.dart'; +import 'package:hexcolor/hexcolor.dart'; + + +class BottomSheetContainer extends StatelessWidget { + final Function onTap; + final String label; + final Widget widget; + double headerHeight = SizeConfig.heightMultiplier * 12; + + BottomSheetContainer({Key key, this.onTap, this.label, this.widget}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Container( + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.all( + Radius.circular(0.0), + ), + border: Border.all(color: HexColor('#EFEFEF'), width: 1), + ), + height: headerHeight, + width: double.infinity, + child: Column( + children: [ + Container( + margin: EdgeInsets.only( + top: headerHeight * (SizeConfig.isWidthLarge ? 0.3 : 0.2), left: SizeConfig.heightMultiplier*4.5 + ), + child: Center( + child: Row( + children: [ + widget, + ], + ) + ), + ), + SizedBox( + height: 5, + ), + ], + ), + ); + } +} diff --git a/lib/screens/patients/profile/soap_update/shared_soap_widgets/bottom_sheet_dialog_button.dart b/lib/widgets/bottom_sheet/custom_bottom_sheet_container.dart similarity index 87% rename from lib/screens/patients/profile/soap_update/shared_soap_widgets/bottom_sheet_dialog_button.dart rename to lib/widgets/bottom_sheet/custom_bottom_sheet_container.dart index 440e1e3e..af7d0a4c 100644 --- a/lib/screens/patients/profile/soap_update/shared_soap_widgets/bottom_sheet_dialog_button.dart +++ b/lib/widgets/bottom_sheet/custom_bottom_sheet_container.dart @@ -3,15 +3,15 @@ import 'package:doctor_app_flutter/widgets/shared/buttons/app_buttons_widget.dar import 'package:flutter/material.dart'; import 'package:hexcolor/hexcolor.dart'; -import '../../../../../config/config.dart'; +import '../../config/config.dart'; -class BottomSheetDialogButton extends StatelessWidget { +class CustomBottomSheetContainer extends StatelessWidget { final Function onTap; final String label; double headerHeight = SizeConfig.heightMultiplier * 12; - BottomSheetDialogButton({Key key, this.onTap, this.label}) : super(key: key); + CustomBottomSheetContainer({Key key, this.onTap, this.label}) : super(key: key); @override Widget build(BuildContext context) { diff --git a/lib/widgets/shared/text_fields/app-textfield-custom.dart b/lib/widgets/shared/text_fields/app-textfield-custom.dart index 6bf15219..72d80823 100644 --- a/lib/widgets/shared/text_fields/app-textfield-custom.dart +++ b/lib/widgets/shared/text_fields/app-textfield-custom.dart @@ -1,5 +1,6 @@ import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart'; +import 'package:doctor_app_flutter/utils/utils.dart'; import 'package:doctor_app_flutter/widgets/shared/text_fields/text_field_error.dart'; import 'package:doctor_app_flutter/widgets/shared/text_fields/text_fields_utils.dart'; import 'package:flutter/material.dart'; @@ -183,7 +184,7 @@ class _AppTextFieldCustomState extends State { obscureText: widget.isSecure), ) : AppText( - widget.dropDownText, + Utils.convertToTitleCase(widget.dropDownText), fontFamily: 'Poppins', color: Color(0xFF575757), fontSize: SizeConfig.textMultiplier * 1.7,