Merge branch 'fix-issues' into 'development'

Fix issues

See merge request Cloud_Solution/doctor_app_flutter!419
merge-requests/420/merge
Mohammad Aljammal 5 years ago
commit 7f7f7611f3

@ -43,6 +43,7 @@ class InsuranceApprovalModel {
int approvalNo; int approvalNo;
String approvalStatusDescption; String approvalStatusDescption;
int unUsedCount; int unUsedCount;
String doctorImage;
//String companyName; //String companyName;
String expiryDate; String expiryDate;
@ -75,7 +76,8 @@ class InsuranceApprovalModel {
this.expiryDate, this.expiryDate,
this.rceiptOn, this.rceiptOn,
this.approvalDetails, this.approvalDetails,
this.appointmentNo}); this.appointmentNo,
this.doctorImage});
InsuranceApprovalDetails x = InsuranceApprovalDetails(); InsuranceApprovalDetails x = InsuranceApprovalDetails();
@ -104,6 +106,7 @@ class InsuranceApprovalModel {
eXuldAPPNO = json['EXuldAPPNO']; eXuldAPPNO = json['EXuldAPPNO'];
projectID = json['ProjectID']; projectID = json['ProjectID'];
doctorName = json['DoctorName']; doctorName = json['DoctorName'];
doctorImage = json['DoctorImageURL'];
clinicName = json['ClinicName']; clinicName = json['ClinicName'];
approvalDetails = approvalDetails =
InsuranceApprovalDetails.fromJson(json['ApporvalDetails'][0]); InsuranceApprovalDetails.fromJson(json['ApporvalDetails'][0]);
@ -126,6 +129,8 @@ class InsuranceApprovalModel {
data['DeviceTypeID'] = this.deviceTypeID; data['DeviceTypeID'] = this.deviceTypeID;
data['PatientID'] = this.patientID; data['PatientID'] = this.patientID;
data['TokenID'] = this.tokenID; data['TokenID'] = this.tokenID;
data['DoctorImageURL'] = this.doctorImage;
data['PatientTypeID'] = this.patientTypeID; data['PatientTypeID'] = this.patientTypeID;
data['PatientType'] = this.patientType; data['PatientType'] = this.patientType;
if (appointmentNo == null) { if (appointmentNo == null) {

@ -1,13 +1,21 @@
import 'package:doctor_app_flutter/config/size_config.dart'; import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/viewModel/InsuranceViewModel.dart'; import 'package:doctor_app_flutter/core/viewModel/InsuranceViewModel.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/screens/patients/insurance_approvals_details.dart';
import 'package:doctor_app_flutter/util/date-utils.dart'; import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/large_avatar.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
import 'package:doctor_app_flutter/widgets/shared/Text.dart'; import 'package:doctor_app_flutter/widgets/shared/Text.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/doctor_card.dart';
import 'package:doctor_app_flutter/widgets/shared/doctor_card_insurance.dart';
import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../base/base_view.dart'; import '../base/base_view.dart';
@ -17,27 +25,32 @@ class InsuranceApprovalScreenNew extends StatefulWidget {
InsuranceApprovalScreenNew({this.appointmentNo}); InsuranceApprovalScreenNew({this.appointmentNo});
@override @override
_InsuranceApprovalScreenNewState createState() => _InsuranceApprovalScreenNewState(); _InsuranceApprovalScreenNewState createState() =>
_InsuranceApprovalScreenNewState();
} }
class _InsuranceApprovalScreenNewState extends State<InsuranceApprovalScreenNew> { class _InsuranceApprovalScreenNewState
extends State<InsuranceApprovalScreenNew> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
final routeArgs = ModalRoute.of(context).settings.arguments as Map; final routeArgs = ModalRoute.of(context).settings.arguments as Map;
PatiantInformtion patient = routeArgs['patient']; PatiantInformtion patient = routeArgs['patient'];
patient = routeArgs['patient'];
String patientType = routeArgs['patientType'];
return BaseView<InsuranceViewModel>( return BaseView<InsuranceViewModel>(
onModelReady: widget.appointmentNo != null onModelReady: patient.appointmentNo != null
? (model) => ? (model) => model.getInsuranceApproval(patient,
model.getInsuranceApproval(patient,appointmentNo: widget.appointmentNo) appointmentNo: patient.appointmentNo)
: (model) => model.getInsuranceApproval(patient), : (model) => model.getInsuranceApproval(patient),
builder: (BuildContext context, InsuranceViewModel model, Widget child) => builder: (BuildContext context, InsuranceViewModel model, Widget child) =>
AppScaffold( AppScaffold(
appBar: PatientProfileHeaderNewDesignAppBar(
patient, patientType.toString() ?? "0", patientType),
isShowAppBar: true, isShowAppBar: true,
baseViewModel: model, baseViewModel: model,
appBarTitle: TranslationBase.of(context).approvals, appBarTitle: TranslationBase.of(context).approvals,
body: SingleChildScrollView( body: SingleChildScrollView(
child: Container( child: Container(
margin: EdgeInsets.only( margin: EdgeInsets.only(
@ -45,365 +58,602 @@ class _InsuranceApprovalScreenNewState extends State<InsuranceApprovalScreenNew>
right: SizeConfig.screenWidth * 0.004, right: SizeConfig.screenWidth * 0.004,
top: SizeConfig.screenWidth * 0.04, top: SizeConfig.screenWidth * 0.04,
), ),
child: Column( child: model.insuranceApproval.length != 0
children: <Widget>[ ? Column(
Container(
width: double.infinity,
height: SizeConfig.screenHeight * 0.09,
color: Color(0xffEEEEEE),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
Texts(
TranslationBase.of(context).totalApproval,
color: Color(0xff60688B),
fontSize: 19.0,
fontWeight: FontWeight.w600,
),
if (model.insuranceApproval.length > 0)
Container(
width: 60,
height: 40,
decoration: BoxDecoration(
color: Theme.of(context).primaryColor,
borderRadius: BorderRadius.circular(19.0)),
child: Center(
child: Texts(
model.insuranceApproval[0].unUsedCount
.toString(),
color: Colors.white, fontSize: 17.0,
),
))
],
)),
...List.generate(
model.insuranceApproval.length,
(index) => RoundedContainer(
backgroundColor: Colors.white,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
ExpansionTile(
title: Container(
//height: 120.0,
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
model.insuranceApproval[index].patientDescription == "In Patient"
? Container(
decoration: BoxDecoration(
color: Theme.of(context).primaryColor,
borderRadius:
BorderRadius.circular(
16.0)),
width: 115.0,
padding:
EdgeInsets.only(left: 11.5),
child: Center(
child: Texts(
TranslationBase.of(context).inPatient,
color: Colors.white,
),
),
)
: Container(
decoration: BoxDecoration(
color: Color(0xff505A5D),
borderRadius:
BorderRadius.circular(
16.0)),
width: 115.0,
padding:
EdgeInsets.only(left: 11.5),
child: Center(
child: Texts(
TranslationBase.of(context).outpatient,
color: Colors.white,
),
),
),
Padding(
padding: EdgeInsets.symmetric(
vertical: 10.0),
child: Texts(
model.insuranceApproval[index]
.clinicName,
fontSize: 20.0,
color: Color(0xff60686B),
fontWeight: FontWeight.w600,
),
),
Texts(
model.insuranceApproval[index]
.doctorName,
fontSize: 17.0,
),
],
),
),
children: <Widget>[ children: <Widget>[
// Container(
// width: double.infinity,
// height: SizeConfig.screenHeight * 0.09,
// color: Color(0xffEEEEEE),
// child: Row(
// mainAxisAlignment: MainAxisAlignment.spaceAround,
// children: <Widget>[
// Texts(
// TranslationBase.of(context).totalApproval,
// color: Color(0xff60688B),
// fontSize: 19.0,
// fontWeight: FontWeight.w600,
// ),
// if (model.insuranceApproval.length > 0)
// Container(
// width: 60,
// height: 40,
// decoration: BoxDecoration(
// color: Theme.of(context).primaryColor,
// borderRadius: BorderRadius.circular(19.0)),
// child: Center(
// child: Texts(
// model.insuranceApproval[0].unUsedCount
// .toString(),
// color: Colors.white,
// fontSize: 17.0,
// ),
// ))
// ],
// )),
Padding( Padding(
padding: EdgeInsets.symmetric( padding: const EdgeInsets.all(8.0),
vertical: 12.0, horizontal: 12.0),
child: Column( child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
Row(
children: [ children: [
Texts(
TranslationBase.of(context).approvalNo,
fontSize: 18.0,
),
Texts(model.insuranceApproval[index].approvalNo.toString(),
fontSize: 18.0,
fontWeight: FontWeight.w600,),
],
),
Divider(
color: Colors.black,
height: 25.0,
thickness: 1.0,
),
Row( Row(
children: [ children: [
Texts( AppText(
TranslationBase.of(context).procedureStatus , 'Insurance',
fontSize: 17.5, fontSize: 15.0,
),
SizedBox(width: 12,),
Expanded(
child: Texts(
model.insuranceApproval[index].approvalStatusDescption,
fontWeight: FontWeight.w600, fontWeight: FontWeight.w600,
fontSize: 17.5, fontFamily: 'Poppins',
),
), ),
], ],
), ),
Divider(
color: Colors.black,
height: 25.0,
thickness: 1.0,
),
Row( Row(
children: [ children: [
Texts( AppText(
TranslationBase.of(context).unusedCount, 'Approvals',
fontSize: 17.5, fontSize: 30.0,
fontWeight: FontWeight.w700,
), ),
Texts( ],
model.insuranceApproval[index].unUsedCount.toString(),
fontSize: 17.5,
fontWeight: FontWeight.w600,
), ),
], ],
), ),
Divider(
color: Colors.black,
height: 25.0,
thickness: 1.0,
), ),
// Text(
// 'Company Name: ' + ...List.generate(
model.insuranceApproval.length,
(index) => Container(
child: InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
InsuranceApprovalsDetails(
patient: patient,
indexInsurance: index,
)),
);
},
child: DoctorCardInsurance(
patientOut: model.insuranceApproval[index]
.patientDescription,
profileUrl:
model.insuranceApproval[index].doctorImage,
clinic:
model.insuranceApproval[index].clinicName,
doctorName:
model.insuranceApproval[index].doctorName,
branch: model
.insuranceApproval[index].approvalNo
.toString(),
isPrescriptions: true,
approvalStatus: model.insuranceApproval[index]
.approvalDetails.status,
),
),
),
// (index) => Container(
// width: double.maxFinite,
// height: MediaQuery.of(context).size.height * .20,
// margin: EdgeInsets.all(10),
// padding:
// EdgeInsets.only(left: 0, right: 5, bottom: 5, top: 5),
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(15),
// color: Colors.white,
// ),
// child: Padding(
// padding: const EdgeInsets.all(8.0),
// child: Container(
// child: Row(
// mainAxisAlignment: MainAxisAlignment.start,
// children: [
// Container(
// height: MediaQuery.of(context).size.height * .20,
// width: 5,
// decoration: BoxDecoration(
// borderRadius: BorderRadius.only(
// topLeft: Radius.circular(10),
// bottomLeft: Radius.circular(10),
// ),
// color: model.insuranceApproval[index]
// .approvalStatusDescption !=
// "Approved"
// ? Colors.red[500]
// : Colors.green,
// ),
// ),
// Expanded(
// child: Container(
// padding: EdgeInsets.only(
// left: projectViewModel.isArabic ? 0 : 15,
// right: projectViewModel.isArabic ? 15 : 0),
// child: InkWell(
// child: Column(
// crossAxisAlignment:
// CrossAxisAlignment.start,
// children: [
// Row(
// // mainAxisAlignment:
// // MainAxisAlignment.spaceBetween,
// children: [
// Column(
// crossAxisAlignment:
// CrossAxisAlignment.start,
// children: [
// Texts(
// model.insuranceApproval[index]
// .approvalDetails.status,
// color: model
// .insuranceApproval[
// index]
// .approvalStatusDescption ==
// "Approved"
// ? Colors.green
// : Colors.red[800],
// fontWeight: FontWeight.w600,
// ),
// SizedBox(
// height: 5,
// ),
// AppText(model
// .insuranceApproval[index]
// .doctorName),
// Container(
// child: LargeAvatar(
// url: model
// .insuranceApproval[index]
// .doctorImage,
// ),
// width: 55,
// height: 55,
// ),
// ],
// ),
// Column(
// crossAxisAlignment:
// CrossAxisAlignment.start,
// children: [
// Row(
// children: <Widget>[
// Texts(
// 'Clinic: ',
// color: Colors.grey[500],
// ),
// Texts(
// model
// .insuranceApproval[
// index]
// .clinicName,
// ),
// ],
// ),
// Row(
// children: <Widget>[
// Texts(
// 'Approval No',
// color: Colors.grey[500],
// ),
// Texts(
// model
// .insuranceApproval[
// index]
// .approvalNo
// .toString(),
// ),
// ],
// ),
// ],
// ),
// SizedBox(
// width: 5,
// ),
// ],
// ),
// Column(
// crossAxisAlignment:
// CrossAxisAlignment.start,
// children: [
// Row(
// children: <Widget>[
// Texts(
// 'Clinic: ',
// color: Colors.grey[500],
// ),
// Texts(
// model
// .insuranceApproval[
// index]
// .clinicName,
// ),
// ],
// ),
// Row(
// children: <Widget>[
// Texts(
// 'Approval No',
// color: Colors.grey[500],
// ),
// Texts(
// model
// .insuranceApproval[
// index]
// .approvalNo
// .toString(),
// ),
// ],
// ),
// ],
// ),
// Row(
// mainAxisAlignment:
// MainAxisAlignment.end,
// children: [
// Icon(Icons.remove_red_eye_outlined)
// ],
// )
// ],
// ),
// ),
// ),
// ),
// ],
// ),
// ),
// ),
// ),
// RoundedContainer(
// backgroundColor: Colors.white,
// child: Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: <Widget>[
// ExpansionTile(
// title: Container(
// //height: 120.0,
// child: Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: <Widget>[
// model.insuranceApproval[index]
// .patientDescription ==
// "In Patient"
// ? Container(
// decoration: BoxDecoration(
// color:
// Theme.of(context).primaryColor,
// borderRadius:
// BorderRadius.circular(16.0)),
// width: 115.0,
// padding: EdgeInsets.only(left: 11.5),
// child: Center(
// child: Texts(
// TranslationBase.of(context)
// .inPatient,
// color: Colors.white,
// ),
// ),
// )
// : Container(
// decoration: BoxDecoration(
// color: Color(0xff505A5D),
// borderRadius:
// BorderRadius.circular(16.0)),
// width: 115.0,
// padding: EdgeInsets.only(left: 11.5),
// child: Center(
// child: Texts(
// TranslationBase.of(context)
// .outpatient,
// color: Colors.white,
// ),
// ),
// ),
// Padding(
// padding: EdgeInsets.symmetric(vertical: 10.0),
// child: Texts(
// model.insuranceApproval[index].clinicName,
// fontSize: 20.0,
// color: Color(0xff60686B),
// fontWeight: FontWeight.w600,
// ),
// ),
// Texts(
// model.insuranceApproval[index].doctorName,
// fontSize: 17.0,
// ),
// ],
// ),
// ),
// children: <Widget>[
// Padding(
// padding: EdgeInsets.symmetric(
// vertical: 12.0, horizontal: 12.0),
// child: Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: <Widget>[
// Row(
// children: [
// Texts(
// TranslationBase.of(context).approvalNo,
// fontSize: 18.0,
// ),
// Texts(
// model
// .insuranceApproval[index].approvalNo
// .toString(),
// fontSize: 18.0,
// fontWeight: FontWeight.w600,
// ),
// ],
// ),
// Divider(
// color: Colors.black,
// height: 25.0,
// thickness: 1.0,
// ),
// Row(
// children: [
// Texts(
// TranslationBase.of(context)
// .procedureStatus,
// fontSize: 17.5,
// ),
// SizedBox(
// width: 12,
// ),
// Expanded(
// child: Texts(
// model.insuranceApproval[index]
// .approvalStatusDescption,
// fontWeight: FontWeight.w600,
// fontSize: 17.5,
// ),
// ),
// ],
// ),
// Divider(
// color: Colors.black,
// height: 25.0,
// thickness: 1.0,
// ),
// Row(
// children: [
// Texts(
// TranslationBase.of(context).unusedCount,
// fontSize: 17.5,
// ),
// Texts(
// model.insuranceApproval[index]
// .unUsedCount
// .toString(),
// fontSize: 17.5,
// fontWeight: FontWeight.w600,
// ),
// ],
// ),
// Divider(
// color: Colors.black,
// height: 25.0,
// thickness: 1.0,
// ),
// // Text(
// // 'Company Name: ' +
// // model.insuranceApproval[index]
// // .companyName ==
// // null
// // ? '000'
// // : model
// // .insuranceApproval[index].companyName,
// // style: TextStyle(
// // fontSize: 17.5,
// // fontWeight: FontWeight.w600),
// // ),
// Texts(
// TranslationBase.of(context).companyName,
// fontWeight: FontWeight.w600,
// fontSize: 17.5,
// ),
//
// Divider(
// color: Colors.black,
// height: 25.0,
// thickness: 1.0,
// ),
// Row(
// children: [
// Texts(
// TranslationBase.of(context).receiptOn,
// fontSize: 17.5,
// fontWeight: FontWeight.w600,
// ),
// Texts(
// DateUtils.getDateTimeFromServerFormat(
// model.insuranceApproval[index]
// .rceiptOn)
// .toString(),
// fontSize: 17.5,
// fontWeight: FontWeight.w600,
// ),
// ],
// ),
// Divider(
// color: Colors.black,
// height: 25.0,
// thickness: 1.0,
// ),
// Row(
// children: [
// Texts(
// TranslationBase.of(context).expiryDate,
// fontSize: 17.5,
// fontWeight: FontWeight.w600,
// ),
// Texts(
// DateUtils.getDateTimeFromServerFormat(
// model.insuranceApproval[index]
// .expiryDate)
// .toString(),
// fontSize: 17.5,
// fontWeight: FontWeight.w600,
// ),
// ],
// ),
// Divider(
// color: Colors.black,
// height: 55.0,
// thickness: 1.2,
// ),
// IntrinsicHeight(
// child: Row(
// crossAxisAlignment:
// CrossAxisAlignment.center,
// children: <Widget>[
// Expanded(
// flex: 1,
// child: Column(
// children: <Widget>[
// Text(TranslationBase.of(context)
// .procedureName),
// Padding(
// padding: EdgeInsets.only(
// top: SizeConfig
// .heightMultiplier *
// 3.0),
// child: Text(
// model.insuranceApproval[index] // model.insuranceApproval[index]
// .companyName == // .approvalDetails ==
// null // null
// ? '000' // ? ''
// : model // : model
// .insuranceApproval[index].companyName, // .insuranceApproval[
// index]
// .approvalDetails
// .procedureName,
// style: TextStyle(
// fontWeight:
// FontWeight.w600,
// fontSize: 15.5),
// ),
// ),
// ],
// ),
// ),
// VerticalDivider(
// width: 10.0,
// thickness: 1.2,
// color: Colors.black,
// ),
// Expanded(
// flex: 1,
// child: Column(
// children: <Widget>[
// Text(TranslationBase.of(context)
// .procedureStatus),
// Padding(
// padding: EdgeInsets.only(
// top: SizeConfig
// .heightMultiplier *
// 3.0),
// child: Text(
// model.insuranceApproval[index]
// .approvalDetails ==
// null
// ? ''
// : model
// .insuranceApproval[
// index]
// .approvalDetails
// .status,
// style: TextStyle( // style: TextStyle(
// fontSize: 17.5, // fontSize: 17.5,
// fontWeight: FontWeight.w600), // fontWeight:
// FontWeight.w600),
// ),
// ),
// ],
// ),
// ),
// VerticalDivider(
// width: 2.3,
// thickness: 1.2,
// color: Colors.black,
// ),
// Expanded(
// flex: 1,
// child: Column(
// children: <Widget>[
// Text(TranslationBase.of(context)
// .usageStatus),
// Padding(
// padding: EdgeInsets.only(
// top: SizeConfig
// .heightMultiplier *
// 3.0),
// child: Text(
// model.insuranceApproval[index]
// .approvalDetails ==
// null
// ? ''
// : model
// .insuranceApproval[
// index]
// .approvalDetails
// .isInvoicedDesc,
// style: TextStyle(
// fontWeight:
// FontWeight.w600,
// fontSize: 17.5),
// ),
// ),
// ],
// ),
// ),
// ],
// ),
// ),
// Divider(
// color: Colors.black,
// height: 25.0,
// thickness: 1.0,
// ),
// ],
// ),
// ),
// ],
// ),
// ],
// ),
// ), // ),
Texts(
TranslationBase.of(context).companyName,
fontWeight: FontWeight.w600,
fontSize: 17.5,
),
Divider(
color: Colors.black,
height: 25.0,
thickness: 1.0,
),
Row(
children: [
Texts(
TranslationBase.of(context).receiptOn ,
fontSize: 17.5,
fontWeight: FontWeight.w600,
),
Texts(
DateUtils.getDateTimeFromServerFormat(model.insuranceApproval[index].rceiptOn).toString(),
fontSize: 17.5,
fontWeight: FontWeight.w600,
), ),
], ],
), )
Divider( : Column(
color: Colors.black,
height: 25.0,
thickness: 1.0,
),
Row(
children: [ children: [
Texts( Container(
TranslationBase.of(context).expiryDate, height: 200,
fontSize: 17.5, width: double.infinity,
fontWeight: FontWeight.w600, child: Center(
child: Text("No Insurance Approvals Found")))
),
Texts(
DateUtils.getDateTimeFromServerFormat(model.insuranceApproval[index].expiryDate).toString(),
fontSize: 17.5,
fontWeight: FontWeight.w600,
),
],
),
Divider(
color: Colors.black,
height: 55.0,
thickness: 1.2,
),
IntrinsicHeight(
child: Row(
crossAxisAlignment:
CrossAxisAlignment.center,
children: <Widget>[
Expanded(
flex: 1,
child: Column(
children: <Widget>[
Text(TranslationBase.of(
context)
.procedureName),
Padding(
padding: EdgeInsets.only(
top: SizeConfig
.heightMultiplier *
3.0),
child: Text(
model
.insuranceApproval[
index]
.approvalDetails ==
null
? ''
: model
.insuranceApproval[
index]
.approvalDetails
.procedureName,
style: TextStyle(
fontWeight:
FontWeight.w600,
fontSize: 15.5),
),
),
],
),
),
VerticalDivider(
width: 10.0,
thickness: 1.2,
color: Colors.black,
),
Expanded(
flex: 1,
child: Column(
children: <Widget>[
Text(TranslationBase.of(
context)
.procedureStatus),
Padding(
padding: EdgeInsets.only(
top: SizeConfig
.heightMultiplier *
3.0),
child: Text(
model
.insuranceApproval[
index]
.approvalDetails ==
null
? ''
: model
.insuranceApproval[
index]
.approvalDetails
.status,
style: TextStyle(
fontSize: 17.5,
fontWeight:
FontWeight
.w600),
),
),
],
),
),
VerticalDivider(
width: 2.3,
thickness: 1.2,
color: Colors.black,
),
Expanded(
flex: 1,
child: Column(
children: <Widget>[
Text(TranslationBase.of(
context)
.usageStatus),
Padding(
padding: EdgeInsets.only(
top: SizeConfig
.heightMultiplier *
3.0),
child: Text(
model
.insuranceApproval[
index]
.approvalDetails ==
null
? ''
: model
.insuranceApproval[
index]
.approvalDetails
.isInvoicedDesc,
style: TextStyle(
fontWeight:
FontWeight.w600,
fontSize: 17.5),
),
),
],
),
),
],
),
),
Divider(
color: Colors.black,
height: 25.0,
thickness: 1.0,
),
],
),
),
],
),
], ],
),
)), )),
],
),
),
), ),
), ),
); );

