Merge branch 'development' of https://gitlab.com/Cloud_Solution/doctor_app_flutter into Stepper_header

merge-requests/484/head
Elham Rababah 4 years ago
commit b178bc418e

@ -599,8 +599,8 @@ const Map<String, Map<String, String>> localizedValues = {
'addAssessment': {'en': "Add ASSESSMENT", 'ar': "أضف التقييم"},
'assessment': {'en': "ASSESSMENT", 'ar': " التقييم"},
'physicalSystemExamination': {
'en': "Physical/System Examination",
'ar': " الفحص البدني / النظام"
'en': "Physical System / Examination",
'ar': "الفحص البدني / النظام"
},
'searchExamination': {'en': "Search Examination", 'ar': "فحص البحث"},
'addExamination': {'en': "Add Examination", 'ar': "اضافه"},

@ -58,6 +58,7 @@ class InsuranceApprovalModel {
String approvalStatusDescption;
int unUsedCount;
String doctorImage;
String projectName;
//String companyName;
String expiryDate;
@ -91,7 +92,8 @@ class InsuranceApprovalModel {
this.rceiptOn,
this.apporvalDetails,
this.appointmentNo,
this.doctorImage});
this.doctorImage,
this.projectName});
//InsuranceApprovalDetails x = InsuranceApprovalDetails();
@ -115,6 +117,7 @@ class InsuranceApprovalModel {
deviceTypeID = json['DeviceTypeID'];
patientID = json['PatientID'];
tokenID = json['TokenID'];
projectName = json['ProjectName'];
patientTypeID = json['PatientTypeID'];
patientType = json['PatientType'];
eXuldAPPNO = json['EXuldAPPNO'];
@ -148,6 +151,7 @@ class InsuranceApprovalModel {
data['PatientID'] = this.patientID;
data['TokenID'] = this.tokenID;
data['DoctorImageURL'] = this.doctorImage;
data['ProjectName'] = this.projectName;
data['PatientTypeID'] = this.patientTypeID;
data['PatientType'] = this.patientType;

@ -23,8 +23,8 @@ class InsuranceViewModel extends BaseViewModel{
else
await _insuranceCardService.getInsuranceApproval(patient);
if (_insuranceCardService.hasError) {
error = _insuranceCardService.error;
setState(ViewState.ErrorLocal);
error = "No Insurance Approval Found";
setState(ViewState.Error);
} else
setState(ViewState.Idle);
}

@ -244,12 +244,15 @@ class PrescriptionViewModel extends BaseViewModel {
}
}
getPrescriptions(PatiantInformtion patient) async {
getPrescriptions(PatiantInformtion patient, {String patientType}) async {
setState(ViewState.Busy);
await _prescriptionsService.getPrescriptions(patient);
if (_prescriptionsService.hasError) {
error = _prescriptionsService.error;
setState(ViewState.Error);
if(patientType=="7")
setState(ViewState.ErrorLocal);
else
setState(ViewState.Error);
} else {
_filterList();
await _getPrescriptionsOrders();

@ -55,14 +55,17 @@ class ProcedureViewModel extends BaseViewModel {
? _patientLabOrdersListClinic
: _patientLabOrdersListHospital;
Future getProcedure({int mrn}) async {
Future getProcedure({int mrn,String patientType}) async {
hasError = false;
//_insuranceCardService.clearInsuranceCard();
setState(ViewState.Busy);
await _procedureService.getProcedure(mrn: mrn);
if (_procedureService.hasError) {
error = _procedureService.error;
setState(ViewState.Error);
if(patientType=="7")
setState(ViewState.ErrorLocal);
else
setState(ViewState.Error);
} else
setState(ViewState.Idle);
}
@ -136,12 +139,15 @@ class ProcedureViewModel extends BaseViewModel {
//await getProcedure(mrn: mrn);
}
void getPatientRadOrders(PatiantInformtion patient) async {
void getPatientRadOrders(PatiantInformtion patient,{String patientType}) async {
setState(ViewState.Busy);
await _radiologyService.getPatientRadOrders(patient);
if (_radiologyService.hasError) {
error = _radiologyService.error;
setState(ViewState.Error);
if(patientType=="7")
setState(ViewState.ErrorLocal);
else
setState(ViewState.Error);
} else {
_radiologyService.finalRadiologyList.forEach((element) {
List<FinalRadiologyList> finalRadiologyListClinic =
@ -220,12 +226,15 @@ class ProcedureViewModel extends BaseViewModel {
return labResultLists;
}
void getLabs(PatiantInformtion patient) async {
void getLabs(PatiantInformtion patient,{bool isArrived}) async {
setState(ViewState.Busy);
await _labsService.getPatientLabOrdersList(patient);
if (_labsService.hasError) {
error = _labsService.error;
if(isArrived)
setState(ViewState.ErrorLocal);
else
setState(ViewState.Error);
} else {
_labsService.patientLabOrdersList.forEach((element) {
List<PatientLabOrdersList> patientLabOrdersClinic =

@ -2355,6 +2355,34 @@
"search": [
"verify-sms"
]
},
{
"uid": "efc8c6ed2dab146bc55ca80fdd9bc511",
"css": "124",
"code": 59555,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M315.2 3.2L315.2 3.2A45.2 45.2 0 0 1 322.4 3.2S326 3.2 328.4 3.2H328.4A42.4 42.4 0 0 1 336 3.2H336A26.4 26.4 0 0 1 342 3.2H342A37.6 37.6 0 0 1 346.8 6.8 40 40 0 0 1 353.6 11.6L353.6 11.6 600.8 278.8A40 40 0 0 1 604.4 335.2 40 40 0 0 1 547.6 335.2L370 142.8V920H1250A40 40 0 0 1 1250 1000H330A40 40 0 0 1 290 960V129.2L66.4 329.2A40 40 0 0 1 10 325.6 40 40 0 0 1 0 299.2 40 40 0 0 1 13.2 269.2L304.8 10.4A36.4 36.4 0 0 1 310 7.2 40 40 0 0 1 315.2 3.2Z",
"width": 1290
},
"search": [
"124"
]
},
{
"uid": "2251120e332d8914aca7fb2d3fbe00f2",
"css": "123",
"code": 59556,
"src": "custom_icons",
"selected": true,
"svg": {
"path": "M773 755.3S773 755.3 773 755.3A38.8 38.8 0 0 0 773 749.5 21.7 21.7 0 0 0 773 745.1V745.1A55.8 55.8 0 0 0 773 739.2H773A25.7 25.7 0 0 0 773 734.6V734.6S770.9 732.1 769.9 730.5A31 31 0 0 0 766.2 725.3H766.2L558.1 529.6A31 31 0 0 0 514.1 531.5 31 31 0 0 0 516 575.2L665.1 713.2H62V31A31 31 0 0 0 0 31V744.2A31 31 0 0 0 31 775.2H675.3L520.3 948.5A31 31 0 1 0 566.8 989.5L766.2 764.7S766.2 762.2 768.4 760.9A33.5 33.5 0 0 0 773 755.3Z",
"width": 775
},
"search": [
"123"
]
}
]
]
}

@ -1,8 +1,14 @@
import '../patiant_info_model.dart';
class PendingReferral {
PatiantInformtion patientDetails;
String doctorImageUrl;
String nationalityFlagUrl;
String responded;
String answerFromTarget;
String createdOn;
int data;
int isSameBranch;
String editedOn;
int interBranchReferral;
int patientID;
@ -27,41 +33,51 @@ class PendingReferral {
String targetSetupID;
bool isReferralDoctorSameBranch;
PendingReferral(
{this.responded,
this.answerFromTarget,
this.createdOn,
this.data,
this.editedOn,
this.interBranchReferral,
this.patientID,
this.patientName,
this.patientType,
this.referralNo,
this.referralStatus,
this.referredByDoctorInfo,
this.referredFromBranchName,
this.referredOn,
this.referredType,
this.remarksFromSource,
this.respondedOn,
this.sourceAppointmentNo,
this.sourceProjectId,
this.sourceSetupID,
this.startDate,
this.targetAppointmentNo,
this.targetClinicID,
this.targetDoctorID,
this.targetProjectId,
this.targetSetupID,
this.isReferralDoctorSameBranch,
});
PendingReferral({
this.patientDetails,
this.doctorImageUrl,
this.nationalityFlagUrl,
this.responded,
this.answerFromTarget,
this.createdOn,
this.data,
this.isSameBranch,
this.editedOn,
this.interBranchReferral,
this.patientID,
this.patientName,
this.patientType,
this.referralNo,
this.referralStatus,
this.referredByDoctorInfo,
this.referredFromBranchName,
this.referredOn,
this.referredType,
this.remarksFromSource,
this.respondedOn,
this.sourceAppointmentNo,
this.sourceProjectId,
this.sourceSetupID,
this.startDate,
this.targetAppointmentNo,
this.targetClinicID,
this.targetDoctorID,
this.targetProjectId,
this.targetSetupID,
this.isReferralDoctorSameBranch,
});
PendingReferral.fromJson(Map<String, dynamic> json) {
patientDetails = json['patientDetails'] != null
? PatiantInformtion.fromJson(json['patientDetails'])
: null;
doctorImageUrl = json['DoctorImageURL'];
nationalityFlagUrl = json['NationalityFlagURL'];
responded = json['Responded'];
answerFromTarget = json['answerFromTarget'];
createdOn = json['createdOn'];
data = json['data'];
isSameBranch = json['isSameBranch'];
editedOn = json['editedOn'];
interBranchReferral = json['interBranchReferral'];
patientID = json['patientID'];
@ -88,10 +104,13 @@ class PendingReferral {
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>();
data['DoctorImageURL'] = this.doctorImageUrl;
data['NationalityFlagURL'] = this.nationalityFlagUrl;
data['Responded'] = this.responded;
data['answerFromTarget'] = this.answerFromTarget;
data['createdOn'] = this.createdOn;
data['data'] = this.data;
data['isSameBranch'] = this.isSameBranch;
data['editedOn'] = this.editedOn;
data['interBranchReferral'] = this.interBranchReferral;
data['patientID'] = this.patientID;
@ -116,4 +135,4 @@ class PendingReferral {
data['targetSetupID'] = this.targetSetupID;
return data;
}
}
}

@ -79,7 +79,8 @@ class _DashboardScreenState extends State<DashboardScreen> {
PatientID: 0,
From: DateUtils.convertDateToFormat(DateTime.now(), 'yyyy-MM-dd')
.toString(),
To: DateUtils.convertDateToFormat(DateTime.now(), 'yyyy-MM-dd')
To: DateUtils.convertDateToFormat(
DateTime.now().add(Duration(days: 6, hours: 0)), 'yyyy-MM-dd')
.toString(),
LanguageID: 2,
stamp: "2020-03-02T13:56:39.170Z",
@ -1020,12 +1021,12 @@ class _DashboardScreenState extends State<DashboardScreen> {
),
hasBorder: false,
onTap: () {
// Navigator.push(
// context,
// MaterialPageRoute(
// builder: (context) =>
// SearchMedicinePatientScreen(),
// ));
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
SearchMedicinePatientScreen(),
));
},
)
],

@ -9,6 +9,7 @@ import 'package:doctor_app_flutter/util/helpers.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/patients/profile/patient-profile-header-new-design.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/patient_profile_header_with_appointment_card_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';
@ -26,6 +27,11 @@ class MedicalFileDetails extends StatefulWidget {
int encounterNumber;
int pp;
PatiantInformtion patient;
String clinicName;
String episode;
String doctorName;
String vistDate;
String doctorImage;
MedicalFileDetails(
{this.age,
@ -34,7 +40,12 @@ class MedicalFileDetails extends StatefulWidget {
this.gender,
this.encounterNumber,
this.pp,
this.patient});
this.patient,
this.doctorName,
this.vistDate,
this.clinicName,
this.episode,
this.doctorImage});
@override
_MedicalFileDetailsState createState() => _MedicalFileDetailsState(
@ -45,6 +56,11 @@ class MedicalFileDetails extends StatefulWidget {
encounterNumber: encounterNumber,
pp: pp,
patient: patient,
clinicName: clinicName,
doctorName: doctorName,
episode: episode,
vistDate: vistDate,
doctorImage: doctorImage,
);
}
@ -56,6 +72,11 @@ class _MedicalFileDetailsState extends State<MedicalFileDetails> {
String gender;
int pp;
PatiantInformtion patient;
String clinicName;
String episode;
String doctorName;
String vistDate;
String doctorImage;
_MedicalFileDetailsState(
{this.age,
@ -64,7 +85,12 @@ class _MedicalFileDetailsState extends State<MedicalFileDetails> {
this.gender,
this.encounterNumber,
this.pp,
this.patient});
this.patient,
this.doctorName,
this.vistDate,
this.clinicName,
this.episode,
this.doctorImage});
bool isPhysicalExam = true;
bool isProcedureExpand = true;
bool isHistoryExpand = true;
@ -78,8 +104,21 @@ class _MedicalFileDetailsState extends State<MedicalFileDetails> {
builder:
(BuildContext context, MedicalFileViewModel model, Widget child) =>
AppScaffold(
appBar: PatientProfileHeaderNewDesignAppBar(
patient, patient.patientType.toString(), patient.arrivedOn),
appBar: PatientProfileHeaderWhitAppointmentAppBar(
patient: patient,
patientType: patient.patientType.toString() ?? "0",
arrivalType: patient.arrivedOn.toString() ?? 0,
doctorName: doctorName,
profileUrl: doctorImage,
clinic: clinicName,
isPrescriptions: true,
isMedicalFile: true,
episode: episode,
vistDate:
'${DateUtils.getDayMonthYearDateFormatted(DateUtils.getDateTimeFromServerFormat(
vistDate,
), isArabic: projectViewModel.isArabic)}',
),
isShowAppBar: true,
appBarTitle: TranslationBase.of(context).medicalReport.toUpperCase(),
body: NetworkBaseView(
@ -105,160 +144,160 @@ class _MedicalFileDetailsState extends State<MedicalFileDetails> {
child: Container(
child: Column(
children: [
Container(
width: double.infinity,
margin: EdgeInsets.only(
top: 10, left: 10, right: 10),
padding: EdgeInsets.all(8.0),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.all(
Radius.circular(10.0),
),
border: Border.all(
color: Colors.grey[200], width: 0.5),
),
child: Column(
children: [
Row(
children: [
if (model.medicalFileList.length !=
0 &&
model
.medicalFileList[0]
.entityList[0]
.timelines[
encounterNumber]
.timeLineEvents[0]
.consulations
.length !=
0)
Expanded(
child: AppText(
model
.medicalFileList[0]
.entityList[0]
.timelines[
encounterNumber]
.timeLineEvents[0]
.consulations[0]
.doctorName
.toUpperCase(),
fontWeight: FontWeight.w700,
),
),
],
),
if (model.medicalFileList.length != 0)
Row(
children: [
AppText(
TranslationBase.of(context)
.clinic +
": ",
),
if (model.medicalFileList
.length !=
0 &&
model
.medicalFileList[0]
.entityList[0]
.timelines[
encounterNumber]
.timeLineEvents[0]
.consulations
.length !=
0)
AppText(
model
.medicalFileList[0]
.entityList[0]
.timelines[
encounterNumber]
.timeLineEvents[0]
.consulations[0]
.clinicName,
fontWeight: FontWeight.w700,
),
],
),
Row(
children: [
AppText(
TranslationBase.of(context)
.episode +
": ",
//fontWeight: FontWeight.w700,
),
if (model.medicalFileList.length !=
0 &&
model
.medicalFileList[0]
.entityList[0]
.timelines[
encounterNumber]
.timeLineEvents[0]
.consulations
.length !=
0)
AppText(
model
.medicalFileList[0]
.entityList[0]
.timelines[encounterNumber]
.timeLineEvents[0]
.consulations[0]
.episodeID
.toString(),
fontWeight: FontWeight.w700,
),
],
),
Row(
children: [
AppText(
TranslationBase.of(context)
.visitDate +
": ",
//fontWeight: FontWeight.w700,
),
if (model.medicalFileList.length !=
0 &&
model
.medicalFileList[0]
.entityList[0]
.timelines[
encounterNumber]
.timeLineEvents[0]
.consulations
.length !=
0)
AppText(
'${DateUtils.getDayMonthYearDateFormatted(DateUtils.getDateTimeFromServerFormat(
model
.medicalFileList[0]
.entityList[0]
.timelines[
encounterNumber]
.date,
), isArabic: projectViewModel.isArabic)}',
color: Colors.black,
fontWeight: FontWeight.w700,
fontSize: 14,
),
SizedBox(width: 35.0),
// AppText(
// 'Appt Date : ',
// fontWeight: FontWeight.w700,
// ),
// AppText(
// '23/12/2020',
// ),
],
),
],
),
),
// Container(
// width: double.infinity,
// margin: EdgeInsets.only(
// top: 10, left: 10, right: 10),
// padding: EdgeInsets.all(8.0),
// decoration: BoxDecoration(
// color: Colors.white,
// borderRadius: BorderRadius.all(
// Radius.circular(10.0),
// ),
// border: Border.all(
// color: Colors.grey[200], width: 0.5),
// ),
// child: Column(
// children: [
// Row(
// children: [
// if (model.medicalFileList.length !=
// 0 &&
// model
// .medicalFileList[0]
// .entityList[0]
// .timelines[
// encounterNumber]
// .timeLineEvents[0]
// .consulations
// .length !=
// 0)
// Expanded(
// child: AppText(
// model
// .medicalFileList[0]
// .entityList[0]
// .timelines[
// encounterNumber]
// .timeLineEvents[0]
// .consulations[0]
// .doctorName
// .toUpperCase(),
// fontWeight: FontWeight.w700,
// ),
// ),
// ],
// ),
// if (model.medicalFileList.length != 0)
// Row(
// children: [
// AppText(
// TranslationBase.of(context)
// .clinic +
// ": ",
// ),
// if (model.medicalFileList
// .length !=
// 0 &&
// model
// .medicalFileList[0]
// .entityList[0]
// .timelines[
// encounterNumber]
// .timeLineEvents[0]
// .consulations
// .length !=
// 0)
// AppText(
// model
// .medicalFileList[0]
// .entityList[0]
// .timelines[
// encounterNumber]
// .timeLineEvents[0]
// .consulations[0]
// .clinicName,
// fontWeight: FontWeight.w700,
// ),
// ],
// ),
// Row(
// children: [
// AppText(
// TranslationBase.of(context)
// .episode +
// ": ",
// //fontWeight: FontWeight.w700,
// ),
// if (model.medicalFileList.length !=
// 0 &&
// model
// .medicalFileList[0]
// .entityList[0]
// .timelines[
// encounterNumber]
// .timeLineEvents[0]
// .consulations
// .length !=
// 0)
// AppText(
// model
// .medicalFileList[0]
// .entityList[0]
// .timelines[encounterNumber]
// .timeLineEvents[0]
// .consulations[0]
// .episodeID
// .toString(),
// fontWeight: FontWeight.w700,
// ),
// ],
// ),
// Row(
// children: [
// AppText(
// TranslationBase.of(context)
// .visitDate +
// ": ",
// //fontWeight: FontWeight.w700,
// ),
// if (model.medicalFileList.length !=
// 0 &&
// model
// .medicalFileList[0]
// .entityList[0]
// .timelines[
// encounterNumber]
// .timeLineEvents[0]
// .consulations
// .length !=
// 0)
// AppText(
// '${DateUtils.getDayMonthYearDateFormatted(DateUtils.getDateTimeFromServerFormat(
// model
// .medicalFileList[0]
// .entityList[0]
// .timelines[
// encounterNumber]
// .date,
// ), isArabic: projectViewModel.isArabic)}',
// color: Colors.black,
// fontWeight: FontWeight.w700,
// fontSize: 14,
// ),
// SizedBox(width: 35.0),
// // AppText(
// // 'Appt Date : ',
// // fontWeight: FontWeight.w700,
// // ),
// // AppText(
// // '23/12/2020',
// // ),
// ],
// ),
// ],
// ),
// ),
SizedBox(height: 25.0),
if (model.medicalFileList.length != 0 &&

@ -110,6 +110,36 @@ class _MedicalFilePageState extends State<MedicalFilePage> {
encounterNumber: index,
pp: patient.patientId,
patient: patient,
doctorName: model
.medicalFileList[0]
.entityList[0]
.timelines[index]
.doctorName,
clinicName: model
.medicalFileList[0]
.entityList[0]
.timelines[index]
.clinicName,
doctorImage: model
.medicalFileList[0]
.entityList[0]
.timelines[index]
.doctorImage,
episode: model
.medicalFileList[0]
.entityList[0]
.timelines[index]
.timeLineEvents[0]
.consulations[0]
.episodeID
.toString(),
vistDate: model
.medicalFileList[0]
.entityList[0]
.timelines[index]
.date
.toString()
.toString(),
)),
);
},

@ -54,628 +54,89 @@ class _InsuranceApprovalScreenNewState
appBarTitle: TranslationBase.of(context).approvals,
body: SingleChildScrollView(
child: Container(
margin: EdgeInsets.only(
left: SizeConfig.screenWidth * 0.004,
right: SizeConfig.screenWidth * 0.004,
top: SizeConfig.screenWidth * 0.04,
),
child: model.insuranceApproval.length != 0
? Column(
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: 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,
),
],
),
],
),
margin: EdgeInsets.only(
left: SizeConfig.screenWidth * 0.004,
right: SizeConfig.screenWidth * 0.004,
top: SizeConfig.screenWidth * 0.04,
),
child: model.insuranceApproval.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.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]
.approvalStatusDescption ??
'',
),
),
...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]
.approvalStatusDescption ??
'',
branch2:
model.insuranceApproval[index].projectName,
),
),
// (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]
// .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,
// ),
// ],
// ),
// ),
// ],
// ),
// ],
// ),
// ),
),
],
)
: Column(
children: [
Container(
height: 200,
width: double.infinity,
child: Center(
child: Text("No Insurance Approvals Found")))
],
)),
),
],
)
: Column(
children: [
Container(
height: 200,
width: double.infinity,
child: Center(
child: Text("No Insurance Approvals Found")))
],
),
),
),
),
);
}
convertDateFormat(String Date) {
const start = "/Date(";
const end = "+0300)";
final startIndex = Date.indexOf(start);
final endIndex = Date.indexOf(end, startIndex + start.length);
var date = new DateTime.fromMillisecondsSinceEpoch(
int.parse(Date.substring(startIndex + start.length, endIndex)));
String newDate = date.year.toString() +
"-" +
date.month.toString().padLeft(2, '0') +
"-" +
date.day.toString().padLeft(2, '0');
return newDate.toString();
}
}

