import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/core/enum/viewstate.dart'; import 'package:doctor_app_flutter/core/viewModel/auth_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/patient-referral-viewmodel.dart'; import 'package:doctor_app_flutter/models/patient/my_referral/PendingReferral.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/translations_delegate_base.dart'; import 'package:doctor_app_flutter/widgets/patients/patient-referral-item-widget.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/PatientProfileButton.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/profile-welcome-widget.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/borderedButton.dart'; import 'package:flutter/material.dart'; import 'package:hexcolor/hexcolor.dart'; import 'package:provider/provider.dart'; import '../../../../routes.dart'; class MyReferralDetailScreen extends StatelessWidget { PendingReferral pendingReferral; @override Widget build(BuildContext context) { final gridHeight = (MediaQuery.of(context).size.width * 0.3) * 1.8; AuthViewModel authProvider = Provider.of(context); final routeArgs = ModalRoute.of(context).settings.arguments as Map; pendingReferral = routeArgs['referral']; return BaseView( onModelReady: (model) => model.getPatientDetails( DateUtils.convertStringToDateFormat( DateTime.now().subtract(Duration(days: 350)).toString(), "yyyy-MM-dd"), DateUtils.convertStringToDateFormat( DateTime.now().toString(), "yyyy-MM-dd"), pendingReferral.patientID, pendingReferral.sourceAppointmentNo), builder: (_, model, w) => AppScaffold( baseViewModel: model, appBarTitle: TranslationBase.of(context).referPatient, body: model.patientArrivalList != null ? Column( children: [ Expanded( child: SingleChildScrollView( child: Container( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ ProfileWelcomeWidget( AppText( authProvider.selectedClinicName != null ? authProvider.selectedClinicName : authProvider .doctorProfile.clinicDescription, fontSize: SizeConfig.textMultiplier * 1.7, color: Colors.white, textAlign: TextAlign.center, ), height: 100, ), SizedBox( height: 16, ), Padding( padding: const EdgeInsets.symmetric(horizontal: 16.0), child: AppText( TranslationBase.of(context).myReferralPatient, color: Colors.black, fontWeight: FontWeight.bold, fontSize: 16, ), ), PatientReferralItemWidget( patientName: pendingReferral.patientName, referralStatus: null, isReferredTo: false, isSameBranch: pendingReferral.isReferralDoctorSameBranch, referralDoctorName: pendingReferral.referredByDoctorInfo, clinicDescription: null, remark: pendingReferral.remarksFromSource, ), SizedBox( child: GridView.count( childAspectRatio: 1.8, crossAxisSpacing: 8, mainAxisSpacing: 10, controller: new ScrollController( keepScrollOffset: false), shrinkWrap: true, padding: const EdgeInsets.all(4.0), crossAxisCount: 2, children: [ PatientProfileButton( key: key, patient: model.patientArrivalList[0], route: MEDICAL_FILE, nameLine1: TranslationBase.of(context) .previewHealth, nameLine2: TranslationBase.of(context) .summaryReport, icon: 'radiology-1.png'), PatientProfileButton( key: key, patient: model.patientArrivalList[0], route: LAB_ORDERS, nameLine1: TranslationBase.of(context).lab, nameLine2: TranslationBase.of(context).result, icon: 'lab.png'), PatientProfileButton( key: key, patient: model.patientArrivalList[0], route: VITAL_SIGN_DETAILS /*PATIENT_VITAL_SIGN*/, nameLine1: TranslationBase.of(context).vital, nameLine2: TranslationBase.of(context).signs, icon: 'heartbeat.png'), ], ), ), ], ), ), ), ), Container( margin: EdgeInsets.symmetric(horizontal: 16, vertical: 16), child: Row( children: [ Expanded( child: BorderedButton( TranslationBase.of(context).accept, backgroundColor: Color(0xFF4BA821), textColor: Colors.white, fontSize: 16, hPadding: 8, vPadding: 12, handler: () async { await model.responseReferral(pendingReferral, true); if(model.state == ViewState.ErrorLocal){ DrAppToastMsg.showErrorToast(model.error); } }, ), ), SizedBox( height: 8, ), Expanded( child: BorderedButton( TranslationBase.of(context).reject, backgroundColor: Color(0xFFB9382C), textColor: Colors.white, fontSize: 16, hPadding: 8, vPadding: 12, handler: () async { await model.responseReferral(pendingReferral, true); if(model.state == ViewState.ErrorLocal){ DrAppToastMsg.showErrorToast(model.error); } }, ), ), ], ), ), ], ) : Container( child: Center( child: AppText( TranslationBase.of(context).patientNoDetailErrMsg, color: HexColor("#B8382B"), fontWeight: FontWeight.bold, fontSize: 16, ), ), ), ), ); } }