Merge branch 'in_patient_services' into 'development'

In patient services

See merge request Cloud_Solution/doctor_app_flutter!540
merge-requests/539/merge
Mohammad Aljammal 5 years ago
commit b0f1dbed71

@ -238,7 +238,8 @@ const GET_PAtIENTS_INSURANCE_APPROVALS =
const GET_RAD_IMAGE_URL = 'Services/Patients.svc/Rest/GetRadImageURL'; const GET_RAD_IMAGE_URL = 'Services/Patients.svc/Rest/GetRadImageURL';
const GET_PATIENT_ORDERS = 'Services/Patients.svc/REST/GetPatientRadOrders'; const GET_PATIENT_ORDERS = 'Services/Patients.svc/REST/GetPatientRadOrders';
const GET_IN_PATIENT_ORDERS = 'Services/DoctorApplication.svc/REST/GetPatientRadResult'; const GET_IN_PATIENT_ORDERS =
'Services/DoctorApplication.svc/REST/GetPatientRadResult';
///Prescriptions ///Prescriptions
const PRESCRIPTIONS = 'Services/Patients.svc/REST/GetPrescriptionApptList'; const PRESCRIPTIONS = 'Services/Patients.svc/REST/GetPrescriptionApptList';
@ -257,6 +258,9 @@ const CREATE_PROGRESS_NOTE_FOR_INPATIENT = "Services/DoctorApplication.svc/REST/
const GET_PRESCRIPTION_IN_PATIENT = const GET_PRESCRIPTION_IN_PATIENT =
'Services/DoctorApplication.svc/REST/GetPrescriptionReportForInPatient'; 'Services/DoctorApplication.svc/REST/GetPrescriptionReportForInPatient';
const GET_INSURANCE_IN_PATIENT =
"Services/DoctorApplication.svc/REST/GetApprovalStatusForInpatient";
var selectedPatientType = 1; var selectedPatientType = 1;
//*********change value to decode json from Dropdown ************ //*********change value to decode json from Dropdown ************