@ -176,11 +176,12 @@ class _PatientsScreenState extends State<PatientsScreen> {
patiantAppointment =
convertDateFormat(responseModelList[i].appointmentDate);
}
if (patiantAppointment != null) {
String dateAppointment = checkDate(patiantAppointment);
String dateAppointment = checkDate(patiantAppointment);
if (dateAppointment.contains(str) || str == 'All') {
filterDate.add(responseModelList[i]);
if (dateAppointment.contains(str) || str == 'All') {
filterDate.add(responseModelList[i]);
}
}
} catch (e) {
print(e);

@ -44,6 +44,12 @@ class _AdmissionRequestThirdScreenState
bool _isSickLeaveRequired = false;
bool _patientPregnant = false;
String clinicError;
String doctorError;
String sickLeaveCommentError;
String medicalHistoryError;
String surgicalHistoryError;
@override
Widget build(BuildContext context) {
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
@ -117,6 +123,7 @@ class _AdmissionRequestThirdScreenState
height: screenSize.height * 0.075,
hintText: TranslationBase.of(context).clinic,
isDropDown: true,
validationError: clinicError,
dropDownText: _selectedClinic != null
? projectViewModel.isArabic? _selectedClinic['clinicNameArabic'] : _selectedClinic['clinicNameEnglish']
: null,
@ -170,6 +177,7 @@ class _AdmissionRequestThirdScreenState
? _selectedDoctor['DoctorName']
: null,
enabled: false,
validationError: doctorError,
onClick: _selectedClinic != null
? model.doctorsList != null &&
model.doctorsList.length > 0
@ -263,6 +271,7 @@ class _AdmissionRequestThirdScreenState
controller: _sickLeaveCommentsController,
minLines: 2,
maxLines: 4,
validationError: sickLeaveCommentError,
inputType: TextInputType.multiline,
),
SizedBox(
@ -331,6 +340,7 @@ class _AdmissionRequestThirdScreenState
controller: _postMedicalHistoryController,
minLines: 4,
maxLines: 6,
validationError: medicalHistoryError,
inputType: TextInputType.multiline,
),
SizedBox(
@ -341,6 +351,7 @@ class _AdmissionRequestThirdScreenState
controller: _postSurgicalHistoryController,
minLines: 2,
maxLines: 4,
validationError: surgicalHistoryError,
inputType: TextInputType.multiline,
),
],
@ -401,6 +412,34 @@ class _AdmissionRequestThirdScreenState
} else {
DrAppToastMsg.showErrorToast(
TranslationBase.of(context).pleaseFill);
setState(() {
if(_selectedClinic == null){
clinicError = TranslationBase.of(context).fieldRequired;
}else {
clinicError = null;
}
if(_selectedDoctor == null){
doctorError = TranslationBase.of(context).fieldRequired;
}else {
doctorError = null;
}
if(_sickLeaveCommentsController.text == ""){
sickLeaveCommentError = TranslationBase.of(context).fieldRequired;
}else {
sickLeaveCommentError = null;
}
if(_postMedicalHistoryController.text == ""){
medicalHistoryError = TranslationBase.of(context).fieldRequired;
}else {
medicalHistoryError = null;
}
if(_postSurgicalHistoryController.text == ""){
surgicalHistoryError = TranslationBase.of(context).fieldRequired;
}else {
surgicalHistoryError = null;
}
});
}
},
),

