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.
HMG_Patient_App/lib/pages/medical/active_medications/ActiveMedicationsPage.dart

205 lines
10 KiB
Dart

import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/ActiveMedicationsViewModel.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/medical/active_medications/reminder_page.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/uitl/utils_new.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
class ActiveMedicationsPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return BaseView<ActiveMedicationsViewModel>(
onModelReady: (model) => model.getActiveMedication(),
builder: (_, model, w) => AppScaffold(
isShowAppBar: true,
showNewAppBar: true,
showNewAppBarTitle: true,
isShowDecPage: true,
baseViewModel: model,
appBarTitle: TranslationBase.of(context).activeMedications,
body: model.activePrescriptionReport.length > 0 ? Container(
child: ListView.builder(
itemCount: model.activePrescriptionReport.length,
itemBuilder: (context, index) => Container(
width: double.infinity,
child: Container(
margin: EdgeInsets.only(left: 16, right: 16, top: index == 0 ? 16 : 4, bottom: 4),
decoration: cardRadius(12),
child: Padding(
padding: const EdgeInsets.only(top: 12, bottom: 20, left: 20, right: 20),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
model.activePrescriptionReport[index].itemDescription,
style: TextStyle(
fontSize: 16,
letterSpacing: -0.64,
fontWeight: FontWeight.w600,
),
),
mHeight(10),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Row(
children: [
// Container(
// child: Container(
// child: Image.memory(
// Utils.dataFromBase64String(model.activePrescriptionReport[index].imageString),
// fit: BoxFit.cover,
// height: SizeConfig.imageSizeMultiplier * 19,
// width: SizeConfig.imageSizeMultiplier * 18,
// ),
// margin: EdgeInsets.zero,
// clipBehavior: Clip.antiAlias,
// decoration: cardRadius(2000),
// ),
// clipBehavior: Clip.antiAlias,
// decoration: containerColorRadiusBorderWidth(Colors.white, 200, Colors.grey[200], 1),
// ),
// mWidth(12),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
Text(
TranslationBase.of(context).expiryDateTitle + ": ",
style: TextStyle(
color: Colors.grey,
fontSize: 12,
letterSpacing: -0.4,
fontWeight: FontWeight.w600,
),
),
Text(
DateUtil.getDayMonthYearDateFormatted(model.activePrescriptionReport[index].orderDate),
style: TextStyle(
fontSize: 13,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
),
),
],
),
Row(
children: [
Text(
TranslationBase.of(context).frequency + ": ",
style: TextStyle(
color: Colors.grey,
fontSize: 12,
letterSpacing: -0.4,
fontWeight: FontWeight.w600,
),
),
Text(
model.activePrescriptionReport[index].frequency,
style: TextStyle(
fontSize: 13,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
),
),
],
),
Row(
children: [
Text(
TranslationBase.of(context).route + ": ",
style: TextStyle(
color: Colors.grey,
fontSize: 12,
letterSpacing: -0.4,
fontWeight: FontWeight.w600,
),
),
Text(
model.activePrescriptionReport[index].route,
style: TextStyle(
fontSize: 13,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
),
),
],
),
Row(
children: [
Text(
TranslationBase.of(context).dailyDoses + ": ",
style: TextStyle(
color: Colors.grey,
fontSize: 12,
letterSpacing: -0.4,
fontWeight: FontWeight.w600,
),
),
Text(
model.activePrescriptionReport[index].doseDailyQuantity.toString(),
style: TextStyle(
fontSize: 13,
letterSpacing: -0.48,
fontWeight: FontWeight.w600,
),
),
],
),
mHeight(12),
],
),
],
),
Container(
child: InkWell(
onTap: () {
Navigator.push(
context,
FadePage(
page: ReminderPage(
frequency: model.activePrescriptionReport[index].frequencyNumber,
days: model.activePrescriptionReport[index].days,
itemDescription: model.activePrescriptionReport[index].itemDescription,
),
),
);
},
child: Column(
children: [
Icon(
Icons.notifications_outlined,
color: Colors.red,
size: 28,
),
Texts(
TranslationBase.of(context).addReminder,
color: Colors.red,
fontSize: 11.0,
)
],
),
),
),
],
),
],
),
),
),
),
),
) : getNoDataWidget(context),
),
);
}
}