@ -0,0 +1,64 @@
class InsuranceApprovalInPatientRequestModel {
int patientID;
int patientTypeID;
int eXuldAPPNO;
int projectID;
int languageID;
String stamp;
String iPAdress;
double versionID;
int channel;
String tokenID;
String sessionID;
bool isLoginForDoctorApp;
bool patientOutSA;
InsuranceApprovalInPatientRequestModel(
{this.patientID,
this.patientTypeID,
this.eXuldAPPNO,
this.projectID,
this.languageID,
this.stamp,
this.iPAdress,
this.versionID,
this.channel,
this.tokenID,
this.sessionID,
this.isLoginForDoctorApp,
this.patientOutSA});
InsuranceApprovalInPatientRequestModel.fromJson(Map<String, dynamic> json) {
patientID = json['PatientID'];
patientTypeID = json['PatientTypeID'];
eXuldAPPNO = json['EXuldAPPNO'];
projectID = json['ProjectID'];
languageID = json['LanguageID'];
stamp = json['stamp'];
iPAdress = json['IPAdress'];
versionID = json['VersionID'];
channel = json['Channel'];
tokenID = json['TokenID'];
sessionID = json['SessionID'];
isLoginForDoctorApp = json['IsLoginForDoctorApp'];
patientOutSA = json['PatientOutSA'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['PatientID'] = this.patientID;
data['PatientTypeID'] = this.patientTypeID;
data['EXuldAPPNO'] = this.eXuldAPPNO;
data['ProjectID'] = this.projectID;
data['LanguageID'] = this.languageID;
data['stamp'] = this.stamp;
data['IPAdress'] = this.iPAdress;
data['VersionID'] = this.versionID;
data['Channel'] = this.channel;
data['TokenID'] = this.tokenID;
data['SessionID'] = this.sessionID;
data['IsLoginForDoctorApp'] = this.isLoginForDoctorApp;
data['PatientOutSA'] = this.patientOutSA;
return data;
}
}

@ -0,0 +1,273 @@
class InsuranceApprovalInPatientModel {
String setupID;
int projectID;
int approvalNo;
int status;
String approvalDate;
int patientType;
int patientID;
int companyID;
bool subCategoryID;
int doctorID;
int clinicID;
int approvalType;
int inpatientApprovalSubType;
dynamic isApprovalOnGross;
String companyApprovalNo;
dynamic progNoteOrderNo;
String submitOn;
String receiptOn;
String expiryDate;
int admissionNo;
int admissionRequestNo;
String approvalStatusDescption;
dynamic approvalStatusDescptionN;
dynamic remarks;
List<ApporvalDetails> apporvalDetails;
String clinicName;
dynamic companyName;
String doctorName;
String projectName;
int totaUnUsedCount;
int unUsedCount;
InsuranceApprovalInPatientModel(
{this.setupID,
this.projectID,
this.approvalNo,
this.status,
this.approvalDate,
this.patientType,
this.patientID,
this.companyID,
this.subCategoryID,
this.doctorID,
this.clinicID,
this.approvalType,
this.inpatientApprovalSubType,
this.isApprovalOnGross,
this.companyApprovalNo,
this.progNoteOrderNo,
this.submitOn,
this.receiptOn,
this.expiryDate,
this.admissionNo,
this.admissionRequestNo,
this.approvalStatusDescption,
this.approvalStatusDescptionN,
this.remarks,
this.apporvalDetails,
this.clinicName,
this.companyName,
this.doctorName,
this.projectName,
this.totaUnUsedCount,
this.unUsedCount});
InsuranceApprovalInPatientModel.fromJson(Map<String, dynamic> json) {
setupID = json['SetupID'];
projectID = json['ProjectID'];
approvalNo = json['ApprovalNo'];
status = json['Status'];
approvalDate = json['ApprovalDate'];
patientType = json['PatientType'];
patientID = json['PatientID'];
companyID = json['CompanyID'];
subCategoryID = json['SubCategoryID'];
doctorID = json['DoctorID'];
clinicID = json['ClinicID'];
approvalType = json['ApprovalType'];
inpatientApprovalSubType = json['InpatientApprovalSubType'];
isApprovalOnGross = json['IsApprovalOnGross'];
companyApprovalNo = json['CompanyApprovalNo'];
progNoteOrderNo = json['ProgNoteOrderNo'];
submitOn = json['SubmitOn'];
receiptOn = json['ReceiptOn'];
expiryDate = json['ExpiryDate'];
admissionNo = json['AdmissionNo'];
admissionRequestNo = json['AdmissionRequestNo'];
approvalStatusDescption = json['ApprovalStatusDescption'];
approvalStatusDescptionN = json['ApprovalStatusDescptionN'];
remarks = json['Remarks'];
if (json['ApporvalDetails'] != null) {
apporvalDetails = new List<ApporvalDetails>();
json['ApporvalDetails'].forEach((v) {
apporvalDetails.add(new ApporvalDetails.fromJson(v));
});
}
clinicName = json['ClinicName'];
companyName = json['CompanyName'];
doctorName = json['DoctorName'];
projectName = json['ProjectName'];
totaUnUsedCount = json['TotaUnUsedCount'];
unUsedCount = json['UnUsedCount'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['SetupID'] = this.setupID;
data['ProjectID'] = this.projectID;
data['ApprovalNo'] = this.approvalNo;
data['Status'] = this.status;
data['ApprovalDate'] = this.approvalDate;
data['PatientType'] = this.patientType;
data['PatientID'] = this.patientID;
data['CompanyID'] = this.companyID;
data['SubCategoryID'] = this.subCategoryID;
data['DoctorID'] = this.doctorID;
data['ClinicID'] = this.clinicID;
data['ApprovalType'] = this.approvalType;
data['InpatientApprovalSubType'] = this.inpatientApprovalSubType;
data['IsApprovalOnGross'] = this.isApprovalOnGross;
data['CompanyApprovalNo'] = this.companyApprovalNo;
data['ProgNoteOrderNo'] = this.progNoteOrderNo;
data['SubmitOn'] = this.submitOn;
data['ReceiptOn'] = this.receiptOn;
data['ExpiryDate'] = this.expiryDate;
data['AdmissionNo'] = this.admissionNo;
data['AdmissionRequestNo'] = this.admissionRequestNo;
data['ApprovalStatusDescption'] = this.approvalStatusDescption;
data['ApprovalStatusDescptionN'] = this.approvalStatusDescptionN;
data['Remarks'] = this.remarks;
if (this.apporvalDetails != null) {
data['ApporvalDetails'] =
this.apporvalDetails.map((v) => v.toJson()).toList();
}
data['ClinicName'] = this.clinicName;
data['CompanyName'] = this.companyName;
data['DoctorName'] = this.doctorName;
data['ProjectName'] = this.projectName;
data['TotaUnUsedCount'] = this.totaUnUsedCount;
data['UnUsedCount'] = this.unUsedCount;
return data;
}
}
class ApporvalDetails {
Null setupID;
Null projectID;
int approvalNo;
Null lineItemNo;
Null orderType;
Null procedureID;
Null toothNo;
Null price;
Null approvedAmount;
Null unapprovedPatientShare;
Null waivedAmount;
Null discountType;
Null discountValue;
Null shareType;
Null patientShareTypeValue;
Null companyShareTypeValue;
Null patientShare;
Null companyShare;
Null deductableAmount;
String disapprovedRemarks;
Null progNoteOrderNo;
Null progNoteLineItemNo;
Null invoiceTransactionType;
Null invoiceNo;
String procedureName;
String procedureNameN;
String status;
Null isInvoiced;
String isInvoicedDesc;
ApporvalDetails(
{this.setupID,
this.projectID,
this.approvalNo,
this.lineItemNo,
this.orderType,
this.procedureID,
this.toothNo,
this.price,
this.approvedAmount,
this.unapprovedPatientShare,
this.waivedAmount,
this.discountType,
this.discountValue,
this.shareType,
this.patientShareTypeValue,
this.companyShareTypeValue,
this.patientShare,
this.companyShare,
this.deductableAmount,
this.disapprovedRemarks,
this.progNoteOrderNo,
this.progNoteLineItemNo,
this.invoiceTransactionType,
this.invoiceNo,
this.procedureName,
this.procedureNameN,
this.status,
this.isInvoiced,
this.isInvoicedDesc});
ApporvalDetails.fromJson(Map<String, dynamic> json) {
setupID = json['SetupID'];
projectID = json['ProjectID'];
approvalNo = json['ApprovalNo'];
lineItemNo = json['LineItemNo'];
orderType = json['OrderType'];
procedureID = json['ProcedureID'];
toothNo = json['ToothNo'];
price = json['Price'];
approvedAmount = json['ApprovedAmount'];
unapprovedPatientShare = json['UnapprovedPatientShare'];
waivedAmount = json['WaivedAmount'];
discountType = json['DiscountType'];
discountValue = json['DiscountValue'];
shareType = json['ShareType'];
patientShareTypeValue = json['PatientShareTypeValue'];
companyShareTypeValue = json['CompanyShareTypeValue'];
patientShare = json['PatientShare'];
companyShare = json['CompanyShare'];
deductableAmount = json['DeductableAmount'];
disapprovedRemarks = json['DisapprovedRemarks'];
progNoteOrderNo = json['ProgNoteOrderNo'];
progNoteLineItemNo = json['ProgNoteLineItemNo'];
invoiceTransactionType = json['InvoiceTransactionType'];
invoiceNo = json['InvoiceNo'];
procedureName = json['ProcedureName'];
procedureNameN = json['ProcedureNameN'];
status = json['Status'];
isInvoiced = json['IsInvoiced'];
isInvoicedDesc = json['IsInvoicedDesc'];
}
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['SetupID'] = this.setupID;
data['ProjectID'] = this.projectID;
data['ApprovalNo'] = this.approvalNo;
data['LineItemNo'] = this.lineItemNo;
data['OrderType'] = this.orderType;
data['ProcedureID'] = this.procedureID;
data['ToothNo'] = this.toothNo;
data['Price'] = this.price;
data['ApprovedAmount'] = this.approvedAmount;
data['UnapprovedPatientShare'] = this.unapprovedPatientShare;
data['WaivedAmount'] = this.waivedAmount;
data['DiscountType'] = this.discountType;
data['DiscountValue'] = this.discountValue;
data['ShareType'] = this.shareType;
data['PatientShareTypeValue'] = this.patientShareTypeValue;
data['CompanyShareTypeValue'] = this.companyShareTypeValue;
data['PatientShare'] = this.patientShare;
data['CompanyShare'] = this.companyShare;
data['DeductableAmount'] = this.deductableAmount;
data['DisapprovedRemarks'] = this.disapprovedRemarks;
data['ProgNoteOrderNo'] = this.progNoteOrderNo;
data['ProgNoteLineItemNo'] = this.progNoteLineItemNo;
data['InvoiceTransactionType'] = this.invoiceTransactionType;
data['InvoiceNo'] = this.invoiceNo;
data['ProcedureName'] = this.procedureName;
data['ProcedureNameN'] = this.procedureNameN;
data['Status'] = this.status;
data['IsInvoiced'] = this.isInvoiced;
data['IsInvoicedDesc'] = this.isInvoicedDesc;
return data;
}
}

@ -1,5 +1,7 @@
import 'package:doctor_app_flutter/config/config.dart'; import 'package:doctor_app_flutter/config/config.dart';
import 'package:doctor_app_flutter/core/insurance_approval_request_model.dart';
import 'package:doctor_app_flutter/core/model/insurance_approval.dart'; import 'package:doctor_app_flutter/core/model/insurance_approval.dart';
import 'package:doctor_app_flutter/core/model/insurance_approval_in_patient_model.dart';
import 'package:doctor_app_flutter/core/service/base/base_service.dart'; import 'package:doctor_app_flutter/core/service/base/base_service.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart'; import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
@ -10,12 +12,41 @@ class InsuranceCardService extends BaseService {
patientType: 1, patientType: 1,
eXuldAPPNO: 0, eXuldAPPNO: 0,
projectID: 0); projectID: 0);
InsuranceApprovalInPatientRequestModel
_insuranceApprovalInPatientRequestModel =
InsuranceApprovalInPatientRequestModel();
List<InsuranceApprovalModel> _insuranceApproval = List(); List<InsuranceApprovalModel> _insuranceApproval = List();
List<InsuranceApprovalModel> get insuranceApproval => _insuranceApproval; List<InsuranceApprovalModel> get insuranceApproval => _insuranceApproval;
Future getInsuranceApproval(PatiantInformtion patient,{int appointmentNo , int projectId}) async { List<InsuranceApprovalInPatientModel> _insuranceApprovalInPatient = List();
List<InsuranceApprovalInPatientModel> get insuranceApprovalInPatient =>
_insuranceApprovalInPatient;
Future getInsuranceApprovalInPatient({int mrn}) async {
_insuranceApprovalInPatientRequestModel =
InsuranceApprovalInPatientRequestModel(
patientID: mrn,
patientTypeID: 1,
);
hasError = false;
insuranceApprovalInPatient.clear();
await baseAppClient.post(GET_INSURANCE_IN_PATIENT,
onSuccess: (dynamic response, int statusCode) {
//prescriptionsList.clear();
response['List_ApprovalMain_InPatient'].forEach((prescriptions) {
insuranceApprovalInPatient
.add(InsuranceApprovalInPatientModel.fromJson(prescriptions));
});
}, onFailure: (String error, int statusCode) {
hasError = true;
super.error = error;
}, body: _insuranceApprovalInPatientRequestModel.toJson());
}
Future getInsuranceApproval(PatiantInformtion patient,
{int appointmentNo, int projectId}) async {
hasError = false; hasError = false;
// _cardList.clear(); // _cardList.clear();
// if (appointmentNo != null) { // if (appointmentNo != null) {
@ -29,8 +60,7 @@ class InsuranceCardService extends BaseService {
// } // }
await baseAppClient.postPatient(GET_PAtIENTS_INSURANCE_APPROVALS, await baseAppClient.postPatient(GET_PAtIENTS_INSURANCE_APPROVALS,
patient: patient, patient: patient, onSuccess: (dynamic response, int statusCode) {
onSuccess: (dynamic response, int statusCode) {
print(response['HIS_Approval_List'].length); print(response['HIS_Approval_List'].length);
_insuranceApproval.clear(); _insuranceApproval.clear();
_insuranceApproval.length = 0; _insuranceApproval.length = 0;

@ -1,25 +1,27 @@
import 'package:doctor_app_flutter/core/enum/viewstate.dart'; import 'package:doctor_app_flutter/core/enum/viewstate.dart';
import 'package:doctor_app_flutter/core/model/insurance_approval.dart'; import 'package:doctor_app_flutter/core/model/insurance_approval.dart';
import 'package:doctor_app_flutter/core/model/insurance_approval_in_patient_model.dart';
import 'package:doctor_app_flutter/core/service/InsuranceCardService.dart'; import 'package:doctor_app_flutter/core/service/InsuranceCardService.dart';
import 'package:doctor_app_flutter/core/viewModel/base_view_model.dart'; import 'package:doctor_app_flutter/core/viewModel/base_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 '../../locator.dart'; import '../../locator.dart';
class InsuranceViewModel extends BaseViewModel{ class InsuranceViewModel extends BaseViewModel {
InsuranceCardService _insuranceCardService = locator<InsuranceCardService>(); InsuranceCardService _insuranceCardService = locator<InsuranceCardService>();
List<InsuranceApprovalModel> get insuranceApproval => List<InsuranceApprovalModel> get insuranceApproval =>
_insuranceCardService.insuranceApproval; _insuranceCardService.insuranceApproval;
List<InsuranceApprovalInPatientModel> get insuranceApprovalInPatient =>
_insuranceCardService.insuranceApprovalInPatient;
Future getInsuranceApproval(PatiantInformtion patient,{int appointmentNo, int projectId}) async { Future getInsuranceApproval(PatiantInformtion patient,
{int appointmentNo, int projectId}) async {
error = ""; error = "";
setState(ViewState.Busy); setState(ViewState.Busy);
if (appointmentNo != null) if (appointmentNo != null)
await _insuranceCardService.getInsuranceApproval(patient, await _insuranceCardService.getInsuranceApproval(patient,
appointmentNo: appointmentNo,projectId: projectId); appointmentNo: appointmentNo, projectId: projectId);
else else
await _insuranceCardService.getInsuranceApproval(patient); await _insuranceCardService.getInsuranceApproval(patient);
if (_insuranceCardService.hasError) { if (_insuranceCardService.hasError) {
@ -28,4 +30,16 @@ class InsuranceViewModel extends BaseViewModel{
} else } else
setState(ViewState.Idle); setState(ViewState.Idle);
} }
Future getInsuranceInPatient({int mrn}) async {
//hasError = false;
//_insuranceCardService.clearInsuranceCard();
setState(ViewState.Busy);
await _insuranceCardService.getInsuranceApprovalInPatient(mrn: mrn);
if (_insuranceCardService.hasError) {
error = _insuranceCardService.error;
setState(ViewState.ErrorLocal);
} else
setState(ViewState.Idle);
}
} }

@ -40,7 +40,9 @@ class _InsuranceApprovalScreenNewState
String patientType = routeArgs['patientType']; String patientType = routeArgs['patientType'];
return BaseView<InsuranceViewModel>( return BaseView<InsuranceViewModel>(
onModelReady: patient.appointmentNo != null onModelReady: patientType == "1"
? (model) => model.getInsuranceInPatient(mrn: patient.patientId)
: patient.appointmentNo != null
? (model) => model.getInsuranceApproval(patient, ? (model) => model.getInsuranceApproval(patient,
appointmentNo: patient.appointmentNo, appointmentNo: patient.appointmentNo,
projectId: patient.projectId) projectId: patient.projectId)
@ -52,7 +54,108 @@ class _InsuranceApprovalScreenNewState
isShowAppBar: true, isShowAppBar: true,
baseViewModel: model, baseViewModel: model,
appBarTitle: TranslationBase.of(context).approvals, appBarTitle: TranslationBase.of(context).approvals,
body: SingleChildScrollView( body: patientType == "1"
? SingleChildScrollView(
child: Container(
margin: EdgeInsets.only(
left: SizeConfig.screenWidth * 0.004,
right: SizeConfig.screenWidth * 0.004,
top: SizeConfig.screenWidth * 0.04,
),
child: model.insuranceApprovalInPatient.length != 0
? Column(
children: <Widget>[
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,
),
],
),
],
),
),
...List.generate(
model.insuranceApprovalInPatient.length,
(index) => Container(
child: InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
InsuranceApprovalsDetails(
patient: patient,
indexInsurance: index,
patientType: patientType,
)),
);
},
child: DoctorCardInsurance(
patientOut: "In Patient",
profileUrl:
'https://previews.123rf.com/images/ihorbiliavskyi/ihorbiliavskyi1812/ihorbiliavskyi181200077/114296311-doctor-avatar-icon-profession-logo-male-character-a-man-in-professional-clothes-people-specialists-f.jpg',
clinic: model
.insuranceApprovalInPatient[index]
.clinicName,
doctorName: model
.insuranceApprovalInPatient[index]
.doctorName,
branch: model
.insuranceApprovalInPatient[index]
.approvalNo
.toString(),
isPrescriptions: true,
approvalStatus: model
.insuranceApprovalInPatient[index]
.approvalStatusDescption ??
'',
branch2: model
.insuranceApprovalInPatient[index]
.projectName,
),
),
),
),
],
)
: Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(
height: 100,
),
Image.asset('assets/images/no-data.png'),
Padding(
padding: const EdgeInsets.all(8.0),
child: AppText('No Insurance Approval Found'),
),
SizedBox(
height: 150.0,
)
],
),
),
),
)
: SingleChildScrollView(
child: Container( child: Container(
margin: EdgeInsets.only( margin: EdgeInsets.only(
left: SizeConfig.screenWidth * 0.004, left: SizeConfig.screenWidth * 0.004,
@ -100,27 +203,29 @@ class _InsuranceApprovalScreenNewState
InsuranceApprovalsDetails( InsuranceApprovalsDetails(
patient: patient, patient: patient,
indexInsurance: index, indexInsurance: index,
patientType: patientType,
)), )),
); );
}, },
child: DoctorCardInsurance( child: DoctorCardInsurance(
patientOut: model.insuranceApproval[index] patientOut: model.insuranceApproval[index]
.patientDescription, .patientDescription,
profileUrl: profileUrl: model
model.insuranceApproval[index].doctorImage, .insuranceApproval[index].doctorImage,
clinic: clinic: model
model.insuranceApproval[index].clinicName, .insuranceApproval[index].clinicName,
doctorName: doctorName: model
model.insuranceApproval[index].doctorName, .insuranceApproval[index].doctorName,
branch: model branch: model
.insuranceApproval[index].approvalNo .insuranceApproval[index].approvalNo
.toString(), .toString(),
isPrescriptions: true, isPrescriptions: true,
approvalStatus: model.insuranceApproval[index] approvalStatus: model
.insuranceApproval[index]
.approvalStatusDescption ?? .approvalStatusDescption ??
'', '',
branch2: branch2: model
model.insuranceApproval[index].projectName, .insuranceApproval[index].projectName,
), ),
), ),
), ),