@ -38,6 +38,10 @@ class _AdmissionRequestThirdScreenState
dynamic _selectedIcd;
dynamic _selectedDiagnosisType;
String diagnosisError;
String icdError;
String diagnosisTypeError;
@override
Widget build(BuildContext context) {
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
@ -112,6 +116,7 @@ class _AdmissionRequestThirdScreenState
: null,
enabled: false,
isDropDown: true,
validationError: diagnosisError,
onClick: model.diagnosisTypesList != null &&
model.diagnosisTypesList.length > 0
? () {
@ -157,6 +162,7 @@ class _AdmissionRequestThirdScreenState
: null,
enabled: false,
isDropDown: true,
validationError: icdError,
onClick: model.icdCodes != null &&
model.icdCodes.length > 0
? () {
@ -204,6 +210,7 @@ class _AdmissionRequestThirdScreenState
: null,
enabled: false,
isDropDown: true,
validationError: diagnosisTypeError,
onClick: model.listOfDiagnosisSelectionTypes !=
null &&
model.listOfDiagnosisSelectionTypes.length >
@ -312,6 +319,26 @@ class _AdmissionRequestThirdScreenState
} else {
DrAppToastMsg.showErrorToast(
TranslationBase.of(context).pleaseFill);
setState(() {
if(_selectedDiagnosis == null){
diagnosisError = TranslationBase.of(context).fieldRequired;
}else {
diagnosisError = null;
}
if(_selectedIcd == null){
icdError = TranslationBase.of(context).fieldRequired;
}else {
icdError = null;
}
if(_selectedDiagnosisType == null){
diagnosisTypeError = TranslationBase.of(context).fieldRequired;
}else {
diagnosisTypeError = null;
}
});
}
},
),

