Insurance Approval fixes

merge-requests/390/head
haroon amjad 3 years ago
parent 5396138962
commit aadcfdc7bc

@ -14,6 +14,7 @@ class RequestInsuranceApprovalModel {
int patientType; int patientType;
int eXuldAPPNO; int eXuldAPPNO;
int projectID; int projectID;
int appointmentNo;
RequestInsuranceApprovalModel( RequestInsuranceApprovalModel(
{this.versionID, {this.versionID,
@ -30,7 +31,8 @@ class RequestInsuranceApprovalModel {
this.patientTypeID, this.patientTypeID,
this.patientType, this.patientType,
this.eXuldAPPNO, this.eXuldAPPNO,
this.projectID}); this.projectID,
this.appointmentNo});
RequestInsuranceApprovalModel.fromJson(Map<String, dynamic> json) { RequestInsuranceApprovalModel.fromJson(Map<String, dynamic> json) {
versionID = json['VersionID']; versionID = json['VersionID'];
@ -48,6 +50,7 @@ class RequestInsuranceApprovalModel {
patientType = json['PatientType']; patientType = json['PatientType'];
eXuldAPPNO = json['EXuldAPPNO']; eXuldAPPNO = json['EXuldAPPNO'];
projectID = json['ProjectID']; projectID = json['ProjectID'];
appointmentNo = json['AppointmentNo'];
} }
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
@ -67,6 +70,7 @@ class RequestInsuranceApprovalModel {
data['PatientType'] = this.patientType; data['PatientType'] = this.patientType;
data['EXuldAPPNO'] = this.eXuldAPPNO; data['EXuldAPPNO'] = this.eXuldAPPNO;
data['ProjectID'] = this.projectID; data['ProjectID'] = this.projectID;
data['AppointmentNo'] = this.appointmentNo;
return data; return data;
} }
} }

