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/app_bar/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 ?? ''), ], ), ) ], ) ], ), ), ), ), ], ), ), ), ), ); } }