diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 30575eb9..884c7e09 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -6,6 +6,7 @@
additional functionality it is fine to subclass or reimplement
FlutterApplication and put your custom class here. -->
+
diff --git a/assets/images/new-design/AM.PNG b/assets/images/new-design/AM.PNG
new file mode 100644
index 00000000..212ca0b1
Binary files /dev/null and b/assets/images/new-design/AM.PNG differ
diff --git a/lib/config/config.dart b/lib/config/config.dart
index a0bf52be..63ff8954 100644
--- a/lib/config/config.dart
+++ b/lib/config/config.dart
@@ -50,6 +50,14 @@ const GET_PATIENT_AppointmentHistory =
const GET_PATIENT_VITAL_SIGN =
'Services/Doctors.svc/REST/Doctor_GetPatientVitalSign';
+///Er Nearest
+const GET_NEAREST_HOSPITAL=
+ 'Services/Patients.svc/REST/Patient_GetProjectAvgERWaitingTime';
+
+
+
+
+
///Reports
const REPORTS = 'Services/Doctors.svc/REST/GetPatientMedicalReportStatusInfo';
const INSERT_REQUEST_FOR_MEDICAL_REPORT =
@@ -164,7 +172,6 @@ const SESSION_ID = 'TMRhVmkGhOsvamErw';
const IS_DENTAL_ALLOWED_BACKEND = false;
const PATIENT_TYPE = 1;
const PATIENT_TYPE_ID = 1;
-
var DeviceTypeID = Platform.isIOS ? 1 : 2;
const LANGUAGE_ID = 2;
const GET_PHARMCY_ITEMS = "Services/Lists.svc/REST/GetPharmcyItems_Region";
diff --git a/lib/config/localized_values.dart b/lib/config/localized_values.dart
index c0693161..7a4f0acb 100644
--- a/lib/config/localized_values.dart
+++ b/lib/config/localized_values.dart
@@ -365,23 +365,23 @@ const Map> localizedValues = {
"medicalProfile": {"en": "Medical Profile", 'ar': 'الملف الطبي'},
"consultation": {"en": "Consultation", "ar": "استشارة"},
"logs": {"en": "Logs", "ar": "السجلات"},
- "parking": {"en": "Parking", "ar": "مواقف"},
- "alhabiServices": {"en": "HMG Service", "ar": "خدمات الحبيب"},
- "parkingTitle": {
- "en":
- "Car service, car service, service to save parking information, return to it later, 1- By clicking on (Read the code), save the parking data. 2- By clicking on the button (view my car park), it shows you the car’s location in Google Maps. 3- Read another position by pressing the Clear Position Data button.",
- "ar":
- " خدمة المواقف، تتيح هذه الخدمة للمستخدم معلومات عن موقف السيارة ليسهل عليه العودة لها لاحقاً ، 1- بالضغط على زر(قراءة الكود) تستطيع حفظ البيانات الخاصة بالموقف. 2-بالضغط على زر(عرض موقف سيارتي) يعرض لك موقع السيارة في خرائط قوقل. 3- لإعادة قراءة موقف آخرعن طريق الضغط على زر(مسح بيانات الموقف). "
- },
- "readBarcode": {"en": "Read Barcode", "ar": "قراءة الكود"},
- "showMyPark": {"en": "Show My Park", "ar": "عرض بارك"},
- "clearMyData": {"en": "clear My Data", "ar": "امسح البيانات"},
- "floor": {"en": "Floor:", "ar": "الطابق"},
- "gate": {"en": "Gate:", "ar": "بوابة"},
- "building": {"en": "Building:", "ar": "المبنى"},
- "branch": {"en": "Branch:", "ar": "الفرع"},
- "emergencyServices": {"en": "Emergency Services:", "ar": "خدمات الطوارئ"},
"textToSpeech": {"en": "How May I Help You?", "ar": "كيف يمكنني مساعدتك؟"},
+ "locationDialogMessage": {"en": "Allow the HMG app to access your location will assist you in showing the hospitals according to the nearest to you.", "ar": "السماح لتطبيق مجموعة الحبيب الطبية بالوصول إلى موقعك سيساعدك في إظهار المستشفيات وفقًا للأقرب إليك."},
+ "parking":{"en":"Parking","ar":"مواقف"},
+ "alhabiServices":{"en":"HMG Service","ar":"خدمات الحبيب"},
+ "parkingTitle":{"en":"Car service, car service, service to save parking information, return to it later, 1- By clicking on (Read the code), save the parking data. 2- By clicking on the button (view my car park), it shows you the car’s location in Google Maps. 3- Read another position by pressing the Clear Position Data button.","ar":" خدمة المواقف، تتيح هذه الخدمة للمستخدم معلومات عن موقف السيارة ليسهل عليه العودة لها لاحقاً ، 1- بالضغط على زر(قراءة الكود) تستطيع حفظ البيانات الخاصة بالموقف. 2-بالضغط على زر(عرض موقف سيارتي) يعرض لك موقع السيارة في خرائط قوقل. 3- لإعادة قراءة موقف آخرعن طريق الضغط على زر(مسح بيانات الموقف). "},
+ "readBarcode":{"en":"Read Barcode","ar":"قراءة الكود"},
+ "showMyPark":{"en":"Show My Park","ar":"عرض بارك"},
+ "clearMyData":{"en":"clear My Data","ar":"امسح البيانات"},
+ "floor":{"en":"Floor:","ar":"الطابق"},
+ "gate":{"en":"Gate:","ar":"بوابة"},
+ "building":{"en":"Building:","ar":"المبنى"},
+ "branch":{"en":"Branch:","ar":"الفرع"},
+ "emergencyServices":{"en":"Emergency Services:","ar":"خدمات الطوارئ"},
+ "nearester":{"en":"Nearest ER:","ar":"أقرب طوارى"},
+ "locationa":{"en":"location:","ar":"الموقع"},
+ "ambulancerequest":{"en":"Ambulance :","ar":"طلب نقل "},
+ "requestA":{"en":"Request:","ar":"اسعاف"},
"MyAppointments": {"en": "My Appointments", "ar": "مواعيدي"},
"NoBookedAppointments": {
"en": "No Booked Appointments",
@@ -449,7 +449,6 @@ const Map> localizedValues = {
"OrderDetails": {"en": "Order Details", "ar": "تفاصيل الطلب"},
"VitalSign": {"en": "Vital Sign", "ar": "العلامة حيوية"},
"MonthlyReports": {"en": "Monthly Reports", "ar": "تقارير شهرية"},
- "locationDialogMessage": {"en": "Allow the HMG app to access your location will assist you in showing the hospitals according to the nearest to you.", "ar": "السماح لتطبيق مجموعة الحبيب الطبية بالوصول إلى موقعك سيساعدك في إظهار المستشفيات وفقًا للأقرب إليك."},
"km":{"en":"KMs:","ar":"كم"},
"PatientHealthSummaryReport":{"en":"Patient Health Summary Report","ar":" ملخص التقارير الشهرية"},
"ToViewTheTermsAndConditions":{"en":"To View The Terms And Conditions Report","ar":" عرض الشروط والأحكام "},
diff --git a/lib/core/model/er/projectavgerwaitingtime.dart b/lib/core/model/er/projectavgerwaitingtime.dart
new file mode 100644
index 00000000..9b21ec66
--- /dev/null
+++ b/lib/core/model/er/projectavgerwaitingtime.dart
@@ -0,0 +1,104 @@
+class ProjectAvgERWaitingTime {
+ int iD;
+ int projectID;
+ int avgTimeInMinutes;
+ String avgTimeInHHMM;
+ dynamic distanceInKilometers;
+ String latitude;
+ String longitude;
+ String phoneNumber;
+ String projectImageURL;
+ String projectName;
+
+ ProjectAvgERWaitingTime(
+ {this.iD,
+ this.projectID,
+ this.avgTimeInMinutes,
+ this.avgTimeInHHMM,
+ this.distanceInKilometers,
+ this.latitude,
+ this.longitude,
+ this.phoneNumber,
+ this.projectImageURL,
+ this.projectName});
+
+ ProjectAvgERWaitingTime.fromJson(Map json) {
+ iD = json['ID'];
+ projectID = json['ProjectID'];
+ avgTimeInMinutes = json['AvgTimeInMinutes'];
+ avgTimeInHHMM = json['AvgTimeInHHMM'];
+ distanceInKilometers = json['DistanceInKilometers'];
+ latitude = json['Latitude'];
+ longitude = json['Longitude'];
+ phoneNumber = json['PhoneNumber'];
+ projectImageURL = json['ProjectImageURL'];
+ projectName = json['ProjectName'];
+ }
+
+ Map toJson() {
+ final Map data = new Map();
+ data['ID'] = this.iD;
+ data['ProjectID'] = this.projectID;
+ data['AvgTimeInMinutes'] = this.avgTimeInMinutes;
+ data['AvgTimeInHHMM'] = this.avgTimeInHHMM;
+ data['DistanceInKilometers'] = this.distanceInKilometers;
+ data['Latitude'] = this.latitude;
+ data['Longitude'] = this.longitude;
+ data['PhoneNumber'] = this.phoneNumber;
+ data['ProjectImageURL'] = this.projectImageURL;
+ data['ProjectName'] = this.projectName;
+ return data;
+ }
+}
+//class ProjectAvgERWaitingTime {
+// int iD;
+// int projectID;
+// int avgTimeInMinutes;
+// String avgTimeInHHMM;
+// String distanceInKilometers;
+// String latitude;
+// String longitude;
+// String phoneNumber;
+// String projectImageURL;
+// String projectName;
+//
+// ProjectAvgERWaitingTime(
+// {this.iD,
+// this.projectID,
+// this.avgTimeInMinutes,
+// this.avgTimeInHHMM,
+// this.distanceInKilometers,
+// this.latitude,
+// this.longitude,
+// this.phoneNumber,
+// this.projectImageURL,
+// this.projectName});
+//
+// ProjectAvgERWaitingTime.fromJson(Map json) {
+// iD = json['ID'];
+// projectID = json['ProjectID'];
+// avgTimeInMinutes = json['AvgTimeInMinutes'];
+// avgTimeInHHMM = json['AvgTimeInHHMM'];
+// distanceInKilometers = json['DistanceInKilometers'];
+// latitude = json['Latitude'];
+// longitude = json['Longitude'];
+// phoneNumber = json['PhoneNumber'];
+// projectImageURL = json['ProjectImageURL'];
+// projectName = json['ProjectName'];
+// }
+//
+// Map toJson() {
+// final Map data = new Map();
+// data['ID'] = this.iD;
+// data['ProjectID'] = this.projectID;
+// data['AvgTimeInMinutes'] = this.avgTimeInMinutes;
+// data['AvgTimeInHHMM'] = this.avgTimeInHHMM;
+// data['DistanceInKilometers'] = this.distanceInKilometers;
+// data['Latitude'] = this.latitude;
+// data['Longitude'] = this.longitude;
+// data['PhoneNumber'] = this.phoneNumber;
+// data['ProjectImageURL'] = this.projectImageURL;
+// data['ProjectName'] = this.projectName;
+// return data;
+// }
+//}
\ No newline at end of file
diff --git a/lib/core/service/er/er_service.dart b/lib/core/service/er/er_service.dart
new file mode 100644
index 00000000..bd3b6116
--- /dev/null
+++ b/lib/core/service/er/er_service.dart
@@ -0,0 +1,43 @@
+import 'package:diplomaticquarterapp/config/config.dart';
+import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
+import 'package:diplomaticquarterapp/core/model/er/projectavgerwaitingtime.dart';
+import '../base_service.dart';
+
+class ErService extends BaseService {
+ List projectAvgERWaitingTimeModelList = List();
+
+ Map body = Map();
+ String Latitude = "";
+ String Longitude = "";
+ String PhoneNumber = "";
+
+ Future getProjectAvgERWaitingTimeOrders({int id, int projectID}) async {
+ hasError = false;
+
+ if (id != null && projectID != null) {
+ body['ID'] = id;
+ body['ProjectID'] = projectID;
+ }
+ var lat = await sharedPref.getDouble(USER_LAT);
+ var long = await sharedPref.getDouble(USER_LONG);
+ body['Latitude'] = lat ?? 0;
+ body['Longitude'] = long ?? 0;
+
+ await baseAppClient.post(GET_NEAREST_HOSPITAL,
+ onSuccess: (dynamic response, int statusCode) {
+ projectAvgERWaitingTimeModelList.clear();
+ response['List_ProjectAvgERWaitingTime'].forEach((vital) {
+ projectAvgERWaitingTimeModelList
+ .add(ProjectAvgERWaitingTime.fromJson(vital));
+ });
+ projectAvgERWaitingTimeModelList.forEach((element) {
+ Latitude = '${element.latitude}';
+ Longitude = '${element.longitude}';
+ PhoneNumber = '${element.phoneNumber}';
+ });
+ }, onFailure: (String error, int statusCode) {
+ hasError = true;
+ super.error = error;
+ }, body: body);
+ }
+}
diff --git a/lib/core/viewModels/er/near_hospital_view_model.dart b/lib/core/viewModels/er/near_hospital_view_model.dart
new file mode 100644
index 00000000..f12aa28f
--- /dev/null
+++ b/lib/core/viewModels/er/near_hospital_view_model.dart
@@ -0,0 +1,31 @@
+import 'package:diplomaticquarterapp/core/enum/viewstate.dart';
+import 'package:diplomaticquarterapp/core/model/er/projectavgerwaitingtime.dart';
+
+import 'package:diplomaticquarterapp/core/service/er/er_service.dart';
+import 'package:diplomaticquarterapp/core/viewModels/base_view_model.dart';
+import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/BranchView.dart';
+
+import '../../../locator.dart';
+
+class NearHospitalViewModel extends BaseViewModel {
+ ErService _erService = locator();
+
+ List get ProjectAvgERWaitingTimeModeList =>
+ _erService.projectAvgERWaitingTimeModelList;
+
+ getProjectAvgERWaitingTimeOrders({int id, int projectID}) async {
+ setState(ViewState.Busy);
+
+ if (id != null && projectID != null) {
+ await _erService.getProjectAvgERWaitingTimeOrders(
+ id: id, projectID: projectID);
+ } else {
+ await _erService.getProjectAvgERWaitingTimeOrders();
+ }
+ if (_erService.hasError) {
+ error = _erService.error;
+ setState(ViewState.Error);
+ } else
+ setState(ViewState.Idle);
+ }
+}
diff --git a/lib/locator.dart b/lib/locator.dart
index 6839fbc2..f676717d 100644
--- a/lib/locator.dart
+++ b/lib/locator.dart
@@ -5,6 +5,7 @@ import 'package:get_it/get_it.dart';
import 'core/service/appointment_rate_service.dart';
import 'core/service/dashboard_service.dart';
+import 'core/service/er/er_service.dart';
import 'core/service/feedback/feedback_service.dart';
import 'core/service/hospital_service.dart';
import 'core/service/medical/labs_service.dart';
@@ -15,6 +16,7 @@ import 'core/service/medical/radiology_service.dart';
import 'core/service/medical/reports_monthly_service.dart';
import 'core/service/medical/vital_sign_service.dart';
import 'core/viewModels/appointment_rate_view_model.dart';
+import 'core/viewModels/er/near_hospital_view_model.dart';
import 'core/viewModels/feedback/feedback_view_model.dart';
import 'core/service/medical/reports_service.dart';
import 'core/viewModels/hospital_view_model.dart';
@@ -56,6 +58,7 @@ void setupLocator() {
locator.registerLazySingleton(() => QrService());
locator.registerFactory(() => VaccineService());
locator.registerLazySingleton(() => ReportsMonthlyService());
+ locator.registerLazySingleton(() => ErService());
/// View Model
locator.registerFactory(() => HospitalViewModel());
@@ -74,5 +77,6 @@ void setupLocator() {
locator.registerFactory(() => AppointmentRateViewModel());
locator.registerFactory(() => QrViewModel());
locator.registerFactory(() => ReportsMonthlyViewModel());
+ locator.registerFactory(() => NearHospitalViewModel());
}
diff --git a/lib/pages/ErService/AmbulanceReq.dart b/lib/pages/ErService/AmbulanceReq.dart
new file mode 100644
index 00000000..e69de29b
diff --git a/lib/pages/ErService/ErOptions.dart b/lib/pages/ErService/ErOptions.dart
new file mode 100644
index 00000000..6b6166bb
--- /dev/null
+++ b/lib/pages/ErService/ErOptions.dart
@@ -0,0 +1,78 @@
+import 'package:diplomaticquarterapp/uitl/location_util.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+
+import 'package:flutter/material.dart';
+import '../../uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/pages/ErService/widgets/card_common.dart';
+
+class ErOptions extends StatefulWidget {
+ final bool isAppbar;
+
+ const ErOptions({Key key, this.isAppbar}) : super(key: key);
+
+
+ @override
+ _ErOptionsState createState() => _ErOptionsState();
+}
+
+class _ErOptionsState extends State {
+ LocationUtils locationUtils;
+
+ @override
+ void initState() {
+ locationUtils =
+ new LocationUtils(isShowConfirmDialog: true, context: context);
+ WidgetsBinding.instance
+ .addPostFrameCallback((_) => locationUtils.getCurrentLocation());
+
+ super.initState();
+ }
+ @override
+ Widget build(BuildContext context) {
+ return AppScaffold(
+ isShowAppBar: widget.isAppbar,
+ appBarTitle: TranslationBase.of(context).bookAppo,
+ body: Container(
+ margin: EdgeInsets.fromLTRB(10.0, 20.0, 10.0, 10.0),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+// Text(TranslationBase.of(context).searchBy,
+// style: TextStyle(
+// fontSize: 24.0,
+// letterSpacing: 1.0,
+// fontWeight: FontWeight.bold,
+// color: new Color(0xFF60686b))),
+ Container(
+ margin: EdgeInsets.fromLTRB(0.0, 10.0, 0.0, 10.0),
+ child: Row(
+ mainAxisSize: MainAxisSize.max,
+ mainAxisAlignment: MainAxisAlignment.start,
+ children: [
+ Expanded(
+ child: CardCommonEr(
+ image: 'assets/images/new-design/AM.PNG',
+ text: TranslationBase.of(context).ambulancerequest,
+ subText: TranslationBase.of(context).requestA,
+ type: 0,
+
+ ),
+ ),
+ Expanded(
+ child: CardCommonEr(
+ image: 'assets/images/new-design/emergency_icon.png',
+ text: TranslationBase.of(context).nearester,
+ subText: TranslationBase.of(context).locationa,
+ type: 1),
+
+ )
+ ],
+ ),
+ ),
+ ],
+ ),
+ ),
+ );
+ }
+}
+
diff --git a/lib/pages/ErService/NearestEr.dart b/lib/pages/ErService/NearestEr.dart
new file mode 100644
index 00000000..e167770b
--- /dev/null
+++ b/lib/pages/ErService/NearestEr.dart
@@ -0,0 +1,348 @@
+import 'package:diplomaticquarterapp/core/viewModels/er/near_hospital_view_model.dart';
+import 'package:diplomaticquarterapp/pages/base/base_view.dart';
+import 'package:diplomaticquarterapp/uitl/location_util.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+import '../../uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/pages/ErService/widgets/card_common.dart';
+import 'widgets/card_position.dart';
+
+class NearestEr extends StatelessWidget {
+ static const String _url = "assets/images/";
+
+ int appointmentNo;
+ int projectID;
+
+ NearestEr({this.appointmentNo, this.projectID});
+
+ @override
+ Widget build(BuildContext context) {
+ return BaseView(
+ onModelReady: appointmentNo != null && projectID != null
+ ? (model) => model.getProjectAvgERWaitingTimeOrders(
+ id: appointmentNo, projectID: projectID)
+ : (model) => model.getProjectAvgERWaitingTimeOrders(),
+ builder: (_, mode, widget) => AppScaffold(
+ isShowAppBar: true,
+ appBarTitle: 'Nearest ER',
+ baseViewModel: mode,
+ body: mode.ProjectAvgERWaitingTimeModeList.length > 0
+ ? Container(
+ child: ListView(
+ children: [
+ Text(
+ "\nThis service Displays nearest branch\n among all the branches of All Habib \n medical Group based on your current Location",
+ textAlign: TextAlign.center,
+ style: TextStyle(
+ fontSize: 18.0,
+ letterSpacing: 1.0,
+ fontWeight: FontWeight.w900,
+ color: new Color(0xFF60686b))),
+ Container(
+ margin: EdgeInsets.fromLTRB(0.0, 10.0, 0.0, 10.0),
+ child: Column(
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ Row(
+ mainAxisSize: MainAxisSize.min,
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ Expanded(
+ child: CardPosition(
+ text: mode
+ .ProjectAvgERWaitingTimeModeList[0]
+ .projectName
+ .toString(),
+ image:
+ 'assets/images/new-design/find_us_icon.png',
+ subText: mode
+ .ProjectAvgERWaitingTimeModeList[0]
+ .distanceInKilometers
+ .toString(),
+ type: mode
+ .ProjectAvgERWaitingTimeModeList[0].iD
+ .toString(),
+ telephone: mode
+ .ProjectAvgERWaitingTimeModeList[0]
+ .phoneNumber
+ .toString(),
+ networkImage: mode
+ .ProjectAvgERWaitingTimeModeList[0]
+ .projectImageURL
+ .toString(),
+ latitude: mode
+ .ProjectAvgERWaitingTimeModeList[0]
+ .latitude,
+ longitude: mode
+ .ProjectAvgERWaitingTimeModeList[0]
+ .longitude,
+ projectname: mode
+ .ProjectAvgERWaitingTimeModeList[0]
+ .projectName,
+ ),
+ flex: 0,
+ ),
+ Expanded(
+ child: CardPosition(
+ text: mode
+ .ProjectAvgERWaitingTimeModeList[1]
+ .projectName
+ .toString(),
+ image:
+ 'assets/images/new-design/find_us_icon.png',
+ subText: mode
+ .ProjectAvgERWaitingTimeModeList[1]
+ .distanceInKilometers
+ .toString(),
+ type: mode
+ .ProjectAvgERWaitingTimeModeList[1].iD
+ .toString(),
+ telephone: mode
+ .ProjectAvgERWaitingTimeModeList[1]
+ .phoneNumber
+ .toString(),
+ networkImage: mode
+ .ProjectAvgERWaitingTimeModeList[1]
+ .projectImageURL
+ .toString(),
+ latitude: mode
+ .ProjectAvgERWaitingTimeModeList[1]
+ .latitude,
+ longitude: mode
+ .ProjectAvgERWaitingTimeModeList[1]
+ .longitude,
+ projectname: mode
+ .ProjectAvgERWaitingTimeModeList[1]
+ .projectName,
+ ),
+ flex: 0,
+ )
+ ],
+ ),
+ Row(
+ mainAxisSize: MainAxisSize.max,
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ Expanded(
+ child: CardPosition(
+// mode
+// .vitalSignResModelList[
+// mode.vitalSignResModelList.length - 1]
+// .heightCm
+// .toString()
+ text: mode
+ .ProjectAvgERWaitingTimeModeList[2]
+ .projectName
+ .toString(),
+ image:
+ 'assets/images/new-design/find_us_icon.png',
+
+ subText: mode
+ .ProjectAvgERWaitingTimeModeList[2]
+ .distanceInKilometers
+ .toString(),
+ type: mode
+ .ProjectAvgERWaitingTimeModeList[2].iD
+ .toString(),
+ telephone: mode
+ .ProjectAvgERWaitingTimeModeList[2]
+ .phoneNumber
+ .toString(),
+ networkImage: mode
+ .ProjectAvgERWaitingTimeModeList[2]
+ .projectImageURL
+ .toString(),
+ latitude: mode
+ .ProjectAvgERWaitingTimeModeList[2]
+ .latitude,
+ longitude: mode
+ .ProjectAvgERWaitingTimeModeList[2]
+ .longitude,
+ projectname: mode
+ .ProjectAvgERWaitingTimeModeList[2]
+ .projectName,
+ ),
+ flex: 0,
+ ),
+ Expanded(
+ child: CardPosition(
+// mode
+// .vitalSignResModelList[
+// mode.vitalSignResModelList.length - 1]
+// .heightCm
+// .toString()
+ text: mode
+ .ProjectAvgERWaitingTimeModeList[3]
+ .projectName
+ .toString(),
+ image:
+ 'assets/images/new-design/find_us_icon.png',
+
+ subText: mode
+ .ProjectAvgERWaitingTimeModeList[3]
+ .distanceInKilometers
+ .toString(),
+ type: mode
+ .ProjectAvgERWaitingTimeModeList[3].iD
+ .toString(),
+ telephone: mode
+ .ProjectAvgERWaitingTimeModeList[3]
+ .phoneNumber
+ .toString(),
+ networkImage: mode
+ .ProjectAvgERWaitingTimeModeList[3]
+ .projectImageURL
+ .toString(),
+ latitude: mode
+ .ProjectAvgERWaitingTimeModeList[3]
+ .latitude,
+ longitude: mode
+ .ProjectAvgERWaitingTimeModeList[3]
+ .longitude,
+ projectname: mode
+ .ProjectAvgERWaitingTimeModeList[3]
+ .projectName,
+ ),
+ flex: 0,
+ )
+ ],
+ ),
+ Row(
+ mainAxisSize: MainAxisSize.max,
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ Expanded(
+ child: CardPosition(
+// mode
+// .vitalSignResModelList[
+// mode.vitalSignResModelList.length - 1]
+// .heightCm
+// .toString()
+ text: mode
+ .ProjectAvgERWaitingTimeModeList[4]
+ .projectName
+ .toString(),
+ image:
+ 'assets/images/new-design/find_us_icon.png',
+
+ subText: mode
+ .ProjectAvgERWaitingTimeModeList[4]
+ .distanceInKilometers
+ .toString(),
+ type: mode
+ .ProjectAvgERWaitingTimeModeList[4].iD
+ .toString(),
+ telephone: mode
+ .ProjectAvgERWaitingTimeModeList[4]
+ .phoneNumber
+ .toString(),
+ networkImage: mode
+ .ProjectAvgERWaitingTimeModeList[4]
+ .projectImageURL
+ .toString(),
+ latitude: mode
+ .ProjectAvgERWaitingTimeModeList[4]
+ .latitude,
+ longitude: mode
+ .ProjectAvgERWaitingTimeModeList[4]
+ .longitude,
+ projectname: mode
+ .ProjectAvgERWaitingTimeModeList[4]
+ .projectName,
+ ),
+ flex: 0,
+ ),
+ Expanded(
+ child: CardPosition(
+ text: mode
+ .ProjectAvgERWaitingTimeModeList[5]
+ .projectName
+ .toString(),
+ image:
+ 'assets/images/new-design/find_us_icon.png',
+ subText: mode
+ .ProjectAvgERWaitingTimeModeList[5]
+ .distanceInKilometers
+ .toString(),
+ type: mode
+ .ProjectAvgERWaitingTimeModeList[5].iD
+ .toString(),
+ telephone: mode
+ .ProjectAvgERWaitingTimeModeList[5]
+ .phoneNumber
+ .toString(),
+ networkImage: mode
+ .ProjectAvgERWaitingTimeModeList[5]
+ .projectImageURL
+ .toString(),
+ latitude: mode
+ .ProjectAvgERWaitingTimeModeList[5]
+ .latitude,
+ longitude: mode
+ .ProjectAvgERWaitingTimeModeList[5]
+ .longitude,
+ projectname: mode
+ .ProjectAvgERWaitingTimeModeList[5]
+ .projectName,
+ ),
+ flex: 0,
+ )
+ ],
+ ),
+ Row(
+ mainAxisSize: MainAxisSize.max,
+ mainAxisAlignment: MainAxisAlignment.center,
+ children: [
+ Expanded(
+ child: CardPosition(
+ text: mode
+ .ProjectAvgERWaitingTimeModeList[6]
+ .projectName
+ .toString(),
+ image:
+ 'assets/images/new-design/find_us_icon.png',
+ subText: mode
+ .ProjectAvgERWaitingTimeModeList[6]
+ .distanceInKilometers
+ .toString(),
+ type: mode
+ .ProjectAvgERWaitingTimeModeList[6].iD
+ .toString(),
+ telephone: mode
+ .ProjectAvgERWaitingTimeModeList[6]
+ .phoneNumber
+ .toString(),
+ networkImage: mode
+ .ProjectAvgERWaitingTimeModeList[6]
+ .projectImageURL
+ .toString(),
+ latitude: mode
+ .ProjectAvgERWaitingTimeModeList[6]
+ .latitude,
+ longitude: mode
+ .ProjectAvgERWaitingTimeModeList[6]
+ .longitude,
+ projectname: mode
+ .ProjectAvgERWaitingTimeModeList[6]
+ .projectName,
+ ),
+ flex: 0,
+ ),
+ ],
+ ),
+ ],
+ )),
+ ],
+ ),
+ )
+ : Center(
+ child: Texts('No Data'),
+ ),
+ ),
+ );
+ }
+}
+
diff --git a/lib/pages/ErService/widgets/card_common.dart b/lib/pages/ErService/widgets/card_common.dart
new file mode 100644
index 00000000..c65789c5
--- /dev/null
+++ b/lib/pages/ErService/widgets/card_common.dart
@@ -0,0 +1,89 @@
+//import 'package:diplomaticquarterapp/pages/BookAppointment/Search.dart';
+import 'package:diplomaticquarterapp/pages/BookAppointment/Search.dart';
+import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart';
+import 'package:flutter/material.dart';
+
+import '../NearestEr.dart';
+
+class CardCommonEr extends StatelessWidget {
+ final image;
+ final text;
+ final subText;
+ final type;
+ const CardCommonEr(
+ {@required this.image,
+ @required this.text,
+ @required this.subText,
+ @required this.type});
+
+ @override
+ Widget build(BuildContext context) {
+ return GestureDetector(
+ onTap: () {
+ navigateToSearch(context, this.type);
+ print("=============this.type============="+this.type);
+ },
+ child: Container(
+ margin: EdgeInsets.fromLTRB(9.0, 9.0, 9.0, 9.0),
+ decoration: BoxDecoration(boxShadow: [
+ BoxShadow(color: Colors.grey[400], blurRadius: 2.0, spreadRadius: 0.0)
+ ], borderRadius: BorderRadius.circular(10), color: Colors.white),
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ Container(
+ margin: EdgeInsets.fromLTRB(10.0, 10.0, 10.0, 0.0),
+ child: Text(this.text,
+ overflow: TextOverflow.clip,
+ style: TextStyle(
+ color: new Color(0xFFc5272d),
+ letterSpacing: 1.0,
+ fontSize: 20.0)),
+ ),
+ Container(
+ margin: EdgeInsets.fromLTRB(10.0, 0.0, 10.0, 0.0),
+ child: Text(this.subText,
+ overflow: TextOverflow.clip,
+ style: TextStyle(
+ color: Colors.black, letterSpacing: 1.0, fontSize: 15.0)),
+ ),
+ Container(
+ alignment: Alignment.bottomRight,
+ margin: EdgeInsets.fromLTRB(0.0, 0.0, 10.0, 8.0),
+ child: Image.asset(this.image, width: 60.0, height: 60.0),
+ ),
+ ],
+ ),
+ ),
+ );
+ }
+
+ Future navigateToSearch(context, type) async {
+//===Switch case===
+ if(type==0)
+ {print("========Ambalunce=========");}
+ else{
+ print("=========Nearest ER===========");
+
+// Navigator.push(
+// context,
+//
+// FadePage(
+// // page: NearestEr(isAppbar: true,)));
+// page: NearestEr()));
+ Navigator.push(
+ context,
+ FadePage(
+ page: NearestEr()));
+
+ }
+
+
+// Navigator.push(
+// context,
+// MaterialPageRoute(
+// builder: (context) => Search(
+// type: type,
+// )));
+ }
+}
diff --git a/lib/pages/ErService/widgets/card_position.dart b/lib/pages/ErService/widgets/card_position.dart
new file mode 100644
index 00000000..4c649fc5
--- /dev/null
+++ b/lib/pages/ErService/widgets/card_position.dart
@@ -0,0 +1,126 @@
+//import 'package:diplomaticquarterapp/pages/BookAppointment/Search.dart';
+import 'package:diplomaticquarterapp/config/size_config.dart';
+import 'package:diplomaticquarterapp/pages/BookAppointment/Search.dart';
+import 'package:flutter/material.dart';
+import 'package:giffy_dialog/giffy_dialog.dart';
+import 'package:url_launcher/url_launcher.dart';
+import 'package:maps_launcher/maps_launcher.dart';
+
+
+import '../NearestEr.dart';
+
+class CardPosition extends StatelessWidget {
+ final image;
+ final text;
+ final subText;
+ final type;
+ final telephone;
+ final networkImage;
+ final latitude;
+ final longitude;
+ final projectname;
+ const CardPosition(
+ {
+ @required this.image,
+ @required this.text,
+ @required this.subText,
+ @required this.type,
+ @required this.telephone,
+ @required this.networkImage ,
+ @required this.latitude,
+ @required this.longitude,
+ @required this.projectname ,
+ });
+
+ @override
+ Widget build(BuildContext context) {
+ return GestureDetector(
+ onTap: () {
+ navigateToSearch(context, this.type,this.telephone,this.networkImage,this.latitude,this.longitude,this.projectname);
+
+ },
+ child: Container(
+ width:190,
+ margin: EdgeInsets.fromLTRB(7.0, 7.0, 7.0, 7.0),
+ decoration: BoxDecoration(boxShadow: [
+ BoxShadow(color: Colors.grey[400], blurRadius: 2.0, spreadRadius: 0.0)
+ ], borderRadius: BorderRadius.circular(10), color: Colors.white),
+ child: Column(
+
+ crossAxisAlignment: CrossAxisAlignment.center,
+ children: [
+ Container(
+ margin: EdgeInsets.fromLTRB(10.0, 10.0, 10.0, 0.0),
+ child: Text(this.text,
+ overflow: TextOverflow.clip,
+ style: TextStyle(
+ color: Colors.black,
+ letterSpacing: 1.0,
+ fontSize: 2 * SizeConfig.textMultiplier)),
+ ),
+ Container(
+ alignment: Alignment.center,
+ margin: EdgeInsets.fromLTRB(0.0, 0.0, 10.0, 8.0),
+ child: Image.asset(this.image, width: 60.0, height: 60.0),
+ ),
+ Container(
+ margin: EdgeInsets.fromLTRB(10.0, 0.0, 10.0, 0.0),
+ child: Text(this.subText,
+ overflow: TextOverflow.clip,
+ style: TextStyle(
+ color: Color(0xFFc5272d), letterSpacing: 1.0, fontSize: 15.0)),
+ ),
+
+ ],
+ ),
+ ),
+ );
+ }
+
+ Future navigateToSearch(context, type,telephone,networkImage,latitude,longitude,projectname) async {
+
+//===Switch case===
+ print("================"+type);
+ print("================"+telephone);
+ print("================"+networkImage);
+
+ showDialog(
+ context: context,builder: (_) => AssetGiffyDialog(
+ title: Text(projectname,
+ style: TextStyle(
+ fontSize: 22.0, fontWeight: FontWeight.w600),
+ ),image:Image.network(networkImage, fit: BoxFit.cover,),
+
+ buttonOkText:Text("LOCATION"),
+ buttonOkColor: Colors.grey,
+ buttonCancelText:Text('CAll') ,
+ buttonCancelColor: Colors.grey,
+ onOkButtonPressed: () { MapsLauncher.launchCoordinates(double.parse(latitude),double.parse(longitude),projectname);},
+ onCancelButtonPressed :() {launch("tel://" +telephone);}
+
+// double.parse(
+// _medicineProvider.pharmaciesList[index]["Latitude"]),
+// double.parse(
+// _medicineProvider.pharmaciesList[index]["Longitude"]),
+// _medicineProvider.pharmaciesList[index]
+// ["LocationDescription"]);
+ //launch("tel://" +telephone);
+//================
+// MapsLauncher.launchCoordinates(
+// double.parse(
+// _medicineProvider.pharmaciesList[index]["Latitude"]),
+// double.parse(
+// _medicineProvider.pharmaciesList[index]["Longitude"]),
+// _medicineProvider.pharmaciesList[index]
+// ["LocationDescription"]);
+//=================
+
+
+
+ ) );
+
+ }
+
+ }
+
+
diff --git a/lib/pages/landing/home_page.dart b/lib/pages/landing/home_page.dart
index d7afab94..da9d9348 100644
--- a/lib/pages/landing/home_page.dart
+++ b/lib/pages/landing/home_page.dart
@@ -2,6 +2,7 @@ import 'package:diplomaticquarterapp/config/size_config.dart';
import 'package:diplomaticquarterapp/core/viewModels/dashboard_view_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
import 'package:diplomaticquarterapp/pages/AlHabibMedicalService/all_habib_medical_service_page.dart';
+import 'package:diplomaticquarterapp/pages/ErService/ErOptions.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/pages/feedback/feedback_home_page.dart';
import 'package:diplomaticquarterapp/uitl/date_uitl.dart';
@@ -513,27 +514,31 @@ class _HomePageState extends State {
)),
Container(
width: MediaQuery.of(context).size.width * 0.29,
- child: Center(
- child: Padding(
- padding: const EdgeInsets.all(15.0),
- child: Column(
- children: [
- Image.asset(
- 'assets/images/Dr_Schedule_report.png',
- width: 50,
- height: 50,
- ),
- SizedBox(
- height: 15,
- ),
- Texts(
- TranslationBase.of(context).emergencyServices,
- textAlign: TextAlign.center,
- color: Colors.black87,
- bold: false,
- fontSize: SizeConfig.textMultiplier * 2.0,
- )
- ],
+ child: InkWell(
+ onTap: ()=>Navigator.push(context,
+ FadePage(page: ErOptions(isAppbar: true,))),
+ child: Center(
+ child: Padding(
+ padding: const EdgeInsets.all(15.0),
+ child: Column(
+ children: [
+ Image.asset(
+ 'assets/images/Dr_Schedule_report.png',
+ width: 50,
+ height: 50,
+ ),
+ SizedBox(
+ height: 15,
+ ),
+ Texts(
+ TranslationBase.of(context).emergencyServices,
+ textAlign: TextAlign.center,
+ color: Colors.black87,
+ bold: false,
+ fontSize: SizeConfig.textMultiplier * 2.0,
+ )
+ ],
+ ),
),
),
),
diff --git a/lib/uitl/translations_delegate_base.dart b/lib/uitl/translations_delegate_base.dart
index 41a5a537..8bc0fb6f 100644
--- a/lib/uitl/translations_delegate_base.dart
+++ b/lib/uitl/translations_delegate_base.dart
@@ -444,6 +444,14 @@ class TranslationBase {
String get branch =>localizedValues['branch'][locale.languageCode];
String get emergencyServices =>localizedValues['emergencyServices'][locale.languageCode];
+ String get nearester=> localizedValues['nearester'][locale.languageCode];
+ String get locationa=> localizedValues['locationa'][locale.languageCode];
+ String get ambulancerequest=> localizedValues['ambulancerequest'][locale.languageCode];
+ String get requestA=> localizedValues['requestA'][locale.languageCode];
+
+
+
+
String get consultation =>
localizedValues['consultation'][locale.languageCode];
diff --git a/pubspec.yaml b/pubspec.yaml
index ea73a56b..64b3ac1f 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -31,6 +31,8 @@ dependencies:
# Permissions
permission_handler: ^5.0.0+hotfix.3
device_info: ^0.4.2+4
+#popub
+ giffy_dialog: ^1.8.0
# Flutter Html View
flutter_html: ^1.0.2