improvements-test
| 
		 After Width: | Height: | Size: 2.4 KiB  | 
| 
		 After Width: | Height: | Size: 3.3 KiB  | 
| 
		 After Width: | Height: | Size: 3.0 KiB  | 
| 
		 After Width: | Height: | Size: 3.0 KiB  | 
| 
		 After Width: | Height: | Size: 3.4 KiB  | 
| 
		 After Width: | Height: | Size: 1.2 MiB  | 
@ -0,0 +1,6 @@
 | 
			
		||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
 | 
			
		||||
  <g id="Group_1261" data-name="Group 1261" transform="translate(-148.52 -172.52)">
 | 
			
		||||
    <path id="Path_1724" data-name="Path 1724" d="M9,0a9,9,0,0,1,9,9,9.18,9.18,0,0,1-1.863,5.483A8.844,8.844,0,0,1,9,18,9,9,0,0,1,9,0Z" transform="translate(148.52 172.52)" fill="#e6b71b"/>
 | 
			
		||||
    <path id="hourglass_2_" data-name="hourglass (2)" d="M10.865,10.178H10.4V8.663a2.662,2.662,0,0,0-.88-1.977l-.783-.7a.578.578,0,0,1,0-.86l.783-.7a2.665,2.665,0,0,0,.88-1.978V.925h.463a.463.463,0,0,0,0-.925h-7.4a.463.463,0,0,0,0,.925h.463V2.439a2.662,2.662,0,0,0,.88,1.977l.783.7a.578.578,0,0,1,0,.86l-.783.7a2.665,2.665,0,0,0-.88,1.978v1.514H3.463a.463.463,0,1,0,0,.925h7.4a.463.463,0,0,0,0-.925ZM5.313,8.711a1.264,1.264,0,0,1,.373-.9L6.918,6.578a.347.347,0,0,1,.491,0L8.642,7.811a1.264,1.264,0,0,1,.373.9v1.467h-3.7Z" transform="translate(150.356 175.968)" fill="#fff"/>
 | 
			
		||||
  </g>
 | 
			
		||||
</svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 947 B  | 
@ -0,0 +1,8 @@
 | 
			
		||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
 | 
			
		||||
  <g id="Group_1261" data-name="Group 1261" transform="translate(-148.52 -172.52)">
 | 
			
		||||
    <path id="Path_1724" data-name="Path 1724" d="M9,0a9,9,0,0,1,9,9,9.18,9.18,0,0,1-1.863,5.483A8.844,8.844,0,0,1,9,18,9,9,0,0,1,9,0Z" transform="translate(148.52 172.52)" fill="#5ab145"/>
 | 
			
		||||
    <g id="check_4_" data-name="check (4)" transform="translate(151.64 177.596)">
 | 
			
		||||
      <path id="Path_1722" data-name="Path 1722" d="M10.35,68.552l-5.79,5.79L1.411,71.193,0,72.6l4.56,4.56,7.2-7.2Z" transform="translate(0 -68.552)" fill="#fff"/>
 | 
			
		||||
    </g>
 | 
			
		||||
  </g>
 | 
			
		||||
</svg>
 | 
			
		||||
| 
		 After Width: | Height: | Size: 627 B  | 
| 
		 After Width: | Height: | Size: 28 KiB  | 
| 
		 After Width: | Height: | Size: 18 KiB  | 
| 
		 After Width: | Height: | Size: 19 KiB  | 
| 
		 After Width: | Height: | Size: 147 KiB  | 
@ -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"
 | 
			
		||||
}
 | 
			
		||||
@ -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"
 | 
			
		||||
}
 | 
			
		||||
@ -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;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -0,0 +1,2 @@
 | 
			
		||||
sdk.dir=C:\\Users\\sultan.khan\\AppData\\Local\\Android\\Sdk
 | 
			
		||||
flutter.sdk=C:\\Program Files\\flutter
 | 
			
		||||
@ -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
 | 
			
		||||
@ -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"
 | 
			
		||||
@ -0,0 +1,17 @@
 | 
			
		||||
