From aadcfdc7bc94f780759f58b0c22bfdd6d41cb41c Mon Sep 17 00:00:00 2001 From: haroon amjad Date: Sun, 12 Sep 2021 14:02:00 +0300 Subject: [PATCH] Insurance Approval fixes --- .../ReauestInsuranceApprovalModel.dart | 6 +- .../model/insurance/insurance_approval.dart | 4 +- lib/core/service/insurance_service.dart | 14 +- .../MyAppointments/models/ArrivedButtons.dart | 4 +- .../insurance/insurance_approval_screen.dart | 2 + lib/pages/insurance/insurance_page.dart | 2 +- lib/pages/medical/reports/reports_page.dart | 220 ++++++------------ lib/widgets/data_display/text.dart | 2 +- .../others/app_expandable_notifier.dart | 2 - 9 files changed, 91 insertions(+), 165 deletions(-) diff --git a/lib/core/model/insurance/ReauestInsuranceApprovalModel.dart b/lib/core/model/insurance/ReauestInsuranceApprovalModel.dart index 26bf567a..3fa91ecf 100644 --- a/lib/core/model/insurance/ReauestInsuranceApprovalModel.dart +++ b/lib/core/model/insurance/ReauestInsuranceApprovalModel.dart @@ -14,6 +14,7 @@ class RequestInsuranceApprovalModel { int patientType; int eXuldAPPNO; int projectID; + int appointmentNo; RequestInsuranceApprovalModel( {this.versionID, @@ -30,7 +31,8 @@ class RequestInsuranceApprovalModel { this.patientTypeID, this.patientType, this.eXuldAPPNO, - this.projectID}); + this.projectID, + this.appointmentNo}); RequestInsuranceApprovalModel.fromJson(Map json) { versionID = json['VersionID']; @@ -48,6 +50,7 @@ class RequestInsuranceApprovalModel { patientType = json['PatientType']; eXuldAPPNO = json['EXuldAPPNO']; projectID = json['ProjectID']; + appointmentNo = json['AppointmentNo']; } Map toJson() { @@ -67,6 +70,7 @@ class RequestInsuranceApprovalModel { data['PatientType'] = this.patientType; data['EXuldAPPNO'] = this.eXuldAPPNO; data['ProjectID'] = this.projectID; + data['AppointmentNo'] = this.appointmentNo; return data; } } diff --git a/lib/core/model/insurance/insurance_approval.dart b/lib/core/model/insurance/insurance_approval.dart index 27911267..52100514 100644 --- a/lib/core/model/insurance/insurance_approval.dart +++ b/lib/core/model/insurance/insurance_approval.dart @@ -216,7 +216,7 @@ class InsuranceApprovalModel { eApprovalRemarks = json['EApprovalRemarks']; isEmailSentOnDelayApproval = json['IsEmailSentOnDelayApproval']; eAuthorizationID = json['EAuthorizationID']; - if (json['ApporvalDetails'] != null) { + if (json['ApporvalDetails'] != null && json['ApporvalDetails'].length != 0) { apporvalDetails = InsuranceApprovalDetails.fromJson(json['ApporvalDetails'][0]); } approvalStatusDescption = json['ApprovalStatusDescption']; @@ -239,7 +239,7 @@ class InsuranceApprovalModel { projectName = json['ProjectName']; projectNameN = json['ProjectNameN']; qR = json['QR']; - speciality = json['Speciality'].cast(); + if (json['Speciality'] != null) speciality = json['Speciality'].cast(); strApprovalDate = json['StrApprovalDate']; strExpiryDate = json['StrExpiryDate']; strSubmitDate = json['StrSubmitDate']; diff --git a/lib/core/service/insurance_service.dart b/lib/core/service/insurance_service.dart index 6eb1f415..5b78d053 100644 --- a/lib/core/service/insurance_service.dart +++ b/lib/core/service/insurance_service.dart @@ -67,21 +67,19 @@ class InsuranceCardService extends BaseService { Future getInsuranceApproval({int appointmentNo}) async { hasError = false; - // _cardList.clear(); if (appointmentNo != null) { - // _requestInsuranceApprovalModel.appointmentNo = appointmentNo; - _requestInsuranceApprovalModel.eXuldAPPNO = null; - _requestInsuranceApprovalModel.projectID = null; + _requestInsuranceApprovalModel.appointmentNo = appointmentNo; + _requestInsuranceApprovalModel.eXuldAPPNO = 0; + _requestInsuranceApprovalModel.projectID = 0; } else { - // _requestInsuranceApprovalModel.appointmentNo = null; + _requestInsuranceApprovalModel.appointmentNo = 0; _requestInsuranceApprovalModel.eXuldAPPNO = 0; _requestInsuranceApprovalModel.projectID = 0; } + _insuranceApproval.clear(); + _insuranceApproval.length = 0; await baseAppClient.post(GET_PAtIENTS_INSURANCE_APPROVALS, onSuccess: (dynamic response, int statusCode) { - print(response['HIS_Approval_List'].length); - _insuranceApproval.clear(); - _insuranceApproval.length = 0; response['HIS_Approval_List'].forEach((item) { _insuranceApproval.add(InsuranceApprovalModel.fromJson(item)); }); diff --git a/lib/pages/MyAppointments/models/ArrivedButtons.dart b/lib/pages/MyAppointments/models/ArrivedButtons.dart index 302c7211..e8856ddb 100644 --- a/lib/pages/MyAppointments/models/ArrivedButtons.dart +++ b/lib/pages/MyAppointments/models/ArrivedButtons.dart @@ -35,13 +35,13 @@ class ArrivedButtons { }, { "title": TranslationBase.of(AppGlobal.context).insuranceApproval, - "subtitle": TranslationBase.of(AppGlobal.context).insuranceSubtitle, + "subtitle": TranslationBase.of(AppGlobal.context).insuranceApprovalSubtitle, "icon": 'insurance_approval.svg', "caller": "Insurance", }, { "title": TranslationBase.of(AppGlobal.context).askDoctor, - "subtitle": TranslationBase.of(AppGlobal.context).askYourSubtitle, + "subtitle": TranslationBase.of(AppGlobal.context).service, "icon": 'ask_doctor.svg', "caller": "askDoc", }, diff --git a/lib/pages/insurance/insurance_approval_screen.dart b/lib/pages/insurance/insurance_approval_screen.dart index 606966eb..195b6060 100644 --- a/lib/pages/insurance/insurance_approval_screen.dart +++ b/lib/pages/insurance/insurance_approval_screen.dart @@ -32,7 +32,9 @@ class _InsuranceApprovalState extends State { onModelReady: widget.appointmentNo != null ? (model) => model.getInsuranceApproval(appointmentNo: widget.appointmentNo) : (model) => model.getInsuranceApproval(), builder: (BuildContext context, InsuranceViewModel model, Widget child) => AppScaffold( isShowAppBar: true, + showNewAppBar: true, baseViewModel: model, + showNewAppBarTitle: true, appBarTitle: TranslationBase.of(context).approvals, description: TranslationBase.of(context).infoApprovals, infoList: TranslationBase.of(context).infoApprovalPoints, diff --git a/lib/pages/insurance/insurance_page.dart b/lib/pages/insurance/insurance_page.dart index 7b740895..69115842 100644 --- a/lib/pages/insurance/insurance_page.dart +++ b/lib/pages/insurance/insurance_page.dart @@ -113,7 +113,7 @@ class InsurancePage extends StatelessWidget { style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, letterSpacing: -0.46), ), Text( - TranslationBase.of(context).fileno + ": " + model.getAllSharedRecordsByStatusResponse.getAllSharedRecordsByStatusList[index].patientID.toString(), + TranslationBase.of(context).fileno + ": " + model.getAllSharedRecordsByStatusResponse.getAllSharedRecordsByStatusList[index].responseID.toString(), style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, letterSpacing: -0.46), ), ], diff --git a/lib/pages/medical/reports/reports_page.dart b/lib/pages/medical/reports/reports_page.dart index 2ba14006..c7da70cf 100644 --- a/lib/pages/medical/reports/reports_page.dart +++ b/lib/pages/medical/reports/reports_page.dart @@ -7,7 +7,6 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/avatar/large_avatar.dart'; import 'package:diplomaticquarterapp/widgets/data_display/medical/doctor_card.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; -import 'package:diplomaticquarterapp/widgets/others/StarRating.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -38,96 +37,15 @@ class MedicalReports extends StatelessWidget { showNewAppBarTitle: true, backgroundColor: Color(0xffF7F7F7), body: ListView.separated( - physics: BouncingScrollPhysics(), - itemCount: model.appointHistoryList.length, - padding: EdgeInsets.all(21), - separatorBuilder: (context, index) => SizedBox(height: 14), - itemBuilder: (context, index) { - AppointmentHistory _appointmenHistory = model.appointHistoryList[index]; - - return InkWell( - onTap: () => confirmBox(model.appointHistoryList[index], model), - child: Container( - decoration: BoxDecoration( - borderRadius: BorderRadius.all( - Radius.circular(10.0), - ), - boxShadow: [ - BoxShadow( - color: Color(0xff000000).withOpacity(.05), - //spreadRadius: 5, - blurRadius: 27, - offset: Offset(0, -3), - ), - ], - color: Colors.white), - child: Padding( - padding: const EdgeInsets.only(left: 12, right: 12, top: 12, bottom: 12), - child: Column( - mainAxisSize: MainAxisSize.min, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - if ((_appointmenHistory.doctorName ?? _appointmenHistory.doctorNameObj) != null) - Text( - (_appointmenHistory.doctorName ?? _appointmenHistory.doctorNameObj), - style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.64, height: 25 / 16), - ), - Text( - DateUtil.formatDateToDate(_appointmenHistory.appointmentDate, projectViewModel.isArabic), - style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.48, height: 18 / 12), - ), - ], - ), - if ((_appointmenHistory.doctorName ?? _appointmenHistory.doctorNameObj) != null) SizedBox(height: 6), - Row( - mainAxisSize: MainAxisSize.min, - children: [ - LargeAvatar( - name: _appointmenHistory.doctorName, - url: _appointmenHistory.doctorImageURL, - width: 48, - height: 48, - ), - SizedBox(width: 11), - Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - mainAxisSize: MainAxisSize.min, - children: [ - if (_appointmenHistory.projectName != null) myRichText(TranslationBase.of(context).clinic + ":", _appointmenHistory.projectName, projectViewModel.isArabic), - if (_appointmenHistory.clinicName != null) myRichText(TranslationBase.of(context).hospital + ":", _appointmenHistory.clinicName, projectViewModel.isArabic), - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - mainAxisSize: MainAxisSize.max, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - RatingBar.readOnly( - initialRating: _appointmenHistory.actualDoctorRate.toDouble(), - size: 16.0, - filledColor: Color(0XFFD02127), - emptyColor: Color(0XFFD02127), - isHalfAllowed: true, - halfFilledIcon: Icons.star_half, - filledIcon: Icons.star, - emptyIcon: Icons.star_border, - ), - Icon(Icons.email, color: Color(0xff2B353E)) - ], - ), - ], - ), - ), - ], - ), - ], - ), - ), - ), - ); - Container( + physics: BouncingScrollPhysics(), + itemCount: model.appointHistoryList.length, + padding: EdgeInsets.all(21), + separatorBuilder: (context, index) => SizedBox(height: 14), + itemBuilder: (context, index) { + AppointmentHistory _appointmenHistory = model.appointHistoryList[index]; + return InkWell( + onTap: () => confirmBox(model.appointHistoryList[index], model), + child: Container( decoration: BoxDecoration( borderRadius: BorderRadius.all( Radius.circular(10.0), @@ -135,74 +53,80 @@ class MedicalReports extends StatelessWidget { boxShadow: [ BoxShadow( color: Color(0xff000000).withOpacity(.05), + //spreadRadius: 5, blurRadius: 27, offset: Offset(0, -3), ), ], color: Colors.white), - child: Row( - children: [ - Container( - margin: EdgeInsets.only(left: 5, right: 5), - child: LargeAvatar( - width: 50, - height: 50, - name: model.appointHistoryList[index].doctorNameObj, - url: model.appointHistoryList[index].doctorImageURL, - ), - ), - Expanded( - flex: 4, - child: Padding( - padding: const EdgeInsets.all(8.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - SizedBox( - height: 12, - ), - Texts(model.appointHistoryList[index].projectName), - Texts(model.appointHistoryList[index].clinicName), - Texts(projectViewModel.isArabic - ? DateUtil.getMonthDayYearDateFormattedAr(model.appointHistoryList[index].appointmentDate) - : DateUtil.getMonthDayYearDateFormatted(model.appointHistoryList[index].appointmentDate)), - StarRating(totalAverage: model.appointHistoryList[index].actualDoctorRate.toDouble(), forceStars: true), - SizedBox( - height: 12, + child: Padding( + padding: const EdgeInsets.only(left: 12, right: 12, top: 12, bottom: 12), + child: Column( + mainAxisSize: MainAxisSize.min, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + if ((_appointmenHistory.doctorName ?? _appointmenHistory.doctorNameObj) != null) + Text( + _appointmenHistory.doctorTitle.toString() + " " + (_appointmenHistory.doctorName ?? _appointmenHistory.doctorNameObj), + style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.64, height: 25 / 16), ), - ], - ), + Text( + DateUtil.formatDateToDate(_appointmenHistory.appointmentDate, projectViewModel.isArabic), + style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, color: Color(0xff2B353E), letterSpacing: -0.48, height: 18 / 12), + ), + ], ), - ), - InkWell( - onTap: () => confirmBox(model.appointHistoryList[index], model), - child: Container( - width: 120, - height: 50, - decoration: BoxDecoration( - color: Colors.black54, - border: Border.all(color: Colors.transparent, width: 2), - shape: BoxShape.rectangle, - borderRadius: BorderRadius.all( - Radius.circular(8.0), + if ((_appointmenHistory.doctorName ?? _appointmenHistory.doctorNameObj) != null) SizedBox(height: 6), + Row( + mainAxisSize: MainAxisSize.min, + children: [ + LargeAvatar( + name: _appointmenHistory.doctorName, + url: _appointmenHistory.doctorImageURL, + width: 48, + height: 48, ), - ), - child: Center( - child: Texts( - TranslationBase.of(context).requestReport, - fontSize: 12, - color: Colors.white, + SizedBox(width: 11), + Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + if (_appointmenHistory.projectName != null) myRichText(TranslationBase.of(context).clinic + ":", _appointmenHistory.projectName, projectViewModel.isArabic), + if (_appointmenHistory.clinicName != null) myRichText(TranslationBase.of(context).hospital + ":", _appointmenHistory.clinicName, projectViewModel.isArabic), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + mainAxisSize: MainAxisSize.max, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + RatingBar.readOnly( + initialRating: _appointmenHistory.actualDoctorRate.toDouble(), + size: 16.0, + filledColor: Color(0XFFD02127), + emptyColor: Color(0XFFD02127), + isHalfAllowed: true, + halfFilledIcon: Icons.star_half, + filledIcon: Icons.star, + emptyIcon: Icons.star_border, + ), + Icon(Icons.email, color: Color(0xff2B353E)) + ], + ), + ], + ), ), - ), + ], ), - ), - SizedBox( - width: 12, - ), - ], + ], + ), ), - ); - }), + ), + ); + }, + ), ), ); } diff --git a/lib/widgets/data_display/text.dart b/lib/widgets/data_display/text.dart index d759190e..4a00c9fe 100644 --- a/lib/widgets/data_display/text.dart +++ b/lib/widgets/data_display/text.dart @@ -237,7 +237,7 @@ class _TextsState extends State { letterSpacing: widget.variant == "overline" ? 1 : null, fontWeight: widget.fontWeight ?? _getFontWeight(), fontFamily: - projectViewModel.isArabic ? 'Cairo' : 'WorkSans'), + projectViewModel.isArabic ? 'Cairo' : 'Poppins'), ), if (widget.readMore && text.length > widget.maxLength && hidden) Positioned( diff --git a/lib/widgets/others/app_expandable_notifier.dart b/lib/widgets/others/app_expandable_notifier.dart index 0df1d9dc..042cad0c 100644 --- a/lib/widgets/others/app_expandable_notifier.dart +++ b/lib/widgets/others/app_expandable_notifier.dart @@ -49,8 +49,6 @@ class _AppExpandableNotifier extends State { _subTitle = _subTitle.toLowerCase().capitalizeFirstofEach; _title = _title.toLowerCase().capitalizeFirstofEach; } - print("_title:$_title"); - print("_subTitle:$_subTitle"); return ExpandableNotifier( child: Column( children: [