@ -216,7 +216,7 @@ class InsuranceApprovalModel {
eApprovalRemarks = json['EApprovalRemarks']; eApprovalRemarks = json['EApprovalRemarks'];
isEmailSentOnDelayApproval = json['IsEmailSentOnDelayApproval']; isEmailSentOnDelayApproval = json['IsEmailSentOnDelayApproval'];
eAuthorizationID = json['EAuthorizationID']; eAuthorizationID = json['EAuthorizationID'];
if (json['ApporvalDetails'] != null) { if (json['ApporvalDetails'] != null && json['ApporvalDetails'].length != 0) {
apporvalDetails = InsuranceApprovalDetails.fromJson(json['ApporvalDetails'][0]); apporvalDetails = InsuranceApprovalDetails.fromJson(json['ApporvalDetails'][0]);
} }
approvalStatusDescption = json['ApprovalStatusDescption']; approvalStatusDescption = json['ApprovalStatusDescption'];
@ -239,7 +239,7 @@ class InsuranceApprovalModel {
projectName = json['ProjectName']; projectName = json['ProjectName'];
projectNameN = json['ProjectNameN']; projectNameN = json['ProjectNameN'];
qR = json['QR']; qR = json['QR'];
speciality = json['Speciality'].cast<String>(); if (json['Speciality'] != null) speciality = json['Speciality'].cast<String>();
strApprovalDate = json['StrApprovalDate']; strApprovalDate = json['StrApprovalDate'];
strExpiryDate = json['StrExpiryDate']; strExpiryDate = json['StrExpiryDate'];
strSubmitDate = json['StrSubmitDate']; strSubmitDate = json['StrSubmitDate'];

@ -67,21 +67,19 @@ class InsuranceCardService extends BaseService {
Future getInsuranceApproval({int appointmentNo}) async { Future getInsuranceApproval({int appointmentNo}) async {
hasError = false; hasError = false;
// _cardList.clear();
if (appointmentNo != null) { if (appointmentNo != null) {
// _requestInsuranceApprovalModel.appointmentNo = appointmentNo; _requestInsuranceApprovalModel.appointmentNo = appointmentNo;
_requestInsuranceApprovalModel.eXuldAPPNO = null; _requestInsuranceApprovalModel.eXuldAPPNO = 0;
_requestInsuranceApprovalModel.projectID = null; _requestInsuranceApprovalModel.projectID = 0;
} else { } else {
// _requestInsuranceApprovalModel.appointmentNo = null; _requestInsuranceApprovalModel.appointmentNo = 0;
_requestInsuranceApprovalModel.eXuldAPPNO = 0; _requestInsuranceApprovalModel.eXuldAPPNO = 0;
_requestInsuranceApprovalModel.projectID = 0; _requestInsuranceApprovalModel.projectID = 0;
} }
_insuranceApproval.clear();
_insuranceApproval.length = 0;
await baseAppClient.post(GET_PAtIENTS_INSURANCE_APPROVALS, onSuccess: (dynamic response, int statusCode) { 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) { response['HIS_Approval_List'].forEach((item) {
_insuranceApproval.add(InsuranceApprovalModel.fromJson(item)); _insuranceApproval.add(InsuranceApprovalModel.fromJson(item));
}); });

@ -35,13 +35,13 @@ class ArrivedButtons {
}, },
{ {
"title": TranslationBase.of(AppGlobal.context).insuranceApproval, "title": TranslationBase.of(AppGlobal.context).insuranceApproval,
"subtitle": TranslationBase.of(AppGlobal.context).insuranceSubtitle, "subtitle": TranslationBase.of(AppGlobal.context).insuranceApprovalSubtitle,
"icon": 'insurance_approval.svg', "icon": 'insurance_approval.svg',
"caller": "Insurance", "caller": "Insurance",
}, },
{ {
"title": TranslationBase.of(AppGlobal.context).askDoctor, "title": TranslationBase.of(AppGlobal.context).askDoctor,
"subtitle": TranslationBase.of(AppGlobal.context).askYourSubtitle, "subtitle": TranslationBase.of(AppGlobal.context).service,
"icon": 'ask_doctor.svg', "icon": 'ask_doctor.svg',
"caller": "askDoc", "caller": "askDoc",
}, },

@ -32,7 +32,9 @@ class _InsuranceApprovalState extends State<InsuranceApproval> {
onModelReady: widget.appointmentNo != null ? (model) => model.getInsuranceApproval(appointmentNo: widget.appointmentNo) : (model) => model.getInsuranceApproval(), onModelReady: widget.appointmentNo != null ? (model) => model.getInsuranceApproval(appointmentNo: widget.appointmentNo) : (model) => model.getInsuranceApproval(),
builder: (BuildContext context, InsuranceViewModel model, Widget child) => AppScaffold( builder: (BuildContext context, InsuranceViewModel model, Widget child) => AppScaffold(
isShowAppBar: true, isShowAppBar: true,
showNewAppBar: true,
baseViewModel: model, baseViewModel: model,
showNewAppBarTitle: true,
appBarTitle: TranslationBase.of(context).approvals, appBarTitle: TranslationBase.of(context).approvals,
description: TranslationBase.of(context).infoApprovals, description: TranslationBase.of(context).infoApprovals,
infoList: TranslationBase.of(context).infoApprovalPoints, infoList: TranslationBase.of(context).infoApprovalPoints,

@ -113,7 +113,7 @@ class InsurancePage extends StatelessWidget {
style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, letterSpacing: -0.46), style: TextStyle(fontSize: 14, fontWeight: FontWeight.w600, letterSpacing: -0.46),
), ),
Text( 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), style: TextStyle(fontSize: 12, fontWeight: FontWeight.w600, letterSpacing: -0.46),
), ),
], ],

@ -7,7 +7,6 @@ import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/avatar/large_avatar.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/medical/doctor_card.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.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:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
@ -38,96 +37,15 @@ class MedicalReports extends StatelessWidget {
showNewAppBarTitle: true, showNewAppBarTitle: true,
backgroundColor: Color(0xffF7F7F7), backgroundColor: Color(0xffF7F7F7),
body: ListView.separated( body: ListView.separated(
physics: BouncingScrollPhysics(), physics: BouncingScrollPhysics(),
itemCount: model.appointHistoryList.length, itemCount: model.appointHistoryList.length,
padding: EdgeInsets.all(21), padding: EdgeInsets.all(21),
separatorBuilder: (context, index) => SizedBox(height: 14), separatorBuilder: (context, index) => SizedBox(height: 14),
itemBuilder: (context, index) { itemBuilder: (context, index) {
AppointmentHistory _appointmenHistory = model.appointHistoryList[index]; AppointmentHistory _appointmenHistory = model.appointHistoryList[index];
return InkWell(
return InkWell( onTap: () => confirmBox(model.appointHistoryList[index], model),
onTap: () => confirmBox(model.appointHistoryList[index], model), child: Container(
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: <Widget>[
LargeAvatar(
name: _appointmenHistory.doctorName,
url: _appointmenHistory.doctorImageURL,
width: 48,
height: 48,
),
SizedBox(width: 11),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: <Widget>[
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: <Widget>[
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(
decoration: BoxDecoration( decoration: BoxDecoration(
borderRadius: BorderRadius.all( borderRadius: BorderRadius.all(
Radius.circular(10.0), Radius.circular(10.0),
@ -135,74 +53,80 @@ class MedicalReports extends StatelessWidget {
boxShadow: [ boxShadow: [
BoxShadow( BoxShadow(
color: Color(0xff000000).withOpacity(.05), color: Color(0xff000000).withOpacity(.05),
//spreadRadius: 5,
blurRadius: 27, blurRadius: 27,
offset: Offset(0, -3), offset: Offset(0, -3),
), ),
], ],
color: Colors.white), color: Colors.white),
child: Row( child: Padding(
children: <Widget>[ padding: const EdgeInsets.only(left: 12, right: 12, top: 12, bottom: 12),
Container( child: Column(
margin: EdgeInsets.only(left: 5, right: 5), mainAxisSize: MainAxisSize.min,
child: LargeAvatar( crossAxisAlignment: CrossAxisAlignment.start,
width: 50, children: [
height: 50, Row(
name: model.appointHistoryList[index].doctorNameObj, mainAxisAlignment: MainAxisAlignment.spaceBetween,
url: model.appointHistoryList[index].doctorImageURL, children: [
), if ((_appointmenHistory.doctorName ?? _appointmenHistory.doctorNameObj) != null)
), Text(
Expanded( _appointmenHistory.doctorTitle.toString() + " " + (_appointmenHistory.doctorName ?? _appointmenHistory.doctorNameObj),
flex: 4, style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600, color: Color(0xff2E303A), letterSpacing: -0.64, height: 25 / 16),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
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,
), ),
], 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),
InkWell( Row(
onTap: () => confirmBox(model.appointHistoryList[index], model), mainAxisSize: MainAxisSize.min,
child: Container( children: <Widget>[
width: 120, LargeAvatar(
height: 50, name: _appointmenHistory.doctorName,
decoration: BoxDecoration( url: _appointmenHistory.doctorImageURL,
color: Colors.black54, width: 48,
border: Border.all(color: Colors.transparent, width: 2), height: 48,
shape: BoxShape.rectangle,
borderRadius: BorderRadius.all(
Radius.circular(8.0),
), ),
), SizedBox(width: 11),
child: Center( Expanded(
child: Texts( child: Column(
TranslationBase.of(context).requestReport, crossAxisAlignment: CrossAxisAlignment.start,
fontSize: 12, mainAxisSize: MainAxisSize.min,
color: Colors.white, children: <Widget>[
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: <Widget>[
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,
),
],
), ),
); ),
}), );
},
),
), ),
); );
} }

@ -237,7 +237,7 @@ class _TextsState extends State<Texts> {
letterSpacing: widget.variant == "overline" ? 1 : null, letterSpacing: widget.variant == "overline" ? 1 : null,
fontWeight: widget.fontWeight ?? _getFontWeight(), fontWeight: widget.fontWeight ?? _getFontWeight(),
fontFamily: fontFamily:
projectViewModel.isArabic ? 'Cairo' : 'WorkSans'), projectViewModel.isArabic ? 'Cairo' : 'Poppins'),
), ),
if (widget.readMore && text.length > widget.maxLength && hidden) if (widget.readMore && text.length > widget.maxLength && hidden)
Positioned( Positioned(

@ -49,8 +49,6 @@ class _AppExpandableNotifier extends State<AppExpandableNotifier> {
_subTitle = _subTitle.toLowerCase().capitalizeFirstofEach; _subTitle = _subTitle.toLowerCase().capitalizeFirstofEach;
_title = _title.toLowerCase().capitalizeFirstofEach; _title = _title.toLowerCase().capitalizeFirstofEach;
} }
print("_title:$_title");
print("_subTitle:$_subTitle");
return ExpandableNotifier( return ExpandableNotifier(
child: Column( child: Column(
children: <Widget>[ children: <Widget>[

Loading…
Cancel
Save