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.
doctor_app_flutter/lib/widgets/patients/patient-referral-item-widge...

313 lines
14 KiB
Dart

import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/card_with_bg_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class PatientReferralItemWidget extends StatelessWidget {
final String? referralStatus;
final int? referralStatusCode;
final String? patientName;
final int? patientGender;
final String? referredDate;
final String? referredTime;
final String? patientID;
final isSameBranch;
final bool? isReferral;
final bool? isReferralClinic;
final String? referralClinic;
final String? remark;
final String? nationality;
final String? nationalityFlag;
final String? doctorAvatar;
final String? referralDoctorName;
final String? clinicDescription;
final Widget? infoIcon;
PatientReferralItemWidget(
{this.referralStatus,
this.referralStatusCode,
this.patientName,
this.patientGender,
this.referredDate,
this.referredTime,
this.patientID,
this.isSameBranch,
this.isReferral,
this.remark,
this.nationality,
this.nationalityFlag,
this.doctorAvatar,
this.referralDoctorName,
this.clinicDescription,
this.infoIcon,
this.isReferralClinic = false,
this.referralClinic});
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
return Container(
margin: EdgeInsets.only(left: 16.0, right: 16.0, top: 8.0),
child: Column(
children: [
Container(
child: CardWithBgWidget(
bgColor: referralStatusCode == 1
? Color(0xffc4aa54)
: referralStatusCode == 46
? Colors.green[700]!
: Colors.red[700]!,
hasBorder: false,
widget: Container(
// padding: EdgeInsets.only(left: 20, right: 0, bottom: 0),
child: InkWell(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
AppText(
referralStatus != null ? referralStatus : "",
fontFamily: 'Poppins',
fontSize: 1.9 * SizeConfig.textMultiplier!,
fontWeight: FontWeight.w700,
color: referralStatusCode == 1
? Color(0xffc4aa54)
: referralStatusCode == 46
? Colors.green[700]
: Colors.red[700],
),
AppText(
referredDate!,
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
fontSize: 2.0 * SizeConfig.textMultiplier!,
color: Color(0XFF28353E),
)
],
),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Expanded(
child: AppText(
patientName!,
fontSize: SizeConfig.textMultiplier! * 2.2,
fontWeight: FontWeight.bold,
color: Colors.black,
fontFamily: 'Poppins',
),
),
SizedBox(
width: 4,
),
patientGender == 1
? Icon(
DoctorApp.male_2,
color: Colors.blue,
)
: Icon(
DoctorApp.female_1,
color: Colors.pink,
),
SizedBox(
width: 4,
),
AppText(
referredTime!,
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
fontSize: 1.8 * SizeConfig.textMultiplier!,
color: Color(0XFF575757),
)
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Expanded(
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
AppText(
TranslationBase.of(context).fileNumber,
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
fontSize: 1.7 * SizeConfig.textMultiplier!,
color: Color(0XFF575757),
),
AppText(
patientID!,
fontFamily: 'Poppins',
fontWeight: FontWeight.w700,
fontSize: 1.8 * SizeConfig.textMultiplier!,
color: Color(0XFF2E303A),
),
],
),
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
AppText(
isSameBranch
? TranslationBase.of(context).referredFrom
: TranslationBase.of(context).refClinic,
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
fontSize: 1.7 * SizeConfig.textMultiplier!,
color: Color(0XFF575757),
),
AppText(
!isReferralClinic!
? isSameBranch
? TranslationBase.of(context).sameBranch
: TranslationBase.of(context).otherBranch
: " " + referralClinic!,
fontFamily: 'Poppins',
fontWeight: FontWeight.w700,
fontSize: 1.8 * SizeConfig.textMultiplier,
color: Color(0XFF2E303A),
),
],
),
],
),
),
Row(
children: [
AppText(
nationality != null ? nationality! : "",
fontWeight: FontWeight.bold,
color: Color(0xFF2E303A),
fontSize: 1.4 * SizeConfig.textMultiplier,
),
nationalityFlag != null
? ClipRRect(
borderRadius: BorderRadius.circular(20.0),
child: Image.network(
nationalityFlag!,
height: 25,
width: 30,
errorBuilder: (BuildContext context, Object exception, StackTrace? stackTrace) {
return Text('No Image');
},
))
: SizedBox()
],
)
],
),
Row(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppText(
TranslationBase.of(context).remarks ?? "" + " : ",
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
fontSize: 1.7 * SizeConfig.textMultiplier!,
color: Color(0XFF575757),
),
Expanded(
child: AppText(
remark ?? "",
fontFamily: 'Poppins',
fontWeight: FontWeight.w700,
fontSize: 1.8 * SizeConfig.textMultiplier!,
color: Color(0XFF2E303A),
maxLines: 1,
),
),
],
),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
margin: EdgeInsets.only(left: 10, right: 0),
child: Image.asset(
isReferral!
? 'assets/images/patient/ic_ref_arrow_up.png'
: 'assets/images/patient/ic_ref_arrow_left.png',
height: 50,
width: 30,
),
),
Container(
margin: EdgeInsets.only(left: 0, top: 25, right: 0, bottom: 0),
padding: EdgeInsets.only(left: 4.0, right: 4.0),
child: Container(
width: 40,
height: 40,
child: doctorAvatar != null
? ClipRRect(
borderRadius: BorderRadius.circular(20.0),
child: Image.network(
doctorAvatar!,
height: 25,
width: 30,
errorBuilder: (BuildContext context, Object exception, StackTrace? stackTrace) {
return Text('No Image');
},
))
: Container(
child: Image.asset(
patientGender == 1
? 'assets/images/male_avatar.png'
: 'assets/images/female_avatar.png',
fit: BoxFit.cover,
),
),
),
),
Expanded(
flex: 4,
child: Container(
margin: EdgeInsets.only(left: 10, top: 25, right: 10, bottom: 0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppText(
referralDoctorName!,
fontFamily: 'Poppins',
fontWeight: FontWeight.w800,
fontSize: 1.7 * SizeConfig.textMultiplier!,
color: Colors.black,
),
if (clinicDescription != null)
AppText(
clinicDescription!,
fontFamily: 'Poppins',
fontWeight: FontWeight.w700,
fontSize: 1.4 * SizeConfig.textMultiplier!,
color: Color(0XFF2E303A),
),
],
),
),
),
],
),
Container(width: double.infinity, alignment: Alignment.centerRight, child: infoIcon ?? Container())
],
),
// onTap: onTap,
)),
),
),
],
),
);
}
}