@ -50,6 +50,18 @@ class _AdmissionRequestSecondScreenState
dynamic _selectedRoomCategory;
dynamic _selectedAdmissionType;
String costError;
String plansError;
String otherInterventionsError;
String expectedDaysError;
String expectedDatesError;
String floorError;
String roomError;
String treatmentsError;
String complicationsError;
String proceduresError;
String admissionTypeError;
@override
Widget build(BuildContext context) {
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
@ -125,6 +137,7 @@ class _AdmissionRequestSecondScreenState
hintText:
TranslationBase.of(context).estimatedCost,
controller: _estimatedCostController,
validationError: costError,
inputType: TextInputType.number,
inputFormatters: [
FilteringTextInputFormatter.allow(
@ -138,6 +151,7 @@ class _AdmissionRequestSecondScreenState
hintText: TranslationBase.of(context).postPlans,
controller: _postPlansEstimatedCostController,
inputType: TextInputType.multiline,
validationError: plansError,
minLines: 4,
maxLines: 6,
),
@ -150,6 +164,7 @@ class _AdmissionRequestSecondScreenState
controller:
_otherDepartmentsInterventionsController,
inputType: TextInputType.multiline,
validationError: otherInterventionsError,
minLines: 2,
maxLines: 4,
),
@ -170,6 +185,7 @@ class _AdmissionRequestSecondScreenState
hintText:
TranslationBase.of(context).expectedDays,
controller: _expectedDaysController,
validationError: expectedDaysError,
inputType: TextInputType.number,
inputFormatters: [
FilteringTextInputFormatter.allow(
@ -188,6 +204,7 @@ class _AdmissionRequestSecondScreenState
: null,
enabled: false,
isDropDown: true,
validationError: expectedDatesError,
suffixIcon: Icon(
Icons.calendar_today,
color: Colors.black,
@ -215,6 +232,7 @@ class _AdmissionRequestSecondScreenState
: null,
enabled: false,
isDropDown: true,
validationError: floorError,
onClick: model.floorList != null &&
model.floorList.length > 0
? () {
@ -314,6 +332,7 @@ class _AdmissionRequestSecondScreenState
: null,
enabled: false,
isDropDown: true,
validationError: roomError,
onClick: model.roomCategoryList != null &&
model.roomCategoryList.length > 0
? () {
@ -365,6 +384,7 @@ class _AdmissionRequestSecondScreenState
TranslationBase.of(context).treatmentLine,
controller: _treatmentLineController,
inputType: TextInputType.multiline,
validationError: treatmentsError,
minLines: 3,
maxLines: 5,
),
@ -376,6 +396,7 @@ class _AdmissionRequestSecondScreenState
TranslationBase.of(context).complications,
controller: _complicationsController,
inputType: TextInputType.multiline,
validationError: complicationsError,
minLines: 3,
maxLines: 5,
),
@ -387,6 +408,7 @@ class _AdmissionRequestSecondScreenState
TranslationBase.of(context).otherProcedure,
controller: _otherProceduresController,
inputType: TextInputType.multiline,
validationError: proceduresError,
minLines: 3,
maxLines: 5,
),
@ -402,6 +424,7 @@ class _AdmissionRequestSecondScreenState
: null,
enabled: false,
isDropDown: true,
validationError: admissionTypeError,
onClick: model.admissionTypeList != null &&
model.admissionTypeList.length > 0
? () {
@ -533,6 +556,75 @@ class _AdmissionRequestSecondScreenState
} else {
DrAppToastMsg.showErrorToast(
TranslationBase.of(context).pleaseFill);
setState(() {
if (_estimatedCostController.text == "") {
costError = TranslationBase.of(context).fieldRequired;
} else {
costError = null;
}
if (_postPlansEstimatedCostController.text == "") {
plansError = TranslationBase.of(context).fieldRequired;
} else {
plansError = null;
}
if (_expectedDaysController.text == "") {
expectedDaysError = TranslationBase.of(context).fieldRequired;
} else {
expectedDaysError = null;
}
if (_expectedAdmissionDate == null) {
expectedDatesError = TranslationBase.of(context).fieldRequired;
} else {
expectedDatesError = null;
}
if (_otherDepartmentsInterventionsController.text == "") {
otherInterventionsError = TranslationBase.of(context).fieldRequired;
} else {
otherInterventionsError = null;
}
if (_selectedFloor == null) {
floorError = TranslationBase.of(context).fieldRequired;
} else {
floorError = null;
}
if (_selectedRoomCategory == null) {
roomError = TranslationBase.of(context).fieldRequired;
} else {
roomError = null;
}
if (_treatmentLineController.text == "") {
treatmentsError = TranslationBase.of(context).fieldRequired;
} else {
treatmentsError = null;
}
if (_complicationsController.text == "") {
complicationsError = TranslationBase.of(context).fieldRequired;
} else {
complicationsError = null;
}
if (_otherProceduresController.text == "") {
proceduresError = TranslationBase.of(context).fieldRequired;
} else {
proceduresError = null;
}
if (_selectedAdmissionType == null) {
admissionTypeError = TranslationBase.of(context).fieldRequired;
} else {
admissionTypeError = null;
}
});
}
},
),

@ -32,9 +32,10 @@ class LabsHomePage extends StatelessWidget {
arrivalType = routeArgs['arrivalType'];
print(arrivalType);
return BaseView<ProcedureViewModel>(
onModelReady: (model) => model.getLabs(patient),
onModelReady: (model) => model.getLabs(patient,isArrived: (patientType != null && patientType == '7' && patient.patientStatusType == 43)),
builder: (context, ProcedureViewModel model, widget) => AppScaffold(
baseViewModel: model,
backgroundColor: Colors.grey[100],
isShowAppBar: true,
appBar: PatientProfileHeaderNewDesignAppBar(
patient, patient.patientType.toString() ?? '0', patientType),
@ -48,6 +49,7 @@ class LabsHomePage extends StatelessWidget {
SizedBox(
height: 12,
),
if(model.patientLabOrdersList.isNotEmpty && patient.patientStatusType != 43)
Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
@ -67,9 +69,27 @@ class LabsHomePage extends StatelessWidget {
],
),
),
if (patientType != null &&
patientType == '7' &&
patient.patientStatusType == 43)
if(patient.patientStatusType == 43)
Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Texts(
'Lab',
style: "caption2",
color: Colors.black,
fontSize: 13,
),
Texts(
'Result',
bold: true,
fontSize: 22,
),
],
),
),
if (patientType != null && patientType == '7' && patient.patientStatusType == 43)
InkWell(
onTap: () {
Navigator.push(
@ -156,7 +176,22 @@ class LabsHomePage extends StatelessWidget {
);
}).toList(),
),
)
),
if(model.patientLabOrdersList.isEmpty && patient.patientStatusType != 43)
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: Texts('No Lab Result Found'),
)
],
),
)
],
),
),

@ -29,9 +29,10 @@ class RadiologyHomePage extends StatelessWidget {
String arrivalType = routeArgs['arrivalType'];
return BaseView<ProcedureViewModel>(
onModelReady: (model) => model.getPatientRadOrders(patient),
onModelReady: (model) => model.getPatientRadOrders(patient,patientType: patientType),
builder: (_, model, widget) => AppScaffold(
isShowAppBar: true,
backgroundColor: Colors.grey[100],
// appBarTitle: TranslationBase.of(context).radiology,
appBar: PatientProfileHeaderNewDesignAppBar(
patient, patient.patientType.toString() ?? '0', arrivalType),
@ -44,7 +45,8 @@ class RadiologyHomePage extends StatelessWidget {
SizedBox(
height: 12,
),
Padding(
if(model.radiologyList.isNotEmpty && patient.patientStatusType != 43)
Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
@ -63,6 +65,26 @@ class RadiologyHomePage extends StatelessWidget {
],
),
),
if(patient.patientStatusType == 43)
Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Texts(
'Radiology',
style: "caption2",
color: Colors.black,
fontSize: 13,
),
Texts(
'Result',
bold: true,
fontSize: 22,
),
],
),
),
if (patientType != null &&
patientType == '7' &&
patient.patientStatusType == 43)
@ -142,6 +164,21 @@ class RadiologyHomePage extends StatelessWidget {
appointmentDate: model.radiologyList[index].orderDate,
),
)),
if(model.radiologyList.isEmpty && patient.patientStatusType != 43)
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: Texts('No Radiology Found'),
)
],
),
)
],
),
),

