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

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

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

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

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

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

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

@ -2355,6 +2355,34 @@
"search": [ "search": [
"verify-sms" "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 { class PendingReferral {
PatiantInformtion patientDetails;
String doctorImageUrl;
String nationalityFlagUrl;
String responded; String responded;
String answerFromTarget; String answerFromTarget;
String createdOn; String createdOn;
int data; int data;
int isSameBranch;
String editedOn; String editedOn;
int interBranchReferral; int interBranchReferral;
int patientID; int patientID;
@ -27,41 +33,51 @@ class PendingReferral {
String targetSetupID; String targetSetupID;
bool isReferralDoctorSameBranch; bool isReferralDoctorSameBranch;
PendingReferral( PendingReferral({
{this.responded, this.patientDetails,
this.answerFromTarget, this.doctorImageUrl,
this.createdOn, this.nationalityFlagUrl,
this.data, this.responded,
this.editedOn, this.answerFromTarget,
this.interBranchReferral, this.createdOn,
this.patientID, this.data,
this.patientName, this.isSameBranch,
this.patientType, this.editedOn,
this.referralNo, this.interBranchReferral,
this.referralStatus, this.patientID,
this.referredByDoctorInfo, this.patientName,
this.referredFromBranchName, this.patientType,
this.referredOn, this.referralNo,
this.referredType, this.referralStatus,
this.remarksFromSource, this.referredByDoctorInfo,
this.respondedOn, this.referredFromBranchName,
this.sourceAppointmentNo, this.referredOn,
this.sourceProjectId, this.referredType,
this.sourceSetupID, this.remarksFromSource,
this.startDate, this.respondedOn,
this.targetAppointmentNo, this.sourceAppointmentNo,
this.targetClinicID, this.sourceProjectId,
this.targetDoctorID, this.sourceSetupID,
this.targetProjectId, this.startDate,
this.targetSetupID, this.targetAppointmentNo,
this.isReferralDoctorSameBranch, this.targetClinicID,
}); this.targetDoctorID,
this.targetProjectId,
this.targetSetupID,
this.isReferralDoctorSameBranch,
});
PendingReferral.fromJson(Map<String, dynamic> json) { PendingReferral.fromJson(Map<String, dynamic> json) {
patientDetails = json['patientDetails'] != null
? PatiantInformtion.fromJson(json['patientDetails'])
: null;
doctorImageUrl = json['DoctorImageURL'];
nationalityFlagUrl = json['NationalityFlagURL'];
responded = json['Responded']; responded = json['Responded'];
answerFromTarget = json['answerFromTarget']; answerFromTarget = json['answerFromTarget'];
createdOn = json['createdOn']; createdOn = json['createdOn'];
data = json['data']; data = json['data'];
isSameBranch = json['isSameBranch'];
editedOn = json['editedOn']; editedOn = json['editedOn'];
interBranchReferral = json['interBranchReferral']; interBranchReferral = json['interBranchReferral'];
patientID = json['patientID']; patientID = json['patientID'];
@ -88,10 +104,13 @@ class PendingReferral {
Map<String, dynamic> toJson() { Map<String, dynamic> toJson() {
final Map<String, dynamic> data = new Map<String, dynamic>(); final Map<String, dynamic> data = new Map<String, dynamic>();
data['DoctorImageURL'] = this.doctorImageUrl;
data['NationalityFlagURL'] = this.nationalityFlagUrl;
data['Responded'] = this.responded; data['Responded'] = this.responded;
data['answerFromTarget'] = this.answerFromTarget; data['answerFromTarget'] = this.answerFromTarget;
data['createdOn'] = this.createdOn; data['createdOn'] = this.createdOn;
data['data'] = this.data; data['data'] = this.data;
data['isSameBranch'] = this.isSameBranch;
data['editedOn'] = this.editedOn; data['editedOn'] = this.editedOn;
data['interBranchReferral'] = this.interBranchReferral; data['interBranchReferral'] = this.interBranchReferral;
data['patientID'] = this.patientID; data['patientID'] = this.patientID;

@ -79,7 +79,8 @@ class _DashboardScreenState extends State<DashboardScreen> {
PatientID: 0, PatientID: 0,
From: DateUtils.convertDateToFormat(DateTime.now(), 'yyyy-MM-dd') From: DateUtils.convertDateToFormat(DateTime.now(), 'yyyy-MM-dd')
.toString(), .toString(),
To: DateUtils.convertDateToFormat(DateTime.now(), 'yyyy-MM-dd') To: DateUtils.convertDateToFormat(
DateTime.now().add(Duration(days: 6, hours: 0)), 'yyyy-MM-dd')
.toString(), .toString(),
LanguageID: 2, LanguageID: 2,
stamp: "2020-03-02T13:56:39.170Z", stamp: "2020-03-02T13:56:39.170Z",
@ -1020,12 +1021,12 @@ class _DashboardScreenState extends State<DashboardScreen> {
), ),
hasBorder: false, hasBorder: false,
onTap: () { onTap: () {
// Navigator.push( Navigator.push(
// context, context,
// MaterialPageRoute( MaterialPageRoute(
// builder: (context) => builder: (context) =>
// SearchMedicinePatientScreen(), 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/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-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-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/Text.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
@ -26,6 +27,11 @@ class MedicalFileDetails extends StatefulWidget {
int encounterNumber; int encounterNumber;
int pp; int pp;
PatiantInformtion patient; PatiantInformtion patient;
String clinicName;
String episode;
String doctorName;
String vistDate;
String doctorImage;
MedicalFileDetails( MedicalFileDetails(
{this.age, {this.age,
@ -34,7 +40,12 @@ class MedicalFileDetails extends StatefulWidget {
this.gender, this.gender,
this.encounterNumber, this.encounterNumber,
this.pp, this.pp,
this.patient}); this.patient,
this.doctorName,
this.vistDate,
this.clinicName,
this.episode,
this.doctorImage});
@override @override
_MedicalFileDetailsState createState() => _MedicalFileDetailsState( _MedicalFileDetailsState createState() => _MedicalFileDetailsState(
@ -45,6 +56,11 @@ class MedicalFileDetails extends StatefulWidget {
encounterNumber: encounterNumber, encounterNumber: encounterNumber,
pp: pp, pp: pp,
patient: patient, patient: patient,
clinicName: clinicName,
doctorName: doctorName,
episode: episode,
vistDate: vistDate,
doctorImage: doctorImage,
); );
} }
@ -56,6 +72,11 @@ class _MedicalFileDetailsState extends State<MedicalFileDetails> {
String gender; String gender;
int pp; int pp;
PatiantInformtion patient; PatiantInformtion patient;
String clinicName;
String episode;
String doctorName;
String vistDate;
String doctorImage;
_MedicalFileDetailsState( _MedicalFileDetailsState(
{this.age, {this.age,
@ -64,7 +85,12 @@ class _MedicalFileDetailsState extends State<MedicalFileDetails> {
this.gender, this.gender,
this.encounterNumber, this.encounterNumber,
this.pp, this.pp,
this.patient}); this.patient,
this.doctorName,
this.vistDate,
this.clinicName,
this.episode,
this.doctorImage});
bool isPhysicalExam = true; bool isPhysicalExam = true;
bool isProcedureExpand = true; bool isProcedureExpand = true;
bool isHistoryExpand = true; bool isHistoryExpand = true;
@ -78,8 +104,21 @@ class _MedicalFileDetailsState extends State<MedicalFileDetails> {
builder: builder:
(BuildContext context, MedicalFileViewModel model, Widget child) => (BuildContext context, MedicalFileViewModel model, Widget child) =>
AppScaffold( AppScaffold(
appBar: PatientProfileHeaderNewDesignAppBar( appBar: PatientProfileHeaderWhitAppointmentAppBar(
patient, patient.patientType.toString(), patient.arrivedOn), 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, isShowAppBar: true,
appBarTitle: TranslationBase.of(context).medicalReport.toUpperCase(), appBarTitle: TranslationBase.of(context).medicalReport.toUpperCase(),
body: NetworkBaseView( body: NetworkBaseView(
@ -105,160 +144,160 @@ class _MedicalFileDetailsState extends State<MedicalFileDetails> {
child: Container( child: Container(
child: Column( child: Column(
children: [ children: [
Container( // Container(
width: double.infinity, // width: double.infinity,
margin: EdgeInsets.only( // margin: EdgeInsets.only(
top: 10, left: 10, right: 10), // top: 10, left: 10, right: 10),
padding: EdgeInsets.all(8.0), // padding: EdgeInsets.all(8.0),
decoration: BoxDecoration( // decoration: BoxDecoration(
color: Colors.white, // color: Colors.white,
borderRadius: BorderRadius.all( // borderRadius: BorderRadius.all(
Radius.circular(10.0), // Radius.circular(10.0),
), // ),
border: Border.all( // border: Border.all(
color: Colors.grey[200], width: 0.5), // color: Colors.grey[200], width: 0.5),
), // ),
child: Column( // child: Column(
children: [ // children: [
Row( // Row(
children: [ // children: [
if (model.medicalFileList.length != // if (model.medicalFileList.length !=
0 && // 0 &&
model // model
.medicalFileList[0] // .medicalFileList[0]
.entityList[0] // .entityList[0]
.timelines[ // .timelines[
encounterNumber] // encounterNumber]
.timeLineEvents[0] // .timeLineEvents[0]
.consulations // .consulations
.length != // .length !=
0) // 0)
Expanded( // Expanded(
child: AppText( // child: AppText(
model // model
.medicalFileList[0] // .medicalFileList[0]
.entityList[0] // .entityList[0]
.timelines[ // .timelines[
encounterNumber] // encounterNumber]
.timeLineEvents[0] // .timeLineEvents[0]
.consulations[0] // .consulations[0]
.doctorName // .doctorName
.toUpperCase(), // .toUpperCase(),
fontWeight: FontWeight.w700, // fontWeight: FontWeight.w700,
), // ),
), // ),
], // ],
), // ),
if (model.medicalFileList.length != 0) // if (model.medicalFileList.length != 0)
Row( // Row(
children: [ // children: [
AppText( // AppText(
TranslationBase.of(context) // TranslationBase.of(context)
.clinic + // .clinic +
": ", // ": ",
), // ),
if (model.medicalFileList // if (model.medicalFileList
.length != // .length !=
0 && // 0 &&
model // model
.medicalFileList[0] // .medicalFileList[0]
.entityList[0] // .entityList[0]
.timelines[ // .timelines[
encounterNumber] // encounterNumber]
.timeLineEvents[0] // .timeLineEvents[0]
.consulations // .consulations
.length != // .length !=
0) // 0)
AppText( // AppText(
model // model
.medicalFileList[0] // .medicalFileList[0]
.entityList[0] // .entityList[0]
.timelines[ // .timelines[
encounterNumber] // encounterNumber]
.timeLineEvents[0] // .timeLineEvents[0]
.consulations[0] // .consulations[0]
.clinicName, // .clinicName,
fontWeight: FontWeight.w700, // fontWeight: FontWeight.w700,
), // ),
], // ],
), // ),
Row( // Row(
children: [ // children: [
AppText( // AppText(
TranslationBase.of(context) // TranslationBase.of(context)
.episode + // .episode +
": ", // ": ",
//fontWeight: FontWeight.w700, // //fontWeight: FontWeight.w700,
), // ),
if (model.medicalFileList.length != // if (model.medicalFileList.length !=
0 && // 0 &&
model // model
.medicalFileList[0] // .medicalFileList[0]
.entityList[0] // .entityList[0]
.timelines[ // .timelines[
encounterNumber] // encounterNumber]
.timeLineEvents[0] // .timeLineEvents[0]
.consulations // .consulations
.length != // .length !=
0) // 0)
AppText( // AppText(
model // model
.medicalFileList[0] // .medicalFileList[0]
.entityList[0] // .entityList[0]
.timelines[encounterNumber] // .timelines[encounterNumber]
.timeLineEvents[0] // .timeLineEvents[0]
.consulations[0] // .consulations[0]
.episodeID // .episodeID
.toString(), // .toString(),
fontWeight: FontWeight.w700, // fontWeight: FontWeight.w700,
), // ),
], // ],
), // ),
Row( // Row(
children: [ // children: [
AppText( // AppText(
TranslationBase.of(context) // TranslationBase.of(context)
.visitDate + // .visitDate +
": ", // ": ",
//fontWeight: FontWeight.w700, // //fontWeight: FontWeight.w700,
), // ),
if (model.medicalFileList.length != // if (model.medicalFileList.length !=
0 && // 0 &&
model // model
.medicalFileList[0] // .medicalFileList[0]
.entityList[0] // .entityList[0]
.timelines[ // .timelines[
encounterNumber] // encounterNumber]
.timeLineEvents[0] // .timeLineEvents[0]
.consulations // .consulations
.length != // .length !=
0) // 0)
AppText( // AppText(
'${DateUtils.getDayMonthYearDateFormatted(DateUtils.getDateTimeFromServerFormat( // '${DateUtils.getDayMonthYearDateFormatted(DateUtils.getDateTimeFromServerFormat(
model // model
.medicalFileList[0] // .medicalFileList[0]
.entityList[0] // .entityList[0]
.timelines[ // .timelines[
encounterNumber] // encounterNumber]
.date, // .date,
), isArabic: projectViewModel.isArabic)}', // ), isArabic: projectViewModel.isArabic)}',
color: Colors.black, // color: Colors.black,
fontWeight: FontWeight.w700, // fontWeight: FontWeight.w700,
fontSize: 14, // fontSize: 14,
), // ),
SizedBox(width: 35.0), // SizedBox(width: 35.0),
// AppText( // // AppText(
// 'Appt Date : ', // // 'Appt Date : ',
// fontWeight: FontWeight.w700, // // fontWeight: FontWeight.w700,
// ), // // ),
// AppText( // // AppText(
// '23/12/2020', // // '23/12/2020',
// ), // // ),
], // ],
), // ),
], // ],
), // ),
), // ),
SizedBox(height: 25.0), SizedBox(height: 25.0),
if (model.medicalFileList.length != 0 && if (model.medicalFileList.length != 0 &&

@ -110,6 +110,36 @@ class _MedicalFilePageState extends State<MedicalFilePage> {
encounterNumber: index, encounterNumber: index,
pp: patient.patientId, pp: patient.patientId,
patient: patient, 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, appBarTitle: TranslationBase.of(context).approvals,
body: SingleChildScrollView( body: SingleChildScrollView(
child: Container( child: Container(
margin: EdgeInsets.only( margin: EdgeInsets.only(
left: SizeConfig.screenWidth * 0.004, left: SizeConfig.screenWidth * 0.004,
right: SizeConfig.screenWidth * 0.004, right: SizeConfig.screenWidth * 0.004,
top: SizeConfig.screenWidth * 0.04, top: SizeConfig.screenWidth * 0.04,
), ),
child: model.insuranceApproval.length != 0 child: model.insuranceApproval.length != 0
? Column( ? Column(
children: <Widget>[ children: <Widget>[
// Container( Padding(
// width: double.infinity, padding: const EdgeInsets.all(8.0),
// height: SizeConfig.screenHeight * 0.09, child: Column(
// color: Color(0xffEEEEEE), children: [
// child: Row( Row(
// mainAxisAlignment: MainAxisAlignment.spaceAround, children: [
// children: <Widget>[ AppText(
// Texts( 'Insurance',
// TranslationBase.of(context).totalApproval, fontSize: 15.0,
// color: Color(0xff60688B), fontWeight: FontWeight.w600,
// fontSize: 19.0, fontFamily: 'Poppins',
// fontWeight: FontWeight.w600, ),
// ), ],
// if (model.insuranceApproval.length > 0) ),
// Container( Row(
// width: 60, children: [
// height: 40, AppText(
// decoration: BoxDecoration( 'Approvals',
// color: Theme.of(context).primaryColor, fontSize: 30.0,
// borderRadius: BorderRadius.circular(19.0)), fontWeight: FontWeight.w700,
// 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,
),
],
),
],
),
), ),
),
...List.generate( ...List.generate(
model.insuranceApproval.length, model.insuranceApproval.length,
(index) => Container( (index) => Container(
child: InkWell( child: InkWell(
onTap: () { onTap: () {
Navigator.push( Navigator.push(
context, context,
MaterialPageRoute( MaterialPageRoute(
builder: (context) => builder: (context) =>
InsuranceApprovalsDetails( InsuranceApprovalsDetails(
patient: patient, patient: patient,
indexInsurance: index, indexInsurance: index,
)), )),
); );
}, },
child: DoctorCardInsurance( child: DoctorCardInsurance(
patientOut: model.insuranceApproval[index] patientOut: model
.patientDescription, .insuranceApproval[index].patientDescription,
profileUrl: profileUrl:
model.insuranceApproval[index].doctorImage, model.insuranceApproval[index].doctorImage,
clinic: clinic: model.insuranceApproval[index].clinicName,
model.insuranceApproval[index].clinicName, doctorName:
doctorName: model.insuranceApproval[index].doctorName,
model.insuranceApproval[index].doctorName, branch: model.insuranceApproval[index].approvalNo
branch: model .toString(),
.insuranceApproval[index].approvalNo isPrescriptions: true,
.toString(), approvalStatus: model.insuranceApproval[index]
isPrescriptions: true, .approvalStatusDescption ??
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: [ : Column(
Container( children: [
height: 200, Container(
width: double.infinity, height: 200,
child: Center( width: double.infinity,
child: Text("No Insurance Approvals Found"))) 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 = patiantAppointment =
convertDateFormat(responseModelList[i].appointmentDate); 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) { } catch (e) {
print(e); print(e);

@ -44,6 +44,12 @@ class _AdmissionRequestThirdScreenState
bool _isSickLeaveRequired = false; bool _isSickLeaveRequired = false;
bool _patientPregnant = false; bool _patientPregnant = false;
String clinicError;
String doctorError;
String sickLeaveCommentError;
String medicalHistoryError;
String surgicalHistoryError;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final routeArgs = ModalRoute.of(context).settings.arguments as Map; final routeArgs = ModalRoute.of(context).settings.arguments as Map;
@ -117,6 +123,7 @@ class _AdmissionRequestThirdScreenState
height: screenSize.height * 0.075, height: screenSize.height * 0.075,
hintText: TranslationBase.of(context).clinic, hintText: TranslationBase.of(context).clinic,
isDropDown: true, isDropDown: true,
validationError: clinicError,
dropDownText: _selectedClinic != null dropDownText: _selectedClinic != null
? projectViewModel.isArabic? _selectedClinic['clinicNameArabic'] : _selectedClinic['clinicNameEnglish'] ? projectViewModel.isArabic? _selectedClinic['clinicNameArabic'] : _selectedClinic['clinicNameEnglish']
: null, : null,
@ -170,6 +177,7 @@ class _AdmissionRequestThirdScreenState
? _selectedDoctor['DoctorName'] ? _selectedDoctor['DoctorName']
: null, : null,
enabled: false, enabled: false,
validationError: doctorError,
onClick: _selectedClinic != null onClick: _selectedClinic != null
? model.doctorsList != null && ? model.doctorsList != null &&
model.doctorsList.length > 0 model.doctorsList.length > 0
@ -263,6 +271,7 @@ class _AdmissionRequestThirdScreenState
controller: _sickLeaveCommentsController, controller: _sickLeaveCommentsController,
minLines: 2, minLines: 2,
maxLines: 4, maxLines: 4,
validationError: sickLeaveCommentError,
inputType: TextInputType.multiline, inputType: TextInputType.multiline,
), ),
SizedBox( SizedBox(
@ -331,6 +340,7 @@ class _AdmissionRequestThirdScreenState
controller: _postMedicalHistoryController, controller: _postMedicalHistoryController,
minLines: 4, minLines: 4,
maxLines: 6, maxLines: 6,
validationError: medicalHistoryError,
inputType: TextInputType.multiline, inputType: TextInputType.multiline,
), ),
SizedBox( SizedBox(
@ -341,6 +351,7 @@ class _AdmissionRequestThirdScreenState
controller: _postSurgicalHistoryController, controller: _postSurgicalHistoryController,
minLines: 2, minLines: 2,
maxLines: 4, maxLines: 4,
validationError: surgicalHistoryError,
inputType: TextInputType.multiline, inputType: TextInputType.multiline,
), ),
], ],
@ -401,6 +412,34 @@ class _AdmissionRequestThirdScreenState
} else { } else {
DrAppToastMsg.showErrorToast( DrAppToastMsg.showErrorToast(
TranslationBase.of(context).pleaseFill); 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 _selectedIcd;
dynamic _selectedDiagnosisType; dynamic _selectedDiagnosisType;
String diagnosisError;
String icdError;
String diagnosisTypeError;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final routeArgs = ModalRoute.of(context).settings.arguments as Map; final routeArgs = ModalRoute.of(context).settings.arguments as Map;
@ -112,6 +116,7 @@ class _AdmissionRequestThirdScreenState
: null, : null,
enabled: false, enabled: false,
isDropDown: true, isDropDown: true,
validationError: diagnosisError,
onClick: model.diagnosisTypesList != null && onClick: model.diagnosisTypesList != null &&
model.diagnosisTypesList.length > 0 model.diagnosisTypesList.length > 0
? () { ? () {
@ -157,6 +162,7 @@ class _AdmissionRequestThirdScreenState
: null, : null,
enabled: false, enabled: false,
isDropDown: true, isDropDown: true,
validationError: icdError,
onClick: model.icdCodes != null && onClick: model.icdCodes != null &&
model.icdCodes.length > 0 model.icdCodes.length > 0
? () { ? () {
@ -204,6 +210,7 @@ class _AdmissionRequestThirdScreenState
: null, : null,
enabled: false, enabled: false,
isDropDown: true, isDropDown: true,
validationError: diagnosisTypeError,
onClick: model.listOfDiagnosisSelectionTypes != onClick: model.listOfDiagnosisSelectionTypes !=
null && null &&
model.listOfDiagnosisSelectionTypes.length > model.listOfDiagnosisSelectionTypes.length >
@ -312,6 +319,26 @@ class _AdmissionRequestThirdScreenState
} else { } else {
DrAppToastMsg.showErrorToast( DrAppToastMsg.showErrorToast(
TranslationBase.of(context).pleaseFill); 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 _selectedRoomCategory;
dynamic _selectedAdmissionType; 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 @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
final routeArgs = ModalRoute.of(context).settings.arguments as Map; final routeArgs = ModalRoute.of(context).settings.arguments as Map;
@ -125,6 +137,7 @@ class _AdmissionRequestSecondScreenState
hintText: hintText:
TranslationBase.of(context).estimatedCost, TranslationBase.of(context).estimatedCost,
controller: _estimatedCostController, controller: _estimatedCostController,
validationError: costError,
inputType: TextInputType.number, inputType: TextInputType.number,
inputFormatters: [ inputFormatters: [
FilteringTextInputFormatter.allow( FilteringTextInputFormatter.allow(
@ -138,6 +151,7 @@ class _AdmissionRequestSecondScreenState
hintText: TranslationBase.of(context).postPlans, hintText: TranslationBase.of(context).postPlans,
controller: _postPlansEstimatedCostController, controller: _postPlansEstimatedCostController,
inputType: TextInputType.multiline, inputType: TextInputType.multiline,
validationError: plansError,
minLines: 4, minLines: 4,
maxLines: 6, maxLines: 6,
), ),
@ -150,6 +164,7 @@ class _AdmissionRequestSecondScreenState
controller: controller:
_otherDepartmentsInterventionsController, _otherDepartmentsInterventionsController,
inputType: TextInputType.multiline, inputType: TextInputType.multiline,
validationError: otherInterventionsError,
minLines: 2, minLines: 2,
maxLines: 4, maxLines: 4,
), ),
@ -170,6 +185,7 @@ class _AdmissionRequestSecondScreenState
hintText: hintText:
TranslationBase.of(context).expectedDays, TranslationBase.of(context).expectedDays,
controller: _expectedDaysController, controller: _expectedDaysController,
validationError: expectedDaysError,
inputType: TextInputType.number, inputType: TextInputType.number,
inputFormatters: [ inputFormatters: [
FilteringTextInputFormatter.allow( FilteringTextInputFormatter.allow(
@ -188,6 +204,7 @@ class _AdmissionRequestSecondScreenState
: null, : null,
enabled: false, enabled: false,
isDropDown: true, isDropDown: true,
validationError: expectedDatesError,
suffixIcon: Icon( suffixIcon: Icon(
Icons.calendar_today, Icons.calendar_today,
color: Colors.black, color: Colors.black,
@ -215,6 +232,7 @@ class _AdmissionRequestSecondScreenState
: null, : null,
enabled: false, enabled: false,
isDropDown: true, isDropDown: true,
validationError: floorError,
onClick: model.floorList != null && onClick: model.floorList != null &&
model.floorList.length > 0 model.floorList.length > 0
? () { ? () {
@ -314,6 +332,7 @@ class _AdmissionRequestSecondScreenState
: null, : null,
enabled: false, enabled: false,
isDropDown: true, isDropDown: true,
validationError: roomError,
onClick: model.roomCategoryList != null && onClick: model.roomCategoryList != null &&
model.roomCategoryList.length > 0 model.roomCategoryList.length > 0
? () { ? () {
@ -365,6 +384,7 @@ class _AdmissionRequestSecondScreenState
TranslationBase.of(context).treatmentLine, TranslationBase.of(context).treatmentLine,
controller: _treatmentLineController, controller: _treatmentLineController,
inputType: TextInputType.multiline, inputType: TextInputType.multiline,
validationError: treatmentsError,
minLines: 3, minLines: 3,
maxLines: 5, maxLines: 5,
), ),
@ -376,6 +396,7 @@ class _AdmissionRequestSecondScreenState
TranslationBase.of(context).complications, TranslationBase.of(context).complications,
controller: _complicationsController, controller: _complicationsController,
inputType: TextInputType.multiline, inputType: TextInputType.multiline,
validationError: complicationsError,
minLines: 3, minLines: 3,
maxLines: 5, maxLines: 5,
), ),
@ -387,6 +408,7 @@ class _AdmissionRequestSecondScreenState
TranslationBase.of(context).otherProcedure, TranslationBase.of(context).otherProcedure,
controller: _otherProceduresController, controller: _otherProceduresController,
inputType: TextInputType.multiline, inputType: TextInputType.multiline,
validationError: proceduresError,
minLines: 3, minLines: 3,
maxLines: 5, maxLines: 5,
), ),
@ -402,6 +424,7 @@ class _AdmissionRequestSecondScreenState
: null, : null,
enabled: false, enabled: false,
isDropDown: true, isDropDown: true,
validationError: admissionTypeError,
onClick: model.admissionTypeList != null && onClick: model.admissionTypeList != null &&
model.admissionTypeList.length > 0 model.admissionTypeList.length > 0
? () { ? () {
@ -533,6 +556,75 @@ class _AdmissionRequestSecondScreenState
} else { } else {
DrAppToastMsg.showErrorToast( DrAppToastMsg.showErrorToast(
TranslationBase.of(context).pleaseFill); 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']; arrivalType = routeArgs['arrivalType'];
print(arrivalType); print(arrivalType);
return BaseView<ProcedureViewModel>( 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( builder: (context, ProcedureViewModel model, widget) => AppScaffold(
baseViewModel: model, baseViewModel: model,
backgroundColor: Colors.grey[100],
isShowAppBar: true, isShowAppBar: true,
appBar: PatientProfileHeaderNewDesignAppBar( appBar: PatientProfileHeaderNewDesignAppBar(
patient, patient.patientType.toString() ?? '0', patientType), patient, patient.patientType.toString() ?? '0', patientType),
@ -48,6 +49,7 @@ class LabsHomePage extends StatelessWidget {
SizedBox( SizedBox(
height: 12, height: 12,
), ),
if(model.patientLabOrdersList.isNotEmpty && patient.patientStatusType != 43)
Padding( Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Column( child: Column(
@ -67,9 +69,27 @@ class LabsHomePage extends StatelessWidget {
], ],
), ),
), ),
if (patientType != null && if(patient.patientStatusType == 43)
patientType == '7' && Padding(
patient.patientStatusType == 43) 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( InkWell(
onTap: () { onTap: () {
Navigator.push( Navigator.push(
@ -156,7 +176,22 @@ class LabsHomePage extends StatelessWidget {
); );
}).toList(), }).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']; String arrivalType = routeArgs['arrivalType'];
return BaseView<ProcedureViewModel>( return BaseView<ProcedureViewModel>(
onModelReady: (model) => model.getPatientRadOrders(patient), onModelReady: (model) => model.getPatientRadOrders(patient,patientType: patientType),
builder: (_, model, widget) => AppScaffold( builder: (_, model, widget) => AppScaffold(
isShowAppBar: true, isShowAppBar: true,
backgroundColor: Colors.grey[100],
// appBarTitle: TranslationBase.of(context).radiology, // appBarTitle: TranslationBase.of(context).radiology,
appBar: PatientProfileHeaderNewDesignAppBar( appBar: PatientProfileHeaderNewDesignAppBar(
patient, patient.patientType.toString() ?? '0', arrivalType), patient, patient.patientType.toString() ?? '0', arrivalType),
@ -44,7 +45,8 @@ class RadiologyHomePage extends StatelessWidget {
SizedBox( SizedBox(
height: 12, height: 12,
), ),
Padding( if(model.radiologyList.isNotEmpty && patient.patientStatusType != 43)
Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, 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 && if (patientType != null &&
patientType == '7' && patientType == '7' &&
patient.patientStatusType == 43) patient.patientStatusType == 43)
@ -142,6 +164,21 @@ class RadiologyHomePage extends StatelessWidget {
appointmentDate: model.radiologyList[index].orderDate, 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.dart';
import 'package:doctor_app_flutter/screens/patients/profile/vital_sign/vital_sign_item_details_screen.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/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-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_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/transitions/fade_page.dart'; import 'package:doctor_app_flutter/widgets/transitions/fade_page.dart';
@ -37,13 +37,10 @@ class VitalSignDetailsScreen extends StatelessWidget {
onModelReady: (model) => onModelReady: (model) =>
model.getPatientVitalSignHistory(patient, from, to), model.getPatientVitalSignHistory(patient, from, to),
builder: (_, mode, widget) => AppScaffold( builder: (_, mode, widget) => AppScaffold(
isShowAppBar: false,
baseViewModel: mode, baseViewModel: mode,
/* appBar: PatientProfileHeaderWhitAppointmentAppBar( isShowAppBar: true,
patient: patient, appBar: PatientProfileHeaderNewDesignAppBar(
patientType: patientType, patient, patientType, arrivalType),
arrivalType: arrivalType,
),*/
appBarTitle: TranslationBase.of(context).vitalSign, appBarTitle: TranslationBase.of(context).vitalSign,
body: mode.patientVitalSignsHistory.length > 0 body: mode.patientVitalSignsHistory.length > 0
? Column( ? Column(

@ -49,7 +49,7 @@ postProcedure(
DateTime doseTime, DateTime doseTime,
String doseUnit, String doseUnit,
String icdCode, String icdCode,
PatiantInformtion patient}) async { PatiantInformtion patient,String patientType}) async {
PostPrescriptionReqModel postProcedureReqModel = PostPrescriptionReqModel postProcedureReqModel =
new PostPrescriptionReqModel(); new PostPrescriptionReqModel();
List<PrescriptionRequestModel> sss = List(); List<PrescriptionRequestModel> sss = List();
@ -236,8 +236,15 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
children: [ children: [
Column( Column(
children: [ children: [
SizedBox(height: 15,),
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ children: [
AppText(
'New Prescription Order',
fontWeight: FontWeight.w700,
fontSize: 20,
),
InkWell( InkWell(
child: Icon( child: Icon(
Icons.close, Icons.close,
@ -246,16 +253,7 @@ class _PrescriptionFormWidgetState extends State<PrescriptionFormWidget> {
onTap: () { onTap: () {
Navigator.pop(context); 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']; String arrivalType = routeArgs['arrivalType'];
ProjectViewModel projectViewModel = Provider.of(context); ProjectViewModel projectViewModel = Provider.of(context);
return BaseView<PrescriptionViewModel>( return BaseView<PrescriptionViewModel>(
onModelReady: (model) => model.getPrescriptions(patient), onModelReady: (model) => model.getPrescriptions(patient,patientType:patientType),
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
baseViewModel: model, baseViewModel: model,
isShowAppBar: true, isShowAppBar: true,
backgroundColor: Colors.grey[100],
appBar: PatientProfileHeaderNewDesignAppBar( appBar: PatientProfileHeaderNewDesignAppBar(
patient, patientType ?? '0', arrivalType), patient, patientType ?? '0', arrivalType),
body: FractionallySizedBox( body: FractionallySizedBox(
@ -42,7 +43,8 @@ class PrescriptionsPage extends StatelessWidget {
SizedBox( SizedBox(
height: 12, height: 12,
), ),
Padding( if(model.prescriptionsList.isNotEmpty && patient.patientStatusType != 43)
Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, 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 && if (patientType != null &&
patientType == '7' && patientType == '7' &&
patient.patientStatusType == 43) patient.patientStatusType == 43)
@ -138,7 +160,22 @@ class PrescriptionsPage extends StatelessWidget {
DateUtils.getDateTimeFromServerFormat( DateUtils.getDateTimeFromServerFormat(
model.prescriptionsList[index].appointmentDate, 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, color: Colors.grey,
), ),
Texts( Texts(
entityList.clinicDescription??"", entityList.clinicDescription ?? "",
bold: true, bold: true,
fontSize: 12, fontSize: 12,
), ),
], ],
), ),
Row( // Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, // mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [ // children: [
Texts( // Texts(
entityList.remarks.toString() ?? '', // entityList.remarks.toString() ?? '',
fontSize: 12, // fontSize: 12,
), // ),
if (entityList.categoryID == 2 || // if (entityList.categoryID == 2 ||
entityList.categoryID == 4) // entityList.categoryID == 4)
InkWell( // InkWell(
child: Icon(DoctorApp.edit), // child: Icon(DoctorApp.edit),
onTap: onTap, // onTap: onTap,
) // )
], // ],
) // )
], ],
), ),
//onTap: onTap, //onTap: onTap,

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

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

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

@ -25,10 +25,11 @@ class ProcedureScreen extends StatelessWidget {
String patientType = routeArgs['patientType']; String patientType = routeArgs['patientType'];
String arrivalType = routeArgs['arrivalType']; String arrivalType = routeArgs['arrivalType'];
return BaseView<ProcedureViewModel>( 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) => builder: (BuildContext context, ProcedureViewModel model, Widget child) =>
AppScaffold( AppScaffold(
isShowAppBar: true, isShowAppBar: true,
backgroundColor: Colors.grey[100],
baseViewModel: model, baseViewModel: model,
appBar: PatientProfileHeaderNewDesignAppBar( appBar: PatientProfileHeaderNewDesignAppBar(
patient, arrivalType ?? '0', patientType), patient, arrivalType ?? '0', patientType),
@ -40,7 +41,8 @@ class ProcedureScreen extends StatelessWidget {
SizedBox( SizedBox(
height: 12, height: 12,
), ),
Padding( if(model.procedureList.length==0 && patient.patientStatusType != 43)
Padding(
padding: const EdgeInsets.all(8.0), padding: const EdgeInsets.all(8.0),
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, 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) if (patientType != null && patientType == '7' && patient.patientStatusType == 43)
InkWell( InkWell(
onTap: () { 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/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/patient-page-header-widget.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-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_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_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'; 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), onModelReady: (model) => model.getSickLeave(patient.patientMRN),
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
baseViewModel: model, baseViewModel: model,
isShowAppBar: false, isShowAppBar: true,
appBarTitle: TranslationBase.of(context).sickleave, backgroundColor: Colors.grey[100],
appBar: PatientProfileHeaderNewDesignAppBar(
patient,
routeArgs['patientType'] ?? "0",
routeArgs['arrivalType'] ?? "0",
),
body: SingleChildScrollView( body: SingleChildScrollView(
child: Column(children: [ child: Column(children: [
PatientProfileHeaderNewDesign( // PatientProfileHeaderNewDesign(
patient, routeArgs['patientType'], routeArgs['arrivalType']), // patient, routeArgs['patientType'], routeArgs['arrivalType']),
patient.patientStatusType == 43 patient.patientStatusType == 43
? Column( ? Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
@ -191,33 +199,33 @@ class AddSickLeavScreen extends StatelessWidget {
AppText( AppText(
item.remarks ?? "", item.remarks ?? "",
), ),
(item.status == 1 || // (item.status == 1 ||
item.status == 2) // item.status == 2)
? IconButton( // ? IconButton(
icon: Image.asset( // icon: Image.asset(
'assets/images/edit.png'), // 'assets/images/edit.png'),
//
// color: Colors.green, //Colors.black, // // color: Colors.green, //Colors.black,
onPressed: () => { // onPressed: () => {
if (item.status == // if (item.status ==
1) // 1)
{ // {
DrAppToastMsg.showErrorToast( // DrAppToastMsg.showErrorToast(
TranslationBase.of( // TranslationBase.of(
context) // context)
.sickleaveonhold) // .sickleaveonhold)
} // }
else // else
{ // {
openSickLeave( // openSickLeave(
context, // context,
true, // true,
extendedData: // extendedData:
item) // item)
} // }
}, // },
) // )
: SizedBox() // : SizedBox()
]), ]),
], ],
), ),
@ -234,90 +242,22 @@ class AddSickLeavScreen extends StatelessWidget {
}).toList(), }).toList(),
) )
: patient.patientStatusType != 43 : patient.patientStatusType != 43
? Container( ? Center(
height: 200, child: Column(
width: SizeConfig.screenWidth, crossAxisAlignment: CrossAxisAlignment.center,
color: Colors.white, children: [
child: Column( SizedBox(height: 100,),
mainAxisAlignment: MainAxisAlignment.center, Image.asset('assets/images/no-data.png'),
children: [ Padding(
AppText( padding: const EdgeInsets.all(8.0),
TranslationBase.of(context).noSickLeave, child: Texts('No Sick Leave Found'),
color: Colors.red, )
)
]), ],
) ),
)
: SizedBox() : 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/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart'; import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/patient-page-header-widget.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-new-design.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart'; import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
@ -30,13 +31,17 @@ class ShowSickLeaveScreen extends StatelessWidget {
model.getSickLeave(patient.patientMRN ?? patient.patientId), model.getSickLeave(patient.patientMRN ?? patient.patientId),
builder: (_, model, w) => AppScaffold( builder: (_, model, w) => AppScaffold(
baseViewModel: model, baseViewModel: model,
isShowAppBar: false, isShowAppBar: true,
appBarTitle: TranslationBase.of(context).sickleave, appBar: PatientProfileHeaderNewDesignAppBar(
patient,
routeArgs['patientType'] ?? "0",
routeArgs['arrivalType'] ?? "0",
),
body: SingleChildScrollView( body: SingleChildScrollView(
child: Column( child: Column(
children: [ children: [
PatientProfileHeaderNewDesign( // PatientProfileHeaderNewDesign(
patient, routeArgs['patientType'], routeArgs['arrivalType']), // patient, routeArgs['patientType'], routeArgs['arrivalType']),
Column( Column(
children: model.getAllSIckLeave children: model.getAllSIckLeave
.map<Widget>((GetAllSickLeaveResponse item) { .map<Widget>((GetAllSickLeaveResponse item) {

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

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

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

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

@ -19,6 +19,7 @@ class DoctorCardInsurance extends StatelessWidget {
final String clinic; final String clinic;
final String approvalStatus; final String approvalStatus;
final String patientOut; final String patientOut;
final String branch2;
DoctorCardInsurance( DoctorCardInsurance(
{this.doctorName, {this.doctorName,
@ -31,7 +32,8 @@ class DoctorCardInsurance extends StatelessWidget {
this.isPrescriptions = false, this.isPrescriptions = false,
this.clinic, this.clinic,
this.approvalStatus, this.approvalStatus,
this.patientOut}); this.patientOut,
this.branch2});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -108,7 +110,7 @@ class DoctorCardInsurance extends StatelessWidget {
], ],
), ),
Row( Row(
crossAxisAlignment: CrossAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[ children: <Widget>[
Container( Container(
child: LargeAvatar( child: LargeAvatar(
@ -161,23 +163,38 @@ class DoctorCardInsurance extends StatelessWidget {
child: Texts( child: Texts(
clinic, clinic,
fontWeight: FontWeight.w700, fontWeight: FontWeight.w700,
fontSize: 15.0,
), ),
) )
], ],
), ),
if (branch != null) if (branch2 != null)
Row( Row(
children: <Widget>[ children: <Widget>[
Texts( Texts(
'Approval No: ', 'Branch:',
//color: Colors.grey[500], //color: Colors.grey[500],
), ),
Texts( Texts(
branch, branch2,
fontWeight: FontWeight.w700, 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: case ViewState.Error:
return Center( return Center(
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [ children: [
SizedBox(height: 100,), SizedBox(height: 100,),
Image.asset('assets/images/no-data.png',height: 250), Image.asset('assets/images/no-data.png'),
Texts(baseViewModel.error??'') Padding(
padding: const EdgeInsets.all(8.0),
child: Texts(baseViewModel.error??''),
)
], ],
), ),

Loading…
Cancel
Save