@ -16,18 +16,25 @@ import 'package:provider/provider.dart';
class InsuranceApprovalsDetails extends StatefulWidget { class InsuranceApprovalsDetails extends StatefulWidget {
PatiantInformtion patient; PatiantInformtion patient;
int indexInsurance; int indexInsurance;
InsuranceApprovalsDetails({this.patient, this.indexInsurance}); String patientType;
InsuranceApprovalsDetails(
{this.patient, this.indexInsurance, this.patientType});
@override @override
_InsuranceApprovalsDetailsState createState() => _InsuranceApprovalsDetailsState createState() =>
_InsuranceApprovalsDetailsState( _InsuranceApprovalsDetailsState(
patient: patient, indexInsurance: indexInsurance); patient: patient,
indexInsurance: indexInsurance,
patientType: patientType);
} }
class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> { class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
PatiantInformtion patient; PatiantInformtion patient;
int indexInsurance; int indexInsurance;
String patientType;
_InsuranceApprovalsDetailsState({this.patient, this.indexInsurance}); _InsuranceApprovalsDetailsState(
{this.patient, this.indexInsurance, this.patientType});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -35,18 +42,23 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
final routeArgs = ModalRoute.of(context).settings.arguments as Map; final routeArgs = ModalRoute.of(context).settings.arguments as Map;
return BaseView<InsuranceViewModel>( return BaseView<InsuranceViewModel>(
onModelReady: patient.appointmentNo != null onModelReady: (model) => model.insuranceApprovalInPatient.length == 0
? patientType == "1"
? (model) => model.getInsuranceInPatient(mrn: patient.patientId)
: patient.appointmentNo != null
? (model) => model.getInsuranceApproval(patient, ? (model) => model.getInsuranceApproval(patient,
appointmentNo: patient.appointmentNo, appointmentNo: patient.appointmentNo,
projectId: patient.projectId) projectId: patient.projectId)
: (model) => model.getInsuranceApproval(patient), : (model) => model.getInsuranceApproval(patient)
: null,
builder: (BuildContext context, InsuranceViewModel model, Widget child) => builder: (BuildContext context, InsuranceViewModel model, Widget child) =>
AppScaffold( AppScaffold(
isShowAppBar: true, isShowAppBar: true,
baseViewModel: model, baseViewModel: model,
appBar: PatientProfileHeaderNewDesignAppBar( appBar: PatientProfileHeaderNewDesignAppBar(
patient, patient.patientType.toString(), patient.arrivedOn), patient, patient.patientType.toString(), patient.arrivedOn),
body: SingleChildScrollView( body: patientType == "1"
? SingleChildScrollView(
child: Container( child: Container(
child: Column( child: Column(
children: [ children: [
@ -94,7 +106,363 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
Row( Row(
children: [ children: [
AppText( AppText(
model.insuranceApproval[indexInsurance] model
.insuranceApprovalInPatient[
indexInsurance]
.approvalStatusDescption !=
null
? model
.insuranceApprovalInPatient[
indexInsurance]
.approvalStatusDescption ??
""
: "",
color: model
.insuranceApprovalInPatient[
indexInsurance]
.approvalStatusDescption !=
null
? "${model.insuranceApprovalInPatient[indexInsurance].approvalStatusDescption}" ==
"Approved"
? Color(0xff359846)
: Color(0xffD02127)
: Color(0xffD02127),
),
],
),
Row(
children: [
AppText(
model
.insuranceApprovalInPatient[
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(
'https://previews.123rf.com/images/ihorbiliavskyi/ihorbiliavskyi1812/ihorbiliavskyi181200077/114296311-doctor-avatar-icon-profession-logo-male-character-a-man-in-professional-clothes-people-specialists-f.jpg',
fit: BoxFit.fill,
width: 700,
),
),
backgroundColor:
Colors.transparent,
),
),
],
),
Expanded(
child: Padding(
padding:
const EdgeInsets.symmetric(
horizontal: 8.0),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
//mainAxisAlignment: MainAxisAlignment.center,
children: [
SizedBox(
height: 25.0,
),
Row(
children: [
AppText(
'Clinic: ',
color: Colors.grey[500],
fontSize: 14,
),
Expanded(
child: AppText(
model
.insuranceApprovalInPatient[
indexInsurance]
.clinicName,
fontSize: 14,
),
)
],
),
Row(
children: <Widget>[
AppText(
'Approval No: ',
color: Colors.grey[500],
fontSize: 14,
),
AppText(
model
.insuranceApprovalInPatient[
indexInsurance]
.approvalNo
.toString(),
fontSize: 14,
)
],
),
Row(
children: <Widget>[
AppText(
'Unused Count:',
color: Colors.grey[500],
fontSize: 14,
),
AppText(
model
.insuranceApprovalInPatient[
indexInsurance]
.unUsedCount
.toString(),
fontSize: 14,
)
],
),
Row(
children: <Widget>[
AppText(
'Company Name :',
color: Colors.grey[500],
),
AppText('Sample')
],
),
Row(
children: [
AppText(
'Receipt on: ',
color: Colors.grey[500],
),
Expanded(
child: AppText(
'${DateUtils.getDayMonthYearDateFormatted(DateUtils.getDateTimeFromServerFormat(model.insuranceApprovalInPatient[indexInsurance].receiptOn), isArabic: projectViewModel.isArabic)}',
color: Colors.black,
fontWeight:
FontWeight.w600,
),
),
],
),
Row(
children: [
AppText(
'Exp on: ',
color: Colors.grey[500],
),
AppText(
'${DateUtils.getDayMonthYearDateFormatted(DateUtils.getDateTimeFromServerFormat(model.insuranceApprovalInPatient[indexInsurance].expiryDate), isArabic: projectViewModel.isArabic)}',
color: Colors.black,
fontWeight:
FontWeight.w600,
),
],
),
],
),
),
),
],
),
),
SizedBox(
height: 20.0,
),
Container(
child: Column(
children: [
Padding(
padding: const EdgeInsets.symmetric(
horizontal: 8.0),
child: Row(
children: [
Expanded(
child: AppText(
'Procedure',
fontWeight: FontWeight.w700,
),
),
Expanded(
child: AppText(
'Status',
fontWeight: FontWeight.w700,
),
),
Expanded(
child: AppText(
'Usage Status',
fontWeight: FontWeight.w700,
),
)
],
),
),
Divider(
color: Colors.black,
),
Padding(
padding: const EdgeInsets.symmetric(
horizontal: 8.0),
child: ListView.builder(
shrinkWrap: true,
physics: ScrollPhysics(),
itemCount: model
.insuranceApprovalInPatient[
indexInsurance]
.apporvalDetails
.length,
itemBuilder:
(BuildContext context,
int index) {
return Container(
child: Column(
children: [
Row(
children: [
Expanded(
child: Container(
child: AppText(
model
.insuranceApprovalInPatient[
indexInsurance]
?.apporvalDetails[
index]
?.procedureName ??
"",
textAlign:
TextAlign
.start,
),
),
),
Expanded(
child: Container(
child: AppText(
model
.insuranceApprovalInPatient[
indexInsurance]
?.apporvalDetails[
index]
?.status ??
"",
textAlign:
TextAlign
.center,
),
),
),
Expanded(
child: Container(
child: AppText(
model
.insuranceApprovalInPatient[
indexInsurance]
?.apporvalDetails[
index]
?.isInvoicedDesc ??
"",
textAlign:
TextAlign
.center,
),
),
),
],
),
SizedBox(
width: 5,
),
Divider(
color: Colors.black38,
),
],
),
);
}),
),
],
),
),
],
),
),
),
],
),
),
)
: 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: [
AppText(
model
.insuranceApproval[
indexInsurance]
.approvalStatusDescption != .approvalStatusDescption !=
null null
? model ? model
@ -119,7 +487,8 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
Row( Row(
children: [ children: [
AppText( AppText(
model.insuranceApproval[indexInsurance] model
.insuranceApproval[indexInsurance]
.doctorName .doctorName
.toUpperCase(), .toUpperCase(),
color: Colors.black, color: Colors.black,
@ -129,8 +498,8 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
], ],
), ),
Padding( Padding(
padding: padding: const EdgeInsets.symmetric(
const EdgeInsets.symmetric(horizontal: 8.0), horizontal: 8.0),
child: Row( child: Row(
children: [ children: [
Column( Column(
@ -139,13 +508,14 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
height: 85.0, height: 85.0,
width: 85.0, width: 85.0,
child: CircleAvatar( child: CircleAvatar(
radius: radius: SizeConfig
SizeConfig.imageSizeMultiplier * .imageSizeMultiplier *
12, 12,
// radius: (52) // radius: (52)
child: ClipRRect( child: ClipRRect(
borderRadius: borderRadius:
BorderRadius.circular(50), BorderRadius.circular(
50),
child: Image.network( child: Image.network(
model model
.insuranceApproval[ .insuranceApproval[
@ -155,14 +525,16 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
width: 700, width: 700,
), ),
), ),
backgroundColor: Colors.transparent, backgroundColor:
Colors.transparent,
), ),
), ),
], ],
), ),
Expanded( Expanded(
child: Padding( child: Padding(
padding: const EdgeInsets.symmetric( padding:
const EdgeInsets.symmetric(
horizontal: 8.0), horizontal: 8.0),
child: Column( child: Column(
crossAxisAlignment: crossAxisAlignment:
@ -214,14 +586,14 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
color: Colors.grey[500], color: Colors.grey[500],
fontSize: 14, fontSize: 14,
), ),
AppText(model AppText(
model
.insuranceApproval[ .insuranceApproval[
indexInsurance] indexInsurance]
.unUsedCount .unUsedCount
.toString(), .toString(),
fontSize: 14, fontSize: 14,
) )
], ],
), ),
Row( Row(
@ -243,7 +615,8 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
child: AppText( child: AppText(
'${DateUtils.getDayMonthYearDateFormatted(DateUtils.getDateTimeFromServerFormat(model.insuranceApproval[indexInsurance].rceiptOn), isArabic: projectViewModel.isArabic)}', '${DateUtils.getDayMonthYearDateFormatted(DateUtils.getDateTimeFromServerFormat(model.insuranceApproval[indexInsurance].rceiptOn), isArabic: projectViewModel.isArabic)}',
color: Colors.black, color: Colors.black,
fontWeight: FontWeight.w600, fontWeight:
FontWeight.w600,
), ),
), ),
], ],
@ -257,7 +630,8 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
AppText( AppText(
'${DateUtils.getDayMonthYearDateFormatted(DateUtils.getDateTimeFromServerFormat(model.insuranceApproval[indexInsurance].expiryDate), isArabic: projectViewModel.isArabic)}', '${DateUtils.getDayMonthYearDateFormatted(DateUtils.getDateTimeFromServerFormat(model.insuranceApproval[indexInsurance].expiryDate), isArabic: projectViewModel.isArabic)}',
color: Colors.black, color: Colors.black,
fontWeight: FontWeight.w600, fontWeight:
FontWeight.w600,
), ),
], ],
), ),
@ -310,55 +684,71 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
shrinkWrap: true, shrinkWrap: true,
physics: ScrollPhysics(), physics: ScrollPhysics(),
itemCount: model itemCount: model
.insuranceApproval[indexInsurance] .insuranceApproval[
indexInsurance]
.apporvalDetails .apporvalDetails
.length, .length,
itemBuilder: (BuildContext context, itemBuilder:
(BuildContext context,
int index) { int index) {
return Container( return Container(
child: Column( child: Column(
children: [ children: [
Row( Row(
children: [ children: [
Expanded( Expanded(
child: Container( child: Container(
child: AppText(
child: AppText(model model
.insuranceApproval[ .insuranceApproval[
indexInsurance] indexInsurance]
?.apporvalDetails[ ?.apporvalDetails[
index] index]
?.procedureName ?? ?.procedureName ??
"",textAlign: TextAlign.start,), "",
textAlign:
TextAlign
.start,
),
), ),
), ),
Expanded( Expanded(
child: Container( child: Container(
child: AppText(
child: AppText(model model
.insuranceApproval[ .insuranceApproval[
indexInsurance] indexInsurance]
?.apporvalDetails[ ?.apporvalDetails[
index] index]
?.status ?? ?.status ??
"",textAlign: TextAlign.center,), "",
textAlign:
TextAlign
.center,
),
), ),
), ),
Expanded( Expanded(
child: Container( child: Container(
child: AppText(model child: AppText(
model
.insuranceApproval[ .insuranceApproval[
indexInsurance] indexInsurance]
?.apporvalDetails[ ?.apporvalDetails[
index] index]
?.isInvoicedDesc ?? ?.isInvoicedDesc ??
"",textAlign: TextAlign.center,), "",
textAlign:
TextAlign
.center,
),
), ),
), ),
], ],
), ),
SizedBox(width: 5,), SizedBox(
width: 5,
),
Divider( Divider(
color: Colors.black38, color: Colors.black38,
), ),
@ -367,7 +757,6 @@ class _InsuranceApprovalsDetailsState extends State<InsuranceApprovalsDetails> {
); );
}), }),
), ),
], ],
), ),
), ),

@ -41,7 +41,7 @@ class DoctorCardInsurance extends StatelessWidget {
ProjectViewModel projectViewModel = Provider.of(context); ProjectViewModel projectViewModel = Provider.of(context);
return Container( return Container(
width: double.maxFinite, width: double.maxFinite,
height: 160, //height: 160,
margin: EdgeInsets.all(10), margin: EdgeInsets.all(10),
padding: EdgeInsets.only(left: 0, right: 5, bottom: 5, top: 5), padding: EdgeInsets.only(left: 0, right: 5, bottom: 5, top: 5),
decoration: BoxDecoration( decoration: BoxDecoration(

Loading…
Cancel
Save