@ -6,8 +6,8 @@ import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/screens/patients/profile/vital_sign/vital_sign_item.dart';
import 'package:doctor_app_flutter/screens/patients/profile/vital_sign/vital_sign_item_details_screen.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/patients/profile/patient-profile-header-new-design.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/patient_profile_header_with_appointment_card_app_bar.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/transitions/fade_page.dart';
@ -37,13 +37,10 @@ class VitalSignDetailsScreen extends StatelessWidget {
onModelReady: (model) =>
model.getPatientVitalSignHistory(patient, from, to),
builder: (_, mode, widget) => AppScaffold(
isShowAppBar: false,
baseViewModel: mode,
/* appBar: PatientProfileHeaderWhitAppointmentAppBar(
patient: patient,
patientType: patientType,
arrivalType: arrivalType,
),*/
isShowAppBar: true,
appBar: PatientProfileHeaderNewDesignAppBar(
patient, patientType, arrivalType),
appBarTitle: TranslationBase.of(context).vitalSign,
body: mode.patientVitalSignsHistory.length > 0
? Column(

@ -49,7 +49,7 @@ postProcedure(
DateTime doseTime,
String doseUnit,
String icdCode,
PatiantInformtion patient}) async {
PatiantInformtion patient,String patientType}) async {
PostPrescriptionReqModel postProcedureReqModel =
new PostPrescriptionReqModel();
List<PrescriptionRequestModel> sss = List();
@ -236,8 +236,15 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
children: [
Column(
children: [
SizedBox(height: 15,),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
AppText(
'New Prescription Order',
fontWeight: FontWeight.w700,
fontSize: 20,
),
InkWell(
child: Icon(
Icons.close,
@ -246,16 +253,7 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
onTap: () {
Navigator.pop(context);
},
),
],
),
Row(
children: [
AppText(
'New Prescription Order',
fontWeight: FontWeight.w700,
fontSize: 20,
),
)
],
),
],

@ -28,10 +28,11 @@ class PrescriptionsPage extends StatelessWidget {
String arrivalType = routeArgs['arrivalType'];
ProjectViewModel projectViewModel = Provider.of(context);
return BaseView<PrescriptionViewModel>(
onModelReady: (model) => model.getPrescriptions(patient),
onModelReady: (model) => model.getPrescriptions(patient,patientType:patientType),
builder: (_, model, w) => AppScaffold(
baseViewModel: model,
isShowAppBar: true,
backgroundColor: Colors.grey[100],
appBar: PatientProfileHeaderNewDesignAppBar(
patient, patientType ?? '0', arrivalType),
body: FractionallySizedBox(
@ -42,7 +43,8 @@ class PrescriptionsPage extends StatelessWidget {
SizedBox(
height: 12,
),
Padding(
if(model.prescriptionsList.isNotEmpty && patient.patientStatusType != 43)
Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
@ -61,6 +63,26 @@ class PrescriptionsPage extends StatelessWidget {
],
),
),
if(patient.patientStatusType == 43)
Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Texts(
'Order',
style: "caption2",
color: Colors.black,
fontSize: 13,
),
Texts(
'Prescriptions',
bold: true,
fontSize: 22,
),
],
),
),
if (patientType != null &&
patientType == '7' &&
patient.patientStatusType == 43)
@ -138,7 +160,22 @@ class PrescriptionsPage extends StatelessWidget {
DateUtils.getDateTimeFromServerFormat(
model.prescriptionsList[index].appointmentDate,
),
)))
))),
if(model.prescriptionsList.isEmpty && patient.patientStatusType != 43)
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: Texts('No Lab Result Found'),
)
],
),
)
],
),
),

@ -148,27 +148,27 @@ class ProcedureCard extends StatelessWidget {
color: Colors.grey,
),
Texts(
entityList.clinicDescription??"",
entityList.clinicDescription ?? "",
bold: true,
fontSize: 12,
),
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Texts(
entityList.remarks.toString() ?? '',
fontSize: 12,
),
if (entityList.categoryID == 2 ||
entityList.categoryID == 4)
InkWell(
child: Icon(DoctorApp.edit),
onTap: onTap,
)
],
)
// Row(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
// children: [
// Texts(
// entityList.remarks.toString() ?? '',
// fontSize: 12,
// ),
// if (entityList.categoryID == 2 ||
// entityList.categoryID == 4)
// InkWell(
// child: Icon(DoctorApp.edit),
// onTap: onTap,
// )
// ],
// )
],
),
//onTap: onTap,

@ -155,7 +155,7 @@ class _AddSelectedLabOrderState extends State<AddSelectedLabOrder> {
(BuildContext context, ScrollController scrollController) {
return SingleChildScrollView(
child: Container(
height: MediaQuery.of(context).size.height * 1.0,
height: MediaQuery.of(context).size.height * .90,
child: Padding(
padding: EdgeInsets.all(12.0),
child: Column(
@ -209,85 +209,39 @@ class _AddSelectedLabOrderState extends State<AddSelectedLabOrder> {
isEntityListSelected: (master) =>
isEntityListSelected(master),
)),
SizedBox(
height: 15.0,
),
Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
// Container(
// child: Row(
// children: [
// AppText(
// TranslationBase.of(context).orderType),
// Radio(
// activeColor: Color(0xFFB9382C),
// value: 1,
// groupValue: selectedType,
// onChanged: (value) {
// setSelectedType(value);
// },
// ),
// Text('routine'),
// Radio(
// activeColor: Color(0xFFB9382C),
// groupValue: selectedType,
// value: 0,
// onChanged: (value) {
// setSelectedType(value);
// },
// ),
// Text(TranslationBase.of(context).urgent),
// ],
// ),
// ),
// SizedBox(
// height: 15.0,
// ),
// TextFields(
// hintText: TranslationBase.of(context).remarks,
// controller: remarksController,
// minLines: 3,
// maxLines: 5,
// ),
SizedBox(
height: 100.0,
),
Container(
margin: EdgeInsets.all(
SizeConfig.widthMultiplier * 5),
child: Wrap(
alignment: WrapAlignment.center,
children: <Widget>[
AppButton(
title:
"Add Lab Order", //TranslationBase.of(context)
fontWeight: FontWeight.w700,
//.addSelectedProcedures,
color: Color(0xff359846),
onPressed: () {
//print(entityList.toString());
onPressed:
if (entityList.isEmpty == true) {
DrAppToastMsg.showErrorToast(
"Fill the mandatory procedure details");
return;
}
Container(
margin: EdgeInsets.all(
SizeConfig.widthMultiplier * 5),
child: Wrap(
alignment: WrapAlignment.center,
children: <Widget>[
AppButton(
title:
"Add Lab Order", //TranslationBase.of(context)
fontWeight: FontWeight.w700,
//.addSelectedProcedures,
color: Color(0xff359846),
onPressed: () {
//print(entityList.toString());
onPressed:
if (entityList.isEmpty == true) {
DrAppToastMsg.showErrorToast(
"Fill the mandatory procedure details");
return;
}
Navigator.pop(context);
postProcedure(
orderType: selectedType.toString(),
entityList: entityList,
patient: patient,
model: widget.model,
remarks: remarksController.text);
},
),
],
Navigator.pop(context);
postProcedure(
orderType: selectedType.toString(),
entityList: entityList,
patient: patient,
model: widget.model,
remarks: remarksController.text);
},
),
),
],
)
],
),
),
],
),
),

@ -162,15 +162,14 @@ class _AddSelectedRadiologyOrderState extends State<AddSelectedRadiologyOrder> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
AppText(
'New Radiology Order',
fontWeight: FontWeight.w700,
fontSize: 20,
),
SizedBox(
width: MediaQuery.of(context).size.width * 0.48,
),
InkWell(
child: Icon(
Icons.close,
@ -209,82 +208,36 @@ class _AddSelectedRadiologyOrderState extends State<AddSelectedRadiologyOrder> {
isEntityListSelected: (master) =>
isEntityListSelected(master),
)),
SizedBox(
height: 15.0,
),
Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
// Container(
// child: Row(
// children: [
// AppText(
// TranslationBase.of(context).orderType),
// Radio(
// activeColor: Color(0xFFB9382C),
// value: 1,
// groupValue: selectedType,
// onChanged: (value) {
// setSelectedType(value);
// },
// ),
// Text('routine'),
// Radio(
// activeColor: Color(0xFFB9382C),
// groupValue: selectedType,
// value: 0,
// onChanged: (value) {
// setSelectedType(value);
// },
// ),
// Text(TranslationBase.of(context).urgent),
// ],
// ),
// ),
// SizedBox(
// height: 15.0,
// ),
// TextFields(
// hintText: TranslationBase.of(context).remarks,
// controller: remarksController,
// minLines: 3,
// maxLines: 5,
// ),
SizedBox(
height: 100.0,
),
Container(
margin: EdgeInsets.all(
SizeConfig.widthMultiplier * 5),
child: Wrap(
alignment: WrapAlignment.center,
children: <Widget>[
AppButton(
title: 'Add Radiology Order',
color: Color(0xff359846),
fontWeight: FontWeight.w700,
onPressed: () {
//print(entityList.toString());
onPressed:
if (entityList.isEmpty == true) {
DrAppToastMsg.showErrorToast(
"Fill the mandatory procedure details");
return;
}
Container(
margin: EdgeInsets.all(
SizeConfig.widthMultiplier * 5),
child: Wrap(
alignment: WrapAlignment.center,
children: <Widget>[
AppButton(
title: 'Add Radiology Order',
color: Color(0xff359846),
fontWeight: FontWeight.w700,
onPressed: () {
//print(entityList.toString());
onPressed:
if (entityList.isEmpty == true) {
DrAppToastMsg.showErrorToast(
"Fill the mandatory procedure details");
return;
}
Navigator.pop(context);
postProcedure(
orderType: selectedType.toString(),
entityList: entityList,
patient: patient,
model: widget.model,
remarks: remarksController.text);
},
),
],
Navigator.pop(context);
postProcedure(
orderType: selectedType.toString(),
entityList: entityList,
patient: patient,
model: widget.model,
remarks: remarksController.text);
},
),
),
],
],
),
)
],
),