@ -0,0 +1,329 @@
import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/viewModel/InsuranceViewModel.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
import 'package:doctor_app_flutter/widgets/shared/Text.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
class InsuranceApprovalsDetails extends StatefulWidget {
PatiantInformtion patient;
int indexInsurance;
InsuranceApprovalsDetails({this.patient, this.indexInsurance});
@override
_InsuranceApprovalsDetailsState createState() =>
_InsuranceApprovalsDetailsState(
patient: patient, indexInsurance: indexInsurance);
}
class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
PatiantInformtion patient;
int indexInsurance;
_InsuranceApprovalsDetailsState({this.patient, this.indexInsurance});
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
return BaseView<InsuranceViewModel>(
onModelReady: patient.appointmentNo != null
? (model) => model.getInsuranceApproval(patient,
appointmentNo: patient.appointmentNo)
: (model) => model.getInsuranceApproval(patient),
builder: (BuildContext context, InsuranceViewModel model, Widget child) =>
AppScaffold(
isShowAppBar: true,
baseViewModel: model,
appBar: PatientProfileHeaderNewDesignAppBar(
patient, patient.patientType.toString(), patient.arrivedOn),
body: SingleChildScrollView(
child: Container(
child: Column(
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
children: [
Row(
children: [
AppText(
'Insurance',
fontSize: 15.0,
fontWeight: FontWeight.w600,
fontFamily: 'Poppins',
),
],
),
Row(
children: [
AppText(
'Approvals',
fontSize: 30.0,
fontWeight: FontWeight.w700,
),
],
),
],
),
),
Container(
margin: EdgeInsets.all(10),
decoration: BoxDecoration(
border: Border.all(
width: 0.5,
color: Colors.white,
),
borderRadius: BorderRadius.all(
Radius.circular(15.0),
),
color: Colors.white),
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
children: [
Row(
children: [
Texts(
model.insuranceApproval[indexInsurance]
.approvalDetails.status,
color:
model.insuranceApproval[indexInsurance]
.approvalDetails.status ==
"Approved"
? Color(0xff359846)
: Color(0xffD02127),
),
],
),
Row(
children: [
Texts(
model.insuranceApproval[indexInsurance]
.doctorName
.toUpperCase(),
color: Colors.black,
fontSize: 18,
fontWeight: FontWeight.bold,
)
],
),
Padding(
padding:
const EdgeInsets.symmetric(horizontal: 8.0),
child: Row(
children: [
Column(
children: [
Container(
height: 85.0,
width: 85.0,
child: CircleAvatar(
radius:
SizeConfig.imageSizeMultiplier *
12,
// radius: (52)
child: ClipRRect(
borderRadius:
BorderRadius.circular(50),
child: Image.network(
model
.insuranceApproval[
indexInsurance]
.doctorImage,
fit: BoxFit.fill,
width: 700,
),
),
backgroundColor: Colors.transparent,
),
),
],
),
Padding(
padding: const EdgeInsets.symmetric(
horizontal: 8.0),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
//mainAxisAlignment: MainAxisAlignment.center,
children: [
SizedBox(
height: 25.0,
),
Row(
children: [
Texts(
'Clinic: ',
color: Colors.grey[500],
),
Texts(
model
.insuranceApproval[
indexInsurance]
.clinicName,
)
],
),
Row(
children: <Widget>[
Texts(
'Approval No: ',
color: Colors.grey[500],
),
Texts(
model
.insuranceApproval[
indexInsurance]
.approvalNo
.toString(),
)
],
),
Row(
children: <Widget>[
Texts(
'Unused Count:',
color: Colors.grey[500],
),
Texts(model
.insuranceApproval[
indexInsurance]
.unUsedCount
.toString())
],
),
Row(
children: <Widget>[
Texts(
'Company Name :',
color: Colors.grey[500],
),
Texts('Sample')
],
),
SizedBox(
height: 25.0,
),
Row(
children: [
Texts(
'Receipt on :',
color: Colors.grey[500],
),
Texts(
'${DateUtils.getDayMonthYearDateFormatted(DateUtils.getDateTimeFromServerFormat(model.insuranceApproval[indexInsurance].rceiptOn), isArabic: projectViewModel.isArabic)}',
color: Colors.black,
fontWeight: FontWeight.w600,
fontSize: 14,
),
],
),
Row(
children: [
Texts(
'Exp on:',
color: Colors.grey[500],
),
Texts(
'${DateUtils.getDayMonthYearDateFormatted(DateUtils.getDateTimeFromServerFormat(model.insuranceApproval[indexInsurance].expiryDate), isArabic: projectViewModel.isArabic)}',
color: Colors.black,
fontWeight: FontWeight.w600,
fontSize: 14,
),
],
),
],
),
),
],
),
),
SizedBox(
height: 20.0,
),
Container(
child: Column(
children: [
Row(
mainAxisAlignment:
MainAxisAlignment.spaceAround,
children: [
Texts('Procedure'),
Texts('Status'),
Texts('Usage Status')
],
),
Divider(
color: Colors.black45,
),
Row(
mainAxisAlignment:
MainAxisAlignment.spaceAround,
children: [
Container(
height: MediaQuery.of(context)
.size
.height *
0.2, //130.0,
width: MediaQuery.of(context)
.size
.width *
0.33,
child: Texts(model
.insuranceApproval[indexInsurance]
.approvalDetails
.procedureName),
),
Container(
height: MediaQuery.of(context)
.size
.height *
0.2,
width: MediaQuery.of(context)
.size
.width *
0.33,
child: Texts(model
.insuranceApproval[indexInsurance]
.approvalDetails
.status),
),
Container(
height: MediaQuery.of(context)
.size
.height *
0.2,
width: MediaQuery.of(context)
.size
.width *
0.25,
child: Texts(model
.insuranceApproval[indexInsurance]
.approvalDetails
.isInvoicedDesc),
),
],
)
],
),
),
],
),
),
),
],
),
),
)),
);
}
}