//
 | 
			
		||||
//  Generated file. Do not edit.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#ifndef GeneratedPluginRegistrant_h
 | 
			
		||||
#define GeneratedPluginRegistrant_h
 | 
			
		||||
 | 
			
		||||
#import <Flutter/Flutter.h>
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_BEGIN
 | 
			
		||||
 | 
			
		||||
@interface GeneratedPluginRegistrant : NSObject
 | 
			
		||||
+ (void)registerWithRegistry:(NSObject<FlutterPluginRegistry>*)registry;
 | 
			
		||||
@end
 | 
			
		||||
 | 
			
		||||
NS_ASSUME_NONNULL_END
 | 
			
		||||
#endif /* GeneratedPluginRegistrant_h */
 | 
			
		||||
@ -0,0 +1,12 @@
 | 
			
		||||
//
 | 
			
		||||
//  Generated file. Do not edit.
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#import "GeneratedPluginRegistrant.h"
 | 
			
		||||
 | 
			
		||||
@implementation GeneratedPluginRegistrant
 | 
			
		||||
 | 
			
		||||
+ (void)registerWithRegistry:(NSObject<FlutterPluginRegistry>*)registry {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
@ -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<String> 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<String, dynamic> 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<String>();
 | 
			
		||||
    workingHours = json['WorkingHours'];
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  Map<String, dynamic> toJson() {
 | 
			
		||||
    final Map<String, dynamic> data = new Map<String, dynamic>();
 | 
			
		||||
    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<DoctorListByTimeModel> doctorsByTimeList = List();
 | 
			
		||||
  String filterName = "";
 | 
			
		||||
 | 
			
		||||
  DoctorsListTime({filterName, DoctorListByTimeModel doctor}) {
 | 
			
		||||
    doctorsByTimeList.add(doctor);
 | 
			
		||||
    this.filterName = filterName;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -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<String, dynamic> 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<String, dynamic> toJson() {
 | 
			
		||||
    final Map<String, dynamic> data = new Map<String, dynamic>();
 | 
			
		||||
    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;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -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<String, dynamic> 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<String, dynamic> toJson() {
 | 
			
		||||
    final Map<String, dynamic> data = new Map<String, dynamic>();
 | 
			
		||||
    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;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -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<String, dynamic> 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<String, dynamic> toJson() {
 | 
			
		||||
    final Map<String, dynamic> data = new Map<String, dynamic>();
 | 
			
		||||
    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;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -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<String, dynamic> 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<String, dynamic> toJson() {
 | 
			
		||||
    final Map<String, dynamic> data = new Map<String, dynamic>();
 | 
			
		||||
    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;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -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);
 | 
			
		||||
    }
 | 
			
		||||
    // });
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -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<BariatricsViewModel>(
 | 
			
		||||
        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: <Widget>[
 | 
			
		||||
                                          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: <Widget>[
 | 
			
		||||
                                                  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: <Widget>[
 | 
			
		||||
                                                      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(),
 | 
			
		||||
                        ),
 | 
			
		||||
                      ),
 | 
			
		||||
                    );
 | 
			
		||||
                  }),
 | 
			
		||||
            ));
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@ -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: <Widget>[
 | 
			
		||||
            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: <Widget>[
 | 
			
		||||
                  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: <Widget>[
 | 
			
		||||
                              Container(
 | 
			
		||||
                                width: 50,
 | 
			
		||||
                                decoration: BoxDecoration(
 | 
			
		||||
                                    color: Colors.white,
 | 
			
		||||
                                    shape: BoxShape.rectangle),
 | 
			
		||||
                                child: Column(
 | 
			
		||||
                                  children: <Widget>[
 | 
			
		||||
                                    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: <Widget>[
 | 
			
		||||
                    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: <Widget>[
 | 
			
		||||
                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),
 | 
			
		||||
                ),
 | 
			
		||||
              ],
 | 
			
		||||
            ),
 | 
			
		||||
          ),
 | 
			
		||||
        ],
 | 
			
		||||
      ),
 | 
			
		||||
    );
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||