diff --git a/assets/images/1.png b/assets/images/1.png
new file mode 100644
index 00000000..c90aa190
Binary files /dev/null and b/assets/images/1.png differ
diff --git a/assets/images/2.png b/assets/images/2.png
new file mode 100644
index 00000000..48891b32
Binary files /dev/null and b/assets/images/2.png differ
diff --git a/assets/images/3.png b/assets/images/3.png
new file mode 100644
index 00000000..721f6e6c
Binary files /dev/null and b/assets/images/3.png differ
diff --git a/assets/images/4.png b/assets/images/4.png
new file mode 100644
index 00000000..6d61b45f
Binary files /dev/null and b/assets/images/4.png differ
diff --git a/assets/images/5.png b/assets/images/5.png
new file mode 100644
index 00000000..e45f432c
Binary files /dev/null and b/assets/images/5.png differ
diff --git a/assets/images/bc_parking.png b/assets/images/bc_parking.png
new file mode 100644
index 00000000..64633516
Binary files /dev/null and b/assets/images/bc_parking.png differ
diff --git a/assets/images/new-design/pending.svg b/assets/images/new-design/pending.svg
new file mode 100644
index 00000000..2c26afbd
--- /dev/null
+++ b/assets/images/new-design/pending.svg
@@ -0,0 +1,6 @@
+
diff --git a/assets/images/new-design/verification_check.svg b/assets/images/new-design/verification_check.svg
new file mode 100644
index 00000000..1b3cdcca
--- /dev/null
+++ b/assets/images/new-design/verification_check.svg
@@ -0,0 +1,8 @@
+
diff --git a/assets/images/new/hmg_logo.png b/assets/images/new/hmg_logo.png
new file mode 100644
index 00000000..2555cfa9
Binary files /dev/null and b/assets/images/new/hmg_logo.png differ
diff --git a/assets/images/nfc/ic_done.png b/assets/images/nfc/ic_done.png
new file mode 100644
index 00000000..5b802855
Binary files /dev/null and b/assets/images/nfc/ic_done.png differ
diff --git a/assets/images/nfc/ic_nfc.png b/assets/images/nfc/ic_nfc.png
new file mode 100644
index 00000000..274e1b8c
Binary files /dev/null and b/assets/images/nfc/ic_nfc.png differ
diff --git a/assets/images/powerd-by2.jpg b/assets/images/powerd-by2.jpg
new file mode 100644
index 00000000..93bdbb18
Binary files /dev/null and b/assets/images/powerd-by2.jpg differ
diff --git a/google-services_DQ.json b/google-services_DQ.json
new file mode 100644
index 00000000..a4655794
--- /dev/null
+++ b/google-services_DQ.json
@@ -0,0 +1,40 @@
+{
+  "project_info": {
+    "project_number": "864393916058",
+    "firebase_url": "https://diplomaticquarter-d2385.firebaseio.com",
+    "project_id": "diplomaticquarter-d2385",
+    "storage_bucket": "diplomaticquarter-d2385.appspot.com"
+  },
+  "client": [
+    {
+      "client_info": {
+        "mobilesdk_app_id": "1:864393916058:android:5b5a65cd6d8c18b4b97923",
+        "android_client_info": {
+          "package_name": "com.cloud.diplomaticquarterapp"
+        }
+      },
+      "oauth_client": [
+        {
+          "client_id": "864393916058-tphjrn8j39ntevt32ekcvmll8aue7qql.apps.googleusercontent.com",
+          "client_type": 3
+        }
+      ],
+      "api_key": [
+        {
+          "current_key": "AIzaSyBdV3mos1BPhUzNKCj2KANJtiO3o2zh9IM"
+        }
+      ],
+      "services": {
+        "appinvite_service": {
+          "other_platform_oauth_client": [
+            {
+              "client_id": "864393916058-tphjrn8j39ntevt32ekcvmll8aue7qql.apps.googleusercontent.com",
+              "client_type": 3
+            }
+          ]
+        }
+      }
+    }
+  ],
+  "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/google-services_HMG.json b/google-services_HMG.json
new file mode 100644
index 00000000..dd4038cf
--- /dev/null
+++ b/google-services_HMG.json
@@ -0,0 +1,42 @@
+{
+  "project_info": {
+    "project_number": "815750722565",
+    "firebase_url": "https://api-project-815750722565.firebaseio.com",
+    "project_id": "api-project-815750722565",
+    "storage_bucket": "api-project-815750722565.appspot.com"
+  },
+  "client": [
+    {
+      "client_info": {
+        "mobilesdk_app_id": "1:815750722565:android:62281cd3e5df4063",
+        "android_client_info": {
+          "package_name": "com.ejada.hmg"
+        }
+      },
+      "oauth_client": [
+        {
+          "client_id": "815750722565-3a0gc7neins0eoahdrimrfksk0sqice8.apps.googleusercontent.com",
+          "client_type": 3
+        }
+      ],
+      "api_key": [
+        {
+          "current_key": "AIzaSyDUfg6AKM1-00WyzpvLImUBC46wFrq9-qw"
+        }
+      ],
+      "services": {
+        "analytics_service": {
+          "status": 1
+        },
+        "appinvite_service": {
+          "status": 1,
+          "other_platform_oauth_client": []
+        },
+        "ads_service": {
+          "status": 2
+        }
+      }
+    }
+  ],
+  "configuration_version": "1"
+}
\ No newline at end of file
diff --git a/hms-plugins/flutter-hms-location/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java b/hms-plugins/flutter-hms-location/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
new file mode 100644
index 00000000..975e9019
--- /dev/null
+++ b/hms-plugins/flutter-hms-location/android/app/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
@@ -0,0 +1,25 @@
+package io.flutter.plugins;
+
+import io.flutter.plugin.common.PluginRegistry;
+import com.huawei.hms.flutter.location.LocationPlugin;
+
+/**
+ * Generated file. Do not edit.
+ */
+public final class GeneratedPluginRegistrant {
+  public static void registerWith(PluginRegistry registry) {
+    if (alreadyRegisteredWith(registry)) {
+      return;
+    }
+    LocationPlugin.registerWith(registry.registrarFor("com.huawei.hms.flutter.location.LocationPlugin"));
+  }
+
+  private static boolean alreadyRegisteredWith(PluginRegistry registry) {
+    final String key = GeneratedPluginRegistrant.class.getCanonicalName();
+    if (registry.hasPlugin(key)) {
+      return true;
+    }
+    registry.registrarFor(key);
+    return false;
+  }
+}
diff --git a/hms-plugins/flutter-hms-location/android/local.properties b/hms-plugins/flutter-hms-location/android/local.properties
new file mode 100644
index 00000000..c6cb6fc0
--- /dev/null
+++ b/hms-plugins/flutter-hms-location/android/local.properties
@@ -0,0 +1,2 @@
+sdk.dir=C:\\Users\\sultan.khan\\AppData\\Local\\Android\\Sdk
+flutter.sdk=C:\\Program Files\\flutter
\ No newline at end of file
diff --git a/hms-plugins/flutter-hms-location/ios/Flutter/Generated.xcconfig b/hms-plugins/flutter-hms-location/ios/Flutter/Generated.xcconfig
new file mode 100644
index 00000000..4527e66e
--- /dev/null
+++ b/hms-plugins/flutter-hms-location/ios/Flutter/Generated.xcconfig
@@ -0,0 +1,14 @@
+// This is a generated file; do not edit or check into version control.
+FLUTTER_ROOT=C:\Program Files\flutter
+FLUTTER_APPLICATION_PATH=C:\Projects\DQ\hms-plugins\flutter-hms-location
+FLUTTER_TARGET=lib\main.dart
+FLUTTER_BUILD_DIR=build
+SYMROOT=${SOURCE_ROOT}/../build\ios
+OTHER_LDFLAGS=$(inherited) -framework Flutter
+FLUTTER_FRAMEWORK_DIR=C:\Program Files\flutter\bin\cache\artifacts\engine\ios
+FLUTTER_BUILD_NAME=5.0.0
+FLUTTER_BUILD_NUMBER=301
+DART_OBFUSCATION=false
+TRACK_WIDGET_CREATION=false
+TREE_SHAKE_ICONS=false
+PACKAGE_CONFIG=.packages
diff --git a/hms-plugins/flutter-hms-location/ios/Flutter/flutter_export_environment.sh b/hms-plugins/flutter-hms-location/ios/Flutter/flutter_export_environment.sh
new file mode 100644
index 00000000..87c35592
--- /dev/null
+++ b/hms-plugins/flutter-hms-location/ios/Flutter/flutter_export_environment.sh
@@ -0,0 +1,15 @@
+#!/bin/sh
+# This is a generated file; do not edit or check into version control.
+export "FLUTTER_ROOT=C:\Program Files\flutter"
+export "FLUTTER_APPLICATION_PATH=C:\Projects\DQ\hms-plugins\flutter-hms-location"
+export "FLUTTER_TARGET=lib\main.dart"
+export "FLUTTER_BUILD_DIR=build"
+export "SYMROOT=${SOURCE_ROOT}/../build\ios"
+export "OTHER_LDFLAGS=$(inherited) -framework Flutter"
+export "FLUTTER_FRAMEWORK_DIR=C:\Program Files\flutter\bin\cache\artifacts\engine\ios"
+export "FLUTTER_BUILD_NAME=5.0.0"
+export "FLUTTER_BUILD_NUMBER=301"
+export "DART_OBFUSCATION=false"
+export "TRACK_WIDGET_CREATION=false"
+export "TREE_SHAKE_ICONS=false"
+export "PACKAGE_CONFIG=.packages"
diff --git a/hms-plugins/flutter-hms-location/ios/Runner/GeneratedPluginRegistrant.h b/hms-plugins/flutter-hms-location/ios/Runner/GeneratedPluginRegistrant.h
new file mode 100644
index 00000000..ed9a5c61
--- /dev/null
+++ b/hms-plugins/flutter-hms-location/ios/Runner/GeneratedPluginRegistrant.h
@@ -0,0 +1,17 @@
+//
+//  Generated file. Do not edit.
+//
+
+#ifndef GeneratedPluginRegistrant_h
+#define GeneratedPluginRegistrant_h
+
+#import 
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface GeneratedPluginRegistrant : NSObject
++ (void)registerWithRegistry:(NSObject*)registry;
+@end
+
+NS_ASSUME_NONNULL_END
+#endif /* GeneratedPluginRegistrant_h */
diff --git a/hms-plugins/flutter-hms-location/ios/Runner/GeneratedPluginRegistrant.m b/hms-plugins/flutter-hms-location/ios/Runner/GeneratedPluginRegistrant.m
new file mode 100644
index 00000000..60dfa42b
--- /dev/null
+++ b/hms-plugins/flutter-hms-location/ios/Runner/GeneratedPluginRegistrant.m
@@ -0,0 +1,12 @@
+//
+//  Generated file. Do not edit.
+//
+
+#import "GeneratedPluginRegistrant.h"
+
+@implementation GeneratedPluginRegistrant
+
++ (void)registerWithRegistry:(NSObject*)registry {
+}
+
+@end
diff --git a/lib/core/model/health_calcolator/get_doctor_by_time_model.dart b/lib/core/model/health_calcolator/get_doctor_by_time_model.dart
new file mode 100644
index 00000000..02c4a6ca
--- /dev/null
+++ b/lib/core/model/health_calcolator/get_doctor_by_time_model.dart
@@ -0,0 +1,198 @@
+class DoctorListByTimeModel {
+  dynamic clinicID;
+  String clinicName;
+  String doctorTitle;
+  dynamic iD;
+  String name;
+  dynamic projectID;
+  String projectName;
+  dynamic actualDoctorRate;
+  dynamic clinicRoomNo;
+  dynamic date;
+  dynamic dayName;
+  double decimalDoctorRate;
+  dynamic doctorAvailability;
+  dynamic doctorID;
+  String doctorImageURL;
+  dynamic doctorProfile;
+  dynamic doctorProfileInfo;
+  dynamic doctorRate;
+  dynamic doctorStarsRate;
+  dynamic gender;
+  String genderDescription;
+  bool isAllowWaitList;
+  bool isAppointmentAllowed;
+  bool isDoctorAllowVedioCall;
+  bool isDoctorDummy;
+  bool isDoctorHasPrePostImages;
+  bool isLiveCare;
+  String latitude;
+  String longitude;
+  String nationalityFlagURL;
+  String nationalityID;
+  String nationalityName;
+  dynamic nearestFreeSlot;
+  dynamic noOfPatientsRate;
+  dynamic originalClinicID;
+  dynamic personRate;
+  dynamic projectDistanceInKiloMeters;
+  String qR;
+  dynamic qRString;
+  dynamic rateNumber;
+  dynamic serviceID;
+  String setupID;
+  List speciality;
+  dynamic workingHours;
+
+  DoctorListByTimeModel(
+      {this.clinicID,
+      this.clinicName,
+      this.doctorTitle,
+      this.iD,
+      this.name,
+      this.projectID,
+      this.projectName,
+      this.actualDoctorRate,
+      this.clinicRoomNo,
+      this.date,
+      this.dayName,
+      this.decimalDoctorRate,
+      this.doctorAvailability,
+      this.doctorID,
+      this.doctorImageURL,
+      this.doctorProfile,
+      this.doctorProfileInfo,
+      this.doctorRate,
+      this.doctorStarsRate,
+      this.gender,
+      this.genderDescription,
+      this.isAllowWaitList,
+      this.isAppointmentAllowed,
+      this.isDoctorAllowVedioCall,
+      this.isDoctorDummy,
+      this.isDoctorHasPrePostImages,
+      this.isLiveCare,
+      this.latitude,
+      this.longitude,
+      this.nationalityFlagURL,
+      this.nationalityID,
+      this.nationalityName,
+      this.nearestFreeSlot,
+      this.noOfPatientsRate,
+      this.originalClinicID,
+      this.personRate,
+      this.projectDistanceInKiloMeters,
+      this.qR,
+      this.qRString,
+      this.rateNumber,
+      this.serviceID,
+      this.setupID,
+      this.speciality,
+      this.workingHours});
+
+  DoctorListByTimeModel.fromJson(Map json) {
+    clinicID = json['ClinicID'];
+    clinicName = json['ClinicName'];
+    doctorTitle = json['DoctorTitle'];
+    iD = json['ID'];
+    name = json['Name'];
+    projectID = json['ProjectID'];
+    projectName = json['ProjectName'];
+    actualDoctorRate = json['ActualDoctorRate'];
+    clinicRoomNo = json['ClinicRoomNo'];
+    date = json['Date'];
+    dayName = json['DayName'];
+    decimalDoctorRate = json['DecimalDoctorRate'];
+    doctorAvailability = json['DoctorAvailability'];
+    doctorID = json['DoctorID'];
+    doctorImageURL = json['DoctorImageURL'];
+    doctorProfile = json['DoctorProfile'];
+    doctorProfileInfo = json['DoctorProfileInfo'];
+    doctorRate = json['DoctorRate'];
+    doctorStarsRate = json['DoctorStarsRate'];
+    gender = json['Gender'];
+    genderDescription = json['GenderDescription'];
+    isAllowWaitList = json['IsAllowWaitList'];
+    isAppointmentAllowed = json['IsAppointmentAllowed'];
+    isDoctorAllowVedioCall = json['IsDoctorAllowVedioCall'];
+    isDoctorDummy = json['IsDoctorDummy'];
+    isDoctorHasPrePostImages = json['IsDoctorHasPrePostImages'];
+    isLiveCare = json['IsLiveCare'];
+    latitude = json['Latitude'];
+    longitude = json['Longitude'];
+    nationalityFlagURL = json['NationalityFlagURL'];
+    nationalityID = json['NationalityID'];
+    nationalityName = json['NationalityName'];
+    nearestFreeSlot = json['NearestFreeSlot'];
+    noOfPatientsRate = json['NoOfPatientsRate'];
+    originalClinicID = json['OriginalClinicID'];
+    personRate = json['PersonRate'];
+    projectDistanceInKiloMeters = json['ProjectDistanceInKiloMeters'];
+    qR = json['QR'];
+    qRString = json['QRString'];
+    rateNumber = json['RateNumber'];
+    serviceID = json['ServiceID'];
+    setupID = json['SetupID'];
+    speciality = json['Speciality'].cast();
+    workingHours = json['WorkingHours'];
+  }
+
+  Map toJson() {
+    final Map data = new Map();
+    data['ClinicID'] = this.clinicID;
+    data['ClinicName'] = this.clinicName;
+    data['DoctorTitle'] = this.doctorTitle;
+    data['ID'] = this.iD;
+    data['Name'] = this.name;
+    data['ProjectID'] = this.projectID;
+    data['ProjectName'] = this.projectName;
+    data['ActualDoctorRate'] = this.actualDoctorRate;
+    data['ClinicRoomNo'] = this.clinicRoomNo;
+    data['Date'] = this.date;
+    data['DayName'] = this.dayName;
+    data['DecimalDoctorRate'] = this.decimalDoctorRate;
+    data['DoctorAvailability'] = this.doctorAvailability;
+    data['DoctorID'] = this.doctorID;
+    data['DoctorImageURL'] = this.doctorImageURL;
+    data['DoctorProfile'] = this.doctorProfile;
+    data['DoctorProfileInfo'] = this.doctorProfileInfo;
+    data['DoctorRate'] = this.doctorRate;
+    data['DoctorStarsRate'] = this.doctorStarsRate;
+    data['Gender'] = this.gender;
+    data['GenderDescription'] = this.genderDescription;
+    data['IsAllowWaitList'] = this.isAllowWaitList;
+    data['IsAppointmentAllowed'] = this.isAppointmentAllowed;
+    data['IsDoctorAllowVedioCall'] = this.isDoctorAllowVedioCall;
+    data['IsDoctorDummy'] = this.isDoctorDummy;
+    data['IsDoctorHasPrePostImages'] = this.isDoctorHasPrePostImages;
+    data['IsLiveCare'] = this.isLiveCare;
+    data['Latitude'] = this.latitude;
+    data['Longitude'] = this.longitude;
+    data['NationalityFlagURL'] = this.nationalityFlagURL;
+    data['NationalityID'] = this.nationalityID;
+    data['NationalityName'] = this.nationalityName;
+    data['NearestFreeSlot'] = this.nearestFreeSlot;
+    data['NoOfPatientsRate'] = this.noOfPatientsRate;
+    data['OriginalClinicID'] = this.originalClinicID;
+    data['PersonRate'] = this.personRate;
+    data['ProjectDistanceInKiloMeters'] = this.projectDistanceInKiloMeters;
+    data['QR'] = this.qR;
+    data['QRString'] = this.qRString;
+    data['RateNumber'] = this.rateNumber;
+    data['ServiceID'] = this.serviceID;
+    data['SetupID'] = this.setupID;
+    data['Speciality'] = this.speciality;
+    data['WorkingHours'] = this.workingHours;
+    return data;
+  }
+}
+
+class DoctorsListTime {
+  List doctorsByTimeList = List();
+  String filterName = "";
+
+  DoctorsListTime({filterName, DoctorListByTimeModel doctor}) {
+    doctorsByTimeList.add(doctor);
+    this.filterName = filterName;
+  }
+}
diff --git a/lib/core/model/health_calcolator/get_doctor_by_time_request_model.dart b/lib/core/model/health_calcolator/get_doctor_by_time_request_model.dart
new file mode 100644
index 00000000..cf9b2004
--- /dev/null
+++ b/lib/core/model/health_calcolator/get_doctor_by_time_request_model.dart
@@ -0,0 +1,80 @@
+class DoctorListByTimeRequestModel {
+  int clinicID;
+  bool isGetNearAppointment;
+  bool continueDentalPlan;
+  bool isSearchAppointmnetByClinicID;
+  int patientID;
+  int latitude;
+  int longitude;
+  bool license;
+  double versionID;
+  int channel;
+  int languageID;
+  String iPAdress;
+  String generalid;
+  int patientOutSA;
+  dynamic sessionID;
+  bool isDentalAllowedBackend;
+  int deviceTypeID;
+
+  DoctorListByTimeRequestModel(
+      {this.clinicID,
+      this.isGetNearAppointment,
+      this.continueDentalPlan,
+      this.isSearchAppointmnetByClinicID,
+      this.patientID,
+      this.latitude,
+      this.longitude,
+      this.license,
+      this.versionID,
+      this.channel,
+      this.languageID,
+      this.iPAdress,
+      this.generalid,
+      this.patientOutSA,
+      this.sessionID,
+      this.isDentalAllowedBackend,
+      this.deviceTypeID});
+
+  DoctorListByTimeRequestModel.fromJson(Map json) {
+    clinicID = json['ClinicID'];
+    isGetNearAppointment = json['IsGetNearAppointment'];
+    continueDentalPlan = json['ContinueDentalPlan'];
+    isSearchAppointmnetByClinicID = json['IsSearchAppointmnetByClinicID'];
+    patientID = json['PatientID'];
+    latitude = json['Latitude'];
+    longitude = json['Longitude'];
+    license = json['License'];
+    versionID = json['VersionID'];
+    channel = json['Channel'];
+    languageID = json['LanguageID'];
+    iPAdress = json['IPAdress'];
+    generalid = json['generalid'];
+    patientOutSA = json['PatientOutSA'];
+    sessionID = json['SessionID'];
+    isDentalAllowedBackend = json['isDentalAllowedBackend'];
+    deviceTypeID = json['DeviceTypeID'];
+  }
+
+  Map toJson() {
+    final Map data = new Map();
+    data['ClinicID'] = this.clinicID;
+    data['IsGetNearAppointment'] = this.isGetNearAppointment;
+    data['ContinueDentalPlan'] = this.continueDentalPlan;
+    data['IsSearchAppointmnetByClinicID'] = this.isSearchAppointmnetByClinicID;
+    data['PatientID'] = this.patientID;
+    data['Latitude'] = this.latitude;
+    data['Longitude'] = this.longitude;
+    data['License'] = this.license;
+    data['VersionID'] = this.versionID;
+    data['Channel'] = this.channel;
+    data['LanguageID'] = this.languageID;
+    data['IPAdress'] = this.iPAdress;
+    data['generalid'] = this.generalid;
+    data['PatientOutSA'] = this.patientOutSA;
+    data['SessionID'] = this.sessionID;
+    data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
+    data['DeviceTypeID'] = this.deviceTypeID;
+    return data;
+  }
+}
diff --git a/lib/core/model/health_calcolator/get_doctor_list_calcolation_model.dart b/lib/core/model/health_calcolator/get_doctor_list_calcolation_model.dart
new file mode 100644
index 00000000..409cab60
--- /dev/null
+++ b/lib/core/model/health_calcolator/get_doctor_list_calcolation_model.dart
@@ -0,0 +1,64 @@
+class GetDoctorListModel {
+  int calcID;
+  int projectID;
+  int clinicID;
+  String clinicName;
+  int doctorID;
+  String doctorImageURL;
+  String doctorName;
+  String doctorTitle;
+  int gender;
+  String genderDescription;
+  String nationality;
+  String nationalityFlagURL;
+  String projectName;
+
+  GetDoctorListModel(
+      {this.calcID,
+      this.projectID,
+      this.clinicID,
+      this.clinicName,
+      this.doctorID,
+      this.doctorImageURL,
+      this.doctorName,
+      this.doctorTitle,
+      this.gender,
+      this.genderDescription,
+      this.nationality,
+      this.nationalityFlagURL,
+      this.projectName});
+
+  GetDoctorListModel.fromJson(Map json) {
+    calcID = json['CalcID'];
+    projectID = json['ProjectID'];
+    clinicID = json['ClinicID'];
+    clinicName = json['ClinicName'];
+    doctorID = json['DoctorID'];
+    doctorImageURL = json['DoctorImageURL'];
+    doctorName = json['DoctorName'];
+    doctorTitle = json['DoctorTitle'];
+    gender = json['Gender'];
+    genderDescription = json['GenderDescription'];
+    nationality = json['Nationality'];
+    nationalityFlagURL = json['NationalityFlagURL'];
+    projectName = json['ProjectName'];
+  }
+
+  Map toJson() {
+    final Map data = new Map();
+    data['CalcID'] = this.calcID;
+    data['ProjectID'] = this.projectID;
+    data['ClinicID'] = this.clinicID;
+    data['ClinicName'] = this.clinicName;
+    data['DoctorID'] = this.doctorID;
+    data['DoctorImageURL'] = this.doctorImageURL;
+    data['DoctorName'] = this.doctorName;
+    data['DoctorTitle'] = this.doctorTitle;
+    data['Gender'] = this.gender;
+    data['GenderDescription'] = this.genderDescription;
+    data['Nationality'] = this.nationality;
+    data['NationalityFlagURL'] = this.nationalityFlagURL;
+    data['ProjectName'] = this.projectName;
+    return data;
+  }
+}
diff --git a/lib/core/model/health_calcolator/get_doctor_list_calcolation_request_model.dart b/lib/core/model/health_calcolator/get_doctor_list_calcolation_request_model.dart
new file mode 100644
index 00000000..80002341
--- /dev/null
+++ b/lib/core/model/health_calcolator/get_doctor_list_calcolation_request_model.dart
@@ -0,0 +1,52 @@
+class GetDoctorListRequestModel {
+  int calculationID;
+  double versionID;
+  int channel;
+  int languageID;
+  String iPAdress;
+  String generalid;
+  int patientOutSA;
+  String sessionID;
+  bool isDentalAllowedBackend;
+  int deviceTypeID;
+
+  GetDoctorListRequestModel(
+      {this.calculationID,
+      this.versionID,
+      this.channel,
+      this.languageID,
+      this.iPAdress,
+      this.generalid,
+      this.patientOutSA,
+      this.sessionID,
+      this.isDentalAllowedBackend,
+      this.deviceTypeID});
+
+  GetDoctorListRequestModel.fromJson(Map json) {
+    calculationID = json['CalculationID'];
+    versionID = json['VersionID'];
+    channel = json['Channel'];
+    languageID = json['LanguageID'];
+    iPAdress = json['IPAdress'];
+    generalid = json['generalid'];
+    patientOutSA = json['PatientOutSA'];
+    sessionID = json['SessionID'];
+    isDentalAllowedBackend = json['isDentalAllowedBackend'];
+    deviceTypeID = json['DeviceTypeID'];
+  }
+
+  Map toJson() {
+    final Map data = new Map();
+    data['CalculationID'] = this.calculationID;
+    data['VersionID'] = this.versionID;
+    data['Channel'] = this.channel;
+    data['LanguageID'] = this.languageID;
+    data['IPAdress'] = this.iPAdress;
+    data['generalid'] = this.generalid;
+    data['PatientOutSA'] = this.patientOutSA;
+    data['SessionID'] = this.sessionID;
+    data['isDentalAllowedBackend'] = this.isDentalAllowedBackend;
+    data['DeviceTypeID'] = this.deviceTypeID;
+    return data;
+  }
+}
diff --git a/lib/core/model/prescriptions/prescription_report_inp.dart b/lib/core/model/prescriptions/prescription_report_inp.dart
new file mode 100644
index 00000000..b802337b
--- /dev/null
+++ b/lib/core/model/prescriptions/prescription_report_inp.dart
@@ -0,0 +1,124 @@
+class PrescriptionReportINP {
+  int patientID;
+  String patientName;
+  String patientAge;
+  String patientGender;
+  String address;
+  String phoneOffice;
+  String itemDescription;
+  int doseTimingID;
+  int frequencyID;
+  int routeID;
+  String clinic;
+  String doctorName;
+  String route;
+  String frequency;
+  String remarks;
+  String name;
+  int days;
+  String startDate;
+  String orderDate;
+  int doseDailyQuantity;
+  int itemID;
+  Null productImage;
+  String sKU;
+  String itemDescriptionN;
+  String routeN;
+  String frequencyN;
+  String imageSRCUrl;
+  String imageThumbUrl;
+
+  PrescriptionReportINP(
+      {this.patientID,
+      this.patientName,
+      this.patientAge,
+      this.patientGender,
+      this.address,
+      this.phoneOffice,
+      this.itemDescription,
+      this.doseTimingID,
+      this.frequencyID,
+      this.routeID,
+      this.clinic,
+      this.doctorName,
+      this.route,
+      this.frequency,
+      this.remarks,
+      this.name,
+      this.days,
+      this.startDate,
+      this.orderDate,
+      this.doseDailyQuantity,
+      this.itemID,
+      this.productImage,
+      this.sKU,
+      this.itemDescriptionN,
+      this.routeN,
+      this.frequencyN,
+      this.imageSRCUrl,
+      this.imageThumbUrl});
+
+  PrescriptionReportINP.fromJson(Map json) {
+    patientID = json['PatientID'];
+    patientName = json['PatientName'];
+    patientAge = json['PatientAge'];
+    patientGender = json['PatientGender'];
+    address = json['Address'];
+    phoneOffice = json['PhoneOffice'];
+    itemDescription = json['ItemDescription'];
+    doseTimingID = json['DoseTimingID'];
+    frequencyID = json['FrequencyID'];
+    routeID = json['RouteID'];
+    clinic = json['Clinic'];
+    doctorName = json['DoctorName'];
+    route = json['Route'];
+    frequency = json['Frequency'];
+    remarks = json['Remarks'];
+    name = json['Name'];
+    days = json['Days'];
+    startDate = json['StartDate'];
+    orderDate = json['OrderDate'];
+    doseDailyQuantity = json['DoseDailyQuantity'];
+    itemID = json['ItemID'];
+    productImage = json['ProductImage'];
+    sKU = json['SKU'];
+    itemDescriptionN = json['ItemDescriptionN'];
+    routeN = json['RouteN'];
+    frequencyN = json['FrequencyN'];
+    imageSRCUrl = json['ImageSRCUrl'];
+    imageThumbUrl = json['ImageThumbUrl'];
+  }
+
+  Map toJson() {
+    final Map data = new Map();
+    data['PatientID'] = this.patientID;
+    data['PatientName'] = this.patientName;
+    data['PatientAge'] = this.patientAge;
+    data['PatientGender'] = this.patientGender;
+    data['Address'] = this.address;
+    data['PhoneOffice'] = this.phoneOffice;
+    data['ItemDescription'] = this.itemDescription;
+    data['DoseTimingID'] = this.doseTimingID;
+    data['FrequencyID'] = this.frequencyID;
+    data['RouteID'] = this.routeID;
+    data['Clinic'] = this.clinic;
+    data['DoctorName'] = this.doctorName;
+    data['Route'] = this.route;
+    data['Frequency'] = this.frequency;
+    data['Remarks'] = this.remarks;
+    data['Name'] = this.name;
+    data['Days'] = this.days;
+    data['StartDate'] = this.startDate;
+    data['OrderDate'] = this.orderDate;
+    data['DoseDailyQuantity'] = this.doseDailyQuantity;
+    data['ItemID'] = this.itemID;
+    data['ProductImage'] = this.productImage;
+    data['SKU'] = this.sKU;
+    data['ItemDescriptionN'] = this.itemDescriptionN;
+    data['RouteN'] = this.routeN;
+    data['FrequencyN'] = this.frequencyN;
+    data['ImageSRCUrl'] = this.imageSRCUrl;
+    data['ImageThumbUrl'] = this.imageThumbUrl;
+    return data;
+  }
+}
diff --git a/lib/pages/AlHabibMedicalService/h2o/widgets/h20_buttom_navigation_bar.dart b/lib/pages/AlHabibMedicalService/h2o/widgets/h20_buttom_navigation_bar.dart
new file mode 100644
index 00000000..1948e1c8
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/h2o/widgets/h20_buttom_navigation_bar.dart
@@ -0,0 +1,58 @@
+import 'package:diplomaticquarterapp/pages/landing/home_page.dart';
+import 'package:diplomaticquarterapp/widgets/bottom_navigation/bottom_nav_bar.dart';
+import 'package:diplomaticquarterapp/widgets/buttons/floatingActionButton.dart';
+import 'package:flutter/material.dart';
+import 'package:diplomaticquarterapp/pages/medical/medical_profile_page.dart';
+import 'package:diplomaticquarterapp/pages/BookAppointment/BookingOptions.dart';
+import 'package:diplomaticquarterapp/pages/DrawerPages/family/my-family.dart';
+import 'package:diplomaticquarterapp/pages/ToDoList/ToDo.dart';
+
+class H20BottomNavigationBar extends StatelessWidget {
+  H20BottomNavigationBar({Key key}) : super(key: key);
+
+  PageController pageController = PageController(keepPage: true);
+  int currentTab = 0;
+
+  @override
+  Widget build(BuildContext context) {
+    // TODO: implement build
+    return Scaffold(
+      body: PageView(
+        physics: NeverScrollableScrollPhysics(),
+        controller: pageController,
+        children: [
+          HomePage(
+            goToMyProfile: () {
+              _changeCurrentTab(1);
+            },
+          ),
+          MedicalProfilePage(),
+          BookingOptions(),
+          MyFamily(isAppbarVisible: false),
+          ToDo(isShowAppBar: false),
+        ], // Please do not remove the BookingOptions from this array
+      ),
+      bottomNavigationBar: BottomNavBar(
+        changeIndex: _changeCurrentTab,
+        index: currentTab,
+      ),
+      floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
+      floatingActionButton: FloatingButton(
+          elevation: true,
+          onTap: () {
+            _changeCurrentTab(2);
+          }),
+    );
+  }
+
+  _changeCurrentTab(int tab) {
+    // setState(() {
+    currentTab = tab;
+    if (tab != 0)
+      pageController.jumpToPage(tab);
+    else {
+      pageController.jumpToPage(tab);
+    }
+    // });
+  }
+}
diff --git a/lib/pages/AlHabibMedicalService/health_calculator/doctor_list.dart b/lib/pages/AlHabibMedicalService/health_calculator/doctor_list.dart
new file mode 100644
index 00000000..61f75227
--- /dev/null
+++ b/lib/pages/AlHabibMedicalService/health_calculator/doctor_list.dart
@@ -0,0 +1,112 @@
+import 'package:diplomaticquarterapp/core/viewModels/AlHabibMedicalService/health-calculator/Bariatrics-viewmodel.dart';
+import 'package:diplomaticquarterapp/pages/base/base_view.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
+import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
+import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
+import 'package:flutter/cupertino.dart';
+import 'package:flutter/material.dart';
+import 'package:rating_bar/rating_bar.dart';
+
+class DoctorList extends StatelessWidget {
+  const DoctorList({Key key}) : super(key: key);
+
+  @override
+  Widget build(BuildContext context) {
+    return BaseView(
+        allowAny: true,
+        onModelReady: (model) => model.getDoctorList(),
+        builder: (BuildContext context, BariatricsViewModel model, Widget child) => AppScaffold(
+              isShowDecPage: false,
+              isShowAppBar: true,
+              baseViewModel: model,
+              appBarTitle: "Doctors List",
+              description: TranslationBase.of(context).infoApprovals,
+              infoList: TranslationBase.of(context).infoApprovalPoints,
+              body: ListView.builder(
+                  itemCount: model.doctorLists.length,
+                  itemBuilder: (BuildContext context, int index) {
+                    return Padding(
+                      padding: EdgeInsets.symmetric(horizontal: 16.0, vertical: 10.0),
+                      child: Container(
+                        //height: MediaQuery.of(context).size.height * 0.09,
+                        decoration: BoxDecoration(color: Colors.white),
+
+                        child: ExpansionTile(
+                          title: Padding(
+                            padding: EdgeInsets.all(21.0),
+                            child: Texts(model.doctorLists[index].filterName),
+                          ),
+                          children: model.doctorLists[index].doctorsByTimeList
+                              .map((doctor) => Card(
+                                    margin: EdgeInsets.fromLTRB(10.0, 16.0, 10.0, 8.0),
+                                    color: Colors.white,
+                                    shape: RoundedRectangleBorder(
+                                      borderRadius: BorderRadius.circular(10),
+                                    ),
+                                    child: Container(
+                                      decoration: BoxDecoration(),
+                                      padding: EdgeInsets.all(7.0),
+                                      width: MediaQuery.of(context).size.width,
+                                      child: Row(
+                                        mainAxisAlignment: MainAxisAlignment.start,
+                                        children: [
+                                          Expanded(
+                                            flex: 1,
+                                            child: ClipRRect(
+                                              borderRadius: BorderRadius.circular(100.0),
+                                              child: Image.network(doctor.doctorImageURL, fit: BoxFit.fill, height: 60.0, width: 60.0),
+                                            ),
+                                          ),
+                                          Expanded(
+                                            flex: 4,
+                                            child: Container(
+                                              width: MediaQuery.of(context).size.width * 0.55,
+                                              margin: EdgeInsets.fromLTRB(20.0, 10.0, 10.0, 0.0),
+                                              child: Column(
+                                                crossAxisAlignment: CrossAxisAlignment.start,
+                                                children: [
+                                                  if (doctor.doctorTitle != null)
+                                                    Text(doctor.doctorTitle + " " + doctor.name, style: TextStyle(fontSize: 14.0, color: Colors.grey[700], letterSpacing: 1.0)),
+                                                  Container(
+                                                    margin: EdgeInsets.only(top: 3.0),
+                                                    child: Text(doctor.clinicName != null ? doctor.clinicName : "", style: TextStyle(fontSize: 12.0, color: Colors.grey[600], letterSpacing: 1.0)),
+                                                  ),
+                                                  Container(
+                                                    margin: EdgeInsets.only(top: 3.0),
+                                                    child: Text(doctor.projectName, style: TextStyle(fontSize: 12.0, color: Colors.grey[600], letterSpacing: 1.0)),
+                                                  ),
+                                                  Row(
+                                                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
+                                                    mainAxisSize: MainAxisSize.max,
+                                                    children: [
+                                                      RatingBar.readOnly(
+                                                        initialRating: doctor.actualDoctorRate.toDouble(),
+                                                        size: 20.0,
+                                                        filledColor: Colors.yellow[700],
+                                                        emptyColor: Colors.grey[500],
+                                                        isHalfAllowed: true,
+                                                        halfFilledIcon: Icons.star_half,
+                                                        filledIcon: Icons.star,
+                                                        emptyIcon: Icons.star,
+                                                      ),
+                                                      Container(
+                                                        child: Image.network(doctor.nationalityFlagURL, width: 25.0, height: 25.0),
+                                                      ),
+                                                    ],
+                                                  ),
+                                                ],
+                                              ),
+                                            ),
+                                          ),
+                                        ],
+                                      ),
+                                    ),
+                                  ))
+                              .toList(),
+                        ),
+                      ),
+                    );
+                  }),
+            ));
+  }
+}
diff --git a/lib/pages/medical/prescriptions/prescription_details_inp.dart b/lib/pages/medical/prescriptions/prescription_details_inp.dart
new file mode 100644
index 00000000..91f4a4c6
--- /dev/null
+++ b/lib/pages/medical/prescriptions/prescription_details_inp.dart
@@ -0,0 +1,310 @@
+import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report.dart';
+import 'package:diplomaticquarterapp/core/model/prescriptions/prescription_report_inp.dart';
+import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart';
+import 'package:diplomaticquarterapp/pages/MyAppointments/widgets/reminder_dialog.dart';
+import 'package:diplomaticquarterapp/pages/medical/prescriptions/pharmacy_for_prescriptions_page.dart';
+import 'package:diplomaticquarterapp/uitl/translations_delegate_base.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 'package:provider/provider.dart';
+
+class PrescriptionDetailsPageINP extends StatelessWidget {
+  final PrescriptionReportINP prescriptionReport;
+
+  PrescriptionDetailsPageINP({Key key, this.prescriptionReport});
+
+  @override
+  Widget build(BuildContext context) {
+    return AppScaffold(
+      isShowAppBar: true,
+      appBarTitle: TranslationBase.of(context).prescriptions,
+      body: SingleChildScrollView(
+        child: Column(
+          crossAxisAlignment: CrossAxisAlignment.start,
+          children: [
+            Container(
+              width: double.infinity,
+              margin: EdgeInsets.only(top: 10, left: 10, right: 10),
+              padding: EdgeInsets.all(8.0),
+              decoration: BoxDecoration(
+                color: Colors.white,
+                borderRadius: BorderRadius.all(
+                  Radius.circular(10.0),
+                ),
+                border: Border.all(color: Colors.grey[200], width: 0.5),
+              ),
+              child: Row(
+                children: [
+                  ClipRRect(
+                    borderRadius: BorderRadius.all(Radius.circular(5)),
+                    child: Image.network(
+                      prescriptionReport.imageSRCUrl,
+                      fit: BoxFit.cover,
+                      width: 60,
+                      height: 70,
+                    ),
+                  ),
+                  Expanded(
+                    child: Padding(
+                      padding: const EdgeInsets.all(8.0),
+                      child: Center(
+                        child: Texts(
+                            prescriptionReport.itemDescription.isNotEmpty
+                                ? prescriptionReport.itemDescription
+                                : prescriptionReport.itemDescriptionN ?? ''),
+                      ),
+                    ),
+                  )
+                ],
+              ),
+            ),
+            Container(
+              margin: EdgeInsets.all(8),
+              child: Row(
+                children: [
+                  Expanded(
+                    child: InkWell(
+                        onTap: () => Navigator.push(
+                              context,
+                              FadePage(
+                                page: PharmacyForPrescriptionsPage(
+                                    itemID: prescriptionReport.itemID),
+                              ),
+                            ),
+                        child: Center(
+                          child: Column(
+                            children: [
+                              Container(
+                                width: 50,
+                                decoration: BoxDecoration(
+                                    color: Colors.white,
+                                    shape: BoxShape.rectangle),
+                                child: Column(
+                                  children: [
+                                    Icon(
+                                      Icons.pin_drop,
+                                      color: Colors.red[800],
+                                      size: 55,
+                                    ),
+                                  ],
+                                ),
+                              ),
+                              SizedBox(
+                                height: 5,
+                              ),
+                              Texts(TranslationBase.of(context).availability)
+                            ],
+                          ),
+                        )),
+                  ),
+                  _addReminderButton(context)
+                ],
+              ),
+            ),
+            Container(
+              color: Colors.white,
+              margin: EdgeInsets.only(top: 10, left: 10, right: 10),
+              child: Table(
+                border: TableBorder.symmetric(
+                    inside: BorderSide(width: 0.5),
+                    outside: BorderSide(width: 0.5)),
+                children: [
+                  TableRow(
+                    children: [
+                      Container(
+                          color: Colors.white,
+                          height: 40,
+                          width: double.infinity,
+                          child: Center(
+                              child: Texts(
+                            TranslationBase.of(context).route,
+                            fontSize: 14,
+                          ))),
+                      Container(
+                          color: Colors.white,
+                          height: 40,
+                          width: double.infinity,
+                          child: Center(
+                              child: Texts(
+                            TranslationBase.of(context).frequency,
+                            fontSize: 14,
+                          ))),
+                      Container(
+                          color: Colors.white,
+                          height: 40,
+                          width: double.infinity,
+                          padding: EdgeInsets.symmetric(horizontal: 4),
+                          child: Center(
+                              child: Texts(
+                            "${TranslationBase.of(context).dailyDoses}",
+                            fontSize: 14,
+                          ))),
+                      Container(
+                          color: Colors.white,
+                          height: 40,
+                          width: double.infinity,
+                          child: Center(
+                              child: Texts(
+                            TranslationBase.of(context).duration,
+                            fontSize: 14,
+                          ))),
+                    ],
+                  ),
+                  TableRow(
+                    children: [
+                      Container(
+                          color: Colors.white,
+                          height: 50,
+                          width: double.infinity,
+                          child: Center(
+                              child: Text(prescriptionReport.routeN ?? ''))),
+                      Container(
+                          color: Colors.white,
+                          height: 50,
+                          width: double.infinity,
+                          child: Center(
+                              child:
+                                  Text(prescriptionReport.frequencyN ?? ''))),
+                      Container(
+                          color: Colors.white,
+                          height: 50,
+                          width: double.infinity,
+                          child: Center(
+                              child: Text(
+                                  '${prescriptionReport.doseDailyQuantity}'))),
+                      Container(
+                          color: Colors.white,
+                          height: 50,
+                          width: double.infinity,
+                          child:
+                              Center(child: Text('${prescriptionReport.days}')))
+                    ],
+                  ),
+                ],
+              ),
+            ),
+            Container(
+              margin: EdgeInsets.only(top: 10, left: 10, right: 10),
+              width: double.infinity,
+              color: Colors.white,
+              padding: EdgeInsets.all(5),
+              child: Center(
+                child: Column(
+                  children: [
+                    Texts(TranslationBase.of(context).notes),
+                    SizedBox(
+                      height: 5,
+                    ),
+                    Divider(
+                      height: 0.5,
+                      color: Colors.grey[300],
+                    ),
+                    SizedBox(
+                      height: 5,
+                    ),
+                    Texts(prescriptionReport.remarks ?? ''),
+                  ],
+                ),
+              ),
+            )
+          ],
+        ),
+      ),
+    );
+  }
+
+  Widget _addReminderButton(BuildContext context) {
+    ProjectViewModel projectViewModel = Provider.of(context);
+
+    return GestureDetector(
+      onTap: () {
+        DateTime startDate = DateTime.now();
+        DateTime endDate = DateTime(startDate.year, startDate.month,
+            startDate.day + prescriptionReport.days);
+
+        print(prescriptionReport);
+        showGeneralDialog(
+            barrierColor: Colors.black.withOpacity(0.5),
+            transitionBuilder: (context, a1, a2, widget) {
+              final curvedValue =
+                  Curves.easeInOutBack.transform(a1.value) - 1.0;
+              return Transform(
+                transform:
+                    Matrix4.translationValues(0.0, curvedValue * 200, 0.0),
+                child: Opacity(
+                  opacity: a1.value,
+                  child: ReminderDialog(
+                    eventId: prescriptionReport.itemID.toString(),
+                    title: "Prescription Reminder",
+                    description:
+                        "${prescriptionReport.itemDescriptionN} ${prescriptionReport.frequencyN} ${prescriptionReport.routeN} ",
+                    startDate:
+                        "/Date(${startDate.millisecondsSinceEpoch}+0300)/",
+                    endDate: "/Date(${endDate.millisecondsSinceEpoch}+0300)/",
+                    location: prescriptionReport.remarks,
+                  ),
+                ),
+              );
+            },
+            transitionDuration: Duration(milliseconds: 500),
+            barrierDismissible: true,
+            barrierLabel: '',
+            context: context,
+            pageBuilder: (context, animation1, animation2) {});
+      },
+      child: Column(
+        mainAxisSize: MainAxisSize.max,
+        children: [
+          Container(
+            // height: 100.0,
+            margin: EdgeInsets.all(7.0),
+            padding: EdgeInsets.only(bottom: 4.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,
+              mainAxisSize: MainAxisSize.max,
+              children: [
+                Container(
+                  margin: EdgeInsets.fromLTRB(5.0, 5.0, 5.0, 0.0),
+                  child: Text("add",
+                      overflow: TextOverflow.clip,
+                      style: TextStyle(
+                          color: new Color(0xffB8382C),
+                          letterSpacing: 1.0,
+                          fontSize: 18.0)),
+                ),
+                Container(
+                  margin: EdgeInsets.fromLTRB(5.0, 0.0, 5.0, 0.0),
+                  child: Text("reminder",
+                      overflow: TextOverflow.clip,
+                      style: TextStyle(
+                          color: Colors.black,
+                          letterSpacing: 1.0,
+                          fontSize: 15.0)),
+                ),
+                Container(
+                  alignment: projectViewModel.isArabic
+                      ? Alignment.bottomLeft
+                      : Alignment.bottomRight,
+                  margin: projectViewModel.isArabic
+                      ? EdgeInsets.fromLTRB(10.0, 7.0, 0.0, 8.0)
+                      : EdgeInsets.fromLTRB(0.0, 7.0, 10.0, 8.0),
+                  child: Image.asset(
+                      "assets/images/new-design/reminder_icon.png",
+                      width: 45.0,
+                      height: 45.0),
+                ),
+              ],
+            ),
+          ),
+        ],
+      ),
+    );
+  }
+}