@ -134,16 +134,6 @@ class ProfileMedicalInfoWidgetSearch extends StatelessWidget {
nameLine1: TranslationBase.of(context).progress, nameLine1: TranslationBase.of(context).progress,
nameLine2: TranslationBase.of(context).note, nameLine2: TranslationBase.of(context).note,
icon: 'patient/Progress_notes.png'), icon: 'patient/Progress_notes.png'),
if (int.parse(patientType) == 7 || int.parse(patientType) == 6)
PatientProfileButton(
key: key,
patient: patient,
patientType: patientType,
arrivalType: arrivalType,
route: ORDER_PROCEDURE,
nameLine1: TranslationBase.of(context).orders,
nameLine2: TranslationBase.of(context).procedures,
icon: 'patient/Order_Procedures.png'),
], ],
), ),
); );

@ -0,0 +1,182 @@
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/large_avatar.dart';
import 'package:eva_icons_flutter/eva_icons_flutter.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:provider/provider.dart';
import 'StarRating.dart';
import 'Text.dart';
class DoctorCardInsurance extends StatelessWidget {
final String doctorName;
final String branch;
final DateTime appointmentDate;
final String profileUrl;
final String invoiceNO;
final String orderNo;
final Function onTap;
final bool isPrescriptions;
final String clinic;
final String approvalStatus;
final String patientOut;
DoctorCardInsurance(
{this.doctorName,
this.branch,
this.profileUrl,
this.invoiceNO,
this.onTap,
this.appointmentDate,
this.orderNo,
this.isPrescriptions = false,
this.clinic,
this.approvalStatus,
this.patientOut});
@override
Widget build(BuildContext context) {
ProjectViewModel projectViewModel = Provider.of(context);
return Container(
margin: EdgeInsets.all(10),
decoration: BoxDecoration(
border: Border(
left: BorderSide(
color: approvalStatus == "Approved"
? Color(0xff359846)
: Color(0xffD02127),
width: 3.5),
top: BorderSide(color: Colors.white, width: 0.5),
bottom: BorderSide(color: Colors.white, width: 0.5),
right: BorderSide(color: Colors.white, width: 0.5),
),
color: Colors.white),
child: Padding(
padding: const EdgeInsets.all(15.0),
child: InkWell(
onTap: onTap,
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Texts(
"$approvalStatus",
color: approvalStatus == "Approved"
? Color(0xff359846)
: Color(0xffD02127),
),
Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.all(
Radius.circular(25.0),
),
color: Color(0xff2E303A)),
child: Padding(
padding: const EdgeInsets.all(5.0),
child: Texts(
'$patientOut',
color: Colors.white,
fontSize: 15.0,
),
),
)
],
),
Row(
children: [
Expanded(
child: Texts(
doctorName,
bold: true,
)),
],
),
Row(
crossAxisAlignment: CrossAxisAlignment.end,
children: <Widget>[
Container(
child: LargeAvatar(
name: doctorName,
url: profileUrl,
),
width: 55,
height: 55,
),
Expanded(
flex: 4,
child: Container(
margin: EdgeInsets.all(10),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
if (orderNo != null && !isPrescriptions)
Row(
children: <Widget>[
Texts(
'order No:',
color: Colors.grey[500],
),
Texts(
orderNo ?? '',
)
],
),
if (invoiceNO != null && !isPrescriptions)
Row(
children: <Widget>[
Texts(
'Invoice:',
color: Colors.grey[500],
),
Texts(
invoiceNO,
)
],
),
if (isPrescriptions)
Row(
children: <Widget>[
Texts(
'Clinic: ',
color: Colors.grey[500],
),
Expanded(
child: Texts(
clinic,
),
)
],
),
if (branch != null)
Row(
children: <Widget>[
Texts(
'Approval No: ',
color: Colors.grey[500],
),
Texts(
branch,
)
],
)
]),
),
),
Icon(
EvaIcons.eye,
size: 38.0,
)
],
),
],
),
),
),
);
}
}
Loading…
Cancel
Save