import 'package:doctor_app_flutter/core/viewModel/prescription_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/prescription_item_in_patient_page.dart'; import 'package:doctor_app_flutter/screens/prescription/prescription_items_page.dart'; import 'package:doctor_app_flutter/screens/procedures/ProcedureType.dart'; import 'package:doctor_app_flutter/screens/procedures/base_add_procedure_tab_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/patient_service_title.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/add-order/addNewOrder.dart'; import 'package:doctor_app_flutter/widgets/patients/profile/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/doctor_card.dart'; import 'package:doctor_app_flutter/widgets/shared/network_base_view.dart'; import 'package:doctor_app_flutter/widgets/shared/user-guid/in_patient_doctor_card.dart'; import 'package:doctor_app_flutter/widgets/transitions/fade_page.dart'; import 'package:doctor_app_flutter/widgets/transitions/slide_up_page.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.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']; bool isInpatient = routeArgs['isInpatient']; bool isFromLiveCare = routeArgs['isFromLiveCare']; bool isSelectInpatient = routeArgs['isSelectInpatient']; return BaseView( onModelReady: (model) => patient.admissionNo == null ? model.getPrescriptions(patient, patientType: patientType) : model.getMedicationForInPatient(patient), builder: (_, model, w) => AppScaffold( baseViewModel: model, isShowAppBar: true, backgroundColor: Colors.grey[100], appBar: PatientProfileAppBar( patient, isInpatient: isInpatient, ), body: patient.admissionNo == null ? 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: [ ServiceTitle( title: TranslationBase.of(context).orders, subTitle: TranslationBase.of(context).prescriptions, ), ], ), ), if (patient.patientStatusType != null && patient.patientStatusType == 43) Padding( padding: const EdgeInsets.all(8.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ ServiceTitle( title: TranslationBase.of(context).orders, subTitle: TranslationBase.of(context).prescriptions, ), ], ), ), if ((patient.patientStatusType != null && patient.patientStatusType == 43) || (isFromLiveCare && patient.appointmentNo != null)) AddNewOrder( onTap: () { Navigator.push( context, SlideUpPageRoute( widget: BaseAddProcedureTabPage( patient: patient, prescriptionModel: model, procedureType: ProcedureType.PRESCRIPTION, ), settingRoute: 'AddProcedureTabPage'), ); }, label: TranslationBase.of(context) .applyForNewPrescriptionsOrder, ), ...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: AppDateUtils.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(TranslationBase.of(context) .noPrescriptionsFound), ) ], ), ) ], ), ) : NetworkBaseView( baseViewModel: model, child: FractionallySizedBox( widthFactor: 1.0, child: ListView( physics: BouncingScrollPhysics(), children: [ ListView.builder( scrollDirection: Axis.vertical, physics: NeverScrollableScrollPhysics(), shrinkWrap: true, itemCount: model.medicationForInPatient.length, itemBuilder: (context, index) { //model.medicationForInPatient.length, return InkWell( onTap: () => Navigator.push( context, FadePage( page: PrescriptionItemsInPatientPage( prescriptionIndex: index, prescriptions: model.medicationForInPatient[ index], patient: patient, patientType: patientType, arrivalType: arrivalType, startOn: AppDateUtils .getDateTimeFromServerFormat( model .medicationForInPatient[ index] .startDatetime, ), stopOn: AppDateUtils .getDateTimeFromServerFormat( model .medicationForInPatient[ index] .stopDatetime, ), ), ), ), child: InPatientDoctorCard( doctorName: model .medicationForInPatient[index] .pHRItemDescription, profileUrl: 'sss', branch: 'hamza', clinic: 'basheer', isPrescriptions: true, appointmentDate: AppDateUtils .getDateTimeFromServerFormat( model.medicationForInPatient[index] .prescriptionDatetime, ), createdBy: model .medicationForInPatient[index] .doctorName .toString(), )); }), if (model.medicationForInPatient.length == 0) 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(TranslationBase.of(context) .noPrescriptionsFound), ) ], ), ) ], ), ), ))); } }