You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			245 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Dart
		
	
			
		
		
	
	
			245 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			Dart
		
	
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<PrescriptionsViewModel>(
 | 
						|
      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?? ''),
 | 
						|
                                    ],
 | 
						|
                                  ),)
 | 
						|
 | 
						|
 | 
						|
                                ],
 | 
						|
                              )
 | 
						|
                            ],
 | 
						|
                          ),
 | 
						|
                        ),
 | 
						|
                      ),
 | 
						|
                ),
 | 
						|
 | 
						|
 | 
						|
 | 
						|
              ],
 | 
						|
            ),
 | 
						|
          ),
 | 
						|
        ),
 | 
						|
      ),
 | 
						|
    );
 | 
						|
  }
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
 |