|
|
|
|
import 'package:doctor_app_flutter/config/size_config.dart';
|
|
|
|
|
import 'package:doctor_app_flutter/icons_app/doctor_app_icons.dart';
|
|
|
|
|
import 'package:doctor_app_flutter/models/patient/my_referral/PendingReferral.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:font_awesome_flutter/font_awesome_flutter.dart';
|
|
|
|
|
|
|
|
|
|
class PatientReferralItemWidget extends StatelessWidget {
|
|
|
|
|
final String patientName;
|
|
|
|
|
final String patientID;
|
|
|
|
|
final String referralStatus;
|
|
|
|
|
final isReferredTo;
|
|
|
|
|
final isSameBranch;
|
|
|
|
|
final String referralDoctorName;
|
|
|
|
|
final String clinicDescription;
|
|
|
|
|
final String remark;
|
|
|
|
|
final String referredOn;
|
|
|
|
|
final String answerFromTarget;
|
|
|
|
|
final Widget infoIcon;
|
|
|
|
|
final PendingReferral patientInfo;
|
|
|
|
|
|
|
|
|
|
PatientReferralItemWidget(
|
|
|
|
|
this.patientID, {
|
|
|
|
|
this.patientName,
|
|
|
|
|
this.referralStatus,
|
|
|
|
|
this.isReferredTo = false,
|
|
|
|
|
this.isSameBranch,
|
|
|
|
|
this.referralDoctorName,
|
|
|
|
|
this.clinicDescription,
|
|
|
|
|
this.remark,
|
|
|
|
|
this.referredOn,
|
|
|
|
|
this.answerFromTarget,
|
|
|
|
|
this.infoIcon,
|
|
|
|
|
this.patientInfo,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
return Container(
|
|
|
|
|
margin: EdgeInsets.only(left: 16.0, right: 16.0, top: 8.0),
|
|
|
|
|
child: Column(
|
|
|
|
|
children: [
|
|
|
|
|
// TODO should be removed by mousa
|
|
|
|
|
// Row(
|
|
|
|
|
// children: [
|
|
|
|
|
// Expanded(
|
|
|
|
|
// child: Column(
|
|
|
|
|
// crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
// children: <Widget>[
|
|
|
|
|
// if (referralStatus != null)
|
|
|
|
|
// Row(
|
|
|
|
|
// children: [
|
|
|
|
|
// AppText(
|
|
|
|
|
// TranslationBase.of(context).referralStatus,
|
|
|
|
|
// color: Colors.grey,
|
|
|
|
|
// fontWeight: FontWeight.bold,
|
|
|
|
|
// fontSize: 12,
|
|
|
|
|
// ),
|
|
|
|
|
// Container(
|
|
|
|
|
// color: Color(0xFF4BA821),
|
|
|
|
|
// padding: EdgeInsets.all(4),
|
|
|
|
|
// child: AppText(
|
|
|
|
|
// referralStatus
|
|
|
|
|
// /*referralStatus == "46"
|
|
|
|
|
// ? TranslationBase.of(context).approved
|
|
|
|
|
// : TranslationBase.of(context).rejected*/
|
|
|
|
|
// ,
|
|
|
|
|
// color: Colors.white,
|
|
|
|
|
// fontWeight: FontWeight.bold,
|
|
|
|
|
// fontSize: 12,
|
|
|
|
|
// ),
|
|
|
|
|
// ),
|
|
|
|
|
// ],
|
|
|
|
|
// ),
|
|
|
|
|
// SizedBox(
|
|
|
|
|
// height: 8,
|
|
|
|
|
// ),
|
|
|
|
|
// Row(
|
|
|
|
|
// children: [
|
|
|
|
|
// AppText(
|
|
|
|
|
// isReferredTo
|
|
|
|
|
// ? "${TranslationBase.of(context).referTo}: "
|
|
|
|
|
// : "${TranslationBase.of(context).referredFrom}: ",
|
|
|
|
|
// color: Colors.grey,
|
|
|
|
|
// fontWeight: FontWeight.bold,
|
|
|
|
|
// fontSize: 12,
|
|
|
|
|
// ),
|
|
|
|
|
// AppText(
|
|
|
|
|
// isSameBranch
|
|
|
|
|
// ? TranslationBase.of(context).sameBranch
|
|
|
|
|
// : TranslationBase.of(context).otherBranch,
|
|
|
|
|
// color: Colors.black,
|
|
|
|
|
// fontWeight: FontWeight.bold,
|
|
|
|
|
// fontSize: 12,
|
|
|
|
|
// ),
|
|
|
|
|
// ],
|
|
|
|
|
// ),
|
|
|
|
|
// SizedBox(
|
|
|
|
|
// height: 8,
|
|
|
|
|
// ),
|
|
|
|
|
// Row(
|
|
|
|
|
// crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
// children: [
|
|
|
|
|
// AppText(
|
|
|
|
|
// "${TranslationBase.of(context).referralDoctor} : ",
|
|
|
|
|
// color: Colors.grey,
|
|
|
|
|
// fontWeight: FontWeight.bold,
|
|
|
|
|
// fontSize: 12,
|
|
|
|
|
// ),
|
|
|
|
|
// Expanded(
|
|
|
|
|
// child: AppText(
|
|
|
|
|
// referralDoctorName != null
|
|
|
|
|
// ? "${TranslationBase.of(context).dr} $referralDoctorName"
|
|
|
|
|
// : "-",
|
|
|
|
|
// color: Colors.black,
|
|
|
|
|
// fontWeight: FontWeight.bold,
|
|
|
|
|
// fontSize: 12,
|
|
|
|
|
// ),
|
|
|
|
|
// ),
|
|
|
|
|
// ],
|
|
|
|
|
// ),
|
|
|
|
|
// SizedBox(
|
|
|
|
|
// height: 8,
|
|
|
|
|
// ),
|
|
|
|
|
// if (clinicDescription != null)
|
|
|
|
|
// Row(
|
|
|
|
|
// children: [
|
|
|
|
|
// AppText(
|
|
|
|
|
// "${TranslationBase.of(context).clinic}: ",
|
|
|
|
|
// color: Colors.grey,
|
|
|
|
|
// fontWeight: FontWeight.bold,
|
|
|
|
|
// fontSize: 12,
|
|
|
|
|
// ),
|
|
|
|
|
// AppText(
|
|
|
|
|
// clinicDescription,
|
|
|
|
|
// color: Colors.black,
|
|
|
|
|
// fontWeight: FontWeight.bold,
|
|
|
|
|
// fontSize: 12,
|
|
|
|
|
// ),
|
|
|
|
|
// ],
|
|
|
|
|
// ),
|
|
|
|
|
// SizedBox(
|
|
|
|
|
// height: 8,
|
|
|
|
|
// ),
|
|
|
|
|
// Row(
|
|
|
|
|
// children: [
|
|
|
|
|
// AppText(
|
|
|
|
|
// "${TranslationBase.of(context).patientID}: ",
|
|
|
|
|
// color: Colors.grey,
|
|
|
|
|
// fontWeight: FontWeight.bold,
|
|
|
|
|
// fontSize: 12,
|
|
|
|
|
// ),
|
|
|
|
|
// AppText(
|
|
|
|
|
// patientID ?? '-',
|
|
|
|
|
// color: Colors.black,
|
|
|
|
|
// fontWeight: FontWeight.bold,
|
|
|
|
|
// fontSize: 12,
|
|
|
|
|
// ),
|
|
|
|
|
// ],
|
|
|
|
|
// ),
|
|
|
|
|
// SizedBox(
|
|
|
|
|
// height: 8,
|
|
|
|
|
// ),
|
|
|
|
|
// Row(
|
|
|
|
|
// children: [
|
|
|
|
|
// AppText(
|
|
|
|
|
// "${TranslationBase.of(context).patientName}: ",
|
|
|
|
|
// color: Colors.grey,
|
|
|
|
|
// fontWeight: FontWeight.bold,
|
|
|
|
|
// fontSize: 12,
|
|
|
|
|
// ),
|
|
|
|
|
// AppText(
|
|
|
|
|
// patientName ?? '-',
|
|
|
|
|
// color: Colors.black,
|
|
|
|
|
// fontWeight: FontWeight.bold,
|
|
|
|
|
// fontSize: 12,
|
|
|
|
|
// ),
|
|
|
|
|
// ],
|
|
|
|
|
// ),
|
|
|
|
|
// SizedBox(
|
|
|
|
|
// height: 8,
|
|
|
|
|
// ),
|
|
|
|
|
// Row(
|
|
|
|
|
// crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
|
|
// children: [
|
|
|
|
|
// AppText(
|
|
|
|
|
// TranslationBase.of(context).referralRemark,
|
|
|
|
|
// color: Colors.grey,
|
|
|
|
|
// fontWeight: FontWeight.bold,
|
|
|
|
|
// fontSize: 12,
|
|
|
|
|
// ),
|
|
|
|
|
// Expanded(
|
|
|
|
|
// child: AppText(
|
|
|
|
|
// remark,
|
|
|
|
|
// color: Colors.black,
|
|
|
|
|
// fontWeight: FontWeight.bold,
|
|
|
|
|
// fontSize: 12,
|
|
|
|
|
// ),
|
|
|
|
|
// ),
|
|
|
|
|
// ],
|
|
|
|
|
// ),
|
|
|
|
|
// SizedBox(
|
|
|
|
|
// height: 8,
|
|
|
|
|
// ),
|
|
|
|
|
// Row(
|
|
|
|
|
// children: [
|
|
|
|
|
// AppText(
|
|
|
|
|
// TranslationBase.of(context).referredOn,
|
|
|
|
|
// color: Colors.grey,
|
|
|
|
|
// fontWeight: FontWeight.bold,
|
|
|
|
|
// fontSize: 12,
|
|
|
|
|
// ),
|
|
|
|
|
// AppText(
|
|
|
|
|
// referredOn ?? '-',
|
|
|
|
|
// color: Colors.black,
|
|
|
|
|
// fontWeight: FontWeight.bold,
|
|
|
|
|
// fontSize: 12,
|
|
|
|
|
// ),
|
|
|
|
|
// ],
|
|
|
|
|
// ),
|
|
|
|
|
// if (answerFromTarget != null)
|
|
|
|
|
// SizedBox(
|
|
|
|
|
// height: 8,
|
|
|
|
|
// ),
|
|
|
|
|
// if (answerFromTarget != null)
|
|
|
|
|
// Row(
|
|
|
|
|
// children: [
|
|
|
|
|
// AppText(
|
|
|
|
|
// TranslationBase.of(context).referralResponse,
|
|
|
|
|
// color: Colors.grey,
|
|
|
|
|
// fontWeight: FontWeight.bold,
|
|
|
|
|
// fontSize: 12,
|
|
|
|
|
// ),
|
|
|
|
|
// AppText(
|
|
|
|
|
// answerFromTarget != "" ? answerFromTarget : '-',
|
|
|
|
|
// color: Colors.black,
|
|
|
|
|
// fontWeight: FontWeight.bold,
|
|
|
|
|
// fontSize: 12,
|
|
|
|
|
// ),
|
|
|
|
|
// ],
|
|
|
|
|
// ),
|
|
|
|
|
// SizedBox(
|
|
|
|
|
// height: 16,
|
|
|
|
|
// ),
|
|
|
|
|
// ],
|
|
|
|
|
// ),
|
|
|
|
|
// ),
|
|
|
|
|
// if (infoIcon != null) infoIcon,
|
|
|
|
|
// ],
|
|
|
|
|
// ),
|
|
|
|
|
// const Divider(
|
|
|
|
|
// color: Color(0xffCCCCCC),
|
|
|
|
|
// height: 1,
|
|
|
|
|
// thickness: 1,
|
|
|
|
|
// indent: 0,
|
|
|
|
|
// endIndent: 0,
|
|
|
|
|
// ),
|
|
|
|
|
// SizedBox(
|
|
|
|
|
// height: 8,
|
|
|
|
|
// ),
|
|
|
|
|
Container(
|
|
|
|
|
child: CardWithBgWidget(
|
|
|
|
|
bgColor: referralStatus != null
|
|
|
|
|
? referralStatus == 'Pending'
|
|
|
|
|
? Color(0xffc4aa54)
|
|
|
|
|
: Colors.red[800]
|
|
|
|
|
: Colors.grey[500],
|
|
|
|
|
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: [
|
|
|
|
|
RichText(
|
|
|
|
|
text: new TextSpan(
|
|
|
|
|
style: new TextStyle(
|
|
|
|
|
fontSize: 2.0 * SizeConfig.textMultiplier,
|
|
|
|
|
color: Colors.black),
|
|
|
|
|
children: <TextSpan>[
|
|
|
|
|
new TextSpan(
|
|
|
|
|
text: referralStatus != null
|
|
|
|
|
? referralStatus
|
|
|
|
|
: "",
|
|
|
|
|
style: TextStyle(
|
|
|
|
|
color: referralStatus != null
|
|
|
|
|
? referralStatus == 'Pending'
|
|
|
|
|
? Color(0xffc4aa54)
|
|
|
|
|
: referralStatus == 'Accepted'
|
|
|
|
|
? Colors.green[700]
|
|
|
|
|
: Colors.red[700]
|
|
|
|
|
: Colors.grey[500],
|
|
|
|
|
fontWeight: FontWeight.w700,
|
|
|
|
|
fontFamily: 'Poppins',
|
|
|
|
|
fontSize: 2.0 * SizeConfig.textMultiplier)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
//TODO :ask backend to return in the standard format
|
|
|
|
|
AppText(
|
|
|
|
|
referredOn,
|
|
|
|
|
fontFamily: 'Poppins',
|
|
|
|
|
fontWeight: FontWeight.w600,
|
|
|
|
|
fontSize: 2.1 * SizeConfig.textMultiplier,
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
AppText(
|
|
|
|
|
patientInfo.patientName,
|
|
|
|
|
fontSize: SizeConfig.textMultiplier * 2.5,
|
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
|
backGroundcolor: Colors.white,
|
|
|
|
|
fontFamily: 'Poppins',
|
|
|
|
|
),
|
|
|
|
|
SizedBox(
|
|
|
|
|
width: 4,
|
|
|
|
|
),
|
|
|
|
|
/*patient.gender*/1 == 1
|
|
|
|
|
? Icon(
|
|
|
|
|
DoctorApp.male_2,
|
|
|
|
|
color: Colors.blue,
|
|
|
|
|
)
|
|
|
|
|
: Icon(
|
|
|
|
|
DoctorApp.female_1,
|
|
|
|
|
color: Colors.pink,
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
SizedBox(
|
|
|
|
|
width: 10,
|
|
|
|
|
),
|
|
|
|
|
Row(
|
|
|
|
|
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
|
|
children: [
|
|
|
|
|
Column(
|
|
|
|
|
children: [
|
|
|
|
|
RichText(
|
|
|
|
|
text: new TextSpan(
|
|
|
|
|
style: new TextStyle(
|
|
|
|
|
fontSize: 2.0 * SizeConfig.textMultiplier,
|
|
|
|
|
color: Colors.black),
|
|
|
|
|
children: <TextSpan>[
|
|
|
|
|
new TextSpan(
|
|
|
|
|
text: TranslationBase.of(context).fileNumber,
|
|
|
|
|
style: TextStyle(
|
|
|
|
|
fontSize: 14, fontFamily: 'Poppins')),
|
|
|
|
|
new TextSpan(
|
|
|
|
|
text: patientInfo.patientID.toString(),
|
|
|
|
|
style: TextStyle(
|
|
|
|
|
fontWeight: FontWeight.w700,
|
|
|
|
|
fontFamily: 'Poppins',
|
|
|
|
|
fontSize: 15)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
Container(
|
|
|
|
|
child: RichText(
|
|
|
|
|
text: new TextSpan(
|
|
|
|
|
style: new TextStyle(
|
|
|
|
|
fontSize: 2.0 * SizeConfig.textMultiplier,
|
|
|
|
|
color: Colors.black),
|
|
|
|
|
children: <TextSpan>[
|
|
|
|
|
new TextSpan(
|
|
|
|
|
text: TranslationBase.of(context).referredFrom,
|
|
|
|
|
style: TextStyle(
|
|
|
|
|
fontSize: 14, fontFamily: 'Poppins')),
|
|
|
|
|
new TextSpan(
|
|
|
|
|
text: isSameBranch
|
|
|
|
|
? TranslationBase.of(context).sameBranch
|
|
|
|
|
: TranslationBase.of(context).otherBranch,
|
|
|
|
|
style: TextStyle(
|
|
|
|
|
fontWeight: FontWeight.w700,
|
|
|
|
|
fontFamily: 'Poppins',
|
|
|
|
|
fontSize: 15)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
Row(
|
|
|
|
|
children: [
|
|
|
|
|
AppText(
|
|
|
|
|
/*patient.nationalityName ??
|
|
|
|
|
patient.nationality*/ "Saudi",
|
|
|
|
|
fontWeight: FontWeight.bold,
|
|
|
|
|
fontSize: 12,
|
|
|
|
|
),
|
|
|
|
|
/* patient.nationality != null
|
|
|
|
|
? ClipRRect(
|
|
|
|
|
borderRadius:
|
|
|
|
|
BorderRadius
|
|
|
|
|
.circular(
|
|
|
|
|
20.0),
|
|
|
|
|
child: Image.network(
|
|
|
|
|
patient
|
|
|
|
|
.nationalityFlagURL,
|
|
|
|
|
height: 25,
|
|
|
|
|
width: 30,
|
|
|
|
|
errorBuilder:
|
|
|
|
|
(BuildContext
|
|
|
|
|
context,
|
|
|
|
|
Object
|
|
|
|
|
exception,
|
|
|
|
|
StackTrace
|
|
|
|
|
stackTrace) {
|
|
|
|
|
return Text(
|
|
|
|
|
'No Image');
|
|
|
|
|
},
|
|
|
|
|
))*/
|
|
|
|
|
/*:*/ SizedBox()
|
|
|
|
|
],
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
Container(
|
|
|
|
|
child: RichText(
|
|
|
|
|
text: new TextSpan(
|
|
|
|
|
style: new TextStyle(
|
|
|
|
|
fontSize: 2.0 * SizeConfig.textMultiplier,
|
|
|
|
|
color: Colors.black),
|
|
|
|
|
children: <TextSpan>[
|
|
|
|
|
new TextSpan(
|
|
|
|
|
text:
|
|
|
|
|
TranslationBase.of(context).remarks + " : ",
|
|
|
|
|
style: TextStyle(
|
|
|
|
|
fontSize: 14, fontFamily: 'Poppins')),
|
|
|
|
|
new TextSpan(
|
|
|
|
|
text: patientInfo.remarksFromSource,
|
|
|
|
|
style: TextStyle(
|
|
|
|
|
fontWeight: FontWeight.w700,
|
|
|
|
|
fontFamily: 'Poppins',
|
|
|
|
|
fontSize: 15)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
SizedBox(
|
|
|
|
|
height: 20,
|
|
|
|
|
),
|
|
|
|
|
Column(
|
|
|
|
|
children: [
|
|
|
|
|
RichText(
|
|
|
|
|
text: TextSpan(
|
|
|
|
|
style: TextStyle(
|
|
|
|
|
fontSize: 2.0 * SizeConfig.textMultiplier,
|
|
|
|
|
color: Colors.black),
|
|
|
|
|
children: <TextSpan>[
|
|
|
|
|
TextSpan(
|
|
|
|
|
text: TranslationBase.of(context)
|
|
|
|
|
.referralDoctor +
|
|
|
|
|
" : ",
|
|
|
|
|
style: TextStyle(
|
|
|
|
|
fontSize: 14, fontFamily: 'Poppins')),
|
|
|
|
|
TextSpan(
|
|
|
|
|
text: referralDoctorName,
|
|
|
|
|
style: TextStyle(
|
|
|
|
|
fontWeight: FontWeight.w700,
|
|
|
|
|
fontFamily: 'Poppins',
|
|
|
|
|
fontSize: 15)),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
)
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
Container(
|
|
|
|
|
width: double.infinity,
|
|
|
|
|
alignment: Alignment.centerRight,
|
|
|
|
|
child: Icon(FontAwesomeIcons.arrowRight,
|
|
|
|
|
size: 25, color: Colors.black))
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
// onTap: onTap,
|
|
|
|
|
)),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
),
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|