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/models/patient/profile/patient_profile_app_bar_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/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, required this.prescriptions, required this.patient, required this.patientType, required 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, patientProfileAppBarModel: PatientProfileAppBarModel( patient: 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 ?? ''), ], ), ) ], ) ], ), ), ), ), ], ), ), ), ), ); } }