|
|
|
|
@ -1,7 +1,9 @@
|
|
|
|
|
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
|
|
|
|
|
import 'package:doctor_app_flutter/screens/patients/profile/profile_screen/PatientProfileCardModel.dart';
|
|
|
|
|
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
|
|
|
|
|
import 'package:doctor_app_flutter/widgets/patients/profile/PatientProfileButton.dart';
|
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
|
import 'package:flutter_staggered_grid_view/flutter_staggered_grid_view.dart';
|
|
|
|
|
|
|
|
|
|
import '../../../../routes.dart';
|
|
|
|
|
|
|
|
|
|
@ -25,135 +27,115 @@ class ProfileGridForSearch extends StatelessWidget {
|
|
|
|
|
|
|
|
|
|
@override
|
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
|
final List<PatientProfileCardModel> cardsList = [
|
|
|
|
|
PatientProfileCardModel(
|
|
|
|
|
TranslationBase.of(context).vital,
|
|
|
|
|
TranslationBase.of(context).signs,
|
|
|
|
|
VITAL_SIGN_DETAILS,
|
|
|
|
|
'patient/vital_signs.png',
|
|
|
|
|
isInPatient: isInpatient),
|
|
|
|
|
PatientProfileCardModel(
|
|
|
|
|
TranslationBase.of(context).lab,
|
|
|
|
|
TranslationBase.of(context).result,
|
|
|
|
|
LAB_RESULT,
|
|
|
|
|
'patient/lab_results.png',
|
|
|
|
|
isInPatient: isInpatient),
|
|
|
|
|
PatientProfileCardModel(
|
|
|
|
|
TranslationBase.of(context).radiology,
|
|
|
|
|
TranslationBase.of(context).service,
|
|
|
|
|
RADIOLOGY_PATIENT,
|
|
|
|
|
'patient/health_summary.png',
|
|
|
|
|
isInPatient: isInpatient),
|
|
|
|
|
PatientProfileCardModel(
|
|
|
|
|
TranslationBase.of(context).orders,
|
|
|
|
|
TranslationBase.of(context).prescription,
|
|
|
|
|
ORDER_PRESCRIPTION_NEW,
|
|
|
|
|
'patient/order_prescription.png',
|
|
|
|
|
isInPatient: isInpatient),
|
|
|
|
|
PatientProfileCardModel(
|
|
|
|
|
TranslationBase.of(context).health,
|
|
|
|
|
TranslationBase.of(context).summary,
|
|
|
|
|
HEALTH_SUMMARY,
|
|
|
|
|
'patient/health_summary.png',
|
|
|
|
|
isInPatient: isInpatient),
|
|
|
|
|
PatientProfileCardModel(
|
|
|
|
|
TranslationBase.of(context).patient,
|
|
|
|
|
"ECG",
|
|
|
|
|
PATIENT_ECG,
|
|
|
|
|
'patient/patient_sick_leave.png',
|
|
|
|
|
isInPatient: isInpatient),
|
|
|
|
|
PatientProfileCardModel(
|
|
|
|
|
TranslationBase.of(context).orders,
|
|
|
|
|
TranslationBase.of(context).procedures,
|
|
|
|
|
ORDER_PROCEDURE,
|
|
|
|
|
'patient/Order_Procedures.png',
|
|
|
|
|
isInPatient: isInpatient),
|
|
|
|
|
PatientProfileCardModel(
|
|
|
|
|
TranslationBase.of(context).insurance,
|
|
|
|
|
TranslationBase.of(context).service,
|
|
|
|
|
PATIENT_INSURANCE_APPROVALS_NEW,
|
|
|
|
|
'patient/vital_signs.png',
|
|
|
|
|
isInPatient: isInpatient),
|
|
|
|
|
PatientProfileCardModel(
|
|
|
|
|
TranslationBase.of(context).patientSick,
|
|
|
|
|
TranslationBase.of(context).leave,
|
|
|
|
|
ADD_SICKLEAVE,
|
|
|
|
|
'patient/patient_sick_leave.png',
|
|
|
|
|
isInPatient: isInpatient),
|
|
|
|
|
if (patient.appointmentNo != null && patient.appointmentNo != 0)
|
|
|
|
|
PatientProfileCardModel(
|
|
|
|
|
TranslationBase.of(context).patient,
|
|
|
|
|
TranslationBase.of(context).ucaf,
|
|
|
|
|
PATIENT_UCAF_REQUEST,
|
|
|
|
|
'patient/ucaf.png',
|
|
|
|
|
isInPatient: isInpatient,
|
|
|
|
|
isDisable: patient.patientStatusType != 43 ? true : false),
|
|
|
|
|
if (patient.appointmentNo != null && patient.appointmentNo != 0)
|
|
|
|
|
PatientProfileCardModel(
|
|
|
|
|
TranslationBase.of(context).referral,
|
|
|
|
|
TranslationBase.of(context).patient,
|
|
|
|
|
REFER_PATIENT_TO_DOCTOR,
|
|
|
|
|
'patient/refer_patient.png',
|
|
|
|
|
isInPatient: isInpatient,
|
|
|
|
|
isDisable: patient.patientStatusType != 43 ? true : false),
|
|
|
|
|
if (patient.appointmentNo != null && patient.appointmentNo != 0)
|
|
|
|
|
PatientProfileCardModel(
|
|
|
|
|
TranslationBase.of(context).admission,
|
|
|
|
|
TranslationBase.of(context).request,
|
|
|
|
|
PATIENT_ADMISSION_REQUEST,
|
|
|
|
|
'patient/admission_req.png',
|
|
|
|
|
isInPatient: isInpatient,
|
|
|
|
|
isDisable: patient.patientStatusType != 43 ? true : false),
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
return Column(
|
|
|
|
|
children: [
|
|
|
|
|
Padding(
|
|
|
|
|
padding: const EdgeInsets.symmetric(vertical: 15.0, horizontal: 15),
|
|
|
|
|
child: GridView.count(
|
|
|
|
|
child: StaggeredGridView.countBuilder(
|
|
|
|
|
shrinkWrap: true,
|
|
|
|
|
physics: NeverScrollableScrollPhysics(),
|
|
|
|
|
crossAxisSpacing: 10,
|
|
|
|
|
mainAxisSpacing: 10,
|
|
|
|
|
childAspectRatio: 1 / 1.0,
|
|
|
|
|
crossAxisCount: 3,
|
|
|
|
|
children: [
|
|
|
|
|
PatientProfileButton(
|
|
|
|
|
isInPatient: isInpatient,
|
|
|
|
|
patient: patient,
|
|
|
|
|
patientType: patientType,
|
|
|
|
|
arrivalType: arrivalType,
|
|
|
|
|
from: from,
|
|
|
|
|
to: to,
|
|
|
|
|
nameLine1: TranslationBase.of(context).vital,
|
|
|
|
|
nameLine2: TranslationBase.of(context).signs,
|
|
|
|
|
route: VITAL_SIGN_DETAILS,
|
|
|
|
|
icon: 'patient/vital_signs.png'),
|
|
|
|
|
PatientProfileButton(
|
|
|
|
|
isInPatient: isInpatient,
|
|
|
|
|
patient: patient,
|
|
|
|
|
patientType: patientType,
|
|
|
|
|
arrivalType: arrivalType,
|
|
|
|
|
route: LAB_RESULT,
|
|
|
|
|
nameLine1: TranslationBase.of(context).lab,
|
|
|
|
|
nameLine2: TranslationBase.of(context).result,
|
|
|
|
|
icon: 'patient/lab_results.png'),
|
|
|
|
|
PatientProfileButton(
|
|
|
|
|
patient: patient,
|
|
|
|
|
patientType: patientType,
|
|
|
|
|
arrivalType: arrivalType,
|
|
|
|
|
isInPatient: isInpatient,
|
|
|
|
|
route: RADIOLOGY_PATIENT,
|
|
|
|
|
nameLine1: TranslationBase.of(context).radiology,
|
|
|
|
|
nameLine2: TranslationBase.of(context).service,
|
|
|
|
|
icon: 'patient/health_summary.png'),
|
|
|
|
|
PatientProfileButton(
|
|
|
|
|
isInPatient: isInpatient,
|
|
|
|
|
patient: patient,
|
|
|
|
|
patientType: patientType,
|
|
|
|
|
arrivalType: arrivalType,
|
|
|
|
|
route: ORDER_PRESCRIPTION_NEW,
|
|
|
|
|
nameLine1: TranslationBase.of(context).orders,
|
|
|
|
|
nameLine2: TranslationBase.of(context).prescription,
|
|
|
|
|
icon: 'patient/order_prescription.png'),
|
|
|
|
|
PatientProfileButton(
|
|
|
|
|
isInPatient: isInpatient,
|
|
|
|
|
patient: patient,
|
|
|
|
|
patientType: patientType,
|
|
|
|
|
arrivalType: arrivalType,
|
|
|
|
|
route: HEALTH_SUMMARY,
|
|
|
|
|
nameLine1: TranslationBase.of(context).health,
|
|
|
|
|
nameLine2: TranslationBase.of(context).summary,
|
|
|
|
|
icon: 'patient/health_summary.png'),
|
|
|
|
|
PatientProfileButton(
|
|
|
|
|
isInPatient: isInpatient,
|
|
|
|
|
patient: patient,
|
|
|
|
|
patientType: patientType,
|
|
|
|
|
arrivalType: arrivalType,
|
|
|
|
|
route: PATIENT_ECG,
|
|
|
|
|
nameLine1: TranslationBase.of(context).patient,
|
|
|
|
|
nameLine2: "ECG",
|
|
|
|
|
icon: 'patient/patient_sick_leave.png'),
|
|
|
|
|
PatientProfileButton(
|
|
|
|
|
isInPatient: isInpatient,
|
|
|
|
|
patient: patient,
|
|
|
|
|
patientType: patientType,
|
|
|
|
|
arrivalType: arrivalType,
|
|
|
|
|
route: ORDER_PROCEDURE,
|
|
|
|
|
nameLine1: TranslationBase.of(context).orders,
|
|
|
|
|
nameLine2: TranslationBase.of(context).procedures,
|
|
|
|
|
icon: 'patient/Order_Procedures.png'),
|
|
|
|
|
PatientProfileButton(
|
|
|
|
|
isInPatient: isInpatient,
|
|
|
|
|
patient: patient,
|
|
|
|
|
patientType: patientType,
|
|
|
|
|
arrivalType: arrivalType,
|
|
|
|
|
route: PATIENT_INSURANCE_APPROVALS_NEW,
|
|
|
|
|
nameLine1: TranslationBase.of(context).insurance,
|
|
|
|
|
nameLine2: TranslationBase.of(context).service,
|
|
|
|
|
icon: 'patient/vital_signs.png'),
|
|
|
|
|
PatientProfileButton(
|
|
|
|
|
isInPatient: isInpatient,
|
|
|
|
|
patient: patient,
|
|
|
|
|
patientType: patientType,
|
|
|
|
|
arrivalType: arrivalType,
|
|
|
|
|
route: ADD_SICKLEAVE,
|
|
|
|
|
nameLine1: TranslationBase.of(context).patientSick,
|
|
|
|
|
nameLine2: TranslationBase.of(context).leave,
|
|
|
|
|
icon: 'patient/patient_sick_leave.png'),
|
|
|
|
|
if (patient.appointmentNo != null && patient.appointmentNo != 0)
|
|
|
|
|
PatientProfileButton(
|
|
|
|
|
isInPatient: isInpatient,
|
|
|
|
|
patient: patient,
|
|
|
|
|
patientType: patientType,
|
|
|
|
|
arrivalType: arrivalType,
|
|
|
|
|
route: PATIENT_UCAF_REQUEST,
|
|
|
|
|
isDisable: patient.patientStatusType != 43 ? true : false,
|
|
|
|
|
nameLine1: TranslationBase.of(context).patient,
|
|
|
|
|
nameLine2: TranslationBase.of(context).ucaf,
|
|
|
|
|
icon: 'patient/ucaf.png'),
|
|
|
|
|
if (patient.appointmentNo != null && patient.appointmentNo != 0)
|
|
|
|
|
PatientProfileButton(
|
|
|
|
|
isInPatient: isInpatient,
|
|
|
|
|
patient: patient,
|
|
|
|
|
patientType: patientType,
|
|
|
|
|
arrivalType: arrivalType,
|
|
|
|
|
route: REFER_PATIENT_TO_DOCTOR,
|
|
|
|
|
isDisable: patient.patientStatusType != 43 ? true : false,
|
|
|
|
|
nameLine1: TranslationBase.of(context).referral,
|
|
|
|
|
nameLine2: TranslationBase.of(context).patient,
|
|
|
|
|
icon: 'patient/refer_patient.png'),
|
|
|
|
|
if (patient.appointmentNo != null && patient.appointmentNo != 0)
|
|
|
|
|
PatientProfileButton(
|
|
|
|
|
isInPatient: isInpatient,
|
|
|
|
|
patient: patient,
|
|
|
|
|
patientType: patientType,
|
|
|
|
|
arrivalType: arrivalType,
|
|
|
|
|
route: PATIENT_ADMISSION_REQUEST,
|
|
|
|
|
isDisable: patient.patientStatusType != 43 ? true : false,
|
|
|
|
|
nameLine1: TranslationBase.of(context).admission,
|
|
|
|
|
nameLine2: TranslationBase.of(context).request,
|
|
|
|
|
icon: 'patient/admission_req.png'),
|
|
|
|
|
],
|
|
|
|
|
itemCount: cardsList.length,
|
|
|
|
|
staggeredTileBuilder: (int index) => StaggeredTile.fit(1),
|
|
|
|
|
itemBuilder: (BuildContext context, int index) => PatientProfileButton(
|
|
|
|
|
patient: patient,
|
|
|
|
|
patientType: patientType,
|
|
|
|
|
arrivalType: arrivalType,
|
|
|
|
|
from: from,
|
|
|
|
|
to: to,
|
|
|
|
|
nameLine1: cardsList[index].nameLine1,
|
|
|
|
|
nameLine2: cardsList[index].nameLine2,
|
|
|
|
|
route: cardsList[index].route,
|
|
|
|
|
icon: cardsList[index].icon,
|
|
|
|
|
isInPatient: cardsList[index].isInPatient,
|
|
|
|
|
isDischargedPatient: cardsList[index].isDischargedPatient,
|
|
|
|
|
isDisable: cardsList[index].isDisable,
|
|
|
|
|
onTap: cardsList[index].onTap,
|
|
|
|
|
isLoading: cardsList[index].isLoading,
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
),
|
|
|
|
|
],
|
|
|
|
|
|