diff --git a/lib/screens/patients/profile/referral/my-referral-detail-screen.dart b/lib/screens/patients/profile/referral/my-referral-detail-screen.dart index 9a59747e..a0cb98b3 100644 --- a/lib/screens/patients/profile/referral/my-referral-detail-screen.dart +++ b/lib/screens/patients/profile/referral/my-referral-detail-screen.dart @@ -40,137 +40,146 @@ class MyReferralDetailScreen extends StatelessWidget { builder: (_, model, w) => AppScaffold( baseViewModel: model, appBarTitle: TranslationBase.of(context).referPatient, - body: model.patientArrivalList != null ? Column( - children: [ - Expanded( - child: SingleChildScrollView( - child: Container( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - ProfileWelcomeWidget( - AppText( - authProvider.selectedClinicName != null - ? authProvider.selectedClinicName - : authProvider.doctorProfile.clinicDescription, - fontSize: SizeConfig.textMultiplier * 1.7, - color: Colors.white, - textAlign: TextAlign.center, - ), - height: 100, - ), - SizedBox( - height: 16, - ), - Padding( - padding: const EdgeInsets.symmetric(horizontal: 16.0), - child: AppText( - TranslationBase.of(context).myReferralPatient, - color: Colors.black, - fontWeight: FontWeight.bold, - fontSize: 16, - ), - ), - PatientReferralItemWidget( - patientName: pendingReferral.patientName, - referralStatus: null, - isReferredTo: false, - isSameBranch: - pendingReferral.isReferralDoctorSameBranch, - referralDoctorName: - pendingReferral.referredByDoctorInfo, - clinicDescription: null, - remark: pendingReferral.remarksFromSource, - ), - SizedBox( - child: GridView.count( - childAspectRatio: 1.8, - crossAxisSpacing: 8, - mainAxisSpacing: 10, - controller: - new ScrollController(keepScrollOffset: false), - shrinkWrap: true, - padding: const EdgeInsets.all(4.0), - crossAxisCount: 2, + body: model.patientArrivalList != null + ? Column( + children: [ + Expanded( + child: SingleChildScrollView( + child: Container( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, children: [ - PatientProfileButton( - key: key, - // patient: patient, - // route: RADIOLOGY, - nameLine1: - TranslationBase.of(context).previewHealth, - nameLine2: - TranslationBase.of(context).summaryReport, - icon: 'radiology-1.png'), - PatientProfileButton( - key: key, - // patient: patient, - // route: LAB_ORDERS, - nameLine1: TranslationBase.of(context).lab, - nameLine2: TranslationBase.of(context).result, - icon: 'lab.png'), - PatientProfileButton( - key: key, - patient: model.patientArrivalList[0], - route: VITAL_SIGN_DETAILS /*PATIENT_VITAL_SIGN*/, - nameLine1: TranslationBase.of(context).vital, - nameLine2: TranslationBase.of(context).signs, - icon: 'heartbeat.png'), + ProfileWelcomeWidget( + AppText( + authProvider.selectedClinicName != null + ? authProvider.selectedClinicName + : authProvider + .doctorProfile.clinicDescription, + fontSize: SizeConfig.textMultiplier * 1.7, + color: Colors.white, + textAlign: TextAlign.center, + ), + height: 100, + ), + SizedBox( + height: 16, + ), + Padding( + padding: + const EdgeInsets.symmetric(horizontal: 16.0), + child: AppText( + TranslationBase.of(context).myReferralPatient, + color: Colors.black, + fontWeight: FontWeight.bold, + fontSize: 16, + ), + ), + PatientReferralItemWidget( + patientName: pendingReferral.patientName, + referralStatus: null, + isReferredTo: false, + isSameBranch: + pendingReferral.isReferralDoctorSameBranch, + referralDoctorName: + pendingReferral.referredByDoctorInfo, + clinicDescription: null, + remark: pendingReferral.remarksFromSource, + ), + SizedBox( + child: GridView.count( + childAspectRatio: 1.8, + crossAxisSpacing: 8, + mainAxisSpacing: 10, + controller: new ScrollController( + keepScrollOffset: false), + shrinkWrap: true, + padding: const EdgeInsets.all(4.0), + crossAxisCount: 2, + children: [ + PatientProfileButton( + key: key, + patient: model.patientArrivalList[0], + route: MEDICAL_FILE, + nameLine1: TranslationBase.of(context) + .previewHealth, + nameLine2: TranslationBase.of(context) + .summaryReport, + icon: 'radiology-1.png'), + PatientProfileButton( + key: key, + patient: model.patientArrivalList[0], + route: LAB_ORDERS, + nameLine1: + TranslationBase.of(context).lab, + nameLine2: + TranslationBase.of(context).result, + icon: 'lab.png'), + PatientProfileButton( + key: key, + patient: model.patientArrivalList[0], + route: + VITAL_SIGN_DETAILS /*PATIENT_VITAL_SIGN*/, + nameLine1: + TranslationBase.of(context).vital, + nameLine2: + TranslationBase.of(context).signs, + icon: 'heartbeat.png'), + ], + ), + ), ], ), ), - ], - ), - ), - ), - ), - Container( - margin: EdgeInsets.symmetric(horizontal: 16, vertical: 16), - child: Row( - children: [ - Expanded( - child: BorderedButton( - TranslationBase.of(context).accept, - backgroundColor: Color(0xFF4BA821), - textColor: Colors.white, - fontSize: 16, - hPadding: 8, - vPadding: 12, - handler: () { - model.responseReferral(pendingReferral, true); - }, ), ), - SizedBox( - height: 8, - ), - Expanded( - child: BorderedButton( - TranslationBase.of(context).reject, - backgroundColor: Color(0xFFB9382C), - textColor: Colors.white, - fontSize: 16, - hPadding: 8, - vPadding: 12, - handler: () { - model.responseReferral(pendingReferral, false); - }, + Container( + margin: EdgeInsets.symmetric(horizontal: 16, vertical: 16), + child: Row( + children: [ + Expanded( + child: BorderedButton( + TranslationBase.of(context).accept, + backgroundColor: Color(0xFF4BA821), + textColor: Colors.white, + fontSize: 16, + hPadding: 8, + vPadding: 12, + handler: () { + model.responseReferral(pendingReferral, true); + }, + ), + ), + SizedBox( + height: 8, + ), + Expanded( + child: BorderedButton( + TranslationBase.of(context).reject, + backgroundColor: Color(0xFFB9382C), + textColor: Colors.white, + fontSize: 16, + hPadding: 8, + vPadding: 12, + handler: () { + model.responseReferral(pendingReferral, false); + }, + ), + ), + ], ), ), ], + ) + : Container( + child: Center( + child: AppText( + TranslationBase.of(context).patientNoDetailErrMsg, + color: HexColor("#B8382B"), + fontWeight: FontWeight.bold, + fontSize: 16, + ), + ), ), - ), - ], - ) : Container( - child: Center( - child: AppText( - TranslationBase.of(context).patientNoDetailErrMsg, - color: HexColor("#B8382B"), - fontWeight: FontWeight.bold, - fontSize: 16, - ), - ), - ), ), ); } diff --git a/lib/widgets/patients/profile/patient_profile_widget.dart b/lib/widgets/patients/profile/patient_profile_widget.dart index 11f1572f..bab7cc84 100644 --- a/lib/widgets/patients/profile/patient_profile_widget.dart +++ b/lib/widgets/patients/profile/patient_profile_widget.dart @@ -18,6 +18,24 @@ import './profile_medical_info_widget.dart'; class PatientProfileWidget extends StatelessWidget { PatiantInformtion patient; + String getPatientAge(dynamic birthday){ + // https://leechy.dev/calculate-dates-diff-in-dart + DateTime birthDate = DateUtils.getDateTimeFromServerFormat(birthday); + final now = DateTime.now(); + int years = now.year - birthDate .year; + int months = now.month - birthDate.month; + int days = now.day - birthDate.day; + if (months < 0 || (months == 0 && days < 0)) { + years--; + months += (days < 0 ? 11 : 12); + } + if (days < 0) { + final monthAgo = new DateTime(now.year, now.month - 1, birthDate.day); + days = now.difference(monthAgo).inDays + 1; + } + return "$years Yr $months Mnth $days Day"; + } + @override Widget build(BuildContext context) { final routeArgs = ModalRoute.of(context).settings.arguments as Map; @@ -115,7 +133,7 @@ class PatientProfileWidget extends StatelessWidget { height: 4, ), AppText( - "${DateUtils.convertDateFromServerFormat(patient.dateofBirth, 'dd-MM-yyyy')} / ${patient.age}", + "${DateUtils.convertDateFromServerFormat(patient.dateofBirth, 'dd-MM-yyyy')} / ${getPatientAge(patient.dateofBirth)/*patient.age*/}", fontWeight: FontWeight.normal, fontSize: 1.6 * SizeConfig.textMultiplier, ),