@ -69,7 +69,7 @@ class _EntityListCheckboxSearchWidgetState
NetworkBaseView(
baseViewModel: widget.model,
child: Container(
height: MediaQuery.of(context).size.height * 0.55,
height: MediaQuery.of(context).size.height * 0.65,
child: Center(
child: Container(
margin: EdgeInsets.only(top: 15),

@ -25,10 +25,11 @@ class ProcedureScreen extends StatelessWidget {
String patientType = routeArgs['patientType'];
String arrivalType = routeArgs['arrivalType'];
return BaseView<ProcedureViewModel>(
onModelReady: (model) => model.getProcedure(mrn: patient.patientId),
onModelReady: (model) => model.getProcedure(mrn: patient.patientId,patientType: patientType),
builder: (BuildContext context, ProcedureViewModel model, Widget child) =>
AppScaffold(
isShowAppBar: true,
backgroundColor: Colors.grey[100],
baseViewModel: model,
appBar: PatientProfileHeaderNewDesignAppBar(
patient, arrivalType ?? '0', patientType),
@ -40,7 +41,8 @@ class ProcedureScreen extends StatelessWidget {
SizedBox(
height: 12,
),
Padding(
if(model.procedureList.length==0 && patient.patientStatusType != 43)
Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
@ -59,6 +61,26 @@ class ProcedureScreen extends StatelessWidget {
],
),
),
if( patient.patientStatusType == 43)
Padding(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Texts(
'Order Test or',
style: "caption2",
color: Colors.black,
fontSize: 13,
),
Texts(
'Procedure',
bold: true,
fontSize: 22,
),
],
),
),
if (patientType != null && patientType == '7' && patient.patientStatusType == 43)
InkWell(
onTap: () {
@ -141,6 +163,21 @@ class ProcedureScreen extends StatelessWidget {
},
),
),
if (model.procedureList.length!=0 && patient.patientStatusType != 43)
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: Texts('No Procedure Found'),
)
],
),
)
],
),
),

@ -10,7 +10,10 @@ import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/patient-page-header-widget.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/patient_profile_header_with_appointment_card_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:doctor_app_flutter/widgets/shared/card_with_bgNew_widget.dart';
@ -29,12 +32,17 @@ class AddSickLeavScreen extends StatelessWidget {
onModelReady: (model) => model.getSickLeave(patient.patientMRN),
builder: (_, model, w) => AppScaffold(
baseViewModel: model,
isShowAppBar: false,
appBarTitle: TranslationBase.of(context).sickleave,
isShowAppBar: true,
backgroundColor: Colors.grey[100],
appBar: PatientProfileHeaderNewDesignAppBar(
patient,
routeArgs['patientType'] ?? "0",
routeArgs['arrivalType'] ?? "0",
),
body: SingleChildScrollView(
child: Column(children: [
PatientProfileHeaderNewDesign(
patient, routeArgs['patientType'], routeArgs['arrivalType']),
// PatientProfileHeaderNewDesign(
// patient, routeArgs['patientType'], routeArgs['arrivalType']),
patient.patientStatusType == 43
? Column(
crossAxisAlignment: CrossAxisAlignment.start,
@ -191,33 +199,33 @@ class AddSickLeavScreen extends StatelessWidget {
AppText(
item.remarks ?? "",
),
(item.status == 1 ||
item.status == 2)
? IconButton(
icon: Image.asset(
'assets/images/edit.png'),
// color: Colors.green, //Colors.black,
onPressed: () => {
if (item.status ==
1)
{
DrAppToastMsg.showErrorToast(
TranslationBase.of(
context)
.sickleaveonhold)
}
else
{
openSickLeave(
context,
true,
extendedData:
item)
}
},
)
: SizedBox()
// (item.status == 1 ||
// item.status == 2)
// ? IconButton(
// icon: Image.asset(
// 'assets/images/edit.png'),
//
// // color: Colors.green, //Colors.black,
// onPressed: () => {
// if (item.status ==
// 1)
// {
// DrAppToastMsg.showErrorToast(
// TranslationBase.of(
// context)
// .sickleaveonhold)
// }
// else
// {
// openSickLeave(
// context,
// true,
// extendedData:
// item)
// }
// },
// )
// : SizedBox()
]),
],
),
@ -234,90 +242,22 @@ class AddSickLeavScreen extends StatelessWidget {
}).toList(),
)
: patient.patientStatusType != 43
? Container(
height: 200,
width: SizeConfig.screenWidth,
color: Colors.white,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
AppText(
TranslationBase.of(context).noSickLeave,
color: Colors.red,
)
]),
)
? 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: Texts('No Sick Leave Found'),
)
],
),
)
: SizedBox()
// : new Builder(builder: (context) {
// return Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Padding(
// padding: EdgeInsets.all(10),
// child: Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// AppText(
// TranslationBase.of(context).patient,
// fontWeight: FontWeight.bold,
// ),
// AppText(
// TranslationBase.of(context).sickLeave,
// fontSize: 24,
// fontWeight: FontWeight.bold,
// ),
// ],
// )),
// Container(
// width: SizeConfig.screenWidth,
// margin: EdgeInsets.only(
// left: 20, right: 20, top: 20, bottom: 20),
// padding: EdgeInsets.all(20),
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(10),
// color: HexColor('#EAEAEA')),
// child: Column(
// mainAxisAlignment: MainAxisAlignment.start,
// children: [
// Container(
// child: Container(
// decoration: BoxDecoration(
// color: Colors.grey,
// borderRadius:
// BorderRadius.circular(10)),
// padding: EdgeInsets.all(3),
// child: IconButton(
// icon: Icon(
// Icons.add,
// size: 35,
// color: Colors.white,
// ),
// onPressed: () {
// openSickLeave(
// context,
// false,
// );
// }),
// )),
// Padding(
// child: AppText(
// TranslationBase.of(context)
// .noSickLeaveApplied,
// fontWeight: FontWeight.bold,
// fontFamily: 'Poppins',
// fontSize: 16,
// textAlign: TextAlign.center,
// color: HexColor('#7E7E7E')),
// padding: EdgeInsets.all(10),
// ),
// ],
// )),
// SizedBox(
// height: SizeConfig.screenHeight * .6,
// )
// ],
// );
// }),
]))));
}

