You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Doctor_App_MOH/lib/screens/patients/profile/referral/my-referral-detail-screen.dart

369 lines
19 KiB
Dart

import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/model/referral/MyReferralPatientModel.dart';
import 'package:doctor_app_flutter/core/viewModel/patient-referral-viewmodel.dart';
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/profile_medical_info_widget_search.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:flutter/material.dart';
// ignore: must_be_immutable
class MyReferralDetailScreen extends StatelessWidget {
final MyReferralPatientModel referralPatient;
const MyReferralDetailScreen({Key? key, this.referralPatient}) : super(key: key);
@override
Widget build(BuildContext context) {
Merge branch 'development' of https://gitlab.com/Cloud_Solution/doctor_app_flutter into flutter_vervion_2_by_elham  Conflicts:  lib/client/base_app_client.dart  lib/config/localized_values.dart  lib/config/size_config.dart  lib/core/model/Prescriptions/prescription_report.dart  lib/core/model/Prescriptions/prescription_report_enh.dart  lib/core/model/auth/activation_Code_req_model.dart  lib/core/model/auth/activation_code_for_verification_screen_model.dart  lib/core/model/auth/check_activation_code_for_doctor_app_response_model.dart  lib/core/model/auth/check_activation_code_request_model.dart  lib/core/model/labs/lab_result.dart  lib/core/model/patient_muse/PatientSearchRequestModel.dart  lib/core/model/procedure/get_ordered_procedure_request_model.dart  lib/core/model/referral/MyReferralPatientModel.dart  lib/core/model/sick_leave/sick_leave_patient_model.dart  lib/core/model/sick_leave/sick_leave_patient_request_model.dart  lib/core/service/VideoCallService.dart  lib/core/service/base/base_service.dart  lib/core/service/home/scan_qr_service.dart  lib/core/service/patient/LiveCarePatientServices.dart  lib/core/service/patient/MyReferralPatientService.dart  lib/core/service/patient/patient-doctor-referral-service.dart  lib/core/service/patient_medical_file/lab_order/labs_service.dart  lib/core/service/patient_medical_file/medical_report/PatientMedicalReportService.dart  lib/core/service/patient_medical_file/prescription/prescriptions_service.dart  lib/core/service/patient_medical_file/procedure/procedure_service.dart  lib/core/service/patient_medical_file/radiology/radiology_service.dart  lib/core/service/patient_medical_file/sick_leave/sickleave_service.dart  lib/core/service/patient_medical_file/soap/SOAP_service.dart  lib/core/service/patient_medical_file/ucaf/patient-ucaf-service.dart  lib/core/viewModel/PatientSearchViewModel.dart  lib/core/viewModel/SOAP_view_model.dart  lib/core/viewModel/authentication_view_model.dart  lib/core/viewModel/base_view_model.dart  lib/core/viewModel/dashboard_view_model.dart  lib/core/viewModel/doctor_replay_view_model.dart  lib/core/viewModel/labs_view_model.dart  lib/core/viewModel/patient-referral-viewmodel.dart  lib/core/viewModel/patient-ucaf-viewmodel.dart  lib/core/viewModel/prescription_view_model.dart  lib/core/viewModel/prescriptions_view_model.dart  lib/core/viewModel/procedure_View_model.dart  lib/core/viewModel/sick_leave_view_model.dart  lib/models/SOAP/ChiefComplaint/GetChiefComplaintReqModel.dart  lib/models/SOAP/GetPhysicalExamReqModel.dart  lib/models/SOAP/my_selected_allergy.dart  lib/models/SOAP/my_selected_assement.dart  lib/models/SOAP/my_selected_examination.dart  lib/models/SOAP/my_selected_history.dart  lib/models/SOAP/post_chief_complaint_request_model.dart  lib/models/SOAP/post_physical_exam_request_model.dart  lib/models/doctor/list_gt_my_patients_question_model.dart  lib/models/doctor/profile_req_Model.dart  lib/models/doctor/replay/request_doctor_reply.dart  lib/models/livecare/start_call_res.dart  lib/models/patient/patiant_info_model.dart  lib/models/patient/progress_note_request.dart  lib/models/patient/vital_sign/vital_sign_req_model.dart  lib/models/pharmacies/pharmacies_items_request_model.dart  lib/screens/auth/verification_methods_screen.dart  lib/screens/doctor/doctor_repaly_chat.dart  lib/screens/doctor/doctor_replay/doctor_reply_widget.dart  lib/screens/doctor/doctor_reply_screen.dart  lib/screens/doctor/my_referral_patient_screen.dart  lib/screens/home/dashboard_swipe_widget.dart  lib/screens/home/home_patient_card.dart  lib/screens/home/home_screen.dart  lib/screens/live_care/end_call_screen.dart  lib/screens/live_care/live_care_patient_screen.dart  lib/screens/live_care/video_call.dart  lib/screens/medical-file/health_summary_page.dart  lib/screens/medicine/medicine_search_screen.dart  lib/screens/patients/DischargedPatientPage.dart  lib/screens/patients/InPatientPage.dart  lib/screens/patients/PatientsInPatientScreen.dart  lib/screens/patients/insurance_approval_screen_patient.dart  lib/screens/patients/out_patient/out_patient_screen.dart  lib/screens/patients/patient_search/patient_search_header.dart  lib/screens/patients/patient_search/patient_search_result_screen.dart  lib/screens/patients/patient_search/patient_search_screen.dart  lib/screens/patients/profile/UCAF/UCAF-detail-screen.dart  lib/screens/patients/profile/UCAF/UCAF-input-screen.dart  lib/screens/patients/profile/UCAF/page-stepper-widget.dart  lib/screens/patients/profile/admission-request/admission-request-first-screen.dart  lib/screens/patients/profile/admission-request/admission-request-third-screen.dart  lib/screens/patients/profile/admission-request/admission-request_second-screen.dart  lib/screens/patients/profile/lab_result/FlowChartPage.dart  lib/screens/patients/profile/lab_result/LabResultWidget.dart  lib/screens/patients/profile/lab_result/laboratory_result_page.dart  lib/screens/patients/profile/lab_result/laboratory_result_widget.dart  lib/screens/patients/profile/lab_result/labs_home_page.dart  lib/screens/patients/profile/medical_report/AddVerifyMedicalReport.dart  lib/screens/patients/profile/medical_report/MedicalReportPage.dart  lib/screens/patients/profile/notes/note/progress_note_screen.dart  lib/screens/patients/profile/profile_screen/patient_profile_screen.dart  lib/screens/patients/profile/profile_screen/profile_gird_for_InPatient.dart  lib/screens/patients/profile/profile_screen/profile_gird_for_other.dart  lib/screens/patients/profile/profile_screen/profile_gird_for_search.dart  lib/screens/patients/profile/radiology/radiology_details_page.dart  lib/screens/patients/profile/radiology/radiology_home_page.dart  lib/screens/patients/profile/referral/my-referral-detail-screen.dart  lib/screens/patients/profile/referral/my-referral-inpatient-screen.dart  lib/screens/patients/profile/referral/refer-patient-screen-in-patient.dart  lib/screens/patients/profile/referral/refer-patient-screen.dart  lib/screens/patients/profile/referral/referral_patient_detail_in-paint.dart  lib/screens/patients/profile/referral/referred-patient-screen.dart  lib/screens/patients/profile/referral/referred_patient_detail_in-paint.dart  lib/screens/patients/profile/soap_update/assessment/add_assessment_details.dart  lib/screens/patients/profile/soap_update/assessment/update_assessment_page.dart  lib/screens/patients/profile/soap_update/objective/add_examination_page.dart  lib/screens/patients/profile/soap_update/objective/add_examination_widget.dart  lib/screens/patients/profile/soap_update/objective/examination_item_card.dart  lib/screens/patients/profile/soap_update/objective/examinations_list_search_widget.dart  lib/screens/patients/profile/soap_update/objective/update_objective_page.dart  lib/screens/patients/profile/soap_update/plan/update_plan_page.dart  lib/screens/patients/profile/soap_update/shared_soap_widgets/SOAP_open_items.dart  lib/screens/patients/profile/soap_update/shared_soap_widgets/SOAP_step_header.dart  lib/screens/patients/profile/soap_update/shared_soap_widgets/bottom_sheet_title.dart  lib/screens/patients/profile/soap_update/shared_soap_widgets/expandable_SOAP_widget.dart  lib/screens/patients/profile/soap_update/shared_soap_widgets/steps_widget.dart  lib/screens/patients/profile/soap_update/subjective/allergies/add_allergies.dart  lib/screens/patients/profile/soap_update/subjective/allergies/update_allergies_widget.dart  lib/screens/patients/profile/soap_update/subjective/history/add_history_dialog.dart  lib/screens/patients/profile/soap_update/subjective/history/priority_bar.dart  lib/screens/patients/profile/soap_update/subjective/history/update_history_widget.dart  lib/screens/patients/profile/soap_update/subjective/medication/add_medication.dart  lib/screens/patients/profile/soap_update/subjective/update_subjective_page.dart  lib/screens/patients/profile/soap_update/update_soap_index.dart  lib/screens/patients/profile/vital_sign/vital_sign_details_screen.dart  lib/screens/prescription/add_prescription_form.dart  lib/screens/prescription/prescription_item_in_patient_page.dart  lib/screens/prescription/prescription_text_filed.dart  lib/screens/prescription/prescriptions_page.dart  lib/screens/procedures/ProcedureCard.dart  lib/screens/procedures/add-favourite-procedure.dart  lib/screens/procedures/procedure_checkout_screen.dart  lib/screens/procedures/procedure_screen.dart  lib/screens/reschedule-leaves/add-rescheduleleave.dart  lib/screens/reschedule-leaves/reschedule_leave.dart  lib/screens/sick-leave/add-sickleave.dart  lib/screens/sick-leave/show-sickleave.dart  lib/screens/sick-leave/sick_leave.dart  lib/util/VideoChannel.dart  lib/util/date-utils.dart  lib/util/translations_delegate_base.dart  lib/widgets/patients/patient-referral-item-widget.dart  lib/widgets/patients/patient_card/PatientCard.dart  lib/widgets/patients/profile/PatientProfileButton.dart  lib/widgets/patients/profile/patient-profile-app-bar.dart  lib/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart  lib/widgets/patients/profile/profile-welcome-widget.dart  lib/widgets/patients/profile/profile_medical_info_widget.dart  lib/widgets/patients/profile/profile_medical_info_widget_search.dart  lib/widgets/patients/profile/profile_status_info_widget.dart  lib/widgets/shared/app_texts_widget.dart  lib/widgets/shared/bottom_nav_bar.dart  lib/widgets/shared/bottom_navigation_item.dart  lib/widgets/shared/buttons/app_buttons_widget.dart  lib/widgets/shared/card_with_bg_widget.dart  lib/widgets/shared/dialogs/dailog-list-select.dart  lib/widgets/shared/dialogs/master_key_dailog.dart  lib/widgets/shared/doctor_card.dart  lib/widgets/shared/doctor_card_insurance.dart  lib/widgets/shared/master_key_checkbox_search_allergies_widget.dart  lib/widgets/shared/master_key_checkbox_search_widget.dart  lib/widgets/shared/rounded_container_widget.dart  lib/widgets/shared/text_fields/app-textfield-custom.dart  lib/widgets/shared/text_fields/text_fields_utils.dart  lib/widgets/shared/user-guid/custom_validation_error.dart  lib/widgets/transitions/fade_page.dart  lib/widgets/transitions/slide_up_page.dart  pubspec.lock  pubspec.yaml
5 years ago
// final routeArgs = ModalRoute.of(context)!.settings.arguments as Map;
// pendingReferral = routeArgs['referral'];
return BaseView<PatientReferralViewModel>(
onModelReady: (model) => model.getDoctorProfile(),
builder: (_, model, w) => AppScaffold(
baseViewModel: model,
appBarTitle: TranslationBase.of(context).referPatient,
isShowAppBar: false,
body: Column(
children: [
Container(
padding: EdgeInsets.only(left: 0, right: 5, bottom: 5, top: 5),
decoration: BoxDecoration(
color: Colors.white,
),
child: Container(
padding: EdgeInsets.only(left: 10, right: 10, bottom: 10),
margin: EdgeInsets.only(top: 50),
child: Column(
children: [
Container(
padding: EdgeInsets.only(left: 12.0),
child: Row(children: [
IconButton(
icon: Icon(Icons.arrow_back_ios),
color: Colors.black, //Colors.black,
onPressed: () => Navigator.pop(context),
),
Expanded(
child: AppText(
(Helpers.capitalize(referralPatient.firstName + " " + referralPatient.lastName)),
fontSize: SizeConfig.textMultiplier * 2.5,
fontWeight: FontWeight.bold,
fontFamily: 'Poppins',
),
),
referralPatient.gender == 1
? Icon(
DoctorApp.male_2,
color: Colors.blue,
)
: Icon(
DoctorApp.female_1,
color: Colors.pink,
),
]),
),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Padding(
padding: EdgeInsets.only(left: 12.0),
child: Container(
width: 60,
height: 60,
child: Image.asset(
referralPatient.gender == 1
? 'assets/images/male_avatar.png'
: 'assets/images/female_avatar.png',
fit: BoxFit.cover,
),
),
),
SizedBox(
width: 10,
),
Expanded(
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
AppText(
referralPatient.referralStatus != null
? model.getReferralStatusNameByCode(referralPatient.referralStatus, context)
: "",
fontFamily: 'Poppins',
fontSize: 1.9 * SizeConfig.textMultiplier,
fontWeight: FontWeight.w700,
color: referralPatient.referralStatus == 1
? Color(0xffc4aa54)
: referralPatient.referralStatus == 46 || referralPatient.referralStatus == 2
? Colors.green[700]
: Colors.red[700],
),
AppText(
AppDateUtils.getDayMonthYearDateFormatted(referralPatient.referralDate),
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
fontSize: 2.0 * SizeConfig.textMultiplier,
color: Color(0XFF28353E),
)
],
5 years ago
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
5 years ago
children: [
Row(
mainAxisAlignment: MainAxisAlignment.start,
5 years ago
children: [
AppText(
TranslationBase.of(context).fileNumber,
5 years ago
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
fontSize: 1.7 * SizeConfig.textMultiplier,
color: Color(0XFF575757),
5 years ago
),
AppText(
"${referralPatient.patientID}",
5 years ago
fontFamily: 'Poppins',
fontWeight: FontWeight.w700,
fontSize: 1.8 * SizeConfig.textMultiplier,
color: Color(0XFF2E303A),
),
5 years ago
],
),
AppText(
AppDateUtils.getTimeHHMMA(referralPatient.referralDate),
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
fontSize: 1.8 * SizeConfig.textMultiplier,
color: Color(0XFF575757),
)
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Expanded(
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.start,
5 years ago
children: [
AppText(
TranslationBase.of(context).referredFrom,
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
fontSize: 1.7 * SizeConfig.textMultiplier,
color: Color(0XFF575757),
5 years ago
),
AppText(
referralPatient.targetProjectId == referralPatient.sourceProjectId
? TranslationBase.of(context).sameBranch
: TranslationBase.of(context).otherBranch,
fontFamily: 'Poppins',
fontWeight: FontWeight.w700,
fontSize: 1.8 * SizeConfig.textMultiplier,
color: Color(0XFF2E303A),
5 years ago
),
],
),
Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
5 years ago
children: [
AppText(
TranslationBase.of(context).remarks + " : ",
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
fontSize: 1.7 * SizeConfig.textMultiplier,
color: Color(0XFF575757),
5 years ago
),
Expanded(
child: AppText(
referralPatient.referringDoctorRemarks ?? '',
5 years ago
fontFamily: 'Poppins',
fontWeight: FontWeight.w700,
fontSize: 1.8 * SizeConfig.textMultiplier,
5 years ago
color: Color(0XFF2E303A),
),
),
],
),
],
),
5 years ago
),
Row(
children: [
AppText(
referralPatient.nationalityName != null
? referralPatient.nationalityName
: "",
fontWeight: FontWeight.bold,
color: Color(0xFF2E303A),
fontSize: 1.4 * SizeConfig.textMultiplier,
5 years ago
),
referralPatient.nationalityFlagURL != null
? ClipRRect(
borderRadius: BorderRadius.circular(20.0),
child: Image.network(
referralPatient.nationalityFlagURL,
height: 25,
width: 30,
errorBuilder:
(BuildContext context, Object exception, StackTrace stackTrace) {
return Text('No Image');
},
))
: SizedBox()
5 years ago
],
)
],
),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
margin: EdgeInsets.only(left: 10, right: 0),
child: Image.asset(
'assets/images/patient/ic_ref_arrow_up.png',
height: 50,
width: 30,
),
),
Container(
margin: EdgeInsets.only(left: 0, top: 25, right: 0, bottom: 0),
padding: EdgeInsets.only(left: 4.0, right: 4.0),
child: Container(
width: 40,
height: 40,
child: CircleAvatar(
radius: 25.0,
backgroundImage: NetworkImage(referralPatient.doctorImageURL),
backgroundColor: Colors.transparent,
5 years ago
),
),
),
Expanded(
flex: 4,
child: Container(
margin: EdgeInsets.only(left: 10, top: 25, right: 10, bottom: 0),
child: Column(
children: [
AppText(
referralPatient.doctorName,
fontFamily: 'Poppins',
fontWeight: FontWeight.w700,
fontSize: 1.7 * SizeConfig.textMultiplier,
color: Color(0XFF2E303A),
5 years ago
),
],
5 years ago
),
),
5 years ago
),
],
),
],
),
5 years ago
),
],
),
],
),
),
),
Expanded(
child: SingleChildScrollView(
child: Container(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
6 years ago
children: [
SizedBox(
height: 16,
6 years ago
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 16),
child: SizedBox(
child: ProfileMedicalInfoWidgetSearch(
patient: model.getPatientFromReferralO(referralPatient),
patientType: "7",
isInpatient: false,
from: null,
to: null,
),
6 years ago
),
),
],
),
),
),
),
if (referralPatient.referralStatus == 1)
Container(
margin: EdgeInsets.symmetric(horizontal: 16, vertical: 16),
child: Row(
children: [
Expanded(
child: AppButton(
title: TranslationBase.of(context).accept,
color: Color(0xFF4BA821),
fontColor: Colors.white,
fontSize: 1.6,
hPadding: 8,
vPadding: 12,
disabled: model.state == ViewState.Busy,
onPressed: () async {
await model.responseReferral(referralPatient, true);
if (model.state == ViewState.ErrorLocal) {
DrAppToastMsg.showErrorToast(model.error);
} else {
DrAppToastMsg.showSuccesToast(TranslationBase.of(context).referralSuccessMsgAccept);
model.getMyReferralOutPatientService();
Navigator.pop(context);
Navigator.pop(context);
}
},
),
),
SizedBox(
width: 8,
),
Expanded(
child: AppButton(
title: TranslationBase.of(context).reject,
color: Color(0xFFB9382C),
fontColor: Colors.white,
fontSize: 1.6,
hPadding: 8,
vPadding: 12,
disabled: model.state == ViewState.Busy,
onPressed: () async {
await model.responseReferral(referralPatient, false);
if (model.state == ViewState.ErrorLocal) {
DrAppToastMsg.showErrorToast(model.error);
} else {
DrAppToastMsg.showSuccesToast(TranslationBase.of(context).referralSuccessMsgReject);
model.getMyReferralOutPatientService();
Navigator.pop(context);
Navigator.pop(context);
}
},
),
),
],
),
),
],
)),
);
}
}