import 'package:doctor_app_flutter/core/model/Prescriptions/Prescriptions.dart'; import 'package:doctor_app_flutter/core/viewModel/prescriptions_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/util/date-utils.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.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/dialogs/ShowImageDialog.dart'; import 'package:eva_icons_flutter/eva_icons_flutter.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; class PrescriptionItemsPage extends StatelessWidget { final Prescriptions prescriptions; final PatiantInformtion patient; final String patientType; final String arrivalType; PrescriptionItemsPage({Key ? key, this.prescriptions, this.patient, this.patientType, this.arrivalType}); @override Widget build(BuildContext context) { return BaseView( onModelReady: (model) => model.getPrescriptionReport(prescriptions: prescriptions,patient: patient), builder: (_, model, widget) => AppScaffold( isShowAppBar: true, backgroundColor: Colors.grey[100], baseViewModel: model, appBar: PatientProfileAppBar( patient, clinic: prescriptions.clinicDescription, branch: prescriptions.name, isPrescriptions: true, appointmentDate: AppDateUtils.getDateTimeFromServerFormat(prescriptions.appointmentDate), doctorName: prescriptions.doctorName, profileUrl: prescriptions.doctorImageURL, isAppointmentHeader: true, ), body: SingleChildScrollView( child: Container( child: Column( children: [ if (!prescriptions.isInOutPatient) ...List.generate( model.prescriptionReportList.length, (index) => Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(12), color: Colors.white, ), margin: EdgeInsets.all(12), child: Padding( padding: const EdgeInsets.all(8.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( margin: EdgeInsets.only(left: 18,right: 18), child: AppText(model.prescriptionReportList[index].itemDescription.isNotEmpty ? model.prescriptionReportList[index].itemDescription : model.prescriptionReportList[index].itemDescriptionN,bold: true,)), SizedBox(height: 12,), Row( children: [ SizedBox(width: 18,), Container( decoration: BoxDecoration( shape: BoxShape.circle, border: Border.all(width: 0.5,color: Colors.grey) ), height: 55, width: 55, child: InkWell( onTap: (){ showDialog( context: context, builder: (ctx) => ShowImageDialog( imageUrl: model.prescriptionReportEnhList[index].imageSRCUrl, ) ); }, child: Padding( padding: const EdgeInsets.all(8.0), child: Image.network( model.prescriptionReportList[index].imageSRCUrl, fit: BoxFit.cover, ), ), ), ), SizedBox(width: 10,), Expanded(child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( children: [ AppText(TranslationBase.of(context).route,color: Colors.grey,), Expanded(child: AppText(" "+model.prescriptionReportList[index].routeN)), ], ), Row( children: [ AppText(TranslationBase.of(context).frequency,color: Colors.grey,), AppText(" "+model.prescriptionReportList[index].frequencyN ?? ''), ], ), Row( children: [ AppText(TranslationBase.of(context).dailyDoses,color: Colors.grey,), AppText(" "+model.prescriptionReportList[index].doseDailyQuantity ?? ''), ], ), Row( children: [ AppText(TranslationBase.of(context).duration,color: Colors.grey,), AppText(" "+model.prescriptionReportList[index].days.toString() ?? ''), ], ), SizedBox(height: 12,), AppText(model.prescriptionReportList[index].remarks ?? ''), ], ),) ], ) ], ), ), )) else ...List.generate( model.prescriptionReportEnhList.length, (index) => Container( decoration: BoxDecoration( borderRadius: BorderRadius.circular(12), color: Colors.white, ), margin: EdgeInsets.all(12), child: Padding( padding: const EdgeInsets.all(8.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( margin: EdgeInsets.only(left: 18,right: 18), child: AppText(model.prescriptionReportEnhList[index].itemDescription,bold: true,),), SizedBox(height: 12,), Row( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.center, children: [ SizedBox(width: 18,), Container( decoration: BoxDecoration( shape: BoxShape.circle, border: Border.all(width: 0.5,color: Colors.grey) ), height: 55, width: 55, child: InkWell( onTap: (){ showDialog( context: context, builder: (ctx) => ShowImageDialog( imageUrl: model.prescriptionReportEnhList[index].imageSRCUrl, ) ); }, child: Stack( children: [ Padding( padding: const EdgeInsets.all(8.0), child: Image.network( model.prescriptionReportEnhList[index].imageSRCUrl, fit: BoxFit.cover, ), ), Positioned( top: 10, right: 10, child: Icon(EvaIcons.search,color: Colors.grey,size: 35,)) ], ), ), ), SizedBox(width: 10,), Expanded(child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( children: [ AppText(TranslationBase.of(context).route,color: Colors.grey,), Expanded(child: AppText(" "+model.prescriptionReportEnhList[index].route??'')), ], ), Row( children: [ AppText(TranslationBase.of(context).frequency,color: Colors.grey,), AppText(" "+model.prescriptionReportEnhList[index].frequency ?? ''), ], ), Row( children: [ AppText(TranslationBase.of(context).dailyDoses,color: Colors.grey,), AppText(" "+model.prescriptionReportEnhList[index].doseDailyQuantity.toString() ?? ''), ], ), Row( children: [ AppText(TranslationBase.of(context).duration,color: Colors.grey,), AppText(" "+model.prescriptionReportList[index].days.toString() ?? ''), ], ), SizedBox(height: 12,), AppText(model.prescriptionReportEnhList[index].remarks?? ''), ], ),) ], ) ], ), ), ), ), ], ), ), ), ), ); } }