@ -10,6 +10,7 @@ import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/patient-page-header-widget.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
@ -30,13 +31,17 @@ class ShowSickLeaveScreen extends StatelessWidget {
model.getSickLeave(patient.patientMRN ?? patient.patientId),
builder: (_, model, w) => AppScaffold(
baseViewModel: model,
isShowAppBar: false,
appBarTitle: TranslationBase.of(context).sickleave,
isShowAppBar: true,
appBar: PatientProfileHeaderNewDesignAppBar(
patient,
routeArgs['patientType'] ?? "0",
routeArgs['arrivalType'] ?? "0",
),
body: SingleChildScrollView(
child: Column(
children: [
PatientProfileHeaderNewDesign(
patient, routeArgs['patientType'], routeArgs['arrivalType']),
// PatientProfileHeaderNewDesign(
// patient, routeArgs['patientType'], routeArgs['arrivalType']),
Column(
children: model.getAllSIckLeave
.map<Widget>((GetAllSickLeaveResponse item) {

@ -150,6 +150,7 @@ class _SickLeaveScreenState extends State<SickLeaveScreen> {
// validator: (value) {
// return TextValidator().validateName(value);
// },
textInputType:TextInputType.number,
inputFormatter: ONLY_NUMBERS)
]),
),

@ -102,14 +102,18 @@ class PatientCard extends StatelessWidget {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Row(children: [
AppText(
(Helpers.capitalize(patientInfo.firstName) +
" " +
Helpers.capitalize(patientInfo.lastName)),
fontSize: SizeConfig.textMultiplier * 2,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.white,
fontFamily: 'Poppins',
Container(
width: 170,
child: AppText(
(Helpers.capitalize(patientInfo.firstName) +
" " +
Helpers.capitalize(patientInfo.lastName)),
fontSize: 16,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.white,
fontFamily: 'Poppins',
textOverflow: TextOverflow.ellipsis,
),
),
patientInfo.gender == 1
? Icon(
@ -143,7 +147,10 @@ class PatientCard extends StatelessWidget {
errorBuilder: (BuildContext context,
Object exception,
StackTrace stackTrace) {
return Text('No Image');
return AppText(
'No Image',
fontSize: 10,
);
},
))
: SizedBox()

@ -15,8 +15,8 @@ import 'package:provider/provider.dart';
import 'large_avatar.dart';
class PatientProfileHeaderWhitAppointmentAppBar extends StatelessWidget with PreferredSizeWidget {
class PatientProfileHeaderWhitAppointmentAppBar extends StatelessWidget
with PreferredSizeWidget {
final PatiantInformtion patient;
final String patientType;
final String arrivalType;
@ -27,6 +27,9 @@ class PatientProfileHeaderWhitAppointmentAppBar extends StatelessWidget with Pre
final String invoiceNO;
final String orderNo;
final bool isPrescriptions;
final bool isMedicalFile;
final String episode;
final String vistDate;
final String clinic;
PatientProfileHeaderWhitAppointmentAppBar(
@ -38,7 +41,12 @@ class PatientProfileHeaderWhitAppointmentAppBar extends StatelessWidget with Pre
this.appointmentDate,
this.profileUrl,
this.invoiceNO,
this.orderNo, this.isPrescriptions = false, this.clinic});
this.orderNo,
this.isPrescriptions = false,
this.clinic,
this.isMedicalFile = false,
this.episode,
this.vistDate});
@override
Widget build(BuildContext context) {
@ -51,8 +59,7 @@ class PatientProfileHeaderWhitAppointmentAppBar extends StatelessWidget with Pre
}
return Container(
padding: EdgeInsets.only(
left: 0, right: 5, bottom: 5, top: 5),
padding: EdgeInsets.only(left: 0, right: 5, bottom: 5, top: 5),
decoration: BoxDecoration(
color: Colors.white,
),
@ -73,12 +80,12 @@ class PatientProfileHeaderWhitAppointmentAppBar extends StatelessWidget with Pre
),
Expanded(
child: AppText(
patient.firstName != null ?
(Helpers.capitalize(patient.firstName) +
" " +
Helpers.capitalize(
patient.lastName)) : Helpers.capitalize(patient.patientDetails.fullName),
fontSize: SizeConfig.textMultiplier *2.2,
patient.firstName != null
? (Helpers.capitalize(patient.firstName) +
" " +
Helpers.capitalize(patient.lastName))
: Helpers.capitalize(patient.patientDetails.fullName),
fontSize: SizeConfig.textMultiplier * 2.2,
fontWeight: FontWeight.bold,
backGroundcolor: Colors.white,
fontFamily: 'Poppins',
@ -86,13 +93,13 @@ class PatientProfileHeaderWhitAppointmentAppBar extends StatelessWidget with Pre
),
gender == 1
? Icon(
DoctorApp.male_2,
color: Colors.blue,
)
DoctorApp.male_2,
color: Colors.blue,
)
: Icon(
DoctorApp.female_1,
color: Colors.pink,
),
DoctorApp.female_1,
color: Colors.pink,
),
]),
),
Row(children: [
@ -114,119 +121,84 @@ class PatientProfileHeaderWhitAppointmentAppBar extends StatelessWidget with Pre
),
Expanded(
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
SERVICES_PATIANT2[
int.parse(patientType)] ==
"patientArrivalList"
SERVICES_PATIANT2[int.parse(patientType)] ==
"patientArrivalList"
? Container(
child: Row(
mainAxisAlignment:
MainAxisAlignment
.spaceBetween,
children: [
patient.patientStatusType ==
43
? AppText(
TranslationBase.of(
context)
.arrivedP,
color: Colors.green,
fontWeight:
FontWeight.bold,
fontFamily:
'Poppins',
fontSize: 12,
)
: AppText(
TranslationBase.of(
context)
.notArrived,
color:
Colors.red[800],
fontWeight:
FontWeight.bold,
fontFamily:
'Poppins',
fontSize: 12,
),
arrivalType == '1' || patient.arrivedOn == null
? AppText(
patient.startTime !=
null
? patient
.startTime
: '',
fontFamily:
'Poppins',
fontWeight:
FontWeight.w600,
)
: AppText(
DateUtils.convertStringToDateFormat(
patient
.arrivedOn,
'MM-dd-yyyy HH:mm'),
fontFamily:
'Poppins',
fontWeight:
FontWeight.w600,
)
],
))
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
patient.patientStatusType == 43
? AppText(
TranslationBase.of(context).arrivedP,
color: Colors.green,
fontWeight: FontWeight.bold,
fontFamily: 'Poppins',
fontSize: 12,
)
: AppText(
TranslationBase.of(context).notArrived,
color: Colors.red[800],
fontWeight: FontWeight.bold,
fontFamily: 'Poppins',
fontSize: 12,
),
arrivalType == '1' || patient.arrivedOn == null
? AppText(
patient.startTime != null
? patient.startTime
: '',
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
)
: AppText(
DateUtils.convertStringToDateFormat(
patient.arrivedOn,
'MM-dd-yyyy HH:mm'),
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
)
],
))
: SizedBox(),
if (SERVICES_PATIANT2[
int.parse(patientType)] ==
if (SERVICES_PATIANT2[int.parse(patientType)] ==
"List_MyOutPatient")
Container(
child: Row(
mainAxisAlignment:
MainAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
AppText(
TranslationBase.of(context)
.appointmentDate +
TranslationBase.of(context).appointmentDate +
" : ",
fontSize: 14,
),
patient.startTime != null
? Container(
height: 15,
width: 60,
decoration:
BoxDecoration(
borderRadius:
BorderRadius
.circular(
25),
color: HexColor(
"#20A169"),
),
child: AppText(
patient.startTime,
color: Colors.white,
fontSize: 1.5 *
SizeConfig
.textMultiplier,
textAlign: TextAlign
.center,
fontWeight:
FontWeight.bold,
),
)
height: 15,
width: 60,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(25),
color: HexColor("#20A169"),
),
child: AppText(
patient.startTime,
color: Colors.white,
fontSize: 1.5 * SizeConfig.textMultiplier,
textAlign: TextAlign.center,
fontWeight: FontWeight.bold,
),
)
: SizedBox(),
SizedBox(
width: 3.5,
),
Container(
child: AppText(
convertDateFormat2(patient.appointmentDate.toString()?? ''),
fontSize: 1.5 *
SizeConfig
.textMultiplier,
fontWeight:
FontWeight.bold,
convertDateFormat2(
patient.appointmentDate.toString() ?? ''),
fontSize: 1.5 * SizeConfig.textMultiplier,
fontWeight: FontWeight.bold,
),
),
SizedBox(
@ -239,34 +211,23 @@ class PatientProfileHeaderWhitAppointmentAppBar extends StatelessWidget with Pre
),
),
Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
RichText(
text: TextSpan(
style: TextStyle(
fontSize: 1.6 *
SizeConfig
.textMultiplier,
fontSize: 1.6 * SizeConfig.textMultiplier,
color: Colors.black),
children: <TextSpan>[
new TextSpan(
text:
TranslationBase.of(
context)
.fileNumber,
text: TranslationBase.of(context).fileNumber,
style: TextStyle(
fontSize: 12,
fontFamily:
'Poppins')),
fontSize: 12, fontFamily: 'Poppins')),
new TextSpan(
text: patient.patientId
.toString(),
text: patient.patientId.toString(),
style: TextStyle(
fontWeight:
FontWeight.w700,
fontFamily:
'Poppins',
fontWeight: FontWeight.w700,
fontFamily: 'Poppins',
fontSize: 14)),
],
),
@ -274,32 +235,23 @@ class PatientProfileHeaderWhitAppointmentAppBar extends StatelessWidget with Pre
Row(
children: [
AppText(
patient.nationalityName ??
patient.nationality,
patient.nationalityName ?? patient.nationality,
fontWeight: FontWeight.bold,
fontSize: 12,
),
patient.nationality != null
? ClipRRect(
borderRadius:
BorderRadius
.circular(
20.0),
child: Image.network(
patient.nationalityFlagURL,
height: 25,
width: 30,
errorBuilder:
(BuildContext
context,
Object
exception,
StackTrace
stackTrace) {
return Text(
'No Image');
},
))
borderRadius: BorderRadius.circular(20.0),
child: Image.network(
patient.nationalityFlagURL,
height: 25,
width: 30,
errorBuilder: (BuildContext context,
Object exception,
StackTrace stackTrace) {
return Text('No Image');
},
))
: SizedBox()
],
)
@ -309,26 +261,19 @@ class PatientProfileHeaderWhitAppointmentAppBar extends StatelessWidget with Pre
child: RichText(
text: new TextSpan(
style: new TextStyle(
fontSize: 1.6 *
SizeConfig.textMultiplier,
fontSize: 1.6 * SizeConfig.textMultiplier,
color: Colors.black,
fontFamily: 'Poppins',
),
children: <TextSpan>[
new TextSpan(
text: TranslationBase.of(
context)
.age +
" : ",
style: TextStyle(
fontSize: 14)),
text: TranslationBase.of(context).age + " : ",
style: TextStyle(fontSize: 14)),
new TextSpan(
text:
"${DateUtils.getAgeByBirthday(patient.patientDetails != null ? patient.patientDetails.dateofBirth : patient.dateofBirth, context)}",
"${DateUtils.getAgeByBirthday(patient.patientDetails != null ? patient.patientDetails.dateofBirth : patient.dateofBirth, context)}",
style: TextStyle(
fontWeight:
FontWeight.w700,
fontSize: 14)),
fontWeight: FontWeight.w700, fontSize: 14)),
],
),
),
@ -343,14 +288,16 @@ class PatientProfileHeaderWhitAppointmentAppBar extends StatelessWidget with Pre
Container(
width: 30,
height: 30,
margin: EdgeInsets.only(left: projectViewModel.isArabic?10:85, right: projectViewModel.isArabic?85:10,top: 5),
margin: EdgeInsets.only(
left: projectViewModel.isArabic ? 10 : 85,
right: projectViewModel.isArabic ? 85 : 10,
top: 5),
decoration: BoxDecoration(
shape: BoxShape.rectangle,
border: Border(
bottom:BorderSide(color: Colors.grey[400],width: 2.5),
left: BorderSide(color: Colors.grey[400],width: 2.5),
)
),
shape: BoxShape.rectangle,
border: Border(
bottom: BorderSide(color: Colors.grey[400], width: 2.5),
left: BorderSide(color: Colors.grey[400], width: 2.5),
)),
),
Expanded(
child: Container(
@ -380,79 +327,81 @@ class PatientProfileHeaderWhitAppointmentAppBar extends StatelessWidget with Pre
fontWeight: FontWeight.w600,
fontSize: 12,
),
if (orderNo != null )
if (orderNo != null && !isPrescriptions)
Row(
children: <Widget>[
Texts(
'Order No: ',
color: Colors.grey[800],
fontSize: 12
),
Texts(
orderNo ?? '',fontSize: 12
)
Texts('Order No: ',
color: Colors.grey[800],
fontSize: 12),
Texts(orderNo ?? '', fontSize: 12)
],
),
if (invoiceNO != null )
if (invoiceNO != null && !isPrescriptions)
Row(
children: <Widget>[
Texts(
'Invoice: ',
color: Colors.grey[800],
fontSize: 12
),
Texts(
invoiceNO,
fontSize: 12
)
Texts('Invoice: ',
color: Colors.grey[800],
fontSize: 12),
Texts(invoiceNO, fontSize: 12)
],
),
if( branch!=null)
if (branch != null)
Row(
children: [
Texts(
'Branch: ',
color: Colors.grey[800],
fontSize: 12
),
Texts(
branch?? '',
fontSize: 12
)
Texts('Branch: ',
color: Colors.grey[800],
fontSize: 12),
Texts(branch ?? '', fontSize: 12)
],
),
if(clinic!=null)
if (isPrescriptions)
if (clinic != null)
Row(
children: [
Texts('Clinic: ',
color: Colors.grey[800],
fontSize: 12),
Texts(clinic ?? '', fontSize: 12)
],
),
if (isMedicalFile && episode != null)
Row(
children: [
Texts(
'Clinic: ',
color: Colors.grey[800],
fontSize: 12
),
Texts(
clinic?? '',
fontSize: 12
)
Texts('Episode: ',
color: Colors.grey[800],
fontSize: 12),
Texts(episode ?? '', fontSize: 12)
],
),
if (isMedicalFile && vistDate != null)
Row(
children: [
Texts('Visit Date: ',
color: Colors.grey[800],
fontSize: 12),
Texts(vistDate ?? '', fontSize: 12)
],
),
Row(
children: <Widget>[
Expanded(
child: Texts(
!isPrescriptions? 'Result Date: ': 'Prescriptions Date ',
!isPrescriptions
? 'Result Date: '
: 'Prescriptions Date ',
color: Colors.grey[800],
fontSize: 12,
),
),
Texts(
'${DateUtils.getDayMonthYearDateFormatted(appointmentDate, isArabic: projectViewModel.isArabic)}',fontSize: 14,
'${DateUtils.getDayMonthYearDateFormatted(appointmentDate, isArabic: projectViewModel.isArabic)}',
fontSize: 14,
)
],
)
]),
),
),
],
),
),
@ -466,7 +415,7 @@ class PatientProfileHeaderWhitAppointmentAppBar extends StatelessWidget with Pre
}
convertDateFormat2(String str) {
String newDate ="";
String newDate = "";
const start = "/Date(";
const end = "+0300)";
@ -477,10 +426,10 @@ class PatientProfileHeaderWhitAppointmentAppBar extends StatelessWidget with Pre
var date = new DateTime.fromMillisecondsSinceEpoch(
int.parse(str.substring(startIndex + start.length, endIndex)));
newDate = date.year.toString() +
"/" +
date.month.toString().padLeft(2, '0') +
"/" +
date.day.toString().padLeft(2, '0');
"/" +
date.month.toString().padLeft(2, '0') +
"/" +
date.day.toString().padLeft(2, '0');
}
return newDate.toString();
@ -504,5 +453,5 @@ class PatientProfileHeaderWhitAppointmentAppBar extends StatelessWidget with Pre
}
@override
Size get preferredSize => Size(double.maxFinite,290);
Size get preferredSize => Size(double.maxFinite, 290);
}

