import 'package:doctor_app_flutter/core/enum/filter_type.dart'; import 'package:doctor_app_flutter/core/viewModel/prescription_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/prescriptions_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart'; import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/screens/base/base_view.dart'; import 'package:doctor_app_flutter/screens/prescription/add_prescription_form.dart'; import 'package:doctor_app_flutter/screens/prescription/prescription_items_page.dart'; import 'package:doctor_app_flutter/util/date-utils.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_expandable_notifier_new.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/doctor_card.dart'; import 'package:doctor_app_flutter/widgets/transitions/fade_page.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; class PrescriptionsPage extends StatelessWidget { @override 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']; ProjectViewModel projectViewModel = Provider.of(context); return BaseView( onModelReady: (model) => model.getPrescriptions(patient,patientType:patientType), builder: (_, model, w) => AppScaffold( baseViewModel: model, isShowAppBar: true, backgroundColor: Colors.grey[100], appBar: PatientProfileHeaderNewDesignAppBar( patient, patientType ?? '0', arrivalType), body: FractionallySizedBox( widthFactor: 1.0, child: ListView( physics: BouncingScrollPhysics(), children: [ SizedBox( height: 12, ), if(model.prescriptionsList.isNotEmpty && patient.patientStatusType != 43) Padding( padding: const EdgeInsets.all(8.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ AppText( 'Order', style: "caption2", color: Colors.black, fontSize: 13, ), AppText( 'Prescriptions', bold: true, fontSize: 22, ), ], ), ), if(patient.patientStatusType == 43) Padding( padding: const EdgeInsets.all(8.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ AppText( 'Order', style: "caption2", color: Colors.black, fontSize: 13, ), AppText( 'Prescriptions', bold: true, fontSize: 22, ), ], ), ), if (patientType != null && patientType == '7' && patient.patientStatusType == 43) InkWell( onTap: () { addPrescriptionForm( context, model, patient, model.prescriptionList); }, child: Container( width: double.maxFinite, height: 140, margin: EdgeInsets.all(10), decoration: BoxDecoration( color: Colors.grey[300], borderRadius: BorderRadius.circular(10), ), child: Center( child: Container( height: 90, child: Column( children: [ Container( height: 40, width: 40, decoration: BoxDecoration( color: Colors.grey[600], borderRadius: BorderRadius.circular(10), ), child: Center( child: Icon( Icons.add, color: Colors.white, ), ), ), SizedBox( height: 10, ), AppText( 'Apply for New Prescriptions Order', color: Colors.grey[600], fontWeight: FontWeight.w600, ) ], ), ), ), ), ), ...List.generate( model.prescriptionsList.length, (index) => InkWell( onTap: () => Navigator.push( context, FadePage( page: PrescriptionItemsPage( prescriptions: model.prescriptionsList[index], patient: patient, patientType: patientType, arrivalType: arrivalType, ), ), ), child: DoctorCard( doctorName: model.prescriptionsList[index].doctorName, profileUrl: model.prescriptionsList[index].doctorImageURL, branch: model.prescriptionsList[index].name, clinic: model .prescriptionsList[index].clinicDescription, isPrescriptions: true, appointmentDate: DateUtils.getDateTimeFromServerFormat( model.prescriptionsList[index].appointmentDate, ), ))), if(model.prescriptionsList.isEmpty && patient.patientStatusType != 43) Center( child: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ SizedBox(height: 100,), Image.asset('assets/images/no-data.png'), Padding( padding: const EdgeInsets.all(8.0), child: AppText('No Lab Result Found'), ) ], ), ) ], ), ), )); } }