adding google anlyatic to doctor app

medical_report_changes
hussam al-habibeh 5 years ago
parent cac949f402
commit d29d3e2666

@ -29,9 +29,7 @@ class _HealthSummaryPageState extends State<HealthSummaryPage> {
bool isInpatient = routeArgs['isInpatient'];
return BaseView<MedicalFileViewModel>(
onModelReady: (model) => model.getMedicalFile(mrn: patient.patientId),
builder:
(BuildContext context, MedicalFileViewModel model, Widget child) =>
AppScaffold(
builder: (BuildContext context, MedicalFileViewModel model, Widget child) => AppScaffold(
appBar: PatientProfileAppBar(
patient,
isInpatient: isInpatient,
@ -45,8 +43,7 @@ class _HealthSummaryPageState extends State<HealthSummaryPage> {
child: Column(
children: [
Padding(
padding:
EdgeInsets.symmetric(horizontal: 12.0, vertical: 8.0),
padding: EdgeInsets.symmetric(horizontal: 12.0, vertical: 8.0),
child: Container(
child: Padding(
padding: const EdgeInsets.all(8.0),
@ -76,15 +73,13 @@ class _HealthSummaryPageState extends State<HealthSummaryPage> {
),
),
),
(model.medicalFileList != null &&
model.medicalFileList.length != 0)
(model.medicalFileList != null && model.medicalFileList.length != 0)
? ListView.builder(
//physics: ,
physics: NeverScrollableScrollPhysics(),
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount: model.medicalFileList[0].entityList[0]
.timelines.length,
itemCount: model.medicalFileList[0].entityList[0].timelines.length,
itemBuilder: (BuildContext ctxt, int index) {
return InkWell(
onTap: () async {
@ -98,65 +93,48 @@ class _HealthSummaryPageState extends State<HealthSummaryPage> {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => MedicalFileDetails(
age: patient.age is String ? patient.age ?? "" : "${patient.age}",
firstName: patient.firstName,
lastName: patient.lastName,
gender: patient.genderDescription,
encounterNumber: index,
pp: patient.patientId,
patient: patient,
doctorName: model.medicalFileList[0].entityList[0].timelines[index]
.timeLineEvents[0].consulations.isNotEmpty
? model.medicalFileList[0].entityList[0].timelines[index].doctorName
: "",
clinicName: model.medicalFileList[0].entityList[0].timelines[index]
.timeLineEvents[0].consulations.isNotEmpty
? model.medicalFileList[0].entityList[0].timelines[index].clinicName
: "",
doctorImage: model.medicalFileList[0].entityList[0].timelines[index]
.timeLineEvents[0].consulations.isNotEmpty
? model.medicalFileList[0].entityList[0].timelines[index].doctorImage
: "",
episode: model.medicalFileList[0].entityList[0].timelines[index]
.timeLineEvents[0].consulations.isNotEmpty
? model.medicalFileList[0].entityList[0].timelines[index]
.timeLineEvents[0].consulations[0].episodeID
.toString()
: "",
vistDate:
model.medicalFileList[0].entityList[0].timelines[index].date.toString()),
settings: RouteSettings(name: 'MedicalFileDetails'),),
);
builder: (context) => MedicalFileDetails(
age: patient.age is String ? patient.age ?? "" : "${patient.age}",
firstName: patient.firstName,
lastName: patient.lastName,
gender: patient.genderDescription,
encounterNumber: index,
pp: patient.patientId,
patient: patient,
doctorName: model.medicalFileList[0].entityList[0].timelines[index]
.timeLineEvents[0].consulations.isNotEmpty
? model.medicalFileList[0].entityList[0].timelines[index].doctorName
: "",
clinicName: model.medicalFileList[0].entityList[0].timelines[index]
.timeLineEvents[0].consulations.isNotEmpty
? model.medicalFileList[0].entityList[0].timelines[index].clinicName
: "",
doctorImage: model.medicalFileList[0].entityList[0].timelines[index]
.timeLineEvents[0].consulations.isNotEmpty
? model.medicalFileList[0].entityList[0].timelines[index].doctorImage
: "",
episode: model.medicalFileList[0].entityList[0].timelines[index]
.timeLineEvents[0].consulations.isNotEmpty
? model.medicalFileList[0].entityList[0].timelines[index].timeLineEvents[0]
.consulations[0].episodeID
.toString()
: "",
vistDate: model.medicalFileList[0].entityList[0].timelines[index].date.toString()),
settings: RouteSettings(name: 'MedicalFileDetails'),
),
);
},
child: DoctorCard(
doctorName: model
.medicalFileList[0]
.entityList[0]
.timelines[index]
.doctorName,
clinic: model.medicalFileList[0].entityList[0]
.timelines[index].clinicName,
branch: model.medicalFileList[0].entityList[0]
.timelines[index].projectName,
profileUrl: model
.medicalFileList[0]
.entityList[0]
.timelines[index]
.doctorImage,
appointmentDate:
AppDateUtils.getDateTimeFromServerFormat(
model.medicalFileList[0].entityList[0]
.timelines[index].date,
doctorName: model.medicalFileList[0].entityList[0].timelines[index].doctorName,
clinic: model.medicalFileList[0].entityList[0].timelines[index].clinicName,
branch: model.medicalFileList[0].entityList[0].timelines[index].projectName,
profileUrl: model.medicalFileList[0].entityList[0].timelines[index].doctorImage,
appointmentDate: AppDateUtils.getDateTimeFromServerFormat(
model.medicalFileList[0].entityList[0].timelines[index].date,
),
isPrescriptions: true,
isShowEye: model
.medicalFileList[0]
.entityList[0]
.timelines[index]
.timeLineEvents[0]
.consulations
.length !=
isShowEye: model.medicalFileList[0].entityList[0].timelines[index].timeLineEvents[0]
.consulations.length !=
0
? true
: false),
@ -172,8 +150,7 @@ class _HealthSummaryPageState extends State<HealthSummaryPage> {
Image.asset('assets/images/no-data.png'),
Padding(
padding: const EdgeInsets.all(8.0),
child: AppText(TranslationBase.of(context)
.noMedicalFileFound),
child: AppText(TranslationBase.of(context).noMedicalFileFound),
)
],
),

@ -94,11 +94,13 @@ class _InsuranceApprovalScreenNewState extends State<InsuranceApprovalScreenNew>
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => InsuranceApprovalsDetails(
patient: patient,
indexInsurance: index,
patientType: patientType,
),settings: RouteSettings(name: 'InsuranceApprovalsDetails'),),
builder: (context) => InsuranceApprovalsDetails(
patient: patient,
indexInsurance: index,
patientType: patientType,
),
settings: RouteSettings(name: 'InsuranceApprovalsDetails'),
),
);
},
child: DoctorCardInsurance(
@ -185,11 +187,13 @@ class _InsuranceApprovalScreenNewState extends State<InsuranceApprovalScreenNew>
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => InsuranceApprovalsDetails(
patient: patient,
indexInsurance: index,
patientType: patientType,
),settings: RouteSettings(name: 'InsuranceApprovalsDetails'),),
builder: (context) => InsuranceApprovalsDetails(
patient: patient,
indexInsurance: index,
patientType: patientType,
),
settings: RouteSettings(name: 'InsuranceApprovalsDetails'),
),
);
},
child: DoctorCardInsurance(

@ -88,17 +88,16 @@ class _MedicalReportPageState extends State<MedicalReportPage> {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => AddVerifyMedicalReport(
patient: patient,
patientType: patientType,
arrivalType: arrivalType,
model: model,
status: MedicalReportStatus.ADD,
),
builder: (context) => AddVerifyMedicalReport(
patient: patient,
patientType: patientType,
arrivalType: arrivalType,
model: model,
status: MedicalReportStatus.ADD,
),
settings: RouteSettings(name: 'AddVerifyMedicalReport'),
),
);
},
label: TranslationBase.of(context).createNewMedicalReport,
),
@ -119,7 +118,8 @@ class _MedicalReportPageState extends State<MedicalReportPage> {
model: model,
medicalNote: model.medicalReportList[index].reportDataHtml,
),
settings: RouteSettings(name: 'AddVerifyMedicalReport')),);
settings: RouteSettings(name: 'AddVerifyMedicalReport')),
);
} else {
Navigator.of(context).pushNamed(PATIENT_MEDICAL_REPORT_DETAIL, arguments: {
'patient': patient,

@ -45,8 +45,7 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
AuthenticationViewModel authenticationViewModel;
ProjectViewModel projectViewModel;
getProgressNoteList(BuildContext context, PatientViewModel model,
{bool isLocalBusy = false}) async {
getProgressNoteList(BuildContext context, PatientViewModel model, {bool isLocalBusy = false}) async {
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
PatiantInformtion patient = routeArgs['patient'];
String token = await sharedPref.getString(TOKEN);
@ -61,10 +60,7 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
tokenID: token,
patientTypeID: patient.patientType,
languageID: 2);
model
.getPatientProgressNote(progressNoteRequest.toJson(),
isLocalBusy: isLocalBusy)
.then((c) {
model.getPatientProgressNote(progressNoteRequest.toJson(), isLocalBusy: isLocalBusy).then((c) {
notesList = model.patientProgressNoteList;
});
}
@ -73,14 +69,10 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
Widget build(BuildContext context) {
authenticationViewModel = Provider.of(context);
projectViewModel = Provider.of(context);
final routeArgs = ModalRoute
.of(context)
.settings
.arguments as Map;
final routeArgs = ModalRoute.of(context).settings.arguments as Map;
PatiantInformtion patient = routeArgs['patient'];
String arrivalType = routeArgs['arrivalType'];
if (routeArgs.containsKey('isDischargedPatient'))
isDischargedPatient = routeArgs['isDischargedPatient'];
if (routeArgs.containsKey('isDischargedPatient')) isDischargedPatient = routeArgs['isDischargedPatient'];
return BaseView<PatientViewModel>(
onModelReady: (model) => getProgressNoteList(context, model),
builder: (_, model, w) => AppScaffold(
@ -107,12 +99,14 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => UpdateNoteOrder(
patientModel: model,
patient: patient,
visitType: widget.visitType,
isUpdate: false,
),settings: RouteSettings(name: 'UpdateNoteOrder'),),
builder: (context) => UpdateNoteOrder(
patientModel: model,
patient: patient,
visitType: widget.visitType,
isUpdate: false,
),
settings: RouteSettings(name: 'UpdateNoteOrder'),
),
);
},
label: widget.visitType == 3
@ -153,58 +147,35 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
),
if (model.patientProgressNoteList[index].status == 4)
AppText(
TranslationBase
.of(context)
.noteCanceled,
TranslationBase.of(context).noteCanceled,
fontWeight: FontWeight.bold,
color: Colors.red.shade700,
fontSize: 12,
),
if (model
.patientProgressNoteList[
index]
.status ==
2)
if (model.patientProgressNoteList[index].status == 2)
AppText(
TranslationBase
.of(context)
.noteVerified,
TranslationBase.of(context).noteVerified,
fontWeight: FontWeight.bold,
color: Colors.green[600],
fontSize: 12,
),
if (model.patientProgressNoteList[index].status != 2 &&
model
.patientProgressNoteList[
index]
.status !=
4 &&
authenticationViewModel
.doctorProfile.doctorID ==
model
.patientProgressNoteList[
index]
.createdBy)
model.patientProgressNoteList[index].status != 4 &&
authenticationViewModel.doctorProfile.doctorID ==
model.patientProgressNoteList[index].createdBy)
Row(
crossAxisAlignment:
CrossAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
InkWell(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
UpdateNoteOrder(
note: model
.patientProgressNoteList[
index],
patientModel:
model,
patient:
patient,
visitType: widget
.visitType,
builder: (context) => UpdateNoteOrder(
note: model.patientProgressNoteList[index],
patientModel: model,
patient: patient,
visitType: widget.visitType,
isUpdate: true,
)),
);
@ -212,9 +183,7 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
child: Container(
decoration: BoxDecoration(
color: Colors.grey[600],
borderRadius:
BorderRadius.circular(
10),
borderRadius: BorderRadius.circular(10),
),
// color:Colors.red[600],
@ -229,10 +198,7 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
width: 2,
),
AppText(
TranslationBase
.of(
context)
.update,
TranslationBase.of(context).update,
fontSize: 10,
color: Colors.white,
),
@ -250,61 +216,33 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
context: context,
actionName: "verify",
confirmFun: () async {
GifLoaderDialogUtils
.showMyDialog(
context);
UpdateNoteReqModel
reqModel =
UpdateNoteReqModel(
admissionNo: int
.parse(patient
.admissionNo),
cancelledNote:
false,
lineItemNo: model
.patientProgressNoteList[
index]
.lineItemNo,
createdBy: model
.patientProgressNoteList[
index]
.createdBy,
notes: model
.patientProgressNoteList[
index]
.notes,
GifLoaderDialogUtils.showMyDialog(context);
UpdateNoteReqModel reqModel = UpdateNoteReqModel(
admissionNo: int.parse(patient.admissionNo),
cancelledNote: false,
lineItemNo: model.patientProgressNoteList[index].lineItemNo,
createdBy: model.patientProgressNoteList[index].createdBy,
notes: model.patientProgressNoteList[index].notes,
verifiedNote: true,
patientTypeID:
patient
.patientType,
patientTypeID: patient.patientType,
patientOutSA: false,
);
await model
.updatePatientProgressNote(
reqModel);
await getProgressNoteList(
context, model,
isLocalBusy:
true);
GifLoaderDialogUtils
.hideDialog(
context);
await model.updatePatientProgressNote(reqModel);
await getProgressNoteList(context, model, isLocalBusy: true);
GifLoaderDialogUtils.hideDialog(context);
});
},
child: Container(
decoration: BoxDecoration(
color: Colors.green[600],
borderRadius:
BorderRadius.circular(
10),
borderRadius: BorderRadius.circular(10),
),
// color:Colors.red[600],
child: Row(
children: [
Icon(
FontAwesomeIcons
.check,
FontAwesomeIcons.check,
size: 12,
color: Colors.white,
),
@ -312,10 +250,7 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
width: 2,
),
AppText(
TranslationBase
.of(
context)
.noteVerify,
TranslationBase.of(context).noteVerify,
fontSize: 10,
color: Colors.white,
),
@ -331,67 +266,37 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
onTap: () async {
showMyDialog(
context: context,
actionName:
TranslationBase
.of(
context)
.cancel,
actionName: TranslationBase.of(context).cancel,
confirmFun: () async {
GifLoaderDialogUtils
.showMyDialog(
GifLoaderDialogUtils.showMyDialog(
context,
);
UpdateNoteReqModel
reqModel =
UpdateNoteReqModel(
admissionNo: int
.parse(patient
.admissionNo),
UpdateNoteReqModel reqModel = UpdateNoteReqModel(
admissionNo: int.parse(patient.admissionNo),
cancelledNote: true,
lineItemNo: model
.patientProgressNoteList[
index]
.lineItemNo,
createdBy: model
.patientProgressNoteList[
index]
.createdBy,
notes: model
.patientProgressNoteList[
index]
.notes,
lineItemNo: model.patientProgressNoteList[index].lineItemNo,
createdBy: model.patientProgressNoteList[index].createdBy,
notes: model.patientProgressNoteList[index].notes,
verifiedNote: false,
patientTypeID:
patient
.patientType,
patientTypeID: patient.patientType,
patientOutSA: false,
);
await model
.updatePatientProgressNote(
reqModel);
await getProgressNoteList(
context, model,
isLocalBusy:
true);
GifLoaderDialogUtils
.hideDialog(
context);
await model.updatePatientProgressNote(reqModel);
await getProgressNoteList(context, model, isLocalBusy: true);
GifLoaderDialogUtils.hideDialog(context);
});
},
child: Container(
decoration: BoxDecoration(
color: Colors.red[600],
borderRadius:
BorderRadius.circular(
10),
borderRadius: BorderRadius.circular(10),
),
// color:Colors.red[600],
child: Row(
children: [
Icon(
FontAwesomeIcons
.trash,
FontAwesomeIcons.trash,
size: 12,
color: Colors.white,
),
@ -417,41 +322,25 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
height: 10,
),
Row(
mainAxisAlignment:
MainAxisAlignment.spaceBetween,
crossAxisAlignment:
CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
width: MediaQuery.of(context)
.size
.width *
0.60,
width: MediaQuery.of(context).size.width * 0.60,
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
crossAxisAlignment:
CrossAxisAlignment
.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
AppText(
TranslationBase
.of(
context)
.createdBy,
TranslationBase.of(context).createdBy,
fontSize: 10,
),
Expanded(
child: AppText(
model
.patientProgressNoteList[
index]
.doctorName ??
'',
fontWeight:
FontWeight.w600,
model.patientProgressNoteList[index].doctorName ?? '',
fontWeight: FontWeight.w600,
fontSize: 12,
),
),
@ -463,85 +352,55 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
Column(
children: [
AppText(
model
.patientProgressNoteList[
index]
.createdOn !=
null
model.patientProgressNoteList[index].createdOn != null
? AppDateUtils.getDayMonthYearDateFormatted(
AppDateUtils
.getDateTimeFromServerFormat(
model
.patientProgressNoteList[
index]
.createdOn),
isArabic:
projectViewModel
.isArabic)
: AppDateUtils
.getDayMonthYearDateFormatted(
DateTime.now(),
isArabic:
projectViewModel
.isArabic),
AppDateUtils.getDateTimeFromServerFormat(
model.patientProgressNoteList[index].createdOn),
isArabic: projectViewModel.isArabic)
: AppDateUtils.getDayMonthYearDateFormatted(DateTime.now(),
isArabic: projectViewModel.isArabic),
fontWeight: FontWeight.w600,
fontSize: 14,
),
AppText(
model
.patientProgressNoteList[
index]
.createdOn !=
null
? AppDateUtils.getHour(AppDateUtils
.getDateTimeFromServerFormat(
model
.patientProgressNoteList[
index]
.createdOn))
: AppDateUtils.getHour(
DateTime.now()),
model.patientProgressNoteList[index].createdOn != null
? AppDateUtils.getHour(AppDateUtils.getDateTimeFromServerFormat(
model.patientProgressNoteList[index].createdOn))
: AppDateUtils.getHour(DateTime.now()),
fontWeight: FontWeight.w600,
fontSize: 14,
),
],
crossAxisAlignment:
CrossAxisAlignment.end,
crossAxisAlignment: CrossAxisAlignment.end,
)
],
),
SizedBox(
height: 8,
),
Row(
mainAxisAlignment:
MainAxisAlignment.start,
children: [
Expanded(
child: AppText(
model
.patientProgressNoteList[
index]
.notes,
fontSize: 10,
),
),
])
],
),
SizedBox(
height: 20,
),
],
Row(mainAxisAlignment: MainAxisAlignment.start, children: [
Expanded(
child: AppText(
model.patientProgressNoteList[index].notes,
fontSize: 10,
),
),
])
],
),
SizedBox(
height: 20,
),
],
),
),
),
);
}),
);
}),
),
),
),
],
],
),
),
),
),
);
}
@ -550,100 +409,92 @@ class _ProgressNoteState extends State<ProgressNoteScreen> {
showDialog(
context: context,
builder: (ctx) => Center(
child: Container(
width: MediaQuery
.of(context)
.size
.width * 0.8,
height: 200,
child: AppScaffold(
isShowAppBar: false,
body: Container(
color: Colors.white,
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
// SizedBox(height: 20,),
SizedBox(
height: 10,
),
Row(
child: Container(
width: MediaQuery.of(context).size.width * 0.8,
height: 200,
child: AppScaffold(
isShowAppBar: false,
body: Container(
color: Colors.white,
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
AppText(
TranslationBase
.of(context)
.noteConfirm,
fontWeight: FontWeight.w600,
color: Colors.black,
fontSize: 16,
// SizedBox(height: 20,),
SizedBox(
height: 10,
),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
AppText(
TranslationBase.of(context).noteConfirm,
fontWeight: FontWeight.w600,
color: Colors.black,
fontSize: 16,
),
],
),
SizedBox(
height: 10,
),
DividerWithSpacesAround(),
SizedBox(
height: 12,
),
],
),
SizedBox(
height: 10,
),
DividerWithSpacesAround(),
SizedBox(
height: 12,
),
Container(
padding: EdgeInsets.all(20),
color: Colors.white,
child: AppText(
projectViewModel.isArabic?"هل أنت متأكد أنك تريد تنفيذ $actionName هذا الأمر؟":'Are you sure you want $actionName this order?',
fontSize: 15,
textAlign: TextAlign.center,
),
),
Container(
padding: EdgeInsets.all(20),
color: Colors.white,
child: AppText(
projectViewModel.isArabic
? "هل أنت متأكد أنك تريد تنفيذ $actionName هذا الأمر؟"
: 'Are you sure you want $actionName this order?',
fontSize: 15,
textAlign: TextAlign.center,
),
),
SizedBox(
height: 8,
SizedBox(
height: 8,
),
DividerWithSpacesAround(),
FractionallySizedBox(
widthFactor: 0.75,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
FlatButton(
child: AppText(
TranslationBase.of(context).cancel,
fontWeight: FontWeight.w600,
color: Colors.black,
fontSize: 16,
), //Text("Cancel"),
onPressed: () {
Navigator.of(context).pop();
}),
FlatButton(
child: AppText(
TranslationBase.of(context).noteConfirm,
fontWeight: FontWeight.w600,
color: Colors.red.shade700,
fontSize: 16,
), //Text("Confirm", ),
onPressed: () async {
await confirmFun();
Navigator.of(context).pop();
})
],
),
)
],
),
DividerWithSpacesAround(),
FractionallySizedBox(
widthFactor: 0.75,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
FlatButton(
child: AppText(
TranslationBase
.of(context)
.cancel,
fontWeight: FontWeight.w600,
color: Colors.black,
fontSize: 16,
), //Text("Cancel"),
onPressed: () {
Navigator.of(context).pop();
}),
FlatButton(
child: AppText(
TranslationBase
.of(context)
.noteConfirm,
fontWeight: FontWeight.w600,
color: Colors.red.shade700,
fontSize: 16,
), //Text("Confirm", ),
onPressed: () async {
await confirmFun();
Navigator.of(context).pop();
})
],
),
)
],
),
),
),
),
),
),
)
);
));
}
}

Loading…
Cancel
Save