@ -34,8 +34,9 @@ class ExaminationIitemCard extends StatelessWidget {
? examination.selectedExamination.nameAr
: examination.selectedExamination.nameEn
: examination.selectedExamination.nameEn,
fontWeight: FontWeight.bold,
fontWeight: FontWeight.w600,
fontFamily: 'Poppins',
color: Color(0x2B353E),
fontSize: SizeConfig.textMultiplier * 1.8,
),
)),
@ -43,7 +44,7 @@ class ExaminationIitemCard extends StatelessWidget {
children: [
AppText(
TranslationBase.of(context).remove,
fontWeight: FontWeight.bold,
fontWeight: FontWeight.w600,
fontFamily: 'Poppins',
color: Colors.red.shade800,
fontSize: SizeConfig.textMultiplier * 1.8,
@ -82,7 +83,7 @@ class ExaminationIitemCard extends StatelessWidget {
examination.remark,
fontWeight: FontWeight.normal,
fontFamily: 'Poppins',
color: Colors.grey.shade500,
color: Color(0xFF575757),
fontSize: SizeConfig.textMultiplier * 1.8,
),
],

@ -145,14 +145,15 @@ class _UpdateObjectivePageState extends State<UpdateObjectivePage> {
"${TranslationBase.of(context).physicalSystemExamination}",
fontFamily: 'Poppins',
fontSize:
SizeConfig.textMultiplier * 2.0,
SizeConfig.textMultiplier * 2.1,
fontWeight: isSysExaminationExpand
? FontWeight.w700
: FontWeight.normal,
color: Color(0xFF2E303A),
),
Icon(
FontAwesomeIcons.asterisk,
color: AppGlobal.appPrimaryColor,
color: Colors.black/*AppGlobal.appPrimaryColor*/,
size: 12,
)
],
@ -205,7 +206,7 @@ class _UpdateObjectivePageState extends State<UpdateObjectivePage> {
fontSize: SizeConfig
.textMultiplier *
1.8,
color: Colors.black,
color: Color(0xFF2E303A),
fontWeight: FontWeight.bold,
),
AppText(

@ -19,6 +19,7 @@ class DoctorCardInsurance extends StatelessWidget {
final String clinic;
final String approvalStatus;
final String patientOut;
final String branch2;
DoctorCardInsurance(
{this.doctorName,
@ -31,7 +32,8 @@ class DoctorCardInsurance extends StatelessWidget {
this.isPrescriptions = false,
this.clinic,
this.approvalStatus,
this.patientOut});
this.patientOut,
this.branch2});
@override
Widget build(BuildContext context) {
@ -108,7 +110,7 @@ class DoctorCardInsurance extends StatelessWidget {
],
),
Row(
crossAxisAlignment: CrossAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
Container(
child: LargeAvatar(
@ -161,23 +163,38 @@ class DoctorCardInsurance extends StatelessWidget {
child: Texts(
clinic,
fontWeight: FontWeight.w700,
fontSize: 15.0,
),
)
],
),
if (branch != null)
if (branch2 != null)
Row(
children: <Widget>[
Texts(
'Approval No: ',
'Branch:',
//color: Colors.grey[500],
),
Texts(
branch,
branch2,
fontWeight: FontWeight.w700,
fontSize: 15.0,
)
],
)
),
Row(
children: <Widget>[
Texts(
'Approval No: ',
//color: Colors.grey[500],
),
Texts(
branch,
fontWeight: FontWeight.w700,
fontSize: 15.0,
)
],
),
]),
),
),

@ -34,10 +34,14 @@ class NetworkBaseView extends StatelessWidget {
case ViewState.Error:
return Center(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
SizedBox(height: 100,),
Image.asset('assets/images/no-data.png',height: 250),
Texts(baseViewModel.error??'')
Image.asset('assets/images/no-data.png'),
Padding(
padding: const EdgeInsets.all(8.0),
child: Texts(baseViewModel.error??''),
)
],
),

Loading…
Cancel
Save