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),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|